@crazyhappyone/auto-graph 0.2.5 → 0.2.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.cts CHANGED
@@ -435,7 +435,12 @@ interface ConstraintSolverInput {
435
435
  overlapSpacing?: number;
436
436
  minSiblingGap?: number;
437
437
  distributeContainedChildren?: boolean | "spread";
438
+ /** When "spread" or true, distribute children inside non-contract
439
+ * swimlane lane content boxes (Issue #60). Default "spread". */
440
+ distributeSwimlaneChildren?: boolean | "spread";
438
441
  boxes: ReadonlyMap<string, Box>;
442
+ /** Swimlanes for lane-aware child distribution (Issue #60). */
443
+ swimlanes?: readonly Swimlane[];
439
444
  nodes: readonly NormalizedNode[];
440
445
  groups: readonly NormalizedGroup[];
441
446
  constraints: readonly Constraint[];
@@ -715,6 +720,41 @@ interface InitialLayoutResult {
715
720
  declare function runDagreInitialLayout(input: DagreLayoutInput): InitialLayoutResult;
716
721
  declare function runComponentAwareDagreInitialLayout(input: DagreLayoutInput): InitialLayoutResult;
717
722
 
723
+ interface RecursiveLayoutInput {
724
+ direction: "TB" | "LR" | "BT" | "RL";
725
+ nodes: readonly NormalizedNode[];
726
+ groups: readonly NormalizedGroup[];
727
+ edges: readonly NormalizedEdge[];
728
+ constraints: readonly Constraint[];
729
+ options?: Partial<DagreLayoutOptions>;
730
+ }
731
+ interface RecursiveLayoutResult {
732
+ boxes: Map<string, Box>;
733
+ groupBoxes: Map<string, Box>;
734
+ diagnostics: Diagnostic[];
735
+ }
736
+ /**
737
+ * Build parent→children maps from groups and containment constraints.
738
+ *
739
+ * A node is a child of group G if G.nodeIds includes the node's id.
740
+ * A group C is a child of group G if G.groupIds includes C's id.
741
+ * Containment constraints supplement (or override) group membership.
742
+ */
743
+ declare function buildContainerTree(groups: readonly NormalizedGroup[], constraints: readonly Constraint[], edges: readonly NormalizedEdge[]): {
744
+ childrenOf: Map<string, string[]>;
745
+ rootIds: Set<string>;
746
+ edgesInGroup: Map<string, NormalizedEdge[]>;
747
+ diagnostics: Diagnostic[];
748
+ };
749
+ /**
750
+ * Run recursive bottom-up container layout.
751
+ *
752
+ * Leaf containers are laid out first (DFS post-order). Container
753
+ * size = union of child boxes + padding. The global pass treats
754
+ * containers as atomic nodes.
755
+ */
756
+ declare function runRecursiveContainerLayout(input: RecursiveLayoutInput): RecursiveLayoutResult;
757
+
718
758
  type RouteKind = "orthogonal" | "straight" | "obstacle-avoiding";
719
759
  interface RouteEdgeInput {
720
760
  kind?: RouteKind;
@@ -752,6 +792,8 @@ type InitialLayoutMode = "dagre" | "positions";
752
792
  interface SolveDiagramOptions {
753
793
  /** Selects the seed coordinates before constraints, routing, and export. */
754
794
  initialLayout?: InitialLayoutMode;
795
+ /** When true, use recursive bottom-up layout for container groups (Issue #54, 方案 A). */
796
+ recursiveLayout?: boolean;
755
797
  routeKind?: RouteKind;
756
798
  obstacleMargin?: number | Insets;
757
799
  /** When true, compute quality score after solving (Issue #54, 方案 E). */
@@ -763,12 +805,20 @@ interface SolveDiagramOptions {
763
805
  prefitLabelSize?: boolean;
764
806
  minSiblingGap?: number;
765
807
  distributeContainedChildren?: boolean | "spread";
808
+ /** When "spread", distribute children within non-contract swimlane
809
+ * lanes (Issue #60). Default "spread". */
810
+ distributeSwimlaneChildren?: boolean | "spread";
766
811
  pageBounds?: {
767
812
  width: number;
768
813
  height: number;
769
814
  };
770
815
  maxStackDepth?: number;
771
816
  preferredAspectRatio?: number;
817
+ /** Target aspect ratio (width/height). When bounds exceed
818
+ * target*3, nodes are rewrapped (Issue #60). */
819
+ targetAspectRatio?: number;
820
+ /** Max nodes per row for TB/BT horizontal-rewrap (Issue #60). */
821
+ maxRowDepth?: number;
772
822
  portShifting?: PortShiftingOptions;
773
823
  cjkFontFamily?: string | false;
774
824
  minCjkFontSize?: number | false;
@@ -866,4 +916,4 @@ declare class LayoutPipeline {
866
916
  run(state: LayoutState): void;
867
917
  }
868
918
 
869
- export { type AlignConstraint, type AlignmentAxis, type AnchorName, type AnchorPoint, type Arrowhead, type Box, type BoxSpatialIndex, type BoxSpatialIndexEntry, type CanonicalJson, type CanonicalizeOptions, type Constraint, type ConstraintBase, type ConstraintSolverInput, type ConstraintSolverResult, type ConstraintTarget, type ConstraintTargetKind, type ContainerGeometry, type ContainerGeometryInput, type ContainmentConstraint, type CoordinatedDiagram, type CoordinatedEdge, type CoordinatedEvidencePanel, type CoordinatedFrame, type CoordinatedGroup, type CoordinatedMatrixBlock, type CoordinatedNode, type CoordinatedPort, type CoordinatedTableBlock, DEFAULT_CANONICAL_PRECISION, DEFAULT_DSL_MAX_BYTES, DELIVERABILITY_DIAGNOSTIC_CODES, type DagreLayoutEdge, type DagreLayoutInput, type DagreLayoutNode, type DagreLayoutOptions, type DefaultTextMeasurerOptions, DeterministicTextMeasurer, type Diagnostic, type DiagnosticPathSegment, type DiagnosticSeverity, type DiagramDirection, type DiagramFrame, type DiagramMetadata, type DiagramStage, type DistributeConstraint, type DistributionAxis, type DslDiagnostic, type DslDiagnosticLayer, type DslOutputFormat, type EdgeArrowhead, type EdgeEndpoint, type EdgeStrokeStyle, type EvidenceCell, type EvidencePanel, type EvidencePanelItem, type EvidencePanelKind, type EvidenceTextLayout, type ExactPositionConstraint, type ExportFormat, type ExportOptions, type ExportResult, type InitialLayoutMode, type InitialLayoutResult, type Insets, type IntentDiagram, type IntentEdge, type IntentGroup, type IntentNode, type JsonObject, type JsonPrimitive, type JsonValue, type Label, type LabelFitOptions, LabelFitter, type LabelLayout, type LabelLineLayout, type LayoutLock, type LayoutLockSource, type LayoutPhase, LayoutPipeline, type LayoutState, type MatrixBlock, type NodeBase, type NodeCompartments, type NodePort, type NodeShape, type NormalizeDiagramDslOptions, type NormalizeDiagramDslResult, type NormalizedDiagram, type NormalizedEdge, type NormalizedGroup, type NormalizedNode, type ParseDiagramDslOptions, type ParseDiagramDslResult, type ParsedEdgeShorthand, type PhaseTraceEntry, type Point, type PortKind, type PortShiftingOptions, type PortSide, type PreparedText, PretextTextMeasurer, type RelativePositionConstraint, type RelativePositionRelation, type RenderDiagramDslOptions, type RenderDiagramDslResult, type RouteEdgeInput, type RouteEdgeResult, type RouteKind, type ShapeGeometry, type ShapeGeometryInput, type Size, type SolveDiagramOptions, type SolvedTextAnnotation, type Swimlane, type SwimlaneLane, type SwimlaneLayout, type SwimlaneOrientation, type TableBlock, type TableColumn, type TableRow, type TextCursor, type TextLayout, type TextLayoutLine, type TextMeasurementBackend, type TextMeasurer, type TextStyleOptions, type TextSurfaceKind, type VisualStyle, applyLayoutConstraints, assertFiniteNonNegative, assertFinitePositive, boxCenter, canonicalize, computeArrowhead, computeContainerGeometry, computeShapeGeometry, createBoxSpatialIndex, createDefaultPipeline, createDefaultTextMeasurer, expandBox, expandBoxForQuery, exportExcalidraw, exportSvg, fitLabel, getEdgePort, installNodeCanvasRuntime, intersectsAabb, isPretextRuntimeAvailable, normalizeDiagramDsl, normalizeInsets, overlapArea, parseDiagramDsl, parseEdgeShorthand, queryBoxSpatialIndex, querySegmentSpatialIndex, renderDiagramDsl, resolveLineHeight, resolveOutputFormat, routeEdge, runComponentAwareDagreInitialLayout, runDagreInitialLayout, simplifyRoute, solveDiagram, solveDiagramSafe, sortDslDiagnostics, stringifyCanonical, toCanvasFont, unionBoxes, validateBox, validateTextStyle };
919
+ export { type AlignConstraint, type AlignmentAxis, type AnchorName, type AnchorPoint, type Arrowhead, type Box, type BoxSpatialIndex, type BoxSpatialIndexEntry, type CanonicalJson, type CanonicalizeOptions, type Constraint, type ConstraintBase, type ConstraintSolverInput, type ConstraintSolverResult, type ConstraintTarget, type ConstraintTargetKind, type ContainerGeometry, type ContainerGeometryInput, type ContainmentConstraint, type CoordinatedDiagram, type CoordinatedEdge, type CoordinatedEvidencePanel, type CoordinatedFrame, type CoordinatedGroup, type CoordinatedMatrixBlock, type CoordinatedNode, type CoordinatedPort, type CoordinatedTableBlock, DEFAULT_CANONICAL_PRECISION, DEFAULT_DSL_MAX_BYTES, DELIVERABILITY_DIAGNOSTIC_CODES, type DagreLayoutEdge, type DagreLayoutInput, type DagreLayoutNode, type DagreLayoutOptions, type DefaultTextMeasurerOptions, DeterministicTextMeasurer, type Diagnostic, type DiagnosticPathSegment, type DiagnosticSeverity, type DiagramDirection, type DiagramFrame, type DiagramMetadata, type DiagramStage, type DistributeConstraint, type DistributionAxis, type DslDiagnostic, type DslDiagnosticLayer, type DslOutputFormat, type EdgeArrowhead, type EdgeEndpoint, type EdgeStrokeStyle, type EvidenceCell, type EvidencePanel, type EvidencePanelItem, type EvidencePanelKind, type EvidenceTextLayout, type ExactPositionConstraint, type ExportFormat, type ExportOptions, type ExportResult, type InitialLayoutMode, type InitialLayoutResult, type Insets, type IntentDiagram, type IntentEdge, type IntentGroup, type IntentNode, type JsonObject, type JsonPrimitive, type JsonValue, type Label, type LabelFitOptions, LabelFitter, type LabelLayout, type LabelLineLayout, type LayoutLock, type LayoutLockSource, type LayoutPhase, LayoutPipeline, type LayoutState, type MatrixBlock, type NodeBase, type NodeCompartments, type NodePort, type NodeShape, type NormalizeDiagramDslOptions, type NormalizeDiagramDslResult, type NormalizedDiagram, type NormalizedEdge, type NormalizedGroup, type NormalizedNode, type ParseDiagramDslOptions, type ParseDiagramDslResult, type ParsedEdgeShorthand, type PhaseTraceEntry, type Point, type PortKind, type PortShiftingOptions, type PortSide, type PreparedText, PretextTextMeasurer, type RecursiveLayoutInput, type RecursiveLayoutResult, type RelativePositionConstraint, type RelativePositionRelation, type RenderDiagramDslOptions, type RenderDiagramDslResult, type RouteEdgeInput, type RouteEdgeResult, type RouteKind, type ShapeGeometry, type ShapeGeometryInput, type Size, type SolveDiagramOptions, type SolvedTextAnnotation, type Swimlane, type SwimlaneLane, type SwimlaneLayout, type SwimlaneOrientation, type TableBlock, type TableColumn, type TableRow, type TextCursor, type TextLayout, type TextLayoutLine, type TextMeasurementBackend, type TextMeasurer, type TextStyleOptions, type TextSurfaceKind, type VisualStyle, applyLayoutConstraints, assertFiniteNonNegative, assertFinitePositive, boxCenter, buildContainerTree, canonicalize, computeArrowhead, computeContainerGeometry, computeShapeGeometry, createBoxSpatialIndex, createDefaultPipeline, createDefaultTextMeasurer, expandBox, expandBoxForQuery, exportExcalidraw, exportSvg, fitLabel, getEdgePort, installNodeCanvasRuntime, intersectsAabb, isPretextRuntimeAvailable, normalizeDiagramDsl, normalizeInsets, overlapArea, parseDiagramDsl, parseEdgeShorthand, queryBoxSpatialIndex, querySegmentSpatialIndex, renderDiagramDsl, resolveLineHeight, resolveOutputFormat, routeEdge, runComponentAwareDagreInitialLayout, runDagreInitialLayout, runRecursiveContainerLayout, simplifyRoute, solveDiagram, solveDiagramSafe, sortDslDiagnostics, stringifyCanonical, toCanvasFont, unionBoxes, validateBox, validateTextStyle };
package/dist/index.d.ts CHANGED
@@ -435,7 +435,12 @@ interface ConstraintSolverInput {
435
435
  overlapSpacing?: number;
436
436
  minSiblingGap?: number;
437
437
  distributeContainedChildren?: boolean | "spread";
438
+ /** When "spread" or true, distribute children inside non-contract
439
+ * swimlane lane content boxes (Issue #60). Default "spread". */
440
+ distributeSwimlaneChildren?: boolean | "spread";
438
441
  boxes: ReadonlyMap<string, Box>;
442
+ /** Swimlanes for lane-aware child distribution (Issue #60). */
443
+ swimlanes?: readonly Swimlane[];
439
444
  nodes: readonly NormalizedNode[];
440
445
  groups: readonly NormalizedGroup[];
441
446
  constraints: readonly Constraint[];
@@ -715,6 +720,41 @@ interface InitialLayoutResult {
715
720
  declare function runDagreInitialLayout(input: DagreLayoutInput): InitialLayoutResult;
716
721
  declare function runComponentAwareDagreInitialLayout(input: DagreLayoutInput): InitialLayoutResult;
717
722
 
723
+ interface RecursiveLayoutInput {
724
+ direction: "TB" | "LR" | "BT" | "RL";
725
+ nodes: readonly NormalizedNode[];
726
+ groups: readonly NormalizedGroup[];
727
+ edges: readonly NormalizedEdge[];
728
+ constraints: readonly Constraint[];
729
+ options?: Partial<DagreLayoutOptions>;
730
+ }
731
+ interface RecursiveLayoutResult {
732
+ boxes: Map<string, Box>;
733
+ groupBoxes: Map<string, Box>;
734
+ diagnostics: Diagnostic[];
735
+ }
736
+ /**
737
+ * Build parent→children maps from groups and containment constraints.
738
+ *
739
+ * A node is a child of group G if G.nodeIds includes the node's id.
740
+ * A group C is a child of group G if G.groupIds includes C's id.
741
+ * Containment constraints supplement (or override) group membership.
742
+ */
743
+ declare function buildContainerTree(groups: readonly NormalizedGroup[], constraints: readonly Constraint[], edges: readonly NormalizedEdge[]): {
744
+ childrenOf: Map<string, string[]>;
745
+ rootIds: Set<string>;
746
+ edgesInGroup: Map<string, NormalizedEdge[]>;
747
+ diagnostics: Diagnostic[];
748
+ };
749
+ /**
750
+ * Run recursive bottom-up container layout.
751
+ *
752
+ * Leaf containers are laid out first (DFS post-order). Container
753
+ * size = union of child boxes + padding. The global pass treats
754
+ * containers as atomic nodes.
755
+ */
756
+ declare function runRecursiveContainerLayout(input: RecursiveLayoutInput): RecursiveLayoutResult;
757
+
718
758
  type RouteKind = "orthogonal" | "straight" | "obstacle-avoiding";
719
759
  interface RouteEdgeInput {
720
760
  kind?: RouteKind;
@@ -752,6 +792,8 @@ type InitialLayoutMode = "dagre" | "positions";
752
792
  interface SolveDiagramOptions {
753
793
  /** Selects the seed coordinates before constraints, routing, and export. */
754
794
  initialLayout?: InitialLayoutMode;
795
+ /** When true, use recursive bottom-up layout for container groups (Issue #54, 方案 A). */
796
+ recursiveLayout?: boolean;
755
797
  routeKind?: RouteKind;
756
798
  obstacleMargin?: number | Insets;
757
799
  /** When true, compute quality score after solving (Issue #54, 方案 E). */
@@ -763,12 +805,20 @@ interface SolveDiagramOptions {
763
805
  prefitLabelSize?: boolean;
764
806
  minSiblingGap?: number;
765
807
  distributeContainedChildren?: boolean | "spread";
808
+ /** When "spread", distribute children within non-contract swimlane
809
+ * lanes (Issue #60). Default "spread". */
810
+ distributeSwimlaneChildren?: boolean | "spread";
766
811
  pageBounds?: {
767
812
  width: number;
768
813
  height: number;
769
814
  };
770
815
  maxStackDepth?: number;
771
816
  preferredAspectRatio?: number;
817
+ /** Target aspect ratio (width/height). When bounds exceed
818
+ * target*3, nodes are rewrapped (Issue #60). */
819
+ targetAspectRatio?: number;
820
+ /** Max nodes per row for TB/BT horizontal-rewrap (Issue #60). */
821
+ maxRowDepth?: number;
772
822
  portShifting?: PortShiftingOptions;
773
823
  cjkFontFamily?: string | false;
774
824
  minCjkFontSize?: number | false;
@@ -866,4 +916,4 @@ declare class LayoutPipeline {
866
916
  run(state: LayoutState): void;
867
917
  }
868
918
 
869
- export { type AlignConstraint, type AlignmentAxis, type AnchorName, type AnchorPoint, type Arrowhead, type Box, type BoxSpatialIndex, type BoxSpatialIndexEntry, type CanonicalJson, type CanonicalizeOptions, type Constraint, type ConstraintBase, type ConstraintSolverInput, type ConstraintSolverResult, type ConstraintTarget, type ConstraintTargetKind, type ContainerGeometry, type ContainerGeometryInput, type ContainmentConstraint, type CoordinatedDiagram, type CoordinatedEdge, type CoordinatedEvidencePanel, type CoordinatedFrame, type CoordinatedGroup, type CoordinatedMatrixBlock, type CoordinatedNode, type CoordinatedPort, type CoordinatedTableBlock, DEFAULT_CANONICAL_PRECISION, DEFAULT_DSL_MAX_BYTES, DELIVERABILITY_DIAGNOSTIC_CODES, type DagreLayoutEdge, type DagreLayoutInput, type DagreLayoutNode, type DagreLayoutOptions, type DefaultTextMeasurerOptions, DeterministicTextMeasurer, type Diagnostic, type DiagnosticPathSegment, type DiagnosticSeverity, type DiagramDirection, type DiagramFrame, type DiagramMetadata, type DiagramStage, type DistributeConstraint, type DistributionAxis, type DslDiagnostic, type DslDiagnosticLayer, type DslOutputFormat, type EdgeArrowhead, type EdgeEndpoint, type EdgeStrokeStyle, type EvidenceCell, type EvidencePanel, type EvidencePanelItem, type EvidencePanelKind, type EvidenceTextLayout, type ExactPositionConstraint, type ExportFormat, type ExportOptions, type ExportResult, type InitialLayoutMode, type InitialLayoutResult, type Insets, type IntentDiagram, type IntentEdge, type IntentGroup, type IntentNode, type JsonObject, type JsonPrimitive, type JsonValue, type Label, type LabelFitOptions, LabelFitter, type LabelLayout, type LabelLineLayout, type LayoutLock, type LayoutLockSource, type LayoutPhase, LayoutPipeline, type LayoutState, type MatrixBlock, type NodeBase, type NodeCompartments, type NodePort, type NodeShape, type NormalizeDiagramDslOptions, type NormalizeDiagramDslResult, type NormalizedDiagram, type NormalizedEdge, type NormalizedGroup, type NormalizedNode, type ParseDiagramDslOptions, type ParseDiagramDslResult, type ParsedEdgeShorthand, type PhaseTraceEntry, type Point, type PortKind, type PortShiftingOptions, type PortSide, type PreparedText, PretextTextMeasurer, type RelativePositionConstraint, type RelativePositionRelation, type RenderDiagramDslOptions, type RenderDiagramDslResult, type RouteEdgeInput, type RouteEdgeResult, type RouteKind, type ShapeGeometry, type ShapeGeometryInput, type Size, type SolveDiagramOptions, type SolvedTextAnnotation, type Swimlane, type SwimlaneLane, type SwimlaneLayout, type SwimlaneOrientation, type TableBlock, type TableColumn, type TableRow, type TextCursor, type TextLayout, type TextLayoutLine, type TextMeasurementBackend, type TextMeasurer, type TextStyleOptions, type TextSurfaceKind, type VisualStyle, applyLayoutConstraints, assertFiniteNonNegative, assertFinitePositive, boxCenter, canonicalize, computeArrowhead, computeContainerGeometry, computeShapeGeometry, createBoxSpatialIndex, createDefaultPipeline, createDefaultTextMeasurer, expandBox, expandBoxForQuery, exportExcalidraw, exportSvg, fitLabel, getEdgePort, installNodeCanvasRuntime, intersectsAabb, isPretextRuntimeAvailable, normalizeDiagramDsl, normalizeInsets, overlapArea, parseDiagramDsl, parseEdgeShorthand, queryBoxSpatialIndex, querySegmentSpatialIndex, renderDiagramDsl, resolveLineHeight, resolveOutputFormat, routeEdge, runComponentAwareDagreInitialLayout, runDagreInitialLayout, simplifyRoute, solveDiagram, solveDiagramSafe, sortDslDiagnostics, stringifyCanonical, toCanvasFont, unionBoxes, validateBox, validateTextStyle };
919
+ export { type AlignConstraint, type AlignmentAxis, type AnchorName, type AnchorPoint, type Arrowhead, type Box, type BoxSpatialIndex, type BoxSpatialIndexEntry, type CanonicalJson, type CanonicalizeOptions, type Constraint, type ConstraintBase, type ConstraintSolverInput, type ConstraintSolverResult, type ConstraintTarget, type ConstraintTargetKind, type ContainerGeometry, type ContainerGeometryInput, type ContainmentConstraint, type CoordinatedDiagram, type CoordinatedEdge, type CoordinatedEvidencePanel, type CoordinatedFrame, type CoordinatedGroup, type CoordinatedMatrixBlock, type CoordinatedNode, type CoordinatedPort, type CoordinatedTableBlock, DEFAULT_CANONICAL_PRECISION, DEFAULT_DSL_MAX_BYTES, DELIVERABILITY_DIAGNOSTIC_CODES, type DagreLayoutEdge, type DagreLayoutInput, type DagreLayoutNode, type DagreLayoutOptions, type DefaultTextMeasurerOptions, DeterministicTextMeasurer, type Diagnostic, type DiagnosticPathSegment, type DiagnosticSeverity, type DiagramDirection, type DiagramFrame, type DiagramMetadata, type DiagramStage, type DistributeConstraint, type DistributionAxis, type DslDiagnostic, type DslDiagnosticLayer, type DslOutputFormat, type EdgeArrowhead, type EdgeEndpoint, type EdgeStrokeStyle, type EvidenceCell, type EvidencePanel, type EvidencePanelItem, type EvidencePanelKind, type EvidenceTextLayout, type ExactPositionConstraint, type ExportFormat, type ExportOptions, type ExportResult, type InitialLayoutMode, type InitialLayoutResult, type Insets, type IntentDiagram, type IntentEdge, type IntentGroup, type IntentNode, type JsonObject, type JsonPrimitive, type JsonValue, type Label, type LabelFitOptions, LabelFitter, type LabelLayout, type LabelLineLayout, type LayoutLock, type LayoutLockSource, type LayoutPhase, LayoutPipeline, type LayoutState, type MatrixBlock, type NodeBase, type NodeCompartments, type NodePort, type NodeShape, type NormalizeDiagramDslOptions, type NormalizeDiagramDslResult, type NormalizedDiagram, type NormalizedEdge, type NormalizedGroup, type NormalizedNode, type ParseDiagramDslOptions, type ParseDiagramDslResult, type ParsedEdgeShorthand, type PhaseTraceEntry, type Point, type PortKind, type PortShiftingOptions, type PortSide, type PreparedText, PretextTextMeasurer, type RecursiveLayoutInput, type RecursiveLayoutResult, type RelativePositionConstraint, type RelativePositionRelation, type RenderDiagramDslOptions, type RenderDiagramDslResult, type RouteEdgeInput, type RouteEdgeResult, type RouteKind, type ShapeGeometry, type ShapeGeometryInput, type Size, type SolveDiagramOptions, type SolvedTextAnnotation, type Swimlane, type SwimlaneLane, type SwimlaneLayout, type SwimlaneOrientation, type TableBlock, type TableColumn, type TableRow, type TextCursor, type TextLayout, type TextLayoutLine, type TextMeasurementBackend, type TextMeasurer, type TextStyleOptions, type TextSurfaceKind, type VisualStyle, applyLayoutConstraints, assertFiniteNonNegative, assertFinitePositive, boxCenter, buildContainerTree, canonicalize, computeArrowhead, computeContainerGeometry, computeShapeGeometry, createBoxSpatialIndex, createDefaultPipeline, createDefaultTextMeasurer, expandBox, expandBoxForQuery, exportExcalidraw, exportSvg, fitLabel, getEdgePort, installNodeCanvasRuntime, intersectsAabb, isPretextRuntimeAvailable, normalizeDiagramDsl, normalizeInsets, overlapArea, parseDiagramDsl, parseEdgeShorthand, queryBoxSpatialIndex, querySegmentSpatialIndex, renderDiagramDsl, resolveLineHeight, resolveOutputFormat, routeEdge, runComponentAwareDagreInitialLayout, runDagreInitialLayout, runRecursiveContainerLayout, simplifyRoute, solveDiagram, solveDiagramSafe, sortDslDiagnostics, stringifyCanonical, toCanvasFont, unionBoxes, validateBox, validateTextStyle };