export type TreeItemId = string; export type TreeContext = Record; export type TreeModel = Record>; export type UpdateCallback = (treeItem: TreeItem, context: TreeContext) => void; export interface TreeItem { id: TreeItemId; data: T; hasChildren: boolean; children: TreeItemId[]; disabled?: boolean; } export interface TreeItemVisual extends TreeItem { level: number; posinset?: number; setsize?: number; } export interface TreeItemContext { isExpanded: boolean; isSelected: boolean; isDisabled?: boolean; }