import { EventEmitter } from 'eventemitter3';
export interface RecorderConfig {
    sampleRate?: number;
    channels?: number;
    audioBitsPerSecond?: number;
    mimeType?: string;
    enableVAD?: boolean;
    vadThreshold?: number;
    silenceTimeout?: number;
    minRecordingTime?: number;
    maxRecordingTime?: number;
    chunkDuration?: number;
    enableNoiseSuppression?: boolean;
    enableEchoCancellation?: boolean;
    enableAutoGainControl?: boolean;
    ultraFastMode?: boolean;
    enableRealTimeProcessing?: boolean;
    bufferSize?: number;
}
export interface RecorderState {
    isRecording: boolean;
    isProcessing: boolean;
    voiceActivityDetected: boolean;
    audioLevel: number;
    recordingDuration: number;
    error: string | null;
}
export interface AudioChunk {
    data: Blob;
    timestamp: number;
    duration: number;
    isLast?: boolean;
}
/**
 * Ultra-fast Voice Recorder with advanced VAD and low-latency processing
 */
export declare class VoiceRecorder extends EventEmitter {
    private config;
    private mediaRecorder;
    private mediaStream;
    private audioContext;
    private analyser;
    private scriptProcessor;
    private recordingState;
    private audioChunks;
    private recordingStartTime;
    private silenceTimer;
    private vadTimer;
    private animationFrame;
    private performanceMetrics;
    constructor(config?: RecorderConfig);
    private initializeAudioContext;
    /**
     * Start recording with optimized settings
     */
    startRecording(): Promise<void>;
    /**
     * Stop recording and return audio data
     */
    stopRecording(): Promise<Blob>;
    /**
     * Setup audio analysis for VAD and level monitoring
     */
    private setupAudioAnalysis;
    /**
     * Setup optimized media recorder
     */
    private setupMediaRecorder;
    /**
     * Find the best supported MIME type for recording
     */
    private findBestMimeType;
    /**
     * Voice Activity Detection with optimized algorithms
     */
    private startVoiceActivityDetection;
    /**
     * Stop voice activity detection
     */
    private stopVoiceActivityDetection;
    /**
     * Start silence timer for auto-stop
     */
    private startSilenceTimer;
    /**
     * Clear silence timer
     */
    private clearSilenceTimer;
    /**
     * Start duration tracking with auto-stop
     */
    private startDurationTracking;
    /**
     * Stop duration tracking
     */
    private stopDurationTracking;
    /**
     * Process audio buffer for real-time analysis
     */
    private processAudioBuffer;
    /**
     * Update performance metrics
     */
    private updatePerformanceMetrics;
    /**
     * Handle errors consistently
     */
    private handleError;
    /**
     * Cleanup resources
     */
    private cleanup;
    getState(): RecorderState;
    getConfig(): RecorderConfig;
    getPerformanceMetrics(): {
        totalRecordings: number;
        averageRecordingDuration: number;
        vadAccuracy: number;
        processingLatency: number;
    };
    updateConfig(updates: Partial<RecorderConfig>): void;
    /**
     * Check if browser supports recording
     */
    static isSupported(): boolean;
    /**
     * Get supported MIME types
     */
    static getSupportedMimeTypes(): string[];
    /**
     * Destroy recorder and cleanup all resources
     */
    destroy(): void;
}
//# sourceMappingURL=VoiceRecorder.d.ts.map