import { type HttpExceptionHandler, type SerializedHttpError } from "../errors"; import type { HttpMiddleware } from "../middleware/middleware-definition"; import { type HttpResponseSerializer } from "../response"; import type { Router } from "../routing/router"; import type { HttpContext } from "./http-context"; export type HttpServerErrorSerializer = (error: unknown, ctx: HttpContext) => SerializedHttpError; export type { HttpExceptionHandler }; export interface HttpServerOptions { globalMiddlewares?: HttpMiddleware[]; jsonBodyLimitBytes?: number; streamingBodyContentTypes?: string[]; exceptionHandler?: HttpExceptionHandler; responseSerializer?: HttpResponseSerializer; requestTimeoutMs?: number; headersTimeoutMs?: number; keepAliveTimeoutMs?: number; maxRequestsPerSocket?: number; /** * @deprecated Use `exceptionHandler`. */ errorSerializer?: HttpServerErrorSerializer; } /** * Thin HTTP server runtime built on Node's `http` module. * It handles matching, middleware execution, body parsing, and response/error serialization. */ export declare class HttpServer { private readonly router; private server; private logger; private executor; private jsonBodyLimitBytes; private streamingBodyContentTypes; private exceptionHandler; private responseSerializer; private closePromise; constructor(router: Router, options?: HttpServerOptions); listen(port: number, host?: string): Promise; close(): Promise; private handleRequest; private parseRequestBody; private isStreamingContentType; private hasRequestBody; private readRawBody; private assertDeclaredBodySizeWithinLimit; private createLimitedBodyStream; private writeErrorResponse; private writeSerializedResponse; private getHeader; }