import AudioResampler from "../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<Float32Array>;
        length: number;
    };
    completeAudioBuffer: {
        bufferArray: Array<Float32Array>;
        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 | undefined;
    getState: () => AudioStreamState;
}
//# sourceMappingURL=speech-audio-streamer.d.ts.map