/** * Browser transport that relays {@link RealtimeMessage} frames through a * shared WebSocket hub (demo server or custom relay). Unlike * {@link BroadcastChannelTransport}, this works across different browsers on * the same origin. */ import type { RealtimeMessage, RealtimeTransport } from './types.js'; export interface WebSocketRelayTransportOptions { /** Local peer identity. */ id: string; /** Hub URL, e.g. `ws://localhost:8231/rt`. */ url: string; /** Injectable WebSocket for tests. */ WebSocketImpl?: typeof WebSocket; } export declare class WebSocketRelayTransport implements RealtimeTransport { readonly id: string; private ws; private handlers; private closed; private pending; constructor(opts: WebSocketRelayTransportOptions); send(message: RealtimeMessage): void; onMessage(handler: (message: RealtimeMessage) => void): () => void; close(): void; private flushPending; } //# sourceMappingURL=websocket-relay-transport.d.ts.map