@pascal-app/core 0.5.1 → 0.7.0

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.
Files changed (134) hide show
  1. package/dist/events/bus.d.ts +74 -4
  2. package/dist/events/bus.d.ts.map +1 -1
  3. package/dist/events/bus.js +1 -1
  4. package/dist/hooks/scene-registry/scene-registry.d.ts +2 -0
  5. package/dist/hooks/scene-registry/scene-registry.d.ts.map +1 -1
  6. package/dist/hooks/scene-registry/scene-registry.js +2 -0
  7. package/dist/hooks/spatial-grid/spatial-grid-manager.d.ts.map +1 -1
  8. package/dist/hooks/spatial-grid/spatial-grid-manager.js +164 -6
  9. package/dist/hooks/spatial-grid/spatial-grid.d.ts +2 -0
  10. package/dist/hooks/spatial-grid/spatial-grid.d.ts.map +1 -1
  11. package/dist/hooks/spatial-grid/spatial-grid.js +43 -20
  12. package/dist/index.d.ts +9 -13
  13. package/dist/index.d.ts.map +1 -1
  14. package/dist/index.js +7 -11
  15. package/dist/lib/door-operation.d.ts +7 -0
  16. package/dist/lib/door-operation.d.ts.map +1 -0
  17. package/dist/lib/door-operation.js +25 -0
  18. package/dist/lib/polygon-geometry.d.ts +3 -0
  19. package/dist/lib/polygon-geometry.d.ts.map +1 -0
  20. package/dist/lib/polygon-geometry.js +90 -0
  21. package/dist/lib/slab-polygon.d.ts +3 -0
  22. package/dist/lib/slab-polygon.d.ts.map +1 -0
  23. package/dist/lib/slab-polygon.js +58 -0
  24. package/dist/lib/space-detection.d.ts +10 -17
  25. package/dist/lib/space-detection.d.ts.map +1 -1
  26. package/dist/lib/space-detection.js +666 -453
  27. package/dist/material-library.d.ts +20 -0
  28. package/dist/material-library.d.ts.map +1 -0
  29. package/dist/material-library.js +580 -0
  30. package/dist/schema/asset-url.d.ts +34 -0
  31. package/dist/schema/asset-url.d.ts.map +1 -0
  32. package/dist/schema/asset-url.js +79 -0
  33. package/dist/schema/asset-url.test.d.ts +2 -0
  34. package/dist/schema/asset-url.test.d.ts.map +1 -0
  35. package/dist/schema/asset-url.test.js +138 -0
  36. package/dist/schema/index.d.ts +14 -7
  37. package/dist/schema/index.d.ts.map +1 -1
  38. package/dist/schema/index.js +10 -7
  39. package/dist/schema/material.d.ts +112 -2
  40. package/dist/schema/material.d.ts.map +1 -1
  41. package/dist/schema/material.js +55 -1
  42. package/dist/schema/nodes/ceiling.d.ts +11 -1
  43. package/dist/schema/nodes/ceiling.d.ts.map +1 -1
  44. package/dist/schema/nodes/ceiling.js +6 -0
  45. package/dist/schema/nodes/column.d.ts +520 -0
  46. package/dist/schema/nodes/column.d.ts.map +1 -0
  47. package/dist/schema/nodes/column.js +385 -0
  48. package/dist/schema/nodes/door.d.ts +74 -1
  49. package/dist/schema/nodes/door.d.ts.map +1 -1
  50. package/dist/schema/nodes/door.js +39 -2
  51. package/dist/schema/nodes/fence.d.ts +34 -0
  52. package/dist/schema/nodes/fence.d.ts.map +1 -1
  53. package/dist/schema/nodes/fence.js +5 -0
  54. package/dist/schema/nodes/guide.d.ts +17 -0
  55. package/dist/schema/nodes/guide.d.ts.map +1 -1
  56. package/dist/schema/nodes/guide.js +11 -1
  57. package/dist/schema/nodes/item.d.ts +10 -2
  58. package/dist/schema/nodes/item.d.ts.map +1 -1
  59. package/dist/schema/nodes/item.js +18 -1
  60. package/dist/schema/nodes/level.d.ts +1 -1
  61. package/dist/schema/nodes/level.d.ts.map +1 -1
  62. package/dist/schema/nodes/level.js +6 -0
  63. package/dist/schema/nodes/roof-segment.d.ts +3 -1
  64. package/dist/schema/nodes/roof-segment.d.ts.map +1 -1
  65. package/dist/schema/nodes/roof-segment.js +1 -0
  66. package/dist/schema/nodes/roof.d.ts +108 -0
  67. package/dist/schema/nodes/roof.d.ts.map +1 -1
  68. package/dist/schema/nodes/roof.js +58 -2
  69. package/dist/schema/nodes/scan.d.ts.map +1 -1
  70. package/dist/schema/nodes/scan.js +2 -1
  71. package/dist/schema/nodes/site.d.ts +2 -1
  72. package/dist/schema/nodes/site.d.ts.map +1 -1
  73. package/dist/schema/nodes/slab.d.ts +11 -1
  74. package/dist/schema/nodes/slab.d.ts.map +1 -1
  75. package/dist/schema/nodes/slab.js +7 -0
  76. package/dist/schema/nodes/spawn.d.ts +24 -0
  77. package/dist/schema/nodes/spawn.d.ts.map +1 -0
  78. package/dist/schema/nodes/spawn.js +8 -0
  79. package/dist/schema/nodes/stair-segment.d.ts +3 -1
  80. package/dist/schema/nodes/stair-segment.d.ts.map +1 -1
  81. package/dist/schema/nodes/stair-segment.js +1 -0
  82. package/dist/schema/nodes/stair.d.ts +122 -2
  83. package/dist/schema/nodes/stair.d.ts.map +1 -1
  84. package/dist/schema/nodes/stair.js +72 -2
  85. package/dist/schema/nodes/surface-hole-metadata.d.ts +10 -0
  86. package/dist/schema/nodes/surface-hole-metadata.d.ts.map +1 -0
  87. package/dist/schema/nodes/surface-hole-metadata.js +5 -0
  88. package/dist/schema/nodes/wall.d.ts +87 -1
  89. package/dist/schema/nodes/wall.d.ts.map +1 -1
  90. package/dist/schema/nodes/wall.js +45 -4
  91. package/dist/schema/nodes/window.d.ts +57 -1
  92. package/dist/schema/nodes/window.d.ts.map +1 -1
  93. package/dist/schema/nodes/window.js +29 -0
  94. package/dist/schema/types.d.ts +653 -12
  95. package/dist/schema/types.d.ts.map +1 -1
  96. package/dist/schema/types.js +4 -0
  97. package/dist/store/actions/node-actions.d.ts +1 -1
  98. package/dist/store/actions/node-actions.d.ts.map +1 -1
  99. package/dist/store/actions/node-actions.js +181 -5
  100. package/dist/store/history-control.d.ts +14 -0
  101. package/dist/store/history-control.d.ts.map +1 -0
  102. package/dist/store/history-control.js +22 -0
  103. package/dist/store/use-interactive.d.ts +43 -0
  104. package/dist/store/use-interactive.d.ts.map +1 -1
  105. package/dist/store/use-interactive.js +66 -0
  106. package/dist/store/use-scene.d.ts.map +1 -1
  107. package/dist/store/use-scene.js +307 -3
  108. package/dist/systems/ceiling/ceiling-system.d.ts.map +1 -1
  109. package/dist/systems/ceiling/ceiling-system.js +7 -0
  110. package/dist/systems/fence/fence-system.d.ts.map +1 -1
  111. package/dist/systems/fence/fence-system.js +106 -39
  112. package/dist/systems/roof/roof-system.d.ts.map +1 -1
  113. package/dist/systems/roof/roof-system.js +31 -1
  114. package/dist/systems/slab/slab-system.d.ts.map +1 -1
  115. package/dist/systems/slab/slab-system.js +45 -8
  116. package/dist/systems/stair/stair-opening-sync.d.ts +6 -0
  117. package/dist/systems/stair/stair-opening-sync.d.ts.map +1 -0
  118. package/dist/systems/stair/stair-opening-sync.js +576 -0
  119. package/dist/systems/stair/stair-opening-sync.test.d.ts +2 -0
  120. package/dist/systems/stair/stair-opening-sync.test.d.ts.map +1 -0
  121. package/dist/systems/stair/stair-opening-sync.test.js +65 -0
  122. package/dist/systems/stair/stair-system.d.ts.map +1 -1
  123. package/dist/systems/stair/stair-system.js +119 -2
  124. package/dist/systems/wall/wall-curve.d.ts +43 -0
  125. package/dist/systems/wall/wall-curve.d.ts.map +1 -0
  126. package/dist/systems/wall/wall-curve.js +176 -0
  127. package/dist/systems/wall/wall-footprint.d.ts.map +1 -1
  128. package/dist/systems/wall/wall-footprint.js +16 -2
  129. package/dist/systems/wall/wall-mitering.d.ts +7 -0
  130. package/dist/systems/wall/wall-mitering.d.ts.map +1 -1
  131. package/dist/systems/wall/wall-mitering.js +76 -3
  132. package/dist/systems/wall/wall-system.d.ts.map +1 -1
  133. package/dist/systems/wall/wall-system.js +202 -2
  134. package/package.json +33 -5
