import type { BaseClientOptions, BaseRequestOptions } from "../../../../../../../../BaseClient";
import { type NormalizedClientOptions } from "../../../../../../../../BaseClient";
import * as core from "../../../../../../../../core";
import * as ElevenLabs from "../../../../../../../index";
export declare namespace BranchesClient {
    type Options = BaseClientOptions;
    interface RequestOptions extends BaseRequestOptions {
    }
}
export declare class BranchesClient {
    protected readonly _options: NormalizedClientOptions<BranchesClient.Options>;
    constructor(options?: BranchesClient.Options);
    /**
     * Returns a list of branches an agent has
     *
     * @param {string} agent_id - The id of an agent. This is returned on agent creation.
     * @param {ElevenLabs.conversationalAi.agents.BranchesListRequest} request
     * @param {BranchesClient.RequestOptions} requestOptions - Request-specific configuration.
     *
     * @throws {@link ElevenLabs.UnprocessableEntityError}
     *
     * @example
     *     await client.conversationalAi.agents.branches.list("agent_3701k3ttaq12ewp8b7qv5rfyszkz", {
     *         includeArchived: true,
     *         limit: 1
     *     })
     */
    list(agent_id: string, request?: ElevenLabs.conversationalAi.agents.BranchesListRequest, requestOptions?: BranchesClient.RequestOptions): core.HttpResponsePromise<ElevenLabs.ListResponseAgentBranchSummary>;
    private __list;
    /**
     * Create a new branch from a given version of main branch
     *
     * @param {string} agent_id - The id of an agent. This is returned on agent creation.
     * @param {ElevenLabs.conversationalAi.agents.BodyCreateANewBranchV1ConvaiAgentsAgentIdBranchesPost} request
     * @param {BranchesClient.RequestOptions} requestOptions - Request-specific configuration.
     *
     * @throws {@link ElevenLabs.UnprocessableEntityError}
     *
     * @example
     *     await client.conversationalAi.agents.branches.create("agent_3701k3ttaq12ewp8b7qv5rfyszkz", {
     *         parentVersionId: "parent_version_id",
     *         name: "name",
     *         description: "description"
     *     })
     */
    create(agent_id: string, request: ElevenLabs.conversationalAi.agents.BodyCreateANewBranchV1ConvaiAgentsAgentIdBranchesPost, requestOptions?: BranchesClient.RequestOptions): core.HttpResponsePromise<ElevenLabs.CreateAgentBranchResponseModel>;
    private __create;
    /**
     * Get information about a single agent branch
     *
     * @param {string} agent_id - The id of an agent. This is returned on agent creation.
     * @param {string} branch_id - Unique identifier for the branch.
     * @param {BranchesClient.RequestOptions} requestOptions - Request-specific configuration.
     *
     * @throws {@link ElevenLabs.UnprocessableEntityError}
     *
     * @example
     *     await client.conversationalAi.agents.branches.get("agent_3701k3ttaq12ewp8b7qv5rfyszkz", "agtbranch_0901k4aafjxxfxt93gd841r7tv5t")
     */
    get(agent_id: string, branch_id: string, requestOptions?: BranchesClient.RequestOptions): core.HttpResponsePromise<ElevenLabs.AgentBranchResponse>;
    private __get;
    /**
     * Update agent branch properties such as archiving status and protection level
     *
     * @param {string} agent_id - The id of an agent. This is returned on agent creation.
     * @param {string} branch_id - Unique identifier for the branch.
     * @param {ElevenLabs.conversationalAi.agents.BodyUpdateAgentBranchV1ConvaiAgentsAgentIdBranchesBranchIdPatch} request
     * @param {BranchesClient.RequestOptions} requestOptions - Request-specific configuration.
     *
     * @throws {@link ElevenLabs.UnprocessableEntityError}
     *
     * @example
     *     await client.conversationalAi.agents.branches.update("agent_3701k3ttaq12ewp8b7qv5rfyszkz", "agtbranch_0901k4aafjxxfxt93gd841r7tv5t")
     */
    update(agent_id: string, branch_id: string, request?: ElevenLabs.conversationalAi.agents.BodyUpdateAgentBranchV1ConvaiAgentsAgentIdBranchesBranchIdPatch, requestOptions?: BranchesClient.RequestOptions): core.HttpResponsePromise<ElevenLabs.AgentBranchResponse>;
    private __update;
    /**
     * Merge a branch into a target branch
     *
     * @param {string} agent_id - The id of an agent. This is returned on agent creation.
     * @param {string} source_branch_id - Unique identifier for the source branch to merge from.
     * @param {ElevenLabs.conversationalAi.agents.BodyMergeABranchIntoATargetBranchV1ConvaiAgentsAgentIdBranchesSourceBranchIdMergePost} request
     * @param {BranchesClient.RequestOptions} requestOptions - Request-specific configuration.
     *
     * @throws {@link ElevenLabs.UnprocessableEntityError}
     *
     * @example
     *     await client.conversationalAi.agents.branches.merge("agent_3701k3ttaq12ewp8b7qv5rfyszkz", "agtbrch_8901k4t9z5defmb8vh3e9361y7nj", {
     *         targetBranchId: "agtbrch_8901k4t9z5defmb8vh3e9361y7nj"
     *     })
     */
    merge(agent_id: string, source_branch_id: string, request: ElevenLabs.conversationalAi.agents.BodyMergeABranchIntoATargetBranchV1ConvaiAgentsAgentIdBranchesSourceBranchIdMergePost, requestOptions?: BranchesClient.RequestOptions): core.HttpResponsePromise<unknown>;
    private __merge;
}
