import type { UmbMenuItemExpansionEntryModel } from '../../menu/types.js';
import { UmbControllerBase } from '../../../../../../libs/class-api/index.js';
import type { UmbControllerHost } from '../../../../../../libs/controller-api/index.js';
import { type Observable } from '../../../../../../libs/observable-api/index.js';
import { type UmbEntityExpansionModel } from '../../../../utils/index.js';
/**
 * Manages the expansion state of a menu item
 * @exports
 * @class UmbMenuItemExpansionManager
 * @augments {UmbControllerBase}
 */
export declare class UmbMenuItemExpansionManager extends UmbControllerBase {
    #private;
    readonly expansion: Observable<UmbMenuItemExpansionEntryModel[]>;
    constructor(host: UmbControllerHost);
    setMenuItemAlias(alias: string | undefined): void;
    /**
     * Checks if an entry is expanded
     * @param {UmbMenuItemExpansionEntryModel} entry The entry to check
     * @returns {Observable<boolean>} True if the entry is expanded
     * @memberof UmbSectionSidebarMenuSectionExpansionManager
     */
    isExpanded(entry: UmbMenuItemExpansionEntryModel): Observable<boolean>;
    /**
     * Sets the expansion state
     * @param {UmbEntityExpansionModel<UmbMenuItemExpansionEntryModel> | undefined} expansion The expansion state
     * @memberof UmbSectionSidebarMenuSectionExpansionManager
     * @returns {void}
     */
    setExpansion(expansion: UmbEntityExpansionModel<UmbMenuItemExpansionEntryModel>): void;
    /**
     * Gets the expansion state
     * @memberof UmbSectionSidebarMenuSectionExpansionManager
     * @returns {UmbEntityExpansionModel<UmbMenuItemExpansionEntryModel>} The expansion state
     */
    getExpansion(): UmbEntityExpansionModel<UmbMenuItemExpansionEntryModel>;
    /**
     * Opens a menu item
     * @param {UmbMenuItemExpansionEntryModel} entry The item to open
     * @memberof UmbSectionSidebarMenuSectionExpansionManager
     * @returns {Promise<void>}
     */
    expandItem(entry: UmbMenuItemExpansionEntryModel): Promise<void>;
    /**
     * Expands multiple entities
     * @param {UmbEntityExpansionModel<UmbMenuItemExpansionEntryModel>} entries The entities to open
     * @memberof UmbEntityExpansionManager
     * @returns {void}
     */
    expandItems(entries: UmbEntityExpansionModel<UmbMenuItemExpansionEntryModel>): void;
    /**
     * Closes a menu item
     * @param {UmbMenuItemExpansionEntryModel} entry The item to close
     * @memberof UmbSectionSidebarMenuSectionExpansionManager
     * @returns {Promise<void>}
     */
    collapseItem(entry: UmbMenuItemExpansionEntryModel): Promise<void>;
    /**
     * Closes all menu items
     * @memberof UmbSectionSidebarMenuSectionExpansionManager
     * @returns {Promise<void>}
     */
    collapseAll(): Promise<void>;
}
