import { TreeNodeType, Direction } from './types';
export declare class Meta {
    compare: number;
    configKey: string;
    configName: string;
    extParam: any;
    processorPrefix: string;
    reboundRetreatPriceDiff: number;
    regionType: number;
    stockRange: number;
    strategyPoints: Array<any>;
    targetBuySell: number;
    values: Array<any>;
    children: Array<any>;
    type: TreeNodeType;
    mergeNode: boolean;
    preNode: Array<any>;
    buyAndSellType: number;
    constructor({ compare, configKey, configName, extParam, processorPrefix, reboundRetreatPriceDiff, regionType, stockRange, strategyPoints, targetBuySell, type, values, children, mergeNode, preNode, buyAndSellType, }: {
        compare?: any;
        configKey?: any;
        configName?: any;
        extParam?: any;
        processorPrefix?: any;
        reboundRetreatPriceDiff?: any;
        regionType?: any;
        stockRange?: any;
        strategyPoints?: any;
        targetBuySell?: any;
        type?: any;
        values?: any;
        children?: any[];
        mergeNode?: any;
        preNode?: any;
        buyAndSellType?: any;
    });
}
export declare class Node {
    id: string;
    width: number;
    height: number;
    coordinate: number[];
    meta: Meta;
    constructor({ width, height, coordinate, meta }: {
        width?: number;
        height?: number;
        coordinate?: number[];
        meta?: Meta;
    });
}
export declare class Link {
    id: string;
    startId: string;
    endId: string;
    startAt: number[];
    endAt: number[];
    meta: any;
    constructor({ startId, endId, startAt, endAt, meta }: {
        startId: any;
        endId: any;
        startAt?: number[];
        endAt?: number[];
        meta?: any;
    });
}
export declare function containsAll(arr: any, targetArr: any): any;
export declare function isNodeInMerge({ nodeId, modelPathList, nodeList }: {
    nodeId: any;
    modelPathList: any;
    nodeList: any;
}): boolean;
export declare function hasErrorToolInLink({ nodeId, modelPathList, nodeList }: {
    nodeId: any;
    modelPathList: any;
    nodeList: any;
}): boolean;
export declare function getNodeIdActiveMap({ nodeList, linkList }: {
    nodeList: any;
    linkList: any;
}): Map<any, any>;
/**
 * 设置高亮路径
 * @param param0
 */
export declare function lightenPath({ nodeIds, nodeList, linkList, }: {
    nodeIds: string[];
    nodeList: any[];
    linkList: any[];
}): void;
export declare function cleanExtraLink({ nodeList, linkList }: {
    nodeList: any;
    linkList: any;
}): void;
export declare function getAllFinalNode({ nodeList, modelPathList }: {
    nodeList: any;
    modelPathList: any;
}): any;
export declare function checkMergeNodeList({ mergeNodeList, nodeList, modelPathList }: {
    mergeNodeList: any;
    nodeList: any;
    modelPathList: any;
}): boolean;
/**
 * @Description: 查询子孙节点数组（包括自身）
 * @param {*} param1
 * @return {*}
 */
export declare function findChildrenNodeList({ nodeId, modelPathList, nodeList }: {
    nodeId: any;
    modelPathList: any;
    nodeList: any;
}): any;
/**
 * @Description: 插入(增加)节点
 * @param {number} id
 * @param {any[]} modelPathList
 * @param {any[]} nodeList
 * @param {any[]} linkList
 * @return {void}
 */
export declare function insertNode({ nodeId, modelPathList, nodeList, linkList, width, height, meta, }: {
    nodeId: any;
    modelPathList: any;
    nodeList: any;
    linkList: any;
    width?: number;
    height?: number;
    meta?: Meta;
}): void;
/**
 * @Description: 添加 节点
 * @param {*} linkId  点击添加的 线路id
 * @param {*} modelPathList
 * @param {*} nodeList
 * @param {*} linkList
 * @return {*}
 */
