import { ReactNode } from 'react';
export interface TreeItemProps {
    key: string;
    value: string;
    label: string;
    children?: Array<TreeItemProps | ReactNode>;
    disabled?: boolean;
    icon?: (checked: boolean) => ReactNode;
}
/** 树节点的数据 */
export interface DataNode {
    checkable?: boolean;
    children?: DataNode[];
    disabled?: boolean;
    disableCheckbox?: boolean;
    icon?: (checked: boolean) => ReactNode;
    key: string;
    value: string;
    label?: React.ReactNode | string;
    switcherIcon?: ReactNode;
    show?: boolean;
}
/** 数据节点的事件 */
export interface EventDataNode extends DataNode {
    expanded: boolean;
    checked: boolean;
    eventKey?: string;
}
/** 树节点平铺后的数据 */
export interface FlattenNode extends Omit<DataNode, 'children'> {
    parent: FlattenNode | null;
    children: FlattenNode[] | null;
    data: DataNode;
}
/** 树节点平铺后的数据 */
export interface EntityNode {
    parent: DataNode;
    children: DataNode[] | null;
    data: DataNode;
    level: number;
    key: string;
}
export interface TreeProps {
    /** 组件的高度 */
    height?: number;
    /** 树的节点数据 */
    treeData?: TreeItemProps[];
    /** 禁用整棵树 */
    disabled?: boolean;
    /** 是否可以选择的 */
    checkable?: boolean;
    /** 选中的节点受控的  */
    checkedKeys?: string[];
    /** checkable 状态下节点选择完全受控（父子节点选中状态不再关联） */
    checkStrictly?: boolean;
    /** 默认选中的key第一次加载有效 */
    defaultCheckedKeys?: string[];
    /** 默认全部展开 */
    defaultExpandAll?: boolean;
    /** 默认展开节点 */
    defaultExpandedKeys?: string[];
    /** 展开的节点 */
    expandedKeys?: string[];
    /** 是否显示尾部的图标 */
    showIcon?: boolean;
    /** 选中事件回调 */
    onCheck?: (keys: string[]) => void;
    /** 展开事件回调 */
    onExpand?: (treeNode: EventDataNode) => void;
    /** 自定义icon */
    icon?: (checked: boolean) => ReactNode;
}
export interface TreeNodeProps {
    /** 父节点的key */
    eventKey?: string;
    /** 是否展开 */
    expanded?: boolean;
    /** 是否选中 */
    checked?: boolean;
    /** 标题 */
    label?: React.ReactNode;
    /** 节点的数据 */
    data: DataNode;
    /** 是否显示展开图标 */
    showIcon?: boolean;
    /** 所属级别 */
    level: number;
    /** 是否可选 */
    checkable?: boolean;
    /** 是否禁用 */
    disabled?: boolean;
    /** 点击事件回调 */
    onClick?: (data: EventDataNode) => void;
    /** 选中事件回调 */
    onCheck?: (data: EventDataNode) => void;
    /** 自定义icon */
    icon?: (checked: boolean) => ReactNode;
    show?: boolean;
}
