import { BehaviorSubject } from 'rxjs';
import { Tracer } from '../stats';
export declare class SpeakerState {
    private tracer;
    protected selectedDeviceSubject: BehaviorSubject<string>;
    protected volumeSubject: BehaviorSubject<number>;
    /**
     * [Tells if the browser supports audio output change on 'audio' elements](https://developer.mozilla.org/en-US/docs/Web/API/HTMLMediaElement/setSinkId).
     */
    readonly isDeviceSelectionSupported: boolean;
    /**
     * An Observable that emits the currently selected device
     *
     * Note: this feature is not supported in React Native
     */
    selectedDevice$: import("rxjs").Observable<string>;
    /**
     * An Observable that emits the currently selected volume
     *
     * Note: this feature is not supported in React Native
     */
    volume$: import("rxjs").Observable<number>;
    constructor(tracer: Tracer);
    /**
     * The currently selected device
     *
     * Note: this feature is not supported in React Native
     */
    get selectedDevice(): string;
    /**
     * The currently selected volume
     *
     * Note: this feature is not supported in React Native
     */
    get volume(): number;
    /**
     * @internal
     * @param deviceId
     */
    setDevice(deviceId: string): void;
    /**
     * @internal
     * @param volume
     */
    setVolume(volume: number): void;
}
