"use strict";
/*
 * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
 */
Object.defineProperty(exports, "__esModule", { value: true });
exports.Skills = void 0;
const skillsCreate_js_1 = require("../funcs/skillsCreate.js");
const skillsDelete_js_1 = require("../funcs/skillsDelete.js");
const skillsGet_js_1 = require("../funcs/skillsGet.js");
const skillsList_js_1 = require("../funcs/skillsList.js");
const skillsUpdate_js_1 = require("../funcs/skillsUpdate.js");
const sdks_js_1 = require("../lib/sdks.js");
const fp_js_1 = require("../types/fp.js");
class Skills extends sdks_js_1.ClientSDK {
    /**
     * List all skills
     *
     * @remarks
     * Returns the skills visible to the current workspace, ordered by creation time with the newest skill first. Use `starting_after` or `ending_before` to page through large collections.
     */
    async list(request, options) {
        return (0, fp_js_1.unwrapAsync)((0, skillsList_js_1.skillsList)(this, request, options));
    }
    /**
     * Create a new skill
     *
     * @remarks
     * Creates a reusable skill in the workspace. Skills store instructions, metadata, and an optional project location so teams can standardize repeatable AI workflows.
     */
    async create(request, options) {
        return (0, fp_js_1.unwrapAsync)((0, skillsCreate_js_1.skillsCreate)(this, request, options));
    }
    /**
     * Retrieve a skill
     *
     * @remarks
     * Retrieves an existing skill by skill ID. Display names are also accepted for compatibility because they are unique within a workspace.
     */
    async get(request, options) {
        return (0, fp_js_1.unwrapAsync)((0, skillsGet_js_1.skillsGet)(this, request, options));
    }
    /**
     * Delete a skill
     *
     * @remarks
     * Deletes a skill from the workspace. The response body is empty when the delete succeeds.
     */
    async delete(request, options) {
        return (0, fp_js_1.unwrapAsync)((0, skillsDelete_js_1.skillsDelete)(this, request, options));
    }
    /**
     * Update a skill
     *
     * @remarks
     * Updates mutable skill fields. Omitted optional fields keep their current values. Repeated fields such as `tags` replace the existing collection when provided.
     */
    async update(request, options) {
        return (0, fp_js_1.unwrapAsync)((0, skillsUpdate_js_1.skillsUpdate)(this, request, options));
    }
}
exports.Skills = Skills;
//# sourceMappingURL=skills.js.map