import { ClearHttpContext } from "../Contracts.mjs"; import { Response as Response$1 } from "../core/Response.mjs"; import { ClassMiddleware, ControllerHandler } from "./basic.mjs"; import { Request } from "../core/Request.mjs"; import { EventHandlerRequest, H3, H3Event, Middleware as Middleware$1, TypedServerRequest } from "h3"; //#region src/types/h3.d.ts type H3App = Omit & { fetch: (request: TypedServerRequest) => Promise; }; type MaybePromise = T | Promise; interface HttpRequest extends TypedServerRequest { getBody: () => Record; } /** * HTTP context passed to route handlers */ interface HttpContext extends Omit, ClearHttpContext { req: HttpRequest; clearRequest: Request; clearResponse: Response$1; } /** * Route handler function type */ type RouteHandler = ( /** * H3 event context */ ctx: HttpContext, /** * ClearRequest instance */ req: Request) => any | Promise; /** * Handler can be either a function or controller reference */ type Handler = RouteHandler | ControllerHandler; type NextFunction = () => MaybePromise; /** * Middleware function type */ type MiddlewareFunction = Middleware$1; type Middleware = MiddlewareFunction | ClassMiddleware; //#endregion export { H3App, Handler, HttpContext, HttpRequest, MaybePromise, Middleware, MiddlewareFunction, NextFunction, RouteHandler };