import type { UmbTreeItemModel } from '../types.js'; import type { UmbEntityUnique } from '../../entity/index.js'; import type { Observable } from '../../../../libs/observable-api/index.js'; import type { UmbContextMinimal } from '../../../../libs/context-api/index.js'; import type { ManifestBase, UmbApi } from '../../../../libs/extension-api/index.js'; /** * The base tree item contract — shared by full tree item contexts and card apis — * covering item data, selection, active state, path, and entity actions. Children, * expansion, and pagination are not included here; they extend this contract in * `UmbTreeItemContext`. */ export interface UmbTreeItemApi extends UmbApi, UmbContextMinimal { unique?: UmbEntityUnique; entityType?: string; manifest: ManifestType | undefined; readonly treeItem: Observable; readonly isSelectable: Observable; readonly isSelectableContext: Observable; readonly selectOnly: Observable; readonly isSelected: Observable; readonly isActive: Observable; readonly hasChildren: Observable; readonly hasActions: Observable; readonly noAccess: Observable; readonly path: Observable; setTreeItem(item: TreeItemType | undefined): void; getTreeItem(): TreeItemType | undefined; open(): void; select(): void; deselect(): void; constructPath(pathname: string, entityType: string, unique: string | null): string; }