declare type NodeKey = string | number; interface TreeNodeOptions { nodeKey: NodeKey; name: string; level?: number; loading?: boolean; hasChildren?: boolean; children?: TreeNodeOptions[]; parentKey?: NodeKey | null; } interface TreeInstance { getSelectedNode: () => TreeNodeOptions | undefined; getCheckedNodes: () => TreeNodeOptions[]; getHalfCheckedNodes: () => TreeNodeOptions[]; getExpandedKeys: () => NodeKey[]; } interface TreeNodeInstance { rawNode: TreeNodeOptions; halfChecked: () => boolean; } declare type TypeWithNull = T | null; declare type TypeWithUndefined = T | undefined; export { TreeNodeOptions, NodeKey, TreeInstance, TreeNodeInstance, TypeWithUndefined, TypeWithNull };