import { BBox, DiagramEdge, DiagramNode, NodeId, StepPath, ViewId } from '@likec4/core/types'; export type Spacing = number | Partial<{ top: number; left: number; right: number; bottom: number; x: number; y: number; }>; export type Step = { id: StepPath; from: { column: number; row: number; }; to: { column: number; row: number; }; source: DiagramNode; target: DiagramNode; label: null | { height: number; width: number; text: string | null; }; isSelfLoop: boolean; isBack: boolean; parent: StepPath | null; offset: number; edge: DiagramEdge; }; export type Compound = { node: DiagramNode; from: DiagramNode; to: DiagramNode; nested: Compound[]; }; export type Rect = { min: { column: number; row: number; }; max: { column: number; row: number; }; }; export type ParallelRect = Rect & { parallelPrefix: string; }; export interface SequenceActorStepPort { id: string; cx: number; cy: number; height: number; type: 'target' | 'source'; position: 'left' | 'right' | 'top' | 'bottom'; hidden?: boolean; } export interface SequenceActor { id: NodeId; x: number; y: number; width: number; height: number; ports: Array; } export interface SequenceCompound { id: NodeId; origin: NodeId; x: number; y: number; width: number; height: number; depth: number; } export interface SequenceParallelArea { parallelPrefix: string; x: number; y: number; width: number; height: number; } export interface SequenceViewLayout { id: ViewId; actors: Array; compounds: Array; parallelAreas: Array; bounds: BBox; }