import { TreeNode } from '../index.d';
export declare function flattenTree(root: TreeNode[]): TreeNode[];
export declare function hasChildChecked(item: TreeNode, curValue: TreeNode[]): boolean;
/**
 *
 * @param item 被更改的节点
 * @param value 之前全部选择的值
 * @returns
 */
export declare function isParentChecked(item: TreeNode, value: TreeNode[]): boolean;
export declare function matchAllLeafValue(value: TreeNode[], roots: Array<TreeNode>): TreeNode[];
/**
 * 获取 root 下全部的子元素(不包含root本身)，再对value进行一层过滤，过滤掉root下的子元素
 * @param root 当前选中节点 的最顶层节点
 * @param value 已经选中的值
 * @returns 更改后的value
 */
export declare function removeAllDescendanceValue(root: TreeNode, value: TreeNode[]): TreeNode[];
export declare function liftTreeState(item: TreeNode, curVal: TreeNode[]): TreeNode[];
/**
 * 如果它的父元素被选中，则删除父元素，把父元素下选择的子元素都推入value
 * @param root 被更改的节点
 * @param value 之前全部选择的值
 * @returns
 */
export declare function sinkTreeState(root: TreeNode, value: TreeNode[]): TreeNode[];
/**
 * 把变动的节点(不管是选中还是没选中)，从value里新增或删除时，兼容它的父节点与子节点
 * @param item 变动的节点
 * @param checked 变动的节点到底是选中还是未选中状态
 * @param value 之前全部选择的值
 * @returns TreeNode[]
 */
export declare function reconcile(item: TreeNode, checked: boolean, value: TreeNode[]): TreeNode[];
export declare function transformValue(value: TreeNode[], flattenData: TreeNode[]): TreeNode[];
export declare function shallowEqualArray(arrA: any, arrB: any): boolean;
/**
 * 在 allData 里查找出 propsValue 里全部的节点
 * @param propsValues 用户输入的value
 * @param allData 全部的节点
 * @returns
 */
export declare function transPropsValueToValues(propsValues: string[][], allData: TreeNode[]): TreeNode[];
export declare function findAllLeafNode(selectedNodes: TreeNode[]): TreeNode[][];
export declare function transTreeNodesToArray(treeNodes: TreeNode[][]): string[][];
