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[]; } export interface TreeItemVisual extends TreeItem { level: number; } export interface TreeItemContext { isExpanded: boolean; isSelected: boolean; }