import { TrackProcessor, Track, AudioProcessorOptions } from 'livekit-client'; interface AssetConfig { cdnUrl?: string; version?: string; } interface AssetUrls { wasm: string; model: string; } interface DeepFilterNet3ProcessorConfig { sampleRate?: number; noiseReductionLevel?: number; assetConfig?: AssetConfig; } interface DeepFilterNoiseFilterOptions { sampleRate?: number; frameSize?: number; enableNoiseReduction?: boolean; noiseReductionLevel?: number; assetConfig?: AssetConfig; enabled?: boolean; } declare class DeepFilterNet3Core { private assetLoader; private assets; private workletNode; private isInitialized; private bypassEnabled; private config; constructor(config?: DeepFilterNet3ProcessorConfig); initialize(): Promise; createAudioWorkletNode(audioContext: AudioContext): Promise; setSuppressionLevel(level: number): void; destroy(): void; isReady(): boolean; setNoiseSuppressionEnabled(enabled: boolean): void; isNoiseSuppressionEnabled(): boolean; private ensureInitialized; } declare class DeepFilterNoiseFilterProcessor implements TrackProcessor { name: string; processedTrack?: MediaStreamTrack; audioContext: AudioContext | null; sourceNode: MediaStreamAudioSourceNode | null; workletNode: AudioWorkletNode | null; destination: MediaStreamAudioDestinationNode | null; processor: DeepFilterNet3Core; enabled: boolean; originalTrack?: MediaStreamTrack; constructor(options?: DeepFilterNoiseFilterOptions); static isSupported(): boolean; init: (opts: { track?: MediaStreamTrack; mediaStreamTrack?: MediaStreamTrack; }) => Promise; restart: (opts: { track?: MediaStreamTrack; mediaStreamTrack?: MediaStreamTrack; }) => Promise; setEnabled: (enable: boolean) => Promise; setSuppressionLevel(level: number): void; isEnabled(): boolean; isNoiseSuppressionEnabled(): boolean; suspend: () => Promise; resume: () => Promise; destroy: () => Promise; private ensureGraph; private teardownGraph; } declare function DeepFilterNoiseFilter(options?: DeepFilterNoiseFilterOptions): DeepFilterNoiseFilterProcessor; declare class AssetLoader { private readonly cdnUrl; constructor(config?: AssetConfig); private getCdnUrl; getAssetUrls(): AssetUrls; fetchAsset(url: string): Promise; } declare function getAssetLoader(config?: AssetConfig): AssetLoader; export { AssetLoader, DeepFilterNet3Core, DeepFilterNoiseFilter, DeepFilterNoiseFilterProcessor, getAssetLoader }; export type { AssetConfig, DeepFilterNet3ProcessorConfig, DeepFilterNoiseFilterOptions };