import { PeerConnectionMonitor } from "../monitors/PeerConnectionMonitor"; import { Detector } from "./Detector"; export type IceRestartRecommendationReason = 'ice-failed' | 'ice-disconnected' | 'transport-stalled' | 'never-established'; export type IceRestartRecommendedEventPayload = { peerConnectionId: string; transportId?: string; reason: IceRestartRecommendationReason; conditionDurationInMs: number; iceGeneration: number; recommendationCount: number; iceState?: string; dtlsState?: string; selectedCandidatePairId?: string; }; export type IceRestartRecommendationDetectorConfig = { createEvent?: boolean; iceRestartRecommendationThresholdInMs: number; iceRestartRecommendationCooldownInMs: number; restartRecommendationThresholdInMs: number; restartRecommendationCooldownInMs: number; }; export declare class IceRestartRecommendationDetector implements Detector { readonly peerConnection: PeerConnectionMonitor; readonly name = "ice-restart-recommendation-detector"; disabled: boolean; private readonly _states; private _neverEstablishedRecommendedAt?; private _neverEstablishedRecommendations; private _connectingForInMs; constructor(peerConnection: PeerConnectionMonitor); private get config(); update(): void; private _checkTransport; private _accumulate; private _checkEstablishment; private static readonly ICE_STATE_SEVERITY; private _bySeverity; private _expectsInboundMedia; private _recommend; private _usernameFragmentOf; private _getState; }