import { onTalkingHandler } from 'recorder/TrawTalkingDetector';
import { onBlockCreatedHandler, onCreatingBlockUpdatedHandler, onVoiceCreatedHandler } from 'recorder/TrawVoiceBlockGenerator';
export interface TrawRecorderOptions {
    audioDeviceId?: string;
    audioBitsPerSecond?: number;
    speechRecognitionLanguage: string;
    audioContext?: AudioContext;
    silenceTimeout?: number;
    onTalking?: onTalkingHandler;
    onCreatingBlockUpdate?: onCreatingBlockUpdatedHandler;
    onBlockCreated?: onBlockCreatedHandler;
    onVoiceCreated?: onVoiceCreatedHandler;
}
export declare class TrawRecorder {
    private _audioContext;
    private _mediaStreamManager;
    private _trawVoiceBlockGenerator;
    private _trawVoiceRecorder;
    private _trawTalkingDetector;
    private _trawSpeechRecognizer;
    onTalking?: onTalkingHandler;
    onCreatingBlockUpdate?: onCreatingBlockUpdatedHandler;
    onBlockCreated?: onBlockCreatedHandler;
    onVoiceCreated?: onVoiceCreatedHandler;
    constructor({ audioDeviceId, audioBitsPerSecond, speechRecognitionLanguage, audioContext, silenceTimeout, onTalking, onCreatingBlockUpdate, onBlockCreated, onVoiceCreated, }: TrawRecorderOptions);
    static isSupported(): boolean;
    get isMuted(): boolean;
    startRecording: () => Promise<void>;
    stopRecording: () => void;
    mute: () => void;
    unmute: () => void;
    changeSpeechRecognitionLanguage: (lang: string) => void;
    private _onChangeMediaStream;
    private _onTalking;
    private _onSilence;
    private _onRecognized;
    private _onFileCreated;
}
//# sourceMappingURL=TrawRecorder.d.ts.map