import type { Duplex } from 'node:stream'; import type { Server as NodeHttpServer, IncomingMessage } from 'node:http'; import type { EcopagesWebSocketHandler } from '../../../types/public-types.js'; export type NodeHttpWebSocketUpgradePreflight = (req: IncomingMessage, socket: Duplex, head: Buffer) => boolean; export type AttachNodeHttpWebSocketUpgradesOptions = { runtimeOrigin: string; websocketHandlers: Map>; /** * When true, unmatched upgrade requests are left for other listeners (e.g. * Vite HMR). When false, unmatched upgrades are destroyed immediately. */ passthroughUnmatched?: boolean; preflight?: NodeHttpWebSocketUpgradePreflight; }; /** * Wires Ecopages user WebSocket routes onto a Node HTTP server's `upgrade` event. * * Used by the Node adapter in standalone mode and by host integrations such as * the Vite plugin that embed Ecopages behind a foreign HTTP server. */ export declare function attachNodeHttpWebSocketUpgrades(server: NodeHttpServer, options: AttachNodeHttpWebSocketUpgradesOptions): void;