import { NzFormatEmitEvent, NzFormatPosition, NzTreeNodeOptions } from './interface';
import { NzTreeNode } from './nz-tree-node';
export declare class NzTreeService {
    selectedNode: NzTreeNode;
    targetNode: NzTreeNode;
    rootNodes: NzTreeNode[];
    selectedNodeList: NzTreeNode[];
    checkedNodeList: NzTreeNode[];
    matchedNodeList: NzTreeNode[];
    /**
     * init data to NzTreeNode
     * @param {any[]} root
     */
    initTreeNodes(root: NzTreeNodeOptions[]): NzTreeNode[];
    /**
     * init checkBox state
     * @param {NzTreeNode} node
     * @returns {NzTreeNode}
     */
    initParentNode(node: NzTreeNode): void;
    setSelectedNode(node: NzTreeNode | null): void;
    getSelectedNode(): NzTreeNode | null;
    setSelectedNodeList(node: NzTreeNode, isMultiple: boolean): void;
    getSelectedNodeList(): NzTreeNode[];
    setCheckedNodeList(node: NzTreeNode): void;
    getCheckedNodeList(): NzTreeNode[];
    getMatchedNodeList(): NzTreeNode[];
    /**
     * keep selected state if isMultiple is true
     * @param {NzTreeNode} node
     * @param {boolean} isMultiple
     */
    initNodeActive(node: NzTreeNode, isMultiple?: boolean): void;
    resetNodeActive(node: NzTreeNode): void;
    /**
     * click checkbox
     * @param {NzTreeNode} checkedNode
     */
    checkTreeNode(node: NzTreeNode, defaultValue?: boolean): void;
    /**
     * reset child check state
     * @param {NzTreeNode} node
     * @param {boolean} value
     */
    checkTreeNodeChildren(node: NzTreeNode, value: boolean): void;
    /**
     * 1、children half checked
     * 2、children all checked, parent checked
     * 3、no children checked
     * @param node
     * @returns {boolean}
     */
    checkTreeNodeParents(node: NzTreeNode): void;
    /**
     * search & expand node
     */
    searchExpand(value: string): void;
    /**
     * drop
     * 0: inner -1: pre 1: next
     */
    dropAndApply(targetNode: NzTreeNode, dragPos?: number): void;
    resetNodeLevel(node: NzTreeNode): void;
    /**
     * @param {DragEvent} e
     * @returns {number}
     */
    calcDropPosition(e: DragEvent): number;
    getOffset(ele: Element): NzFormatPosition;
    /**
     * emit Structure
     * eventName
     * node
     * event: MouseEvent / DragEvent
     * dragNode
     */
    formatEvent(eventName: string, node: NzTreeNode, event: MouseEvent | DragEvent): NzFormatEmitEvent;
}
