import * as React from "react"; import { IconType, Key, DataEntity, EventDataNode, NodeInstance } from "./interface"; //Node Mouse Event Handler type NodeMouseEventHandler = ( e: React.MouseEvent, node: EventDataNode ) => void; //Node Drag Event Handler type NodeDragEventHandler = ( e: React.MouseEvent, node?: NodeInstance ) => void; interface TreeContextProps { prefixCls: string; showIcon: boolean; icon: IconType; switcherIcon: IconType; selectable: boolean; draggable: boolean; disabled: boolean; keyEntities: Record; loadData: (treeNode: EventDataNode) => Promise; filterTreeNode: (treeNode: EventDataNode) => boolean; onNodeLoad: (treeNode: EventDataNode) => void; onNodeClick: NodeMouseEventHandler; onNodeDoubleClick: NodeMouseEventHandler; onNodeExpand: NodeMouseEventHandler; onNodeSelect: NodeMouseEventHandler; onNodeMouseEnter: NodeMouseEventHandler; onNodeMouseLeave: NodeMouseEventHandler; onNodeContextMenu: NodeMouseEventHandler; onNodeDragStart: NodeDragEventHandler; onNodeDragEnter: NodeDragEventHandler; onNodeDragOver: NodeDragEventHandler; onNodeDragLeave: NodeDragEventHandler; onNodeDragEnd: NodeDragEventHandler; onNodeDrop: NodeDragEventHandler; } const TreeContext: React.Context = React.createContext( null ); export { TreeContextProps, TreeContext };