UNPKG

@elevenlabs/react-native

Version:

ElevenLabs React Native SDK for Conversational AI

237 lines (236 loc) 6.76 kB
/** * Role in the conversation */ export type Role = "user" | "ai"; /** * Current mode of the conversation */ export type Mode = "speaking" | "listening"; export type ConversationStatus = "disconnected" | "connecting" | "connected"; /** * Language support */ export type Language = "en" | "ja" | "zh" | "de" | "hi" | "fr" | "ko" | "pt" | "pt-br" | "it" | "es" | "id" | "nl" | "tr" | "pl" | "sv" | "bg" | "ro" | "ar" | "cs" | "el" | "fi" | "ms" | "da" | "ta" | "uk" | "ru" | "hu" | "hr" | "sk" | "no" | "vi"; /** * Client tools configuration */ export type ClientToolsConfig = { clientTools: Record<string, (parameters: unknown) => Promise<string | number | undefined> | string | number | undefined>; }; /** * Options for useConversation hook */ export type ConversationOptions = { serverUrl?: string; tokenFetchUrl?: string; clientTools?: Record<string, (parameters: unknown) => Promise<string | number | undefined> | string | number | undefined>; } & Partial<Callbacks>; /** * Callbacks configuration */ export type Callbacks = { onConnect?: (props: { conversationId: string; }) => void; onDebug?: (props: unknown) => void; onDisconnect?: (details: string) => void; onError?: (message: string, context?: Record<string, unknown>) => void; onMessage?: (props: { message: ConversationEvent; source: Role; }) => void; onModeChange?: (prop: { mode: Mode; }) => void; onStatusChange?: (prop: { status: ConversationStatus; }) => void; onCanSendFeedbackChange?: (prop: { canSendFeedback: boolean; }) => void; onUnhandledClientToolCall?: (params: ClientToolCallEvent) => void; }; export type ConversationConfig = { agentId?: string; conversationToken?: string; tokenFetchUrl?: string; overrides?: { agent?: { prompt?: { prompt?: string; }; firstMessage?: string; language?: Language; }; tts?: { voiceId?: string; }; conversation?: { textOnly?: boolean; }; client?: { source?: string; version?: string; }; }; customLlmExtraBody?: unknown; dynamicVariables?: Record<string, string | number | boolean>; userId?: string; }; export type UserTranscriptionEvent = { type: "user_transcript"; user_transcription_event: { user_transcript: string; }; }; export type AgentResponseEvent = { type: "agent_response"; agent_response_event: { agent_response: string; }; }; export type AgentResponseCorrectionEvent = { type: "agent_response_correction"; agent_response_correction_event: { original_agent_response: string; corrected_agent_response: string; }; }; export type AgentAudioEvent = { type: "audio"; audio_event: { audio_base_64: string; event_id: number; }; }; export type InterruptionEvent = { type: "interruption"; interruption_event: { event_id: number; }; }; export type InternalTentativeAgentResponseEvent = { type: "internal_tentative_agent_response"; tentative_agent_response_internal_event: { tentative_agent_response: string; }; }; export type ConfigEvent = { type: "conversation_initiation_metadata"; conversation_initiation_metadata_event: { conversation_id: string; agent_output_audio_format: string; user_input_audio_format?: string; }; }; export type PingEvent = { type: "ping"; ping_event: { event_id: number; ping_ms?: number; }; }; export type ClientToolCallEvent = { type: "client_tool_call"; client_tool_call: { tool_name: string; tool_call_id: string; parameters: any; expects_response: boolean; }; }; export type PongEvent = { type: "pong"; event_id: number; }; export type UserAudioEvent = { user_audio_chunk: string; }; export type UserFeedbackEvent = { type: "feedback"; score: "like" | "dislike"; event_id: number; }; export type ClientToolResultEvent = { type: "client_tool_result"; tool_call_id: string; result: any; is_error: boolean; }; export type ContextualUpdateEvent = { type: "contextual_update"; text: string; }; export type UserMessageEvent = { type: "user_message"; text: string; }; export type UserActivityEvent = { type: "user_activity"; }; export type MCPToolApprovalResultEvent = { type: "mcp_tool_approval_result"; tool_call_id: string; is_approved: boolean; }; export type VadScoreEvent = { type: "vad_score"; vad_score_event: { vad_score: number; }; }; export type InitiationClientDataEvent = { type: "conversation_initiation_client_data"; conversation_config_override?: { agent?: { prompt?: { prompt?: string; }; first_message?: string; language?: Language; }; tts?: { voice_id?: string; }; conversation?: { text_only?: boolean; }; source_info?: { source?: string | null; version?: string | null; }; }; custom_llm_extra_body?: unknown; dynamic_variables?: Record<string, string | number | boolean>; user_id?: string; }; interface BaseMCPToolCallClientEventData { service_id: string; tool_call_id: string; tool_name: string; tool_description?: string; parameters: Record<string, any>; timestamp: string; } interface MCPToolCallClientEventLoadingData extends BaseMCPToolCallClientEventData { state: "loading"; } interface MCPToolCallClientEventAwaitingApprovalData extends BaseMCPToolCallClientEventData { state: "awaiting_approval"; approval_timeout_secs: number; } interface MCPToolCallClientEventSuccessData extends BaseMCPToolCallClientEventData { state: "success"; result: any[]; } interface MCPToolCallClientEventFailureData extends BaseMCPToolCallClientEventData { state: "failure"; error_message: string; } type MCPToolCallClientEventData = MCPToolCallClientEventLoadingData | MCPToolCallClientEventAwaitingApprovalData | MCPToolCallClientEventSuccessData | MCPToolCallClientEventFailureData; export type MCPToolCallClientEvent = { type: "mcp_tool_call"; mcp_tool_call: MCPToolCallClientEventData; }; export type ConversationEvent = UserTranscriptionEvent | AgentResponseEvent | AgentResponseCorrectionEvent | AgentAudioEvent | InterruptionEvent | InternalTentativeAgentResponseEvent | ConfigEvent | PingEvent | ClientToolCallEvent | VadScoreEvent | MCPToolCallClientEvent; export {};