import { Color, DiagramNode, ExclusiveUnion, Fqn, IconUrl, MarkdownOrString, RelationId, RelationshipArrowType, RelationshipLineType, ViewId } from '@likec4/core/types'; import { FunctionComponent } from 'react'; import { Simplify } from 'type-fest'; import { BaseEdge, BaseEdgeData, BaseEdgeProps, BaseNode, BaseNodeData, BaseNodeProps, NonOptional } from '../../base/types'; export declare namespace RelationshipDetailsTypes { type Column = 'sources' | 'targets'; /** * The node's incoming and outgoing ports */ type Ports = { in: string[]; out: string[]; }; type ElementNodeData = Simplify> & { column: Column; fqn: Fqn; icon: IconUrl; ports: Ports; }>; type CompoundNodeData = Simplify> & { column: Column; fqn: Fqn; depth: number; icon?: IconUrl; ports: Ports; }>; type ElementNode = BaseNode; type CompoundNode = BaseNode; type AnyNode = ElementNode | CompoundNode; type NodeType = AnyNode['type']; type Node = Extract; type NodeProps = BaseNodeProps>; type NodeData = ExclusiveUnion<{ ElementNodeData: ElementNodeData; CompoundNodeData: CompoundNodeData; }>; type NodeRenderer = FunctionComponent>; type NodeRenderers = { element: NodeRenderer<'element'>; compound: NodeRenderer<'compound'>; }; type EdgeData = Simplify; type Edge = BaseEdge; type EdgeProps = BaseEdgeProps; }