import type { IncomingMessage, Server } from "node:http";
import type { Duplex } from "node:stream";
import { WebSocketServer } from "ws";
import type { TransportKind } from "../server/connection.ts";
import type { ServerCore } from "../server/server-core.ts";
import { type ResolvedWebSocketListenerAuth } from "./websocket-auth.ts";
export type AppServerWebSocketConnectionHandler = {
    readonly connectionCount: number;
    handleUpgrade(request: IncomingMessage, socket: Duplex, head: Buffer): void;
    terminateConnections(): void;
    close(): Promise<void>;
};
export declare function createAppServerWebSocketConnectionHandler(options: {
    readonly core: ServerCore;
    readonly auth: ResolvedWebSocketListenerAuth;
    readonly transportKind: TransportKind;
    readonly connectionIdPrefix: string;
    readonly outboundQueueBytes?: number;
}): AppServerWebSocketConnectionHandler;
export declare function closeServer(server: Pick<Server | WebSocketServer, "close">): Promise<void>;
//# sourceMappingURL=websocket-connection-handler.d.ts.map