import { ClearHttpContext } from "../Contracts.cjs"; import { Response } from "../core/Response.cjs"; import { ClassMiddleware, ControllerHandler, MiddlewareHandle } from "./basic.cjs"; import { Request } from "../core/Request.cjs"; import { FastifyInstance, FastifyReply, FastifyRequest } from "fastify"; //#region src/types/fastify.d.ts interface RequestWithGetBody extends FastifyRequest { getBody: () => Record; } interface HttpContext extends ClearHttpContext { req: RequestWithGetBody; reply: FastifyReply; clearRequest: Request; clearResponse: Response; } type RouteHandler = (ctx: HttpContext, req: Request) => any | Promise; type Handler = RouteHandler | ControllerHandler; type NextFunction = (err?: Error) => void; type MiddlewareFunction = MiddlewareHandle<[req: RequestWithGetBody, reply: FastifyReply, next: NextFunction]>; type Middleware = MiddlewareFunction | ClassMiddleware; type FastifyApp = FastifyInstance; //#endregion export { FastifyApp, Handler, HttpContext, Middleware, MiddlewareFunction, NextFunction, RequestWithGetBody, RouteHandler };