import { StreamCustomNodeSpecification, StreamNodeSpecificationInputType, StreamSemanticVersion } from "../../../../wave"; export interface CanvasDimensions { width: number; height: number; } export interface DesignContent { nodes: DesignerNode[]; links: DesignerLink[]; canvas: CanvasDimensions; } export interface DesignerNode { name: string; originalName: string; description: string; customDescription?: string; kind: DesignerNodeKind; color: string; bypass?: boolean; version: StreamSemanticVersion; uuid: string; connectors: DesignerNodeConnector[]; inputs: DesignerNodeInput[]; coords: DesignerNodeCoords; path: string; catalog: DesignerNodeCatalog; customNode?: StreamCustomNodeSpecification; breakpoint?: boolean; } export interface DesignerNodeCatalog { url: string; } export type StringMap = { [key: string]: string; }; export type SortedStringMap = { id: number; value: { key: string; value: string; }; }; export interface DesignerNodeInput { uuid: string; name: string; description: string; advanced?: boolean; type: StreamNodeSpecificationInputType; selectedLanguage?: StringMap; expression?: boolean; example: string | number | boolean | string[] | StringMap | StringMap[] | SortedStringMap[]; value?: string | number | boolean | string[] | StringMap | StringMap[] | SortedStringMap[]; mandatory?: boolean; } export interface DesignerNodeConnector { name: string; description: string; uuid: string; io: DesignerNodeConnectorIO; type: DesignerNodeConnectorType; } export declare enum DesignerNodeConnectorIO { INPUT = "INPUT", OUTPUT = "OUTPUT" } export declare enum DesignerNodeConnectorType { TRIGGER = "TRIGGER", SUCCESS = "SUCCESS", FAIL = "FAIL", CUSTOM = "CUSTOM" } export interface DesignerNodeCoords { currentX: number; currentY: number; initialX: number; initialY: number; } export declare enum DesignerNodeKind { NODE = "NODE", ANNOTATION = "ANNOTATION" } export interface DesignerNodeAnnotation extends DesignerNode { title: string; kind: DesignerNodeKind; size: DesignerNodeAnnotationSize; color: string; background: string; contentColor?: string; } export interface DesignerNodeAnnotationSize { width: number; height: number; } export interface DesignerLink { uuid: string; from: DesignerLinkOrigin; to: DesignerLinkOrigin; } export interface DesignerLinkOrigin { nodeUuid: string; connectorUuid: string; }