/// <reference types="react" />
import { CheckTreePickerProps, ValueType } from './CheckTreePicker';
import { CheckStateType } from '../utils';
export interface TreeNodeType {
    uncheckable?: boolean;
    refKey?: string;
    check?: boolean;
    parent?: TreeNodeType;
    checkAll?: boolean;
    visible?: boolean;
    expand?: boolean;
    layer?: number;
    label?: string | React.ReactNode;
    value?: string | number;
    groupBy?: string;
    children?: TreeNodeType[];
    hasChildren?: boolean;
    checkState?: CheckStateType;
}
export interface TreeNodesType {
    [key: string]: TreeNodeType;
}
export declare function isEveryChildChecked(nodes: TreeNodesType, parent: TreeNodeType): boolean;
export declare function isSomeChildChecked(nodes: TreeNodesType, parent: TreeNodeType, childrenKey: string): boolean;
export declare function isSomeNodeHasChildren(data: any[], childrenKey: string): boolean;
/**
 * is all siblings nodes is uncheckable
 * @param {*} node
 */
export declare function isAllSiblingNodeUncheckable(node: TreeNodeType, nodes: TreeNodesType, uncheckableItemValues: (string | number)[], valueKey: string): boolean;
/**
 * get each first level node uncheckable state
 */
export declare function isEveryFirstLevelNodeUncheckable(nodes: TreeNodesType, uncheckableItemValues: (string | number)[], valueKey: string): boolean;
/**
 * get node uncheckable state
 * @param {*} node
 */
export declare function isNodeUncheckable(node: any, props: Required<Pick<CheckTreePickerProps, 'uncheckableItemValues' | 'valueKey'>>): boolean;
export declare function getFormattedTree(data: any[], nodes: TreeNodesType, props: Required<Pick<CheckTreePickerProps, 'childrenKey' | 'cascade'>>): any[];
export declare function getDisabledState(nodes: TreeNodesType, node: TreeNodeType, props: Required<Pick<CheckTreePickerProps, 'disabledItemValues' | 'valueKey'>>): boolean;
export declare function getCheckTreePickerDefaultValue(value: any[], uncheckableItemValues: any[]): any[];
export declare function getSelectedItems(nodes: TreeNodesType, values: ValueType): TreeNodeType[];
export declare function getNodeCheckState({ nodes, node, cascade, childrenKey }: any): CheckStateType;
