import { TrackDisableMode } from './DeviceManagerState';
import { AudioDeviceManagerState } from './AudioDeviceManagerState';
import { Tracer } from '../stats';
export declare class MicrophoneManagerState extends AudioDeviceManagerState<MediaTrackConstraints> {
    private speakingWhileMutedSubject;
    /**
     * An Observable that emits `true` if the user's microphone is muted, but they're speaking.
     */
    speakingWhileMuted$: import("rxjs").Observable<boolean>;
    constructor(disableMode: TrackDisableMode, tracer: Tracer | undefined);
    /**
     * `true` if the user's microphone is muted but they're speaking.
     */
    get speakingWhileMuted(): boolean;
    /**
     * @internal
     */
    setSpeakingWhileMuted(isSpeaking: boolean): void;
    protected getDeviceIdFromStream(stream: MediaStream): string | undefined;
}
