/**
 * 这个文件用于所有函数方法
 */
import { Link, Node } from './model';
import { type RenderStgyGraphParams, type DeleteNodeRelationParams, type FindNodeByIdParams, type GetLinkFirstIndexByEndIdParams, type AddNodeListParams, type DelNodeListParams, type FindLinkChildByIdParams, type AddOneBrotherNodeParams, type AddModuleBrotherNodeParams, type AddOneChildNodeParams, type AddModuleChildNodeParams, type MergeNodeParams, type CancelMergeParams, type EditMergeParams, Direction } from './types';
export declare function getCurrentFatherAdnSonNode(data: string[][], currentNode: string[]): Set<unknown>;
export declare function getCurrentFatherNode(data: string[][], currentNode: string[]): Set<unknown>;
export declare function getCurrentChildrenNode(data: string[][], currentNode: string[]): Set<unknown>;
export declare function getCurrentBrother(data: string[][], currentNode: string[]): Set<unknown>;
/** 根据id 获取节点
 * @param {*} nodeId Array | string
 * @param {*} nodeList
 * @return {*}
 */
export declare function findNodeById({ nodeId, nodeList }: FindNodeByIdParams): Node | Node[];
/** 根据endId 获取linkList中第一次出现的 下标
 * @param {*} endId   string
 * @param {*} linkList
 * @return {*}
 */
export declare function getLinkFirstIndexByEndId({ endId, linkList }: GetLinkFirstIndexByEndIdParams): number;
/** 根据startId 获取linkList中第一次出现的 下标
 * @param {*} endId   string
 * @param {*} linkList
 * @return {*}
 */
export declare function getLinkFirstIndexByStartId({ startId, linkList }: {
    startId: any;
    linkList: any;
}): any;
/** 新增节点（change nodeList）
 * @param {*} addNode
 * @param {*} nodeList
 * @return {*}
 */
export declare function addNodeList({ nodeList, addNode }: AddNodeListParams): void;
/** 删除节点 （change nodeList）
 * @param {*} delNodeIds Array | string
 * @param {*} nodeList
 * @return {*}
 */
export declare function delNodeList({ nodeList, delNodeIds }: DelNodeListParams): void;
/** 通过id  查找在linkList经过此元素之后的链路、关系、最后一个link的下标
 * @param {*} linkList
 * @param {*} nodeId
 * @return {*}
 */
export declare function findLinkChildById({ linkList, nodeId }: FindLinkChildByIdParams): {
    affectedIds: string[];
    childLinkList: any[];
    lastLinkIndex: number;
    parentIds: any[];
    childIds: any[];
};
/** 新增兄弟节点(点击【添】)-仅一个
 * @param {*} linkList
 * @param {*} nodeList
 * @param {*} nodeId 点击的节点id
 * @param {*} width 需要添加节点的宽度
 * @param {*} height 需要添加节点的高度
 * @param {*} meta 需要添加节点的meta
 * @return {*}
 */
export declare function appendNode({ linkList, nodeId, nodeList, width, height, meta, }: AddOneBrotherNodeParams): {
    node: Node;
    link: Link;
};
/** 新增兄弟节点(点击【添】)-模型
 * @param {*} linkList
 * @param {*} nodeList
 * @param {*} nodeId 点击的节点id
 * @param {*} addModuleLink 被添加的模型节点关系（如：[1,3][3,4]）
 * @param {*} addModuleNode 被添加的模型节点
 * @return {*}
 */
export declare function addModuleBrotherNode({ linkList, nodeId, nodeList, addModuleLink, addModuleNode, }: AddModuleBrotherNodeParams): void;
/** 新增子节点(点击【+】)-仅一个
 * @param {*} linkList
 * @param {*} nodeList
 * @param {*} nodeId 点击的节点id
 * @param {*} width 需要添加节点的宽度
 * @param {*} height 需要添加节点的高度
 * @param {*} meta 需要添加节点的meta
 * @return {*}
 */
export declare function insertNode({ linkList, nodeId, nodeList, width, height, meta, }: AddOneChildNodeParams): {
    node: Node;
    link: Link;
};
/** 新增子节点(点击【+】)-模型
 * 不支持给有子节点的节点添加模型(因不知道将子节点拼接在模型节点的哪一个节点上)，如后续有相关需求再做调整
 * @param {*} linkList
 * @param {*} nodeList
 * @param {*} nodeId 点击的节点id
 * @param {*} addModuleLink 被添加的模型节点关系（如：[1,3][3,4]）
 * @param {*} addModuleNode 被添加的模型节点
 * @return {*}
 */
