import { TreeDataChangePayload, TreeNode, TreePropTypes } from './props';
export type TreeNodeKey = number | string;
export type IFlatData = {
    data: TreeNode[];
    schema: WeakMap<TreeNode, Record<string, unknown>>;
    nodeMap?: Map<TreeNodeKey, TreeNode>;
    childMap?: WeakMap<TreeNode, TreeNode[]>;
    rootNodes?: TreeNode[];
};
/**
 * 获取当前节点显示Label
 * @param item 当前节点
 * @param props Props
 */
export declare const getLabel: (item: TreeNode, props: TreePropTypes) => unknown;
/**
 * 根据Props获取Tree样式设置
 * @param item
 * @param props
 * @returns
 */
export declare const getTreeStyle: (item: TreeNode, props: TreePropTypes) => {
    '--level-line': unknown;
    '--lineHeight': string;
    '--indent': string;
    '--offset-left': string;
};
/**
 * 获取节点样式配置
 * @param item
 * @param props
 * @returns
 */
export declare const getNodeItemStyle: (item: TreeNode, props: TreePropTypes, flatData: IFlatData, showTree?: boolean) => {};
/**
 * 获取当前渲染节点Class List
 * @param item
 * @returns
 */
export declare const getNodeItemClass: (item: TreeNode, schema: WeakMap<TreeNode, Record<string, unknown>>, props: TreePropTypes, showTree?: boolean) => {
    [x: string]: unknown;
    'is-root': unknown;
    'is-open': unknown;
    'is-virtual-render': boolean;
    'level-line': boolean;
};
/**
 * 获取当前渲染节点Class List
 * @param item
 * @returns
 */
export declare const getNodeRowClass: (item: TreeNode, schema: WeakMap<TreeNode, Record<string, unknown>>) => {
    [x: string]: unknown;
    'is-checked': unknown;
    'is-indeterminate': unknown;
    'is-selected': unknown;
    'node-folder': unknown;
    'node-leaf': unknown;
};
/**
 * 根据路径更新指定节点Child-Data
 * @param path 节点路径
 * @param treeData Tree Data
 * @param childKey Child Key
 * @param nodekey 节点key
 * @param nodeValue 节点值
 */
export declare const updateTreeNode: (path: string, treeData: TreeNode[], childKey: string, nodekey: string, nodeValue: Record<string, unknown>[]) => void;
export declare const cloneTreeData: (treeData?: TreeNode[], childKey?: string) => TreeNode[];
export declare const isSameNodeId: (left: unknown, right: unknown) => boolean;
export declare const findNodeById: (treeData: TreeNode[], nodeId: number | string, nodeKey: string, childKey: string) => TreeNode | null;
export declare const mutateTreeById: (treeData: TreeNode[], nodeId: number | string, nodeKey: string, childKey: string, updater: (node: TreeNode) => void) => TreeNode[];
export declare const removeTreeNodeById: (treeData: TreeNode[], nodeId: number | string, nodeKey: string, childKey: string) => {
    node: TreeNode | null;
    data: TreeNode[];
    parentNode: TreeNode | null;
    index: number;
};
export declare const insertTreeNodeById: (treeData: TreeNode[], node: TreeNode, targetNodeId: number | string, nodeKey: string, childKey: string, options: {
    dropType: "child" | "move" | "sort";
    willInsertAfter?: boolean;
}) => {
    data: TreeNode[];
    parentNode: TreeNode | null;
    targetNode: TreeNode | null;
    index: number;
};
export declare const moveTreeNodeById: (treeData: TreeNode[], nodeId: number | string, targetNodeId: number | string, nodeKey: string, childKey: string, options: {
    dropType: "child" | "move" | "sort";
    willInsertAfter?: boolean;
}) => TreeDataChangePayload | null;
/**
 * 根据路径更新指定节点Child-Data
 * @param path 节点路径
 * @param treeData Tree Data
 * @param childKey Child Key
 * @param assignVal value
 */
export declare const assignTreeNode: (path: string, treeData: TreeNode[], childKey: string, assignVal: Record<string, unknown>) => void;
export declare const resolveNodeItem: (node: TreeNode) => TreeNode;
export declare const resolvePropIsMatched: (node: any, prop: any, id: any) => any;
export declare const showCheckbox: (props: TreePropTypes, node?: TreeNode) => any;
export declare const isCascadeEnabled: (props: TreePropTypes) => boolean;
