import { AspidaMethodParams, AspidaMethods, HttpMethod, HttpStatusOk } from 'aspida'; type RequestParams = { path: string; method: HttpMethod; values: Record; } & Pick; type HttpStatusNoOk = 301 | 302 | 400 | 401 | 402 | 403 | 404 | 405 | 406 | 409 | 500 | 501 | 502 | 503 | 504 | 505; type PartiallyPartial = Omit & Partial>; type BaseResponse = { status: V extends number ? V : HttpStatusOk; resBody: T; resHeaders: U; }; export type PartialResponse = PartiallyPartial, 'resBody' | 'resHeaders'>; export type MockResponse = (K extends { resBody: K['resBody']; resHeaders: K['resHeaders']; } ? BaseResponse : K extends { resBody: K['resBody']; } ? PartiallyPartial, 'resHeaders'> : K extends { resHeaders: K['resHeaders']; } ? PartiallyPartial, 'resBody'> : PartiallyPartial, 'resBody' | 'resHeaders'>) | PartiallyPartial, 'resBody' | 'resHeaders'>; export type MockMethods = { [K in keyof T]?: T[K] extends AspidaMethodParams ? (req: RequestParams) => MockResponse | Promise> : never; }; export {}; //# sourceMappingURL=types.d.ts.map