import type { ApiHandler, ApiHandlerContext, Middleware, ResponseOptions, RouteSchema, TypedGroupHandlerContext } from '../../../types/public-types.js'; type UniversalContext = ApiHandlerContext; type SchemaHandlerContext = TSchema extends RouteSchema ? TypedGroupHandlerContext : TContext; type DefineApiHandlerInput = Omit, 'handler' | 'middleware' | 'schema' | 'method'> & { handler: (context: SchemaHandlerContext) => Promise | Response; middleware?: Middleware[]; schema?: TSchema; }; export declare function defineApiHandler(handler: DefineApiHandlerInput & { method: ApiHandler['method']; }): ApiHandler; declare const defineApiMethod: (method: M) => (handler: DefineApiHandlerInput & { path: TPath; }) => ApiHandler; export declare const defineGet: ReturnType>; export declare const definePost: ReturnType>; export declare const definePut: ReturnType>; export declare const defineDelete: ReturnType>; export declare const definePatch: ReturnType>; export declare const defineOptions: ReturnType>; export declare const defineHead: ReturnType>; export declare function json(data: unknown, options?: ResponseOptions): Response; export declare function html(content: string, options?: ResponseOptions): Response; export declare function redirect(url: string, status?: number): Response; export interface GroupHandler { prefix: TPrefix; middleware?: readonly Middleware[]; routes: readonly ApiHandler[]; } type GroupDefineHandler = { (handler: DefineApiHandlerInput & { path: TPath; method: ApiHandler['method']; }): ApiHandler; get: ReturnType>; post: ReturnType>; put: ReturnType>; delete: ReturnType>; patch: ReturnType>; options: ReturnType>; head: ReturnType>; }; export declare function defineGroupHandler[] = [], TContext extends UniversalContext = TMiddleware extends readonly Middleware[] ? TGroupContext : UniversalContext>(config: { prefix: TPrefix; middleware?: TMiddleware; routes: (api: GroupDefineHandler) => readonly ApiHandler[]; }): GroupHandler; export {};