/*
 * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
 */
import { foldersCreateFolder } from "../funcs/foldersCreateFolder.js";
import { foldersDestroyFolder } from "../funcs/foldersDestroyFolder.js";
import { foldersListRootFolders } from "../funcs/foldersListRootFolders.js";
import { foldersSearchFolders } from "../funcs/foldersSearchFolders.js";
import { foldersSearchFoldersPost } from "../funcs/foldersSearchFoldersPost.js";
import { foldersShowFolder } from "../funcs/foldersShowFolder.js";
import { foldersUpdateFolder } from "../funcs/foldersUpdateFolder.js";
import { ClientSDK } from "../lib/sdks.js";
import { unwrapAsync } from "../types/fp.js";
export class Folders extends ClientSDK {
    /**
     * List sub-folders
     *
     * @remarks
     * Returns a list of sub-folders under the specified folder path.
     */
    async showFolder(folder, options) {
        return unwrapAsync(foldersShowFolder(this, folder, options));
    }
    /**
     * Renames or moves an entire folder (along with all assets it contains) to a
     *
     * @remarks
     * Updates a folder's properties.
     */
    async updateFolder(folder, requestBody, options) {
        return unwrapAsync(foldersUpdateFolder(this, folder, requestBody, options));
    }
    /**
     * Creates a new empty folder in your Cloudinary media library
     *
     * @remarks
     * Creates a new folder at the specified path
     */
    async createFolder(folder, options) {
        return unwrapAsync(foldersCreateFolder(this, folder, options));
    }
    /**
     * Deletes an existing folder from your media library
     *
     * @remarks
     * Deletes a folder and all assets within it.
     */
    async destroyFolder(folder, options) {
        return unwrapAsync(foldersDestroyFolder(this, folder, options));
    }
    /**
     * Get root folders
     *
     * @remarks
     * Retrieves an array of all root folders in your Cloudinary product environment. Limited to 2000 results.
     */
    async listRootFolders(request, options) {
        return unwrapAsync(foldersListRootFolders(this, request, options));
    }
    /**
     * Searches for folders whose attributes match a given expression
     *
     * @remarks
     * Lists the folders that match the specified search expression. Limited to 2000 results. If no parameters are passed, returns the 50 most recently created folders in descending order of creation time.
     */
    async searchFolders(expression, sortBy, maxResults, nextCursor, options) {
        return unwrapAsync(foldersSearchFolders(this, expression, sortBy, maxResults, nextCursor, options));
    }
    /**
     * Searches for folders in your product environment
     *
     * @remarks
     * Lists the folders that match the specified search expression. Limited to 2000 results. If no parameters are passed, returns the 50 most recently created folders in descending order of creation time.
     */
    async searchFoldersPost(request, options) {
        return unwrapAsync(foldersSearchFoldersPost(this, request, options));
    }
}
//# sourceMappingURL=folders.js.map