"use strict";
/*
 * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
 */
Object.defineProperty(exports, "__esModule", { value: true });
exports.MistralAgents = void 0;
const betaAgentsCreate_js_1 = require("../funcs/betaAgentsCreate.js");
const betaAgentsCreateVersionAlias_js_1 = require("../funcs/betaAgentsCreateVersionAlias.js");
const betaAgentsDelete_js_1 = require("../funcs/betaAgentsDelete.js");
const betaAgentsDeleteVersionAlias_js_1 = require("../funcs/betaAgentsDeleteVersionAlias.js");
const betaAgentsGet_js_1 = require("../funcs/betaAgentsGet.js");
const betaAgentsGetVersion_js_1 = require("../funcs/betaAgentsGetVersion.js");
const betaAgentsList_js_1 = require("../funcs/betaAgentsList.js");
const betaAgentsListVersionAliases_js_1 = require("../funcs/betaAgentsListVersionAliases.js");
const betaAgentsListVersions_js_1 = require("../funcs/betaAgentsListVersions.js");
const betaAgentsUpdate_js_1 = require("../funcs/betaAgentsUpdate.js");
const betaAgentsUpdateVersion_js_1 = require("../funcs/betaAgentsUpdateVersion.js");
const sdks_js_1 = require("../lib/sdks.js");
const fp_js_1 = require("../types/fp.js");
class MistralAgents extends sdks_js_1.ClientSDK {
    /**
     * Create a agent that can be used within a conversation.
     *
     * @remarks
     * Create a new agent giving it instructions, tools, description. The agent is then available to be used as a regular assistant in a conversation or as part of an agent pool from which it can be used.
     */
    async create(request, options) {
        return (0, fp_js_1.unwrapAsync)((0, betaAgentsCreate_js_1.betaAgentsCreate)(this, request, options));
    }
    /**
     * List agent entities.
     *
     * @remarks
     * Retrieve a list of agent entities sorted by creation time.
     */
    async list(request, options) {
        return (0, fp_js_1.unwrapAsync)((0, betaAgentsList_js_1.betaAgentsList)(this, request, options));
    }
    /**
     * Retrieve an agent entity.
     *
     * @remarks
     * Given an agent, retrieve an agent entity with its attributes. The agent_version parameter can be an integer version number or a string alias.
     */
    async get(request, options) {
        return (0, fp_js_1.unwrapAsync)((0, betaAgentsGet_js_1.betaAgentsGet)(this, request, options));
    }
    /**
     * Update an agent entity.
     *
     * @remarks
     * Update an agent attributes and create a new version.
     */
    async update(request, options) {
        return (0, fp_js_1.unwrapAsync)((0, betaAgentsUpdate_js_1.betaAgentsUpdate)(this, request, options));
    }
    /**
     * Delete an agent entity.
     */
    async delete(request, options) {
        return (0, fp_js_1.unwrapAsync)((0, betaAgentsDelete_js_1.betaAgentsDelete)(this, request, options));
    }
    /**
     * Update an agent version.
     *
     * @remarks
     * Switch the version of an agent.
     */
    async updateVersion(request, options) {
        return (0, fp_js_1.unwrapAsync)((0, betaAgentsUpdateVersion_js_1.betaAgentsUpdateVersion)(this, request, options));
    }
    /**
     * List all versions of an agent.
     *
     * @remarks
     * Retrieve all versions for a specific agent with full agent context. Supports pagination.
     */
    async listVersions(request, options) {
        return (0, fp_js_1.unwrapAsync)((0, betaAgentsListVersions_js_1.betaAgentsListVersions)(this, request, options));
    }
    /**
     * Retrieve a specific version of an agent.
     *
     * @remarks
     * Get a specific agent version by version number.
     */
    async getVersion(request, options) {
        return (0, fp_js_1.unwrapAsync)((0, betaAgentsGetVersion_js_1.betaAgentsGetVersion)(this, request, options));
    }
    /**
     * Create or update an agent version alias.
     *
     * @remarks
     * Create a new alias or update an existing alias to point to a specific version. Aliases are unique per agent and can be reassigned to different versions.
     */
    async createVersionAlias(request, options) {
        return (0, fp_js_1.unwrapAsync)((0, betaAgentsCreateVersionAlias_js_1.betaAgentsCreateVersionAlias)(this, request, options));
    }
    /**
     * List all aliases for an agent.
     *
     * @remarks
     * Retrieve all version aliases for a specific agent.
     */
    async listVersionAliases(request, options) {
        return (0, fp_js_1.unwrapAsync)((0, betaAgentsListVersionAliases_js_1.betaAgentsListVersionAliases)(this, request, options));
    }
    /**
     * Delete an agent version alias.
     *
     * @remarks
     * Delete an existing alias for an agent.
     */
    async deleteVersionAlias(request, options) {
        return (0, fp_js_1.unwrapAsync)((0, betaAgentsDeleteVersionAlias_js_1.betaAgentsDeleteVersionAlias)(this, request, options));
    }
}
exports.MistralAgents = MistralAgents;
//# sourceMappingURL=mistralagents.js.map