import AudioResampler from "./libs/speech-audio-resampler"; declare global { interface Window { webkitAudioContext: any; mozAudioContext: any; webkitMediaStream: any; process: any; } interface Navigator { msSaveOrOpenBlob: any; msSaveBlob: any; } } export interface AudioStreamConfig { sampleRate: number; mimeType: string; bitRate: number; bufferSize: 0 | 256 | 512 | 1024 | 2048 | 4096 | 8192 | 16384; callBack?: Function; } export declare type AudioWorker = { worker: Worker; workerURL: string; }; export declare type AudioStreamState = "PAUSED" | "RECORDING" | "INACTIVE" | "STOPPED" | "DESTROYED"; export default class AudioStreamer { constructor(mediaStream: MediaStream, config: AudioStreamConfig); mediaStream: MediaStream; config: AudioStreamConfig; state: AudioStreamState; blob: Blob; audioNode: ScriptProcessorNode; audioInput: MediaStreamAudioSourceNode; audioProcessStatus: boolean; audioContext: AudioContext; audioResampler: AudioResampler; timeSlicedAudioBuffer: { bufferArray: Array; length: number; }; completeAudioBuffer: { bufferArray: Array; length: number; }; onAudioDataAvailable: (e: AudioProcessingEvent) => void; private callBack; private processAudioBuffers; private enableCompatibility; private setState; private initiateAudioWithSampleRate; private initiateAudio; private isMediaStreamActive; private reset; private getTracks; startRecording: () => boolean; pauseRecording: () => void; resumeRecording: () => void; stopRecording: (callback: Function) => void; destroy: () => void; getBlob: () => Blob; getURL: () => string; getState: () => AudioStreamState; }