@archilogic/floor-plan-sdk 5.1.6 → 5.1.9

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/fpe.d.ts CHANGED
@@ -106,27 +106,16 @@ declare type ClosedCurve = RectangleCurve_2 | PolygonCurve_2 | PolygonWithHolesC
106
106
 
107
107
  declare type ClosedCurveType = RectangleCurveType | PolygonCurveType | PolygonWithHolesCurveType | CircleCurveType | CompositeCurveType;
108
108
 
109
- declare interface CommonParameters$1 {
110
- materials: LayoutRampMaterials;
111
- }
112
-
113
- declare interface CommonParameters$2 {
114
- segmentCount: number;
115
- segmentLength: number;
116
- materials: LayoutRailingMaterials;
109
+ declare interface CommonParameters {
110
+ materials: LayoutBeamMaterials;
117
111
  }
118
112
 
119
- declare interface CommonParameters$3 {
120
- wallCabinet: boolean;
121
- leftHighCabinetCount: number;
122
- rightHighCabinetCount: number;
123
- sinkElementSlot: number;
124
- cooktopElementSlot: number;
125
- ovenElementSlot: number;
126
- materials: LayoutKitchenMaterials;
113
+ declare interface CommonParameters_2 {
114
+ counterHeight: number;
115
+ materials: LayoutCaseworkMaterials;
127
116
  }
128
117
 
129
- declare interface CommonParameters$4 {
118
+ declare interface CommonParameters_3 {
130
119
  /** thickness of the frame in x direction */
131
120
  frameThickness: number;
132
121
  /** depth of the frame in z direction */
@@ -139,16 +128,27 @@ declare interface CommonParameters$4 {
139
128
  materials: LayoutDoorMaterials;
140
129
  }
141
130
 
142
- declare interface CommonParameters$5 {
143
- counterHeight: number;
144
- materials: LayoutCaseworkMaterials;
131
+ declare interface CommonParameters_4 {
132
+ wallCabinet: boolean;
133
+ leftHighCabinetCount: number;
134
+ rightHighCabinetCount: number;
135
+ sinkElementSlot: number;
136
+ cooktopElementSlot: number;
137
+ ovenElementSlot: number;
138
+ materials: LayoutKitchenMaterials;
145
139
  }
146
140
 
147
- declare interface CommonParameters$6 {
148
- materials: LayoutBeamMaterials;
141
+ declare interface CommonParameters_5 {
142
+ segmentCount: number;
143
+ segmentLength: number;
144
+ materials: LayoutRailingMaterials;
149
145
  }
150
146
 
151
- declare interface CommonParameters {
147
+ declare interface CommonParameters_6 {
148
+ materials: LayoutRampMaterials;
149
+ }
150
+
151
+ declare interface CommonParameters_7 {
152
152
  /** thickness of the frame in x direction */
153
153
  frameThickness: number;
154
154
  /** depth of the frame in z direction */
@@ -249,28 +249,28 @@ declare type CustomStairsParametersJson = Partial<CustomStairsParameters>;
249
249
 
250
250
  declare type CustomStairsType = 'custom';
251
251
 
252
- declare interface DimensionParameters$1 {
252
+ declare type DimensionParameters = {
253
253
  /** @minimum 0.01 */
254
254
  length: number;
255
255
  /** @minimum 0.01 */
256
+ width: number;
257
+ /** @minimum 0.01 */
256
258
  height: number;
257
- }
259
+ };
258
260
 
259
- declare interface DimensionParameters$2 {
261
+ declare interface DimensionParameters_2 {
260
262
  /** @minimum 0.01 */
261
263
  length: number;
262
264
  /** @minimum 0.01 */
263
265
  height: number;
264
266
  }
265
267
 
266
- declare type DimensionParameters = {
268
+ declare interface DimensionParameters_3 {
267
269
  /** @minimum 0.01 */
268
270
  length: number;
269
271
  /** @minimum 0.01 */
270
- width: number;
271
- /** @minimum 0.01 */
272
272
  height: number;
273
- };
273
+ }
274
274
 
275
275
  declare type DoorSide = 'side1' | 'side2';
276
276
 
@@ -311,8 +311,6 @@ declare interface EdgeSplitReturnValue {
311
311
  element?: LayoutEdgeElement;
312
312
  }
313
313
 
314
- declare type EdgeType = 'graph:adjacentTo' | 'graph:connectedTo';
315
-
316
314
  declare interface ExportImage {
317
315
  /** output format: png, jpg */
318
316
  format?: 'png' | 'jpg';
@@ -892,21 +890,33 @@ declare const GeometryUnionTypeValue = "csg:union";
892
890
  /**
893
891
  * undirected graph for traversal without edge weights
894
892
  */
895
- declare class Graph {
896
- nodeMap: Map<LayoutNode, Map<EdgeType, Set<LayoutNode>>>;
897
- addNode(node: LayoutNode): Map<EdgeType, Set<LayoutNode>>;
898
- addEdge(type: EdgeType, source: LayoutNode, destination: LayoutNode): void;
899
- removeNode(node: LayoutNode): void;
900
- removeEdge(type: EdgeType, source: LayoutNode, destination: LayoutNode): void;
893
+ declare class Graph<T extends GraphNodeType = GraphNodeType, K extends string = GraphEdgeType> {
894
+ nodeMap: Map<T, Map<K, Set<T>>>;
895
+ addNode(node: T): Map<K, Set<T>>;
896
+ addEdge(type: K, source: T, destination: T): void;
897
+ removeNode(node: T): void;
898
+ removeEdge(type: K, source: T, destination: T): void;
901
899
  /**
902
900
  * Breadth-First Search
903
901
  * if edges have weights this needs to be replaces with dijkstra algorithm
904
902
  */
905
- findShortestPath(edgeType: EdgeType, start: LayoutNode, end: LayoutNode, options?: {
903
+ findShortestPath(edgeType: K, start: T, end: T, options?: {
906
904
  depthLimit?: number;
907
- }): LayoutNode[] | null;
905
+ }): T[] | null;
906
+ toJSON(): {
907
+ nodes: {
908
+ id: string;
909
+ type: string;
910
+ }[];
911
+ edges: {
912
+ type: string;
913
+ nodes: string[];
914
+ }[];
915
+ };
908
916
  }
909
917
 
918
+ declare type GraphEdgeType = 'graph:adjacentTo' | 'graph:connectedTo';
919
+
910
920
  export declare interface GraphicArgs {
911
921
  shapes: Shape[];
912
922
  position?: Vector2;
@@ -927,6 +937,11 @@ declare type GraphicUpdate = {
927
937
  shapes?: Shape[];
928
938
  };
929
939
 
940
+ declare type GraphNodeType = {
941
+ id: string;
942
+ type: string;
943
+ };
944
+
930
945
  declare class GroupRelation extends SpaceGraphNodeBase {
931
946
  type: GroupRelationType;
932
947
  elements: Set<LayoutElement>;
@@ -1164,6 +1179,8 @@ declare class LayoutAsset extends LayoutTransformElementBase {
1164
1179
  parameters: LayoutAssetParameters;
1165
1180
  product: SpaceGraphProduct | null;
1166
1181
  constructor(id: string);
1182
+ get isComponentInstance(): boolean;
1183
+ get isComponentInstanceChild(): boolean;
1167
1184
  setParameters(parameters: RecursivePartial<LayoutAssetParameters>): void;
1168
1185
  setProduct(product: SpaceGraphProduct): void;
1169
1186
  getBoundingBox(localTransform?: boolean): {
@@ -1207,9 +1224,9 @@ declare interface LayoutBeamMaterials {
1207
1224
  sides: SpaceGraphMaterialJson;
1208
1225
  }
1209
1226
 
1210
- declare type LayoutBeamParameters = DimensionParameters & CommonParameters$6;
1227
+ declare type LayoutBeamParameters = DimensionParameters & CommonParameters;
1211
1228
 
1212
- declare type LayoutBeamParametersJson = DimensionParameters & Partial<CommonParameters$6>;
1229
+ declare type LayoutBeamParametersJson = DimensionParameters & Partial<CommonParameters>;
1213
1230
 
1214
1231
  declare type LayoutBeamType = typeof LayoutBeamTypeValue;
1215
1232
 
@@ -1337,9 +1354,9 @@ declare interface LayoutCaseworkMaterials {
1337
1354
  counter: SpaceGraphMaterialJson;
1338
1355
  }
1339
1356
 
1340
- declare type LayoutCaseworkParameters = DimensionParameters & CommonParameters$5;
1357
+ declare type LayoutCaseworkParameters = DimensionParameters & CommonParameters_2;
1341
1358
 
1342
- declare type LayoutCaseworkParametersJson = DimensionParameters & Partial<CommonParameters$5>;
1359
+ declare type LayoutCaseworkParametersJson = DimensionParameters & Partial<CommonParameters_2>;
1343
1360
 
1344
1361
  declare type LayoutCaseworkType = typeof LayoutCaseworkTypeValue;
1345
1362
 
@@ -1425,9 +1442,9 @@ declare interface LayoutDoorMaterials {
1425
1442
  leaf: SpaceGraphMaterialJson;
1426
1443
  }
1427
1444
 
1428
- declare type LayoutDoorParameters = DimensionParameters$2 & CommonParameters$4;
1445
+ declare type LayoutDoorParameters = DimensionParameters_2 & CommonParameters_3;
1429
1446
 
1430
- declare type LayoutDoorParametersJson = DimensionParameters$2 & Partial<CommonParameters$4>;
1447
+ declare type LayoutDoorParametersJson = DimensionParameters_2 & Partial<CommonParameters_3>;
1431
1448
 
1432
1449
  declare type LayoutDoorType = typeof LayoutDoorTypeValue;
1433
1450
 
@@ -1620,15 +1637,15 @@ declare interface LayoutKitchenMaterials {
1620
1637
  counter: SpaceGraphMaterialJson;
1621
1638
  }
1622
1639
 
1623
- declare type LayoutKitchenParameters = DimensionParameters & CommonParameters$3;
1640
+ declare type LayoutKitchenParameters = DimensionParameters & CommonParameters_4;
1624
1641
 
1625
- declare type LayoutKitchenParametersJson = DimensionParameters & Partial<CommonParameters$3>;
1642
+ declare type LayoutKitchenParametersJson = DimensionParameters & Partial<CommonParameters_4>;
1626
1643
 
1627
1644
  declare type LayoutKitchenType = typeof LayoutKitchenTypeValue;
1628
1645
 
1629
1646
  declare const LayoutKitchenTypeValue = "element:kitchen";
1630
1647
 
1631
- declare type LayoutNode = SpatialGraphNode | LayoutSpace | LayoutElement | LayoutAnnotation | LayoutView;
1648
+ declare type LayoutNode = SpatialGraphNode_2 | LayoutSpace | LayoutElement | LayoutAnnotation | LayoutView;
1632
1649
 
1633
1650
  declare class LayoutNodeBase extends SpaceGraphNodeWithCustomAttributesBase {
1634
1651
  type: LayoutNodeType;
@@ -1719,9 +1736,9 @@ declare interface LayoutRailingMaterials {
1719
1736
  surface: SpaceGraphMaterialJson;
1720
1737
  }
1721
1738
 
1722
- declare type LayoutRailingParameters = DimensionParameters & CommonParameters$2;
1739
+ declare type LayoutRailingParameters = DimensionParameters & CommonParameters_5;
1723
1740
 
1724
- declare type LayoutRailingParametersJson = DimensionParameters & Partial<CommonParameters$2>;
1741
+ declare type LayoutRailingParametersJson = DimensionParameters & Partial<CommonParameters_5>;
1725
1742
 
1726
1743
  declare type LayoutRailingType = typeof LayoutRailingTypeValue;
1727
1744
 
@@ -1744,9 +1761,9 @@ declare interface LayoutRampMaterials {
1744
1761
  sides: SpaceGraphMaterialJson;
1745
1762
  }
1746
1763
 
1747
- declare type LayoutRampParameters = DimensionParameters & CommonParameters$1;
1764
+ declare type LayoutRampParameters = DimensionParameters & CommonParameters_6;
1748
1765
 
1749
- declare type LayoutRampParametersJson = DimensionParameters & Partial<CommonParameters$1>;
1766
+ declare type LayoutRampParametersJson = DimensionParameters & Partial<CommonParameters_6>;
1750
1767
 
1751
1768
  declare type LayoutRampType = typeof LayoutRampTypeValue;
1752
1769
 
@@ -2113,9 +2130,9 @@ declare interface LayoutWindowMaterials {
2113
2130
  panel: SpaceGraphMaterialJson;
2114
2131
  }
2115
2132
 
2116
- declare type LayoutWindowParameters = DimensionParameters$1 & CommonParameters;
2133
+ declare type LayoutWindowParameters = DimensionParameters_3 & CommonParameters_7;
2117
2134
 
2118
- declare type LayoutWindowParametersJson = DimensionParameters$1 & Partial<CommonParameters>;
2135
+ declare type LayoutWindowParametersJson = DimensionParameters_3 & Partial<CommonParameters_7>;
2119
2136
 
2120
2137
  declare type LayoutWindowType = typeof LayoutWindowTypeValue;
2121
2138
 
@@ -2416,7 +2433,8 @@ declare type ResourceScope =
2416
2433
  | "superadmin"
2417
2434
  | "token"
2418
2435
  | "subscription"
2419
- | "graphql";
2436
+ | "graphql"
2437
+ | "extension";
2420
2438
 
2421
2439
  declare type Rgb = [number, number, number];
2422
2440
 
@@ -2466,7 +2484,8 @@ declare class SpaceGraph {
2466
2484
  products: SpaceGraphProduct[];
2467
2485
  productsById: Record<string, SpaceGraphProduct>;
2468
2486
  productsByType: NodesByType<{
2469
- readonly 'product:static': typeof SpaceGraphProduct;
2487
+ readonly 'product:static': typeof SpaceGraphProductStatic;
2488
+ readonly 'product:component': typeof SpaceGraphProductComponent;
2470
2489
  }>;
2471
2490
  customAttributes: SpaceGraphCustomAttribute[];
2472
2491
  customAttributesById: Record<string, SpaceGraphCustomAttribute>;
@@ -2476,12 +2495,12 @@ declare class SpaceGraph {
2476
2495
  geometries: SpaceGraphGeometryJson[];
2477
2496
  geometriesById: Record<string, SpaceGraphGeometryJson>;
2478
2497
  geometriesByType: NodesByType<{
2479
- readonly 'geometry:plane': typeof PlaneGeometry;
2480
- readonly 'geometry:cuboid': typeof CuboidGeometry;
2481
- readonly 'geometry:sphere': typeof SphereGeometry;
2482
- readonly 'geometry:extrusion': typeof ExtrusionGeometry;
2483
- readonly 'geometry:mesh': typeof MeshGeometry;
2484
- readonly 'geometry:uri': typeof UriGeometry;
2498
+ readonly 'geometry:plane': PlaneGeometry;
2499
+ readonly 'geometry:cuboid': CuboidGeometry;
2500
+ readonly 'geometry:sphere': SphereGeometry;
2501
+ readonly 'geometry:extrusion': ExtrusionGeometry;
2502
+ readonly 'geometry:mesh': MeshGeometry;
2503
+ readonly 'geometry:uri': UriGeometry;
2485
2504
  }>;
2486
2505
  materials: SpaceGraphMaterial[];
2487
2506
  materialsById: Record<string, SpaceGraphMaterial>;
@@ -2503,45 +2522,46 @@ declare class SpaceGraph {
2503
2522
  readonly 'spatialStructure:floor': typeof SpaceGraphFloor;
2504
2523
  readonly 'spatialStructure:layout': typeof SpaceGraphLayout;
2505
2524
  readonly 'relation:group': typeof GroupRelation;
2506
- readonly 'product:static': typeof SpaceGraphProduct;
2525
+ readonly 'product:static': typeof SpaceGraphProductStatic;
2526
+ readonly 'product:component': typeof SpaceGraphProductComponent;
2507
2527
  readonly 'material:embedded': typeof SpaceGraphEmbeddedMaterial;
2508
2528
  readonly 'material:basic': typeof SpaceGraphBasicMaterial;
2509
2529
  readonly 'material:color': typeof SpaceGraphColorMaterial;
2510
2530
  readonly 'material:standard': typeof SpaceGraphStandardMaterial;
2511
- readonly 'geometry:plane': typeof PlaneGeometry;
2512
- readonly 'geometry:cuboid': typeof CuboidGeometry;
2513
- readonly 'geometry:sphere': typeof SphereGeometry;
2514
- readonly 'geometry:extrusion': typeof ExtrusionGeometry;
2515
- readonly 'geometry:mesh': typeof MeshGeometry;
2516
- readonly 'geometry:uri': typeof UriGeometry;
2517
- readonly 'spatialGraph:edge': typeof SpatialGraphEdge;
2518
- readonly 'spatialGraph:vertex': typeof SpatialGraphVertex;
2519
- readonly 'layout:space': typeof LayoutSpace;
2520
- readonly 'view:2d': typeof Layout2dView;
2521
- readonly 'view:3d': typeof Layout3dView;
2522
- readonly 'annotation:floorPlanDxf': typeof LayoutFloorPlanDxfAnnotation;
2523
- readonly 'annotation:floorPlanImage': typeof LayoutFloorPlanImageAnnotation;
2524
- readonly 'element:ceiling': typeof LayoutBoundarySlab;
2525
- readonly 'element:floor': typeof LayoutBoundarySlab;
2526
- readonly 'element:boundaryWall': typeof LayoutBoundaryWall;
2527
- readonly 'element:curtainWall': typeof LayoutCurtainWall;
2528
- readonly 'element:spaceDivider': typeof LayoutSpaceDivider;
2529
- readonly 'element:wall': typeof LayoutWall;
2530
- readonly 'element:opening': typeof LayoutOpening;
2531
- readonly 'element:asset': typeof LayoutAsset;
2532
- readonly 'element:beam': typeof LayoutBeam;
2533
- readonly 'element:casework': typeof LayoutCasework;
2534
- readonly 'element:column': typeof LayoutColumn;
2535
- readonly 'element:door': typeof LayoutDoor;
2536
- readonly 'element:generic': typeof LayoutGeneric;
2537
- readonly 'element:kitchen': typeof LayoutKitchen;
2538
- readonly 'element:railing': typeof LayoutRailing;
2539
- readonly 'element:ramp': typeof LayoutRamp;
2540
- readonly 'element:roof': typeof LayoutRoof;
2541
- readonly 'element:slab': typeof LayoutSlab;
2542
- readonly 'element:stairs': typeof LayoutStairs;
2543
- readonly 'element:stairFlight': typeof LayoutStairFlight;
2544
- readonly 'element:window': typeof LayoutWindow;
2531
+ readonly 'geometry:plane': PlaneGeometry;
2532
+ readonly 'geometry:cuboid': CuboidGeometry;
2533
+ readonly 'geometry:sphere': SphereGeometry;
2534
+ readonly 'geometry:extrusion': ExtrusionGeometry;
2535
+ readonly 'geometry:mesh': MeshGeometry;
2536
+ readonly 'geometry:uri': UriGeometry;
2537
+ readonly 'spatialGraph:edge': SpatialGraphEdge;
2538
+ readonly 'spatialGraph:vertex': SpatialGraphVertex;
2539
+ readonly 'layout:space': LayoutSpace;
2540
+ readonly 'view:2d': Layout2dView;
2541
+ readonly 'view:3d': Layout3dView;
2542
+ readonly 'annotation:floorPlanDxf': LayoutFloorPlanDxfAnnotation;
2543
+ readonly 'annotation:floorPlanImage': LayoutFloorPlanImageAnnotation;
2544
+ readonly 'element:ceiling': LayoutBoundarySlab;
2545
+ readonly 'element:floor': LayoutBoundarySlab;
2546
+ readonly 'element:boundaryWall': LayoutBoundaryWall;
2547
+ readonly 'element:curtainWall': LayoutCurtainWall;
2548
+ readonly 'element:spaceDivider': LayoutSpaceDivider;
2549
+ readonly 'element:wall': LayoutWall;
2550
+ readonly 'element:opening': LayoutOpening;
2551
+ readonly 'element:asset': LayoutAsset;
2552
+ readonly 'element:beam': LayoutBeam;
2553
+ readonly 'element:casework': LayoutCasework;
2554
+ readonly 'element:column': LayoutColumn;
2555
+ readonly 'element:door': LayoutDoor;
2556
+ readonly 'element:generic': LayoutGeneric;
2557
+ readonly 'element:kitchen': LayoutKitchen;
2558
+ readonly 'element:railing': LayoutRailing;
2559
+ readonly 'element:ramp': LayoutRamp;
2560
+ readonly 'element:roof': LayoutRoof;
2561
+ readonly 'element:slab': LayoutSlab;
2562
+ readonly 'element:stairs': LayoutStairs;
2563
+ readonly 'element:stairFlight': LayoutStairFlight;
2564
+ readonly 'element:window': LayoutWindow;
2545
2565
  }>;
2546
2566
  sourceSchemaVersion: string | undefined;
2547
2567
  private emitter;
@@ -2561,7 +2581,7 @@ declare class SpaceGraph {
2561
2581
  createSpatialStructure(type: SpaceGraphSpatialStructureType, id: string): SpaceGraphSpatialStructure;
2562
2582
  insertProduct(product: SpaceGraphProduct): void;
2563
2583
  removeProduct(product: SpaceGraphProduct): void;
2564
- createProduct(id: string): SpaceGraphProduct;
2584
+ createProduct(id: string, type: SpaceGraphProductType): SpaceGraphProduct;
2565
2585
  insertGeometry(geometryJson: SpaceGraphGeometryJson): void;
2566
2586
  removeGeometry(geometryJson: SpaceGraphGeometryJson): void;
2567
2587
  insertMaterial(material: SpaceGraphMaterial): void;
@@ -2672,7 +2692,7 @@ declare type SpaceGraphCustomAttributeAttributesJson = {
2672
2692
  };
2673
2693
 
2674
2694
  declare interface SpaceGraphCustomAttributeJson extends SpaceGraphNodeBaseJson {
2675
- /** @type string @minLength 3 @maxLength 50 @pattern ^(?![_-])[A-Za-z0-9_-]*$ */
2695
+ /** @type string @minLength 3 @maxLength 70 @pattern ^(?![_-])[A-Za-z0-9_:-]*$ */
2676
2696
  id: string;
2677
2697
  /** @minLength 3 @maxLength 30 @type string */
2678
2698
  name: string;
@@ -2791,40 +2811,40 @@ declare class SpaceGraphLayout extends SpaceGraphSpatialStructureBase {
2791
2811
  spacesById: Record<string, LayoutSpace>;
2792
2812
  elements: LayoutElement[];
2793
2813
  elementsById: Record<string, LayoutElement>;
2794
- elementsByType: NodesByType<{
2814
+ elementsByType: NodesByType< {
2795
2815
  readonly 'element:ceiling': typeof LayoutBoundarySlab;
2796
2816
  readonly 'element:floor': typeof LayoutBoundarySlab;
2797
2817
  readonly 'element:boundaryWall': typeof LayoutBoundaryWall;
2798
- readonly 'element:curtainWall': typeof LayoutCurtainWall;
2799
- readonly 'element:spaceDivider': typeof LayoutSpaceDivider;
2800
- readonly 'element:wall': typeof LayoutWall;
2818
+ readonly 'element:curtainWall': LayoutCurtainWall;
2819
+ readonly 'element:spaceDivider': LayoutSpaceDivider;
2820
+ readonly 'element:wall': LayoutWall;
2801
2821
  readonly 'element:opening': typeof LayoutOpening;
2802
- readonly 'element:asset': typeof LayoutAsset;
2803
- readonly 'element:beam': typeof LayoutBeam;
2804
- readonly 'element:casework': typeof LayoutCasework;
2805
- readonly 'element:column': typeof LayoutColumn;
2806
- readonly 'element:door': typeof LayoutDoor;
2807
- readonly 'element:generic': typeof LayoutGeneric;
2808
- readonly 'element:kitchen': typeof LayoutKitchen;
2809
- readonly 'element:railing': typeof LayoutRailing;
2810
- readonly 'element:ramp': typeof LayoutRamp;
2811
- readonly 'element:roof': typeof LayoutRoof;
2812
- readonly 'element:slab': typeof LayoutSlab;
2813
- readonly 'element:stairs': typeof LayoutStairs;
2814
- readonly 'element:stairFlight': typeof LayoutStairFlight;
2815
- readonly 'element:window': typeof LayoutWindow;
2822
+ readonly 'element:asset': LayoutAsset;
2823
+ readonly 'element:beam': LayoutBeam;
2824
+ readonly 'element:casework': LayoutCasework;
2825
+ readonly 'element:column': LayoutColumn;
2826
+ readonly 'element:door': LayoutDoor;
2827
+ readonly 'element:generic': LayoutGeneric;
2828
+ readonly 'element:kitchen': LayoutKitchen;
2829
+ readonly 'element:railing': LayoutRailing;
2830
+ readonly 'element:ramp': LayoutRamp;
2831
+ readonly 'element:roof': LayoutRoof;
2832
+ readonly 'element:slab': LayoutSlab;
2833
+ readonly 'element:stairs': LayoutStairs;
2834
+ readonly 'element:stairFlight': LayoutStairFlight;
2835
+ readonly 'element:window': LayoutWindow;
2816
2836
  }>;
2817
2837
  annotations: LayoutAnnotation[];
2818
2838
  annotationsById: Record<string, LayoutAnnotation>;
2819
- annotationsByType: NodesByType<{
2820
- readonly 'annotation:floorPlanDxf': typeof LayoutFloorPlanDxfAnnotation;
2821
- readonly 'annotation:floorPlanImage': typeof LayoutFloorPlanImageAnnotation;
2839
+ annotationsByType: NodesByType< {
2840
+ readonly 'annotation:floorPlanDxf': LayoutFloorPlanDxfAnnotation;
2841
+ readonly 'annotation:floorPlanImage': LayoutFloorPlanImageAnnotation;
2822
2842
  }>;
2823
2843
  views: LayoutView[];
2824
2844
  viewsById: Record<string, LayoutView>;
2825
- viewsByType: NodesByType<{
2826
- readonly 'view:2d': typeof Layout2dView;
2827
- readonly 'view:3d': typeof Layout3dView;
2845
+ viewsByType: NodesByType< {
2846
+ readonly 'view:2d': Layout2dView;
2847
+ readonly 'view:3d': Layout3dView;
2828
2848
  }>;
2829
2849
  debugIds: boolean;
2830
2850
  suggestedIds: Record<string, boolean>;
@@ -2856,7 +2876,7 @@ declare class SpaceGraphLayout extends SpaceGraphSpatialStructureBase {
2856
2876
  include?: string[];
2857
2877
  };
2858
2878
  }): number;
2859
- getLayoutGraph(): Graph;
2879
+ getLayoutGraph(): Graph<LayoutNode>;
2860
2880
  getUniqueId(prefix: string, nodesById: Record<string, SpaceGraphNode>): string;
2861
2881
  getSpaceId(prefix?: string): string;
2862
2882
  getElementId(element: LayoutElement, prefix?: string): string;
@@ -2923,15 +2943,7 @@ declare interface SpaceGraphNodeWithCustomAttributesBaseJson extends SpaceGraphN
2923
2943
  customAttributes?: SpaceGraphCustomAttributeValueJson | null;
2924
2944
  }
2925
2945
 
2926
- declare class SpaceGraphProduct extends SpaceGraphNodeWithCustomAttributesBase {
2927
- type: SpaceGraphProductType;
2928
- attributes: SpaceGraphProductAttributes;
2929
- geometries: GeometryOperationJson[];
2930
- constructor(id: string);
2931
- copyForClone(product: SpaceGraphProduct): void;
2932
- setAttributes(attributesJson: SpaceGraphProductAttributesJson): void;
2933
- toJSON(): SpaceGraphProductJson;
2934
- }
2946
+ declare type SpaceGraphProduct = SpaceGraphProductStatic | SpaceGraphProductComponent;
2935
2947
 
2936
2948
  declare type SpaceGraphProductAttributes = {
2937
2949
  manufacturer: string;
@@ -2953,15 +2965,73 @@ declare type SpaceGraphProductAttributesJson = {
2953
2965
  updatedAt?: string;
2954
2966
  };
2955
2967
 
2956
- declare interface SpaceGraphProductJson extends SpaceGraphNodeWithCustomAttributesBaseJson {
2968
+ declare class SpaceGraphProductBase extends SpaceGraphNodeWithCustomAttributesBase {
2969
+ #private;
2957
2970
  type: SpaceGraphProductType;
2971
+ attributes: SpaceGraphProductAttributes;
2972
+ instances: Set<LayoutAsset>;
2973
+ constructor(id: string, type: SpaceGraphProductType);
2974
+ copyForClone(product: SpaceGraphProductStatic | SpaceGraphProductComponent): void;
2975
+ setAttributes(attributesJson: SpaceGraphProductAttributesJson): void;
2976
+ toJSON(): SpaceGraphProductJson;
2977
+ }
2978
+
2979
+ declare class SpaceGraphProductComponent extends SpaceGraphProductBase {
2980
+ type: SpaceGraphProductComponentType;
2981
+ attributes: SpaceGraphProductAttributes;
2982
+ products: {
2983
+ position: PositionEntry;
2984
+ rotation: RotationEntry;
2985
+ product: string;
2986
+ }[];
2987
+ geometries: GeometryOperationJson[];
2988
+ constructor(id: string);
2989
+ copyForClone(product: SpaceGraphProductComponent): void;
2990
+ toJSON(): SpaceGraphProductComponentJson;
2991
+ setProducts(products: {
2992
+ position: PositionEntry;
2993
+ rotation: RotationEntry;
2994
+ product: string;
2995
+ }[]): void;
2996
+ setInstances(): void;
2997
+ }
2998
+
2999
+ declare interface SpaceGraphProductComponentJson extends SpaceGraphNodeWithCustomAttributesBaseJson {
3000
+ type: SpaceGraphProductComponentType;
3001
+ attributes?: SpaceGraphProductAttributesJson;
3002
+ products: {
3003
+ position: PositionEntry;
3004
+ rotation: RotationEntry;
3005
+ product: string;
3006
+ }[];
3007
+ geometries: GeometryOperationJson[];
3008
+ }
3009
+
3010
+ declare type SpaceGraphProductComponentType = typeof SpaceGraphProductComponentTypeValue;
3011
+
3012
+ declare const SpaceGraphProductComponentTypeValue = "product:component";
3013
+
3014
+ declare type SpaceGraphProductJson = SpaceGraphProductStaticJson | SpaceGraphProductComponentJson;
3015
+
3016
+ declare class SpaceGraphProductStatic extends SpaceGraphProductBase {
3017
+ type: SpaceGraphProductStaticType;
3018
+ geometries: GeometryOperationJson[];
3019
+ constructor(id: string);
3020
+ copyForClone(product: SpaceGraphProductStatic): void;
3021
+ toJSON(): SpaceGraphProductStaticJson;
3022
+ }
3023
+
3024
+ declare interface SpaceGraphProductStaticJson extends SpaceGraphNodeWithCustomAttributesBaseJson {
3025
+ type: SpaceGraphProductStaticType;
2958
3026
  attributes?: SpaceGraphProductAttributesJson;
2959
3027
  geometries: GeometryOperationJson[];
2960
3028
  }
2961
3029
 
2962
- declare type SpaceGraphProductType = typeof SpaceGraphProductTypeValue;
3030
+ declare type SpaceGraphProductStaticType = typeof SpaceGraphProductStaticTypeValue;
3031
+
3032
+ declare const SpaceGraphProductStaticTypeValue = "product:static";
2963
3033
 
2964
- declare const SpaceGraphProductTypeValue = "product:static";
3034
+ declare type SpaceGraphProductType = SpaceGraphProductStaticType | SpaceGraphProductComponentType;
2965
3035
 
2966
3036
  declare type SpaceGraphRelation = GroupRelation;
2967
3037
 
@@ -3063,7 +3133,7 @@ declare type SpatialGraphEdgeType = typeof SpatialGraphEdgeTypeValue;
3063
3133
 
3064
3134
  declare const SpatialGraphEdgeTypeValue = "spatialGraph:edge";
3065
3135
 
3066
- declare type SpatialGraphNode = SpatialGraphVertex | SpatialGraphEdge;
3136
+ declare type SpatialGraphNode_2 = SpatialGraphVertex | SpatialGraphEdge;
3067
3137
 
3068
3138
  declare class SpatialGraphNodeBase extends LayoutNodeBase {
3069
3139
  }