export declare enum ElementType { Node = "node", Edge = "edge", OrphanEdge = "oedge", Grip = "grip" } export interface Identity { id: number; } export declare type PContext = { selectedNodeIds?: PNodeId[]; selectedEdgeIds?: PEdgeId[]; selectedOrphanEdgeIds?: PEdgeId[]; hidedEdgeId?: PEdgeId; snappableGrid?: SnappableGrid; }; export declare type RectSize = { w?: number; h?: number; }; export declare type CircleSize = { r?: number; }; export declare type Size = RectSize | CircleSize; export declare type PPosition = { cx: number; cy: number; }; export declare type Dim = Size & PPosition; export declare type PNodeId = number; export declare type PEdgeId = number; export interface PNodeTemplate { id: PNodeId; type?: ElementType; label: string; iconSrc?: string; shape: Shape; dim?: Partial; branchFlags?: any[]; defaultFlag?: any; } export interface PNodeCandidate { id?: PNodeId; type?: ElementType; label?: string; iconSrc?: string; shape?: Shape; templateId: number; dim?: Partial; branchFlags?: any[]; data: any; } export interface PNode { id: PNodeId; type?: ElementType; label?: string; iconSrc?: string; shape?: Shape; templateId: number; dim?: Dim; branchFlags?: any[]; data: any; } export declare type PElement = PNode | PEdge; export interface PAnchor { host: PElement; anchor: PAnchorType; xy: PPosition; } export interface PEdge { id: PEdgeId; type: ElementType; flag?: any; from: { id: number; anchor: PAnchorType; }; to: { id: number; anchor: PAnchorType; }; } export interface OrphanEdge { hostId?: PEdgeId; id: PEdgeId; type: ElementType; from: PPosition | { id: number; anchor: PAnchorType; }; to: PPosition | { id: number; anchor: PAnchorType; }; } export declare type PAnchorType = "tc" | "bc" | "lc" | "rc" | "0" | "1"; export declare type PConfig = { mode: "update" | undefined; canvas?: { background?: string; }; rearrange?: { hGap: number; vGap: number; }; nodeTemplates: PNodeTemplate[]; nodeCandidates: PNodeCandidate[]; ui?: { nodeCandidatesPanelTop: number; }; hideEdgeFlagInput?: boolean; }; export declare type DesignerData = { nodes: PNode[]; edges: PEdge[]; }; export declare type DesignerProps = { config: PConfig; mode: "update" | undefined; data: DesignerData; events: DesignerEvents; }; export declare enum Shape { Rect = 0, Circle = 1 } export interface OrphanNodeInfo { cx: number; cy: number; node?: PNode; } export interface PBox { x: number; y: number; w: number; h: number; } export interface SnappableGrid { xs?: number[]; ys?: number[]; } export interface DesignerEvents { onActiveEdge?: (id: PEdgeId, flags?: String[]) => void; onActiveNode?: (id?: PNodeId, data?: any) => void; onDelNode?: (id: PNodeId) => void; onAddNode?: (id: PNodeId, data: any) => void; } export interface DesignerController { rearrange?: () => void; markNode?: (params: { id: PNodeId; label: string; iconSrc?: string; }) => void; markEdge?: (params: { id: PEdgeId; flag: String; }) => void; getAllAssoc: () => { fromNodeId: PNodeId; toNodeId: PNodeId; flag: any; }[]; check: () => string | null | undefined; getDesignerData: () => DesignerData; resetNodeCandidates: (nodes: PNodeCandidate[]) => void; }