import { STTProvider, SpeechError } from './types.js'; interface _SpeechRecognitionAlternative { readonly transcript: string; readonly confidence: number; } interface _SpeechRecognitionResult { readonly isFinal: boolean; readonly length: number; [index: number]: _SpeechRecognitionAlternative; } interface _SpeechRecognitionResultList { readonly length: number; [index: number]: _SpeechRecognitionResult; } interface _SpeechRecognitionResultEvent { readonly resultIndex: number; readonly results: _SpeechRecognitionResultList; } interface _SpeechRecognitionErrorEvent { readonly error: string; readonly message?: string; } interface _SpeechRecognitionInstance { lang: string; interimResults: boolean; continuous: boolean; maxAlternatives: number; onresult: ((_: _SpeechRecognitionResultEvent) => void) | null; onerror: ((_: _SpeechRecognitionErrorEvent) => void) | null; onend: (() => void) | null; start(): void; stop(): void; } interface _SpeechRecognitionConstructor { new (): _SpeechRecognitionInstance; } declare global { interface Window { SpeechRecognition?: _SpeechRecognitionConstructor; webkitSpeechRecognition?: _SpeechRecognitionConstructor; } } export interface WebSpeechSTTOptions { /** BCP-47 language code, e.g. 'en-US'. Defaults to browser UI lang */ lang?: string; /** Whether to return interim (non-final) results. Default: true */ interimResults?: boolean; /** Whether recognition continues after the first final result. Default: true */ continuous?: boolean; /** Maximum number of alternative transcripts per result. Default: 1 */ maxAlternatives?: number; } export declare class WebSpeechSTTProvider implements STTProvider { readonly isSupported: boolean; readonly continuous: boolean; private _recognition; private _options; private _transcriptCbs; private _finalCbs; private _endCbs; private _errorCbs; constructor(options?: WebSpeechSTTOptions); onTranscript(cb: (transcript: string, confidence: number) => void): void; onFinalTranscript(cb: (transcript: string, confidence: number) => void): void; onEnd(cb: () => void): void; onError(cb: (err: SpeechError) => void): void; start(): void; stop(): void; private _teardown; private _emitError; } export {};