/** * Webpack has bug for import loop, which is not the same behavior as ES module. * When util.js imports the TreeNode for tree generate will cause treeContextTypes be empty. */ import * as React from 'react'; import type { BasicDataNode, DataNode, Direction, EventDataNode, IconType, Key, KeyEntities, TreeNodeProps } from './interface'; import type { DraggableConfig, SemanticName } from './Tree'; export type NodeMouseEventParams = { event: React.MouseEvent; node: EventDataNode; }; export type NodeDragEventParams = { event: React.DragEvent; node: EventDataNode; }; export type NodeMouseEventHandler = (e: React.MouseEvent, node: EventDataNode) => void; export type NodeDragEventHandler = (e: React.DragEvent, nodeProps: TreeNodeProps, outsideTree?: boolean) => void; export interface TreeContextProps { styles?: Partial>; classNames?: Partial>; prefixCls: string; selectable: boolean; showIcon: boolean; icon: IconType; switcherIcon: IconType; draggable?: DraggableConfig; draggingNodeKey?: Key; checkable: boolean | React.ReactNode; checkStrictly: boolean; disabled: boolean; keyEntities: KeyEntities; dropLevelOffset?: number; dropContainerKey: Key | null; dropTargetKey: Key | null; dropPosition: -1 | 0 | 1 | null; indent: number | null; dropIndicatorRender: (props: { dropPosition: -1 | 0 | 1; dropLevelOffset: number; indent: number; prefixCls: string; direction: Direction; }) => React.ReactNode; dragOverNodeKey: Key | null; direction: Direction; loadData: (treeNode: EventDataNode) => Promise; filterTreeNode: (treeNode: EventDataNode) => boolean; titleRender?: (node: any) => React.ReactNode; onNodeClick: NodeMouseEventHandler; onNodeDoubleClick: NodeMouseEventHandler; onNodeExpand: NodeMouseEventHandler; onNodeSelect: NodeMouseEventHandler; onNodeCheck: (e: React.MouseEvent, treeNode: EventDataNode, checked: boolean) => void; onNodeLoad: (treeNode: EventDataNode) => void; onNodeMouseEnter: NodeMouseEventHandler; onNodeMouseLeave: NodeMouseEventHandler; onNodeContextMenu: NodeMouseEventHandler; onNodeDragStart: NodeDragEventHandler; onNodeDragEnter: NodeDragEventHandler; onNodeDragOver: NodeDragEventHandler; onNodeDragLeave: NodeDragEventHandler; onNodeDragEnd: NodeDragEventHandler; onNodeDrop: NodeDragEventHandler; } export declare const TreeContext: React.Context>; /** Internal usage, safe to remove. Do not use in prod */ export declare const UnstableContext: React.Context<{ nodeDisabled?: (n: DataNode) => boolean; }>;