@@ -76,12 +76,13 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
76
76
  category: z.ZodString;
77
77
  name: z.ZodString;
78
78
  thumbnail: z.ZodString;
79
+ floorPlanUrl: z.ZodOptional<z.ZodString>;
79
80
  src: z.ZodString;
80
81
  dimensions: z.ZodDefault<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
81
82
  attachTo: z.ZodOptional<z.ZodEnum<{
82
83
  wall: "wall";
83
- "wall-side": "wall-side";
84
84
  ceiling: "ceiling";
85
+ "wall-side": "wall-side";
85
86
  }>>;
86
87
  tags: z.ZodOptional<z.ZodArray<z.ZodString>>;
87
88
  offset: z.ZodDefault<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
@@ -175,8 +176,192 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
175
176
  metadata: z.ZodDefault<z.ZodOptional<z.ZodJSONSchema>>;
176
177
  id: z.ZodDefault<z.ZodTemplateLiteral<`level_${string}`>>;
177
178
  type: z.ZodDefault<z.ZodLiteral<"level">>;
178
- children: z.ZodDefault<z.ZodArray<z.ZodUnion<readonly [z.ZodDefault<z.ZodTemplateLiteral<`wall_${string}`>>, z.ZodDefault<z.ZodTemplateLiteral<`fence_${string}`>>, z.ZodDefault<z.ZodTemplateLiteral<`zone_${string}`>>, z.ZodDefault<z.ZodTemplateLiteral<`slab_${string}`>>, z.ZodDefault<z.ZodTemplateLiteral<`ceiling_${string}`>>, z.ZodDefault<z.ZodTemplateLiteral<`roof_${string}`>>, z.ZodDefault<z.ZodTemplateLiteral<`stair_${string}`>>, z.ZodDefault<z.ZodTemplateLiteral<`scan_${string}`>>, z.ZodDefault<z.ZodTemplateLiteral<`guide_${string}`>>]>>>;
179
+ children: z.ZodDefault<z.ZodArray<z.ZodUnion<readonly [z.ZodDefault<z.ZodTemplateLiteral<`wall_${string}`>>, z.ZodDefault<z.ZodTemplateLiteral<`fence_${string}`>>, z.ZodDefault<z.ZodTemplateLiteral<`column_${string}`>>, z.ZodDefault<z.ZodTemplateLiteral<`item_${string}`>>, z.ZodDefault<z.ZodTemplateLiteral<`zone_${string}`>>, z.ZodDefault<z.ZodTemplateLiteral<`slab_${string}`>>, z.ZodDefault<z.ZodTemplateLiteral<`ceiling_${string}`>>, z.ZodDefault<z.ZodTemplateLiteral<`roof_${string}`>>, z.ZodDefault<z.ZodTemplateLiteral<`stair_${string}`>>, z.ZodDefault<z.ZodTemplateLiteral<`scan_${string}`>>, z.ZodDefault<z.ZodTemplateLiteral<`guide_${string}`>>, z.ZodDefault<z.ZodTemplateLiteral<`spawn_${string}`>>]>>>;
179
180
  level: z.ZodDefault<z.ZodNumber>;