export declare function addModuleChildNode({ linkList, nodeId, nodeList, addModuleLink, addModuleNode, }: AddModuleChildNodeParams): void;
/** 合并 节点
 * @param {*} mergeNodeList 合并项list
 * @param {*} nodeList
 * @param {*} linkList
 * @return {*}
 */
export declare function mergeNode({ mergeNodeList, nodeList, linkList }: MergeNodeParams): void;
/** 取消合并
 * @param {*} activeId
 * @param {*} nodeList
 * @param {*} linkList
 * @return {*}
 */
export declare function cancelMerge({ activeId, nodeList, linkList }: CancelMergeParams): void;
/** 修改合并
 * @param {*} oldMergeNodeList 初始合并项
 * @param {*} mergeNodeList 新的合并项
 * @param {*} nodeList
 * @param {*} linkList
 * @param {*} activeId
 * @return {*}
 */
export declare function editMerge({ activeId, mergeNodeList, nodeList, linkList }: EditMergeParams): void;
export declare const getCompletionPreRelationList: (relationList: any) => any[];
export declare const renderStgyGraph: (params: RenderStgyGraphParams) => {
    parentMap: {};
    subMap: {};
    relationList: any[];
};
/**
 * 展开收起 节点
 * @param nodeId 操作节点id
 * @param nodeList 节点集合
 * @returns
 */
export declare function shrinkOrExpandNode({ nodeId, nodeList }: {
    nodeId: any;
    nodeList: any;
}): void;
/**
 * 处理返回页面要渲染的nodeList和linkList
 * @param nodeList 节点集合
 * @param linkList 有序边集合
 * @returns
 */
export declare function initShrinkNode({ nodeList, linkList }: {
    nodeList: any;
    linkList: any;
}): {
    renderNodeList: any;
    renderLinkList: any;
};
export declare const deleteMergeNodeRelation: (id: string, params: DeleteNodeRelationParams) => any[];
export declare const deleteSingleNodeRelation: (id: string, params: DeleteNodeRelationParams) => any[];
/**
 * 节点是否可拖动
 * @param param0
 * @returns
 */
export declare function disabledNodeDrag({ sourceNode, linkList, draggable }: {
    sourceNode: any;
    linkList: any;
    draggable: any;
}): boolean;
/**
 * 根据元素坐标来查询目标节点 也就是要插入在哪个节点附近，找到节点后再根据节点的4个角的坐标来判断插入方向（上、下、右三个方向）
 * @param x 水平偏移量
 * @param offset 节点偏移量
 */
export declare function findNodeByCoordinate({ linkList, nodeList, offset }: {
    linkList: any;
    nodeList: any;
    offset?: any[];
}): {
    node: any;
    direction: Direction;
};
export declare function deleteDragNodeAndLink({ nodeList, linkList }: {
    nodeList: any;
    linkList: any;
}): void;
/**
 * 添加拖拽占位元素
 * @param param0
 * @returns
 */
export declare function appendDragNode({ sourceNode, targetNode, nodeList, linkList, direction, nodeMap }: {
    sourceNode: any;
    targetNode: any;
    nodeList: any;
    linkList: any;
    direction: any;
    nodeMap: any;
}): {
    disabled: boolean;
    disabeld?: undefined;
    startNode?: undefined;
} | {
    disabeld: boolean;
    disabled?: undefined;
    startNode?: undefined;
} | {
    startNode: any;
    disabled?: undefined;
    disabeld?: undefined;
};
/**
 * 拖拽后更新路径
 * @param param0
 * @returns
 */
export declare function updateDragNode({ sourceNode, targetNode, linkList, nodeList, direction, disabled, nodeMap, }: {
    sourceNode: any;
    targetNode: any;
    linkList: any;
    nodeList: any;
    direction: any;
    disabled: any;
    nodeMap: any;
}): void;
/**
 * 设置高亮路径
 * @param param0
 */
export declare function lightenPath({ nodeIds, nodeList, linkList, }: {
    nodeIds: string[];
    nodeList: Node[];
    linkList: Link[];
}): void;
