import { immerable } from 'immer'; import EventEmitter3 from 'eventemitter3'; import { AbstractNode, ElementIdentifier, LayoutNodeData, NodeData } from '../types'; import type { Graph } from './graph'; export declare class Node implements AbstractNode { [immerable]: boolean; id: ElementIdentifier; graph: Graph; eventEmitter: EventEmitter3; fx: NodeData['fx']; fy: NodeData['fy']; size: NonNullable; color: NodeData['color']; animate: NodeData['animate']; data: NodeData['data']; label: NodeData['label']; states: string[]; element?: HTMLElement | SVGElement; type?: NodeData['type']; mergedNodes?: NodeData[]; static DEFAULT_NODE_SIZE: [number, number]; /** * 节点 x 坐标 */ get x(): number; /** * 节点 y 坐标 */ get y(): number; /** * 节点所有起始边 */ get sourceEdges(): import("./edge").Edge[]; /** * 节点所有目标边 */ get targetEdges(): import("./edge").Edge[]; /** * 节点关联的所有边(入边和出边) */ get allEdges(): import("./edge").Edge[]; constructor(graph: Graph, nodeData: NodeData); /** * 是否为节点 * * @param node */ static isNode(node: ElementIdentifier | Node): node is Node; /** * 设置节点元素 * * @param element */ setElement(element: HTMLElement | SVGElement): void; /** * 获取布局数据 */ toLayoutData(): LayoutNodeData; /** * 设置状态列表 * * @param states */ setStates(states: string[]): void; /** * 设置单个状态 * * @param state * @param enable */ setState(state: string, enable?: boolean): void; /** * 取消状态 * * @param states */ clearStates(states?: string | string[]): void; /** * 是否包含指定状态 * * @param state * @returns */ hasState(state: string): boolean; /** * 切换状态 * * @param state */ toggleState(state: string): void; /** * 独占某个状态 * * @state 状态 * @list 其他需要同状态的节点, 为空时则表示当前元素独占该状态 */ exclusiveState(state: string, list?: ElementIdentifier[]): void; /** * 派发位置更新事件 */ emitPositionUpdate: () => void; /** * 更新事件 */ onPositionUpdate: (callback: () => void) => () => void; } //# sourceMappingURL=node.d.ts.map