@varunmhajan/hom-i-voice-ai
Version:
Voice AI utilities for home loan assistance with India-specific formatting
52 lines • 1.89 kB
TypeScript
import { VoiceRecorder, RecorderConfig, RecorderState, AudioChunk } from '../../core/VoiceRecorder';
export interface UseVoiceRecorderOptions extends Partial<RecorderConfig> {
autoInitialize?: boolean;
enableDebugLogs?: boolean;
onRecordingStart?: () => void;
onRecordingStop?: (audioBlob: Blob) => void;
onVoiceStart?: () => void;
onVoiceEnd?: () => void;
onAudioLevel?: (level: number) => void;
onError?: (error: any) => void;
onAudioChunk?: (chunk: AudioChunk) => void;
}
export interface VoiceRecorderState extends RecorderState {
isSupported: boolean;
isInitialized: boolean;
supportedMimeTypes: string[];
}
/**
* React hook for VoiceRecorder with optimized state management
*/
export declare const useVoiceRecorder: (options?: UseVoiceRecorderOptions) => {
startRecording: () => Promise<void>;
stopRecording: () => Promise<Blob>;
toggleRecording: () => Promise<Blob | void>;
clearError: () => void;
updateConfig: (updates: Partial<RecorderConfig>) => void;
getRecorderState: () => RecorderState | null;
getConfig: () => RecorderConfig | null;
getPerformanceMetrics: () => {
totalRecordings: number;
averageRecordingDuration: number;
vadAccuracy: number;
processingLatency: number;
} | null;
reinitialize: (newOptions?: Partial<RecorderConfig>) => Promise<void>;
formatDuration: (milliseconds: number) => string;
recorder: VoiceRecorder | null;
isReady: boolean;
canRecord: boolean;
canStop: boolean;
formattedDuration: string;
isSupported: boolean;
isInitialized: boolean;
supportedMimeTypes: string[];
isRecording: boolean;
isProcessing: boolean;
voiceActivityDetected: boolean;
audioLevel: number;
recordingDuration: number;
error: string | null;
};
//# sourceMappingURL=useVoiceRecorder.d.ts.map