import { Recorder } from './Recorder';
import Microphone, { MicrophoneOption } from './Microphone';
import Visualizer from './Visualizer';
import AudioSource from './AudioSource';
import Player from './Player';
import Speech, { GrammarItemType } from './Speech';
export declare enum AudioMeterType {
    frequency = "frequency",
    wave = "wave",
    bar = "bar"
}
interface NonMatchedMemos {
    text: string;
    url: string;
}
export default class ContinuousSpeechRecognitionRecorder extends Speech {
    audioSource: AudioSource;
    endRecording: boolean;
    language: string;
    matchingId?: string;
    microphone: Microphone;
    onAudioSegmentAvailable?: (blob: Blob, matchingId?: string) => void;
    otherMemos: NonMatchedMemos[];
    player: Player;
    recIndex: number;
    recordedAudioBlob: Blob | undefined;
    recordedAudioUrl: string;
    recorder: Recorder;
    shouldAutoRestartOnEndedPrematurely: boolean;
    spokenText?: string;
    visualizer: Visualizer;
    visualizerId: string;
    voiceMemos: Record<string, string[]>;
    constructor(grammar: GrammarItemType[], visualizerId: string, onAudioSegmentAvailable?: (blob: Blob, matchingId?: string) => void, shouldAutoRestartOnEndedPrematurely?: boolean, lang?: string);
    get currentVoiceMemos(): Record<string, string[]>;
    get audioUrl(): string;
    init: () => void;
    setRecordedAudioUrl: (url: string) => void;
    onRecordingComplete: (audio: Blob) => void;
    start: () => void;
    startRecording: () => void;
    showAudioMeter: (meterType?: AudioMeterType) => void;
    onInputChange: (selectedInput: MicrophoneOption, record: boolean) => Promise<void>;
    stopStreaming: () => void;
    onResult: (event: any) => void;
    onSpeechEnd: () => void;
    stopRecording: (matchedItemId?: string) => void;
    incrementIndex: () => void;
    stop: () => void;
}
export {};
