import { PNode, PEdge, DesignerData, PElement, PPosition, PNodeId, PContext, PAnchorType, OrphanEdge, PEdgeId, PAnchor, SnappableGrid, DesignerEvents } from "../index.type"; import { IObservableArray } from "mobx"; import ConfigStore from "./ConfigStore"; import { Omit } from "ts-type-ext"; export default class DesignDataStore { configStore: ConfigStore; events: DesignerEvents; context: PContext; nodes: IObservableArray; edges: IObservableArray; orphanEdges: IObservableArray; readonly startNode: PNode; readonly endNode: PNode; readonly anchors: PAnchor[]; readonly data: DesignerData; constructor(designData: DesignerData, configStore: ConfigStore, events: DesignerEvents); addNode(node: PNode): void; addEdge(edge: Omit): void; patchNode(nodePatch: Partial): void; patchEdge(edgePatch: Partial): void; resetEdgeFlag(edgeId: PEdgeId): void; repositionNode(attrs: { element: PElement; newPos: PPosition; }): void; moveAllNodes(pos0: [PNodeId, PPosition][], dx: number, dy: number): void; upsetOrphanEdge(oedge: OrphanEdge): void; selectNode(id: PNodeId): void; selectEdge(id: PEdgeId): void; selectOrphanEdge(id: PEdgeId): void; unselectAll(): void; delSelected(): void; delNode(id: PNodeId): void; delEdge(id: PEdgeId): void; delEdgeOnNode(id: PNodeId): void; delOrphanEdge(id: PEdgeId): void; hideEdge(id: PEdgeId): void; showEdge(id: PEdgeId): void; showSnappableGrid(sb: SnappableGrid): void; hideSnappableGrid(): void; rearrange(): void; findEdgeByStartAndEndNode(fromNodeId: PNodeId, toNodeId: PNodeId): PEdge | undefined; getElement(type: string, id: number): PElement; getElementPos(element: PElement): { cx: number; cy: number; }; anchorXY(element: PElement, anchor: PAnchorType): PPosition; isSelectedNode(id: PNodeId): number; isSelectedEdge(id: PEdgeId): number; getNode(_id: PNodeId): PNode | undefined; getEdge(_id: PEdgeId): PEdge | undefined; getOrphanEdge(_id: PEdgeId): OrphanEdge | undefined; getOrphanEdgeEndPoints(oedgeId: PEdgeId): { fromXY: PPosition; toXY: PPosition; }; getEdgeEndPoints(edgeId: PEdgeId): { fromXY: PPosition; toXY: PPosition; }; nextOrphanEdgeId(): number; findSnappedAnchor(x: number, y: number): PAnchor | undefined; xyInWhichNode(x: number, y: number): PNode | undefined; }