import type * as Agora from "../index.mjs"; /** * Multimodal Large Language Model (MLLM) configuration for real-time audio and text processing. */ export interface Mllm { /** Enable Multimodal Large Language Model. */ enable?: boolean | null; /** The MLLM WebSocket URL for real-time communication. */ url?: string; /** The API key used for MLLM authentication. */ api_key?: string; /** Base64-encoded Google Cloud Application Default Credentials. Used by Vertex AI. */ adc_credentials_string?: string; /** Google Cloud project ID. Used by Vertex AI. */ project_id?: string; /** Google Cloud location or region. Used by Vertex AI. */ location?: string; /** Array of conversation items used for short-term memory management. */ messages?: Record[] | null; params?: Agora.MllmParams; /** The number of conversation history messages cached in the MLLM. Applicable to Azure OpenAI Realtime API only. */ max_history?: number; /** MLLM input modalities. */ input_modalities?: string[] | null; /** MLLM output modalities. */ output_modalities?: string[] | null; /** Agent greeting message. */ greeting_message?: string; /** Agent failure message. */ failure_message?: string; /** * Inline REST (pass-through sync) tool definitions for standard text LLM function calling. * Required fields per tool: `type`, `function.name`, `function.parameters` * (`type: object` with `properties`), `server.method` (`GET` or `POST`), and `server.url`. * The combination of `type: function` and `server` identifies a REST tool. * Phase 1a supports GET and POST only; `execution.mode` defaults to and only accepts `sync`. * Template rules: * - Values must be a constant, or exactly one single-level placeholder. * - `{{args.}}`: `server.url` and `server.body` only; not allowed in headers. * - `{{template_variables.}}` and `{{tool_call_id}}`: `server.url`, `server.headers`, and `server.body`. */ tools?: Agora.LlmTool[]; /** MCP server configuration. */ mcp_servers?: Agora.McpServer[]; /** MLLM provider. */ vendor?: Mllm.Vendor; turn_detection?: Agora.MllmTurnDetection | null; /** Accepts any additional properties */ [key: string]: any; } export declare namespace Mllm { /** MLLM provider. */ const Vendor: { readonly Openai: "openai"; readonly Azure: "azure"; readonly Gemini: "gemini"; readonly Vertexai: "vertexai"; readonly Xai: "xai"; readonly QwenOmni: "qwen_omni"; }; type Vendor = (typeof Vendor)[keyof typeof Vendor]; }