@pascal-app/core 0.9.1 → 0.9.2

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 (321) hide show
  1. package/dist/events/bus.d.ts +30 -2
  2. package/dist/events/bus.d.ts.map +1 -1
  3. package/dist/hooks/scene-registry/item-clip-registry.d.ts +18 -0
  4. package/dist/hooks/scene-registry/item-clip-registry.d.ts.map +1 -0
  5. package/dist/hooks/scene-registry/item-clip-registry.js +10 -0
  6. package/dist/hooks/scene-registry/scene-registry.d.ts +8 -1
  7. package/dist/hooks/scene-registry/scene-registry.d.ts.map +1 -1
  8. package/dist/hooks/scene-registry/scene-registry.js +27 -1
  9. package/dist/hooks/scene-registry/scene-registry.test.d.ts +2 -0
  10. package/dist/hooks/scene-registry/scene-registry.test.d.ts.map +1 -0
  11. package/dist/hooks/scene-registry/scene-registry.test.js +26 -0
  12. package/dist/hooks/spatial-grid/floor-placed-elevation.test.js +93 -0
  13. package/dist/hooks/spatial-grid/spatial-grid-manager.d.ts +69 -12
  14. package/dist/hooks/spatial-grid/spatial-grid-manager.d.ts.map +1 -1
  15. package/dist/hooks/spatial-grid/spatial-grid-manager.js +476 -195
  16. package/dist/hooks/spatial-grid/spatial-grid-sync.d.ts.map +1 -1
  17. package/dist/hooks/spatial-grid/spatial-grid-sync.js +19 -1
  18. package/dist/hooks/spatial-grid/wall-slab-overlap.test.d.ts +2 -0
  19. package/dist/hooks/spatial-grid/wall-slab-overlap.test.d.ts.map +1 -0
  20. package/dist/hooks/spatial-grid/wall-slab-overlap.test.js +363 -0
  21. package/dist/index.d.ts +16 -6
  22. package/dist/index.d.ts.map +1 -1
  23. package/dist/index.js +15 -5
  24. package/dist/lib/level-name.d.ts +4 -0
  25. package/dist/lib/level-name.d.ts.map +1 -0
  26. package/dist/lib/level-name.js +10 -0
  27. package/dist/lib/measurement-geometry.d.ts +19 -0
  28. package/dist/lib/measurement-geometry.d.ts.map +1 -0
  29. package/dist/lib/measurement-geometry.js +232 -0
  30. package/dist/lib/measurement-geometry.test.d.ts +2 -0
  31. package/dist/lib/measurement-geometry.test.d.ts.map +1 -0
  32. package/dist/lib/measurement-geometry.test.js +102 -0
  33. package/dist/lib/polygon-geometry.d.ts +0 -1
  34. package/dist/lib/polygon-geometry.d.ts.map +1 -1
  35. package/dist/lib/polygon-geometry.js +0 -18
  36. package/dist/lib/selection-proxy.d.ts +4 -0
  37. package/dist/lib/selection-proxy.d.ts.map +1 -0
  38. package/dist/lib/selection-proxy.js +12 -0
  39. package/dist/lib/slab-polygon.d.ts +31 -2
  40. package/dist/lib/slab-polygon.d.ts.map +1 -1
  41. package/dist/lib/slab-polygon.js +525 -31
  42. package/dist/lib/slab-polygon.test.d.ts +2 -0
  43. package/dist/lib/slab-polygon.test.d.ts.map +1 -0
  44. package/dist/lib/slab-polygon.test.js +635 -0
  45. package/dist/lib/slots.d.ts +14 -0
  46. package/dist/lib/slots.d.ts.map +1 -0
  47. package/dist/lib/slots.js +26 -0
  48. package/dist/lib/space-detection.d.ts +25 -2
  49. package/dist/lib/space-detection.d.ts.map +1 -1
  50. package/dist/lib/space-detection.js +414 -118
  51. package/dist/lib/space-detection.test.js +301 -2
  52. package/dist/lib/wall-distance.d.ts +60 -0
  53. package/dist/lib/wall-distance.d.ts.map +1 -0
  54. package/dist/lib/wall-distance.js +85 -0
  55. package/dist/lib/zone-quantities.d.ts +21 -0
  56. package/dist/lib/zone-quantities.d.ts.map +1 -0
  57. package/dist/lib/zone-quantities.js +183 -0
  58. package/dist/lib/zone-quantities.test.d.ts +2 -0
  59. package/dist/lib/zone-quantities.test.d.ts.map +1 -0
  60. package/dist/lib/zone-quantities.test.js +82 -0
  61. package/dist/material-library.d.ts +20 -1
  62. package/dist/material-library.d.ts.map +1 -1
  63. package/dist/material-library.js +2181 -441
  64. package/dist/registry/handles.d.ts +75 -2
  65. package/dist/registry/handles.d.ts.map +1 -1
  66. package/dist/registry/index.d.ts +3 -3
  67. package/dist/registry/index.d.ts.map +1 -1
  68. package/dist/registry/index.js +1 -1
  69. package/dist/registry/registry.d.ts +46 -3
  70. package/dist/registry/registry.d.ts.map +1 -1
  71. package/dist/registry/registry.js +82 -1
  72. package/dist/registry/registry.test.js +14 -1
  73. package/dist/registry/subtree.d.ts.map +1 -1
  74. package/dist/registry/subtree.js +4 -0
  75. package/dist/registry/subtree.test.js +30 -0
  76. package/dist/registry/types.d.ts +717 -38
  77. package/dist/registry/types.d.ts.map +1 -1
  78. package/dist/schema/index.d.ts +21 -5
  79. package/dist/schema/index.d.ts.map +1 -1
  80. package/dist/schema/index.js +17 -3
  81. package/dist/schema/material.d.ts +3 -2
  82. package/dist/schema/material.d.ts.map +1 -1
  83. package/dist/schema/material.js +7 -5
  84. package/dist/schema/material.test.d.ts +2 -0
  85. package/dist/schema/material.test.d.ts.map +1 -0
  86. package/dist/schema/material.test.js +43 -0
  87. package/dist/schema/nodes/box-vent.d.ts +2 -2
  88. package/dist/schema/nodes/cabinet.d.ts +534 -0
  89. package/dist/schema/nodes/cabinet.d.ts.map +1 -0
  90. package/dist/schema/nodes/cabinet.js +137 -0
  91. package/dist/schema/nodes/ceiling.d.ts +3 -2
  92. package/dist/schema/nodes/ceiling.d.ts.map +1 -1
  93. package/dist/schema/nodes/ceiling.js +4 -0
  94. package/dist/schema/nodes/chimney.d.ts +4 -4
  95. package/dist/schema/nodes/column.d.ts +3 -2
  96. package/dist/schema/nodes/column.d.ts.map +1 -1
  97. package/dist/schema/nodes/column.js +3 -0
  98. package/dist/schema/nodes/cupola.d.ts +2 -2
  99. package/dist/schema/nodes/door.d.ts +13 -5
  100. package/dist/schema/nodes/door.d.ts.map +1 -1
  101. package/dist/schema/nodes/door.js +12 -0
  102. package/dist/schema/nodes/dormer.d.ts +8 -8
  103. package/dist/schema/nodes/dormer.js +1 -1
  104. package/dist/schema/nodes/downspout.d.ts +2 -2
  105. package/dist/schema/nodes/duct-fitting.d.ts +91 -0
  106. package/dist/schema/nodes/duct-fitting.d.ts.map +1 -0
  107. package/dist/schema/nodes/duct-fitting.js +92 -0
  108. package/dist/schema/nodes/duct-segment.d.ts +61 -0
  109. package/dist/schema/nodes/duct-segment.d.ts.map +1 -0
  110. package/dist/schema/nodes/duct-segment.js +73 -0
  111. package/dist/schema/nodes/duct-terminal.d.ts +57 -0
  112. package/dist/schema/nodes/duct-terminal.d.ts.map +1 -0
  113. package/dist/schema/nodes/duct-terminal.js +51 -0
  114. package/dist/schema/nodes/elevator.d.ts +3 -2
  115. package/dist/schema/nodes/elevator.d.ts.map +1 -1
  116. package/dist/schema/nodes/elevator.js +3 -0
  117. package/dist/schema/nodes/eyebrow-vent.d.ts +2 -2
  118. package/dist/schema/nodes/fence.d.ts +18 -2
  119. package/dist/schema/nodes/fence.d.ts.map +1 -1
  120. package/dist/schema/nodes/fence.js +25 -2
  121. package/dist/schema/nodes/gutter.d.ts +2 -2
  122. package/dist/schema/nodes/hvac-equipment.d.ts +63 -0
  123. package/dist/schema/nodes/hvac-equipment.d.ts.map +1 -0
  124. package/dist/schema/nodes/hvac-equipment.js +55 -0
  125. package/dist/schema/nodes/item.d.ts +8 -0
  126. package/dist/schema/nodes/item.d.ts.map +1 -1
  127. package/dist/schema/nodes/item.js +11 -0
  128. package/dist/schema/nodes/level.d.ts +1 -1
  129. package/dist/schema/nodes/level.d.ts.map +1 -1
  130. package/dist/schema/nodes/level.js +2 -0
  131. package/dist/schema/nodes/lineset.d.ts +42 -0
  132. package/dist/schema/nodes/lineset.d.ts.map +1 -0
  133. package/dist/schema/nodes/lineset.js +38 -0
  134. package/dist/schema/nodes/liquid-line.d.ts +34 -0
  135. package/dist/schema/nodes/liquid-line.d.ts.map +1 -0
  136. package/dist/schema/nodes/liquid-line.js +24 -0
  137. package/dist/schema/nodes/measurement.d.ts +306 -0
  138. package/dist/schema/nodes/measurement.d.ts.map +1 -0
  139. package/dist/schema/nodes/measurement.js +87 -0
  140. package/dist/schema/nodes/measurement.test.d.ts +2 -0
  141. package/dist/schema/nodes/measurement.test.d.ts.map +1 -0
  142. package/dist/schema/nodes/measurement.test.js +139 -0
  143. package/dist/schema/nodes/pipe-fitting.d.ts +56 -0
  144. package/dist/schema/nodes/pipe-fitting.d.ts.map +1 -0
  145. package/dist/schema/nodes/pipe-fitting.js +45 -0
  146. package/dist/schema/nodes/pipe-segment.d.ts +48 -0
  147. package/dist/schema/nodes/pipe-segment.d.ts.map +1 -0
  148. package/dist/schema/nodes/pipe-segment.js +36 -0
  149. package/dist/schema/nodes/pipe-trap.d.ts +43 -0
  150. package/dist/schema/nodes/pipe-trap.d.ts.map +1 -0
  151. package/dist/schema/nodes/pipe-trap.js +36 -0
  152. package/dist/schema/nodes/ridge-vent-defaults.test.d.ts +2 -0
  153. package/dist/schema/nodes/ridge-vent-defaults.test.d.ts.map +1 -0
  154. package/dist/schema/nodes/ridge-vent-defaults.test.js +205 -0
  155. package/dist/schema/nodes/ridge-vent.d.ts +18 -3
  156. package/dist/schema/nodes/ridge-vent.d.ts.map +1 -1
  157. package/dist/schema/nodes/ridge-vent.js +221 -3
  158. package/dist/schema/nodes/roof-segment-shape.d.ts +90 -0
  159. package/dist/schema/nodes/roof-segment-shape.d.ts.map +1 -0
  160. package/dist/schema/nodes/roof-segment-shape.js +318 -0
  161. package/dist/schema/nodes/roof-segment-shape.test.d.ts +2 -0
  162. package/dist/schema/nodes/roof-segment-shape.test.d.ts.map +1 -0
  163. package/dist/schema/nodes/roof-segment-shape.test.js +175 -0
  164. package/dist/schema/nodes/roof-segment-surface.test.d.ts +2 -0
  165. package/dist/schema/nodes/roof-segment-surface.test.d.ts.map +1 -0
  166. package/dist/schema/nodes/roof-segment-surface.test.js +48 -0
  167. package/dist/schema/nodes/roof-segment-trim.test.d.ts +2 -0
  168. package/dist/schema/nodes/roof-segment-trim.test.d.ts.map +1 -0
  169. package/dist/schema/nodes/roof-segment-trim.test.js +107 -0
  170. package/dist/schema/nodes/roof-segment-walls.d.ts +101 -0
  171. package/dist/schema/nodes/roof-segment-walls.d.ts.map +1 -0
  172. package/dist/schema/nodes/roof-segment-walls.js +330 -0
  173. package/dist/schema/nodes/roof-segment-walls.test.d.ts +2 -0
  174. package/dist/schema/nodes/roof-segment-walls.test.d.ts.map +1 -0
  175. package/dist/schema/nodes/roof-segment-walls.test.js +92 -0
  176. package/dist/schema/nodes/roof-segment.d.ts +84 -8
  177. package/dist/schema/nodes/roof-segment.d.ts.map +1 -1
  178. package/dist/schema/nodes/roof-segment.js +290 -5
  179. package/dist/schema/nodes/roof.d.ts +8 -8
  180. package/dist/schema/nodes/shelf.d.ts +3 -2
  181. package/dist/schema/nodes/shelf.d.ts.map +1 -1
  182. package/dist/schema/nodes/shelf.js +6 -0
  183. package/dist/schema/nodes/skylight.d.ts +10 -10
  184. package/dist/schema/nodes/slab.d.ts +3 -2
  185. package/dist/schema/nodes/slab.d.ts.map +1 -1
  186. package/dist/schema/nodes/slab.js +4 -0
  187. package/dist/schema/nodes/solar-panel.d.ts +4 -4
  188. package/dist/schema/nodes/stair-segment.d.ts +4 -4
  189. package/dist/schema/nodes/stair.d.ts +13 -12
  190. package/dist/schema/nodes/stair.d.ts.map +1 -1
  191. package/dist/schema/nodes/stair.js +3 -0
  192. package/dist/schema/nodes/turbine-vent.d.ts +2 -2
  193. package/dist/schema/nodes/wall.d.ts +245 -6
  194. package/dist/schema/nodes/wall.d.ts.map +1 -1
  195. package/dist/schema/nodes/wall.js +257 -0
  196. package/dist/schema/nodes/wall.test.d.ts +2 -0
  197. package/dist/schema/nodes/wall.test.d.ts.map +1 -0
  198. package/dist/schema/nodes/wall.test.js +208 -0
  199. package/dist/schema/nodes/window.d.ts +11 -3
  200. package/dist/schema/nodes/window.d.ts.map +1 -1
  201. package/dist/schema/nodes/window.js +12 -0
  202. package/dist/schema/nodes/zone.d.ts +2 -0
  203. package/dist/schema/nodes/zone.d.ts.map +1 -1
  204. package/dist/schema/nodes/zone.js +6 -0
  205. package/dist/schema/scene-material.d.ts +41 -0
  206. package/dist/schema/scene-material.d.ts.map +1 -0
  207. package/dist/schema/scene-material.js +9 -0
  208. package/dist/schema/types.d.ts +1089 -94
  209. package/dist/schema/types.d.ts.map +1 -1
  210. package/dist/schema/types.js +23 -0
  211. package/dist/services/alignment-anchors.d.ts.map +1 -1
  212. package/dist/services/alignment-anchors.js +30 -1
  213. package/dist/services/alignment.d.ts +5 -0
  214. package/dist/services/alignment.d.ts.map +1 -1
  215. package/dist/services/alignment.js +2 -0
  216. package/dist/services/hosting.d.ts +8 -0
  217. package/dist/services/hosting.d.ts.map +1 -1
  218. package/dist/services/hosting.js +13 -4
  219. package/dist/services/hosting.test.js +32 -1
  220. package/dist/services/index.d.ts +8 -2
  221. package/dist/services/index.d.ts.map +1 -1
  222. package/dist/services/index.js +8 -2
  223. package/dist/services/level-height.d.ts +28 -0
  224. package/dist/services/level-height.d.ts.map +1 -0
  225. package/dist/services/level-height.js +62 -0
  226. package/dist/services/opening-guides.d.ts +141 -0
  227. package/dist/services/opening-guides.d.ts.map +1 -0
  228. package/dist/services/opening-guides.js +267 -0
  229. package/dist/services/opening-guides.test.d.ts +2 -0
  230. package/dist/services/opening-guides.test.d.ts.map +1 -0
  231. package/dist/services/opening-guides.test.js +208 -0
  232. package/dist/services/port-connectivity.d.ts +115 -0
  233. package/dist/services/port-connectivity.d.ts.map +1 -0
  234. package/dist/services/port-connectivity.js +300 -0
  235. package/dist/services/port-connectivity.test.d.ts +2 -0
  236. package/dist/services/port-connectivity.test.d.ts.map +1 -0
  237. package/dist/services/port-connectivity.test.js +297 -0
  238. package/dist/services/riser-diagram.d.ts +40 -0
  239. package/dist/services/riser-diagram.d.ts.map +1 -0
  240. package/dist/services/riser-diagram.js +110 -0
  241. package/dist/services/riser-diagram.test.d.ts +2 -0
  242. package/dist/services/riser-diagram.test.d.ts.map +1 -0
  243. package/dist/services/riser-diagram.test.js +66 -0
  244. package/dist/services/snap.d.ts +9 -1
  245. package/dist/services/snap.d.ts.map +1 -1
  246. package/dist/services/snap.js +21 -1
  247. package/dist/services/snap.test.js +43 -1
  248. package/dist/services/system-graph.d.ts +30 -0
  249. package/dist/services/system-graph.d.ts.map +1 -0
  250. package/dist/services/system-graph.js +164 -0
  251. package/dist/services/system-graph.test.d.ts +2 -0
  252. package/dist/services/system-graph.test.d.ts.map +1 -0
  253. package/dist/services/system-graph.test.js +138 -0
  254. package/dist/services/validate-dwv.d.ts +32 -0
  255. package/dist/services/validate-dwv.d.ts.map +1 -0
  256. package/dist/services/validate-dwv.js +118 -0
  257. package/dist/services/validate-dwv.test.d.ts +2 -0
  258. package/dist/services/validate-dwv.test.d.ts.map +1 -0
  259. package/dist/services/validate-dwv.test.js +109 -0
  260. package/dist/store/actions/node-actions.d.ts.map +1 -1
  261. package/dist/store/actions/node-actions.js +94 -1
  262. package/dist/store/actions/ridge-vent-update.test.d.ts +2 -0
  263. package/dist/store/actions/ridge-vent-update.test.d.ts.map +1 -0
  264. package/dist/store/actions/ridge-vent-update.test.js +264 -0
  265. package/dist/store/history-control.d.ts +11 -0
  266. package/dist/store/history-control.d.ts.map +1 -1
  267. package/dist/store/history-control.js +33 -0
  268. package/dist/store/use-scene-dirty-tracking.test.d.ts +2 -0
  269. package/dist/store/use-scene-dirty-tracking.test.d.ts.map +1 -0
  270. package/dist/store/use-scene-dirty-tracking.test.js +68 -0
  271. package/dist/store/use-scene-measurement-roundtrip.test.d.ts +2 -0
  272. package/dist/store/use-scene-measurement-roundtrip.test.d.ts.map +1 -0
  273. package/dist/store/use-scene-measurement-roundtrip.test.js +97 -0
  274. package/dist/store/use-scene-plugins.test.d.ts +2 -0
  275. package/dist/store/use-scene-plugins.test.d.ts.map +1 -0
  276. package/dist/store/use-scene-plugins.test.js +51 -0
  277. package/dist/store/use-scene-wall-slot-migration.test.d.ts +2 -0
  278. package/dist/store/use-scene-wall-slot-migration.test.d.ts.map +1 -0
  279. package/dist/store/use-scene-wall-slot-migration.test.js +210 -0
  280. package/dist/store/use-scene-window-migration.test.d.ts +2 -0
  281. package/dist/store/use-scene-window-migration.test.d.ts.map +1 -0
  282. package/dist/store/use-scene-window-migration.test.js +85 -0
  283. package/dist/store/use-scene.d.ts +17 -2
  284. package/dist/store/use-scene.d.ts.map +1 -1
  285. package/dist/store/use-scene.js +358 -51
  286. package/dist/systems/elevator/elevator-service.js +1 -1
  287. package/dist/systems/fence/fence-centerline.d.ts +12 -0
  288. package/dist/systems/fence/fence-centerline.d.ts.map +1 -0
  289. package/dist/systems/fence/fence-centerline.js +37 -0
  290. package/dist/systems/fence/fence-spline.d.ts +39 -0
  291. package/dist/systems/fence/fence-spline.d.ts.map +1 -0
  292. package/dist/systems/fence/fence-spline.js +196 -0
  293. package/dist/systems/fence/fence-spline.test.d.ts +2 -0
  294. package/dist/systems/fence/fence-spline.test.d.ts.map +1 -0
  295. package/dist/systems/fence/fence-spline.test.js +136 -0
  296. package/dist/systems/stair/stair-footprint.d.ts.map +1 -1
  297. package/dist/systems/stair/stair-footprint.js +21 -11
  298. package/dist/systems/stair/stair-opening-preview.d.ts +1139 -469
  299. package/dist/systems/stair/stair-opening-preview.d.ts.map +1 -1
  300. package/dist/systems/stair/stair-opening-sync.d.ts.map +1 -1
  301. package/dist/systems/stair/stair-opening-sync.js +1 -18
  302. package/dist/systems/stair/stair-opening-sync.test.js +39 -0
  303. package/dist/systems/wall/wall-mitering.d.ts.map +1 -1
  304. package/dist/systems/wall/wall-mitering.js +38 -2
  305. package/dist/systems/wall/wall-mitering.test.d.ts +2 -0
  306. package/dist/systems/wall/wall-mitering.test.d.ts.map +1 -0
  307. package/dist/systems/wall/wall-mitering.test.js +63 -0
  308. package/dist/utils/clone-scene-graph.d.ts +1 -0
  309. package/dist/utils/clone-scene-graph.d.ts.map +1 -1
  310. package/dist/utils/clone-scene-graph.js +23 -3
  311. package/dist/utils/clone-scene-graph.test.js +3 -0
  312. package/dist/utils/heal-scene-graph.d.ts +18 -0
  313. package/dist/utils/heal-scene-graph.d.ts.map +1 -0
  314. package/dist/utils/heal-scene-graph.js +90 -0
  315. package/dist/utils/heal-scene-graph.test.d.ts +2 -0
  316. package/dist/utils/heal-scene-graph.test.d.ts.map +1 -0
  317. package/dist/utils/heal-scene-graph.test.js +88 -0
  318. package/dist/validation/validate-build-json.d.ts +1 -0
  319. package/dist/validation/validate-build-json.d.ts.map +1 -1
  320. package/dist/validation/validate-build-json.js +31 -2
  321. package/package.json +3 -3
