type HttpMethod = "get" | "put" | "post" | "delete" | "options" | "head" | "patch" | "trace"; type OkStatus = 200 | 201 | 202 | 203 | 204 | 206 | 207 | "2XX"; type ErrorStatus = 500 | 501 | 502 | 503 | 504 | 505 | 506 | 507 | 508 | 510 | 511 | '5XX' | 400 | 401 | 402 | 403 | 404 | 405 | 406 | 407 | 408 | 409 | 410 | 411 | 412 | 413 | 414 | 415 | 416 | 417 | 418 | 420 | 421 | 422 | 423 | 424 | 425 | 426 | 427 | 428 | 429 | 430 | 431 | 444 | 450 | 451 | 497 | 498 | 499 | '4XX' | "default"; type OKStatusUnion = FilterKeys; type FirstErrorStatus = T extends { 500: any; } ? T[500] : T extends { 501: any; } ? T[501] : T extends { 502: any; } ? T[502] : T extends { 503: any; } ? T[503] : T extends { 504: any; } ? T[504] : T extends { 505: any; } ? T[505] : T extends { 506: any; } ? T[506] : T extends { 507: any; } ? T[507] : T extends { 508: any; } ? T[508] : T extends { 510: any; } ? T[510] : T extends { 511: any; } ? T[511] : T extends { "5XX": any; } ? T["5XX"] : T extends { 400: any; } ? T[400] : T extends { 401: any; } ? T[401] : T extends { 402: any; } ? T[402] : T extends { 403: any; } ? T[403] : T extends { 404: any; } ? T[404] : T extends { 405: any; } ? T[405] : T extends { 406: any; } ? T[406] : T extends { 407: any; } ? T[407] : T extends { 408: any; } ? T[408] : T extends { 409: any; } ? T[409] : T extends { 410: any; } ? T[410] : T extends { 411: any; } ? T[411] : T extends { 412: any; } ? T[412] : T extends { 413: any; } ? T[413] : T extends { 414: any; } ? T[414] : T extends { 415: any; } ? T[415] : T extends { 416: any; } ? T[416] : T extends { 417: any; } ? T[417] : T extends { 418: any; } ? T[418] : T extends { 420: any; } ? T[420] : T extends { 421: any; } ? T[421] : T extends { 422: any; } ? T[422] : T extends { 423: any; } ? T[423] : T extends { 424: any; } ? T[424] : T extends { 425: any; } ? T[425] : T extends { 426: any; } ? T[426] : T extends { 427: any; } ? T[427] : T extends { 428: any; } ? T[428] : T extends { 429: any; } ? T[429] : T extends { 430: any; } ? T[430] : T extends { 431: any; } ? T[431] : T extends { 444: any; } ? T[444] : T extends { 450: any; } ? T[450] : T extends { 451: any; } ? T[451] : T extends { 497: any; } ? T[497] : T extends { 498: any; } ? T[498] : T extends { 499: any; } ? T[499] : T extends { "4XX": any; } ? T["4XX"] : T extends { default: any; } ? T["default"] : never; type PathsWithMethod = { [Pathname in keyof Paths]: Paths[Pathname] extends { [K in PathnameMethod]: any; } ? Pathname : never; }[keyof Paths]; interface OperationObject { parameters: any; requestBody: any; responses: any; } type PathItemObject = { [M in HttpMethod]: OperationObject; } & { parameters?: any; }; type ResponseObjectMap = T extends { responses: any; } ? T["responses"] : unknown; type ResponseContent = T extends { content: any; } ? T["content"] : unknown; type OperationRequestBody = "requestBody" extends keyof T ? T["requestBody"] : never; type PickRequestBody = "requestBody" extends keyof T ? Pick : never; type IsOperationRequestBodyOptional = RequiredKeysOf> extends never ? true : false; type OperationRequestBodyMediaContent = IsOperationRequestBodyOptional extends true ? ResponseContent>> | undefined : ResponseContent>; type OperationRequestBodyContent = FilterKeys, MediaType> extends never ? FilterKeys>, MediaType> | undefined : FilterKeys, MediaType>; type SuccessResponse, Media extends MediaType = MediaType> = GetResponseContent; type GetResponseContent, Media extends MediaType = MediaType, ResponseCode extends keyof T = keyof T> = ResponseCode extends keyof T ? { [K in ResponseCode]: T[K]["content"] extends Record ? FilterKeys extends never ? T[K]["content"] : FilterKeys : K extends keyof T ? T[K]["content"] : never; }[ResponseCode] : never; type ErrorResponse, Media extends MediaType = MediaType> = GetResponseContent; type SuccessResponseJSON> = SuccessResponse, `${string}/json`>; type ErrorResponseJSON> = ErrorResponse, `${string}/json`>; type RequestBodyJSON = JSONLike, "content">>; type FilterKeys = Obj[keyof Obj & Matchers]; type GetValueWithDefault = Obj extends any ? FilterKeys extends never ? Default : FilterKeys : never; type MediaType = `${string}/${string}`; type JSONLike = FilterKeys; type FindRequiredKeys = K extends unknown ? (undefined extends T[K] ? never : K) : K; type HasRequiredKeys = FindRequiredKeys; type RequiredKeysOfHelper = { [K in keyof T]: {} extends Pick ? never : K; }[keyof T]; type RequiredKeysOf = RequiredKeysOfHelper extends undefined ? never : RequiredKeysOfHelper; type $Read = { readonly $read: T; }; type $Write = { readonly $write: T; }; type Readable = T extends $Write ? never : T extends $Read ? Readable : T extends (infer E)[] ? Readable[] : T extends object ? { [K in keyof T as NonNullable extends $Write ? never : K]: Readable; } : T; type Writable = T extends $Read ? never : T extends $Write ? Writable : T extends (infer E)[] ? Writable[] : T extends object ? { [K in keyof T as NonNullable extends $Read ? never : K]: Writable; } & { [K in keyof T as NonNullable extends $Read ? K : never]?: never; } : T; export type { $Read, $Write, ErrorResponse, ErrorResponseJSON, ErrorStatus, FilterKeys, FindRequiredKeys, FirstErrorStatus, GetResponseContent, GetValueWithDefault, HasRequiredKeys, HttpMethod, IsOperationRequestBodyOptional, JSONLike, MediaType, OKStatusUnion, OkStatus, OperationObject, OperationRequestBody, OperationRequestBodyContent, OperationRequestBodyMediaContent, PathItemObject, PathsWithMethod, Readable, RequestBodyJSON, RequiredKeysOf, ResponseContent, ResponseObjectMap, SuccessResponse, SuccessResponseJSON, Writable };