import { Observable } from 'rxjs'; import { BaseEntity, BaseEntityType } from '../base.entity'; import { Coords } from '../interfaces/coords.interface'; import { SelectOptions } from '../interfaces/select-options.interface'; import { SerializedDiagramModel } from '../interfaces/serialization.interface'; import { DiagramEngine } from '../services/engine.service'; import { ID } from '../utils'; import { EntityMap } from '../utils/types'; import { BaseModel } from './base.model'; import { LinkModel } from './link.model'; import { NodeModel } from './node.model'; import { PortModel } from './port.model'; export declare class DiagramModel extends BaseEntity { protected diagramEngine: DiagramEngine; protected nodes$: import("../state/state").EntityState>; protected links$: import("../state/state").EntityState; protected offsetX$: import("../state/state").ValueState; protected offsetY$: import("../state/state").ValueState; protected zoom$: import("../state/state").ValueState; protected maxZoomOut$: import("../state/state").ValueState; protected maxZoomIn$: import("../state/state").ValueState; protected gridSize$: import("../state/state").ValueState; constructor(diagramEngine: DiagramEngine, id?: string, logPrefix?: string); getNodes(): EntityMap; getNodesArray(): NodeModel[]; getNode(id: ID): NodeModel | undefined; getLink(id: ID): LinkModel | undefined; getLinks(): EntityMap; getLinksArray(): LinkModel[]; getAllPorts(options?: SelectOptions): Map; /** * Add a node to the diagram * @returns Inserted Node */ addNode(node: NodeModel): NodeModel; /** * Delete a node from the diagram */ deleteNode(nodeOrId: NodeModel | string): void; /** * Get nodes as observable, use `.getValue()` for snapshot */ selectNodes(): Observable>; /** * Add link * @returns Newly created link */ addLink(link: LinkModel): LinkModel; /** * Delete link */ deleteLink(linkOrId: LinkModel | string): void; reset(): void; /** * Get links behaviour subject, use `.getValue()` for snapshot */ selectLinks(): Observable>; serialize(): SerializedDiagramModel; setMaxZoomOut(maxZoomOut: number): void; setMaxZoomIn(maxZoomIn: number): void; getMaxZoomOut(): any; getMaxZoomIn(): any; setOffset(x: number, y: number): void; setOffsetX(x: number): void; getOffsetX(): number; selectOffsetX(): Observable; setOffsetY(y: number): void; getOffsetY(): number; selectOffsetY(): Observable; setZoomLevel(z: number): void; getZoomLevel(): number; selectZoomLevel(): Observable; getDiagramEngine(): DiagramEngine; clearSelection(ignore?: BaseModel | null): void; getGridPosition({ x, y }: Coords): Coords; getSelectedItems(...filters: BaseEntityType[]): BaseModel[]; addAll(...models: BaseModel[]): BaseModel[]; addLinks(links: LinkModel[]): void; addNodes(nodes: NodeModel[]): void; destroy(): void; }