// 圈选元素
import { GraphDataNode, GraphDataLink } from '../common';

declare namespace dynamicLoadData {
  /**
   * @function updateData
   * @description 更新节点和边数据
   * @param {Object} data 节点和边的数据
   */
  interface updateData {
    (data: { nodes: GraphDataNode[]; link: GraphDataLink[] }): void;
  }

  /**
   * @function clear
   * @description 清除图谱所有数据，清空画布元素
   */
  interface clear {
    (): void;
  }
  /**
   * @function getNodeById
   * @description 根据节点id获取节点数据
   */
  interface getNodeById {
    (id: string): GraphDataNode;
  }
  /**
   * @function getLinkById
   * @description 根据边id获取边数据
   */
  interface getLinkById {
    (id: string): GraphDataLink;
  }

  /**
   * @function deleteNodeById
   * @description 根据节点id删除节点，同时删除以改节点为起始点的边
   */
  interface deleteNodeById {
    (id: string | string[]): void;
  }

  /**
   * @function deleteNodeById
   * @description 根据边id删除边
   */
  interface deleteLinkById {
    (id: string | string[]): void;
  }
}

export default dynamicLoadData;
