import { ApiSpec, HttpRoute, RequestType, ResponseType } from '@api-ts/io-ts-http'; import { type DecodeErrorFormatterFn, type EncodeErrorFormatterFn, type GetDecodeErrorStatusCodeFn, type GetEncodeErrorStatusCodeFn, TypedRequestHandler } from '@api-ts/typed-express-router'; import { MiddlewareBrand, MiddlewareChain, MiddlewareChainOutput } from './middleware'; import type { KeyedResponseType, ResponseEncoder } from './response'; export declare type ServiceFunction> = ((input: Input) => ResponseType | Promise>) | ((input: Input) => KeyedResponseType | Promise>); export declare type RouteHandler = ServiceFunction | { middleware: MiddlewareChain; handler: ServiceFunction, MiddlewareChain>>; } | { middleware: MiddlewareChain; handler: ServiceFunction; [MiddlewareBrand]: true; }; export declare function routeHandler({ handler, }: { handler: ServiceFunction; }): RouteHandler; export declare function routeHandler({ middleware, handler, }: { middleware: Chain; handler: ServiceFunction, Chain>>; }): RouteHandler; export declare const getServiceFunction: >(routeHandler: RouteHandler) => ServiceFunction>; export declare const getMiddleware: >(routeHandler: RouteHandler) => MiddlewareChain; export declare const defaultDecodeErrorFormatter: DecodeErrorFormatterFn; export declare const defaultEncodeErrorFormatter: EncodeErrorFormatterFn; export declare const defaultGetDecodeErrorStatusCode: GetDecodeErrorStatusCodeFn; export declare const defaultGetEncodeErrorStatusCode: GetEncodeErrorStatusCodeFn; export declare const handleRequest: (apiName: string, httpRoute: HttpRoute, handler: RouteHandler, responseEncoder: ResponseEncoder) => TypedRequestHandler; //# sourceMappingURL=request.d.ts.map