import type { Server as HttpServer, ServerOptions as HttpServerOptions, IncomingMessage, ServerResponse, } from 'node:http' import type { Server as HttpsServer, ServerOptions as HttpsServerOptions, } from 'node:https' export type {HttpsServerOptions} export type {HttpServerOptions} export interface Options extends HttpsServerOptions, HttpServerOptions {} export type OptionsMap = { [K in keyof Options as `dev.options.${K & string}`]: Options[K] } /** * Connection */ export interface Connection { /** * Create server */ createServer(app: any): Promise /** * Node server */ instance: HttpServer | HttpsServer /** * Listen * * @remarks * Node Server listen event */ listen(): Promise /** * On error * * @remarks * Error handler */ onError(error: Error): void /** * On listen * * @remarks * Request handler */ onListening(): void /** * On request * * @remarks * Request handler */ onRequest( req: IncomingMessage, res: ServerResponse, ): Promise }