import type * as ElevenLabs from "../index";
/**
 * A client tool is one that sends an event to the user's client to trigger something client side
 */
export interface ClientToolConfigOutput {
    name: string;
    /** Description of when the tool should be used and what it does. */
    description: string;
    /** The maximum time in seconds to wait for the tool call to complete. Must be between 1 and 120 seconds (inclusive). */
    responseTimeoutSecs?: number;
    /** If true, the user will not be able to interrupt the agent while this tool is running. */
    disableInterruptions?: boolean;
    /** If true, the agent will speak before the tool call. */
    forcePreToolSpeech?: boolean;
    /** Configuration for extracting values from tool responses and assigning them to dynamic variables */
    assignments?: ElevenLabs.DynamicVariableAssignment[];
    /** Predefined tool call sound type to play during tool execution. If not specified, no tool call sound will be played. */
    toolCallSound?: ElevenLabs.ToolCallSoundType;
    /** Determines when the tool call sound should play. 'auto' only plays when there's pre-tool speech, 'always' plays for every tool call. */
    toolCallSoundBehavior?: ElevenLabs.ToolCallSoundBehavior;
    /** Controls how tool errors are processed before being shared with the agent. 'auto' determines handling based on tool type (summarized for native integrations, hide for others), 'summarized' sends an LLM-generated summary, 'passthrough' sends the raw error, 'hide' does not share the error with the agent. */
    toolErrorHandlingMode?: ElevenLabs.ToolErrorHandlingMode;
    /** Schema for any parameters to pass to the client */
    parameters?: ElevenLabs.ObjectJsonSchemaPropertyOutput;
    /** If true, calling this tool should block the conversation until the client responds with some response which is passed to the llm. If false then we will continue the conversation without waiting for the client to respond, this is useful to show content to a user but not block the conversation */
    expectsResponse?: boolean;
    /** Configuration for dynamic variables */
    dynamicVariables?: ElevenLabs.DynamicVariablesConfig;
    /** Determines when and how the tool executes: 'immediate' executes the tool right away when requested by the LLM, 'post_tool_speech' waits for the agent to finish speaking before executing, 'async' runs the tool in the background without blocking - best for long-running operations. */
    executionMode?: ElevenLabs.ToolExecutionMode;
}
