import type { ServerWebSocket } from "bun";
import type { CloseHandler, OpenHandler, SendFunction, WebSocketData } from "./types";
/**
 * Handles WebSocket connection lifecycle events (open/close).
 *
 * DESIGN: Multiple handlers can be registered for the same event,
 * executing in registration order. Errors in one handler don't affect others.
 */
export declare class ConnectionHandler<T extends WebSocketData<Record<string, unknown>>> {
    private readonly openHandlers;
    private readonly closeHandlers;
    addOpenHandler(handler: OpenHandler<T>): void;
    addCloseHandler(handler: CloseHandler<T>): void;
    handleOpen(ws: ServerWebSocket<T>, send: SendFunction): void;
    handleClose(ws: ServerWebSocket<T>, code: number, reason: string | undefined, send: SendFunction): void;
}
//# sourceMappingURL=connection.d.ts.map