interface SpeechRecognition extends EventTarget { lang: string; continuous: boolean; interimResults: boolean; maxAlternatives: number; start(): void; stop(): void; abort(): void; onerror: ((this: SpeechRecognition, ev: SpeechRecognitionErrorEvent) => any) | null; onresult: ((this: SpeechRecognition, ev: SpeechRecognitionEvent) => any) | null; onstart: ((this: SpeechRecognition, ev: Event) => any) | null; onend: ((this: SpeechRecognition, ev: Event) => any) | null; } interface SpeechRecognitionErrorEvent extends Event { error: 'no-speech' | 'aborted' | 'audio-capture' | 'network' | 'not-allowed' | 'service-not-allowed' | 'bad-grammar' | 'language-not-supported'; message: string; } interface SpeechRecognitionEvent extends Event { resultIndex: number; results: SpeechRecognitionResultList; } interface SpeechRecognitionResultList { length: number; item(index: number): SpeechRecognitionResult; [index: number]: SpeechRecognitionResult; } interface SpeechRecognitionResult { isFinal: boolean; length: number; item(index: number): SpeechRecognitionAlternative; [index: number]: SpeechRecognitionAlternative; } interface SpeechRecognitionAlternative { transcript: string; confidence: number; } declare global { interface Window { SpeechRecognition: new () => SpeechRecognition; webkitSpeechRecognition: new () => SpeechRecognition; } } export type UseSpeechToTextOptions = { /** * Language for speech recognition (e.g., 'en-US', 'es-ES') * @default 'en-US' */ lang?: string; /** * Whether to return interim (partial) results * @default true */ interimResults?: boolean; /** * Maximum number of alternative transcriptions * @default 1 */ maxAlternatives?: number; /** * Whether recognition should continue after user stops speaking * @default false */ continuous?: boolean; /** * Callback when transcription text changes */ onTranscript?: (text: string) => void; /** * Callback when an error occurs */ onError?: (error: string) => void; }; export declare const useSpeechToText: (options?: UseSpeechToTextOptions) => { readonly isListening: boolean; readonly isSupported: boolean; readonly startListening: import("../../hooks/use-stable-callback").StableCallback<[], void>; readonly stopListening: import("../../hooks/use-stable-callback").StableCallback<[], void>; }; export {}; //# sourceMappingURL=use-speech-to-text.d.ts.map