export declare function appendNode({ linkId, modelPathList, nodeList, linkList, width, height, meta, }: {
    linkId: any;
    modelPathList: any;
    nodeList: any;
    linkList: any;
    width?: number;
    height?: number;
    meta?: Meta;
}): void;
/**
 * @Description: 删除 节点
 * @param {*} nodeId  被删除的 节点id
 * @param {*} modelPathList
 * @param {*} nodeList
 * @param {*} linkList
 * @return {*}
 */
export declare function deleteNode({ nodeId, modelPathList, nodeList, linkList }: {
    nodeId: any;
    modelPathList: any;
    nodeList: any;
    linkList: any;
}): void;
/**
 * @Description: 合并 节点
 * @param {*} mergeNodeList  选中需要合并的数组
 * @param {*} nodeList
 * @param {*} linkList
 * @param {*} modelPathList
 * @return {*}
 */
export declare function mergeNode({ mergeNodeList, nodeList, linkList, modelPathList }: {
    mergeNodeList: any;
    nodeList: any;
    linkList: any;
    modelPathList: any;
}): void;
export declare function cancelMerge({ selectLinkList, nodeList, linkList, modelPathList }: {
    selectLinkList: any;
    nodeList: any;
    linkList: any;
    modelPathList: any;
}): void;
export declare function initShrinkNode({ nodeList, modelPathList }: {
    nodeList: any;
    modelPathList: any;
}): any;
export declare function shrinkOrExpandNode({ nodeId, nodeList, modelPathList }: {
    nodeId: any;
    nodeList: any;
    modelPathList: any;
}): void;
export declare function changeNodeHeight({ nodeId, nodeList, diffY }: {
    nodeId: any;
    nodeList: any;
    diffY: any;
}): void;
/**
 * 根据元素坐标来查询目标节点 也就是要插入在哪个节点附近，找到节点后再根据节点的4个角的坐标来判断插入方向（上、下、右三个方向）
 * @param x 水平偏移量
 * @param offset 节点偏移量
 */
export declare function findNodeByCoordinate({ nodeList, modelPathList, offset }: {
    nodeList: any;
    modelPathList: any;
    offset?: any[];
}): {
    node: any;
    direction: Direction;
};
export declare function disabledNodeDrag({ sourceNode, linkList, nodeList, modelPathList, draggable }: {
    sourceNode: any;
    linkList: any;
    nodeList: any;
    modelPathList: any;
    draggable: any;
}): boolean;
export declare function appendDragNode({ sourceNode, targetNode, nodeList, linkList, modelPathList, direction, }: {
    sourceNode: any;
    targetNode: any;
    nodeList: any;
    linkList: any;
    modelPathList: any;
    direction: any;
}): {
    disabled: boolean;
    disabeld?: undefined;
    startNode?: undefined;
} | {
    disabeld: boolean;
    disabled?: undefined;
    startNode?: undefined;
} | {
    startNode: any;
    disabled?: undefined;
    disabeld?: undefined;
};
export declare function deleteDragNodeAndLink({ nodeList, linkList, modelPathList }: {
    nodeList: any;
    linkList: any;
    modelPathList: any;
}): void;
export declare function updateDragNode({ sourceNode, startNode, targetNode, nodeList, modelPathList, linkList, direction, disabled, }: {
    sourceNode: any;
    startNode: any;
    targetNode: any;
    nodeList: any;
    modelPathList: any;
    linkList: any;
    direction: any;
    disabled: any;
}): void;
export declare function changeNodeWidth({ nodeId, nodeList, modelPathList, width }: {
    nodeId: any;
    nodeList: any;
    modelPathList: any;
    width: any;
}): void;
export declare function editMerge({ selectNode, mergeNodeList, activeId, mergeNode, modelPathList, linkList, nodeList, }: {
    selectNode: any;
    mergeNodeList: any;
    activeId: any;
    mergeNode: any;
    modelPathList: any;
    linkList: any;
    nodeList: any;
}): void;
