import { RouteSchema } from 'elysia'; import { I as IsNever, e as IsUnknown, R as ReplaceGeneratorWithAsyncGenerator, M as MapError, E as EdenFetchError } from './errors-DQ0_HKez.cjs'; type Files = File | FileList; type ReplaceBlobWithFiles> = { [K in keyof RecordType]: RecordType[K] extends Blob | Blob[] ? Files : RecordType[K]; } & {}; /** */ type InferRouteOptions = (IsNever extends true ? { params?: Record; } : { params: Omit; }) & (IsNever extends true ? { query?: Record; } : { query: Omit; }) & (undefined extends TRoute['headers'] ? { headers?: Record; } : { headers: TRoute['headers']; }); type InferRouteBody = IsUnknown extends false ? undefined extends TRoute['body'] ? ReplaceBlobWithFiles> | undefined : ReplaceBlobWithFiles> : unknown; /** * Only returns the output for a successful response. */ type InferRouteOutput = TRoute['response'] extends Record ? ReplaceGeneratorWithAsyncGenerator[200] : never; type InferRouteError = Record> = MapError extends infer Errors ? IsNever extends true ? EdenFetchError : Errors : EdenFetchError; /** * Untyped eden-treaty response. Will either return nullish data and defined error, or vice versa. * Look at concrete implementation of eden-treaty for strongly-typed variant. */ type TreatyResponse> = { data: Res[200]; error: null; response: Response; status: number; headers: BunFetchRequestInit['headers']; } | { data: null; error: Exclude extends never ? { status: unknown; value: unknown; } : { [Status in keyof Res]: { status: Status; value: Res[Status]; }; }[Exclude]; response: Response; status: number; headers: BunFetchRequestInit['headers']; }; /** * Returns map of status codes to response types. */ type InferRouteOutputAll = TRoute['response'] extends Record ? ReplaceGeneratorWithAsyncGenerator : never; /** * Strongly typed route response. */ type InferRouteResponse = TreatyResponse>; export type { InferRouteBody, InferRouteError, InferRouteOptions, InferRouteOutput, InferRouteOutputAll, InferRouteResponse, TreatyResponse };