import { Connection, ConnectionPoint } from '../workflow-designer.types'; import { WorkflowDesignerState } from '../workflow-designer.state'; import { NodeManagementService } from './node-management.service'; import * as i0 from "@angular/core"; export declare class ConnectionService { private state; private nodeService; private draggingConnectionData; private readonly connectionRules; constructor(state: WorkflowDesignerState, nodeService: NodeManagementService); /** * Start a new connection drag operation */ startConnectionDrag(point: ConnectionPoint, swimlaneIndex: number, globalX: number, globalY: number): void; /** * Update the position of the dragging connection */ updateConnectionDrag(currentX: number, currentY: number): void; /** * End the current connection drag operation */ endConnectionDrag(): void; /** * Check if a connection drag is in progress */ isConnectionDragging(): boolean; /** * Get the current connection path data for rendering */ getConnectionPathData(): { startX: number; startY: number; endX: number; endY: number; sourceSwimlaneIndex: number; } | null; /** * Create a new connection between nodes */ createConnection(targetNodeId: string, targetPointId: string, targetSwimlaneIndex: number): Connection | null; /** * Get the path data for rendering a saved connection */ getConnectionData(connection: Connection): { startX: number; startY: number; endX: number; endY: number; sourceSwimlaneIndex: number; targetSwimlaneIndex: number; } | null; /** * Calculate a path for orthogonal connection rendering */ getOrthogonalPath(startX: number, startY: number, endX: number, endY: number, pointType: 'top' | 'right' | 'bottom' | 'left'): string; /** * Check if a connection is allowed between node types */ canConnect(sourceNodeType: string, targetNodeType: string): boolean; /** * Get allowed node types for the current dragging connection */ getAllowedTargetNodeTypes(): string[]; /** * Delete a connection by ID */ deleteConnection(connectionId: string): boolean; /** * Delete all connections associated with a node */ deleteConnectionsForNode(nodeId: string): void; /** * Get the current connection drag data */ getConnectionDragData(): { sourcePoint?: ConnectionPoint; sourceSwimlaneIndex?: number; startX?: number; startY?: number; currentX?: number; currentY?: number; }; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵprov: i0.ɵɵInjectableDeclaration; }