import type { TreeNodeData, TreeNodeOptions } from '../types/tree';
import type TreeStore from './tree-store';
import type { TreeKey, FakeNode } from '../types/tree';
import type { TreeNodeLoadedDefaultProps } from '../types/node';
declare class Node {
    data: TreeNodeData;
    store: TreeStore;
    id: number;
    childNodes: Node[];
    level: number;
    parent: Node;
    visible: boolean;
    expanded: boolean;
    isCurrent: boolean;
    canFocus: boolean;
    isLeaf: boolean;
    isLeafByUser: boolean;
    loaded: boolean;
    loading: boolean;
    checked: boolean;
    indeterminate: boolean;
    constructor(options: TreeNodeOptions);
    get key(): TreeKey;
    get label(): string;
    get disabled(): boolean;
    get nextSibling(): Node | null;
    get prevSibling(): Node | null;
    initialize(): void;
    setData(data: TreeNodeData): void;
    insertChild(child?: FakeNode | Node, index?: number, batch?: boolean): void;
    getChildren(init?: boolean): TreeNodeData | TreeNodeData[];
    collapse(): void;
    expand(callback?: () => void, expandParent?: boolean): void;
    updateLeafState(): void;
    setChecked(value?: boolean | string, deep?: boolean, recursion?: boolean, passValue?: boolean): void;
    shouldLoadData(): boolean;
    createChildren(array: TreeNodeData[], defaultProps?: TreeNodeLoadedDefaultProps): void;
    loadData(callback: (node: Node) => void, defaultProps?: TreeNodeLoadedDefaultProps): void;
    removeChild(child: Node): void;
    updateChildren(): void;
    contains(target: Node, deep?: boolean): boolean;
    remove(): void;
    insertBefore(child: FakeNode | Node, ref: Node): void;
    insertAfter(child: FakeNode | Node, ref: Node): void;
    removeChildByData(data: TreeNodeData): void;
}
export default Node;
