import { JsonSchema } from './json'; type Unauthed = { authenticated: false; throws?: string[]; }; type Authed = { authenticated: true; throws?: [400, 401, 500, ...string[]]; }; type HandlerBase = { response?: JsonSchema; } & (Unauthed | Authed); type GetHandlerModel = HandlerBase & { method: 'GET'; }; type PostHandlerModel = HandlerBase & { method?: 'POST'; request?: JsonSchema; }; type PutHandlerModel = HandlerBase & { method: 'PUT'; request?: JsonSchema; }; type DeleteHandlerModel = HandlerBase & { method: 'DELETE'; request?: JsonSchema; }; type PatchHandlerModel = HandlerBase & { method: 'PATCH'; request?: JsonSchema; }; type WebsocketHandlerModel = HandlerBase & { stream: true; request?: JsonSchema; }; export type HandlerModel = Readonly; export {};