/** * SmartEdge — React Flow custom edge that renders: * - smoothstep path (same look as the default smoothstep edge) * - crow's-foot / one / triangle markers at source + target based on * `data.cardinality` (§3.6 item 2) * - dashed stroke when `data.onDelete === 'SET NULL'` (§3.9 integration) * * Reference: `docs/plans/20260501-universal-wysiwyg-schema-ux-v1.00W.md` * §3.6 items 2 + 5. * * Each edge defines its own `` elements inline with IDs prefixed by * the edge `id` so multiple edges on the same canvas cannot collide on SVG * `` IDs. */ import type { CSSProperties, ReactElement } from 'react'; import type { EdgeProps } from '@xyflow/react'; import type { Cardinality, ReferentialAction } from '../../schemas.js'; export interface SmartEdgeData { cardinality?: Cardinality; onDelete?: ReferentialAction | null; stroke?: string; [key: string]: unknown; } /** * Resolve the marker IDs for a given edge. Exported so tests can assert the * cardinality → marker mapping without mounting the full edge. */ export declare function getMarkerIdsForCardinality(edgeId: string, cardinality: Cardinality | undefined): { markerStartId?: string; markerEndId?: string; }; /** * Build the edge style object. Pure so tests can assert the dashed-stroke and * accent-color logic without rendering. */ export declare function buildSmartEdgeStyle(cardinality: Cardinality | undefined, onDelete: ReferentialAction | null | undefined, override?: CSSProperties): CSSProperties; /** * Subcomponent that renders just the `` with the appropriate markers * for a given cardinality. Exposed separately so tests can mount it inside a * plain `` without needing React Flow's edge context. */ export declare function SmartEdgeMarkers({ edgeId, cardinality, color, }: { edgeId: string; cardinality: Cardinality | undefined; color: string; }): ReactElement; /** * React Flow custom edge. Reads `data.cardinality` / `data.onDelete` to pick * markers and stroke style. */ export declare function SmartEdge(props: EdgeProps & { data?: SmartEdgeData; }): ReactElement; //# sourceMappingURL=SmartEdge.d.ts.map