import type { ISignalingHealthSession, PeerFailureEvidence } from '../util/interfaces/SignalingHealth';
export default class SignalingHealthMonitor {
    private readonly _session;
    private _lastInboundAt;
    private _lastProbeSentAt;
    private _probeInFlight;
    private _intervalId;
    private _pendingMediaRecovery;
    private _browserWasOffline;
    private _onlineHandler;
    private _offlineHandler;
    private static readonly CRITICAL_METHODS;
    static isCriticalMethod(method: string): boolean;
    constructor(_session: ISignalingHealthSession);
    start(): void;
    stop(): void;
    get isRunning(): boolean;
    get isProbeInFlight(): boolean;
    onSocketActivity(): void;
    private _resolveProbe;
    private _probeIfNeeded;
    onRequestTimeout(requestId: string, timeoutMs: number, method?: string): void;
    onPeerFailure(callId: string, evidence: PeerFailureEvidence): void;
    onNoRtp(callId: string, direction: 'inbound' | 'outbound'): void;
    private _setupBrowserListeners;
    private _cleanupBrowserListeners;
    onIceRestartFailed(callId: string): void;
    private _check;
    private _sendProbe;
    private _recoverMediaOrSignaling;
    private _getSignalingHealthState;
    private _triggerSignalingRecovery;
    private _triggerIceRestart;
}
