import type { BaseClientOptions, BaseRequestOptions } from "../../../../../../BaseClient";
import { type NormalizedClientOptions } from "../../../../../../BaseClient";
import * as core from "../../../../../../core";
import * as ElevenLabs from "../../../../../index";
export declare namespace ToolsClient {
    type Options = BaseClientOptions;
    interface RequestOptions extends BaseRequestOptions {
    }
}
export declare class ToolsClient {
    protected readonly _options: NormalizedClientOptions<ToolsClient.Options>;
    constructor(options?: ToolsClient.Options);
    /**
     * Get all available tools in the workspace.
     *
     * @param {ElevenLabs.conversationalAi.ToolsListRequest} request
     * @param {ToolsClient.RequestOptions} requestOptions - Request-specific configuration.
     *
     * @throws {@link ElevenLabs.UnprocessableEntityError}
     *
     * @example
     *     await client.conversationalAi.tools.list({
     *         search: "search",
     *         pageSize: 1,
     *         showOnlyOwnedDocuments: true,
     *         createdByUserId: "created_by_user_id",
     *         sortDirection: "asc",
     *         sortBy: "name",
     *         cursor: "cursor"
     *     })
     */
    list(request?: ElevenLabs.conversationalAi.ToolsListRequest, requestOptions?: ToolsClient.RequestOptions): core.HttpResponsePromise<ElevenLabs.ToolsResponseModel>;
    private __list;
    /**
     * Add a new tool to the available tools in the workspace.
     *
     * @param {ElevenLabs.ToolRequestModel} request
     * @param {ToolsClient.RequestOptions} requestOptions - Request-specific configuration.
     *
     * @throws {@link ElevenLabs.UnprocessableEntityError}
     *
     * @example
     *     await client.conversationalAi.tools.create({
     *         toolConfig: {
     *             type: "client",
     *             name: "name",
     *             description: "description",
     *             expectsResponse: false
     *         }
     *     })
     */
    create(request: ElevenLabs.ToolRequestModel, requestOptions?: ToolsClient.RequestOptions): core.HttpResponsePromise<ElevenLabs.ToolResponseModel>;
    private __create;
    /**
     * Get tool that is available in the workspace.
     *
     * @param {string} tool_id - ID of the requested tool.
     * @param {ToolsClient.RequestOptions} requestOptions - Request-specific configuration.
     *
     * @throws {@link ElevenLabs.UnprocessableEntityError}
     *
     * @example
     *     await client.conversationalAi.tools.get("tool_id")
     */
    get(tool_id: string, requestOptions?: ToolsClient.RequestOptions): core.HttpResponsePromise<ElevenLabs.ToolResponseModel>;
    private __get;
    /**
     * Delete tool from the workspace.
     *
     * @param {string} tool_id - ID of the requested tool.
     * @param {ElevenLabs.conversationalAi.ToolsDeleteRequest} request
     * @param {ToolsClient.RequestOptions} requestOptions - Request-specific configuration.
     *
     * @throws {@link ElevenLabs.UnprocessableEntityError}
     *
     * @example
     *     await client.conversationalAi.tools.delete("tool_id", {
     *         force: true
     *     })
     */
    delete(tool_id: string, request?: ElevenLabs.conversationalAi.ToolsDeleteRequest, requestOptions?: ToolsClient.RequestOptions): core.HttpResponsePromise<unknown>;
    private __delete;
    /**
     * Update tool that is available in the workspace.
     *
     * @param {string} tool_id - ID of the requested tool.
     * @param {ElevenLabs.ToolRequestModel} request
     * @param {ToolsClient.RequestOptions} requestOptions - Request-specific configuration.
     *
     * @throws {@link ElevenLabs.UnprocessableEntityError}
     *
     * @example
     *     await client.conversationalAi.tools.update("tool_id", {
     *         toolConfig: {
     *             type: "client",
     *             name: "name",
     *             description: "description",
     *             expectsResponse: false
     *         }
     *     })
     */
    update(tool_id: string, request: ElevenLabs.ToolRequestModel, requestOptions?: ToolsClient.RequestOptions): core.HttpResponsePromise<ElevenLabs.ToolResponseModel>;
    private __update;
    /**
     * Get a list of agents depending on this tool
     *
     * @param {string} tool_id - ID of the requested tool.
     * @param {ElevenLabs.conversationalAi.ToolsGetDependentAgentsRequest} request
     * @param {ToolsClient.RequestOptions} requestOptions - Request-specific configuration.
     *
     * @throws {@link ElevenLabs.UnprocessableEntityError}
     *
     * @example
     *     await client.conversationalAi.tools.getDependentAgents("tool_id", {
     *         cursor: "cursor",
     *         pageSize: 1
     *     })
     */
    getDependentAgents(tool_id: string, request?: ElevenLabs.conversationalAi.ToolsGetDependentAgentsRequest, requestOptions?: ToolsClient.RequestOptions): core.HttpResponsePromise<ElevenLabs.GetToolDependentAgentsResponseModel>;
    private __getDependentAgents;
}
