import { DragEvent, HTMLAttributes, ReactNode } from 'react';
import { TreeDropEvent, TreeExpandEvent, TreeExpose, TreeFieldNames } from './types.js';
import { TreeNode, TreeNodeData } from './utils.js';
export interface TreeProps extends Omit, "onSelect" | "onDragStart" | "onDragEnter" | "onDragLeave" | "onDrop" | "onDragEnd" | "defaultValue" | "defaultChecked"> {
data?: TreeNodeData[];
selectedKeys?: string[];
expandedKeys?: string[];
checkedKeys?: string[];
directory?: boolean;
disabled?: boolean;
checkable?: boolean;
draggable?: boolean;
showLine?: boolean;
showIcon?: boolean;
showExtra?: boolean;
multiple?: boolean;
checkStrictly?: boolean;
selectAsCheck?: boolean;
queryKey?: string;
/** 开启虚拟滚动,用于高效渲染大量节点 */
virtual?: boolean;
/** 虚拟滚动容器高度,`virtual` 开启时生效 */
height?: number | string;
/** 虚拟滚动时每个节点的高度,单位 `px` */
itemHeight?: number;
/** 虚拟滚动时视口外额外渲染的节点数量 */
overscan?: number;
loading?: boolean;
fieldNames?: TreeFieldNames;
renderTitle?: (node: TreeNode) => ReactNode;
renderExtra?: (node: TreeNode) => ReactNode;
onExpand?: (result: TreeExpandEvent) => void;
onExpandedKeysChange?: (keys: string[]) => void;
onCheck?: (node: TreeNode, checked: boolean, checkedKeys: string[]) => void;
onCheckedKeysChange?: (keys: string[]) => void;
onSelect?: (node: TreeNode, selectedKeys: string[]) => void;
onSelectedKeysChange?: (keys: string[]) => void;
onDragStart?: (node: TreeNode, event: DragEvent) => void;
onDragEnter?: (node: TreeNode, event: DragEvent) => void;
onDragLeave?: (node: TreeNode, event: DragEvent) => void;
onDrop?: (nodes: TreeDropEvent, event: DragEvent) => void;
onLoadError?: (error: unknown, node: TreeNode) => void;
onDragEnd?: (node: TreeNode, event: DragEvent) => void;
loadData?: (node: TreeNode) => Promise;
}
export type { BuildTreeOptions, TreeNode, TreeNodeData } from './utils.js';
export type { TreeDropEvent, TreeDropPosition, TreeExpandEvent, TreeExpose, TreeFieldNames, } from './types.js';
declare const Tree: import('react').ForwardRefExoticComponent>;
export default Tree;