import { type ClarionEngine, type ClarionEvent, type EngineKind, type EngineState, type Listener, type RecognizerEngineConfig, type Unsubscribe } from '@clarionhq/core'; export interface RecognizerEngineOptions extends RecognizerEngineConfig { /** Emit `audio-level` events for a VU-style meter. Default: false. */ emitAudioLevel?: boolean; /** Throttle in ms for `audio-level` events. Default: 50. */ audioLevelIntervalMs?: number; /** Prefer the on-device model where available (iOS). Default: false. */ preferOnDevice?: boolean; } /** * Wraps the platform speech recognizer (SFSpeechRecognizer on iOS, * SpeechRecognizer on Android) behind the shared `ClarionEngine` interface. * * Notes: * - Speech recognizers cannot truly pause without losing context, so * `pause()` and `resume()` throw `INVALID_STATE`. * - `stop()` returns void to satisfy `ClarionEngine`. The final transcript * is delivered via the `final` event on the emitter. */ /** * Returns true if the platform speech recognizer is available for the given * BCP-47 locale. Use this before `start()` to fail fast with a clear message * instead of bubbling a mid-session native error. */ export declare const isRecognizerAvailable: (language: string) => Promise; /** * BCP-47 tags supported by the platform recognizer on this device. * iOS: `SFSpeechRecognizer.supportedLocales()`. * Android: queried from the system speech service via broadcast. */ export declare const supportedRecognizerLocales: () => Promise; export declare class RecognizerEngine implements ClarionEngine { readonly kind: EngineKind; /** See top-level `isRecognizerAvailable`. */ static isAvailable: (language: string) => Promise; /** See top-level `supportedRecognizerLocales`. */ static supportedLocales: () => Promise; private readonly emitter; private readonly native; private readonly listenerIds; private readonly options; private currentState; constructor(options?: RecognizerEngineOptions); get state(): EngineState; on(listener: Listener): Unsubscribe; prepare(): Promise; start(): Promise; pause(): Promise; resume(): Promise; stop(): Promise; discard(): Promise; release(): Promise; private buildNativeConfig; private bindNativeListeners; private transitionTo; private setState; private toTranscriptResult; private toTranscriptSegment; private toClarionError; private mapErrorCode; private handleNativeError; } //# sourceMappingURL=RecognizerEngine.d.ts.map