import { type Server, type ServerResponse } from 'node:http'; import type { BaseAppConfig } from '../app/config'; import type { ScopedLogger } from '../services'; import { type HttpCorsConfig } from './cors'; import { HttpRequest } from './request'; import { MemoryHttpResponse, type HttpResponse } from './response'; import { HttpRouter } from './router'; import { type HttpRequestLoggingOptions } from './request-logging'; import { type StaticFilesOptions } from './static-files'; import { type HttpUpgradeHandler } from './upgrade'; export interface HttpServerRuntimeOptions { config: C; router: HttpRouter; logger: ScopedLogger; frameworkConfig?: Record; serverConfig?: Record; cors?: HttpCorsConfig; staticFiles?: boolean | StaticFilesOptions; requestLogging?: HttpRequestLoggingOptions; packageName?: string; devConsoleEnabled?: boolean; listenHooks?: HttpServerListenHooks | (() => HttpServerListenHooks); } export interface HttpServerListenHooks { start?: () => Promise; afterListen?: (server: Server) => Promise; onListenError?: (error: unknown) => Promise; } export interface HttpRequestObservation { request: HttpRequest; response: HttpResponse; startedAt: number; durationMs: number; error?: unknown; } export type HttpRequestObserver = (entry: HttpRequestObservation) => void; export interface HttpRequestObserverOptions { captureRequestBodyBytes?: number; } export declare class HttpServerRuntime { private readonly options; private readonly corsOptions; private readonly staticFiles?; private readonly appLogger; private readonly requestLogger; private readonly upgradeHandlers; private readonly observers; private server?; private tlsContextWatcher?; constructor(options: HttpServerRuntimeOptions); request(request: HttpRequest, response?: HttpResponse): Promise; listen(port?: number, host?: string, hooks?: HttpServerListenHooks): Promise; registerUpgradeHandler(handler: HttpUpgradeHandler): () => void; registerObserver(observer: HttpRequestObserver, options?: HttpRequestObserverOptions): () => void; close(): Promise; private notifyObservers; getPort(explicitPort?: number): number; getAddress(): ReturnType; private shouldLogStartupDetails; private handleNodeRequest; } export declare function writeNodeResponse(outgoing: ServerResponse, response: MemoryHttpResponse): void; export declare function writeUnhandledNodeError(outgoing: ServerResponse, error: unknown): void; //# sourceMappingURL=base.d.ts.map