export declare type TreeValue = string | number; export declare type TreeMode = 'ordinary' | 'canCheckedParent' | 'unlink'; export declare type InnerLocation = 'before' | 'after' | 'children'; export declare type BaseTreeNode = { value: TreeValue; children?: BaseTreeNode[]; isLeft?: boolean; disabled?: boolean; } & T; export declare type LinkTreeNode = { value: TreeValue; data: T; parent?: LinkTreeNode; children?: LinkTreeNode[]; isLeft?: boolean; disabled?: boolean; checked?: boolean; halfChecked?: boolean; isExpand?: boolean; isLoading?: boolean; }; export declare type MultipleProps = { forest: T[]; mode?: TreeMode; multiple: true; expandSingle?: boolean; defaultCheckedPath?: TreeValue[][]; defaultExpandPath?: TreeValue[][]; loadData?: (node: T) => void; onChange?: (checkedPath: TreeValue[][]) => void; onMove?: (data: T[], node: T, target: T, location: InnerLocation) => void; onCanMove?: (node: T, target: T, location: InnerLocation) => boolean; onUpdateTree?: (data: T[]) => void; }; export declare type SingleProps = { forest: T[]; mode?: TreeMode; multiple?: false; expandSingle?: boolean; defaultCheckedPath?: TreeValue[]; defaultExpandPath?: TreeValue[][]; loadData?: (node: T) => void; onChange?: (checkedPath: TreeValue[]) => void; onMove?: (data: T[], node: T, target: T, location: InnerLocation) => void; onCanMove?: (node: T, target: T, location: InnerLocation) => boolean; onUpdateTree?: (data: T[]) => void; }; export interface BaseReturn { linkForest: LinkTreeNode[]; expandPath: TreeValue[][]; setChecked: (data: T, checked: boolean) => void; setExpandNode: (data?: T, expand?: boolean) => void; changeExpandPath: (expandPath: TreeValue[][]) => void; clearChecked: () => void; move: (node: LinkTreeNode, target: LinkTreeNode, location: InnerLocation) => void; canMove: (node: LinkTreeNode, target: LinkTreeNode, location: InnerLocation) => boolean; addSibling: (refNode: LinkTreeNode, newNode: T) => void; addChild: (refNode: LinkTreeNode, newNode: T) => void; updateNode: (refNode: LinkTreeNode, newNode: T) => void; removeNode: (refNode: LinkTreeNode) => void; } export interface MultipleReturn extends BaseReturn { checkedPath: TreeValue[][]; changeCheckedPath: (checkedPath: TreeValue[][]) => void; } export interface SingleReturn extends BaseReturn { checkedPath: TreeValue[]; changeCheckedPath: (checkedPath: TreeValue[]) => void; }