import type { UmbTreeItemContext } from '../index.js'; import type { UmbTreeItemModel } from '../../types.js'; import { type TemplateResult } from '../../../../../external/lit/index.js'; import { UmbLitElement } from '../../../lit-element/index.js'; import type { UmbEntityFlag } from '../../../entity-flag/index.js'; export declare abstract class UmbTreeItemElementBase = UmbTreeItemContext> extends UmbLitElement { #private; set item(newVal: TreeItemModelType); get item(): TreeItemModelType | undefined; protected _item?: TreeItemModelType; /** * @internal * Indicates whether the user has no access to this tree item. * This property is reflected as an attribute for styling purposes. * * **Usage Pattern (opt-in):** * Child classes that support access restrictions should observe their context's `noAccess` observable * and update this property. The base class provides the property, styling, and interaction prevention, * but does not subscribe to the observable to avoid forcing all tree item types to implement it. * * **Example (in child class api setter):** * ```typescript * this.observe(this.#api.noAccess, (noAccess) => (this._noAccess = noAccess)); * ``` * * **Why not in the base interface?** * Adding `noAccess` to `UmbTreeItemContext` would be a breaking change, forcing all tree item * implementations (users, members, data types, etc.) to provide this property even when access * restrictions don't apply to them. */ protected _noAccess: boolean; /** * @param item - The item from which to extract flags. * @description This method is called whenever the `item` property is set. It extracts the flags from the item and assigns them to the `_flags` state property. * This method is in some cases overridden in subclasses to customize how flags are extracted! */ protected _extractFlags(item: TreeItemModelType | undefined): void; protected _flags?: Array; private _label?; private _isLoadingPrevChildren; private _isLoadingNextChildren; set api(value: TreeItemContextType | undefined); get api(): TreeItemContextType | undefined; hideActions: boolean; protected _isActive: boolean; private _childItems?; private _href?; private _isLoading; private _isSelectableContext; private _isSelectable; protected _isSelected: boolean; private _hasChildren; protected _forceShowExpand: boolean; private _isOpen; private _iconSlotHasChildren; private _totalPages; private _currentPage; private _hasPreviousItems; private _hasNextItems; protected _isMenu: boolean; set isMenu(value: boolean); get isMenu(): boolean; private _handleSelectedItem; private _handleDeselectedItem; private _onShowChildren; private _onHideChildren; render(): TemplateResult<1>; renderIconContainer(): TemplateResult<1>; _renderExpandSymbol?: () => HTMLElement | TemplateResult<1> | undefined; protected _getIconToRender(icon: string): string; protected _getIconName(): string | null | undefined; renderLabel(): TemplateResult<1>; static styles: import("lit").CSSResult[]; }