import TypedEmitter from "typed-emitter"; import { SessionEventCallbacks, AgentEventCallbacks } from "./events"; import { SessionState, SessionConfig, SessionMode } from "./types"; import { ConnectionQuality } from "../QualityIndicator"; import { VoiceChat } from "../VoiceChat"; declare const LiveAvatarSession_base: new () => TypedEmitter; export declare class LiveAvatarSession extends LiveAvatarSession_base { private readonly sessionClient; private readonly config; private readonly room; private readonly _voiceChat; private readonly connectionQualityIndicator; private _sessionInfo; private _sessionEventSocket; private _state; private _remoteAudioTrack; private _remoteVideoTrack; private readonly _mode; constructor(sessionAccessToken: string, config?: SessionConfig); get state(): SessionState; get mode(): SessionMode; get connectionQuality(): ConnectionQuality; get voiceChat(): VoiceChat; get maxSessionDuration(): number | null; start(): Promise; stop(): Promise; keepAlive(): Promise; attach(element: HTMLMediaElement): void; message(message: string): string; repeat(message: string): string; repeatAudio(audio: string): string; startListening(): string; stopListening(): string; interrupt(): void; private trackEvents; private waitForRequiredParticipants; private connectWebSocket; private setupWebSocketManagement; private handleWebSocketMessage; private handleWebSocketDisconnect; private configureSession; private set state(value); private cleanup; private postStop; private handleRoomDisconnect; private sendCommandEvent; private generateEventId; private sendCommandEventToWebSocket; private assertConnected; } export {};