import { DeviceManager } from '../device-manager';
import { EventBus } from '../events/EventBus';
import { HMSUpdateListener } from '../interfaces';
import { Store } from '../sdk/store';
export declare class AudioSinkManager {
    private store;
    private deviceManager;
    private eventBus;
    private audioSink?;
    private autoPausedTracks;
    private readonly TAG;
    private volume;
    private state;
    private listener?;
    private timer;
    private autoUnpauseTimer;
    private earpieceSelected;
    constructor(store: Store, deviceManager: DeviceManager, eventBus: EventBus);
    setListener(listener?: HMSUpdateListener): void;
    private get outputDevice();
    getVolume(): number;
    setVolume(value: number): Promise<void>;
    /**
     *  This function is to be called only on user interaction when
     *  autoplay error is received.
     */
    unblockAutoplay(): Promise<void>;
    init(elementId?: string): void;
    cleanup(): void;
    private handleAudioPaused;
    private handleTrackUpdate;
    private handleTrackAdd;
    private handleAutoplayError;
    private handleAudioDeviceChange;
    /**
     * try to play audio for the passed in track, assume autoplay error happened if play fails
     * @param track
     * @private
     */
    private playAudioFor;
    private handleTrackRemove;
    private unpauseAudioTracks;
    private removeAudioElement;
    private startPollingToCheckPausedAudio;
    private startPollingForDevices;
    /**
     * Mweb is not able to play via call channel by default, this is to switch from media channel to call channel
     */
    private autoSelectAudioOutput;
}
