import { ClientSyncMessage, CloseReason } from '../@triplit/types/sync.js';
import { ConnectionStatus, SyncTransport, TransportConnectParams } from '../types.js';
interface WebSocketTransportOptions {
    messagePayloadSizeLimit?: number;
}
export declare class WebSocketTransport implements SyncTransport {
    private options;
    ws: WebSocket | undefined;
    constructor(options?: WebSocketTransportOptions);
    get isOpen(): boolean;
    get connectionStatus(): ConnectionStatus;
    onOpen(callback: (ev: any) => void): void;
    sendMessage(message: ClientSyncMessage): boolean;
    connect(params: TransportConnectParams): void;
    onMessage(callback: (message: any) => void): void;
    onError(callback: (ev: any) => void): void;
    close(reason?: CloseReason): void;
    onClose(callback: (ev: any) => void): void;
    onConnectionChange(callback: (state: ConnectionStatus) => void): void;
}
declare global {
    interface WebSocket {
        onconnectionchange: (status: ConnectionStatus) => void;
    }
}
export {};
