import { DataNode, TreeProps as AntTreeProps } from 'antd/es/tree'; import { MenuItemType } from 'rc-menu/lib/interface'; import { Dispatch, MutableRefObject, SetStateAction } from 'react'; import { ExpandAction } from 'antd/es/tree/DirectoryTree'; declare type FunAddDataNodesParam = (nodes: DataNode[]) => DataNode[]; export interface TreeInstance { /** 添加节点信息 */ addNodes: (parent: DataNode, nodes: FunAddDataNodesParam) => void; /** 删除节点 */ removeNodes: (nodeKeys: (string | number)[]) => void; /** 编辑节点信息 */ editNode: (key: string | number, newNode: DataNode) => void; /** 刷新 Tree 节点 */ refresh: (node: DataNode | null) => void; } interface TreeProps extends Omit { tree?: MutableRefObject; /** 是否设置为目录树 */ directoryTree?: boolean; /** 装载数据 */ loadData?: (treeNode: DataNode | null) => Promise; expandAction?: ExpandAction; /** 渲染右键菜单 */ contextMenuRender?: (node: DataNode | null) => MenuItemType[]; /** 改变节点触发的事件 */ onChangeTreeData?: Dispatch>; } export interface AutoSizeTreeProps extends TreeProps { } declare const AutoSizeTree: (props: AutoSizeTreeProps) => JSX.Element; export default AutoSizeTree;