import { ApiClient } from '../../client/index.js';
import { AddRemoveAssetsParams, CreateCategoryParams, EditCategoryParams } from './requests.js';
import { CreateEditCategoryResult, CategoryTreeResult, ListCategoriesResult } from './responses.js';

declare class CategoriesApi {
    private _client;
    /**
     * Create an instance of the CategoriesApi class
     *
     * Provides information about Categories and the Assets contained in them
     *
     * @param client Provide an instance of ApiClient.
     */
    constructor(client: ApiClient);
    /**
     * Add or remove multiple assets from multiple categories
     * @param params Information about the request
     * @returns Promise containing no information
     * @see {@link https://widenv1.docs.apiary.io/#reference/categories/category-assets/adding/removing-assets}
     */
    addOrRemoveAsets(params: AddRemoveAssetsParams): Promise<void>;
    /**
     * Create a new category
     * @param params Information about the request
     * @returns Promise containing information about the new category
     * @see {@link https://widenv1.docs.apiary.io/#reference/categories/createedit-category/create-category}
     */
    createCategory(params: CreateCategoryParams): Promise<CreateEditCategoryResult>;
    /**
     * Update a category's information
     * @param params Information about the request
     * @returns Promise containing information about the modified category
     * @see {@link https://widenv1.docs.apiary.io/#reference/categories/createedit-category/edit-category}
     */
    editCategory(params: EditCategoryParams): Promise<CreateEditCategoryResult>;
    /**
     * Gets the category tree sctructure for the entire site
     * @param includeEmpty `true` if the response should include categories with no assets.
     * @returns Promise containing the category tree structure
     * @see {@link https://widenv1.docs.apiary.io/#reference/categories/category-tree/category-tree}
     */
    getCategoryTree(includeEmpty?: boolean): Promise<CategoryTreeResult>;
    /**
     * Retrieve a list of child categories.
     * @param categoryPath Optional parent category path. Slashes in category names must be escaped with a backslash. If omitted, the top-level categories will be returned.
     * @returns Promise containing a list of asset categories
     * @see {@link https://widenv2.docs.apiary.io/#reference/categories/asset-categories/list-asset-categories}
     */
    listCategories(categoryPath?: string): Promise<ListCategoriesResult>;
    /**
     * URL-encodes symbols in the path. Escaped slashes are treated as part of the category's name.
     * @param path The category path
     */
    encodeCategoryPath(path: string): string;
}

export { CategoriesApi };
