import { SwimLane, Tag, Workflow, WorkflowAction, WorkflowStage } from 'verben-workflow-ui/src/lib/models'; import { Connection, ConnectionPoint, Node, SwimlaneItem, ToolType } from './workflow-designer.types'; import * as i0 from "@angular/core"; export declare class WorkflowDesignerState { swimlanes: SwimlaneItem[]; startNodeId: string | null; connections: Connection[]; draggingConnectionData: { sourcePoint?: ConnectionPoint; sourceSwimlaneIndex?: number; startX?: number; startY?: number; currentX?: number; currentY?: number; }; workflowFormId: string | null; workflowFormName: string | null; workflowId: string | null; workflow: Workflow | null; swimlaneRecord: Record; stageRecord: Record; actionRecord: Record; setWorkflowId(id: string): void; laneIdToIndexMap: Map; private readonly connectionRules; setWorkflowForm(formId: string | null, formName: string | null): void; addSwimlane(name: string, tags: Tag[]): void; registerLaneMapping(laneId: string, swimlaneIndex: number): void; generateConnectionPoints(node: Node): ConnectionPoint[]; addNode(swimlaneIndex: number, type: ToolType, x: number, y: number, stageData?: Partial, workflowData?: { id: string; name: string; }, useExistingId?: boolean): Node | null; getNodeCount(): number; findNodeById(id: string): { node: Node; swimlaneIndex: number; } | null; findActionById(connectionId: string): Connection | null; startConnectionDrag(point: ConnectionPoint, swimlaneIndex: number, globalX: number, globalY: number): void; updateConnectionDrag(currentX: number, currentY: number): void; endConnectionDrag(): void; isConnectionDragging(): boolean; getConnectionPathData(): { startX: number; startY: number; endX: number; endY: number; sourceSwimlaneIndex: number; } | null; createConnection(targetNodeId: string, targetPointId: string, targetSwimlaneIndex: number): Connection | null; getConnectionData(connection: Connection): { startX: number; startY: number; endX: number; endY: number; sourceSwimlaneIndex: number; targetSwimlaneIndex: number; } | null; canConnect(sourceNodeType: string, targetNodeType: string): boolean; getAllowedTargetNodeTypes(): string[]; updateSwimlane(index: number, name: string, tags: Tag[]): void; transformToWorkflowModel(): Workflow; getConnectionPointType(pointId: string): 'top' | 'right' | 'bottom' | 'left' | undefined; loadedObjectIds: { [key: string]: string; }; registerLoadedObject(id: string, code: string): void; wasLoadedFromApi(id: string): boolean; getCodeForObject(id: string): string; /** * Moves a node from one swimlane to another and updates all related state: * - Node position (swimlane-relative x/y) * - Swimlane arrays (removes from old, adds to new) * - Connection swimlane indices for this node * - Node's stageData.Tags and SwimLane to match the destination swimlane */ moveNodeToSwimlane(nodeId: string, fromSwimlaneIndex: number, toSwimlaneIndex: number, newX: number, absoluteY: number): Node | null; /** Swimlane height constant used for coordinate conversions. */ readonly swimlaneHeight = 263; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵprov: i0.ɵɵInjectableDeclaration; }