import { SessionDisconnectReason, SessionState } from "./types"; import { ConnectionQuality } from "../QualityIndicator"; export declare enum SessionEvent { SESSION_STATE_CHANGED = "session.state_changed", SESSION_STREAM_READY = "session.stream_ready", SESSION_CONNECTION_QUALITY_CHANGED = "session.connection_quality_changed", SESSION_DISCONNECTED = "session.disconnected" } export type SessionEventCallbacks = { [SessionEvent.SESSION_STATE_CHANGED]: (state: SessionState) => void; [SessionEvent.SESSION_CONNECTION_QUALITY_CHANGED]: (quality: ConnectionQuality) => void; [SessionEvent.SESSION_STREAM_READY]: () => void; [SessionEvent.SESSION_DISCONNECTED]: (reason: SessionDisconnectReason) => void; }; export declare enum AgentEventsEnum { SESSION_UPDATED = "session.updated", SESSION_STATE_UPDATED = "session.state_updated", USER_SPEAK_STARTED = "user.speak_started", USER_SPEAK_ENDED = "user.speak_ended", USER_TRANSCRIPTION = "user.transcription", USER_TRANSCRIPTION_CHUNK = "user.transcription.chunk", AVATAR_TRANSCRIPTION = "avatar.transcription", AVATAR_TRANSCRIPTION_CHUNK = "avatar.transcription.chunk", AVATAR_SPEAK_STARTED = "avatar.speak_started", AVATAR_SPEAK_ENDED = "avatar.speak_ended", ELEVENLABS_AGENT_EVENT = "elevenlabs_agent_event", SESSION_STOPPED = "session.stopped" } export type AgentEventData = { event_id: string; event_type: T; source_event_id?: string; session_id?: string; } & U; export type ElevenLabsAgentEventPayload = { elevenlabs_event_type: string; data: Record; }; export type AgentEvent = AgentEventData | AgentEventData | AgentEventData | AgentEventData | AgentEventData | AgentEventData | AgentEventData | AgentEventData | AgentEventData | AgentEventData; export type AgentEventCallbacks = { [AgentEventsEnum.USER_SPEAK_STARTED]: (event: AgentEventData) => void; [AgentEventsEnum.USER_SPEAK_ENDED]: (event: AgentEventData) => void; [AgentEventsEnum.AVATAR_SPEAK_STARTED]: (event: AgentEventData) => void; [AgentEventsEnum.AVATAR_SPEAK_ENDED]: (event: AgentEventData) => void; [AgentEventsEnum.USER_TRANSCRIPTION]: (event: AgentEventData) => void; [AgentEventsEnum.USER_TRANSCRIPTION_CHUNK]: (event: AgentEventData) => void; [AgentEventsEnum.AVATAR_TRANSCRIPTION]: (event: AgentEventData) => void; [AgentEventsEnum.AVATAR_TRANSCRIPTION_CHUNK]: (event: AgentEventData) => void; [AgentEventsEnum.ELEVENLABS_AGENT_EVENT]: (event: AgentEventData) => void; [AgentEventsEnum.SESSION_STOPPED]: (event: AgentEventData) => void; }; export declare const getAgentEventEmitArgs: (event: AgentEvent) => AgentEventEmitArgs | null; export declare enum CommandEventsEnum { SESSION_UPDATE = "session.update", SESSION_STOP = "session.stop", AVATAR_INTERRUPT = "avatar.interrupt", AVATAR_SPEAK_TEXT = "avatar.speak_text", AVATAR_SPEAK_RESPONSE = "avatar.speak_response", AVATAR_SPEAK_AUDIO = "avatar.speak_audio", AVATAR_START_LISTENING = "avatar.start_listening", AVATAR_STOP_LISTENING = "avatar.stop_listening" } type CommandEventData = { event_id?: string; event_type: T; } & U; export type CommandEvent = CommandEventData | CommandEventData | CommandEventData | CommandEventData | CommandEventData | CommandEventData | CommandEventData | CommandEventData; export type AgentEventEmitArgs = { [K in keyof AgentEventCallbacks]: [K, ...Parameters]; }[keyof AgentEventCallbacks]; export {};