import { AnyElysia } from 'elysia'; type IsAny = 0 extends 1 & T ? true : false; type IsNever = [T] extends [never] ? true : false; type IsUnknown = IsAny extends true ? false : unknown extends T ? true : false; type Not = T extends true ? false : true; type And = A extends true ? B extends true ? true : false : false; type ReplaceGeneratorWithAsyncGenerator> = { [K in keyof T]: T[K] extends Generator ? And>, void extends B ? true : false> extends true ? AsyncGenerator : And, void extends B ? false : true> extends true ? B : AsyncGenerator | B : T[K] extends AsyncGenerator ? And>, void extends B ? true : false> extends true ? AsyncGenerator : And, void extends B ? false : true> extends true ? B : AsyncGenerator | B : T[K]; } & {}; type NonEmptyArray = [T, ...T[]]; type Enumerate = Acc['length'] extends N ? Acc[number] : Enumerate; type Range = Exclude, Enumerate>; declare class EdenFetchError extends Error { status: Status; value: Value; constructor(status: Status, value: Value); } declare class EdenFatalError extends Error { static throw(): EdenFatalError; constructor(); } type MapError> = [ { [K in keyof T]-?: K extends ErrorRange ? K : never; }[keyof T] ] extends [infer A extends number] ? { [K in A]: EdenFetchError; }[A] : false; type ErrorRange = Range<300, 599>; /** * Type representing any error-like object that can be thrown by Eden client operations. * This includes EdenFetchError instances with any status code and value. * * @template _T - The Elysia app type (reserved for future use with route-specific error types) */ type EdenClientErrorLike<_T extends AnyElysia = AnyElysia> = EdenFetchError | Error; declare const ERROR_SYMBOL: unique symbol; type TypeError = TMessage & { _: typeof ERROR_SYMBOL; }; export { EdenFetchError as E, type IsNever as I, type MapError as M, type NonEmptyArray as N, type ReplaceGeneratorWithAsyncGenerator as R, type TypeError as T, EdenFatalError as a, type ErrorRange as b, type EdenClientErrorLike as c, ERROR_SYMBOL as d, type IsUnknown as e };