UNPKG

@varunmhajan/hom-i-voice-ai

Version:

Voice AI utilities for home loan assistance with India-specific formatting

89 lines 3.16 kB
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