import { ClearHttpContext } from "../Contracts.cjs"; import { Response as Response$1 } from "../core/Response.cjs"; import { ClassMiddleware, ControllerHandler, MiddlewareHandle } from "./basic.cjs"; import { Request as Request$1 } from "../core/Request.cjs"; import { NextFunction, Request, Response } from "express"; //#region src/types/express.d.ts interface RequestWithGetBody extends Request { getBody: () => Record; } /** * HTTP context passed to route handlers */ interface HttpContext extends ClearHttpContext { req: RequestWithGetBody; res: Response; next: NextFunction; clearRequest: Request$1; clearResponse: Response$1; } /** * Route handler function type */ type RouteHandler = ( /** * Express context object containing req, res, and next */ ctx: HttpContext, /** * ClearRequest instance */ req: Request$1) => any | Promise; /** * Handler can be either a function or controller reference */ type Handler = RouteHandler | ControllerHandler; /** * Middleware function type */ type MiddlewareFunction = MiddlewareHandle<[Request, Response, NextFunction]>; /** * Middleware class or instance with a framework-aware handle method. */ type Middleware = MiddlewareFunction | ClassMiddleware; //#endregion export { Handler, HttpContext, Middleware, MiddlewareFunction, RequestWithGetBody, RouteHandler };