import { Logger } from "../../log/Logger";
export interface AudioStreamEnergyMonitor {
    start(stream: MediaStream): void;
    stop(): void;
    destroy(): void;
}
export declare class DefaultAudioStreamEnergyMonitor implements AudioStreamEnergyMonitor {
    private onAudioEnergyDetected;
    private logger;
    private callId;
    private audioContext;
    private analyser;
    private source;
    private dataArray;
    private analyserInterval;
    private clonedTrack;
    private readonly throttledEmitAudioEnergyDetected;
    private constructor();
    static create(onAudioEnergyDetected: () => void, logger: Logger, callId: string): AudioStreamEnergyMonitor | null;
    start(stream: MediaStream): void;
    stop(): void;
    destroy(): void;
    private swapClonedTrack;
    private startAudioEnergyDetection;
    private clearAnalyserInterval;
    private startAnalyserInterval;
    private checkEnergy;
    private rms;
    private removeClonedTrack;
    private addClonedTrack;
}