181
+ }, z.core.$strip>, z.ZodObject<{
182
+ object: z.ZodDefault<z.ZodLiteral<"node">>;
183
+ name: z.ZodOptional<z.ZodString>;
184
+ parentId: z.ZodDefault<z.ZodNullable<z.ZodString>>;
185
+ visible: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
186
+ camera: z.ZodOptional<z.ZodObject<{
187
+ position: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
188
+ target: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
189
+ mode: z.ZodDefault<z.ZodEnum<{
190
+ perspective: "perspective";
191
+ orthographic: "orthographic";
192
+ }>>;
193
+ fov: z.ZodOptional<z.ZodNumber>;
194
+ zoom: z.ZodOptional<z.ZodNumber>;
195
+ }, z.core.$strip>>;
196
+ metadata: z.ZodDefault<z.ZodOptional<z.ZodJSONSchema>>;
197
+ id: z.ZodDefault<z.ZodTemplateLiteral<`column_${string}`>>;
198
+ type: z.ZodDefault<z.ZodLiteral<"column">>;
199
+ position: z.ZodDefault<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
200
+ rotation: z.ZodDefault<z.ZodNumber>;
201
+ style: z.ZodDefault<z.ZodEnum<{
202
+ plain: "plain";
203
+ faceted: "faceted";
204
+ fluted: "fluted";
205
+ "lathe-turned": "lathe-turned";
206
+ "dravidian-carved": "dravidian-carved";
207
+ cluster: "cluster";
208
+ }>>;
209
+ crossSection: z.ZodDefault<z.ZodEnum<{
210
+ round: "round";
211
+ square: "square";
212
+ rectangular: "rectangular";
213
+ octagonal: "octagonal";
214
+ "sixteen-sided": "sixteen-sided";
215
+ }>>;
216
+ height: z.ZodDefault<z.ZodNumber>;
217
+ radius: z.ZodDefault<z.ZodNumber>;
218
+ width: z.ZodDefault<z.ZodNumber>;
219
+ depth: z.ZodDefault<z.ZodNumber>;
220
+ edgeSoftness: z.ZodDefault<z.ZodNumber>;
221
+ baseHeight: z.ZodDefault<z.ZodNumber>;
222
+ capitalHeight: z.ZodDefault<z.ZodNumber>;
223
+ shaftProfile: z.ZodDefault<z.ZodEnum<{
224
+ straight: "straight";
225
+ tapered: "tapered";
226
+ bulged: "bulged";
227
+ baluster: "baluster";
228
+ hourglass: "hourglass";
229
+ }>>;
230
+ shaftTaper: z.ZodDefault<z.ZodNumber>;
231
+ shaftBulge: z.ZodDefault<z.ZodNumber>;
232
+ shaftStartScale: z.ZodDefault<z.ZodNumber>;
233
+ shaftEndScale: z.ZodDefault<z.ZodNumber>;
234
+ shaftSegmentCount: z.ZodDefault<z.ZodNumber>;
235
+ shaftTwistStep: z.ZodDefault<z.ZodNumber>;
236
+ shaftCornerRadius: z.ZodDefault<z.ZodNumber>;
237
+ shaftDetail: z.ZodDefault<z.ZodEnum<{
238
+ fluted: "fluted";
239
+ "lathe-turned": "lathe-turned";
240
+ none: "none";
241
+ spiral: "spiral";
242
+ panelled: "panelled";
243
+ }>>;
244
+ baseStyle: z.ZodDefault<z.ZodEnum<{
245
+ none: "none";
246
+ "simple-square": "simple-square";
247
+ "round-rings": "round-rings";
248
+ "square-plinth": "square-plinth";
249
+ "stepped-square": "stepped-square";
250
+ lotus: "lotus";
251
+ "ribbed-lotus": "ribbed-lotus";
252
+ "panelled-pedestal": "panelled-pedestal";
253
+ }>>;
254
+ baseWidthScale: z.ZodDefault<z.ZodNumber>;
255
+ baseDepthScale: z.ZodDefault<z.ZodNumber>;
256
+ baseTierCount: z.ZodDefault<z.ZodNumber>;
257
+ baseStepSpread: z.ZodDefault<z.ZodNumber>;
258
+ basePlinthHeightRatio: z.ZodDefault<z.ZodNumber>;
259
+ baseRoundBandScale: z.ZodDefault<z.ZodNumber>;
260
+ baseNeckScale: z.ZodDefault<z.ZodNumber>;
261
+ baseRoundBandCount: z.ZodDefault<z.ZodNumber>;
262
+ baseRibCount: z.ZodDefault<z.ZodNumber>;
263
+ baseCarvingLevel: z.ZodDefault<z.ZodNumber>;
264
+ basePanelInset: z.ZodDefault<z.ZodNumber>;
265
+ capitalStyle: z.ZodDefault<z.ZodEnum<{
266
+ none: "none";
267
+ simple: "simple";
268
+ "simple-slab": "simple-slab";
269
+ rounded: "rounded";
270
+ stepped: "stepped";
271
+ doric: "doric";
272
+ volute: "volute";
273
+ "ionic-volute": "ionic-volute";
274
+ "leaf-carved": "leaf-carved";
275
+ "corinthian-leaf": "corinthian-leaf";
276
+ "south-indian-bracket": "south-indian-bracket";
277
+ "wood-bracket": "wood-bracket";
278
+ }>>;
279
+ capitalWidthScale: z.ZodDefault<z.ZodNumber>;
280
+ capitalDepthScale: z.ZodDefault<z.ZodNumber>;
281
+ capitalTierCount: z.ZodDefault<z.ZodNumber>;
282
+ capitalStepSpread: z.ZodDefault<z.ZodNumber>;
283
+ capitalBandCount: z.ZodDefault<z.ZodNumber>;
284
+ voluteSize: z.ZodDefault<z.ZodNumber>;
285
+ voluteCount: z.ZodDefault<z.ZodNumber>;
286
+ leafCount: z.ZodDefault<z.ZodNumber>;
287
+ leafRows: z.ZodDefault<z.ZodNumber>;
288
+ bracketDepth: z.ZodDefault<z.ZodNumber>;
289
+ bracketTierCount: z.ZodDefault<z.ZodNumber>;
290
+ pendantCount: z.ZodDefault<z.ZodNumber>;
291
+ capitalCarvingLevel: z.ZodDefault<z.ZodNumber>;
292
+ ringCount: z.ZodDefault<z.ZodNumber>;
293
+ ringPlacement: z.ZodDefault<z.ZodEnum<{
294
+ ends: "ends";
295
+ even: "even";
296
+ top: "top";
297
+ bottom: "bottom";
298
+ }>>;
299
+ ringThickness: z.ZodDefault<z.ZodNumber>;
300
+ ringSpread: z.ZodDefault<z.ZodNumber>;
301
+ fluteCount: z.ZodDefault<z.ZodNumber>;
302
+ fluteDepth: z.ZodDefault<z.ZodNumber>;
303
+ fluteWidth: z.ZodDefault<z.ZodNumber>;
304
+ spiralTwist: z.ZodDefault<z.ZodNumber>;
305
+ spiralRibCount: z.ZodDefault<z.ZodNumber>;
306
+ panelCount: z.ZodDefault<z.ZodNumber>;
307
+ panelInsetDepth: z.ZodDefault<z.ZodNumber>;
308
+ panelShape: z.ZodDefault<z.ZodEnum<{
309
+ rectangle: "rectangle";
310
+ arched: "arched";
311
+ diamond: "diamond";
312
+ }>>;
313
+ latheRingCount: z.ZodDefault<z.ZodNumber>;
314
+ latheRingSpacing: z.ZodDefault<z.ZodEnum<{
315
+ ends: "ends";
316
+ even: "even";
317
+ top: "top";
318
+ bottom: "bottom";
319
+ }>>;
320
+ carvingLevel: z.ZodDefault<z.ZodNumber>;
321
+ carvingPlacement: z.ZodDefault<z.ZodEnum<{
322
+ shaft: "shaft";
323
+ base: "base";
324
+ capital: "capital";
325
+ all: "all";
326
+ }>>;
327
+ lowerBandEnabled: z.ZodDefault<z.ZodBoolean>;
328
+ lowerBandHeight: z.ZodDefault<z.ZodNumber>;
329
+ lowerBandCarvingLevel: z.ZodDefault<z.ZodNumber>;
330
+ dentilCount: z.ZodDefault<z.ZodNumber>;
331
+ beadCount: z.ZodDefault<z.ZodNumber>;
332
+ material: z.ZodOptional<z.ZodObject<{
333
+ id: z.ZodOptional<z.ZodString>;
334
+ preset: z.ZodOptional<z.ZodEnum<{
335
+ white: "white";
336
+ brick: "brick";
337
+ concrete: "concrete";
338
+ wood: "wood";
339
+ glass: "glass";
340
+ metal: "metal";
341
+ plaster: "plaster";
342
+ tile: "tile";
343
+ marble: "marble";
344
+ custom: "custom";
345
+ }>>;
346
+ properties: z.ZodOptional<z.ZodObject<{
347
+ color: z.ZodDefault<z.ZodString>;
348
+ roughness: z.ZodDefault<z.ZodNumber>;
349
+ metalness: z.ZodDefault<z.ZodNumber>;
350
+ opacity: z.ZodDefault<z.ZodNumber>;
351
+ transparent: z.ZodDefault<z.ZodBoolean>;
352
+ side: z.ZodDefault<z.ZodEnum<{
353
+ front: "front";
354
+ back: "back";
355
+ double: "double";
356
+ }>>;
357
+ }, z.core.$strip>>;
358
+ texture: z.ZodOptional<z.ZodObject<{
359
+ url: z.ZodString;
360
+ repeat: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>>;
361
+ scale: z.ZodOptional<z.ZodNumber>;
362
+ }, z.core.$strip>>;
363
+ }, z.core.$strip>>;
364
+ materialPreset: z.ZodOptional<z.ZodString>;
180
365
  }, z.core.$strip>, z.ZodObject<{
181
366
  object: z.ZodDefault<z.ZodLiteral<"node">>;
182
367
  name: z.ZodOptional<z.ZodString>;
@@ -195,10 +380,76 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
195
380
  metadata: z.ZodDefault<z.ZodOptional<z.ZodJSONSchema>>;
196
381
  id: z.ZodDefault<z.ZodTemplateLiteral<`wall_${string}`>>;
197
382
  type: z.ZodDefault<z.ZodLiteral<"wall">>;
198
- children: z.ZodDefault<z.ZodArray<z.ZodDefault<z.ZodTemplateLiteral<`item_${string}`>>>>;
383
+ children: z.ZodDefault<z.ZodArray<z.ZodUnion<readonly [z.ZodDefault<z.ZodTemplateLiteral<`item_${string}`>>, z.ZodDefault<z.ZodTemplateLiteral<`door_${string}`>>, z.ZodDefault<z.ZodTemplateLiteral<`window_${string}`>>]>>>;
199
384
  material: z.ZodOptional<z.ZodObject<{
385
+ id: z.ZodOptional<z.ZodString>;
386
+ preset: z.ZodOptional<z.ZodEnum<{
387
+ white: "white";
388
+ brick: "brick";
389
+ concrete: "concrete";
390
+ wood: "wood";
391
+ glass: "glass";
392
+ metal: "metal";
393
+ plaster: "plaster";
394
+ tile: "tile";
395
+ marble: "marble";
396
+ custom: "custom";
397
+ }>>;
398
+ properties: z.ZodOptional<z.ZodObject<{
399
+ color: z.ZodDefault<z.ZodString>;
400
+ roughness: z.ZodDefault<z.ZodNumber>;
401
+ metalness: z.ZodDefault<z.ZodNumber>;
402
+ opacity: z.ZodDefault<z.ZodNumber>;
403
+ transparent: z.ZodDefault<z.ZodBoolean>;
404
+ side: z.ZodDefault<z.ZodEnum<{
405
+ front: "front";
406
+ back: "back";
407
+ double: "double";
408
+ }>>;
409
+ }, z.core.$strip>>;
410
+ texture: z.ZodOptional<z.ZodObject<{
411
+ url: z.ZodString;
412
+ repeat: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>>;
413
+ scale: z.ZodOptional<z.ZodNumber>;
414
+ }, z.core.$strip>>;
415
+ }, z.core.$strip>>;
416
+ materialPreset: z.ZodOptional<z.ZodString>;
417
+ interiorMaterial: z.ZodOptional<z.ZodObject<{
418
+ id: z.ZodOptional<z.ZodString>;
200
419
  preset: z.ZodOptional<z.ZodEnum<{
420
+ white: "white";
421
+ brick: "brick";
422
+ concrete: "concrete";
423
+ wood: "wood";
424
+ glass: "glass";
425
+ metal: "metal";
426
+ plaster: "plaster";
427
+ tile: "tile";
428
+ marble: "marble";
201
429
  custom: "custom";
430
+ }>>;
431
+ properties: z.ZodOptional<z.ZodObject<{
432
+ color: z.ZodDefault<z.ZodString>;
433
+ roughness: z.ZodDefault<z.ZodNumber>;
434
+ metalness: z.ZodDefault<z.ZodNumber>;
435
+ opacity: z.ZodDefault<z.ZodNumber>;
436
+ transparent: z.ZodDefault<z.ZodBoolean>;
437
+ side: z.ZodDefault<z.ZodEnum<{
438
+ front: "front";
439
+ back: "back";
440
+ double: "double";
441
+ }>>;
442
+ }, z.core.$strip>>;
443
+ texture: z.ZodOptional<z.ZodObject<{
444
+ url: z.ZodString;
445
+ repeat: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>>;
446
+ scale: z.ZodOptional<z.ZodNumber>;
447
+ }, z.core.$strip>>;
448
+ }, z.core.$strip>>;
449
+ interiorMaterialPreset: z.ZodOptional<z.ZodString>;
450
+ exteriorMaterial: z.ZodOptional<z.ZodObject<{
451
+ id: z.ZodOptional<z.ZodString>;
452
+ preset: z.ZodOptional<z.ZodEnum<{
202
453
  white: "white";
203
454
  brick: "brick";
204
455
  concrete: "concrete";
@@ -208,6 +459,7 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
208
459
  plaster: "plaster";
209
460
  tile: "tile";
210
461
  marble: "marble";
462
+ custom: "custom";
211
463
  }>>;
212
464
  properties: z.ZodOptional<z.ZodObject<{
213
465
  color: z.ZodDefault<z.ZodString>;
@@ -227,8 +479,10 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
227
479
  scale: z.ZodOptional<z.ZodNumber>;
228
480
  }, z.core.$strip>>;
229
481
  }, z.core.$strip>>;
482
+ exteriorMaterialPreset: z.ZodOptional<z.ZodString>;
230
483
  thickness: z.ZodOptional<z.ZodNumber>;
231
484
  height: z.ZodOptional<z.ZodNumber>;
485
+ curveOffset: z.ZodOptional<z.ZodNumber>;
232
486
  start: z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>;
233
487
  end: z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>;
234
488
  frontSide: z.ZodDefault<z.ZodEnum<{
@@ -259,8 +513,42 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
259
513
  metadata: z.ZodDefault<z.ZodOptional<z.ZodJSONSchema>>;
260
514
  id: z.ZodDefault<z.ZodTemplateLiteral<`fence_${string}`>>;
261
515
  type: z.ZodDefault<z.ZodLiteral<"fence">>;
516
+ material: z.ZodOptional<z.ZodObject<{
517
+ id: z.ZodOptional<z.ZodString>;
518
+ preset: z.ZodOptional<z.ZodEnum<{
519
+ white: "white";
520
+ brick: "brick";
521
+ concrete: "concrete";
522
+ wood: "wood";
523
+ glass: "glass";
524
+ metal: "metal";
525
+ plaster: "plaster";
526
+ tile: "tile";
527
+ marble: "marble";
528
+ custom: "custom";
529
+ }>>;
530
+ properties: z.ZodOptional<z.ZodObject<{
531
+ color: z.ZodDefault<z.ZodString>;
532
+ roughness: z.ZodDefault<z.ZodNumber>;
533
+ metalness: z.ZodDefault<z.ZodNumber>;
534
+ opacity: z.ZodDefault<z.ZodNumber>;
535
+ transparent: z.ZodDefault<z.ZodBoolean>;
536
+ side: z.ZodDefault<z.ZodEnum<{
537
+ front: "front";
538
+ back: "back";
539
+ double: "double";
540
+ }>>;
541
+ }, z.core.$strip>>;
542
+ texture: z.ZodOptional<z.ZodObject<{
543
+ url: z.ZodString;
544
+ repeat: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>>;
545
+ scale: z.ZodOptional<z.ZodNumber>;
546
+ }, z.core.$strip>>;
547
+ }, z.core.$strip>>;
548
+ materialPreset: z.ZodOptional<z.ZodString>;
262
549
  start: z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>;
263
550
  end: z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>;
551
+ curveOffset: z.ZodOptional<z.ZodNumber>;
264
552
  height: z.ZodDefault<z.ZodNumber>;
265
553
  thickness: z.ZodDefault<z.ZodNumber>;
266
554
  baseHeight: z.ZodDefault<z.ZodNumber>;
@@ -313,12 +601,13 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
313
601
  category: z.ZodString;
314
602
  name: z.ZodString;
315
603
  thumbnail: z.ZodString;
604
+ floorPlanUrl: z.ZodOptional<z.ZodString>;
316
605
  src: z.ZodString;
317
606
  dimensions: z.ZodDefault<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
318
607
  attachTo: z.ZodOptional<z.ZodEnum<{
319
608
  wall: "wall";
320
- "wall-side": "wall-side";
321
609
  ceiling: "ceiling";
610
+ "wall-side": "wall-side";
322
611
  }>>;
323
612
  tags: z.ZodOptional<z.ZodArray<z.ZodString>>;
324
613
  offset: z.ZodDefault<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
@@ -411,8 +700,8 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
411
700
  id: z.ZodDefault<z.ZodTemplateLiteral<`slab_${string}`>>;
412
701
  type: z.ZodDefault<z.ZodLiteral<"slab">>;
413
702
  material: z.ZodOptional<z.ZodObject<{
703
+ id: z.ZodOptional<z.ZodString>;
414
704
  preset: z.ZodOptional<z.ZodEnum<{
415
- custom: "custom";
416
705
  white: "white";
417
706
  brick: "brick";
418
707
  concrete: "concrete";
@@ -422,6 +711,7 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
422
711
  plaster: "plaster";
423
712
  tile: "tile";
424
713
  marble: "marble";
714
+ custom: "custom";
425
715
  }>>;
426
716
  properties: z.ZodOptional<z.ZodObject<{
427
717
  color: z.ZodDefault<z.ZodString>;
@@ -441,9 +731,18 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
441
731
  scale: z.ZodOptional<z.ZodNumber>;
442
732
  }, z.core.$strip>>;
443
733
  }, z.core.$strip>>;
734
+ materialPreset: z.ZodOptional<z.ZodString>;
444
735
  polygon: z.ZodArray<z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>>;
445
736
  holes: z.ZodDefault<z.ZodArray<z.ZodArray<z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>>>>;
737
+ holeMetadata: z.ZodDefault<z.ZodArray<z.ZodObject<{
738
+ source: z.ZodDefault<z.ZodEnum<{
739
+ stair: "stair";
740
+ manual: "manual";
741
+ }>>;
742
+ stairId: z.ZodOptional<z.ZodString>;
743
+ }, z.core.$strip>>>;
446
744
  elevation: z.ZodDefault<z.ZodNumber>;
745
+ autoFromWalls: z.ZodDefault<z.ZodBoolean>;
447
746
  }, z.core.$strip>, z.ZodObject<{
448
747
  object: z.ZodDefault<z.ZodLiteral<"node">>;
449
748
  name: z.ZodOptional<z.ZodString>;
@@ -464,8 +763,8 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
464
763
  type: z.ZodDefault<z.ZodLiteral<"ceiling">>;
465
764
  children: z.ZodDefault<z.ZodArray<z.ZodDefault<z.ZodTemplateLiteral<`item_${string}`>>>>;
466
765
  material: z.ZodOptional<z.ZodObject<{
766
+ id: z.ZodOptional<z.ZodString>;
467
767
  preset: z.ZodOptional<z.ZodEnum<{
468
- custom: "custom";
469
768
  white: "white";
470
769
  brick: "brick";
471
770
  concrete: "concrete";
@@ -475,6 +774,7 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
475
774
  plaster: "plaster";
476
775
  tile: "tile";
477
776
  marble: "marble";
777
+ custom: "custom";
478
778
  }>>;
479
779
  properties: z.ZodOptional<z.ZodObject<{
480
780
  color: z.ZodDefault<z.ZodString>;
@@ -494,9 +794,18 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
494
794
  scale: z.ZodOptional<z.ZodNumber>;
495
795
  }, z.core.$strip>>;
496
796
  }, z.core.$strip>>;
797
+ materialPreset: z.ZodOptional<z.ZodString>;
497
798
  polygon: z.ZodArray<z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>>;
498
799
  holes: z.ZodDefault<z.ZodArray<z.ZodArray<z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>>>>;
800
+ holeMetadata: z.ZodDefault<z.ZodArray<z.ZodObject<{
801
+ source: z.ZodDefault<z.ZodEnum<{
802
+ stair: "stair";
803
+ manual: "manual";
804
+ }>>;
805
+ stairId: z.ZodOptional<z.ZodString>;
806
+ }, z.core.$strip>>>;
499
807
  height: z.ZodDefault<z.ZodNumber>;
808
+ autoFromWalls: z.ZodDefault<z.ZodBoolean>;
500
809
  }, z.core.$strip>, z.ZodObject<{
501
810
  object: z.ZodDefault<z.ZodLiteral<"node">>;
502
811
  name: z.ZodOptional<z.ZodString>;
@@ -516,8 +825,107 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
516
825
  id: z.ZodDefault<z.ZodTemplateLiteral<`roof_${string}`>>;
517
826
  type: z.ZodDefault<z.ZodLiteral<"roof">>;
518
827
  material: z.ZodOptional<z.ZodObject<{
828
+ id: z.ZodOptional<z.ZodString>;
829
+ preset: z.ZodOptional<z.ZodEnum<{
830
+ white: "white";
831
+ brick: "brick";
832
+ concrete: "concrete";
833
+ wood: "wood";
834
+ glass: "glass";
835
+ metal: "metal";
836
+ plaster: "plaster";
837
+ tile: "tile";
838
+ marble: "marble";
839
+ custom: "custom";
840
+ }>>;
841
+ properties: z.ZodOptional<z.ZodObject<{
842
+ color: z.ZodDefault<z.ZodString>;
843
+ roughness: z.ZodDefault<z.ZodNumber>;
844
+ metalness: z.ZodDefault<z.ZodNumber>;
845
+ opacity: z.ZodDefault<z.ZodNumber>;
846
+ transparent: z.ZodDefault<z.ZodBoolean>;
847
+ side: z.ZodDefault<z.ZodEnum<{
848
+ front: "front";
849
+ back: "back";
850
+ double: "double";
851
+ }>>;
852
+ }, z.core.$strip>>;
853
+ texture: z.ZodOptional<z.ZodObject<{
854
+ url: z.ZodString;
855
+ repeat: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>>;
856
+ scale: z.ZodOptional<z.ZodNumber>;
857
+ }, z.core.$strip>>;
858
+ }, z.core.$strip>>;
859
+ materialPreset: z.ZodOptional<z.ZodString>;
860
+ topMaterial: z.ZodOptional<z.ZodObject<{
861
+ id: z.ZodOptional<z.ZodString>;
519
862
  preset: z.ZodOptional<z.ZodEnum<{
863
+ white: "white";
864
+ brick: "brick";
865
+ concrete: "concrete";
866
+ wood: "wood";
867
+ glass: "glass";
868
+ metal: "metal";
869
+ plaster: "plaster";
870
+ tile: "tile";
871
+ marble: "marble";
520
872
  custom: "custom";
873
+ }>>;
874
+ properties: z.ZodOptional<z.ZodObject<{
875
+ color: z.ZodDefault<z.ZodString>;
876
+ roughness: z.ZodDefault<z.ZodNumber>;
877
+ metalness: z.ZodDefault<z.ZodNumber>;
878
+ opacity: z.ZodDefault<z.ZodNumber>;
879
+ transparent: z.ZodDefault<z.ZodBoolean>;
880
+ side: z.ZodDefault<z.ZodEnum<{
881
+ front: "front";
882
+ back: "back";
883
+ double: "double";
884
+ }>>;
885
+ }, z.core.$strip>>;
886
+ texture: z.ZodOptional<z.ZodObject<{
887
+ url: z.ZodString;
888
+ repeat: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>>;
889
+ scale: z.ZodOptional<z.ZodNumber>;
890
+ }, z.core.$strip>>;
891
+ }, z.core.$strip>>;
892
+ topMaterialPreset: z.ZodOptional<z.ZodString>;
893
+ edgeMaterial: z.ZodOptional<z.ZodObject<{
894
+ id: z.ZodOptional<z.ZodString>;
895
+ preset: z.ZodOptional<z.ZodEnum<{
896
+ white: "white";
897
+ brick: "brick";
898
+ concrete: "concrete";
899
+ wood: "wood";
900
+ glass: "glass";
901
+ metal: "metal";
902
+ plaster: "plaster";
903
+ tile: "tile";
904
+ marble: "marble";
905
+ custom: "custom";
906
+ }>>;
907
+ properties: z.ZodOptional<z.ZodObject<{
908
+ color: z.ZodDefault<z.ZodString>;
909
+ roughness: z.ZodDefault<z.ZodNumber>;
910
+ metalness: z.ZodDefault<z.ZodNumber>;
911
+ opacity: z.ZodDefault<z.ZodNumber>;
912
+ transparent: z.ZodDefault<z.ZodBoolean>;
913
+ side: z.ZodDefault<z.ZodEnum<{
914
+ front: "front";
915
+ back: "back";
916
+ double: "double";
917
+ }>>;
918
+ }, z.core.$strip>>;
919
+ texture: z.ZodOptional<z.ZodObject<{
920
+ url: z.ZodString;
921
+ repeat: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>>;
922
+ scale: z.ZodOptional<z.ZodNumber>;
923
+ }, z.core.$strip>>;
924
+ }, z.core.$strip>>;
925
+ edgeMaterialPreset: z.ZodOptional<z.ZodString>;
926
+ wallMaterial: z.ZodOptional<z.ZodObject<{
927
+ id: z.ZodOptional<z.ZodString>;
928
+ preset: z.ZodOptional<z.ZodEnum<{
521
929
  white: "white";
522
930
  brick: "brick";
523
931
  concrete: "concrete";
@@ -527,6 +935,7 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
527
935
  plaster: "plaster";
528
936
  tile: "tile";
529
937
  marble: "marble";
938
+ custom: "custom";
530
939
  }>>;
531
940
  properties: z.ZodOptional<z.ZodObject<{
532
941
  color: z.ZodDefault<z.ZodString>;
@@ -546,6 +955,7 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
546
955
  scale: z.ZodOptional<z.ZodNumber>;
547
956
  }, z.core.$strip>>;
548
957
  }, z.core.$strip>>;
958
+ wallMaterialPreset: z.ZodOptional<z.ZodString>;
549
959
  position: z.ZodDefault<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
550
960
  rotation: z.ZodDefault<z.ZodNumber>;
551
961
  children: z.ZodDefault<z.ZodArray<z.ZodDefault<z.ZodTemplateLiteral<`rseg_${string}`>>>>;
@@ -568,8 +978,8 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
568
978
  id: z.ZodDefault<z.ZodTemplateLiteral<`rseg_${string}`>>;
569
979
  type: z.ZodDefault<z.ZodLiteral<"roof-segment">>;
570
980
  material: z.ZodOptional<z.ZodObject<{
981
+ id: z.ZodOptional<z.ZodString>;
571
982
  preset: z.ZodOptional<z.ZodEnum<{
572
- custom: "custom";
573
983
  white: "white";
574
984
  brick: "brick";
575
985
  concrete: "concrete";
@@ -579,6 +989,7 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
579
989
  plaster: "plaster";
580
990
  tile: "tile";
581
991
  marble: "marble";
992
+ custom: "custom";
582
993
  }>>;
583
994
  properties: z.ZodOptional<z.ZodObject<{
584
995
  color: z.ZodDefault<z.ZodString>;
@@ -598,6 +1009,7 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
598
1009
  scale: z.ZodOptional<z.ZodNumber>;
599
1010
  }, z.core.$strip>>;
600
1011
  }, z.core.$strip>>;
1012
+ materialPreset: z.ZodOptional<z.ZodString>;
601
1013
  position: z.ZodDefault<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
602
1014
  rotation: z.ZodDefault<z.ZodNumber>;
603
1015
  roofType: z.ZodDefault<z.ZodEnum<{
@@ -636,8 +1048,107 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
636
1048
  id: z.ZodDefault<z.ZodTemplateLiteral<`stair_${string}`>>;
637
1049
  type: z.ZodDefault<z.ZodLiteral<"stair">>;
638
1050
  material: z.ZodOptional<z.ZodObject<{
1051
+ id: z.ZodOptional<z.ZodString>;
1052
+ preset: z.ZodOptional<z.ZodEnum<{
1053
+ white: "white";
1054
+ brick: "brick";
1055
+ concrete: "concrete";
1056
+ wood: "wood";
1057
+ glass: "glass";
1058
+ metal: "metal";
1059
+ plaster: "plaster";
1060
+ tile: "tile";
1061
+ marble: "marble";
1062
+ custom: "custom";
1063
+ }>>;
1064
+ properties: z.ZodOptional<z.ZodObject<{
1065
+ color: z.ZodDefault<z.ZodString>;
1066
+ roughness: z.ZodDefault<z.ZodNumber>;
1067
+ metalness: z.ZodDefault<z.ZodNumber>;
1068
+ opacity: z.ZodDefault<z.ZodNumber>;
1069
+ transparent: z.ZodDefault<z.ZodBoolean>;
1070
+ side: z.ZodDefault<z.ZodEnum<{
1071
+ front: "front";
1072
+ back: "back";
1073
+ double: "double";
1074
+ }>>;
1075
+ }, z.core.$strip>>;
1076
+ texture: z.ZodOptional<z.ZodObject<{
1077
+ url: z.ZodString;
1078
+ repeat: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>>;
1079
+ scale: z.ZodOptional<z.ZodNumber>;
1080
+ }, z.core.$strip>>;
1081
+ }, z.core.$strip>>;
1082
+ materialPreset: z.ZodOptional<z.ZodString>;
1083
+ railingMaterial: z.ZodOptional<z.ZodObject<{
1084
+ id: z.ZodOptional<z.ZodString>;
1085
+ preset: z.ZodOptional<z.ZodEnum<{
1086
+ white: "white";
1087
+ brick: "brick";
1088
+ concrete: "concrete";
1089
+ wood: "wood";
1090
+ glass: "glass";
1091
+ metal: "metal";
1092
+ plaster: "plaster";
1093
+ tile: "tile";
1094
+ marble: "marble";
1095
+ custom: "custom";
1096
+ }>>;
1097
+ properties: z.ZodOptional<z.ZodObject<{
1098
+ color: z.ZodDefault<z.ZodString>;
1099
+ roughness: z.ZodDefault<z.ZodNumber>;
1100
+ metalness: z.ZodDefault<z.ZodNumber>;
1101
+ opacity: z.ZodDefault<z.ZodNumber>;
1102
+ transparent: z.ZodDefault<z.ZodBoolean>;
1103
+ side: z.ZodDefault<z.ZodEnum<{
1104
+ front: "front";
1105
+ back: "back";
1106
+ double: "double";
1107
+ }>>;
1108
+ }, z.core.$strip>>;
1109
+ texture: z.ZodOptional<z.ZodObject<{
1110
+ url: z.ZodString;
1111
+ repeat: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>>;
1112
+ scale: z.ZodOptional<z.ZodNumber>;
1113
+ }, z.core.$strip>>;
1114
+ }, z.core.$strip>>;
1115
+ railingMaterialPreset: z.ZodOptional<z.ZodString>;
1116
+ treadMaterial: z.ZodOptional<z.ZodObject<{
1117
+ id: z.ZodOptional<z.ZodString>;
639
1118
  preset: z.ZodOptional<z.ZodEnum<{
1119
+ white: "white";
1120
+ brick: "brick";
1121
+ concrete: "concrete";
1122
+ wood: "wood";
1123
+ glass: "glass";
1124
+ metal: "metal";
1125
+ plaster: "plaster";
1126
+ tile: "tile";
1127
+ marble: "marble";
640
1128
  custom: "custom";
1129
+ }>>;
1130
+ properties: z.ZodOptional<z.ZodObject<{
1131
+ color: z.ZodDefault<z.ZodString>;
1132
+ roughness: z.ZodDefault<z.ZodNumber>;
1133
+ metalness: z.ZodDefault<z.ZodNumber>;
1134
+ opacity: z.ZodDefault<z.ZodNumber>;
1135
+ transparent: z.ZodDefault<z.ZodBoolean>;
1136
+ side: z.ZodDefault<z.ZodEnum<{
1137
+ front: "front";
1138
+ back: "back";
1139
+ double: "double";
1140
+ }>>;
1141
+ }, z.core.$strip>>;
1142
+ texture: z.ZodOptional<z.ZodObject<{
1143
+ url: z.ZodString;
1144
+ repeat: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>>;
1145
+ scale: z.ZodOptional<z.ZodNumber>;
1146
+ }, z.core.$strip>>;
1147
+ }, z.core.$strip>>;
1148
+ treadMaterialPreset: z.ZodOptional<z.ZodString>;
1149
+ sideMaterial: z.ZodOptional<z.ZodObject<{
1150
+ id: z.ZodOptional<z.ZodString>;
1151
+ preset: z.ZodOptional<z.ZodEnum<{
641
1152
  white: "white";
642
1153
  brick: "brick";
643
1154
  concrete: "concrete";
@@ -647,6 +1158,7 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
647
1158
  plaster: "plaster";
648
1159
  tile: "tile";
649
1160
  marble: "marble";
1161
+ custom: "custom";
650
1162
  }>>;
651
1163
  properties: z.ZodOptional<z.ZodObject<{
652
1164
  color: z.ZodDefault<z.ZodString>;
@@ -666,13 +1178,21 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
666
1178
  scale: z.ZodOptional<z.ZodNumber>;
667
1179
  }, z.core.$strip>>;
668
1180
  }, z.core.$strip>>;
1181
+ sideMaterialPreset: z.ZodOptional<z.ZodString>;
669
1182
  position: z.ZodDefault<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
670
1183
  rotation: z.ZodDefault<z.ZodNumber>;
671
1184
  stairType: z.ZodDefault<z.ZodEnum<{
672
1185
  straight: "straight";
673
- curved: "curved";
674
1186
  spiral: "spiral";
1187
+ curved: "curved";
1188
+ }>>;
1189
+ fromLevelId: z.ZodDefault<z.ZodNullable<z.ZodString>>;
1190
+ toLevelId: z.ZodDefault<z.ZodNullable<z.ZodString>>;
1191
+ slabOpeningMode: z.ZodDefault<z.ZodEnum<{
1192
+ none: "none";
1193
+ destination: "destination";
675
1194
  }>>;
1195
+ openingOffset: z.ZodDefault<z.ZodNumber>;
676
1196
  width: z.ZodDefault<z.ZodNumber>;
677
1197
  totalRise: z.ZodDefault<z.ZodNumber>;
678
1198
  stepCount: z.ZodDefault<z.ZodNumber>;
@@ -714,8 +1234,8 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
714
1234
  id: z.ZodDefault<z.ZodTemplateLiteral<`sseg_${string}`>>;
715
1235
  type: z.ZodDefault<z.ZodLiteral<"stair-segment">>;
716
1236
  material: z.ZodOptional<z.ZodObject<{
1237
+ id: z.ZodOptional<z.ZodString>;
717
1238
  preset: z.ZodOptional<z.ZodEnum<{
718
- custom: "custom";
719
1239
  white: "white";
720
1240
  brick: "brick";
721
1241
  concrete: "concrete";
@@ -725,6 +1245,7 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
725
1245
  plaster: "plaster";
726
1246
  tile: "tile";
727
1247
  marble: "marble";
1248
+ custom: "custom";
728
1249
  }>>;
729
1250
  properties: z.ZodOptional<z.ZodObject<{
730
1251
  color: z.ZodDefault<z.ZodString>;
@@ -744,6 +1265,7 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
744
1265
  scale: z.ZodOptional<z.ZodNumber>;
745
1266
  }, z.core.$strip>>;
746
1267
  }, z.core.$strip>>;
1268
+ materialPreset: z.ZodOptional<z.ZodString>;
747
1269
  position: z.ZodDefault<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
748
1270
  rotation: z.ZodDefault<z.ZodNumber>;
749
1271
  segmentType: z.ZodDefault<z.ZodEnum<{
@@ -755,9 +1277,9 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
755
1277
  height: z.ZodDefault<z.ZodNumber>;
756
1278
  stepCount: z.ZodDefault<z.ZodNumber>;
757
1279
  attachmentSide: z.ZodDefault<z.ZodEnum<{
1280
+ front: "front";
758
1281
  left: "left";
759
1282
  right: "right";
760
- front: "front";
761
1283
  }>>;
762
1284
  fillToFloor: z.ZodDefault<z.ZodBoolean>;
763
1285
  thickness: z.ZodDefault<z.ZodNumber>;
@@ -807,6 +1329,34 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
807
1329
  rotation: z.ZodDefault<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
808
1330
  scale: z.ZodDefault<z.ZodNumber>;
809
1331
  opacity: z.ZodDefault<z.ZodNumber>;
1332
+ scaleReference: z.ZodDefault<z.ZodNullable<z.ZodObject<{
1333
+ start: z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>;
1334
+ end: z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>;
1335
+ realLengthMeters: z.ZodNumber;
1336
+ measuredLengthUnits: z.ZodNumber;
1337
+ metersPerUnit: z.ZodNumber;
1338
+ label: z.ZodString;
1339
+ }, z.core.$strip>>>;
1340
+ }, z.core.$strip>, z.ZodObject<{
1341
+ object: z.ZodDefault<z.ZodLiteral<"node">>;
1342
+ name: z.ZodOptional<z.ZodString>;
1343
+ parentId: z.ZodDefault<z.ZodNullable<z.ZodString>>;
1344
+ visible: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
1345
+ camera: z.ZodOptional<z.ZodObject<{
1346
+ position: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
1347
+ target: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
1348
+ mode: z.ZodDefault<z.ZodEnum<{
1349
+ perspective: "perspective";
1350
+ orthographic: "orthographic";
1351
+ }>>;
1352
+ fov: z.ZodOptional<z.ZodNumber>;
1353
+ zoom: z.ZodOptional<z.ZodNumber>;
1354
+ }, z.core.$strip>>;
1355
+ metadata: z.ZodDefault<z.ZodOptional<z.ZodJSONSchema>>;
1356
+ id: z.ZodDefault<z.ZodTemplateLiteral<`spawn_${string}`>>;
1357
+ type: z.ZodDefault<z.ZodLiteral<"spawn">>;
1358
+ position: z.ZodDefault<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
1359
+ rotation: z.ZodDefault<z.ZodNumber>;
810
1360
  }, z.core.$strip>, z.ZodObject<{
811
1361
  object: z.ZodDefault<z.ZodLiteral<"node">>;
812
1362
  name: z.ZodOptional<z.ZodString>;
@@ -826,8 +1376,8 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
826
1376
  id: z.ZodDefault<z.ZodTemplateLiteral<`window_${string}`>>;
827
1377
  type: z.ZodDefault<z.ZodLiteral<"window">>;
828
1378
  material: z.ZodOptional<z.ZodObject<{
1379
+ id: z.ZodOptional<z.ZodString>;
829
1380
  preset: z.ZodOptional<z.ZodEnum<{
830
- custom: "custom";
831
1381
  white: "white";
832
1382
  brick: "brick";
833
1383
  concrete: "concrete";
@@ -837,6 +1387,7 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
837
1387
  plaster: "plaster";
838
1388
  tile: "tile";
839
1389
  marble: "marble";
1390
+ custom: "custom";
840
1391
  }>>;
841
1392
  properties: z.ZodOptional<z.ZodObject<{
842
1393
  color: z.ZodDefault<z.ZodString>;
@@ -865,6 +1416,48 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
865
1416
  wallId: z.ZodOptional<z.ZodString>;
866
1417
  width: z.ZodDefault<z.ZodNumber>;
867
1418
  height: z.ZodDefault<z.ZodNumber>;
1419
+ openingKind: z.ZodDefault<z.ZodEnum<{
1420
+ window: "window";
1421
+ opening: "opening";
1422
+ }>>;
1423
+ windowType: z.ZodDefault<z.ZodEnum<{
1424
+ sliding: "sliding";
1425
+ fixed: "fixed";
1426
+ casement: "casement";
1427
+ awning: "awning";
1428
+ hopper: "hopper";
1429
+ "single-hung": "single-hung";
1430
+ "double-hung": "double-hung";
1431
+ bay: "bay";
1432
+ bow: "bow";
1433
+ louvered: "louvered";
1434
+ }>>;
1435
+ operationState: z.ZodDefault<z.ZodNumber>;
1436
+ awningDirection: z.ZodDefault<z.ZodEnum<{
1437
+ up: "up";
1438
+ down: "down";
1439
+ }>>;
1440
+ casementStyle: z.ZodDefault<z.ZodEnum<{
1441
+ french: "french";
1442
+ single: "single";
1443
+ }>>;
1444
+ hingesSide: z.ZodDefault<z.ZodEnum<{
1445
+ left: "left";
1446
+ right: "right";
1447
+ }>>;
1448
+ openingShape: z.ZodDefault<z.ZodEnum<{
1449
+ rectangle: "rectangle";
1450
+ rounded: "rounded";
1451
+ arch: "arch";
1452
+ }>>;
1453
+ openingRadiusMode: z.ZodDefault<z.ZodEnum<{
1454
+ all: "all";
1455
+ individual: "individual";
1456
+ }>>;
1457
+ openingCornerRadii: z.ZodDefault<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
1458
+ cornerRadius: z.ZodDefault<z.ZodNumber>;
1459
+ archHeight: z.ZodDefault<z.ZodNumber>;
1460
+ openingRevealRadius: z.ZodDefault<z.ZodNumber>;
868
1461
  frameThickness: z.ZodDefault<z.ZodNumber>;
869
1462
  frameDepth: z.ZodDefault<z.ZodNumber>;
870
1463
  columnRatios: z.ZodDefault<z.ZodArray<z.ZodNumber>>;
@@ -893,8 +1486,8 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
893
1486
  id: z.ZodDefault<z.ZodTemplateLiteral<`door_${string}`>>;
894
1487
  type: z.ZodDefault<z.ZodLiteral<"door">>;
895
1488
  material: z.ZodOptional<z.ZodObject<{
1489
+ id: z.ZodOptional<z.ZodString>;
896
1490
  preset: z.ZodOptional<z.ZodEnum<{
897
- custom: "custom";
898
1491
  white: "white";
899
1492
  brick: "brick";
900
1493
  concrete: "concrete";
@@ -904,6 +1497,7 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
904
1497
  plaster: "plaster";
905
1498
  tile: "tile";
906
1499
  marble: "marble";
1500
+ custom: "custom";
907
1501
  }>>;
908
1502
  properties: z.ZodOptional<z.ZodObject<{
909
1503
  color: z.ZodDefault<z.ZodString>;
@@ -932,6 +1526,52 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
932
1526
  wallId: z.ZodOptional<z.ZodString>;
933
1527
  width: z.ZodDefault<z.ZodNumber>;
934
1528
  height: z.ZodDefault<z.ZodNumber>;
1529
+ doorCategory: z.ZodDefault<z.ZodEnum<{
1530
+ interior: "interior";
1531
+ garage: "garage";
1532
+ }>>;
1533
+ doorType: z.ZodDefault<z.ZodEnum<{
1534
+ double: "double";
1535
+ hinged: "hinged";
1536
+ french: "french";
1537
+ folding: "folding";
1538
+ pocket: "pocket";
1539
+ barn: "barn";
1540
+ sliding: "sliding";
1541
+ "garage-sectional": "garage-sectional";
1542
+ "garage-rollup": "garage-rollup";
1543
+ "garage-tiltup": "garage-tiltup";
1544
+ }>>;
1545
+ leafCount: z.ZodDefault<z.ZodUnion<readonly [z.ZodLiteral<1>, z.ZodLiteral<2>, z.ZodLiteral<3>, z.ZodLiteral<4>]>>;
1546
+ operationState: z.ZodDefault<z.ZodNumber>;
1547
+ slideDirection: z.ZodDefault<z.ZodEnum<{
1548
+ left: "left";
1549
+ right: "right";
1550
+ }>>;
1551
+ trackStyle: z.ZodDefault<z.ZodEnum<{
1552
+ visible: "visible";
1553
+ none: "none";
1554
+ pocket: "pocket";
1555
+ overhead: "overhead";
1556
+ }>>;
1557
+ garagePanelCount: z.ZodDefault<z.ZodNumber>;
1558
+ openingKind: z.ZodDefault<z.ZodEnum<{
1559
+ door: "door";
1560
+ opening: "opening";
1561
+ }>>;
1562
+ openingShape: z.ZodDefault<z.ZodEnum<{
1563
+ rectangle: "rectangle";
1564
+ rounded: "rounded";
1565
+ arch: "arch";
1566
+ }>>;
1567
+ openingRadiusMode: z.ZodDefault<z.ZodEnum<{
1568
+ all: "all";
1569
+ individual: "individual";
1570
+ }>>;
1571
+ openingTopRadii: z.ZodDefault<z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>>;
1572
+ cornerRadius: z.ZodDefault<z.ZodNumber>;
1573
+ archHeight: z.ZodDefault<z.ZodNumber>;
1574
+ openingRevealRadius: z.ZodDefault<z.ZodNumber>;
935
1575
  frameThickness: z.ZodDefault<z.ZodNumber>;
936
1576
  frameDepth: z.ZodDefault<z.ZodNumber>;
937
1577
  threshold: z.ZodDefault<z.ZodBoolean>;
@@ -944,6 +1584,7 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
944
1584
  inward: "inward";
945
1585
  outward: "outward";
946
1586
  }>>;
1587
+ swingAngle: z.ZodDefault<z.ZodNumber>;
947
1588
  segments: z.ZodDefault<z.ZodArray<z.ZodObject<{
948
1589
  type: z.ZodEnum<{
949
1590
  glass: "glass";