import { NODE_ATTRIBUTES } from './constant';
import { TreeNode, TreePropTypes } from './props';
type TreeNodeAttributeMap = {
    [NODE_ATTRIBUTES.DEPTH]: number;
    [NODE_ATTRIBUTES.HAS_CHILD]: boolean;
    [NODE_ATTRIBUTES.INDEX]: number;
    [NODE_ATTRIBUTES.IS_ASYNC]: boolean;
    [NODE_ATTRIBUTES.IS_ASYNC_INIT]: boolean;
    [NODE_ATTRIBUTES.IS_CACHED]: boolean;
    [NODE_ATTRIBUTES.IS_CHECKED]: boolean;
    [NODE_ATTRIBUTES.IS_INDETERMINATE]: boolean;
    [NODE_ATTRIBUTES.IS_LOADING]: boolean;
    [NODE_ATTRIBUTES.IS_MATCH]: boolean;
    [NODE_ATTRIBUTES.IS_NULL]: boolean;
    [NODE_ATTRIBUTES.IS_OPEN]: boolean;
    [NODE_ATTRIBUTES.IS_ROOT]: boolean;
    [NODE_ATTRIBUTES.IS_SELECTED]: boolean;
    [NODE_ATTRIBUTES.ORDER]: number;
    [NODE_ATTRIBUTES.PARENT]: TreeNode;
    [NODE_ATTRIBUTES.PATH]: string;
    [NODE_ATTRIBUTES.TREE_NODE_ATTR]: Record<string, unknown>;
    [NODE_ATTRIBUTES.UUID]: string | number;
};
declare const _default: (flatData: {
    data: TreeNode[];
    schema: WeakMap<TreeNode, Record<string, unknown>>;
    nodeMap?: Map<number | string, TreeNode>;
    childMap?: WeakMap<TreeNode, TreeNode[]>;
    rootNodes?: TreeNode[];
}, props?: TreePropTypes) => {
    getSchemaVal: (node: TreeNode) => Record<string, unknown>;
    getNodeAttr: {
        <T extends NODE_ATTRIBUTES>(node: TreeNode | null | undefined, attr: T): TreeNodeAttributeMap[T] | undefined;
        (node: TreeNode | null | undefined, attr: string): unknown;
    };
    getNodeId: (node: TreeNode | null | undefined) => string | number;
    getNodeById: (id: string | unknown) => TreeNode;
    getNodeParentId: (node: TreeNode) => string | number;
    getParentNodeData: (node: TreeNode | string) => TreeNode;
    getNodePathById: (id: string) => string;
    getNodeAttrById: (id: string, attr: string) => unknown;
    getNodeParentIdById: (id: string) => string | number;
    getNodeIndexById: (id: string) => number;
    getNodeIndexByNode: (node: TreeNode) => number;
    getRootNodeList: () => TreeNode[];
    getParentNodeAttr: (node: TreeNode, attrName: string) => unknown;
    getParentNode: (node: TreeNode) => TreeNode;
    setNodeAttr: (node: TreeNode, attr: string, val: unknown, id?: any) => void;
    setNodeAttrById: (id: unknown, attr: string, val: unknown) => void;
    getNodePath: (node: TreeNode) => string;
    isRootNode: (node: TreeNode | string) => boolean;
    isNodeOpened: (node: TreeNode) => boolean;
    hasChildNode: (node: TreeNode) => boolean;
    isItemOpen: (item: TreeNode) => unknown;
    isNodeChecked: (node: TreeNode) => boolean;
    isNodeMatched: (node: TreeNode) => boolean;
    isNodeLoading: (node: TreeNode) => boolean;
    checkNodeIsOpen: (node: TreeNode) => unknown;
    getSourceNodeByPath: (path: string, uid?: string) => any[];
    getSourceNodeByUID: (uid: string) => TreeNode;
    isMatchedNode: (node: TreeNode) => boolean;
    resolveScopedSlotParam: (item: TreeNode) => {
        [x: string]: string | number | boolean | TreeNode;
        fullPath: string;
        uuid: string | number;
        parent: TreeNode;
        parentId: string | number;
    };
    setTreeNodeLoading: (node: TreeNode, value: boolean) => void;
    extendNodeAttr: (item: TreeNode) => TreeNode & {
        __attr__: {
            [x: string]: string | number | boolean | TreeNode;
            fullPath: string;
            uuid: string | number;
            parent: TreeNode;
            parentId: string | number;
        };
    };
    getChildNodes: (node: TreeNode) => TreeNode[];
    extendNodeScopedData: (item: TreeNode) => {
        data: TreeNode;
        attributes: {
            [x: string]: string | number | boolean | TreeNode;
            fullPath: string;
            uuid: string | number;
            parent: TreeNode;
            parentId: string | number;
        };
    };
    getIntersectionResponse: (target: HTMLElement | TreeNode) => {
        level: number;
        target: HTMLElement | TreeNode;
        index: number;
        parent: TreeNode;
        node: HTMLElement | TreeNode;
        isRoot: boolean;
    };
};
export default _default;
