import { IncomingMessage, Server, ServerOptions, ServerResponse, createServer } from "node:http"; import { Http2SecureServer, Http2Server, Http2ServerRequest, Http2ServerResponse, SecureServerOptions, ServerOptions as ServerOptions$1, createSecureServer, createServer as createServer$1 } from "node:http2"; import { UpgradeWebSocket } from "hono/ws"; import { AddressInfo } from "node:net"; import { WebSocket, WebSocketServer } from "ws"; import { ServerOptions as ServerOptions$2, createServer as createServer$2 } from "node:https"; //#region src/types.d.ts type HttpBindings = { incoming: IncomingMessage; outgoing: ServerResponse; }; type Http2Bindings = { incoming: Http2ServerRequest; outgoing: Http2ServerResponse; }; type FetchCallback = (request: Request, env: HttpBindings | Http2Bindings) => Promise | unknown; type ServerType = Server | Http2Server | Http2SecureServer; type createHttpOptions = { serverOptions?: ServerOptions; createServer?: typeof createServer; }; type createHttpsOptions = { serverOptions?: ServerOptions$2; createServer?: typeof createServer$2; }; type createHttp2Options = { serverOptions?: ServerOptions$1; createServer?: typeof createServer$1; }; type createSecureHttp2Options = { serverOptions?: SecureServerOptions; createServer?: typeof createSecureServer; }; type ServerOptions$3 = createHttpOptions | createHttpsOptions | createHttp2Options | createSecureHttp2Options; type Options = { fetch: FetchCallback; overrideGlobalObjects?: boolean; autoCleanupIncoming?: boolean; port?: number; hostname?: string; websocket?: { server: WebSocketServer; }; } & ServerOptions$3; type CustomErrorHandler = (err: unknown) => void | Response | Promise; //#endregion //#region src/server.d.ts declare const createAdaptorServer: (options: Options) => ServerType; declare const serve: (options: Options, listeningListener?: (info: AddressInfo) => void) => ServerType; //#endregion //#region src/websocket.d.ts type UpgradeWebSocketOptions = { onError: (err: unknown) => void; }; declare const upgradeWebSocket: UpgradeWebSocket; //#endregion //#region src/listener.d.ts declare const getRequestListener: (fetchCallback: FetchCallback, options?: { hostname?: string; errorHandler?: CustomErrorHandler; overrideGlobalObjects?: boolean; autoCleanupIncoming?: boolean; }) => (incoming: IncomingMessage | Http2ServerRequest, outgoing: ServerResponse | Http2ServerResponse) => Promise; //#endregion //#region src/error.d.ts declare class RequestError extends Error { constructor(message: string, options?: { cause?: unknown; }); } //#endregion export { type Http2Bindings, type HttpBindings, RequestError, type ServerType, createAdaptorServer, getRequestListener, serve, upgradeWebSocket };