import{type PropertyValues,type TemplateResult}from'lit';import{LyraElement}from'../../../internal/lyra-element.js';import type{LyraTranscriptEntry}from'../transcript-feed/transcript-feed.class.js';import type{AudioVisualizerState}from'../audio-visualizer/audio-visualizer.class.js';import type{LyraPushToTalkEventMap}from'../push-to-talk/push-to-talk.class.js';import'../audio-visualizer/audio-visualizer.class.js';import'../push-to-talk/push-to-talk.class.js';import'../transcript-feed/transcript-feed.class.js';import'../../overlays/badge/badge.class.js';export type RealtimeConnectionState='disconnected'|'connecting'|'connected'|'reconnecting'|'error';export interface LyraRealtimeSessionEventMap extends LyraPushToTalkEventMap{'lr-connect':CustomEvent;'lr-disconnect':CustomEvent;'lr-mute-change':CustomEvent<{muted:boolean;}>;'lr-interrupt':CustomEvent;} /** * `` — a provider-neutral voice-session shell composing connection status, * live activity, transcript, native capture, mute, interruption, and connect/disconnect intents. * Transport, authentication, audio playback, and SDK ownership remain with the host. * State transitions transfer focus from a disappearing session action to the replacement * connect/disconnect action. Hiding the public capture surface does the same only when capture * owned focus; surviving or foreign focus is never moved. * * Public collection properties take bounded, clone-owned readonly snapshots. Create a new * collection and reassign it after changes; mutating the assigned array does not update the view. * * @customElement lr-realtime-session * @slot controls - Additional provider-specific controls. * @event lr-connect - Connection was requested. * @event lr-disconnect - Disconnection was requested. * @event lr-mute-change - A controlled microphone mute change was requested. * @event lr-interrupt - Interruption of the current response was requested. * @event lr-record-start - Passthrough from capture. `detail: { stream: MediaStream }`. * @event lr-record-chunk - Passthrough from capture. `detail: { blob: Blob }`. * @event lr-record-stop - Passthrough from capture. `detail: { blob: Blob; durationMs: number }`. * @event lr-record-cancel - Passthrough from capture with no detail. * @event lr-record-error - Passthrough from capture. `detail: { error: DOMException | Error }`. * @event lr-level - Passthrough from capture. `detail: { level: number }`. * @event lr-record-state-change - Passthrough from capture. `detail: { state: PushToTalkState }`. * @csspart base - The named session region. * @csspart header - Status and session controls. * @csspart status - Connection status badge. * @csspart activity - Voice activity visualization. * @csspart controls - Built-in and slotted controls. * @csspart connect - Connect action. * @csspart disconnect - Disconnect action. * @csspart mute - Controlled mute action. * @csspart interrupt - Response interruption action. * @csspart capture - Native push-to-talk capture. * @csspart transcript - Live transcript. * @csspart error - Localized connection error. * @status stable * @since 7.0.0 */ export declare class LyraRealtimeSession extends LyraElement{protected static readonly ownedCollectionProperties:readonly string[];static styles:import("lit").CSSResultGroup[];private _state;get state():RealtimeConnectionState;set state(next:RealtimeConnectionState);private _voiceState;get voiceState():AudioVisualizerState;set voiceState(next:AudioVisualizerState);level:number|null;stream:MediaStream|null; /** Stable identity forwarded to the transcript feed. Changing it resets finalized-entry * announcement history so reused entry ids in a new session remain unambiguous. */ sessionId:string;entries:readonly LyraTranscriptEntry[];muted:boolean; /** Shows native push-to-talk capture. Hiding a focused capture transfers focus to the current * connect/disconnect action; hiding it while another control owns focus leaves that focus alone. */ showCapture:boolean;label:string;private transferActionFocus?;private statusAnnouncementSink?;private errorAnnouncementSink?;private suppressNextStateAnnouncement;constructor();private syncAnnouncementSinks;connectedCallback():void;disconnectedCallback():void;protected willUpdate(changed:PropertyValues):void;protected updated(changed:PropertyValues):void;private stateLabel;private containNativeEvent;render():TemplateResult;}declare global{interface HTMLElementTagNameMap{'lr-realtime-session':LyraRealtimeSession;}}