import type { VoiceModelDownloadStatus, VoiceStartListeningOptions } from './main'; export enum NativeVoiceErrorCode { SPEECH_RECOGNIZER_NOT_AVAILABLE = 'ERR_SPEECH_RECOGNIZER_NOT_AVAILABLE', RECORDING_START_FAILED = 'ERR_RECORDING_START_FAILED', RECOGNITION_FAILED = 'ERR_RECOGNITION_FAILED', PERMISSION_DENIED = 'ERR_PERMISSION_DENIED', PERMISSION_RESTRICTED = 'ERR_PERMISSION_RESTRICTED', PERMISSION_NOT_DETERMINED = 'ERR_PERMISSION_NOT_DETERMINED', INVALID_STATE = 'ERR_INVALID_STATE', UNKNOWN = 'ERR_UNKNOWN', } export interface NativeVoiceKit { startListening: (options: Required) => Promise; stopListening: () => Promise; isSpeechRecognitionAvailable: () => Promise; isOnDeviceModelInstalled: (locale: string) => Promise; getSupportedLocales: () => Promise; downloadOnDeviceModel: (locale: string) => Promise<{ status: VoiceModelDownloadStatus; progressAvailable: boolean }>; }