@varunmhajan/hom-i-voice-ai
Version:
Voice AI utilities for home loan assistance with India-specific formatting
89 lines • 3.16 kB
TypeScript
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