/**
 * Voice Input Support (Aider inspired)
 *
 * Allows users to speak their prompts instead of typing.
 * Supports:
 * - OpenAI Whisper API
 * - Local whisper.cpp (if installed)
 * - System speech recognition (macOS)
 */
export interface VoiceConfig {
    /** Whisper API key (uses OpenAI key by default) */
    apiKey?: string;
    /** Use local whisper.cpp instead of API */
    useLocal?: boolean;
    /** Recording duration in seconds (0 = manual stop) */
    duration?: number;
    /** Language code (e.g., 'en', 'fr') */
    language?: string;
    /** Model size for local whisper */
    modelSize?: 'tiny' | 'base' | 'small' | 'medium' | 'large';
}
export interface VoiceResult {
    success: boolean;
    text: string;
    duration: number;
    error?: string;
}
/**
 * Check if sox/rec is available for recording
 */
export declare function hasRecordingCapability(): Promise<boolean>;
/**
 * Check if local whisper.cpp is available
 */
export declare function hasLocalWhisper(): Promise<boolean>;
/**
 * Record audio to a temporary file
 */
export declare function recordAudio(durationSeconds?: number, outputPath?: string): Promise<string>;
/**
 * Transcribe audio using OpenAI Whisper API
 */
export declare function transcribeWithWhisperAPI(audioPath: string, apiKey: string, language?: string): Promise<string>;
/**
 * Transcribe audio using local whisper.cpp
 */
export declare function transcribeWithLocalWhisper(audioPath: string, modelSize?: string, language?: string): Promise<string>;
/**
 * Main voice input function
 */
export declare function getVoiceInput(config?: VoiceConfig): Promise<VoiceResult>;
/**
 * Check voice input availability
 */
export declare function checkVoiceAvailability(): Promise<{
    available: boolean;
    recording: boolean;
    localWhisper: boolean;
    apiAvailable: boolean;
}>;
