import { VoiceRecorder, RecorderConfig, RecorderState, AudioChunk } from '../../core/VoiceRecorder';
export interface UseVoiceRecorderOptions extends Partial<RecorderConfig> {
    autoInitialize?: boolean;
    enableDebugLogs?: boolean;
    onRecordingStart?: () => void;
    onRecordingStop?: (audioBlob: Blob) => void;
    onVoiceStart?: () => void;
    onVoiceEnd?: () => void;
    onAudioLevel?: (level: number) => void;
    onError?: (error: any) => void;
    onAudioChunk?: (chunk: AudioChunk) => void;
}
export interface VoiceRecorderState extends RecorderState {
    isSupported: boolean;
    isInitialized: boolean;
    supportedMimeTypes: string[];
}
/**
 * React hook for VoiceRecorder with optimized state management
 */
export declare const useVoiceRecorder: (options?: UseVoiceRecorderOptions) => {
    startRecording: () => Promise<void>;
    stopRecording: () => Promise<Blob>;
    toggleRecording: () => Promise<Blob | void>;
    clearError: () => void;
    updateConfig: (updates: Partial<RecorderConfig>) => void;
    getRecorderState: () => RecorderState | null;
    getConfig: () => RecorderConfig | null;
    getPerformanceMetrics: () => {
        totalRecordings: number;
        averageRecordingDuration: number;
        vadAccuracy: number;
        processingLatency: number;
    } | null;
    reinitialize: (newOptions?: Partial<RecorderConfig>) => Promise<void>;
    formatDuration: (milliseconds: number) => string;
    recorder: VoiceRecorder | null;
    isReady: boolean;
    canRecord: boolean;
    canStop: boolean;
    formattedDuration: string;
    isSupported: boolean;
    isInitialized: boolean;
    supportedMimeTypes: string[];
    isRecording: boolean;
    isProcessing: boolean;
    voiceActivityDetected: boolean;
    audioLevel: number;
    recordingDuration: number;
    error: string | null;
};
//# sourceMappingURL=useVoiceRecorder.d.ts.map