import type { DegreeType } from '@antv/algorithm/es/types'; import { Edge, Graph, Node } from '../../entities'; import { LayoutController } from '../../extensions'; import type { AbstractGraph, EdgeData, ElementIdentifier, NodeData, NormalGraphData, NormalGraphOptions } from '../../types'; import { NormalGraphEdge } from './normal-graph-edge'; import { NormalGraphNode } from './normal-graph-node'; export declare class NormalGraph extends Graph implements AbstractGraph { layoutController: LayoutController; /** * 度 */ degrees?: DegreeType; constructor(options: NormalGraphOptions); /** * 设置数据 * * @param data * @param stack */ changeData: (data: NormalGraphData, stack?: boolean) => void; /** * 以当前配置执行一次布局 */ layout: () => void; /** * 添加节点 * * @param nodeData * @param stack */ addNode: (nodeData: NodeData, stack?: boolean) => void; /** * 删除节点 * * @param nodeOrNodeId * @param stack */ removeNode: (nodeOrNodeId: ElementIdentifier | NormalGraphNode, stack?: boolean) => void; /** * 根据一个谓词函数删除节点 * * @param predicate */ removeNodeBy: (predicate: (node: Node) => boolean) => void; /** * 更新节点 * * @param nodeOrNodeId * @param nodeData * @param stack */ updateNode(nodeOrNodeId: ElementIdentifier | NormalGraphNode, nodeData: NodeData, stack?: boolean): void; /** * 添加边 * * @param edgeData * @param stack */ addEdge: (edgeData: EdgeData, stack?: boolean) => void; /** * 删除边 * * @param edgeOrEdgeId * @param stack */ removeEdge: (edgeOrEdgeId: ElementIdentifier | NormalGraphEdge, stack?: boolean) => void; /** * 根据一个谓词函数删除节点 * * @param predicate */ removeEdgeBy: (predicate: (edge: Edge) => boolean) => void; /** * 更新边 * * @param edgeOrEdgeId * @param edgeData * @param stack */ updateEdge(edgeOrEdgeId: ElementIdentifier | NormalGraphEdge, edgeData: EdgeData, stack?: boolean): void; /** * 显示节点 * * @param node * @param stack */ showNode: (node: ElementIdentifier | NormalGraphNode, stack?: boolean) => void; /** * 隐藏节点 * * @param node * @param stack */ hideNode: (node: ElementIdentifier | NormalGraphNode, stack?: boolean) => void; /** * 销毁布局方法,用在不需要布局的场景 */ destroyLayout: () => void; /** * 销毁实例 */ destroy(): void; /** * 获取 node 的度数 * * @param {(string | Node)} nodeOrNodeId 节点 ID 或实例 * @param {('in' | 'out' | 'total' | 'all' | undefined)} type,in 入度,out 出度,total 总度数,all 返回三种类型度数的对象 * @param refresh * @returns {Number | Object} 该节点的度数 * @memberof IAbstractGraph */ getNodeDegree(nodeOrNodeId: string | Node, type?: 'in' | 'out' | 'total' | 'all' | undefined, refresh?: boolean): number | object; /** * 根据图数据创建模型 * * @param data * @returns */ private modelFactory; /** * 根据布局类型创建节点 * * @param data * @private */ private createNode; /** * 根据布局类型创建边 * * @param data * @private */ private createEdge; /** * 标准化数据 * @description 移除不合法的边 * TODO: 警告不合法的数据 */ private _normalizeData; } //# sourceMappingURL=normal-graph.d.ts.map