/** Normalised voice-recognition error. `null` is never surfaced (e.g. aborts). */ export type VoiceInputErrorCode = 'not-allowed' | 'network' | 'no-speech' | 'audio-capture' | 'language-not-supported' | 'phrases-not-supported' | 'unknown'; export interface VoiceInputProps { lang?: string; onError?: (code: VoiceInputErrorCode) => void; onListeningChange?: (isListening: boolean) => void; } export interface VoiceInputResult { isSupported: boolean; isListening: boolean; errorCode: VoiceInputErrorCode | null; transcript: string; start: () => void; stop: () => void; toggle: () => void; } export declare const useVoiceInput: (options: VoiceInputProps) => VoiceInputResult;