@@ -63,7 +63,7 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
63
63
  type: z.ZodDefault<z.ZodLiteral<"elevator">>;
64
64
  material: z.ZodOptional<z.ZodObject<{
65
65
  id: z.ZodOptional<z.ZodString>;
66
- preset: z.ZodOptional<z.ZodEnum<{
66
+ preset: z.ZodOptional<z.ZodCatch<z.ZodEnum<{
67
67
  custom: "custom";
68
68
  white: "white";
69
69
  brick: "brick";
@@ -74,7 +74,7 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
74
74
  plaster: "plaster";
75
75
  tile: "tile";
76
76
  marble: "marble";
77
- }>>;
77
+ }>>>;
78
78
  properties: z.ZodOptional<z.ZodObject<{
79
79
  color: z.ZodDefault<z.ZodString>;
80
80
  roughness: z.ZodDefault<z.ZodNumber>;
@@ -94,6 +94,7 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
94
94
  }, z.core.$strip>>;
95
95
  }, z.core.$strip>>;
96
96
  materialPreset: z.ZodOptional<z.ZodString>;
97
+ slots: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
97
98
  position: z.ZodDefault<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
98
99
  rotation: z.ZodDefault<z.ZodNumber>;
99
100
  width: z.ZodDefault<z.ZodNumber>;
@@ -145,7 +146,7 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
145
146
  metadata: z.ZodDefault<z.ZodOptional<z.ZodJSONSchema>>;
146
147
  id: z.ZodDefault<z.ZodTemplateLiteral<`level_${string}`>>;
147
148
  type: z.ZodDefault<z.ZodLiteral<"level">>;
148
- 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}`>>, z.ZodDefault<z.ZodTemplateLiteral<`shelf_${string}`>>]>>>;
149
+ 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<`measurement_${string}`>>, z.ZodDefault<z.ZodTemplateLiteral<`spawn_${string}`>>, z.ZodDefault<z.ZodTemplateLiteral<`shelf_${string}`>>]>>>;
149
150
  level: z.ZodDefault<z.ZodNumber>;
150
151
  }, z.core.$strip>, z.ZodObject<{
151
152
  object: z.ZodDefault<z.ZodLiteral<"node">>;
@@ -318,7 +319,7 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
318
319
  bracePlateEnabled: z.ZodDefault<z.ZodBoolean>;
319
320
  material: z.ZodOptional<z.ZodObject<{
320
321
  id: z.ZodOptional<z.ZodString>;
321
- preset: z.ZodOptional<z.ZodEnum<{
322
+ preset: z.ZodOptional<z.ZodCatch<z.ZodEnum<{
322
323
  custom: "custom";
323
324
  white: "white";
324
325
  brick: "brick";
@@ -329,7 +330,7 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
329
330
  plaster: "plaster";
330
331
  tile: "tile";
331
332
  marble: "marble";
332
- }>>;
333
+ }>>>;
333
334
  properties: z.ZodOptional<z.ZodObject<{
334
335
  color: z.ZodDefault<z.ZodString>;
335
336
  roughness: z.ZodDefault<z.ZodNumber>;
@@ -349,6 +350,7 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
349
350
  }, z.core.$strip>>;
350
351
  }, z.core.$strip>>;
351
352
  materialPreset: z.ZodOptional<z.ZodString>;
353
+ slots: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
352
354
  }, z.core.$strip>, z.ZodObject<{
353
355
  object: z.ZodDefault<z.ZodLiteral<"node">>;
354
356
  name: z.ZodOptional<z.ZodString>;
@@ -370,7 +372,7 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
370
372
  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}`>>]>>>;
