"use strict";
/*
 * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
 */
Object.defineProperty(exports, "__esModule", { value: true });
exports.Files = void 0;
const filesCreate_js_1 = require("../funcs/filesCreate.js");
const filesDelete_js_1 = require("../funcs/filesDelete.js");
const filesGet_js_1 = require("../funcs/filesGet.js");
const filesGetContent_js_1 = require("../funcs/filesGetContent.js");
const filesList_js_1 = require("../funcs/filesList.js");
const filesUpdate_js_1 = require("../funcs/filesUpdate.js");
const sdks_js_1 = require("../lib/sdks.js");
const fp_js_1 = require("../types/fp.js");
class Files extends sdks_js_1.ClientSDK {
    /**
     * List all files
     *
     * @remarks
     * Returns a list of the files that your account has access to. orq.ai sorts and returns the files by their creation dates, placing the most recently created files at the top.
     */
    async list(request, options) {
        return (0, fp_js_1.unwrapAsync)((0, filesList_js_1.filesList)(this, request, options));
    }
    /**
     * Upload a file
     *
     * @remarks
     * Files are used to upload documents that can be used with features like Deployments.
     */
    async create(request, options) {
        return (0, fp_js_1.unwrapAsync)((0, filesCreate_js_1.filesCreate)(this, request, options));
    }
    /**
     * Download file content
     *
     * @remarks
     * Returns a presigned URL for downloading the file content by file ID.
     */
    async getContent(request, options) {
        return (0, fp_js_1.unwrapAsync)((0, filesGetContent_js_1.filesGetContent)(this, request, options));
    }
    /**
     * Retrieve a file
     *
     * @remarks
     * Retrieves the details of an existing file object. After you supply a unique file ID, orq.ai returns the corresponding file object.
     */
    async get(request, options) {
        return (0, fp_js_1.unwrapAsync)((0, filesGet_js_1.filesGet)(this, request, options));
    }
    /**
     * Delete a file
     *
     * @remarks
     * Permanently deletes a file and its stored content from the project.
     */
    async delete(request, options) {
        return (0, fp_js_1.unwrapAsync)((0, filesDelete_js_1.filesDelete)(this, request, options));
    }
    /**
     * Update a file
     *
     * @remarks
     * Updates the metadata of an existing file object.
     */
    async update(request, options) {
        return (0, fp_js_1.unwrapAsync)((0, filesUpdate_js_1.filesUpdate)(this, request, options));
    }
}
exports.Files = Files;
//# sourceMappingURL=files.js.map