import type { ManifestTreeItem } from '../../extensions/types.js';
import type { UmbTreeItemContext } from '../tree-item-context.interface.js';
import type { UmbTreeItemModel, UmbTreeRootModel } from '../../types.js';
import { UmbTreeItemChildrenManager } from '../tree-item-children.manager.js';
import { UMB_TREE_CONTEXT } from '../../tree.context.token.js';
import { UmbObjectState } from '../../../../../libs/observable-api/index.js';
import { UmbContextBase } from '../../../../../libs/class-api/index.js';
import type { UmbControllerHost } from '../../../../../libs/controller-api/index.js';
import type { UmbEntityModel, UmbEntityUnique } from '../../../entity/index.js';
export declare abstract class UmbTreeItemContextBase<TreeItemType extends UmbTreeItemModel, TreeRootType extends UmbTreeRootModel, ManifestType extends ManifestTreeItem = ManifestTreeItem> extends UmbContextBase implements UmbTreeItemContext<TreeItemType> {
    #private;
    unique?: UmbEntityUnique;
    entityType?: string;
    protected readonly _treeItem: UmbObjectState<TreeItemType | undefined>;
    readonly treeItem: import("rxjs").Observable<TreeItemType | undefined>;
    readonly isSelectable: import("rxjs").Observable<boolean>;
    readonly isSelectableContext: import("rxjs").Observable<boolean>;
    readonly isSelected: import("rxjs").Observable<boolean>;
    readonly isActive: import("rxjs").Observable<boolean>;
    readonly path: import("rxjs").Observable<string>;
    protected readonly _treeItemChildrenManager: UmbTreeItemChildrenManager<TreeItemType, TreeRootType, import("../../index.js").UmbTreeRootItemsRequestArgs>;
    readonly childItems: import("rxjs").Observable<TreeItemType[]>;
    readonly hasChildren: import("rxjs").Observable<boolean>;
    readonly foldersOnly: import("rxjs").Observable<boolean>;
    readonly pagination: import("../../../utils/index.js").UmbPaginationManager;
    readonly targetPagination: import("../../../utils/index.js").UmbTargetPaginationManager<UmbEntityModel>;
    readonly isLoading: import("rxjs").Observable<boolean>;
    readonly isLoadingPrevChildren: import("rxjs").Observable<boolean>;
    readonly isLoadingNextChildren: import("rxjs").Observable<boolean>;
    isOpen: import("rxjs").Observable<boolean>;
    readonly hasActions: import("rxjs").Observable<boolean>;
    treeContext?: typeof UMB_TREE_CONTEXT.TYPE;
    readonly hasActiveDescendant: import("rxjs").Observable<boolean | undefined>;
    setIsMenu(isMenu: boolean): void;
    getIsMenu(): boolean;
    constructor(host: UmbControllerHost);
    /**
     * Sets the manifest
     * @param {ManifestCollection} manifest
     * @memberof UmbCollectionContext
     */
    set manifest(manifest: ManifestType | undefined);
    get manifest(): ManifestType | undefined;
    /**
     * Returns the current path value
     * @returns {string}
     * @memberof UmbTreeItemContextBase
     */
    getPath(): string;
    /**
     * Returns the ascending items of this tree item
     * @returns {Array<UmbEntityModel>}
     * @memberof UmbTreeItemContextBase
     */
    getAscending(): Array<UmbEntityModel> | undefined;
    /**
     * Returns the manifest.
     * @returns {ManifestCollection}
     * @memberof UmbTreeItemContextBase
     * @deprecated Use the `.manifest` property instead.
     */
    getManifest(): ManifestType | undefined;
    setTreeItem(treeItem: TreeItemType | undefined): void;
    /**
     * Load children of the tree item
     * @memberof UmbTreeItemContextBase
     * @returns {Promise<void>}
     */
    loadChildren: () => Promise<void>;
    reloadChildren: () => Promise<void>;
    /**
     * Load more children of the tree item
     * @deprecated Use `loadNextItems` instead. Will be removed in v18.0.0.
     * @memberof UmbTreeItemContextBase
     * @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>;
    /**
     * Selects the tree item
     * @memberof UmbTreeItemContextBase
     * @returns {void}
     */
    select(): void;
    /**
     * Deselects the tree item
     * @memberof UmbTreeItemContextBase
     * @returns {void}
     */
    deselect(): void;
    showChildren(): void;
    hideChildren(): void;
    getTreeItem(): TreeItemType | undefined;
    constructPath(pathname: string, entityType: string, unique: string | null): string;
    destroy(): void;
}
