import type { UmbTreeItemModel, UmbTreeRootModel } from '../types.js';
import type { UmbTreeItemChildrenManager } from './tree-item-children.manager.js';
import { UmbControllerBase } from '../../../../libs/class-api/index.js';
import type { UmbControllerHost } from '../../../../libs/controller-api/index.js';
import type { UmbTargetPaginationManager } from '../../utils/index.js';
interface UmbTreeItemTargetExpansionManagerArgs<TreeItemType extends UmbTreeItemModel = UmbTreeItemModel, TreeRootType extends UmbTreeRootModel = UmbTreeRootModel> {
    childrenManager: UmbTreeItemChildrenManager<TreeItemType, TreeRootType>;
    targetPaginationManager: UmbTargetPaginationManager;
}
export declare class UmbTreeItemTargetExpansionManager<TreeItemType extends UmbTreeItemModel = UmbTreeItemModel, TreeRootType extends UmbTreeRootModel = UmbTreeRootModel> extends UmbControllerBase {
    #private;
    isExpanded: import("rxjs").Observable<boolean>;
    constructor(host: UmbControllerHost, args: UmbTreeItemTargetExpansionManagerArgs<TreeItemType, TreeRootType>);
    /**
     * Set the parent for which to load children.
     * @param {(TreeItemType | TreeRootType | undefined)} treeItem - The tree item model
     * @memberof UmbTreeItemChildrenManager
     */
    setTreeItem(treeItem: TreeItemType | TreeRootType | undefined): void;
    /**
     * Gets the tree item for which to load children.
     * @returns {TreeItemType | TreeRootType | undefined} - The tree item for the children
     * @memberof UmbTreeItemChildrenManager
     */
    getTreeItem(): TreeItemType | TreeRootType | undefined;
}
export {};
