import { VoiceClient, VoiceConfig, VoiceResponse, ConversationMessage } from '../../core/VoiceClient';
export interface UseVoiceClientOptions extends Partial<VoiceConfig> {
    autoInitialize?: boolean;
    enableDebugLogs?: boolean;
    onError?: (error: any) => void;
    onMessageReceived?: (response: VoiceResponse) => void;
    onProcessingStateChange?: (isProcessing: boolean) => void;
}
export interface VoiceClientState {
    isInitialized: boolean;
    isProcessing: boolean;
    isPlaying: boolean;
    error: string | null;
    conversationHistory: ConversationMessage[];
    performanceMetrics: {
        averageLatency: number;
        requestCount: number;
        cacheHitRate: number;
        errorRate: number;
    };
}
/**
 * React hook for VoiceClient with optimized state management
 */
export declare const useVoiceClient: (options: UseVoiceClientOptions) => {
    sendVoiceMessage: (input: Blob | File | {
        audio: string;
        mimeType: string;
    } | string, config?: Partial<VoiceConfig>) => Promise<VoiceResponse | null>;
    sendTextMessage: (text: string, config?: Partial<VoiceConfig>) => Promise<VoiceResponse | null>;
    transcribeAudio: (audioInput: Blob | File | {
        audio: string;
        mimeType: string;
    }, config?: Partial<VoiceConfig>) => Promise<VoiceResponse | null>;
    textToSpeech: (text: string, config?: Partial<VoiceConfig>) => Promise<VoiceResponse | null>;
    playAudio: (audioData: string) => Promise<void>;
    clearConversationHistory: () => void;
    clearCache: () => void;
    clearError: () => void;
    updateConfig: (updates: Partial<VoiceConfig>) => void;
    getStatus: () => {
        isProcessing: boolean;
        cacheSize: number;
        conversationLength: number;
        config: {
            apiKey: string;
            baseUrl: string;
            language: string;
            voiceId: string;
            audioFormat: "mp3" | "wav" | "ogg";
            priority: "speed" | "quality" | "balanced";
            mode: "full-voice" | "stt-only" | "tts-only" | "auto";
            enableSTT: boolean;
            enableTTS: boolean;
            autoPlay: boolean;
            enableCompression: boolean;
            enableCaching: boolean;
            chunkSize: number;
            maxCacheSize: number;
            timeout: number;
            retryAttempts: number;
            ultraFastMode: boolean;
            preloadVoices: boolean;
            enableWebWorkers: boolean;
        };
        performance: {
            averageLatency: number;
            requestCount: number;
            cacheHitRate: number;
            errorRate: number;
        };
    } | null;
    reinitialize: (newOptions?: Partial<VoiceConfig>) => Promise<void>;
    client: VoiceClient | null;
    isReady: boolean;
    isBusy: boolean;
    isInitialized: boolean;
    isProcessing: boolean;
    isPlaying: boolean;
    error: string | null;
    conversationHistory: ConversationMessage[];
    performanceMetrics: {
        averageLatency: number;
        requestCount: number;
        cacheHitRate: number;
        errorRate: number;
    };
};
//# sourceMappingURL=useVoiceClient.d.ts.map