UNPKG

murmuraba

Version:

Real-time audio noise reduction with advanced chunked processing for web applications

128 lines 5.16 kB
import { vi } from 'vitest'; /** * Centralized Audio Context test utilities * Eliminates duplication across test files */ export interface AudioContextMockOptions { state?: AudioContextState; sampleRate?: number; currentTime?: number; baseLatency?: number; outputLatency?: number; includeWorklet?: boolean; includeAnalyser?: boolean; includeBiquadFilter?: boolean; includeMediaStreamDestination?: boolean; } export interface MockGainNode { gain: { value: number; setValueAtTime: ReturnType<typeof vi.fn>; linearRampToValueAtTime: ReturnType<typeof vi.fn>; exponentialRampToValueAtTime: ReturnType<typeof vi.fn>; setTargetAtTime: ReturnType<typeof vi.fn>; setValueCurveAtTime: ReturnType<typeof vi.fn>; cancelScheduledValues: ReturnType<typeof vi.fn>; cancelAndHoldAtTime: ReturnType<typeof vi.fn>; }; connect: ReturnType<typeof vi.fn>; disconnect: ReturnType<typeof vi.fn>; numberOfInputs: number; numberOfOutputs: number; channelCount: number; channelCountMode: ChannelCountMode; channelInterpretation: ChannelInterpretation; } export declare function createMockGainNode(initialValue?: number): MockGainNode; export declare function createMockAnalyserNode(): { fftSize: number; frequencyBinCount: number; minDecibels: number; maxDecibels: number; smoothingTimeConstant: number; getByteFrequencyData: import("vitest").Mock<(array: Uint8Array) => void>; getByteTimeDomainData: import("vitest").Mock<(array: Uint8Array) => void>; getFloatFrequencyData: import("vitest").Mock<(...args: any[]) => any>; getFloatTimeDomainData: import("vitest").Mock<(...args: any[]) => any>; connect: import("vitest").Mock<(...args: any[]) => any>; disconnect: import("vitest").Mock<(...args: any[]) => any>; }; export declare function createMockScriptProcessor(bufferSize?: number, numberOfInputChannels?: number, numberOfOutputChannels?: number): { bufferSize: number; numberOfInputs: number; numberOfOutputs: number; onaudioprocess: any; connect: import("vitest").Mock<(...args: any[]) => any>; disconnect: import("vitest").Mock<(...args: any[]) => any>; addEventListener: import("vitest").Mock<(...args: any[]) => any>; removeEventListener: import("vitest").Mock<(...args: any[]) => any>; }; export declare function createMockBiquadFilter(): { type: BiquadFilterType; frequency: { value: number; setValueAtTime: import("vitest").Mock<(...args: any[]) => any>; }; Q: { value: number; setValueAtTime: import("vitest").Mock<(...args: any[]) => any>; }; gain: { value: number; setValueAtTime: import("vitest").Mock<(...args: any[]) => any>; }; detune: { value: number; setValueAtTime: import("vitest").Mock<(...args: any[]) => any>; }; connect: import("vitest").Mock<(...args: any[]) => any>; disconnect: import("vitest").Mock<(...args: any[]) => any>; getFrequencyResponse: import("vitest").Mock<(...args: any[]) => any>; }; export declare function createMockMediaStreamSource(): { connect: import("vitest").Mock<(...args: any[]) => any>; disconnect: import("vitest").Mock<(...args: any[]) => any>; mediaStream: null; numberOfInputs: number; numberOfOutputs: number; }; export declare function createMockMediaStreamDestination(): { stream: { id: string; active: boolean; getTracks: import("vitest").Mock<(...args: any[]) => any>; getAudioTracks: import("vitest").Mock<(...args: any[]) => any>; getVideoTracks: import("vitest").Mock<(...args: any[]) => any>; addEventListener: import("vitest").Mock<(...args: any[]) => any>; removeEventListener: import("vitest").Mock<(...args: any[]) => any>; addTrack: import("vitest").Mock<(...args: any[]) => any>; removeTrack: import("vitest").Mock<(...args: any[]) => any>; clone: import("vitest").Mock<(...args: any[]) => any>; getTrackById: import("vitest").Mock<(...args: any[]) => any>; }; numberOfInputs: number; numberOfOutputs: number; }; export declare function createMockAudioBuffer(numberOfChannels?: number, length?: number, sampleRate?: number): { numberOfChannels: number; length: number; sampleRate: number; duration: number; getChannelData: import("vitest").Mock<() => Float32Array<ArrayBuffer>>; copyFromChannel: import("vitest").Mock<(...args: any[]) => any>; copyToChannel: import("vitest").Mock<(...args: any[]) => any>; }; export declare function createMockAudioContext(options?: AudioContextMockOptions): any; /** * Setup AudioContext mock globally * Returns the mock instance for further customization */ export declare function setupAudioContextMock(options?: AudioContextMockOptions): { context: any; restore: () => void; }; /** * Helper to use AudioContext mock in beforeEach/afterEach */ export declare function useAudioContextMock(options?: AudioContextMockOptions): () => any; //# sourceMappingURL=audio-context-utils.d.ts.map