export interface AudioVisualizationData { frequency: Uint8Array; waveform: Uint8Array; } export type AudioDataCallback = (data: AudioVisualizationData) => void; export interface IAudioNoiseSuppressionProvider { createNode(context: AudioContext): Promise | AudioNode; destroy?(): void; } export interface IAudioProcessingPipeline { isRunning(): boolean; start(track: MediaStreamTrack): Promise; stop(): void; getOutputTrack(): MediaStreamTrack | null; setGain(value: number): void; getGain(): number; getFrequencyData(): Uint8Array; getWaveformData(): Uint8Array; onAudioData(cb: AudioDataCallback): VoidFunction; setNoiseSuppressionProvider(provider: IAudioNoiseSuppressionProvider | null): Promise; } export declare class AudioProcessingPipelineService implements IAudioProcessingPipeline { private context; private source; private gainNode; private analyser; private destination; private mlNode; private inputTrack; private running; private gainValue; private provider; private frequencyData; private waveformData; private audioDataCallbacks; private rafId; isRunning(): boolean; start(track: MediaStreamTrack): Promise; stop(): void; destroy(): void; getOutputTrack(): MediaStreamTrack | null; setGain(value: number): void; getGain(): number; getFrequencyData(): Uint8Array; getWaveformData(): Uint8Array; onAudioData(cb: AudioDataCallback): VoidFunction; setNoiseSuppressionProvider(provider: IAudioNoiseSuppressionProvider | null): Promise; private createProviderNode; private connectGraph; private disconnectGraph; private startAnalysisLoop; }