371
373
  material: z.ZodOptional<z.ZodObject<{
372
374
  id: z.ZodOptional<z.ZodString>;
373
- preset: z.ZodOptional<z.ZodEnum<{
375
+ preset: z.ZodOptional<z.ZodCatch<z.ZodEnum<{
374
376
  custom: "custom";
375
377
  white: "white";
376
378
  brick: "brick";
@@ -381,7 +383,7 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
381
383
  plaster: "plaster";
382
384
  tile: "tile";
383
385
  marble: "marble";
384
- }>>;
386
+ }>>>;
385
387
  properties: z.ZodOptional<z.ZodObject<{
386
388
  color: z.ZodDefault<z.ZodString>;
387
389
  roughness: z.ZodDefault<z.ZodNumber>;
@@ -403,7 +405,7 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
403
405
  materialPreset: z.ZodOptional<z.ZodString>;
404
406
  interiorMaterial: z.ZodOptional<z.ZodObject<{
405
407
  id: z.ZodOptional<z.ZodString>;
406
- preset: z.ZodOptional<z.ZodEnum<{
408
+ preset: z.ZodOptional<z.ZodCatch<z.ZodEnum<{
407
409
  custom: "custom";
408
410
  white: "white";
409
411
  brick: "brick";
@@ -414,7 +416,7 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
414
416
  plaster: "plaster";
415
417
  tile: "tile";
416
418
  marble: "marble";
417
- }>>;
419
+ }>>>;
418
420
  properties: z.ZodOptional<z.ZodObject<{
419
421
  color: z.ZodDefault<z.ZodString>;
420
422
  roughness: z.ZodDefault<z.ZodNumber>;
@@ -436,7 +438,7 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
436
438
  interiorMaterialPreset: z.ZodOptional<z.ZodString>;
437
439
  exteriorMaterial: z.ZodOptional<z.ZodObject<{
438
440
  id: z.ZodOptional<z.ZodString>;
439
- preset: z.ZodOptional<z.ZodEnum<{
441
+ preset: z.ZodOptional<z.ZodCatch<z.ZodEnum<{
440
442
  custom: "custom";
441
443
  white: "white";
442
444
  brick: "brick";
@@ -447,7 +449,7 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
447
449
  plaster: "plaster";
448
450
  tile: "tile";
449
451
  marble: "marble";
450
- }>>;
452
+ }>>>;
451
453
  properties: z.ZodOptional<z.ZodObject<{
452
454
  color: z.ZodDefault<z.ZodString>;
453
455
  roughness: z.ZodDefault<z.ZodNumber>;
@@ -467,9 +469,107 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
467
469
  }, z.core.$strip>>;
468
470
  }, z.core.$strip>>;
469
471
  exteriorMaterialPreset: z.ZodOptional<z.ZodString>;
472
+ slots: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
470
473
  thickness: z.ZodOptional<z.ZodNumber>;
471
474
  height: z.ZodOptional<z.ZodNumber>;
472
475
  curveOffset: z.ZodOptional<z.ZodNumber>;
476
+ faceBands: z.ZodOptional<z.ZodPreprocess<z.ZodObject<{
477
+ enabled: z.ZodDefault<z.ZodBoolean>;
478
+ count: z.ZodDefault<z.ZodNumber>;
479
+ lowerHeight: z.ZodDefault<z.ZodNumber>;
480
+ middleHeight: z.ZodDefault<z.ZodNumber>;
481
+ upperHeight: z.ZodDefault<z.ZodNumber>;
482
+ }, z.core.$strip>>>;
483
+ skirting: z.ZodOptional<z.ZodObject<{
484
+ enabled: z.ZodDefault<z.ZodBoolean>;
485
+ sides: z.ZodDefault<z.ZodEnum<{
486
+ interior: "interior";
487
+ exterior: "exterior";
488
+ both: "both";
489
+ }>>;
490
+ height: z.ZodDefault<z.ZodNumber>;
491
+ proud: z.ZodDefault<z.ZodNumber>;
492
+ profile: z.ZodDefault<z.ZodEnum<{
493
+ flat: "flat";
494
+ bevel: "bevel";
495
+ triangle: "triangle";
496
+ cove: "cove";
497
+ bullnose: "bullnose";
498
+ "base-modern": "base-modern";
499
+ "base-colonial": "base-colonial";
500
+ "base-shoe": "base-shoe";
501
+ "base-ogee": "base-ogee";
502
+ "crown-cove": "crown-cove";
503
+ "crown-ogee": "crown-ogee";
504
+ "crown-craftsman": "crown-craftsman";
505
+ "crown-layered": "crown-layered";
506
+ "rail-rounded": "rail-rounded";
507
+ "rail-ogee": "rail-ogee";
508
+ "rail-picture": "rail-picture";
509
+ "rail-stepped": "rail-stepped";
510
+ }>>;
511
+ offsetY: z.ZodOptional<z.ZodNumber>;
512
+ }, z.core.$strip>>;
513
+ crown: z.ZodOptional<z.ZodObject<{
514
+ enabled: z.ZodDefault<z.ZodBoolean>;
515
+ sides: z.ZodDefault<z.ZodEnum<{
516
+ interior: "interior";
517
+ exterior: "exterior";
518
+ both: "both";
519
+ }>>;
520
+ height: z.ZodDefault<z.ZodNumber>;
521
+ proud: z.ZodDefault<z.ZodNumber>;
522
+ profile: z.ZodDefault<z.ZodEnum<{
523
+ flat: "flat";
524
+ bevel: "bevel";
525
+ triangle: "triangle";
526
+ cove: "cove";
527
+ bullnose: "bullnose";
528
+ "base-modern": "base-modern";
529
+ "base-colonial": "base-colonial";
530
+ "base-shoe": "base-shoe";
531
+ "base-ogee": "base-ogee";
532
+ "crown-cove": "crown-cove";
533
+ "crown-ogee": "crown-ogee";
534
+ "crown-craftsman": "crown-craftsman";
535
+ "crown-layered": "crown-layered";
536
+ "rail-rounded": "rail-rounded";
537
+ "rail-ogee": "rail-ogee";
538
+ "rail-picture": "rail-picture";
539
+ "rail-stepped": "rail-stepped";
540
+ }>>;
541
+ offsetY: z.ZodOptional<z.ZodNumber>;
542
+ }, z.core.$strip>>;
543
+ chairRail: z.ZodOptional<z.ZodObject<{
544
+ enabled: z.ZodDefault<z.ZodBoolean>;
545
+ sides: z.ZodDefault<z.ZodEnum<{
546
+ interior: "interior";
547
+ exterior: "exterior";
548
+ both: "both";
549
+ }>>;
550
+ height: z.ZodDefault<z.ZodNumber>;
551
+ proud: z.ZodDefault<z.ZodNumber>;
552
+ profile: z.ZodDefault<z.ZodEnum<{
553
+ flat: "flat";
554
+ bevel: "bevel";
555
+ triangle: "triangle";
556
+ cove: "cove";
557
+ bullnose: "bullnose";
558
+ "base-modern": "base-modern";
559
+ "base-colonial": "base-colonial";
560
+ "base-shoe": "base-shoe";
561
+ "base-ogee": "base-ogee";
562
+ "crown-cove": "crown-cove";
563
+ "crown-ogee": "crown-ogee";
564
+ "crown-craftsman": "crown-craftsman";
565
+ "crown-layered": "crown-layered";
566
+ "rail-rounded": "rail-rounded";
567
+ "rail-ogee": "rail-ogee";
568
+ "rail-picture": "rail-picture";
569
+ "rail-stepped": "rail-stepped";
570
+ }>>;
571
+ offsetY: z.ZodOptional<z.ZodNumber>;
572
+ }, z.core.$strip>>;
473
573
  start: z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>;
474
574
  end: z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>;
475
575
  frontSide: z.ZodDefault<z.ZodEnum<{
@@ -502,7 +602,7 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
502
602
  type: z.ZodDefault<z.ZodLiteral<"fence">>;
503
603
  material: z.ZodOptional<z.ZodObject<{
504
604
  id: z.ZodOptional<z.ZodString>;
505
- preset: z.ZodOptional<z.ZodEnum<{
605
+ preset: z.ZodOptional<z.ZodCatch<z.ZodEnum<{
506
606
  custom: "custom";
507
607
  white: "white";
508
608
  brick: "brick";
@@ -513,7 +613,7 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
513
613
  plaster: "plaster";
514
614
  tile: "tile";
515
615
  marble: "marble";
516
- }>>;
616
+ }>>>;
517
617
  properties: z.ZodOptional<z.ZodObject<{
518
618
  color: z.ZodDefault<z.ZodString>;
519
619
  roughness: z.ZodDefault<z.ZodNumber>;
@@ -533,8 +633,11 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
533
633
  }, z.core.$strip>>;
534
634
  }, z.core.$strip>>;
535
635
  materialPreset: z.ZodOptional<z.ZodString>;
636
+ slots: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
536
637
  start: z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>;
537
638
  end: z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>;
639
+ path: z.ZodOptional<z.ZodArray<z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>>>;
640
+ tangents: z.ZodOptional<z.ZodArray<z.ZodNullable<z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>>>>;
538
641
  height: z.ZodDefault<z.ZodNumber>;
539
642
  thickness: z.ZodDefault<z.ZodNumber>;
540
643
  curveOffset: z.ZodOptional<z.ZodNumber>;
@@ -544,6 +647,12 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
544
647
  topRailHeight: z.ZodDefault<z.ZodNumber>;
545
648
  groundClearance: z.ZodDefault<z.ZodNumber>;
546
649
  edgeInset: z.ZodDefault<z.ZodNumber>;
650
+ slatGap: z.ZodDefault<z.ZodNumber>;
651
+ postCap: z.ZodDefault<z.ZodEnum<{
652
+ flat: "flat";
653
+ none: "none";
654
+ pyramid: "pyramid";
655
+ }>>;
547
656
  baseStyle: z.ZodDefault<z.ZodEnum<{
548
657
  floating: "floating";
549
658
  grounded: "grounded";
@@ -554,7 +663,426 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
554
663
  slat: "slat";
555
664
  rail: "rail";
556
665
  privacy: "privacy";
666
+ horizontal: "horizontal";
667
+ }>>;
668
+ }, z.core.$strip>, z.ZodObject<{
669
+ object: z.ZodDefault<z.ZodLiteral<"node">>;
670
+ name: z.ZodOptional<z.ZodString>;
671
+ parentId: z.ZodDefault<z.ZodNullable<z.ZodString>>;
672
+ visible: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
673
+ camera: z.ZodOptional<z.ZodObject<{
674
+ position: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
675
+ target: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
676
+ mode: z.ZodDefault<z.ZodEnum<{
677
+ perspective: "perspective";
678
+ orthographic: "orthographic";
679
+ }>>;
680
+ fov: z.ZodOptional<z.ZodNumber>;
681
+ zoom: z.ZodOptional<z.ZodNumber>;
682
+ }, z.core.$strip>>;
683
+ metadata: z.ZodDefault<z.ZodOptional<z.ZodJSONSchema>>;
684
+ position: z.ZodDefault<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
685
+ rotation: z.ZodDefault<z.ZodNumber>;
686
+ width: z.ZodDefault<z.ZodNumber>;
687
+ depth: z.ZodDefault<z.ZodNumber>;
688
+ carcassHeight: z.ZodDefault<z.ZodNumber>;
689
+ operationState: z.ZodDefault<z.ZodNumber>;
690
+ plinthHeight: z.ZodDefault<z.ZodNumber>;
691
+ toeKickDepth: z.ZodDefault<z.ZodNumber>;
692
+ boardThickness: z.ZodDefault<z.ZodNumber>;
693
+ countertopThickness: z.ZodDefault<z.ZodNumber>;
694
+ countertopOverhang: z.ZodDefault<z.ZodNumber>;
695
+ countertopBackOverhang: z.ZodDefault<z.ZodNumber>;
696
+ withFinishedBack: z.ZodDefault<z.ZodBoolean>;
697
+ frontThickness: z.ZodDefault<z.ZodNumber>;
698
+ frontGap: z.ZodDefault<z.ZodNumber>;
699
+ frontStyle: z.ZodDefault<z.ZodEnum<{
700
+ slab: "slab";
701
+ shaker: "shaker";
702
+ "raised-arch": "raised-arch";
703
+ }>>;
704
+ handleStyle: z.ZodDefault<z.ZodEnum<{
705
+ none: "none";
706
+ bar: "bar";
707
+ cutout: "cutout";
708
+ hole: "hole";
709
+ knob: "knob";
710
+ }>>;
711
+ handlePosition: z.ZodDefault<z.ZodEnum<{
712
+ top: "top";
713
+ auto: "auto";
714
+ center: "center";
715
+ }>>;
716
+ frontOverlay: z.ZodDefault<z.ZodEnum<{
717
+ full: "full";
718
+ inset: "inset";
719
+ }>>;
720
+ withBottomPanel: z.ZodDefault<z.ZodBoolean>;
721
+ showPlinth: z.ZodDefault<z.ZodBoolean>;
722
+ withCountertop: z.ZodDefault<z.ZodBoolean>;
723
+ material: z.ZodOptional<z.ZodObject<{
724
+ id: z.ZodOptional<z.ZodString>;
725
+ preset: z.ZodOptional<z.ZodCatch<z.ZodEnum<{
726
+ custom: "custom";
727
+ white: "white";
728
+ brick: "brick";
729
+ concrete: "concrete";
730
+ wood: "wood";
731
+ glass: "glass";
732
+ metal: "metal";
733
+ plaster: "plaster";
734
+ tile: "tile";
735
+ marble: "marble";
736
+ }>>>;
737
+ properties: z.ZodOptional<z.ZodObject<{
738
+ color: z.ZodDefault<z.ZodString>;
739
+ roughness: z.ZodDefault<z.ZodNumber>;
740
+ metalness: z.ZodDefault<z.ZodNumber>;
741
+ opacity: z.ZodDefault<z.ZodNumber>;
742
+ transparent: z.ZodDefault<z.ZodBoolean>;
743
+ side: z.ZodDefault<z.ZodEnum<{
744
+ front: "front";
745
+ back: "back";
746
+ double: "double";
747
+ }>>;
748
+ }, z.core.$strip>>;
749
+ texture: z.ZodOptional<z.ZodObject<{
750
+ url: z.ZodString;
751
+ repeat: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>>;
752
+ scale: z.ZodOptional<z.ZodNumber>;
753
+ }, z.core.$strip>>;
754
+ }, z.core.$strip>>;
755
+ materialPreset: z.ZodOptional<z.ZodString>;
756
+ slots: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
757
+ stack: z.ZodOptional<z.ZodArray<z.ZodDiscriminatedUnion<[z.ZodObject<{
758
+ type: z.ZodLiteral<"shelf">;
759
+ shelfCount: z.ZodOptional<z.ZodNumber>;
760
+ id: z.ZodString;
761
+ height: z.ZodOptional<z.ZodNumber>;
762
+ }, z.core.$strip>, z.ZodObject<{
763
+ type: z.ZodLiteral<"drawer">;
764
+ drawerCount: z.ZodOptional<z.ZodNumber>;
765
+ id: z.ZodString;
766
+ height: z.ZodOptional<z.ZodNumber>;
767
+ }, z.core.$strip>, z.ZodObject<{
768
+ type: z.ZodLiteral<"door">;
769
+ doorType: z.ZodOptional<z.ZodEnum<{
770
+ glass: "glass";
771
+ double: "double";
772
+ "single-left": "single-left";
773
+ "single-right": "single-right";
774
+ }>>;
775
+ shelfCount: z.ZodOptional<z.ZodNumber>;
776
+ id: z.ZodString;
777
+ height: z.ZodOptional<z.ZodNumber>;
778
+ }, z.core.$strip>, z.ZodObject<{
779
+ type: z.ZodLiteral<"sink">;
780
+ sinkLayout: z.ZodOptional<z.ZodEnum<{
781
+ double: "double";
782
+ single: "single";
783
+ "double-offset": "double-offset";
784
+ }>>;
785
+ id: z.ZodString;
786
+ height: z.ZodOptional<z.ZodNumber>;
787
+ }, z.core.$strip>, z.ZodObject<{
788
+ type: z.ZodLiteral<"oven">;
789
+ id: z.ZodString;
790
+ height: z.ZodOptional<z.ZodNumber>;
791
+ }, z.core.$strip>, z.ZodObject<{
792
+ type: z.ZodLiteral<"microwave">;
793
+ id: z.ZodString;
794
+ height: z.ZodOptional<z.ZodNumber>;
795
+ }, z.core.$strip>, z.ZodObject<{
796
+ type: z.ZodLiteral<"dishwasher">;
797
+ id: z.ZodString;
798
+ height: z.ZodOptional<z.ZodNumber>;
799
+ }, z.core.$strip>, z.ZodObject<{
800
+ cooktopLayout: z.ZodOptional<z.ZodEnum<{
801
+ "gas-2burner": "gas-2burner";
802
+ "gas-4burner": "gas-4burner";
803
+ "gas-5burner-wok": "gas-5burner-wok";
804
+ "gas-6burner": "gas-6burner";
805
+ }>>;
806
+ cooktopBurnersOn: z.ZodOptional<z.ZodBoolean>;
807
+ cooktopActiveBurners: z.ZodOptional<z.ZodArray<z.ZodNumber>>;
808
+ cooktopKnobProgress: z.ZodOptional<z.ZodArray<z.ZodNumber>>;
809
+ cooktopShowGrate: z.ZodOptional<z.ZodBoolean>;
810
+ type: z.ZodLiteral<"cooktop-gas">;
811
+ id: z.ZodString;
812
+ height: z.ZodOptional<z.ZodNumber>;
813
+ }, z.core.$strip>, z.ZodObject<{
814
+ cooktopLayout: z.ZodOptional<z.ZodEnum<{
815
+ "induction-2zone": "induction-2zone";
816
+ "induction-4zone": "induction-4zone";
817
+ }>>;
818
+ cooktopBurnersOn: z.ZodOptional<z.ZodBoolean>;
819
+ cooktopActiveBurners: z.ZodOptional<z.ZodArray<z.ZodNumber>>;
820
+ cooktopKnobProgress: z.ZodOptional<z.ZodArray<z.ZodNumber>>;
821
+ cooktopShowGrate: z.ZodOptional<z.ZodBoolean>;
822
+ type: z.ZodLiteral<"cooktop-induction">;
823
+ id: z.ZodString;
824
+ height: z.ZodOptional<z.ZodNumber>;
825
+ }, z.core.$strip>, z.ZodObject<{
826
+ type: z.ZodLiteral<"pull-out-pantry">;
827
+ shelfCount: z.ZodOptional<z.ZodNumber>;
828
+ pantryRackStyle: z.ZodOptional<z.ZodEnum<{
829
+ glass: "glass";
830
+ wire: "wire";
831
+ tray: "tray";
832
+ }>>;
833
+ id: z.ZodString;
834
+ height: z.ZodOptional<z.ZodNumber>;
835
+ }, z.core.$strip>, z.ZodObject<{
836
+ type: z.ZodLiteral<"fridge-single">;
837
+ id: z.ZodString;
838
+ height: z.ZodOptional<z.ZodNumber>;
839
+ }, z.core.$strip>, z.ZodObject<{
840
+ type: z.ZodLiteral<"fridge-double">;
841
+ id: z.ZodString;
842
+ height: z.ZodOptional<z.ZodNumber>;
843
+ }, z.core.$strip>, z.ZodObject<{
844
+ type: z.ZodLiteral<"fridge-top-freezer">;
845
+ id: z.ZodString;
846
+ height: z.ZodOptional<z.ZodNumber>;
847
+ }, z.core.$strip>, z.ZodObject<{
848
+ type: z.ZodLiteral<"fridge-bottom-freezer">;
849
+ id: z.ZodString;
850
+ height: z.ZodOptional<z.ZodNumber>;
851
+ }, z.core.$strip>, z.ZodObject<{
852
+ type: z.ZodLiteral<"hood-pyramid">;
853
+ id: z.ZodString;
854
+ height: z.ZodOptional<z.ZodNumber>;
855
+ }, z.core.$strip>, z.ZodObject<{
856
+ type: z.ZodLiteral<"hood-curved-glass">;
857
+ id: z.ZodString;
858
+ height: z.ZodOptional<z.ZodNumber>;
859
+ }, z.core.$strip>], "type">>>;
860
+ id: z.ZodDefault<z.ZodTemplateLiteral<`cabinet_${string}`>>;
861
+ type: z.ZodDefault<z.ZodLiteral<"cabinet">>;
862
+ runTier: z.ZodDefault<z.ZodEnum<{
863
+ wall: "wall";
864
+ base: "base";
865
+ tall: "tall";
866
+ }>>;
867
+ children: z.ZodDefault<z.ZodArray<z.ZodDefault<z.ZodTemplateLiteral<`cabinet-module_${string}`>>>>;
868
+ barLedge: z.ZodOptional<z.ZodObject<{
869
+ edge: z.ZodDefault<z.ZodEnum<{
870
+ back: "back";
871
+ right: "right";
872
+ left: "left";
873
+ }>>;
874
+ height: z.ZodDefault<z.ZodNumber>;
875
+ depth: z.ZodDefault<z.ZodNumber>;
876
+ }, z.core.$strip>>;
877
+ withWaterfall: z.ZodDefault<z.ZodBoolean>;
878
+ }, z.core.$strip>, z.ZodObject<{
879
+ object: z.ZodDefault<z.ZodLiteral<"node">>;
880
+ name: z.ZodOptional<z.ZodString>;
881
+ parentId: z.ZodDefault<z.ZodNullable<z.ZodString>>;
882
+ visible: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
883
+ camera: z.ZodOptional<z.ZodObject<{
884
+ position: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
885
+ target: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
886
+ mode: z.ZodDefault<z.ZodEnum<{
887
+ perspective: "perspective";
888
+ orthographic: "orthographic";
889
+ }>>;
890
+ fov: z.ZodOptional<z.ZodNumber>;
891
+ zoom: z.ZodOptional<z.ZodNumber>;
892
+ }, z.core.$strip>>;
893
+ metadata: z.ZodDefault<z.ZodOptional<z.ZodJSONSchema>>;
894
+ position: z.ZodDefault<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
895
+ rotation: z.ZodDefault<z.ZodNumber>;
896
+ width: z.ZodDefault<z.ZodNumber>;
897
+ depth: z.ZodDefault<z.ZodNumber>;
898
+ carcassHeight: z.ZodDefault<z.ZodNumber>;
899
+ operationState: z.ZodDefault<z.ZodNumber>;
900
+ plinthHeight: z.ZodDefault<z.ZodNumber>;
901
+ toeKickDepth: z.ZodDefault<z.ZodNumber>;
902
+ boardThickness: z.ZodDefault<z.ZodNumber>;
903
+ countertopThickness: z.ZodDefault<z.ZodNumber>;
904
+ countertopOverhang: z.ZodDefault<z.ZodNumber>;
905
+ countertopBackOverhang: z.ZodDefault<z.ZodNumber>;
906
+ withFinishedBack: z.ZodDefault<z.ZodBoolean>;
907
+ frontThickness: z.ZodDefault<z.ZodNumber>;
908
+ frontGap: z.ZodDefault<z.ZodNumber>;
909
+ frontStyle: z.ZodDefault<z.ZodEnum<{
910
+ slab: "slab";
911
+ shaker: "shaker";
912
+ "raised-arch": "raised-arch";
913
+ }>>;
914
+ handleStyle: z.ZodDefault<z.ZodEnum<{
915
+ none: "none";
916
+ bar: "bar";
917
+ cutout: "cutout";
918
+ hole: "hole";
919
+ knob: "knob";
920
+ }>>;
921
+ handlePosition: z.ZodDefault<z.ZodEnum<{
922
+ top: "top";
923
+ auto: "auto";
924
+ center: "center";
925
+ }>>;
926
+ frontOverlay: z.ZodDefault<z.ZodEnum<{
927
+ full: "full";
928
+ inset: "inset";
929
+ }>>;
930
+ withBottomPanel: z.ZodDefault<z.ZodBoolean>;
931
+ showPlinth: z.ZodDefault<z.ZodBoolean>;
932
+ withCountertop: z.ZodDefault<z.ZodBoolean>;
933
+ material: z.ZodOptional<z.ZodObject<{
934
+ id: z.ZodOptional<z.ZodString>;
935
+ preset: z.ZodOptional<z.ZodCatch<z.ZodEnum<{
936
+ custom: "custom";
937
+ white: "white";
938
+ brick: "brick";
939
+ concrete: "concrete";
940
+ wood: "wood";
941
+ glass: "glass";
942
+ metal: "metal";
943
+ plaster: "plaster";
944
+ tile: "tile";
945
+ marble: "marble";
946
+ }>>>;
947
+ properties: z.ZodOptional<z.ZodObject<{
948
+ color: z.ZodDefault<z.ZodString>;
949
+ roughness: z.ZodDefault<z.ZodNumber>;
950
+ metalness: z.ZodDefault<z.ZodNumber>;
951
+ opacity: z.ZodDefault<z.ZodNumber>;
952
+ transparent: z.ZodDefault<z.ZodBoolean>;
953
+ side: z.ZodDefault<z.ZodEnum<{
954
+ front: "front";
955
+ back: "back";
956
+ double: "double";
957
+ }>>;
958
+ }, z.core.$strip>>;
959
+ texture: z.ZodOptional<z.ZodObject<{
960
+ url: z.ZodString;
961
+ repeat: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>>;
962
+ scale: z.ZodOptional<z.ZodNumber>;
963
+ }, z.core.$strip>>;
964
+ }, z.core.$strip>>;
965
+ materialPreset: z.ZodOptional<z.ZodString>;
966
+ slots: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
967
+ stack: z.ZodOptional<z.ZodArray<z.ZodDiscriminatedUnion<[z.ZodObject<{
968
+ type: z.ZodLiteral<"shelf">;
969
+ shelfCount: z.ZodOptional<z.ZodNumber>;
970
+ id: z.ZodString;
971
+ height: z.ZodOptional<z.ZodNumber>;
972
+ }, z.core.$strip>, z.ZodObject<{
973
+ type: z.ZodLiteral<"drawer">;
974
+ drawerCount: z.ZodOptional<z.ZodNumber>;
975
+ id: z.ZodString;
976
+ height: z.ZodOptional<z.ZodNumber>;
977
+ }, z.core.$strip>, z.ZodObject<{
978
+ type: z.ZodLiteral<"door">;
979
+ doorType: z.ZodOptional<z.ZodEnum<{
980
+ glass: "glass";
981
+ double: "double";
982
+ "single-left": "single-left";
983
+ "single-right": "single-right";
984
+ }>>;
985
+ shelfCount: z.ZodOptional<z.ZodNumber>;
986
+ id: z.ZodString;
987
+ height: z.ZodOptional<z.ZodNumber>;
988
+ }, z.core.$strip>, z.ZodObject<{
989
+ type: z.ZodLiteral<"sink">;
990
+ sinkLayout: z.ZodOptional<z.ZodEnum<{
991
+ double: "double";
992
+ single: "single";
993
+ "double-offset": "double-offset";
994
+ }>>;
995
+ id: z.ZodString;
996
+ height: z.ZodOptional<z.ZodNumber>;
997
+ }, z.core.$strip>, z.ZodObject<{
998
+ type: z.ZodLiteral<"oven">;
999
+ id: z.ZodString;
1000
+ height: z.ZodOptional<z.ZodNumber>;
1001
+ }, z.core.$strip>, z.ZodObject<{
1002
+ type: z.ZodLiteral<"microwave">;
1003
+ id: z.ZodString;
1004
+ height: z.ZodOptional<z.ZodNumber>;
1005
+ }, z.core.$strip>, z.ZodObject<{
1006
+ type: z.ZodLiteral<"dishwasher">;
1007
+ id: z.ZodString;
1008
+ height: z.ZodOptional<z.ZodNumber>;
1009
+ }, z.core.$strip>, z.ZodObject<{
1010
+ cooktopLayout: z.ZodOptional<z.ZodEnum<{
1011
+ "gas-2burner": "gas-2burner";
1012
+ "gas-4burner": "gas-4burner";
1013
+ "gas-5burner-wok": "gas-5burner-wok";
1014
+ "gas-6burner": "gas-6burner";
1015
+ }>>;
1016
+ cooktopBurnersOn: z.ZodOptional<z.ZodBoolean>;
1017
+ cooktopActiveBurners: z.ZodOptional<z.ZodArray<z.ZodNumber>>;
1018
+ cooktopKnobProgress: z.ZodOptional<z.ZodArray<z.ZodNumber>>;
1019
+ cooktopShowGrate: z.ZodOptional<z.ZodBoolean>;
1020
+ type: z.ZodLiteral<"cooktop-gas">;
1021
+ id: z.ZodString;
1022
+ height: z.ZodOptional<z.ZodNumber>;
1023
+ }, z.core.$strip>, z.ZodObject<{
1024
+ cooktopLayout: z.ZodOptional<z.ZodEnum<{
1025
+ "induction-2zone": "induction-2zone";
1026
+ "induction-4zone": "induction-4zone";
1027
+ }>>;
1028
+ cooktopBurnersOn: z.ZodOptional<z.ZodBoolean>;
1029
+ cooktopActiveBurners: z.ZodOptional<z.ZodArray<z.ZodNumber>>;
1030
+ cooktopKnobProgress: z.ZodOptional<z.ZodArray<z.ZodNumber>>;
1031
+ cooktopShowGrate: z.ZodOptional<z.ZodBoolean>;
1032
+ type: z.ZodLiteral<"cooktop-induction">;
1033
+ id: z.ZodString;
1034
+ height: z.ZodOptional<z.ZodNumber>;
1035
+ }, z.core.$strip>, z.ZodObject<{
1036
+ type: z.ZodLiteral<"pull-out-pantry">;
1037
+ shelfCount: z.ZodOptional<z.ZodNumber>;
1038
+ pantryRackStyle: z.ZodOptional<z.ZodEnum<{
1039
+ glass: "glass";
1040
+ wire: "wire";
1041
+ tray: "tray";
1042
+ }>>;
1043
+ id: z.ZodString;
1044
+ height: z.ZodOptional<z.ZodNumber>;
1045
+ }, z.core.$strip>, z.ZodObject<{
1046
+ type: z.ZodLiteral<"fridge-single">;
1047
+ id: z.ZodString;
1048
+ height: z.ZodOptional<z.ZodNumber>;
1049
+ }, z.core.$strip>, z.ZodObject<{
1050
+ type: z.ZodLiteral<"fridge-double">;
1051
+ id: z.ZodString;
1052
+ height: z.ZodOptional<z.ZodNumber>;
1053
+ }, z.core.$strip>, z.ZodObject<{
1054
+ type: z.ZodLiteral<"fridge-top-freezer">;
1055
+ id: z.ZodString;
1056
+ height: z.ZodOptional<z.ZodNumber>;
1057
+ }, z.core.$strip>, z.ZodObject<{
1058
+ type: z.ZodLiteral<"fridge-bottom-freezer">;
1059
+ id: z.ZodString;
1060
+ height: z.ZodOptional<z.ZodNumber>;
1061
+ }, z.core.$strip>, z.ZodObject<{
1062
+ type: z.ZodLiteral<"hood-pyramid">;
1063
+ id: z.ZodString;
1064
+ height: z.ZodOptional<z.ZodNumber>;
1065
+ }, z.core.$strip>, z.ZodObject<{
1066
+ type: z.ZodLiteral<"hood-curved-glass">;
1067
+ id: z.ZodString;
1068
+ height: z.ZodOptional<z.ZodNumber>;
1069
+ }, z.core.$strip>], "type">>>;
1070
+ id: z.ZodDefault<z.ZodTemplateLiteral<`cabinet-module_${string}`>>;
1071
+ type: z.ZodDefault<z.ZodLiteral<"cabinet-module">>;
1072
+ children: z.ZodDefault<z.ZodArray<z.ZodUnion<readonly [z.ZodDefault<z.ZodTemplateLiteral<`cabinet-module_${string}`>>, z.ZodDefault<z.ZodTemplateLiteral<`cabinet_${string}`>>]>>>;
1073
+ cabinetType: z.ZodDefault<z.ZodEnum<{
1074
+ base: "base";
1075
+ tall: "tall";
557
1076
  }>>;
1077
+ moduleKind: z.ZodDefault<z.ZodEnum<{
1078
+ standard: "standard";
1079
+ "corner-filler": "corner-filler";
1080
+ }>>;
1081
+ openSide: z.ZodOptional<z.ZodEnum<{
1082
+ right: "right";
1083
+ left: "left";
1084
+ }>>;
1085
+ cornerShelf: z.ZodOptional<z.ZodBoolean>;
558
1086
  }, z.core.$strip>, z.ZodObject<{
559
1087
  object: z.ZodDefault<z.ZodLiteral<"node">>;
560
1088
  name: z.ZodOptional<z.ZodString>;
@@ -583,7 +1111,15 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
583
1111
  children: z.ZodDefault<z.ZodArray<z.ZodDefault<z.ZodTemplateLiteral<`item_${string}`>>>>;
584
1112
  wallId: z.ZodOptional<z.ZodString>;
585
1113
  wallT: z.ZodOptional<z.ZodNumber>;
1114
+ roofSegmentId: z.ZodOptional<z.ZodString>;
1115
+ roofFace: z.ZodOptional<z.ZodEnum<{
1116
+ front: "front";
1117
+ back: "back";
1118
+ right: "right";
1119
+ left: "left";
1120
+ }>>;
586
1121
  collectionIds: z.ZodOptional<z.ZodArray<z.ZodCustom<`collection_${string}`, `collection_${string}`>>>;
1122
+ slots: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
587
1123
  asset: z.ZodObject<{
588
1124
  id: z.ZodString;
589
1125
  category: z.ZodString;
@@ -675,6 +1211,8 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
675
1211
  type: z.ZodDefault<z.ZodLiteral<"zone">>;
676
1212
  name: z.ZodString;
677
1213
  polygon: z.ZodArray<z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>>;
1214
+ autoFromWalls: z.ZodDefault<z.ZodBoolean>;
1215
+ boundaryWallIds: z.ZodDefault<z.ZodArray<z.ZodDefault<z.ZodTemplateLiteral<`wall_${string}`>>>>;
678
1216
  color: z.ZodDefault<z.ZodString>;
679
1217
  metadata: z.ZodDefault<z.ZodOptional<z.ZodJSONSchema>>;
680
1218
  }, z.core.$strip>, z.ZodObject<{
@@ -697,7 +1235,7 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
697
1235
  type: z.ZodDefault<z.ZodLiteral<"slab">>;
698
1236
  material: z.ZodOptional<z.ZodObject<{
699
1237
  id: z.ZodOptional<z.ZodString>;
700
- preset: z.ZodOptional<z.ZodEnum<{
1238
+ preset: z.ZodOptional<z.ZodCatch<z.ZodEnum<{
701
1239
  custom: "custom";
702
1240
  white: "white";
703
1241
  brick: "brick";
@@ -708,7 +1246,7 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
708
1246
  plaster: "plaster";
709
1247
  tile: "tile";
710
1248
  marble: "marble";
711
- }>>;
1249
+ }>>>;
712
1250
  properties: z.ZodOptional<z.ZodObject<{
713
1251
  color: z.ZodDefault<z.ZodString>;
714
1252
  roughness: z.ZodDefault<z.ZodNumber>;
@@ -728,6 +1266,7 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
728
1266
  }, z.core.$strip>>;
729
1267
  }, z.core.$strip>>;
730
1268
  materialPreset: z.ZodOptional<z.ZodString>;
1269
+ slots: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
731
1270
  polygon: z.ZodArray<z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>>;
732
1271
  holes: z.ZodDefault<z.ZodArray<z.ZodArray<z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>>>>;
733
1272
  holeMetadata: z.ZodDefault<z.ZodArray<z.ZodObject<{
@@ -762,7 +1301,7 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
762
1301
  children: z.ZodDefault<z.ZodArray<z.ZodDefault<z.ZodTemplateLiteral<`item_${string}`>>>>;
763
1302
  material: z.ZodOptional<z.ZodObject<{
764
1303
  id: z.ZodOptional<z.ZodString>;
765
- preset: z.ZodOptional<z.ZodEnum<{
1304
+ preset: z.ZodOptional<z.ZodCatch<z.ZodEnum<{
766
1305
  custom: "custom";
767
1306
  white: "white";
768
1307
  brick: "brick";
@@ -773,7 +1312,7 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
773
1312
  plaster: "plaster";
774
1313
  tile: "tile";
775
1314
  marble: "marble";
776
- }>>;
1315
+ }>>>;
777
1316
  properties: z.ZodOptional<z.ZodObject<{
778
1317
  color: z.ZodDefault<z.ZodString>;
779
1318
  roughness: z.ZodDefault<z.ZodNumber>;
@@ -793,6 +1332,7 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
793
1332
  }, z.core.$strip>>;
794
1333
  }, z.core.$strip>>;
795
1334
  materialPreset: z.ZodOptional<z.ZodString>;
1335
+ slots: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
796
1336
  polygon: z.ZodArray<z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>>;
797
1337
  holes: z.ZodDefault<z.ZodArray<z.ZodArray<z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>>>>;
798
1338
  holeMetadata: z.ZodDefault<z.ZodArray<z.ZodObject<{
@@ -826,7 +1366,7 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
826
1366
  type: z.ZodDefault<z.ZodLiteral<"roof">>;
827
1367
  material: z.ZodOptional<z.ZodObject<{
828
1368
  id: z.ZodOptional<z.ZodString>;
829
- preset: z.ZodOptional<z.ZodEnum<{
1369
+ preset: z.ZodOptional<z.ZodCatch<z.ZodEnum<{
830
1370
  custom: "custom";
831
1371
  white: "white";
832
1372
  brick: "brick";
@@ -837,7 +1377,7 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
837
1377
  plaster: "plaster";
838
1378
  tile: "tile";
839
1379
  marble: "marble";
840
- }>>;
1380
+ }>>>;
841
1381
  properties: z.ZodOptional<z.ZodObject<{
842
1382
  color: z.ZodDefault<z.ZodString>;
843
1383
  roughness: z.ZodDefault<z.ZodNumber>;
@@ -859,7 +1399,7 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
859
1399
  materialPreset: z.ZodOptional<z.ZodString>;
860
1400
  topMaterial: z.ZodOptional<z.ZodObject<{
861
1401
  id: z.ZodOptional<z.ZodString>;
862
- preset: z.ZodOptional<z.ZodEnum<{
1402
+ preset: z.ZodOptional<z.ZodCatch<z.ZodEnum<{
863
1403
  custom: "custom";
864
1404
  white: "white";
865
1405
  brick: "brick";
@@ -870,7 +1410,7 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
870
1410
  plaster: "plaster";
871
1411
  tile: "tile";
872
1412
  marble: "marble";
873
- }>>;
1413
+ }>>>;
874
1414
  properties: z.ZodOptional<z.ZodObject<{
875
1415
  color: z.ZodDefault<z.ZodString>;
876
1416
  roughness: z.ZodDefault<z.ZodNumber>;
@@ -892,7 +1432,7 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
892
1432
  topMaterialPreset: z.ZodOptional<z.ZodString>;
893
1433
  edgeMaterial: z.ZodOptional<z.ZodObject<{
894
1434
  id: z.ZodOptional<z.ZodString>;
895
- preset: z.ZodOptional<z.ZodEnum<{
1435
+ preset: z.ZodOptional<z.ZodCatch<z.ZodEnum<{
896
1436
  custom: "custom";
897
1437
  white: "white";
898
1438
  brick: "brick";
@@ -903,7 +1443,7 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
903
1443
  plaster: "plaster";
904
1444
  tile: "tile";
905
1445
  marble: "marble";
906
- }>>;
1446
+ }>>>;
907
1447
  properties: z.ZodOptional<z.ZodObject<{
908
1448
  color: z.ZodDefault<z.ZodString>;
909
1449
  roughness: z.ZodDefault<z.ZodNumber>;
@@ -925,7 +1465,7 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
925
1465
  edgeMaterialPreset: z.ZodOptional<z.ZodString>;
926
1466
  wallMaterial: z.ZodOptional<z.ZodObject<{
927
1467
  id: z.ZodOptional<z.ZodString>;
928
- preset: z.ZodOptional<z.ZodEnum<{
1468
+ preset: z.ZodOptional<z.ZodCatch<z.ZodEnum<{
929
1469
  custom: "custom";
930
1470
  white: "white";
931
1471
  brick: "brick";
@@ -936,7 +1476,7 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
936
1476
  plaster: "plaster";
937
1477
  tile: "tile";
938
1478
  marble: "marble";
939
- }>>;
1479
+ }>>>;
940
1480
  properties: z.ZodOptional<z.ZodObject<{
941
1481
  color: z.ZodDefault<z.ZodString>;
942
1482
  roughness: z.ZodDefault<z.ZodNumber>;
@@ -979,7 +1519,7 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
979
1519
  type: z.ZodDefault<z.ZodLiteral<"roof-segment">>;
980
1520
  material: z.ZodOptional<z.ZodObject<{
981
1521
  id: z.ZodOptional<z.ZodString>;
982
- preset: z.ZodOptional<z.ZodEnum<{
1522
+ preset: z.ZodOptional<z.ZodCatch<z.ZodEnum<{
983
1523
  custom: "custom";
984
1524
  white: "white";
985
1525
  brick: "brick";
@@ -990,7 +1530,7 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
990
1530
  plaster: "plaster";
991
1531
  tile: "tile";
992
1532
  marble: "marble";
993
- }>>;
1533
+ }>>>;
994
1534
  properties: z.ZodOptional<z.ZodObject<{
995
1535
  color: z.ZodDefault<z.ZodString>;
996
1536
  roughness: z.ZodDefault<z.ZodNumber>;
@@ -1012,7 +1552,7 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
1012
1552
  materialPreset: z.ZodOptional<z.ZodString>;
1013
1553
  topMaterial: z.ZodOptional<z.ZodObject<{
1014
1554
  id: z.ZodOptional<z.ZodString>;
1015
- preset: z.ZodOptional<z.ZodEnum<{
1555
+ preset: z.ZodOptional<z.ZodCatch<z.ZodEnum<{
1016
1556
  custom: "custom";
1017
1557
  white: "white";
1018
1558
  brick: "brick";
@@ -1023,7 +1563,7 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
1023
1563
  plaster: "plaster";
1024
1564
  tile: "tile";
1025
1565
  marble: "marble";
1026
- }>>;
1566
+ }>>>;
1027
1567
  properties: z.ZodOptional<z.ZodObject<{
1028
1568
  color: z.ZodDefault<z.ZodString>;
1029
1569
  roughness: z.ZodDefault<z.ZodNumber>;
@@ -1045,7 +1585,7 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
1045
1585
  topMaterialPreset: z.ZodOptional<z.ZodString>;
1046
1586
  edgeMaterial: z.ZodOptional<z.ZodObject<{
1047
1587
  id: z.ZodOptional<z.ZodString>;
1048
- preset: z.ZodOptional<z.ZodEnum<{
1588
+ preset: z.ZodOptional<z.ZodCatch<z.ZodEnum<{
1049
1589
  custom: "custom";
1050
1590
  white: "white";
1051
1591
  brick: "brick";
@@ -1056,7 +1596,7 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
1056
1596
  plaster: "plaster";
1057
1597
  tile: "tile";
1058
1598
  marble: "marble";
1059
- }>>;
1599
+ }>>>;
1060
1600
  properties: z.ZodOptional<z.ZodObject<{
1061
1601
  color: z.ZodDefault<z.ZodString>;
1062
1602
  roughness: z.ZodDefault<z.ZodNumber>;
@@ -1078,7 +1618,7 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
1078
1618
  edgeMaterialPreset: z.ZodOptional<z.ZodString>;
1079
1619
  wallMaterial: z.ZodOptional<z.ZodObject<{
1080
1620
  id: z.ZodOptional<z.ZodString>;
1081
- preset: z.ZodOptional<z.ZodEnum<{
1621
+ preset: z.ZodOptional<z.ZodCatch<z.ZodEnum<{
1082
1622
  custom: "custom";
1083
1623
  white: "white";
1084
1624
  brick: "brick";
@@ -1089,7 +1629,7 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
1089
1629
  plaster: "plaster";
1090
1630
  tile: "tile";
1091
1631
  marble: "marble";
1092
- }>>;
1632
+ }>>>;
1093
1633
  properties: z.ZodOptional<z.ZodObject<{
1094
1634
  color: z.ZodDefault<z.ZodString>;
1095
1635
  roughness: z.ZodDefault<z.ZodNumber>;
@@ -1122,6 +1662,24 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
1122
1662
  }>>;
1123
1663
  width: z.ZodDefault<z.ZodNumber>;
1124
1664
  depth: z.ZodDefault<z.ZodNumber>;
1665
+ trim: z.ZodDefault<z.ZodObject<{
1666
+ left: z.ZodDefault<z.ZodNumber>;
1667
+ right: z.ZodDefault<z.ZodNumber>;
1668
+ front: z.ZodDefault<z.ZodNumber>;
1669
+ back: z.ZodDefault<z.ZodNumber>;
1670
+ frontLeft: z.ZodDefault<z.ZodNumber>;
1671
+ frontRight: z.ZodDefault<z.ZodNumber>;
1672
+ backLeft: z.ZodDefault<z.ZodNumber>;
1673
+ backRight: z.ZodDefault<z.ZodNumber>;
1674
+ frontLeftX: z.ZodDefault<z.ZodNumber>;
1675
+ frontLeftZ: z.ZodDefault<z.ZodNumber>;
1676
+ frontRightX: z.ZodDefault<z.ZodNumber>;
1677
+ frontRightZ: z.ZodDefault<z.ZodNumber>;
1678
+ backLeftX: z.ZodDefault<z.ZodNumber>;
1679
+ backLeftZ: z.ZodDefault<z.ZodNumber>;
1680
+ backRightX: z.ZodDefault<z.ZodNumber>;
1681
+ backRightZ: z.ZodDefault<z.ZodNumber>;
1682
+ }, z.core.$strip>>;
1125
1683
  wallHeight: z.ZodDefault<z.ZodNumber>;
1126
1684
  pitch: z.ZodDefault<z.ZodNumber>;
1127
1685
  wallThickness: z.ZodDefault<z.ZodNumber>;
@@ -1134,6 +1692,9 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
1134
1692
  mansardSteepHeightRatio: z.ZodDefault<z.ZodNumber>;
1135
1693
  dutchHipWidthRatio: z.ZodDefault<z.ZodNumber>;
1136
1694
  dutchHipHeightRatio: z.ZodDefault<z.ZodNumber>;
1695
+ dutchWaistLengthRatio: z.ZodDefault<z.ZodNumber>;
1696
+ dutchGabletRake: z.ZodDefault<z.ZodNumber>;
1697
+ dutchTopRakeThickness: z.ZodDefault<z.ZodNumber>;
1137
1698
  children: z.ZodDefault<z.ZodArray<z.ZodString>>;
1138
1699
  }, z.core.$strip>, z.ZodObject<{
1139
1700
  object: z.ZodDefault<z.ZodLiteral<"node">>;
@@ -1178,7 +1739,7 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
1178
1739
  }>>;
1179
1740
  material: z.ZodOptional<z.ZodObject<{
1180
1741
  id: z.ZodOptional<z.ZodString>;
1181
- preset: z.ZodOptional<z.ZodEnum<{
1742
+ preset: z.ZodOptional<z.ZodCatch<z.ZodEnum<{
1182
1743
  custom: "custom";
1183
1744
  white: "white";
1184
1745
  brick: "brick";
@@ -1189,7 +1750,7 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
1189
1750
  plaster: "plaster";
1190
1751
  tile: "tile";
1191
1752
  marble: "marble";
1192
- }>>;
1753
+ }>>>;
1193
1754
  properties: z.ZodOptional<z.ZodObject<{
1194
1755
  color: z.ZodDefault<z.ZodString>;
1195
1756
  roughness: z.ZodDefault<z.ZodNumber>;
@@ -1209,6 +1770,7 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
1209
1770
  }, z.core.$strip>>;
1210
1771
  }, z.core.$strip>>;
1211
1772
  materialPreset: z.ZodOptional<z.ZodString>;
1773
+ slots: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
1212
1774
  }, z.core.$strip>, z.ZodObject<{
1213
1775
  object: z.ZodDefault<z.ZodLiteral<"node">>;
1214
1776
  name: z.ZodOptional<z.ZodString>;
@@ -1229,7 +1791,7 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
1229
1791
  type: z.ZodDefault<z.ZodLiteral<"stair">>;
1230
1792
  material: z.ZodOptional<z.ZodObject<{
1231
1793
  id: z.ZodOptional<z.ZodString>;
1232
- preset: z.ZodOptional<z.ZodEnum<{
1794
+ preset: z.ZodOptional<z.ZodCatch<z.ZodEnum<{
1233
1795
  custom: "custom";
1234
1796
  white: "white";
1235
1797
  brick: "brick";
@@ -1240,7 +1802,7 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
1240
1802
  plaster: "plaster";
1241
1803
  tile: "tile";
1242
1804
  marble: "marble";
1243
- }>>;
1805
+ }>>>;
1244
1806
  properties: z.ZodOptional<z.ZodObject<{
1245
1807
  color: z.ZodDefault<z.ZodString>;
1246
1808
  roughness: z.ZodDefault<z.ZodNumber>;
@@ -1262,7 +1824,7 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
1262
1824
  materialPreset: z.ZodOptional<z.ZodString>;
1263
1825
  railingMaterial: z.ZodOptional<z.ZodObject<{
1264
1826
  id: z.ZodOptional<z.ZodString>;
1265
- preset: z.ZodOptional<z.ZodEnum<{
1827
+ preset: z.ZodOptional<z.ZodCatch<z.ZodEnum<{
1266
1828
  custom: "custom";
1267
1829
  white: "white";
1268
1830
  brick: "brick";
@@ -1273,7 +1835,7 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
1273
1835
  plaster: "plaster";
1274
1836
  tile: "tile";
1275
1837
  marble: "marble";
1276
- }>>;
1838
+ }>>>;
1277
1839
  properties: z.ZodOptional<z.ZodObject<{
1278
1840
  color: z.ZodDefault<z.ZodString>;
1279
1841
  roughness: z.ZodDefault<z.ZodNumber>;
@@ -1295,7 +1857,7 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
1295
1857
  railingMaterialPreset: z.ZodOptional<z.ZodString>;
1296
1858
  treadMaterial: z.ZodOptional<z.ZodObject<{
1297
1859
  id: z.ZodOptional<z.ZodString>;
1298
- preset: z.ZodOptional<z.ZodEnum<{
1860
+ preset: z.ZodOptional<z.ZodCatch<z.ZodEnum<{
1299
1861
  custom: "custom";
1300
1862
  white: "white";
1301
1863
  brick: "brick";
@@ -1306,7 +1868,7 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
1306
1868
  plaster: "plaster";
1307
1869
  tile: "tile";
1308
1870
  marble: "marble";
1309
- }>>;
1871
+ }>>>;
1310
1872
  properties: z.ZodOptional<z.ZodObject<{
1311
1873
  color: z.ZodDefault<z.ZodString>;
1312
1874
  roughness: z.ZodDefault<z.ZodNumber>;
@@ -1328,7 +1890,7 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
1328
1890
  treadMaterialPreset: z.ZodOptional<z.ZodString>;
1329
1891
  sideMaterial: z.ZodOptional<z.ZodObject<{
1330
1892
  id: z.ZodOptional<z.ZodString>;
1331
- preset: z.ZodOptional<z.ZodEnum<{
1893
+ preset: z.ZodOptional<z.ZodCatch<z.ZodEnum<{
1332
1894
  custom: "custom";
1333
1895
  white: "white";
1334
1896
  brick: "brick";
@@ -1339,7 +1901,7 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
1339
1901
  plaster: "plaster";
1340
1902
  tile: "tile";
1341
1903
  marble: "marble";
1342
- }>>;
1904
+ }>>>;
1343
1905
  properties: z.ZodOptional<z.ZodObject<{
1344
1906
  color: z.ZodDefault<z.ZodString>;
1345
1907
  roughness: z.ZodDefault<z.ZodNumber>;
@@ -1359,6 +1921,7 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
1359
1921
  }, z.core.$strip>>;
1360
1922
  }, z.core.$strip>>;
1361
1923
  sideMaterialPreset: z.ZodOptional<z.ZodString>;
1924
+ slots: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
1362
1925
  position: z.ZodDefault<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
1363
1926
  rotation: z.ZodDefault<z.ZodNumber>;
1364
1927
  stairType: z.ZodDefault<z.ZodEnum<{
@@ -1388,9 +1951,9 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
1388
1951
  showCenterColumn: z.ZodDefault<z.ZodBoolean>;
1389
1952
  showStepSupports: z.ZodDefault<z.ZodBoolean>;
1390
1953
  railingMode: z.ZodDefault<z.ZodEnum<{
1391
- none: "none";
1392
- left: "left";
1393
1954
  right: "right";
1955
+ left: "left";
1956
+ none: "none";
1394
1957
  both: "both";
1395
1958
  }>>;
1396
1959
  railingHeight: z.ZodDefault<z.ZodNumber>;
@@ -1415,7 +1978,7 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
1415
1978
  type: z.ZodDefault<z.ZodLiteral<"stair-segment">>;
1416
1979
  material: z.ZodOptional<z.ZodObject<{
1417
1980
  id: z.ZodOptional<z.ZodString>;
1418
- preset: z.ZodOptional<z.ZodEnum<{
1981
+ preset: z.ZodOptional<z.ZodCatch<z.ZodEnum<{
1419
1982
  custom: "custom";
1420
1983
  white: "white";
1421
1984
  brick: "brick";
@@ -1426,7 +1989,7 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
1426
1989
  plaster: "plaster";
1427
1990
  tile: "tile";
1428
1991
  marble: "marble";
1429
- }>>;
1992
+ }>>>;
1430
1993
  properties: z.ZodOptional<z.ZodObject<{
1431
1994
  color: z.ZodDefault<z.ZodString>;
1432
1995
  roughness: z.ZodDefault<z.ZodNumber>;
@@ -1458,8 +2021,8 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
1458
2021
  stepCount: z.ZodDefault<z.ZodNumber>;
1459
2022
  attachmentSide: z.ZodDefault<z.ZodEnum<{
1460
2023
  front: "front";
1461
- left: "left";
1462
2024
  right: "right";
2025
+ left: "left";
1463
2026
  }>>;
1464
2027
  fillToFloor: z.ZodDefault<z.ZodBoolean>;
1465
2028
  thickness: z.ZodDefault<z.ZodNumber>;
@@ -1517,6 +2080,105 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
1517
2080
  metersPerUnit: z.ZodNumber;
1518
2081
  label: z.ZodString;
1519
2082
  }, z.core.$strip>>>;
2083
+ }, z.core.$strip>, z.ZodObject<{
2084
+ object: z.ZodDefault<z.ZodLiteral<"node">>;
2085
+ name: z.ZodOptional<z.ZodString>;
2086
+ parentId: z.ZodDefault<z.ZodNullable<z.ZodString>>;
2087
+ visible: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
2088
+ camera: z.ZodOptional<z.ZodObject<{
2089
+ position: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
2090
+ target: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
2091
+ mode: z.ZodDefault<z.ZodEnum<{
2092
+ perspective: "perspective";
2093
+ orthographic: "orthographic";
2094
+ }>>;
2095
+ fov: z.ZodOptional<z.ZodNumber>;
2096
+ zoom: z.ZodOptional<z.ZodNumber>;
2097
+ }, z.core.$strip>>;
2098
+ metadata: z.ZodDefault<z.ZodOptional<z.ZodJSONSchema>>;
2099
+ id: z.ZodDefault<z.ZodTemplateLiteral<`measurement_${string}`>>;
2100
+ type: z.ZodDefault<z.ZodLiteral<"measurement">>;
2101
+ measurement: z.ZodDiscriminatedUnion<[z.ZodObject<{
2102
+ kind: z.ZodLiteral<"distance">;
2103
+ points: z.ZodTuple<[z.ZodUnion<readonly [z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>, z.ZodObject<{
2104
+ kind: z.ZodLiteral<"feature">;
2105
+ reference: z.ZodObject<{
2106
+ nodeId: z.ZodString;
2107
+ featureId: z.ZodString;
2108
+ parameters: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodBoolean, z.ZodNumber]>>>;
2109
+ }, z.core.$strip>;
2110
+ fallback: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
2111
+ }, z.core.$strip>]>, z.ZodUnion<readonly [z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>, z.ZodObject<{
2112
+ kind: z.ZodLiteral<"feature">;
2113
+ reference: z.ZodObject<{
2114
+ nodeId: z.ZodString;
2115
+ featureId: z.ZodString;
2116
+ parameters: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodBoolean, z.ZodNumber]>>>;
2117
+ }, z.core.$strip>;
2118
+ fallback: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
2119
+ }, z.core.$strip>]>], null>;
2120
+ }, z.core.$strip>, z.ZodObject<{
2121
+ kind: z.ZodLiteral<"angle">;
2122
+ points: z.ZodTuple<[z.ZodUnion<readonly [z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>, z.ZodObject<{
2123
+ kind: z.ZodLiteral<"feature">;
2124
+ reference: z.ZodObject<{
2125
+ nodeId: z.ZodString;
2126
+ featureId: z.ZodString;
2127
+ parameters: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodBoolean, z.ZodNumber]>>>;
2128
+ }, z.core.$strip>;
2129
+ fallback: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
2130
+ }, z.core.$strip>]>, z.ZodUnion<readonly [z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>, z.ZodObject<{
2131
+ kind: z.ZodLiteral<"feature">;
2132
+ reference: z.ZodObject<{
2133
+ nodeId: z.ZodString;
2134
+ featureId: z.ZodString;
2135
+ parameters: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodBoolean, z.ZodNumber]>>>;
2136
+ }, z.core.$strip>;
2137
+ fallback: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
2138
+ }, z.core.$strip>]>, z.ZodUnion<readonly [z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>, z.ZodObject<{
2139
+ kind: z.ZodLiteral<"feature">;
2140
+ reference: z.ZodObject<{
2141
+ nodeId: z.ZodString;
2142
+ featureId: z.ZodString;
2143
+ parameters: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodBoolean, z.ZodNumber]>>>;
2144
+ }, z.core.$strip>;
2145
+ fallback: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
2146
+ }, z.core.$strip>]>], null>;
2147
+ }, z.core.$strip>, z.ZodObject<{
2148
+ kind: z.ZodLiteral<"area">;
2149
+ base: z.ZodArray<z.ZodUnion<readonly [z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>, z.ZodObject<{
2150
+ kind: z.ZodLiteral<"feature">;
2151
+ reference: z.ZodObject<{
2152
+ nodeId: z.ZodString;
2153
+ featureId: z.ZodString;
2154
+ parameters: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodBoolean, z.ZodNumber]>>>;
2155
+ }, z.core.$strip>;
2156
+ fallback: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
2157
+ }, z.core.$strip>]>>;
2158
+ }, z.core.$strip>, z.ZodObject<{
2159
+ kind: z.ZodLiteral<"perimeter">;
2160
+ base: z.ZodArray<z.ZodUnion<readonly [z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>, z.ZodObject<{
2161
+ kind: z.ZodLiteral<"feature">;
2162
+ reference: z.ZodObject<{
2163
+ nodeId: z.ZodString;
2164
+ featureId: z.ZodString;
2165
+ parameters: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodBoolean, z.ZodNumber]>>>;
2166
+ }, z.core.$strip>;
2167
+ fallback: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
2168
+ }, z.core.$strip>]>>;
2169
+ }, z.core.$strip>, z.ZodObject<{
2170
+ kind: z.ZodLiteral<"volume">;
2171
+ base: z.ZodArray<z.ZodUnion<readonly [z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>, z.ZodObject<{
2172
+ kind: z.ZodLiteral<"feature">;
2173
+ reference: z.ZodObject<{
2174
+ nodeId: z.ZodString;
2175
+ featureId: z.ZodString;
2176
+ parameters: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodBoolean, z.ZodNumber]>>>;
2177
+ }, z.core.$strip>;
2178
+ fallback: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
2179
+ }, z.core.$strip>]>>;
2180
+ extrusion: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
2181
+ }, z.core.$strip>], "kind">;
1520
2182
  }, z.core.$strip>, z.ZodObject<{
1521
2183
  object: z.ZodDefault<z.ZodLiteral<"node">>;
1522
2184
  name: z.ZodOptional<z.ZodString>;
@@ -1557,7 +2219,7 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
1557
2219
  type: z.ZodDefault<z.ZodLiteral<"window">>;
1558
2220
  material: z.ZodOptional<z.ZodObject<{
1559
2221
  id: z.ZodOptional<z.ZodString>;
1560
- preset: z.ZodOptional<z.ZodEnum<{
2222
+ preset: z.ZodOptional<z.ZodCatch<z.ZodEnum<{
1561
2223
  custom: "custom";
1562
2224
  white: "white";
1563
2225
  brick: "brick";
@@ -1568,7 +2230,7 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
1568
2230
  plaster: "plaster";
1569
2231
  tile: "tile";
1570
2232
  marble: "marble";
1571
- }>>;
2233
+ }>>>;
1572
2234
  properties: z.ZodOptional<z.ZodObject<{
1573
2235
  color: z.ZodDefault<z.ZodString>;
1574
2236
  roughness: z.ZodDefault<z.ZodNumber>;
@@ -1587,6 +2249,7 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
1587
2249
  scale: z.ZodOptional<z.ZodNumber>;
1588
2250
  }, z.core.$strip>>;
1589
2251
  }, z.core.$strip>>;
2252
+ slots: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
1590
2253
  position: z.ZodDefault<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
1591
2254
  rotation: z.ZodDefault<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
1592
2255
  side: z.ZodOptional<z.ZodEnum<{
@@ -1594,6 +2257,13 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
1594
2257
  back: "back";
1595
2258
  }>>;
1596
2259
  wallId: z.ZodOptional<z.ZodString>;
2260
+ roofSegmentId: z.ZodOptional<z.ZodString>;
2261
+ roofFace: z.ZodOptional<z.ZodEnum<{
2262
+ front: "front";
2263
+ back: "back";
2264
+ right: "right";
2265
+ left: "left";
2266
+ }>>;
1597
2267
  width: z.ZodDefault<z.ZodNumber>;
1598
2268
  height: z.ZodDefault<z.ZodNumber>;
1599
2269
  openingKind: z.ZodDefault<z.ZodEnum<{
@@ -1622,8 +2292,8 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
1622
2292
  single: "single";
1623
2293
  }>>;
1624
2294
  hingesSide: z.ZodDefault<z.ZodEnum<{
1625
- left: "left";
1626
2295
  right: "right";
2296
+ left: "left";
1627
2297
  }>>;
1628
2298
  openingShape: z.ZodDefault<z.ZodEnum<{
1629
2299
  rectangle: "rectangle";
@@ -1667,7 +2337,7 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
1667
2337
  type: z.ZodDefault<z.ZodLiteral<"door">>;
1668
2338
  material: z.ZodOptional<z.ZodObject<{
1669
2339
  id: z.ZodOptional<z.ZodString>;
1670
- preset: z.ZodOptional<z.ZodEnum<{
2340
+ preset: z.ZodOptional<z.ZodCatch<z.ZodEnum<{
1671
2341
  custom: "custom";
1672
2342
  white: "white";
1673
2343
  brick: "brick";
@@ -1678,7 +2348,7 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
1678
2348
  plaster: "plaster";
1679
2349
  tile: "tile";
1680
2350
  marble: "marble";
1681
- }>>;
2351
+ }>>>;
1682
2352
  properties: z.ZodOptional<z.ZodObject<{
1683
2353
  color: z.ZodDefault<z.ZodString>;
1684
2354
  roughness: z.ZodDefault<z.ZodNumber>;
@@ -1697,6 +2367,7 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
1697
2367
  scale: z.ZodOptional<z.ZodNumber>;
1698
2368
  }, z.core.$strip>>;
1699
2369
  }, z.core.$strip>>;
2370
+ slots: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
1700
2371
  position: z.ZodDefault<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
1701
2372
  rotation: z.ZodDefault<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
1702
2373
  side: z.ZodOptional<z.ZodEnum<{
@@ -1704,6 +2375,13 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
1704
2375
  back: "back";
1705
2376
  }>>;
1706
2377
  wallId: z.ZodOptional<z.ZodString>;
2378
+ roofSegmentId: z.ZodOptional<z.ZodString>;
2379
+ roofFace: z.ZodOptional<z.ZodEnum<{
2380
+ front: "front";
2381
+ back: "back";
2382
+ right: "right";
2383
+ left: "left";
2384
+ }>>;
1707
2385
  width: z.ZodDefault<z.ZodNumber>;
1708
2386
  height: z.ZodDefault<z.ZodNumber>;
1709
2387
  doorCategory: z.ZodDefault<z.ZodEnum<{
@@ -1725,8 +2403,8 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
1725
2403
  leafCount: z.ZodDefault<z.ZodUnion<readonly [z.ZodLiteral<1>, z.ZodLiteral<2>, z.ZodLiteral<3>, z.ZodLiteral<4>]>>;
1726
2404
  operationState: z.ZodDefault<z.ZodNumber>;
1727
2405
  slideDirection: z.ZodDefault<z.ZodEnum<{
1728
- left: "left";
1729
2406
  right: "right";
2407
+ left: "left";
1730
2408
  }>>;
1731
2409
  trackStyle: z.ZodDefault<z.ZodEnum<{
1732
2410
  visible: "visible";
@@ -1757,8 +2435,8 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
1757
2435
  threshold: z.ZodDefault<z.ZodBoolean>;
1758
2436
  thresholdHeight: z.ZodDefault<z.ZodNumber>;
1759
2437
  hingesSide: z.ZodDefault<z.ZodEnum<{
1760
- left: "left";
1761
2438
  right: "right";
2439
+ left: "left";
1762
2440
  }>>;
1763
2441
  swingDirection: z.ZodDefault<z.ZodEnum<{
1764
2442
  inward: "inward";
@@ -1780,8 +2458,8 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
1780
2458
  handle: z.ZodDefault<z.ZodBoolean>;
1781
2459
  handleHeight: z.ZodDefault<z.ZodNumber>;
1782
2460
  handleSide: z.ZodDefault<z.ZodEnum<{
1783
- left: "left";
1784
2461
  right: "right";
2462
+ left: "left";
1785
2463
  }>>;
1786
2464
  contentPadding: z.ZodDefault<z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>>;
1787
2465
  doorCloser: z.ZodDefault<z.ZodBoolean>;
@@ -1807,7 +2485,7 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
1807
2485
  type: z.ZodDefault<z.ZodLiteral<"box-vent">>;
1808
2486
  material: z.ZodOptional<z.ZodObject<{
1809
2487
  id: z.ZodOptional<z.ZodString>;
1810
- preset: z.ZodOptional<z.ZodEnum<{
2488
+ preset: z.ZodOptional<z.ZodCatch<z.ZodEnum<{
1811
2489
  custom: "custom";
1812
2490
  white: "white";
1813
2491
  brick: "brick";
@@ -1818,7 +2496,7 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
1818
2496
  plaster: "plaster";
1819
2497
  tile: "tile";
1820
2498
  marble: "marble";
1821
- }>>;
2499
+ }>>>;
1822
2500
  properties: z.ZodOptional<z.ZodObject<{
1823
2501
  color: z.ZodDefault<z.ZodString>;
1824
2502
  roughness: z.ZodDefault<z.ZodNumber>;
@@ -1877,7 +2555,7 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
1877
2555
  type: z.ZodDefault<z.ZodLiteral<"ridge-vent">>;
1878
2556
  material: z.ZodOptional<z.ZodObject<{
1879
2557
  id: z.ZodOptional<z.ZodString>;
1880
- preset: z.ZodOptional<z.ZodEnum<{
2558
+ preset: z.ZodOptional<z.ZodCatch<z.ZodEnum<{
1881
2559
  custom: "custom";
1882
2560
  white: "white";
1883
2561
  brick: "brick";
@@ -1888,7 +2566,7 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
1888
2566
  plaster: "plaster";
1889
2567
  tile: "tile";
1890
2568
  marble: "marble";
1891
- }>>;
2569
+ }>>>;
1892
2570
  properties: z.ZodOptional<z.ZodObject<{
1893
2571
  color: z.ZodDefault<z.ZodString>;
1894
2572
  roughness: z.ZodDefault<z.ZodNumber>;
@@ -1907,7 +2585,7 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
1907
2585
  scale: z.ZodOptional<z.ZodNumber>;
1908
2586
  }, z.core.$strip>>;
1909
2587
  }, z.core.$strip>>;
1910
- materialPreset: z.ZodDefault<z.ZodString>;
2588
+ materialPreset: z.ZodOptional<z.ZodString>;
1911
2589
  roofSegmentId: z.ZodOptional<z.ZodString>;
1912
2590
  position: z.ZodDefault<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
1913
2591
  rotation: z.ZodDefault<z.ZodNumber>;
@@ -1940,7 +2618,7 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
1940
2618
  type: z.ZodDefault<z.ZodLiteral<"turbine-vent">>;
1941
2619
  material: z.ZodOptional<z.ZodObject<{
1942
2620
  id: z.ZodOptional<z.ZodString>;
1943
- preset: z.ZodOptional<z.ZodEnum<{
2621
+ preset: z.ZodOptional<z.ZodCatch<z.ZodEnum<{
1944
2622
  custom: "custom";
1945
2623
  white: "white";
1946
2624
  brick: "brick";
@@ -1951,7 +2629,7 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
1951
2629
  plaster: "plaster";
1952
2630
  tile: "tile";
1953
2631
  marble: "marble";
1954
- }>>;
2632
+ }>>>;
1955
2633
  properties: z.ZodOptional<z.ZodObject<{
1956
2634
  color: z.ZodDefault<z.ZodString>;
1957
2635
  roughness: z.ZodDefault<z.ZodNumber>;
@@ -2004,7 +2682,7 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
2004
2682
  type: z.ZodDefault<z.ZodLiteral<"cupola">>;
2005
2683
  material: z.ZodOptional<z.ZodObject<{
2006
2684
  id: z.ZodOptional<z.ZodString>;
2007
- preset: z.ZodOptional<z.ZodEnum<{
2685
+ preset: z.ZodOptional<z.ZodCatch<z.ZodEnum<{
2008
2686
  custom: "custom";
2009
2687
  white: "white";
2010
2688
  brick: "brick";
@@ -2015,7 +2693,7 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
2015
2693
  plaster: "plaster";
2016
2694
  tile: "tile";
2017
2695
  marble: "marble";
2018
- }>>;
2696
+ }>>>;
2019
2697
  properties: z.ZodOptional<z.ZodObject<{
2020
2698
  color: z.ZodDefault<z.ZodString>;
2021
2699
  roughness: z.ZodDefault<z.ZodNumber>;
@@ -2066,7 +2744,7 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
2066
2744
  type: z.ZodDefault<z.ZodLiteral<"eyebrow-vent">>;
2067
2745
  material: z.ZodOptional<z.ZodObject<{
2068
2746
  id: z.ZodOptional<z.ZodString>;
2069
- preset: z.ZodOptional<z.ZodEnum<{
2747
+ preset: z.ZodOptional<z.ZodCatch<z.ZodEnum<{
2070
2748
  custom: "custom";
2071
2749
  white: "white";
2072
2750
  brick: "brick";
@@ -2077,7 +2755,7 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
2077
2755
  plaster: "plaster";
2078
2756
  tile: "tile";
2079
2757
  marble: "marble";
2080
- }>>;
2758
+ }>>>;
2081
2759
  properties: z.ZodOptional<z.ZodObject<{
2082
2760
  color: z.ZodDefault<z.ZodString>;
2083
2761
  roughness: z.ZodDefault<z.ZodNumber>;
@@ -2130,7 +2808,7 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
2130
2808
  type: z.ZodDefault<z.ZodLiteral<"gutter">>;
2131
2809
  material: z.ZodOptional<z.ZodObject<{
2132
2810
  id: z.ZodOptional<z.ZodString>;
2133
- preset: z.ZodOptional<z.ZodEnum<{
2811
+ preset: z.ZodOptional<z.ZodCatch<z.ZodEnum<{
2134
2812
  custom: "custom";
2135
2813
  white: "white";
2136
2814
  brick: "brick";
@@ -2141,7 +2819,7 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
2141
2819
  plaster: "plaster";
2142
2820
  tile: "tile";
2143
2821
  marble: "marble";
2144
- }>>;
2822
+ }>>>;
2145
2823
  properties: z.ZodOptional<z.ZodObject<{
2146
2824
  color: z.ZodDefault<z.ZodString>;
2147
2825
  roughness: z.ZodDefault<z.ZodNumber>;
@@ -2204,7 +2882,7 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
2204
2882
  type: z.ZodDefault<z.ZodLiteral<"chimney">>;
2205
2883
  material: z.ZodOptional<z.ZodObject<{
2206
2884
  id: z.ZodOptional<z.ZodString>;
2207
- preset: z.ZodOptional<z.ZodEnum<{
2885
+ preset: z.ZodOptional<z.ZodCatch<z.ZodEnum<{
2208
2886
  custom: "custom";
2209
2887
  white: "white";
2210
2888
  brick: "brick";
@@ -2215,7 +2893,7 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
2215
2893
  plaster: "plaster";
2216
2894
  tile: "tile";
2217
2895
  marble: "marble";
2218
- }>>;
2896
+ }>>>;
2219
2897
  properties: z.ZodOptional<z.ZodObject<{
2220
2898
  color: z.ZodDefault<z.ZodString>;
2221
2899
  roughness: z.ZodDefault<z.ZodNumber>;
@@ -2237,7 +2915,7 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
2237
2915
  materialPreset: z.ZodOptional<z.ZodString>;
2238
2916
  topMaterial: z.ZodOptional<z.ZodObject<{
2239
2917
  id: z.ZodOptional<z.ZodString>;
2240
- preset: z.ZodOptional<z.ZodEnum<{
2918
+ preset: z.ZodOptional<z.ZodCatch<z.ZodEnum<{
2241
2919
  custom: "custom";
2242
2920
  white: "white";
2243
2921
  brick: "brick";
@@ -2248,7 +2926,7 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
2248
2926
  plaster: "plaster";
2249
2927
  tile: "tile";
2250
2928
  marble: "marble";
2251
- }>>;
2929
+ }>>>;
2252
2930
  properties: z.ZodOptional<z.ZodObject<{
2253
2931
  color: z.ZodDefault<z.ZodString>;
2254
2932
  roughness: z.ZodDefault<z.ZodNumber>;
@@ -2353,7 +3031,7 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
2353
3031
  type: z.ZodDefault<z.ZodLiteral<"solar-panel">>;
2354
3032
  material: z.ZodOptional<z.ZodObject<{
2355
3033
  id: z.ZodOptional<z.ZodString>;
2356
- preset: z.ZodOptional<z.ZodEnum<{
3034
+ preset: z.ZodOptional<z.ZodCatch<z.ZodEnum<{
2357
3035
  custom: "custom";
2358
3036
  white: "white";
2359
3037
  brick: "brick";
@@ -2364,7 +3042,7 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
2364
3042
  plaster: "plaster";
2365
3043
  tile: "tile";
2366
3044
  marble: "marble";
2367
- }>>;
3045
+ }>>>;
2368
3046
  properties: z.ZodOptional<z.ZodObject<{
2369
3047
  color: z.ZodDefault<z.ZodString>;
2370
3048
  roughness: z.ZodDefault<z.ZodNumber>;
@@ -2386,7 +3064,7 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
2386
3064
  materialPreset: z.ZodOptional<z.ZodString>;
2387
3065
  panelMaterial: z.ZodOptional<z.ZodObject<{
2388
3066
  id: z.ZodOptional<z.ZodString>;
2389
- preset: z.ZodOptional<z.ZodEnum<{
3067
+ preset: z.ZodOptional<z.ZodCatch<z.ZodEnum<{
2390
3068
  custom: "custom";
2391
3069
  white: "white";
2392
3070
  brick: "brick";
@@ -2397,7 +3075,7 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
2397
3075
  plaster: "plaster";
2398
3076
  tile: "tile";
2399
3077
  marble: "marble";
2400
- }>>;
3078
+ }>>>;
2401
3079
  properties: z.ZodOptional<z.ZodObject<{
2402
3080
  color: z.ZodDefault<z.ZodString>;
2403
3081
  roughness: z.ZodDefault<z.ZodNumber>;
@@ -2461,7 +3139,7 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
2461
3139
  type: z.ZodDefault<z.ZodLiteral<"skylight">>;
2462
3140
  material: z.ZodOptional<z.ZodObject<{
2463
3141
  id: z.ZodOptional<z.ZodString>;
2464
- preset: z.ZodOptional<z.ZodEnum<{
3142
+ preset: z.ZodOptional<z.ZodCatch<z.ZodEnum<{
2465
3143
  custom: "custom";
2466
3144
  white: "white";
2467
3145
  brick: "brick";
@@ -2472,7 +3150,7 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
2472
3150
  plaster: "plaster";
2473
3151
  tile: "tile";
2474
3152
  marble: "marble";
2475
- }>>;
3153
+ }>>>;
2476
3154
  properties: z.ZodOptional<z.ZodObject<{
2477
3155
  color: z.ZodDefault<z.ZodString>;
2478
3156
  roughness: z.ZodDefault<z.ZodNumber>;
@@ -2494,7 +3172,7 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
2494
3172
  materialPreset: z.ZodOptional<z.ZodString>;
2495
3173
  glassMaterial: z.ZodOptional<z.ZodObject<{
2496
3174
  id: z.ZodOptional<z.ZodString>;
2497
- preset: z.ZodOptional<z.ZodEnum<{
3175
+ preset: z.ZodOptional<z.ZodCatch<z.ZodEnum<{
2498
3176
  custom: "custom";
2499
3177
  white: "white";
2500
3178
  brick: "brick";
@@ -2505,7 +3183,7 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
2505
3183
  plaster: "plaster";
2506
3184
  tile: "tile";
2507
3185
  marble: "marble";
2508
- }>>;
3186
+ }>>>;
2509
3187
  properties: z.ZodOptional<z.ZodObject<{
2510
3188
  color: z.ZodDefault<z.ZodString>;
2511
3189
  roughness: z.ZodDefault<z.ZodNumber>;
@@ -2544,17 +3222,17 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
2544
3222
  lanternTopScale: z.ZodDefault<z.ZodNumber>;
2545
3223
  openingAngle: z.ZodDefault<z.ZodNumber>;
2546
3224
  openingSide: z.ZodDefault<z.ZodEnum<{
3225
+ right: "right";
3226
+ left: "left";
2547
3227
  top: "top";
2548
3228
  bottom: "bottom";
2549
- left: "left";
2550
- right: "right";
2551
3229
  }>>;
2552
3230
  operationState: z.ZodDefault<z.ZodNumber>;
2553
3231
  motorHousing: z.ZodDefault<z.ZodBoolean>;
2554
3232
  slideFraction: z.ZodDefault<z.ZodNumber>;
2555
3233
  slideDirection: z.ZodDefault<z.ZodEnum<{
2556
- x: "x";
2557
3234
  z: "z";
3235
+ x: "x";
2558
3236
  }>>;
2559
3237
  trackWidth: z.ZodDefault<z.ZodNumber>;
2560
3238
  motorHousingSize: z.ZodDefault<z.ZodNumber>;
@@ -2582,7 +3260,7 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
2582
3260
  type: z.ZodDefault<z.ZodLiteral<"dormer">>;
2583
3261
  material: z.ZodOptional<z.ZodObject<{
2584
3262
  id: z.ZodOptional<z.ZodString>;
2585
- preset: z.ZodOptional<z.ZodEnum<{
3263
+ preset: z.ZodOptional<z.ZodCatch<z.ZodEnum<{
2586
3264
  custom: "custom";
2587
3265
  white: "white";
2588
3266
  brick: "brick";
@@ -2593,7 +3271,7 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
2593
3271
  plaster: "plaster";
2594
3272
  tile: "tile";
2595
3273
  marble: "marble";
2596
- }>>;
3274
+ }>>>;
2597
3275
  properties: z.ZodOptional<z.ZodObject<{
2598
3276
  color: z.ZodDefault<z.ZodString>;
2599
3277
  roughness: z.ZodDefault<z.ZodNumber>;
@@ -2615,7 +3293,7 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
2615
3293
  materialPreset: z.ZodOptional<z.ZodString>;
2616
3294
  topMaterial: z.ZodOptional<z.ZodObject<{
2617
3295
  id: z.ZodOptional<z.ZodString>;
2618
- preset: z.ZodOptional<z.ZodEnum<{
3296
+ preset: z.ZodOptional<z.ZodCatch<z.ZodEnum<{
2619
3297
  custom: "custom";
2620
3298
  white: "white";
2621
3299
  brick: "brick";
@@ -2626,7 +3304,7 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
2626
3304
  plaster: "plaster";
2627
3305
  tile: "tile";
2628
3306
  marble: "marble";
2629
- }>>;
3307
+ }>>>;
2630
3308
  properties: z.ZodOptional<z.ZodObject<{
2631
3309
  color: z.ZodDefault<z.ZodString>;
2632
3310
  roughness: z.ZodDefault<z.ZodNumber>;
@@ -2648,7 +3326,7 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
2648
3326
  topMaterialPreset: z.ZodOptional<z.ZodString>;
2649
3327
  sideMaterial: z.ZodOptional<z.ZodObject<{
2650
3328
  id: z.ZodOptional<z.ZodString>;
2651
- preset: z.ZodOptional<z.ZodEnum<{
3329
+ preset: z.ZodOptional<z.ZodCatch<z.ZodEnum<{
2652
3330
  custom: "custom";
2653
3331
  white: "white";
2654
3332
  brick: "brick";
@@ -2659,7 +3337,7 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
2659
3337
  plaster: "plaster";
2660
3338
  tile: "tile";
2661
3339
  marble: "marble";
2662
- }>>;
3340
+ }>>>;
2663
3341
  properties: z.ZodOptional<z.ZodObject<{
2664
3342
  color: z.ZodDefault<z.ZodString>;
2665
3343
  roughness: z.ZodDefault<z.ZodNumber>;
@@ -2681,7 +3359,7 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
2681
3359
  sideMaterialPreset: z.ZodOptional<z.ZodString>;
2682
3360
  wallMaterial: z.ZodOptional<z.ZodObject<{
2683
3361
  id: z.ZodOptional<z.ZodString>;
2684
- preset: z.ZodOptional<z.ZodEnum<{
3362
+ preset: z.ZodOptional<z.ZodCatch<z.ZodEnum<{
2685
3363
  custom: "custom";
2686
3364
  white: "white";
2687
3365
  brick: "brick";
@@ -2692,7 +3370,7 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
2692
3370
  plaster: "plaster";
2693
3371
  tile: "tile";
2694
3372
  marble: "marble";
2695
- }>>;
3373
+ }>>>;
2696
3374
  properties: z.ZodOptional<z.ZodObject<{
2697
3375
  color: z.ZodDefault<z.ZodString>;
2698
3376
  roughness: z.ZodDefault<z.ZodNumber>;
@@ -2768,7 +3446,7 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
2768
3446
  type: z.ZodDefault<z.ZodLiteral<"downspout">>;
2769
3447
  material: z.ZodOptional<z.ZodObject<{
2770
3448
  id: z.ZodOptional<z.ZodString>;
2771
- preset: z.ZodOptional<z.ZodEnum<{
3449
+ preset: z.ZodOptional<z.ZodCatch<z.ZodEnum<{
2772
3450
  custom: "custom";
2773
3451
  white: "white";
2774
3452
  brick: "brick";
@@ -2779,7 +3457,7 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
2779
3457
  plaster: "plaster";
2780
3458
  tile: "tile";
2781
3459
  marble: "marble";
2782
- }>>;
3460
+ }>>>;
2783
3461
  properties: z.ZodOptional<z.ZodObject<{
2784
3462
  color: z.ZodDefault<z.ZodString>;
2785
3463
  roughness: z.ZodDefault<z.ZodNumber>;
@@ -2819,6 +3497,323 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
2819
3497
  splash: "splash";
2820
3498
  kickout: "kickout";
2821
3499
  }>>;
3500
+ }, z.core.$strip>, z.ZodObject<{
3501
+ object: z.ZodDefault<z.ZodLiteral<"node">>;
3502
+ name: z.ZodOptional<z.ZodString>;
3503
+ parentId: z.ZodDefault<z.ZodNullable<z.ZodString>>;
3504
+ visible: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
3505
+ camera: z.ZodOptional<z.ZodObject<{
3506
+ position: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
3507
+ target: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
3508
+ mode: z.ZodDefault<z.ZodEnum<{
3509
+ perspective: "perspective";
3510
+ orthographic: "orthographic";
3511
+ }>>;
3512
+ fov: z.ZodOptional<z.ZodNumber>;
3513
+ zoom: z.ZodOptional<z.ZodNumber>;
3514
+ }, z.core.$strip>>;
3515
+ metadata: z.ZodDefault<z.ZodOptional<z.ZodJSONSchema>>;
3516
+ id: z.ZodDefault<z.ZodTemplateLiteral<`duct-segment_${string}`>>;
3517
+ type: z.ZodDefault<z.ZodLiteral<"duct-segment">>;
3518
+ path: z.ZodArray<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
3519
+ shape: z.ZodDefault<z.ZodEnum<{
3520
+ round: "round";
3521
+ rect: "rect";
3522
+ oval: "oval";
3523
+ }>>;
3524
+ diameter: z.ZodDefault<z.ZodNumber>;
3525
+ width: z.ZodDefault<z.ZodNumber>;
3526
+ height: z.ZodDefault<z.ZodNumber>;
3527
+ roll: z.ZodDefault<z.ZodNumber>;
3528
+ ductMaterial: z.ZodDefault<z.ZodEnum<{
3529
+ spiral: "spiral";
3530
+ "sheet-metal": "sheet-metal";
3531
+ flex: "flex";
3532
+ "duct-board": "duct-board";
3533
+ }>>;
3534
+ seamDetail: z.ZodDefault<z.ZodBoolean>;
3535
+ insulated: z.ZodDefault<z.ZodBoolean>;
3536
+ insulationR: z.ZodDefault<z.ZodNumber>;
3537
+ system: z.ZodDefault<z.ZodEnum<{
3538
+ supply: "supply";
3539
+ return: "return";
3540
+ }>>;
3541
+ slots: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
3542
+ }, z.core.$strip>, z.ZodObject<{
3543
+ object: z.ZodDefault<z.ZodLiteral<"node">>;
3544
+ name: z.ZodOptional<z.ZodString>;
3545
+ parentId: z.ZodDefault<z.ZodNullable<z.ZodString>>;
3546
+ visible: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
3547
+ camera: z.ZodOptional<z.ZodObject<{
3548
+ position: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
3549
+ target: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
3550
+ mode: z.ZodDefault<z.ZodEnum<{
3551
+ perspective: "perspective";
3552
+ orthographic: "orthographic";
3553
+ }>>;
3554
+ fov: z.ZodOptional<z.ZodNumber>;
3555
+ zoom: z.ZodOptional<z.ZodNumber>;
3556
+ }, z.core.$strip>>;
3557
+ metadata: z.ZodDefault<z.ZodOptional<z.ZodJSONSchema>>;
3558
+ id: z.ZodDefault<z.ZodTemplateLiteral<`duct-fitting_${string}`>>;
3559
+ type: z.ZodDefault<z.ZodLiteral<"duct-fitting">>;
3560
+ position: z.ZodDefault<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
3561
+ rotation: z.ZodDefault<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
3562
+ fittingType: z.ZodDefault<z.ZodEnum<{
3563
+ elbow: "elbow";
3564
+ tee: "tee";
3565
+ cross: "cross";
3566
+ reducer: "reducer";
3567
+ transition: "transition";
3568
+ }>>;
3569
+ shape: z.ZodDefault<z.ZodEnum<{
3570
+ round: "round";
3571
+ rect: "rect";
3572
+ oval: "oval";
3573
+ }>>;
3574
+ width: z.ZodDefault<z.ZodNumber>;
3575
+ height: z.ZodDefault<z.ZodNumber>;
3576
+ shape2: z.ZodDefault<z.ZodEnum<{
3577
+ round: "round";
3578
+ rect: "rect";
3579
+ oval: "oval";
3580
+ }>>;
3581
+ width2: z.ZodDefault<z.ZodNumber>;
3582
+ height2: z.ZodDefault<z.ZodNumber>;
3583
+ angle: z.ZodDefault<z.ZodNumber>;
3584
+ branchAngle: z.ZodDefault<z.ZodNumber>;
3585
+ diameter: z.ZodDefault<z.ZodNumber>;
3586
+ diameter2: z.ZodDefault<z.ZodNumber>;
3587
+ ductMaterial: z.ZodDefault<z.ZodEnum<{
3588
+ "sheet-metal": "sheet-metal";
3589
+ flex: "flex";
3590
+ "duct-board": "duct-board";
3591
+ }>>;
3592
+ system: z.ZodDefault<z.ZodEnum<{
3593
+ supply: "supply";
3594
+ return: "return";
3595
+ }>>;
3596
+ slots: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
3597
+ }, z.core.$strip>, z.ZodObject<{
3598
+ object: z.ZodDefault<z.ZodLiteral<"node">>;
3599
+ name: z.ZodOptional<z.ZodString>;
3600
+ parentId: z.ZodDefault<z.ZodNullable<z.ZodString>>;
3601
+ visible: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
3602
+ camera: z.ZodOptional<z.ZodObject<{
3603
+ position: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
3604
+ target: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
3605
+ mode: z.ZodDefault<z.ZodEnum<{
3606
+ perspective: "perspective";
3607
+ orthographic: "orthographic";
3608
+ }>>;
3609
+ fov: z.ZodOptional<z.ZodNumber>;
3610
+ zoom: z.ZodOptional<z.ZodNumber>;
3611
+ }, z.core.$strip>>;
3612
+ metadata: z.ZodDefault<z.ZodOptional<z.ZodJSONSchema>>;
3613
+ id: z.ZodDefault<z.ZodTemplateLiteral<`duct-terminal_${string}`>>;
3614
+ type: z.ZodDefault<z.ZodLiteral<"duct-terminal">>;
3615
+ position: z.ZodDefault<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
3616
+ rotation: z.ZodDefault<z.ZodNumber>;
3617
+ terminalType: z.ZodDefault<z.ZodEnum<{
3618
+ "supply-register": "supply-register";
3619
+ diffuser: "diffuser";
3620
+ "return-grille": "return-grille";
3621
+ }>>;
3622
+ mount: z.ZodDefault<z.ZodEnum<{
3623
+ wall: "wall";
3624
+ ceiling: "ceiling";
3625
+ floor: "floor";
3626
+ }>>;
3627
+ width: z.ZodDefault<z.ZodNumber>;
3628
+ depth: z.ZodDefault<z.ZodNumber>;
3629
+ collarShape: z.ZodDefault<z.ZodEnum<{
3630
+ round: "round";
3631
+ rect: "rect";
3632
+ oval: "oval";
3633
+ }>>;
3634
+ collarDiameter: z.ZodDefault<z.ZodNumber>;
3635
+ collarWidth: z.ZodDefault<z.ZodNumber>;
3636
+ collarHeight: z.ZodDefault<z.ZodNumber>;
3637
+ }, z.core.$strip>, z.ZodObject<{
3638
+ object: z.ZodDefault<z.ZodLiteral<"node">>;
3639
+ name: z.ZodOptional<z.ZodString>;
3640
+ parentId: z.ZodDefault<z.ZodNullable<z.ZodString>>;
3641
+ visible: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
3642
+ camera: z.ZodOptional<z.ZodObject<{
3643
+ position: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
3644
+ target: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
3645
+ mode: z.ZodDefault<z.ZodEnum<{
3646
+ perspective: "perspective";
3647
+ orthographic: "orthographic";
3648
+ }>>;
3649
+ fov: z.ZodOptional<z.ZodNumber>;
3650
+ zoom: z.ZodOptional<z.ZodNumber>;
3651
+ }, z.core.$strip>>;
3652
+ metadata: z.ZodDefault<z.ZodOptional<z.ZodJSONSchema>>;
3653
+ id: z.ZodDefault<z.ZodTemplateLiteral<`hvac-equipment_${string}`>>;
3654
+ type: z.ZodDefault<z.ZodLiteral<"hvac-equipment">>;
3655
+ position: z.ZodDefault<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
3656
+ rotation: z.ZodDefault<z.ZodNumber>;
3657
+ equipmentType: z.ZodDefault<z.ZodEnum<{
3658
+ furnace: "furnace";
3659
+ "air-handler": "air-handler";
3660
+ condenser: "condenser";
3661
+ }>>;
3662
+ width: z.ZodDefault<z.ZodNumber>;
3663
+ depth: z.ZodDefault<z.ZodNumber>;
3664
+ height: z.ZodDefault<z.ZodNumber>;
3665
+ supplyShape: z.ZodDefault<z.ZodEnum<{
3666
+ round: "round";
3667
+ rect: "rect";
3668
+ oval: "oval";
3669
+ }>>;
3670
+ returnShape: z.ZodDefault<z.ZodEnum<{
3671
+ round: "round";
3672
+ rect: "rect";
3673
+ oval: "oval";
3674
+ }>>;
3675
+ supplyDiameter: z.ZodDefault<z.ZodNumber>;
3676
+ returnDiameter: z.ZodDefault<z.ZodNumber>;
3677
+ supplyWidth: z.ZodDefault<z.ZodNumber>;
3678
+ supplyHeight: z.ZodDefault<z.ZodNumber>;
3679
+ returnWidth: z.ZodDefault<z.ZodNumber>;
3680
+ returnHeight: z.ZodDefault<z.ZodNumber>;
3681
+ }, z.core.$strip>, z.ZodObject<{
3682
+ object: z.ZodDefault<z.ZodLiteral<"node">>;
3683
+ name: z.ZodOptional<z.ZodString>;
3684
+ parentId: z.ZodDefault<z.ZodNullable<z.ZodString>>;
3685
+ visible: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
3686
+ camera: z.ZodOptional<z.ZodObject<{
3687
+ position: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
3688
+ target: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
3689
+ mode: z.ZodDefault<z.ZodEnum<{
3690
+ perspective: "perspective";
3691
+ orthographic: "orthographic";
3692
+ }>>;
3693
+ fov: z.ZodOptional<z.ZodNumber>;
3694
+ zoom: z.ZodOptional<z.ZodNumber>;
3695
+ }, z.core.$strip>>;
3696
+ metadata: z.ZodDefault<z.ZodOptional<z.ZodJSONSchema>>;
3697
+ id: z.ZodDefault<z.ZodTemplateLiteral<`lineset_${string}`>>;
3698
+ type: z.ZodDefault<z.ZodLiteral<"lineset">>;
3699
+ path: z.ZodArray<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
3700
+ suctionDiameter: z.ZodDefault<z.ZodNumber>;
3701
+ liquidDiameter: z.ZodDefault<z.ZodNumber>;
3702
+ insulated: z.ZodDefault<z.ZodBoolean>;
3703
+ }, z.core.$strip>, z.ZodObject<{
3704
+ object: z.ZodDefault<z.ZodLiteral<"node">>;
3705
+ name: z.ZodOptional<z.ZodString>;
3706
+ parentId: z.ZodDefault<z.ZodNullable<z.ZodString>>;
3707
+ visible: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
3708
+ camera: z.ZodOptional<z.ZodObject<{
3709
+ position: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
3710
+ target: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
3711
+ mode: z.ZodDefault<z.ZodEnum<{
3712
+ perspective: "perspective";
3713
+ orthographic: "orthographic";
3714
+ }>>;
3715
+ fov: z.ZodOptional<z.ZodNumber>;
3716
+ zoom: z.ZodOptional<z.ZodNumber>;
3717
+ }, z.core.$strip>>;
3718
+ metadata: z.ZodDefault<z.ZodOptional<z.ZodJSONSchema>>;
3719
+ id: z.ZodDefault<z.ZodTemplateLiteral<`liquid-line_${string}`>>;
3720
+ type: z.ZodDefault<z.ZodLiteral<"liquid-line">>;
3721
+ path: z.ZodArray<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
3722
+ diameter: z.ZodDefault<z.ZodNumber>;
3723
+ }, z.core.$strip>, z.ZodObject<{
3724
+ object: z.ZodDefault<z.ZodLiteral<"node">>;
3725
+ name: z.ZodOptional<z.ZodString>;
3726
+ parentId: z.ZodDefault<z.ZodNullable<z.ZodString>>;
3727
+ visible: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
3728
+ camera: z.ZodOptional<z.ZodObject<{
3729
+ position: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
3730
+ target: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
3731
+ mode: z.ZodDefault<z.ZodEnum<{
3732
+ perspective: "perspective";
3733
+ orthographic: "orthographic";
3734
+ }>>;
3735
+ fov: z.ZodOptional<z.ZodNumber>;
3736
+ zoom: z.ZodOptional<z.ZodNumber>;
3737
+ }, z.core.$strip>>;
3738
+ metadata: z.ZodDefault<z.ZodOptional<z.ZodJSONSchema>>;
3739
+ id: z.ZodDefault<z.ZodTemplateLiteral<`pipe-segment_${string}`>>;
3740
+ type: z.ZodDefault<z.ZodLiteral<"pipe-segment">>;
3741
+ path: z.ZodArray<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
3742
+ diameter: z.ZodDefault<z.ZodNumber>;
3743
+ pipeMaterial: z.ZodDefault<z.ZodEnum<{
3744
+ pvc: "pvc";
3745
+ abs: "abs";
3746
+ "cast-iron": "cast-iron";
3747
+ }>>;
3748
+ system: z.ZodDefault<z.ZodEnum<{
3749
+ waste: "waste";
3750
+ vent: "vent";
3751
+ }>>;
3752
+ }, z.core.$strip>, z.ZodObject<{
3753
+ object: z.ZodDefault<z.ZodLiteral<"node">>;
3754
+ name: z.ZodOptional<z.ZodString>;
3755
+ parentId: z.ZodDefault<z.ZodNullable<z.ZodString>>;
3756
+ visible: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
3757
+ camera: z.ZodOptional<z.ZodObject<{
3758
+ position: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
3759
+ target: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
3760
+ mode: z.ZodDefault<z.ZodEnum<{
3761
+ perspective: "perspective";
3762
+ orthographic: "orthographic";
3763
+ }>>;
3764
+ fov: z.ZodOptional<z.ZodNumber>;
3765
+ zoom: z.ZodOptional<z.ZodNumber>;
3766
+ }, z.core.$strip>>;
3767
+ metadata: z.ZodDefault<z.ZodOptional<z.ZodJSONSchema>>;
3768
+ id: z.ZodDefault<z.ZodTemplateLiteral<`pipe-fitting_${string}`>>;
3769
+ type: z.ZodDefault<z.ZodLiteral<"pipe-fitting">>;
3770
+ position: z.ZodDefault<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
3771
+ rotation: z.ZodDefault<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
3772
+ fittingType: z.ZodDefault<z.ZodEnum<{
3773
+ elbow: "elbow";
3774
+ cross: "cross";
3775
+ wye: "wye";
3776
+ "sanitary-tee": "sanitary-tee";
3777
+ }>>;
3778
+ angle: z.ZodDefault<z.ZodNumber>;
3779
+ diameter: z.ZodDefault<z.ZodNumber>;
3780
+ diameter2: z.ZodDefault<z.ZodNumber>;
3781
+ pipeMaterial: z.ZodDefault<z.ZodEnum<{
3782
+ pvc: "pvc";
3783
+ abs: "abs";
3784
+ "cast-iron": "cast-iron";
3785
+ }>>;
3786
+ system: z.ZodDefault<z.ZodEnum<{
3787
+ waste: "waste";
3788
+ vent: "vent";
3789
+ }>>;
3790
+ }, z.core.$strip>, z.ZodObject<{
3791
+ object: z.ZodDefault<z.ZodLiteral<"node">>;
3792
+ name: z.ZodOptional<z.ZodString>;
3793
+ parentId: z.ZodDefault<z.ZodNullable<z.ZodString>>;
3794
+ visible: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
3795
+ camera: z.ZodOptional<z.ZodObject<{
3796
+ position: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
3797
+ target: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
3798
+ mode: z.ZodDefault<z.ZodEnum<{
3799
+ perspective: "perspective";
3800
+ orthographic: "orthographic";
3801
+ }>>;
3802
+ fov: z.ZodOptional<z.ZodNumber>;
3803
+ zoom: z.ZodOptional<z.ZodNumber>;
3804
+ }, z.core.$strip>>;
3805
+ metadata: z.ZodDefault<z.ZodOptional<z.ZodJSONSchema>>;
3806
+ id: z.ZodDefault<z.ZodTemplateLiteral<`pipe-trap_${string}`>>;
3807
+ type: z.ZodDefault<z.ZodLiteral<"pipe-trap">>;
3808
+ position: z.ZodDefault<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
3809
+ rotation: z.ZodDefault<z.ZodNumber>;
3810
+ diameter: z.ZodDefault<z.ZodNumber>;
3811
+ pipeMaterial: z.ZodDefault<z.ZodEnum<{
3812
+ pvc: "pvc";
3813
+ abs: "abs";
3814
+ "cast-iron": "cast-iron";
3815
+ }>>;
3816
+ armLengthM: z.ZodDefault<z.ZodNumber>;
2822
3817
  }, z.core.$strip>], "type">;
2823
3818
  export type AnyNode = z.infer<typeof AnyNode>;
2824
3819
  export type AnyNodeType = AnyNode['type'];