/// import { type IncomingMessage, type ServerResponse } from 'node:http'; import type { HttpContext, ServerEngineAdapter } from '../Quilt.js'; import { type Handler, type HandlerOutputs } from '../Handler.js'; export type NodeHttpRequest = IncomingMessage & { params: Record; query: Record; body: unknown; /** * Optional per-request metadata bag. * * This is an escape hatch intended for infrastructure concerns like * logging and tracing (for example, attaching a requestId). Business * data should generally flow through handlers and their dependencies * instead of being stored here. */ locals?: Record; }; type NodeHttpRouteHandler = (req: NodeHttpRequest, res: ServerResponse) => Promise; /** * Minimal adapter that implements the ServerEngineAdapter interface using * Node's built-in `http` module. * * It provides basic routing with support for: * - Static paths, e.g. `/status` * - Parameterized paths, e.g. `/users/:id/orders/:orderId` * - JSON request bodies (when `content-type` includes `application/json`) */ export declare class NodeHttpEngineAdapter implements ServerEngineAdapter { private routes; private server; private port; get(path: string, handler: NodeHttpRouteHandler): void; post(path: string, handler: NodeHttpRouteHandler): void; put(path: string, handler: NodeHttpRouteHandler): void; patch(path: string, handler: NodeHttpRouteHandler): void; delete(path: string, handler: NodeHttpRouteHandler): void; options(path: string, handler: NodeHttpRouteHandler): void; head(path: string, handler: NodeHttpRouteHandler): void; listen(port: number, callback?: () => void): void; getPort(): number | undefined; close(): Promise; private findRoute; private matchPath; private readBody; } export type NodeHttpContext = HttpContext; export type NodeHttpHandlerContext = Record, Query extends Record = Record, Body = any> = HttpContext; export type NodeHttpHandler = Record, Query extends Record = Record, Body = any, D extends Record, any>> = Record, any>>> = Handler, D>; export declare function createNodeHttpRouteHandler = Record, Query extends Record = Record, Body = any, D extends Record> = Record>>({ execute, dependencies, }: { execute: (ctx: NodeHttpHandlerContext, deps: HandlerOutputs) => Promise | O; dependencies?: D; }): Handler; export {}; //# sourceMappingURL=NodeHttpEngineAdapter.d.ts.map