import { UmbControllerBase } from '../../../../libs/class-api/index.js';
import { type Observable } from '../../../../libs/observable-api/index.js';
import type { UmbEntityModel } from '../../entity/index.js';
/**
 * Manages the expansion state of a tree
 * @exports
 * @class UmbTreeItemActiveManager
 * @augments {UmbControllerBase}
 */
export declare class UmbTreeItemActiveManager extends UmbControllerBase {
    #private;
    readonly active: Observable<UmbEntityModel[]>;
    /**
     * Checks if an entity is active
     * @param {UmbEntityModel} entity The entity to check
     * @returns {Observable<boolean>} True if the entity is active
     * @memberof UmbTreeItemActiveManager
     */
    isActive(entity: UmbEntityModel): Observable<boolean>;
    /**
     * Checks if an descendant entity is active
     * @param {UmbEntityModel} entity The entity to check
     * @returns {Observable<boolean>} True if a descendant entity is active
     * @memberof UmbTreeItemActiveManager
     */
    hasActiveDescendants(entity: UmbEntityModel): Observable<boolean>;
    /**
     * Checks if an descendant entity is active
     * @param {UmbEntityModel} entity The entity to check
     * @returns {boolean} True if a descendant entity is active
     * @memberof UmbTreeItemActiveManager
     */
    getHasActiveDescendants(entity: UmbEntityModel): boolean;
    /**
     * Sets the active chain state
     * @param {Array<UmbEntityModel>} activeChain The active entries.
     * @memberof UmbTreeItemActiveManager
     * @returns {void}
     */
    setActive(activeChain: Array<UmbEntityModel>): void;
    /**
     * Sets the active chain state
     * @param {Array<UmbEntityModel>} activeChain The active entries.
     * @memberof UmbTreeItemActiveManager
     * @returns {void}
     */
    removeActiveIfMatch(activeChain: Array<UmbEntityModel>): void;
    /**
     * Gets the expansion state
     * @memberof UmbTreeItemActiveManager
     * @returns {Array<UmbEntityModel>} The expansion state
     */
    getActive(): Array<UmbEntityModel>;
}
