/** * Ownership of Node HTTP upgrade listeners and noServer WebSocket servers. * * @module server/node-upgrade-lifecycle */ export interface NodeUpgradeEventSource { on(event: "upgrade", listener: (...args: unknown[]) => void): unknown; off?(event: "upgrade", listener: (...args: unknown[]) => void): unknown; removeListener?(event: "upgrade", listener: (...args: unknown[]) => void): unknown; } export interface OwnedWebSocketClient { terminate?(): void; close?(): void; } export interface OwnedUpgradeSocket { destroy(): void; } export interface OwnedWebSocketServer { readonly clients?: Iterable; close(callback: (error?: Error) => void): void; } /** Owns every global listener and socket server created by one handler. */ export declare class NodeUpgradeLifecycle { private readonly listeners; private readonly socketServers; private readonly serverRetirements; private readonly upgradeSockets; private disposePromise; private disposed; get isDisposed(): boolean; /** Attach at most one upgrade listener to a given HTTP server. */ attach(source: NodeUpgradeEventSource, listener: (...args: unknown[]) => void): boolean; /** Register a noServer WebSocket server before it handles an upgrade. */ track(server: OwnedWebSocketServer): void; /** Close one owned server now, sharing cleanup with concurrent disposal. */ retire(server: OwnedWebSocketServer): Promise; /** Retain an accepted raw upgrade socket until handshake completion. */ trackSocket(socket: OwnedUpgradeSocket): () => void; /** Remove listeners, terminate clients, and close every owned server once. */ dispose(): Promise; private disposeInternal; private retireServer; } //# sourceMappingURL=node-upgrade-lifecycle.d.ts.map