import { IceConnectionState } from "../../../rtc";
import { PeerConnectionClientObserver } from "../../../rtc/PeerConnectionClientObserver";
import { CallQualityWarningEventFanout } from "../../listeners/CallQualityWarningEventFanout";
import { BaseDetector } from "./BaseDetector";
/**
 * Detector keeping track of the ICE connection state during the time the call is established.
 *
 * Note that whenever we observe an ICE state change that indicates lack of connectivity, we need to wait a certain amount of time
 * before doing the ICE state check itself. This is because the ICE state change might be related to remote peer
 * hanging up and not to connectivity loss. In this case, within the delay, the detector will be deactivated and
 * no warning will be emitted.
 */
export declare class MissingMediaStreamWarningDetector extends BaseDetector implements PeerConnectionClientObserver {
    private static readonly WARNING_EMISSION_DELAY_MS;
    private iceState;
    private timeoutId?;
    constructor(fanout: CallQualityWarningEventFanout);
    get isActive(): boolean;
    set isActive(isActive: boolean);
    onIceConnectionStateChanged(state: IceConnectionState): void;
    private scheduleStateCheck;
    private performStateCheck;
}
