/** Shared authenticated Realtime WebSocket transport. */ import { EventEmitter } from "node:events"; import { type AuthInput } from "./auth.js"; export type RealtimeServerEvent = { type: string; [key: string]: unknown; }; export interface RealtimeSocketOptions { auth?: AuthInput; url?: string; query?: Readonly>; headers?: Record; connectTimeoutMs?: number; maxPayloadBytes?: number; safetyIdentifier?: string; /** Legacy beta header; GA users should leave this false. */ beta?: boolean; } export interface RealtimeSocketConnectOptions { onOpen?: () => void; isReady?: (event: RealtimeServerEvent) => boolean; } export declare interface RealtimeSocketTransport { on(event: "open", listener: () => void): this; on(event: "event", listener: (event: RealtimeServerEvent) => void): this; on(event: "client.error", listener: (error: Error) => void): this; on(event: "close", listener: (code: number, reason: string) => void): this; } export declare class RealtimeSocketTransport extends EventEmitter { private socket?; private connecting?; private readonly options; constructor(options?: RealtimeSocketOptions); get isOpen(): boolean; connect(options?: RealtimeSocketConnectOptions): Promise; private open; private parse; send(payload: object): void; close(code?: number, reason?: string): void; } //# sourceMappingURL=socket.d.ts.map