import type { BaseClientOptions, BaseRequestOptions } from "../../../../../../BaseClient";
import { type NormalizedClientOptions } from "../../../../../../BaseClient";
import * as core from "../../../../../../core";
import * as ElevenLabs from "../../../../../index";
import { BranchesClient } from "../resources/branches/client/Client";
import { DeploymentsClient } from "../resources/deployments/client/Client";
import { DraftsClient } from "../resources/drafts/client/Client";
import { KnowledgeBaseClient } from "../resources/knowledgeBase/client/Client";
import { LinkClient } from "../resources/link/client/Client";
import { LlmUsageClient } from "../resources/llmUsage/client/Client";
import { SummariesClient } from "../resources/summaries/client/Client";
import { WidgetClient } from "../resources/widget/client/Client";
export declare namespace AgentsClient {
    type Options = BaseClientOptions;
    interface RequestOptions extends BaseRequestOptions {
    }
}
export declare class AgentsClient {
    protected readonly _options: NormalizedClientOptions<AgentsClient.Options>;
    protected _summaries: SummariesClient | undefined;
    protected _widget: WidgetClient | undefined;
    protected _link: LinkClient | undefined;
    protected _knowledgeBase: KnowledgeBaseClient | undefined;
    protected _llmUsage: LlmUsageClient | undefined;
    protected _branches: BranchesClient | undefined;
    protected _deployments: DeploymentsClient | undefined;
    protected _drafts: DraftsClient | undefined;
    constructor(options?: AgentsClient.Options);
    get summaries(): SummariesClient;
    get widget(): WidgetClient;
    get link(): LinkClient;
    get knowledgeBase(): KnowledgeBaseClient;
    get llmUsage(): LlmUsageClient;
    get branches(): BranchesClient;
    get deployments(): DeploymentsClient;
    get drafts(): DraftsClient;
    /**
     * Create an agent from a config object
     *
     * @param {ElevenLabs.conversationalAi.BodyCreateAgentV1ConvaiAgentsCreatePost} request
     * @param {AgentsClient.RequestOptions} requestOptions - Request-specific configuration.
     *
     * @throws {@link ElevenLabs.UnprocessableEntityError}
     *
     * @example
     *     await client.conversationalAi.agents.create({
     *         enableVersioning: true,
     *         conversationConfig: {}
     *     })
     */
    create(request: ElevenLabs.conversationalAi.BodyCreateAgentV1ConvaiAgentsCreatePost, requestOptions?: AgentsClient.RequestOptions): core.HttpResponsePromise<ElevenLabs.CreateAgentResponseModel>;
    private __create;
    /**
     * Retrieve config for an agent
     *
     * @param {string} agent_id - The id of an agent. This is returned on agent creation.
     * @param {ElevenLabs.conversationalAi.AgentsGetRequest} request
     * @param {AgentsClient.RequestOptions} requestOptions - Request-specific configuration.
     *
     * @throws {@link ElevenLabs.UnprocessableEntityError}
     *
     * @example
     *     await client.conversationalAi.agents.get("agent_3701k3ttaq12ewp8b7qv5rfyszkz", {
     *         versionId: "version_id",
     *         branchId: "branch_id"
     *     })
     */
    get(agent_id: string, request?: ElevenLabs.conversationalAi.AgentsGetRequest, requestOptions?: AgentsClient.RequestOptions): core.HttpResponsePromise<ElevenLabs.GetAgentResponseModel>;
    private __get;
    /**
     * Delete an agent
     *
     * @param {string} agent_id - The id of an agent. This is returned on agent creation.
     * @param {AgentsClient.RequestOptions} requestOptions - Request-specific configuration.
     *
     * @throws {@link ElevenLabs.UnprocessableEntityError}
     *
     * @example
     *     await client.conversationalAi.agents.delete("agent_3701k3ttaq12ewp8b7qv5rfyszkz")
     */
    delete(agent_id: string, requestOptions?: AgentsClient.RequestOptions): core.HttpResponsePromise<void>;
    private __delete;
    /**
     * Patches an Agent settings
     *
     * @param {string} agent_id - The id of an agent. This is returned on agent creation.
     * @param {ElevenLabs.conversationalAi.UpdateAgentRequest} request
     * @param {AgentsClient.RequestOptions} requestOptions - Request-specific configuration.
     *
     * @throws {@link ElevenLabs.UnprocessableEntityError}
     *
     * @example
     *     await client.conversationalAi.agents.update("agent_3701k3ttaq12ewp8b7qv5rfyszkz", {
     *         enableVersioningIfNotEnabled: true,
     *         branchId: "branch_id"
     *     })
     */
    update(agent_id: string, request?: ElevenLabs.conversationalAi.UpdateAgentRequest, requestOptions?: AgentsClient.RequestOptions): core.HttpResponsePromise<ElevenLabs.GetAgentResponseModel>;
    private __update;
    /**
     * Returns a list of your agents and their metadata.
     *
     * @param {ElevenLabs.conversationalAi.AgentsListRequest} request
     * @param {AgentsClient.RequestOptions} requestOptions - Request-specific configuration.
     *
     * @throws {@link ElevenLabs.UnprocessableEntityError}
     *
     * @example
     *     await client.conversationalAi.agents.list({
     *         pageSize: 1,
     *         search: "search",
     *         archived: true,
     *         showOnlyOwnedAgents: true,
     *         createdByUserId: "created_by_user_id",
     *         sortDirection: "asc",
     *         sortBy: "name",
     *         cursor: "cursor"
     *     })
     */
    list(request?: ElevenLabs.conversationalAi.AgentsListRequest, requestOptions?: AgentsClient.RequestOptions): core.HttpResponsePromise<ElevenLabs.GetAgentsPageResponseModel>;
    private __list;
    /**
     * Create a new agent by duplicating an existing one
     *
     * @param {string} agent_id - The id of an agent. This is returned on agent creation.
     * @param {ElevenLabs.conversationalAi.BodyDuplicateAgentV1ConvaiAgentsAgentIdDuplicatePost} request
     * @param {AgentsClient.RequestOptions} requestOptions - Request-specific configuration.
     *
     * @throws {@link ElevenLabs.UnprocessableEntityError}
     *
     * @example
     *     await client.conversationalAi.agents.duplicate("agent_3701k3ttaq12ewp8b7qv5rfyszkz")
     */
    duplicate(agent_id: string, request?: ElevenLabs.conversationalAi.BodyDuplicateAgentV1ConvaiAgentsAgentIdDuplicatePost, requestOptions?: AgentsClient.RequestOptions): core.HttpResponsePromise<ElevenLabs.CreateAgentResponseModel>;
    private __duplicate;
    /**
     * Run a conversation between the agent and a simulated user.
     *
     * @param {string} agent_id - The id of an agent. This is returned on agent creation.
     * @param {ElevenLabs.conversationalAi.BodySimulatesAConversationV1ConvaiAgentsAgentIdSimulateConversationPost} request
     * @param {AgentsClient.RequestOptions} requestOptions - Request-specific configuration.
     *
     * @throws {@link ElevenLabs.UnprocessableEntityError}
     *
     * @example
     *     await client.conversationalAi.agents.simulateConversation("agent_3701k3ttaq12ewp8b7qv5rfyszkz", {
     *         simulationSpecification: {
     *             simulatedUserConfig: {
     *                 firstMessage: "Hello, how can I help you today?",
     *                 language: "en",
     *                 disableFirstMessageInterruptions: false
     *             }
     *         }
     *     })
     */
    simulateConversation(agent_id: string, request: ElevenLabs.conversationalAi.BodySimulatesAConversationV1ConvaiAgentsAgentIdSimulateConversationPost, requestOptions?: AgentsClient.RequestOptions): core.HttpResponsePromise<ElevenLabs.AgentSimulatedChatTestResponseModel>;
    private __simulateConversation;
    /**
     * Run a conversation between the agent and a simulated user and stream back the response. Response is streamed back as partial lists of messages that should be concatenated and once the conversation has complete a single final message with the conversation analysis will be sent.
     *
     * @param {string} agent_id - The id of an agent. This is returned on agent creation.
     * @param {ElevenLabs.conversationalAi.BodySimulatesAConversationStreamV1ConvaiAgentsAgentIdSimulateConversationStreamPost} request
     * @param {AgentsClient.RequestOptions} requestOptions - Request-specific configuration.
     *
     * @throws {@link ElevenLabs.UnprocessableEntityError}
     *
     * @example
     *     await client.conversationalAi.agents.simulateConversationStream("agent_3701k3ttaq12ewp8b7qv5rfyszkz", {
     *         simulationSpecification: {
     *             simulatedUserConfig: {
     *                 firstMessage: "Hello, how can I help you today?",
     *                 language: "en",
     *                 disableFirstMessageInterruptions: false
     *             }
     *         }
     *     })
     */
    simulateConversationStream(agent_id: string, request: ElevenLabs.conversationalAi.BodySimulatesAConversationStreamV1ConvaiAgentsAgentIdSimulateConversationStreamPost, requestOptions?: AgentsClient.RequestOptions): core.HttpResponsePromise<void>;
    private __simulateConversationStream;
    /**
     * Run selected tests on the agent with provided configuration. If the agent configuration is provided, it will be used to override default agent configuration.
     *
     * @param {string} agent_id - The id of an agent. This is returned on agent creation.
     * @param {ElevenLabs.conversationalAi.RunAgentTestsRequestModel} request
     * @param {AgentsClient.RequestOptions} requestOptions - Request-specific configuration.
     *
     * @throws {@link ElevenLabs.UnprocessableEntityError}
     *
     * @example
     *     await client.conversationalAi.agents.runTests("agent_3701k3ttaq12ewp8b7qv5rfyszkz", {
     *         tests: [{
     *                 testId: "test_id"
     *             }]
     *     })
     */
    runTests(agent_id: string, request: ElevenLabs.conversationalAi.RunAgentTestsRequestModel, requestOptions?: AgentsClient.RequestOptions): core.HttpResponsePromise<ElevenLabs.GetTestSuiteInvocationResponseModel>;
    private __runTests;
}
