import { UmbTreeItemActiveManager } from '../active-manager/tree-active-manager.js';
import { UmbTreeExpansionManager } from '../expansion-manager/index.js';
import type { ManifestTree } from '../extensions/types.js';
import type { UmbTreeContext } from '../tree.context.interface.js';
import type { UmbTreeExpansionModel } from '../expansion-manager/types.js';
import type { UmbTreeItemModel, UmbTreeRootModel, UmbTreeStartNode } from '../types.js';
import type { UmbTreeRepository } from '../data/index.js';
import type { UmbTreeRootItemsRequestArgs } from '../data/types.js';
import { UmbContextBase } from '../../../../libs/class-api/index.js';
import { UmbSelectionManager } from '../../utils/index.js';
import type { UmbControllerHost } from '../../../../libs/controller-api/index.js';
export declare class UmbDefaultTreeContext<TreeItemType extends UmbTreeItemModel, TreeRootType extends UmbTreeRootModel, RequestArgsType extends UmbTreeRootItemsRequestArgs = UmbTreeRootItemsRequestArgs> extends UmbContextBase implements UmbTreeContext<TreeItemType, TreeRootType, RequestArgsType> {
    #private;
    readonly treeRoot: import("rxjs").Observable<TreeRootType | undefined>;
    selectableFilter?: (item: TreeItemType) => boolean;
    filter?: (item: TreeItemType) => boolean;
    readonly selection: UmbSelectionManager<string | null>;
    readonly expansion: UmbTreeExpansionManager;
    readonly hideTreeRoot: import("rxjs").Observable<boolean>;
    readonly expandTreeRoot: import("rxjs").Observable<boolean | undefined>;
    readonly rootItems: import("rxjs").Observable<TreeItemType[]>;
    readonly hasChildren: import("rxjs").Observable<boolean>;
    readonly pagination: import("../../utils/index.js").UmbPaginationManager;
    readonly targetPagination: import("../../utils/index.js").UmbTargetPaginationManager<import("../../entity/types.js").UmbEntityModel>;
    readonly startNode: import("rxjs").Observable<UmbTreeStartNode | undefined>;
    readonly foldersOnly: import("rxjs").Observable<boolean>;
    readonly additionalRequestArgs: import("rxjs").Observable<object | Partial<RequestArgsType>>;
    readonly isLoadingPrevChildren: import("rxjs").Observable<boolean>;
    readonly isLoadingNextChildren: import("rxjs").Observable<boolean>;
    readonly activeManager: UmbTreeItemActiveManager;
    constructor(host: UmbControllerHost);
    /**
     * Sets the manifest
     * @param {ManifestTree} manifest
     * @memberof UmbDefaultTreeContext
     */
    set manifest(manifest: ManifestTree | undefined);
    get manifest(): ManifestTree | undefined;
    /**
     * Returns the manifest.
     * @returns {ManifestTree}
     * @memberof UmbDefaultTreeContext
     * @deprecated Use the `.manifest` property instead.
     */
    getManifest(): ManifestTree | undefined;
    getRepository(): UmbTreeRepository<TreeItemType, TreeRootType, UmbTreeRootItemsRequestArgs, import("../index.js").UmbTreeChildrenOfRequestArgs, import("../index.js").UmbTreeAncestorsOfRequestArgs> | undefined;
    /**
     * Loads the tree
     * @memberof UmbDefaultTreeContext
     */
    loadTree: import("../../utils/index.js").UmbDebouncedFunction<() => Promise<void>>;
    /**
     * Reloads the tree in its current expansion state
     * @memberof UmbDefaultTreeContext
     */
    reloadTree: import("../../utils/index.js").UmbDebouncedFunction<() => Promise<void>>;
    /**
     * Reloads the tree
     * @memberof UmbDefaultTreeContext
     * @returns {Promise<void>}
     */
    loadMore: () => Promise<void>;
    /**
     * Load previous items of the tree item
     * @memberof UmbTreeItemContextBase
     * @returns {Promise<void>}
     */
    loadPrevItems: () => Promise<void>;
    /**
     * Load next items of the tree item
     * @memberof UmbTreeItemContextBase
     * @returns {Promise<void>}
     */
    loadNextItems: () => Promise<void>;
    /**
     * Sets the hideTreeRoot config
     * @param {boolean} hideTreeRoot - Whether to hide the tree root
     * @memberof UmbDefaultTreeContext
     */
    setHideTreeRoot(hideTreeRoot: boolean): void;
    /**
     * Gets the hideTreeRoot config
     * @returns {boolean}
     * @memberof UmbDefaultTreeContext
     */
    getHideTreeRoot(): boolean;
    /**
     * Sets the startNode config
     * @param {UmbTreeStartNode} startNode
     * @memberof UmbDefaultTreeContext
     */
    setStartNode(startNode: UmbTreeStartNode | undefined): void;
    /**
     * Gets the startNode config
     * @returns {UmbTreeStartNode} - The start node
     * @memberof UmbDefaultTreeContext
     */
    getStartNode(): UmbTreeStartNode | undefined;
    /**
     * Sets the foldersOnly config
     * @param {boolean} foldersOnly - Whether to show only folders
     * @memberof UmbDefaultTreeContext
     */
    setFoldersOnly(foldersOnly: boolean): void;
    /**
     * Gets the foldersOnly config
     * @returns {boolean} - Whether to show only folders
     * @memberof UmbDefaultTreeContext
     */
    getFoldersOnly(): boolean;
    /**
     * Updates the requestArgs config and reloads the tree.
     * @param args
     */
    updateAdditionalRequestArgs(args: Partial<RequestArgsType>): void;
    getAdditionalRequestArgs(): Partial<RequestArgsType> | undefined;
    /**
     * Sets the expansion state
     * @param {UmbTreeExpansionModel} data - The expansion state
     * @returns {void}
     * @memberof UmbDefaultTreeContext
     */
    setExpansion(data: UmbTreeExpansionModel): void;
    /**
     * Gets the expansion state
     * @returns {UmbTreeExpansionModel} - The expansion state
     * @memberof UmbDefaultTreeContext
     */
    getExpansion(): UmbTreeExpansionModel;
    /**
     * Sets the expandTreeRoot config
     * @param {boolean} expandTreeRoot - Whether to expand the tree root
     * @memberof UmbDefaultTreeContext
     */
    setExpandTreeRoot(expandTreeRoot: boolean): void;
    /**
     * Gets the expandTreeRoot config
     * @returns {boolean | undefined} - Whether to expand the tree root
     * @memberof UmbDefaultTreeContext
     */
    getExpandTreeRoot(): boolean | undefined;
    destroy(): void;
}
export { UmbDefaultTreeContext as api };
