import { Awareness } from 'y-protocols/awareness';
import type { ConnectionStatus, HybridSyncProviderOptions, SyncProvider } from '../types';
export declare class HybridSyncProvider implements SyncProvider {
    private ydoc;
    private room;
    private options;
    private webrtcProvider;
    private websocketProvider;
    private awareness;
    private connectionType;
    private isConnected;
    private reconnectTimer;
    private webrtcAttempts;
    private maxWebrtcAttempts;
    private webrtcConnectionTimeout;
    private connectionAttemptStartTime;
    private eventHandlers;
    private leaderElection?;
    private isTabLeader;
    private statusChannel?;
    private leaderConnectionStatus;
    constructor(options: HybridSyncProviderOptions);
    connect(): void;
    private setupStatusChannelHandlers;
    private broadcastStatusToFollowers;
    private requestStatusFromLeader;
    private handleLeadershipChange;
    private connectAsLeader;
    private connectAsFollower;
    private disconnectExternalConnections;
    private connectWebRTCFirst;
    private connectWebSocketFirst;
    private connectWebRTC;
    private connectWebSocket;
    private setupAwareness;
    disconnect(): void;
    private disconnectWebRTC;
    private disconnectWebSocket;
    private scheduleReconnect;
    getConnectionStatus(): ConnectionStatus;
    getAwareness(): Awareness | null;
    on(event: string, handler: (...args: unknown[]) => void): void;
    off(event: string, handler: (...args: unknown[]) => void): void;
    private emit;
    destroy(): void;
    log(...args: unknown[]): void;
}
