/** * @license * Copyright 2024 Nuraly, Laabidi Aymen * SPDX-License-Identifier: MIT */ import { nothing, SVGTemplateResult } from 'lit'; import { WorkflowEdge, WorkflowNode, Position } from '../workflow-canvas.types.js'; import type { ConnectionState } from '../interfaces/index.js'; /** * Callbacks for edge interactions */ export interface EdgeCallbacks { onEdgeClick: (e: MouseEvent, edge: WorkflowEdge) => void; onEdgeHover: (edgeId: string | null) => void; getPortPosition: (node: WorkflowNode, portId: string, isInput: boolean) => Position; } /** * Data required for rendering edges */ export interface EdgesTemplateData { edges: WorkflowEdge[]; nodes: WorkflowNode[]; selectedEdgeIds: Set; hoveredEdgeId: string | null; connectionState: ConnectionState | null; currentTheme?: string; callbacks: EdgeCallbacks; } /** * Render a single edge with bezier curve */ export declare function renderEdgeTemplate(edge: WorkflowEdge, nodes: WorkflowNode[], selectedEdgeIds: Set, hoveredEdgeId: string | null, currentTheme: string | undefined, callbacks: EdgeCallbacks): SVGTemplateResult | typeof nothing; /** * Render the in-progress connection line */ export declare function renderConnectionLineTemplate(connectionState: ConnectionState | null, nodes: WorkflowNode[], getPortPosition: (node: WorkflowNode, portId: string, isInput: boolean) => Position): SVGTemplateResult | typeof nothing; /** * Render all edges and connection line */ export declare function renderEdgesTemplate(data: EdgesTemplateData): SVGTemplateResult; //# sourceMappingURL=edges.template.d.ts.map