import { EventEmitter } from "events";
export interface VoiceConfig {
    provider: "whisper" | "deepgram" | "system";
    apiKey?: string;
    language?: string;
    model?: string;
}
export interface TranscriptionResult {
    text: string;
    confidence?: number;
    duration?: number;
}
export declare class VoiceInput extends EventEmitter {
    private config;
    private isRecording;
    private recordingProcess;
    private tempDir;
    constructor(config?: VoiceConfig);
    isAvailable(): Promise<boolean>;
    /**
     * Check if a command exists using spawn (secure alternative to exec)
     */
    private commandExists;
    startRecording(): Promise<string>;
    stopRecording(): Promise<string | null>;
    transcribe(audioFile: string): Promise<TranscriptionResult>;
    private transcribeWithWhisper;
    private transcribeWithDeepgram;
    private transcribeWithSystem;
    recordAndTranscribe(maxDuration?: number): Promise<TranscriptionResult>;
    getRecordingStatus(): {
        isRecording: boolean;
    };
    formatHelp(): string;
    cleanup(): Promise<void>;
    /**
     * Dispose and cleanup resources
     */
    dispose(): Promise<void>;
}
export declare function getVoiceInput(config?: VoiceConfig): VoiceInput;
export declare function resetVoiceInput(): void;
