import type { HttpQueryMethod, InferRouteBody, InferRouteOptions, InferRouteOutput, } from '@aydee-app/eden' import type { AnyElysia, RouteSchema } from 'elysia' export type InferTreatyQueryIO = T extends { _routes: infer TSchema extends Record } ? InferTreatyQueryIOMapping : 'Please install Elysia before using Eden' export type InferTreatyQueryIOMapping< TSchema extends Record, TPath extends any[] = [], > = { [K in keyof TSchema]: TSchema[K] extends RouteSchema ? { input: K extends HttpQueryMethod ? InferRouteOptions> : [ InferRouteBody>, InferRouteOptions>, ] output: InferRouteOutput } : InferTreatyQueryIOMapping } export type InferTreatyQueryInput = T extends { _routes: infer TSchema extends Record } ? InferTreatyQueryInputMapping : 'Please install Elysia before using Eden' export type InferTreatyQueryInputMapping< TSchema extends Record, TPath extends any[] = [], > = { [K in keyof TSchema]: TSchema[K] extends RouteSchema ? K extends HttpQueryMethod ? InferRouteOptions> : [ InferRouteBody>, InferRouteOptions>, ] : InferTreatyQueryInputMapping } export type InferTreatyQueryOutput = T extends { _routes: infer TSchema extends Record } ? InferTreatyQueryOutputMapping : 'Please install Elysia before using Eden' export type InferTreatyQueryOutputMapping< TSchema extends Record, TPath extends any[] = [], > = { [K in keyof TSchema]: TSchema[K] extends RouteSchema ? InferRouteOutput : InferTreatyQueryOutputMapping }