import type * as Agora from "../index.js"; /** * Large language model (LLM) configuration. */ export interface Llm { /** The LLM callback address. */ url?: string; /** The LLM verification API key. */ api_key?: string; /** AWS access key ID. Used by Amazon Bedrock when api_key is not provided. */ access_key?: string | null; /** AWS secret access key. Used by Amazon Bedrock when api_key is not provided. */ secret_key?: string | null; /** AWS region. Used by Amazon Bedrock. */ region?: string; /** Top-level model identifier. Used by Amazon Bedrock. */ model?: string; /** A set of predefined information used as input to the LLM. */ system_messages?: Record[] | null; params?: Agora.LlmParams; /** The number of conversation history messages cached in the custom LLM. */ max_history?: number; /** LLM input modalities. */ input_modalities?: string[]; /** LLM output modalities. */ output_modalities?: string[]; /** Agent greeting. */ greeting_message?: string; /** Publicly accessible greeting audio URL. */ greeting_audio_url?: string; /** Prompt for agent activation failure. */ failure_message?: string; /** LLM provider identifier. */ vendor?: string; /** The request style for chat completion. */ style?: Llm.Style; /** Whether to handle empty Gemini responses. */ ignore_empty?: boolean | null; /** Agent greeting broadcast configuration. */ greeting_configs?: Llm.GreetingConfigs; /** Template parameter configuration. */ template_variables?: Record; /** MCP server configuration. */ mcp_servers?: Record[]; /** * 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[]; /** Custom headers to include in requests to the LLM. */ headers?: Record; /** Accepts any additional properties */ [key: string]: any; } export declare namespace Llm { /** The request style for chat completion. */ const Style: { readonly Openai: "openai"; readonly Gemini: "gemini"; readonly Anthropic: "anthropic"; readonly Dify: "dify"; readonly Bedrock: "bedrock"; }; type Style = (typeof Style)[keyof typeof Style]; /** * Agent greeting broadcast configuration. */ interface GreetingConfigs { /** Timeout in milliseconds for downloading greeting audio. */ audio_download_timeout_ms?: number | null; /** Sample rate in Hz for PCM greeting audio. */ audio_pcm_sample_rate?: number | null; /** Policy for handling ASR text during uninterruptible greeting playback. */ uninterruptible_asr_policy?: GreetingConfigs.UninterruptibleAsrPolicy | null; /** Accepts any additional properties */ [key: string]: any; } namespace GreetingConfigs { /** Policy for handling ASR text during uninterruptible greeting playback. */ const UninterruptibleAsrPolicy: { readonly MergeReply: "merge_reply"; readonly Context: "context"; }; type UninterruptibleAsrPolicy = (typeof UninterruptibleAsrPolicy)[keyof typeof UninterruptibleAsrPolicy]; } }