import type * as Phonic from "../index.mjs";
/**
 * Inline WebSocket tool definition for this conversation. Inline tools are not persisted to your workspace; they are executed by your connected WebSocket application when Phonic sends a `tool_call` message.
 */
export interface InlineWebSocketTool {
    type: "custom_websocket";
    tool_schema: Phonic.OpenAiTool;
    /** Whether the assistant waits for the tool output before continuing. */
    execution_mode?: InlineWebSocketTool.ExecutionMode | undefined;
    /** Timeout in milliseconds for the client to send a `tool_call_output` message. */
    tool_call_output_timeout_ms?: number | undefined;
    /** When true, forces the assistant to speak before executing the tool. */
    require_speech_before_tool_call?: boolean | undefined;
    /** When true, waits for the assistant's speech to finish before sending the tool call. */
    wait_for_speech_before_tool_call?: boolean | undefined;
    /** When true, prevents the assistant from speaking after executing the tool. */
    forbid_speech_after_tool_call?: boolean | undefined;
    /** When true, allows the assistant to call another tool after this tool. */
    allow_tool_chaining?: boolean | undefined;
    /** For async tools, when true, the assistant waits for the response and speaks when it arrives. */
    wait_for_response?: boolean | undefined;
}
export declare namespace InlineWebSocketTool {
    /** Whether the assistant waits for the tool output before continuing. */
    const ExecutionMode: {
        readonly Sync: "sync";
        readonly Async: "async";
    };
    type ExecutionMode = (typeof ExecutionMode)[keyof typeof ExecutionMode];
}
