/** * @license * Copyright 2024 Nuraly, Laabidi Aymen * SPDX-License-Identifier: MIT */ import { ReactiveControllerHost } from 'lit'; import { BaseCanvasController } from './base.controller.js'; import { CanvasHost, ConnectionState } from '../interfaces/index.js'; import { WorkflowNode, WorkflowEdge, NodePort, Position } from '../workflow-canvas.types.js'; import type { UndoController } from './undo.controller.js'; /** * Controller for managing edge connections */ export declare class ConnectionController extends BaseCanvasController { private undoController; constructor(host: CanvasHost & ReactiveControllerHost); /** * Set the undo controller (called after initialization) */ setUndoController(controller: UndoController): void; /** * Start creating a connection from a port */ startConnection(node: WorkflowNode, port: NodePort, isInput: boolean, event: MouseEvent): void; /** * Update the connection line position during drag */ updateConnectionPosition(event: MouseEvent): void; /** * Complete the connection when released on a valid port */ completeConnection(node: WorkflowNode, port: NodePort, isInput: boolean): boolean; /** * Cancel the current connection */ cancelConnection(): void; /** * Check if currently creating a connection */ isConnecting(): boolean; /** * Get the current connection state */ getConnectionState(): ConnectionState | null; /** * Get port position for a node */ getPortPosition(node: WorkflowNode, portId: string, isInput: boolean): Position; /** * Delete an edge by ID */ deleteEdge(edgeId: string): void; /** * Get edges connected to a node */ getNodeEdges(nodeId: string): { inputs: WorkflowEdge[]; outputs: WorkflowEdge[]; }; /** * Set hovered edge ID */ setHoveredEdge(edgeId: string | null): void; /** * Get hovered edge ID */ getHoveredEdge(): string | null; } //# sourceMappingURL=connection.controller.d.ts.map