import { ErrorCallback, AudioConfiguration, MicrophoneState, MicrophoneStateChangeCallback, VolumeChangeCallback } from '../../types'; import { ConfigurationService } from '../../configuration'; import { MediaStreamService } from '../media-stream.service'; import { AudioDataCallback } from '../audio-processing-pipeline.service'; export declare class MicrophoneController { private configService; private mediaStreamService; private stateCallbacks; private volumeCallbacks; private errorCallbacks; private isInternalUpdate; private previewTrack; private unsubscribes; constructor(configService: ConfigurationService, mediaStreamService: MediaStreamService); private setupEventListeners; destroy(): void; private handleConfigurationChange; updateAudioProcessing: (options: { echoCancellation?: boolean; noiseSuppression?: boolean; autoGainControl?: boolean; }) => Promise; updateDevice: (deviceId: string) => Promise; updateVolumeThreshold: (threshold: number) => void; private restart; enable: (deviceId?: string) => Promise; getConfiguration: () => AudioConfiguration; disable: () => void; toggleMute: () => Promise; toggle: () => Promise; preview: (deviceId?: string) => Promise; publishPreview: () => Promise; stopPreview: () => void; reset: () => Promise; switchDevice: (deviceId: string) => Promise; setGain: (value: number) => void; getGain: () => number; getFrequencyData: () => Uint8Array; getWaveformData: () => Uint8Array; onAudioData: (callback: AudioDataCallback) => VoidFunction; onTrackReplaced: (callback: (event: { oldTrack: MediaStreamTrack; newTrack: MediaStreamTrack; }) => void) => VoidFunction; onStateChange: (callback: MicrophoneStateChangeCallback) => VoidFunction; onVolumeChange: (callback: VolumeChangeCallback) => VoidFunction; onError: (callback: ErrorCallback) => VoidFunction; private _notifyStateChange; private _notifyVolumeChange; private _notifyError; getStream(): MediaStream | null; getTrack(): MediaStreamTrack | null; get state(): MicrophoneState; }