import { LitElement, TemplateResult, CSSResult } from 'lit'; declare global { interface HTMLElementTagNameMap { 'forge-ai-voice-input': AiVoiceInputComponent; } interface Window { SpeechRecognition: typeof SpeechRecognition; webkitSpeechRecognition: typeof SpeechRecognition; } } interface SpeechRecognitionAlternative { readonly transcript: string; readonly confidence: number; } interface SpeechRecognitionResult { readonly length: number; item(index: number): SpeechRecognitionAlternative; [index: number]: SpeechRecognitionAlternative; } interface SpeechRecognitionResultList { readonly length: number; item(index: number): SpeechRecognitionResult; [index: number]: SpeechRecognitionResult; } interface SpeechRecognitionEvent extends Event { readonly results: SpeechRecognitionResultList; } interface SpeechRecognition extends EventTarget { continuous: boolean; interimResults: boolean; lang: string; start(): void; stop(): void; onstart: ((this: SpeechRecognition, ev: Event) => void) | null; onend: ((this: SpeechRecognition, ev: Event) => void) | null; onerror: ((this: SpeechRecognition, ev: Event) => void) | null; onresult: ((this: SpeechRecognition, ev: SpeechRecognitionEvent) => void) | null; } declare const SpeechRecognition: { prototype: SpeechRecognition; new (): SpeechRecognition; }; export declare const AiVoiceInputComponentTagName: keyof HTMLElementTagNameMap; /** * Event detail interface for the speech recognition result event. */ export interface ForgeAiVoiceInputResultEvent { /** The recognized speech text */ transcript: string; /** Confidence score of the recognition result (0-1) */ confidence: number; } /** * @tag forge-ai-voice-input * * @event {CustomEvent} forge-ai-voice-input-result - Fired when speech recognition produces a result. * The event detail contains the transcript and confidence score of the recognized speech. */ export declare class AiVoiceInputComponent extends LitElement { static styles: CSSResult; private _isRecording; private _recognition; connectedCallback(): void; private _initializeSpeechRecognition; private _toggleRecording; render(): TemplateResult; } export {};