@pascal-app/core 0.8.0 → 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 (471) hide show
  1. package/dist/events/bus.d.ts +67 -13
  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 +14 -23
  7. package/dist/hooks/scene-registry/scene-registry.d.ts.map +1 -1
  8. package/dist/hooks/scene-registry/scene-registry.js +59 -26
  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.d.ts +14 -0
  13. package/dist/hooks/spatial-grid/floor-placed-elevation.d.ts.map +1 -0
  14. package/dist/hooks/spatial-grid/floor-placed-elevation.js +51 -0
  15. package/dist/hooks/spatial-grid/floor-placed-elevation.test.d.ts +2 -0
  16. package/dist/hooks/spatial-grid/floor-placed-elevation.test.d.ts.map +1 -0
  17. package/dist/hooks/spatial-grid/floor-placed-elevation.test.js +366 -0
  18. package/dist/hooks/spatial-grid/spatial-grid-manager.d.ts +79 -11
  19. package/dist/hooks/spatial-grid/spatial-grid-manager.d.ts.map +1 -1
  20. package/dist/hooks/spatial-grid/spatial-grid-manager.js +508 -141
  21. package/dist/hooks/spatial-grid/spatial-grid-sync.d.ts +28 -1
  22. package/dist/hooks/spatial-grid/spatial-grid-sync.d.ts.map +1 -1
  23. package/dist/hooks/spatial-grid/spatial-grid-sync.js +109 -18
  24. package/dist/hooks/spatial-grid/wall-slab-overlap.test.d.ts +2 -0
  25. package/dist/hooks/spatial-grid/wall-slab-overlap.test.d.ts.map +1 -0
  26. package/dist/hooks/spatial-grid/wall-slab-overlap.test.js +363 -0
  27. package/dist/index.d.ts +36 -8
  28. package/dist/index.d.ts.map +1 -1
  29. package/dist/index.js +33 -6
  30. package/dist/lib/level-name.d.ts +4 -0
  31. package/dist/lib/level-name.d.ts.map +1 -0
  32. package/dist/lib/level-name.js +10 -0
  33. package/dist/lib/measurement-geometry.d.ts +19 -0
  34. package/dist/lib/measurement-geometry.d.ts.map +1 -0
  35. package/dist/lib/measurement-geometry.js +232 -0
  36. package/dist/lib/measurement-geometry.test.d.ts +2 -0
  37. package/dist/lib/measurement-geometry.test.d.ts.map +1 -0
  38. package/dist/lib/measurement-geometry.test.js +102 -0
  39. package/dist/lib/polygon-geometry.d.ts +0 -1
  40. package/dist/lib/polygon-geometry.d.ts.map +1 -1
  41. package/dist/lib/polygon-geometry.js +0 -18
  42. package/dist/lib/polygon-relations.d.ts +10 -0
  43. package/dist/lib/polygon-relations.d.ts.map +1 -0
  44. package/dist/lib/polygon-relations.js +73 -0
  45. package/dist/lib/selection-proxy.d.ts +4 -0
  46. package/dist/lib/selection-proxy.d.ts.map +1 -0
  47. package/dist/lib/selection-proxy.js +12 -0
  48. package/dist/lib/slab-polygon.d.ts +31 -2
  49. package/dist/lib/slab-polygon.d.ts.map +1 -1
  50. package/dist/lib/slab-polygon.js +525 -31
  51. package/dist/lib/slab-polygon.test.d.ts +2 -0
  52. package/dist/lib/slab-polygon.test.d.ts.map +1 -0
  53. package/dist/lib/slab-polygon.test.js +635 -0
  54. package/dist/lib/slots.d.ts +14 -0
  55. package/dist/lib/slots.d.ts.map +1 -0
  56. package/dist/lib/slots.js +26 -0
  57. package/dist/lib/space-detection-pause.test.d.ts +2 -0
  58. package/dist/lib/space-detection-pause.test.d.ts.map +1 -0
  59. package/dist/lib/space-detection-pause.test.js +42 -0
  60. package/dist/lib/space-detection.d.ts +54 -2
  61. package/dist/lib/space-detection.d.ts.map +1 -1
  62. package/dist/lib/space-detection.js +599 -124
  63. package/dist/lib/space-detection.test.d.ts +2 -0
  64. package/dist/lib/space-detection.test.d.ts.map +1 -0
  65. package/dist/lib/space-detection.test.js +376 -0
  66. package/dist/lib/wall-distance.d.ts +60 -0
  67. package/dist/lib/wall-distance.d.ts.map +1 -0
  68. package/dist/lib/wall-distance.js +85 -0
  69. package/dist/lib/zone-quantities.d.ts +21 -0
  70. package/dist/lib/zone-quantities.d.ts.map +1 -0
  71. package/dist/lib/zone-quantities.js +183 -0
  72. package/dist/lib/zone-quantities.test.d.ts +2 -0
  73. package/dist/lib/zone-quantities.test.d.ts.map +1 -0
  74. package/dist/lib/zone-quantities.test.js +82 -0
  75. package/dist/material-library.d.ts +20 -1
  76. package/dist/material-library.d.ts.map +1 -1
  77. package/dist/material-library.js +3737 -200
  78. package/dist/registry/__bench__/relations-resolver.bench.d.ts +15 -0
  79. package/dist/registry/__bench__/relations-resolver.bench.d.ts.map +1 -0
  80. package/dist/registry/__bench__/relations-resolver.bench.js +170 -0
  81. package/dist/registry/handles.d.ts +394 -0
  82. package/dist/registry/handles.d.ts.map +1 -0
  83. package/dist/registry/handles.js +24 -0
  84. package/dist/registry/index.d.ts +7 -0
  85. package/dist/registry/index.d.ts.map +1 -0
  86. package/dist/registry/index.js +4 -0
  87. package/dist/registry/registry.d.ts +136 -0
  88. package/dist/registry/registry.d.ts.map +1 -0
  89. package/dist/registry/registry.js +282 -0
  90. package/dist/registry/registry.test.d.ts +2 -0
  91. package/dist/registry/registry.test.d.ts.map +1 -0
  92. package/dist/registry/registry.test.js +196 -0
  93. package/dist/registry/relations-resolver.d.ts +42 -0
  94. package/dist/registry/relations-resolver.d.ts.map +1 -0
  95. package/dist/registry/relations-resolver.js +77 -0
  96. package/dist/registry/relations-resolver.test.d.ts +2 -0
  97. package/dist/registry/relations-resolver.test.d.ts.map +1 -0
  98. package/dist/registry/relations-resolver.test.js +183 -0
  99. package/dist/registry/scene-api.d.ts +44 -0
  100. package/dist/registry/scene-api.d.ts.map +1 -0
  101. package/dist/registry/scene-api.js +111 -0
  102. package/dist/registry/scene-api.test.d.ts +2 -0
  103. package/dist/registry/scene-api.test.d.ts.map +1 -0
  104. package/dist/registry/scene-api.test.js +183 -0
  105. package/dist/registry/subtree.d.ts +67 -0
  106. package/dist/registry/subtree.d.ts.map +1 -0
  107. package/dist/registry/subtree.js +123 -0
  108. package/dist/registry/subtree.test.d.ts +2 -0
  109. package/dist/registry/subtree.test.d.ts.map +1 -0
  110. package/dist/registry/subtree.test.js +163 -0
  111. package/dist/registry/types.d.ts +2099 -0
  112. package/dist/registry/types.d.ts.map +1 -0
  113. package/dist/registry/types.js +1 -0
  114. package/dist/schema/index.d.ts +35 -4
  115. package/dist/schema/index.d.ts.map +1 -1
  116. package/dist/schema/index.js +32 -4
  117. package/dist/schema/material.d.ts +13 -2
  118. package/dist/schema/material.d.ts.map +1 -1
  119. package/dist/schema/material.js +17 -5
  120. package/dist/schema/material.test.d.ts +2 -0
  121. package/dist/schema/material.test.d.ts.map +1 -0
  122. package/dist/schema/material.test.js +43 -0
  123. package/dist/schema/nodes/box-vent.d.ts +74 -0
  124. package/dist/schema/nodes/box-vent.d.ts.map +1 -0
  125. package/dist/schema/nodes/box-vent.js +63 -0
  126. package/dist/schema/nodes/building.d.ts +1 -1
  127. package/dist/schema/nodes/building.d.ts.map +1 -1
  128. package/dist/schema/nodes/building.js +3 -2
  129. package/dist/schema/nodes/cabinet.d.ts +534 -0
  130. package/dist/schema/nodes/cabinet.d.ts.map +1 -0
  131. package/dist/schema/nodes/cabinet.js +137 -0
  132. package/dist/schema/nodes/ceiling.d.ts +5 -2
  133. package/dist/schema/nodes/ceiling.d.ts.map +1 -1
  134. package/dist/schema/nodes/ceiling.js +5 -1
  135. package/dist/schema/nodes/chimney.d.ts +158 -0
  136. package/dist/schema/nodes/chimney.d.ts.map +1 -0
  137. package/dist/schema/nodes/chimney.js +67 -0
  138. package/dist/schema/nodes/column.d.ts +600 -7
  139. package/dist/schema/nodes/column.d.ts.map +1 -1
  140. package/dist/schema/nodes/column.js +589 -6
  141. package/dist/schema/nodes/cupola.d.ts +66 -0
  142. package/dist/schema/nodes/cupola.d.ts.map +1 -0
  143. package/dist/schema/nodes/cupola.js +28 -0
  144. package/dist/schema/nodes/door.d.ts +13 -5
  145. package/dist/schema/nodes/door.d.ts.map +1 -1
  146. package/dist/schema/nodes/door.js +12 -0
  147. package/dist/schema/nodes/dormer.d.ts +228 -0
  148. package/dist/schema/nodes/dormer.d.ts.map +1 -0
  149. package/dist/schema/nodes/dormer.js +119 -0
  150. package/dist/schema/nodes/downspout.d.ts +75 -0
  151. package/dist/schema/nodes/downspout.d.ts.map +1 -0
  152. package/dist/schema/nodes/downspout.js +63 -0
  153. package/dist/schema/nodes/duct-fitting.d.ts +91 -0
  154. package/dist/schema/nodes/duct-fitting.d.ts.map +1 -0
  155. package/dist/schema/nodes/duct-fitting.js +92 -0
  156. package/dist/schema/nodes/duct-segment.d.ts +61 -0
  157. package/dist/schema/nodes/duct-segment.d.ts.map +1 -0
  158. package/dist/schema/nodes/duct-segment.js +73 -0
  159. package/dist/schema/nodes/duct-terminal.d.ts +57 -0
  160. package/dist/schema/nodes/duct-terminal.d.ts.map +1 -0
  161. package/dist/schema/nodes/duct-terminal.js +51 -0
  162. package/dist/schema/nodes/elevator.d.ts +106 -0
  163. package/dist/schema/nodes/elevator.d.ts.map +1 -0
  164. package/dist/schema/nodes/elevator.js +57 -0
  165. package/dist/schema/nodes/eyebrow-vent.d.ts +68 -0
  166. package/dist/schema/nodes/eyebrow-vent.d.ts.map +1 -0
  167. package/dist/schema/nodes/eyebrow-vent.js +40 -0
  168. package/dist/schema/nodes/fence.d.ts +19 -2
  169. package/dist/schema/nodes/fence.d.ts.map +1 -1
  170. package/dist/schema/nodes/fence.js +27 -2
  171. package/dist/schema/nodes/gutter.d.ts +84 -0
  172. package/dist/schema/nodes/gutter.d.ts.map +1 -0
  173. package/dist/schema/nodes/gutter.js +76 -0
  174. package/dist/schema/nodes/hvac-equipment.d.ts +63 -0
  175. package/dist/schema/nodes/hvac-equipment.d.ts.map +1 -0
  176. package/dist/schema/nodes/hvac-equipment.js +55 -0
  177. package/dist/schema/nodes/item.d.ts +12 -0
  178. package/dist/schema/nodes/item.d.ts.map +1 -1
  179. package/dist/schema/nodes/item.js +20 -0
  180. package/dist/schema/nodes/level.d.ts +1 -1
  181. package/dist/schema/nodes/level.d.ts.map +1 -1
  182. package/dist/schema/nodes/level.js +4 -0
  183. package/dist/schema/nodes/lineset.d.ts +42 -0
  184. package/dist/schema/nodes/lineset.d.ts.map +1 -0
  185. package/dist/schema/nodes/lineset.js +38 -0
  186. package/dist/schema/nodes/liquid-line.d.ts +34 -0
  187. package/dist/schema/nodes/liquid-line.d.ts.map +1 -0
  188. package/dist/schema/nodes/liquid-line.js +24 -0
  189. package/dist/schema/nodes/measurement.d.ts +306 -0
  190. package/dist/schema/nodes/measurement.d.ts.map +1 -0
  191. package/dist/schema/nodes/measurement.js +87 -0
  192. package/dist/schema/nodes/measurement.test.d.ts +2 -0
  193. package/dist/schema/nodes/measurement.test.d.ts.map +1 -0
  194. package/dist/schema/nodes/measurement.test.js +139 -0
  195. package/dist/schema/nodes/pipe-fitting.d.ts +56 -0
  196. package/dist/schema/nodes/pipe-fitting.d.ts.map +1 -0
  197. package/dist/schema/nodes/pipe-fitting.js +45 -0
  198. package/dist/schema/nodes/pipe-segment.d.ts +48 -0
  199. package/dist/schema/nodes/pipe-segment.d.ts.map +1 -0
  200. package/dist/schema/nodes/pipe-segment.js +36 -0
  201. package/dist/schema/nodes/pipe-trap.d.ts +43 -0
  202. package/dist/schema/nodes/pipe-trap.d.ts.map +1 -0
  203. package/dist/schema/nodes/pipe-trap.js +36 -0
  204. package/dist/schema/nodes/ridge-vent-defaults.test.d.ts +2 -0
  205. package/dist/schema/nodes/ridge-vent-defaults.test.d.ts.map +1 -0
  206. package/dist/schema/nodes/ridge-vent-defaults.test.js +205 -0
  207. package/dist/schema/nodes/ridge-vent.d.ts +82 -0
  208. package/dist/schema/nodes/ridge-vent.d.ts.map +1 -0
  209. package/dist/schema/nodes/ridge-vent.js +248 -0
  210. package/dist/schema/nodes/roof-segment-shape.d.ts +90 -0
  211. package/dist/schema/nodes/roof-segment-shape.d.ts.map +1 -0
  212. package/dist/schema/nodes/roof-segment-shape.js +318 -0
  213. package/dist/schema/nodes/roof-segment-shape.test.d.ts +2 -0
  214. package/dist/schema/nodes/roof-segment-shape.test.d.ts.map +1 -0
  215. package/dist/schema/nodes/roof-segment-shape.test.js +175 -0
  216. package/dist/schema/nodes/roof-segment-surface.test.d.ts +2 -0
  217. package/dist/schema/nodes/roof-segment-surface.test.d.ts.map +1 -0
  218. package/dist/schema/nodes/roof-segment-surface.test.js +48 -0
  219. package/dist/schema/nodes/roof-segment-trim.test.d.ts +2 -0
  220. package/dist/schema/nodes/roof-segment-trim.test.d.ts.map +1 -0
  221. package/dist/schema/nodes/roof-segment-trim.test.js +107 -0
  222. package/dist/schema/nodes/roof-segment-walls.d.ts +101 -0
  223. package/dist/schema/nodes/roof-segment-walls.d.ts.map +1 -0
  224. package/dist/schema/nodes/roof-segment-walls.js +330 -0
  225. package/dist/schema/nodes/roof-segment-walls.test.d.ts +2 -0
  226. package/dist/schema/nodes/roof-segment-walls.test.d.ts.map +1 -0
  227. package/dist/schema/nodes/roof-segment-walls.test.js +92 -0
  228. package/dist/schema/nodes/roof-segment.d.ts +273 -3
  229. package/dist/schema/nodes/roof-segment.d.ts.map +1 -1
  230. package/dist/schema/nodes/roof-segment.js +539 -3
  231. package/dist/schema/nodes/roof.d.ts +8 -8
  232. package/dist/schema/nodes/roof.d.ts.map +1 -1
  233. package/dist/schema/nodes/roof.js +4 -16
  234. package/dist/schema/nodes/shelf.d.ts +106 -0
  235. package/dist/schema/nodes/shelf.d.ts.map +1 -0
  236. package/dist/schema/nodes/shelf.js +90 -0
  237. package/dist/schema/nodes/site.d.ts +1 -122
  238. package/dist/schema/nodes/site.d.ts.map +1 -1
  239. package/dist/schema/nodes/site.js +2 -6
  240. package/dist/schema/nodes/skylight.d.ts +279 -0
  241. package/dist/schema/nodes/skylight.d.ts.map +1 -0
  242. package/dist/schema/nodes/skylight.js +152 -0
  243. package/dist/schema/nodes/slab.d.ts +5 -2
  244. package/dist/schema/nodes/slab.d.ts.map +1 -1
  245. package/dist/schema/nodes/slab.js +5 -1
  246. package/dist/schema/nodes/solar-panel.d.ts +117 -0
  247. package/dist/schema/nodes/solar-panel.d.ts.map +1 -0
  248. package/dist/schema/nodes/solar-panel.js +47 -0
  249. package/dist/schema/nodes/stair-segment.d.ts +4 -4
  250. package/dist/schema/nodes/stair.d.ts +13 -12
  251. package/dist/schema/nodes/stair.d.ts.map +1 -1
  252. package/dist/schema/nodes/stair.js +3 -0
  253. package/dist/schema/nodes/surface-hole-metadata.d.ts +2 -0
  254. package/dist/schema/nodes/surface-hole-metadata.d.ts.map +1 -1
  255. package/dist/schema/nodes/surface-hole-metadata.js +3 -1
  256. package/dist/schema/nodes/turbine-vent.d.ts +68 -0
  257. package/dist/schema/nodes/turbine-vent.d.ts.map +1 -0
  258. package/dist/schema/nodes/turbine-vent.js +41 -0
  259. package/dist/schema/nodes/wall.d.ts +245 -6
  260. package/dist/schema/nodes/wall.d.ts.map +1 -1
  261. package/dist/schema/nodes/wall.js +257 -0
  262. package/dist/schema/nodes/wall.test.d.ts +2 -0
  263. package/dist/schema/nodes/wall.test.d.ts.map +1 -0
  264. package/dist/schema/nodes/wall.test.js +208 -0
  265. package/dist/schema/nodes/window.d.ts +11 -3
  266. package/dist/schema/nodes/window.d.ts.map +1 -1
  267. package/dist/schema/nodes/window.js +12 -0
  268. package/dist/schema/nodes/zone.d.ts +2 -0
  269. package/dist/schema/nodes/zone.d.ts.map +1 -1
  270. package/dist/schema/nodes/zone.js +6 -0
  271. package/dist/schema/scene-material.d.ts +41 -0
  272. package/dist/schema/scene-material.d.ts.map +1 -0
  273. package/dist/schema/scene-material.js +9 -0
  274. package/dist/schema/types.d.ts +2850 -655
  275. package/dist/schema/types.d.ts.map +1 -1
  276. package/dist/schema/types.js +49 -0
  277. package/dist/services/alignment-anchors.d.ts +100 -0
  278. package/dist/services/alignment-anchors.d.ts.map +1 -0
  279. package/dist/services/alignment-anchors.js +312 -0
  280. package/dist/services/alignment-anchors.test.d.ts +2 -0
  281. package/dist/services/alignment-anchors.test.d.ts.map +1 -0
  282. package/dist/services/alignment-anchors.test.js +383 -0
  283. package/dist/services/alignment.d.ts +131 -0
  284. package/dist/services/alignment.d.ts.map +1 -0
  285. package/dist/services/alignment.js +171 -0
  286. package/dist/services/alignment.test.d.ts +2 -0
  287. package/dist/services/alignment.test.d.ts.map +1 -0
  288. package/dist/services/alignment.test.js +92 -0
  289. package/dist/services/drag-session.d.ts +47 -0
  290. package/dist/services/drag-session.d.ts.map +1 -0
  291. package/dist/services/drag-session.js +100 -0
  292. package/dist/services/drag-session.test.d.ts +2 -0
  293. package/dist/services/drag-session.test.d.ts.map +1 -0
  294. package/dist/services/drag-session.test.js +219 -0
  295. package/dist/services/hosting.d.ts +88 -0
  296. package/dist/services/hosting.d.ts.map +1 -0
  297. package/dist/services/hosting.js +131 -0
  298. package/dist/services/hosting.test.d.ts +2 -0
  299. package/dist/services/hosting.test.d.ts.map +1 -0
  300. package/dist/services/hosting.test.js +230 -0
  301. package/dist/services/index.d.ts +13 -0
  302. package/dist/services/index.d.ts.map +1 -0
  303. package/dist/services/index.js +12 -0
  304. package/dist/services/level-height.d.ts +28 -0
  305. package/dist/services/level-height.d.ts.map +1 -0
  306. package/dist/services/level-height.js +62 -0
  307. package/dist/services/movement.d.ts +48 -0
  308. package/dist/services/movement.d.ts.map +1 -0
  309. package/dist/services/movement.js +65 -0
  310. package/dist/services/movement.test.d.ts +2 -0
  311. package/dist/services/movement.test.d.ts.map +1 -0
  312. package/dist/services/movement.test.js +133 -0
  313. package/dist/services/opening-guides.d.ts +141 -0
  314. package/dist/services/opening-guides.d.ts.map +1 -0
  315. package/dist/services/opening-guides.js +267 -0
  316. package/dist/services/opening-guides.test.d.ts +2 -0
  317. package/dist/services/opening-guides.test.d.ts.map +1 -0
  318. package/dist/services/opening-guides.test.js +208 -0
  319. package/dist/services/port-connectivity.d.ts +115 -0
  320. package/dist/services/port-connectivity.d.ts.map +1 -0
  321. package/dist/services/port-connectivity.js +300 -0
  322. package/dist/services/port-connectivity.test.d.ts +2 -0
  323. package/dist/services/port-connectivity.test.d.ts.map +1 -0
  324. package/dist/services/port-connectivity.test.js +297 -0
  325. package/dist/services/riser-diagram.d.ts +40 -0
  326. package/dist/services/riser-diagram.d.ts.map +1 -0
  327. package/dist/services/riser-diagram.js +110 -0
  328. package/dist/services/riser-diagram.test.d.ts +2 -0
  329. package/dist/services/riser-diagram.test.d.ts.map +1 -0
  330. package/dist/services/riser-diagram.test.js +66 -0
  331. package/dist/services/single-undo-dance.test.d.ts +2 -0
  332. package/dist/services/single-undo-dance.test.d.ts.map +1 -0
  333. package/dist/services/single-undo-dance.test.js +210 -0
  334. package/dist/services/snap.d.ts +80 -0
  335. package/dist/services/snap.d.ts.map +1 -0
  336. package/dist/services/snap.js +140 -0
  337. package/dist/services/snap.test.d.ts +2 -0
  338. package/dist/services/snap.test.d.ts.map +1 -0
  339. package/dist/services/snap.test.js +137 -0
  340. package/dist/services/system-graph.d.ts +30 -0
  341. package/dist/services/system-graph.d.ts.map +1 -0
  342. package/dist/services/system-graph.js +164 -0
  343. package/dist/services/system-graph.test.d.ts +2 -0
  344. package/dist/services/system-graph.test.d.ts.map +1 -0
  345. package/dist/services/system-graph.test.js +138 -0
  346. package/dist/services/validate-dwv.d.ts +32 -0
  347. package/dist/services/validate-dwv.d.ts.map +1 -0
  348. package/dist/services/validate-dwv.js +118 -0
  349. package/dist/services/validate-dwv.test.d.ts +2 -0
  350. package/dist/services/validate-dwv.test.d.ts.map +1 -0
  351. package/dist/services/validate-dwv.test.js +109 -0
  352. package/dist/solar-panel-presets.d.ts +17 -0
  353. package/dist/solar-panel-presets.d.ts.map +1 -0
  354. package/dist/solar-panel-presets.js +43 -0
  355. package/dist/store/actions/node-actions.d.ts +14 -2
  356. package/dist/store/actions/node-actions.d.ts.map +1 -1
  357. package/dist/store/actions/node-actions.js +585 -15
  358. package/dist/store/actions/node-mutation-sanitize.test.d.ts +2 -0
  359. package/dist/store/actions/node-mutation-sanitize.test.d.ts.map +1 -0
  360. package/dist/store/actions/node-mutation-sanitize.test.js +147 -0
  361. package/dist/store/actions/reparent.test.d.ts +2 -0
  362. package/dist/store/actions/reparent.test.d.ts.map +1 -0
  363. package/dist/store/actions/reparent.test.js +212 -0
  364. package/dist/store/actions/ridge-vent-update.test.d.ts +2 -0
  365. package/dist/store/actions/ridge-vent-update.test.d.ts.map +1 -0
  366. package/dist/store/actions/ridge-vent-update.test.js +264 -0
  367. package/dist/store/history-control.d.ts +11 -0
  368. package/dist/store/history-control.d.ts.map +1 -1
  369. package/dist/store/history-control.js +33 -0
  370. package/dist/store/use-interactive.d.ts +39 -0
  371. package/dist/store/use-interactive.d.ts.map +1 -1
  372. package/dist/store/use-interactive.js +75 -0
  373. package/dist/store/use-live-node-overrides.d.ts +22 -0
  374. package/dist/store/use-live-node-overrides.d.ts.map +1 -0
  375. package/dist/store/use-live-node-overrides.js +59 -0
  376. package/dist/store/use-scene-dirty-tracking.test.d.ts +2 -0
  377. package/dist/store/use-scene-dirty-tracking.test.d.ts.map +1 -0
  378. package/dist/store/use-scene-dirty-tracking.test.js +68 -0
  379. package/dist/store/use-scene-elevator-migration.test.d.ts +2 -0
  380. package/dist/store/use-scene-elevator-migration.test.d.ts.map +1 -0
  381. package/dist/store/use-scene-elevator-migration.test.js +109 -0
  382. package/dist/store/use-scene-measurement-roundtrip.test.d.ts +2 -0
  383. package/dist/store/use-scene-measurement-roundtrip.test.d.ts.map +1 -0
  384. package/dist/store/use-scene-measurement-roundtrip.test.js +97 -0
  385. package/dist/store/use-scene-plugins.test.d.ts +2 -0
  386. package/dist/store/use-scene-plugins.test.d.ts.map +1 -0
  387. package/dist/store/use-scene-plugins.test.js +51 -0
  388. package/dist/store/use-scene-wall-slot-migration.test.d.ts +2 -0
  389. package/dist/store/use-scene-wall-slot-migration.test.d.ts.map +1 -0
  390. package/dist/store/use-scene-wall-slot-migration.test.js +210 -0
  391. package/dist/store/use-scene-window-migration.test.d.ts +2 -0
  392. package/dist/store/use-scene-window-migration.test.d.ts.map +1 -0
  393. package/dist/store/use-scene-window-migration.test.js +85 -0
  394. package/dist/store/use-scene.d.ts +28 -2
  395. package/dist/store/use-scene.d.ts.map +1 -1
  396. package/dist/store/use-scene.js +546 -49
  397. package/dist/systems/elevator/elevator-dispatch.d.ts +12 -0
  398. package/dist/systems/elevator/elevator-dispatch.d.ts.map +1 -0
  399. package/dist/systems/elevator/elevator-dispatch.js +57 -0
  400. package/dist/systems/elevator/elevator-geometry.d.ts +15 -0
  401. package/dist/systems/elevator/elevator-geometry.d.ts.map +1 -0
  402. package/dist/systems/elevator/elevator-geometry.js +50 -0
  403. package/dist/systems/elevator/elevator-opening-sync.d.ts +6 -0
  404. package/dist/systems/elevator/elevator-opening-sync.d.ts.map +1 -0
  405. package/dist/systems/elevator/elevator-opening-sync.js +218 -0
  406. package/dist/systems/elevator/elevator-opening-sync.test.d.ts +2 -0
  407. package/dist/systems/elevator/elevator-opening-sync.test.d.ts.map +1 -0
  408. package/dist/systems/elevator/elevator-opening-sync.test.js +146 -0
  409. package/dist/systems/elevator/elevator-opening-system.d.ts +2 -0
  410. package/dist/systems/elevator/elevator-opening-system.d.ts.map +1 -0
  411. package/dist/systems/elevator/elevator-opening-system.js +48 -0
  412. package/dist/systems/elevator/elevator-runtime-system.d.ts +2 -0
  413. package/dist/systems/elevator/elevator-runtime-system.d.ts.map +1 -0
  414. package/dist/systems/elevator/elevator-runtime-system.js +8 -0
  415. package/dist/systems/elevator/elevator-runtime.d.ts +18 -0
  416. package/dist/systems/elevator/elevator-runtime.d.ts.map +1 -0
  417. package/dist/systems/elevator/elevator-runtime.js +225 -0
  418. package/dist/systems/elevator/elevator-runtime.test.d.ts +2 -0
  419. package/dist/systems/elevator/elevator-runtime.test.d.ts.map +1 -0
  420. package/dist/systems/elevator/elevator-runtime.test.js +64 -0
  421. package/dist/systems/elevator/elevator-service.d.ts +19 -0
  422. package/dist/systems/elevator/elevator-service.d.ts.map +1 -0
  423. package/dist/systems/elevator/elevator-service.js +111 -0
  424. package/dist/systems/fence/fence-centerline.d.ts +12 -0
  425. package/dist/systems/fence/fence-centerline.d.ts.map +1 -0
  426. package/dist/systems/fence/fence-centerline.js +37 -0
  427. package/dist/systems/fence/fence-spline.d.ts +39 -0
  428. package/dist/systems/fence/fence-spline.d.ts.map +1 -0
  429. package/dist/systems/fence/fence-spline.js +196 -0
  430. package/dist/systems/fence/fence-spline.test.d.ts +2 -0
  431. package/dist/systems/fence/fence-spline.test.d.ts.map +1 -0
  432. package/dist/systems/fence/fence-spline.test.js +136 -0
  433. package/dist/systems/stair/stair-footprint.d.ts +44 -0
  434. package/dist/systems/stair/stair-footprint.d.ts.map +1 -0
  435. package/dist/systems/stair/stair-footprint.js +178 -0
  436. package/dist/systems/stair/stair-opening-preview.d.ts +2447 -0
  437. package/dist/systems/stair/stair-opening-preview.d.ts.map +1 -0
  438. package/dist/systems/stair/stair-opening-preview.js +93 -0
  439. package/dist/systems/stair/stair-opening-preview.test.d.ts +2 -0
  440. package/dist/systems/stair/stair-opening-preview.test.d.ts.map +1 -0
  441. package/dist/systems/stair/stair-opening-preview.test.js +80 -0
  442. package/dist/systems/stair/stair-opening-sync.d.ts.map +1 -1
  443. package/dist/systems/stair/stair-opening-sync.js +155 -147
  444. package/dist/systems/stair/stair-opening-sync.test.js +424 -2
  445. package/dist/systems/stair/stair-opening-system.d.ts +2 -0
  446. package/dist/systems/stair/stair-opening-system.d.ts.map +1 -0
  447. package/dist/systems/stair/stair-opening-system.js +104 -0
  448. package/dist/systems/wall/wall-mitering.d.ts.map +1 -1
  449. package/dist/systems/wall/wall-mitering.js +38 -2
  450. package/dist/systems/wall/wall-mitering.test.d.ts +2 -0
  451. package/dist/systems/wall/wall-mitering.test.d.ts.map +1 -0
  452. package/dist/systems/wall/wall-mitering.test.js +63 -0
  453. package/dist/systems/wall/wall-move.d.ts +48 -0
  454. package/dist/systems/wall/wall-move.d.ts.map +1 -0
  455. package/dist/systems/wall/wall-move.js +193 -0
  456. package/dist/utils/clone-scene-graph.d.ts +7 -4
  457. package/dist/utils/clone-scene-graph.d.ts.map +1 -1
  458. package/dist/utils/clone-scene-graph.js +29 -7
  459. package/dist/utils/clone-scene-graph.test.d.ts +2 -0
  460. package/dist/utils/clone-scene-graph.test.d.ts.map +1 -0
  461. package/dist/utils/clone-scene-graph.test.js +62 -0
  462. package/dist/utils/heal-scene-graph.d.ts +18 -0
  463. package/dist/utils/heal-scene-graph.d.ts.map +1 -0
  464. package/dist/utils/heal-scene-graph.js +90 -0
  465. package/dist/utils/heal-scene-graph.test.d.ts +2 -0
  466. package/dist/utils/heal-scene-graph.test.d.ts.map +1 -0
  467. package/dist/utils/heal-scene-graph.test.js +88 -0
  468. package/dist/validation/validate-build-json.d.ts +44 -0
  469. package/dist/validation/validate-build-json.d.ts.map +1 -0
  470. package/dist/validation/validate-build-json.js +256 -0
  471. package/package.json +11 -4
@@ -21,128 +21,7 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
21
21
  type: z.ZodLiteral<"polygon">;
22
22
  points: z.ZodArray<z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>>;
23
23
  }, z.core.$strip>>>;
24
- children: z.ZodDefault<z.ZodArray<z.ZodDiscriminatedUnion<[z.ZodObject<{
25
- object: z.ZodDefault<z.ZodLiteral<"node">>;
26
- name: z.ZodOptional<z.ZodString>;
27
- parentId: z.ZodDefault<z.ZodNullable<z.ZodString>>;
28
- visible: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
29
- camera: z.ZodOptional<z.ZodObject<{
30
- position: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
31
- target: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
32
- mode: z.ZodDefault<z.ZodEnum<{
33
- perspective: "perspective";
34
- orthographic: "orthographic";
35
- }>>;
36
- fov: z.ZodOptional<z.ZodNumber>;
37
- zoom: z.ZodOptional<z.ZodNumber>;
38
- }, z.core.$strip>>;
39
- metadata: z.ZodDefault<z.ZodOptional<z.ZodJSONSchema>>;
40
- id: z.ZodDefault<z.ZodTemplateLiteral<`building_${string}`>>;
41
- type: z.ZodDefault<z.ZodLiteral<"building">>;
42
- children: z.ZodDefault<z.ZodArray<z.ZodDefault<z.ZodTemplateLiteral<`level_${string}`>>>>;
43
- position: z.ZodDefault<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
44
- rotation: z.ZodDefault<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
45
- }, z.core.$strip>, z.ZodObject<{
46
- object: z.ZodDefault<z.ZodLiteral<"node">>;
47
- name: z.ZodOptional<z.ZodString>;
48
- parentId: z.ZodDefault<z.ZodNullable<z.ZodString>>;
49
- visible: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
50
- camera: z.ZodOptional<z.ZodObject<{
51
- position: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
52
- target: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
53
- mode: z.ZodDefault<z.ZodEnum<{
54
- perspective: "perspective";
55
- orthographic: "orthographic";
56
- }>>;
57
- fov: z.ZodOptional<z.ZodNumber>;
58
- zoom: z.ZodOptional<z.ZodNumber>;
59
- }, z.core.$strip>>;
60
- metadata: z.ZodDefault<z.ZodOptional<z.ZodJSONSchema>>;
61
- id: z.ZodDefault<z.ZodTemplateLiteral<`item_${string}`>>;
62
- type: z.ZodDefault<z.ZodLiteral<"item">>;
63
- position: z.ZodDefault<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
64
- rotation: z.ZodDefault<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
65
- scale: z.ZodDefault<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
66
- side: z.ZodOptional<z.ZodEnum<{
67
- front: "front";
68
- back: "back";
69
- }>>;
70
- children: z.ZodDefault<z.ZodArray<z.ZodDefault<z.ZodTemplateLiteral<`item_${string}`>>>>;
71
- wallId: z.ZodOptional<z.ZodString>;
72
- wallT: z.ZodOptional<z.ZodNumber>;
73
- collectionIds: z.ZodOptional<z.ZodArray<z.ZodCustom<`collection_${string}`, `collection_${string}`>>>;
74
- asset: z.ZodObject<{
75
- id: z.ZodString;
76
- category: z.ZodString;
77
- name: z.ZodString;
78
- thumbnail: z.ZodString;
79
- floorPlanUrl: z.ZodOptional<z.ZodString>;
80
- source: z.ZodDefault<z.ZodEnum<{
81
- library: "library";
82
- community: "community";
83
- mine: "mine";
84
- }>>;
85
- isDraft: z.ZodOptional<z.ZodBoolean>;
86
- src: z.ZodString;
87
- dimensions: z.ZodDefault<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
88
- attachTo: z.ZodOptional<z.ZodEnum<{
89
- wall: "wall";
90
- ceiling: "ceiling";
91
- "wall-side": "wall-side";
92
- }>>;
93
- tags: z.ZodOptional<z.ZodArray<z.ZodString>>;
94
- offset: z.ZodDefault<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
95
- rotation: z.ZodDefault<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
96
- scale: z.ZodDefault<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
97
- surface: z.ZodOptional<z.ZodObject<{
98
- height: z.ZodNumber;
99
- }, z.core.$strip>>;
100
- interactive: z.ZodOptional<z.ZodObject<{
101
- controls: z.ZodDefault<z.ZodArray<z.ZodDiscriminatedUnion<[z.ZodObject<{
102
- kind: z.ZodLiteral<"toggle">;
103
- label: z.ZodOptional<z.ZodString>;
104
- default: z.ZodOptional<z.ZodBoolean>;
105
- }, z.core.$strip>, z.ZodObject<{
106
- kind: z.ZodLiteral<"slider">;
107
- label: z.ZodString;
108
- min: z.ZodNumber;
109
- max: z.ZodNumber;
110
- step: z.ZodDefault<z.ZodNumber>;
111
- unit: z.ZodOptional<z.ZodString>;
112
- displayMode: z.ZodDefault<z.ZodEnum<{
113
- slider: "slider";
114
- stepper: "stepper";
115
- dial: "dial";
116
- }>>;
117
- default: z.ZodOptional<z.ZodNumber>;
118
- }, z.core.$strip>, z.ZodObject<{
119
- kind: z.ZodLiteral<"temperature">;
120
- label: z.ZodDefault<z.ZodString>;
121
- min: z.ZodDefault<z.ZodNumber>;
122
- max: z.ZodDefault<z.ZodNumber>;
123
- unit: z.ZodDefault<z.ZodEnum<{
124
- C: "C";
125
- F: "F";
126
- }>>;
127
- default: z.ZodOptional<z.ZodNumber>;
128
- }, z.core.$strip>], "kind">>>;
129
- effects: z.ZodDefault<z.ZodArray<z.ZodDiscriminatedUnion<[z.ZodObject<{
130
- kind: z.ZodLiteral<"animation">;
131
- clips: z.ZodObject<{
132
- on: z.ZodOptional<z.ZodString>;
133
- off: z.ZodOptional<z.ZodString>;
134
- loop: z.ZodOptional<z.ZodString>;
135
- }, z.core.$strip>;
136
- }, z.core.$strip>, z.ZodObject<{
137
- kind: z.ZodLiteral<"light">;
138
- color: z.ZodDefault<z.ZodString>;
139
- intensityRange: z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>;
140
- distance: z.ZodOptional<z.ZodNumber>;
141
- offset: z.ZodDefault<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
142
- }, z.core.$strip>], "kind">>>;
143
- }, z.core.$strip>>;
144
- }, z.core.$strip>;
145
- }, z.core.$strip>], "type">>>;
24
+ children: z.ZodDefault<z.ZodArray<z.ZodString>>;
146
25
  }, z.core.$strip>, z.ZodObject<{
147
26
  object: z.ZodDefault<z.ZodLiteral<"node">>;
148
27
  name: z.ZodOptional<z.ZodString>;
@@ -161,9 +40,94 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
161
40
  metadata: z.ZodDefault<z.ZodOptional<z.ZodJSONSchema>>;
162
41
  id: z.ZodDefault<z.ZodTemplateLiteral<`building_${string}`>>;
163
42
  type: z.ZodDefault<z.ZodLiteral<"building">>;
164
- children: z.ZodDefault<z.ZodArray<z.ZodDefault<z.ZodTemplateLiteral<`level_${string}`>>>>;
43
+ children: z.ZodDefault<z.ZodArray<z.ZodUnion<readonly [z.ZodDefault<z.ZodTemplateLiteral<`level_${string}`>>, z.ZodDefault<z.ZodTemplateLiteral<`elevator_${string}`>>]>>>;
165
44
  position: z.ZodDefault<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
166
45
  rotation: z.ZodDefault<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
46
+ }, z.core.$strip>, z.ZodObject<{
47
+ object: z.ZodDefault<z.ZodLiteral<"node">>;
48
+ name: z.ZodOptional<z.ZodString>;
49
+ parentId: z.ZodDefault<z.ZodNullable<z.ZodString>>;
50
+ visible: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
51
+ camera: z.ZodOptional<z.ZodObject<{
52
+ position: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
53
+ target: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
54
+ mode: z.ZodDefault<z.ZodEnum<{
55
+ perspective: "perspective";
56
+ orthographic: "orthographic";
57
+ }>>;
58
+ fov: z.ZodOptional<z.ZodNumber>;
59
+ zoom: z.ZodOptional<z.ZodNumber>;
60
+ }, z.core.$strip>>;
61
+ metadata: z.ZodDefault<z.ZodOptional<z.ZodJSONSchema>>;
62
+ id: z.ZodDefault<z.ZodTemplateLiteral<`elevator_${string}`>>;
63
+ type: z.ZodDefault<z.ZodLiteral<"elevator">>;
64
+ material: z.ZodOptional<z.ZodObject<{
65
+ id: z.ZodOptional<z.ZodString>;
66
+ preset: z.ZodOptional<z.ZodCatch<z.ZodEnum<{
67
+ custom: "custom";
68
+ white: "white";
69
+ brick: "brick";
70
+ concrete: "concrete";
71
+ wood: "wood";
72
+ glass: "glass";
73
+ metal: "metal";
74
+ plaster: "plaster";
75
+ tile: "tile";
76
+ marble: "marble";
77
+ }>>>;
78
+ properties: z.ZodOptional<z.ZodObject<{
79
+ color: z.ZodDefault<z.ZodString>;
80
+ roughness: z.ZodDefault<z.ZodNumber>;
81
+ metalness: z.ZodDefault<z.ZodNumber>;
82
+ opacity: z.ZodDefault<z.ZodNumber>;
83
+ transparent: z.ZodDefault<z.ZodBoolean>;
84
+ side: z.ZodDefault<z.ZodEnum<{
85
+ front: "front";
86
+ back: "back";
87
+ double: "double";
88
+ }>>;
89
+ }, z.core.$strip>>;
90
+ texture: z.ZodOptional<z.ZodObject<{
91
+ url: z.ZodString;
92
+ repeat: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>>;
93
+ scale: z.ZodOptional<z.ZodNumber>;
94
+ }, z.core.$strip>>;
95
+ }, z.core.$strip>>;
96
+ materialPreset: z.ZodOptional<z.ZodString>;
97
+ slots: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
98
+ position: z.ZodDefault<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
99
+ rotation: z.ZodDefault<z.ZodNumber>;
100
+ width: z.ZodDefault<z.ZodNumber>;
101
+ depth: z.ZodDefault<z.ZodNumber>;
102
+ shaftWidth: z.ZodOptional<z.ZodNumber>;
103
+ shaftDepth: z.ZodOptional<z.ZodNumber>;
104
+ shaftWallThickness: z.ZodDefault<z.ZodNumber>;
105
+ shaftStyle: z.ZodDefault<z.ZodEnum<{
106
+ glass: "glass";
107
+ solid: "solid";
108
+ }>>;
109
+ cabHeight: z.ZodDefault<z.ZodNumber>;
110
+ doorWidth: z.ZodDefault<z.ZodNumber>;
111
+ doorHeight: z.ZodDefault<z.ZodNumber>;
112
+ doorStyle: z.ZodDefault<z.ZodEnum<{
113
+ "center-opening": "center-opening";
114
+ "single-left": "single-left";
115
+ "single-right": "single-right";
116
+ }>>;
117
+ doorPanelStyle: z.ZodDefault<z.ZodEnum<{
118
+ "glass-frame": "glass-frame";
119
+ "solid-panel": "solid-panel";
120
+ "segmented-panel": "segmented-panel";
121
+ }>>;
122
+ fromLevelId: z.ZodDefault<z.ZodNullable<z.ZodString>>;
123
+ toLevelId: z.ZodDefault<z.ZodNullable<z.ZodString>>;
124
+ servedLevelIds: z.ZodOptional<z.ZodArray<z.ZodString>>;
125
+ disabledLevelIds: z.ZodDefault<z.ZodArray<z.ZodString>>;
126
+ serviceOnlyLevelIds: z.ZodDefault<z.ZodArray<z.ZodString>>;
127
+ defaultLevelId: z.ZodDefault<z.ZodNullable<z.ZodString>>;
128
+ speed: z.ZodDefault<z.ZodNumber>;
129
+ doorDurationMs: z.ZodDefault<z.ZodNumber>;
130
+ dwellMs: z.ZodDefault<z.ZodNumber>;
167
131
  }, z.core.$strip>, z.ZodObject<{
168
132
  object: z.ZodDefault<z.ZodLiteral<"node">>;
169
133
  name: z.ZodOptional<z.ZodString>;
@@ -182,7 +146,7 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
182
146
  metadata: z.ZodDefault<z.ZodOptional<z.ZodJSONSchema>>;
183
147
  id: z.ZodDefault<z.ZodTemplateLiteral<`level_${string}`>>;
184
148
  type: z.ZodDefault<z.ZodLiteral<"level">>;
185
- 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}`>>]>>>;
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}`>>]>>>;
186
150
  level: z.ZodDefault<z.ZodNumber>;
187
151
  }, z.core.$strip>, z.ZodObject<{
188
152
  object: z.ZodDefault<z.ZodLiteral<"node">>;
@@ -335,9 +299,27 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
335
299
  lowerBandCarvingLevel: z.ZodDefault<z.ZodNumber>;
336
300
  dentilCount: z.ZodDefault<z.ZodNumber>;
337
301
  beadCount: z.ZodDefault<z.ZodNumber>;
302
+ supportStyle: z.ZodDefault<z.ZodEnum<{
303
+ vertical: "vertical";
304
+ "a-frame": "a-frame";
305
+ "y-frame": "y-frame";
306
+ "v-frame": "v-frame";
307
+ "x-brace": "x-brace";
308
+ "k-brace": "k-brace";
309
+ "single-strut": "single-strut";
310
+ tripod: "tripod";
311
+ trestle: "trestle";
312
+ "portal-frame": "portal-frame";
313
+ "box-frame": "box-frame";
314
+ }>>;
315
+ braceWidth: z.ZodDefault<z.ZodNumber>;
316
+ braceDepth: z.ZodDefault<z.ZodNumber>;
317
+ braceBottomSpread: z.ZodDefault<z.ZodNumber>;
318
+ braceTopSpread: z.ZodDefault<z.ZodNumber>;
319
+ bracePlateEnabled: z.ZodDefault<z.ZodBoolean>;
338
320
  material: z.ZodOptional<z.ZodObject<{
339
321
  id: z.ZodOptional<z.ZodString>;
340
- preset: z.ZodOptional<z.ZodEnum<{
322
+ preset: z.ZodOptional<z.ZodCatch<z.ZodEnum<{
341
323
  custom: "custom";
342
324
  white: "white";
343
325
  brick: "brick";
@@ -348,7 +330,7 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
348
330
  plaster: "plaster";
349
331
  tile: "tile";
350
332
  marble: "marble";
351
- }>>;
333
+ }>>>;
352
334
  properties: z.ZodOptional<z.ZodObject<{
353
335
  color: z.ZodDefault<z.ZodString>;
354
336
  roughness: z.ZodDefault<z.ZodNumber>;
@@ -368,6 +350,7 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
368
350
  }, z.core.$strip>>;
369
351
  }, z.core.$strip>>;
370
352
  materialPreset: z.ZodOptional<z.ZodString>;
353
+ slots: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
371
354
  }, z.core.$strip>, z.ZodObject<{
372
355
  object: z.ZodDefault<z.ZodLiteral<"node">>;
373
356
  name: z.ZodOptional<z.ZodString>;
@@ -389,7 +372,7 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
389
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}`>>]>>>;
390
373
  material: z.ZodOptional<z.ZodObject<{
391
374
  id: z.ZodOptional<z.ZodString>;
392
- preset: z.ZodOptional<z.ZodEnum<{
375
+ preset: z.ZodOptional<z.ZodCatch<z.ZodEnum<{
393
376
  custom: "custom";
394
377
  white: "white";
395
378
  brick: "brick";
@@ -400,7 +383,7 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
400
383
  plaster: "plaster";
401
384
  tile: "tile";
402
385
  marble: "marble";
403
- }>>;
386
+ }>>>;
404
387
  properties: z.ZodOptional<z.ZodObject<{
405
388
  color: z.ZodDefault<z.ZodString>;
406
389
  roughness: z.ZodDefault<z.ZodNumber>;
@@ -422,7 +405,7 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
422
405
  materialPreset: z.ZodOptional<z.ZodString>;
423
406
  interiorMaterial: z.ZodOptional<z.ZodObject<{
424
407
  id: z.ZodOptional<z.ZodString>;
425
- preset: z.ZodOptional<z.ZodEnum<{
408
+ preset: z.ZodOptional<z.ZodCatch<z.ZodEnum<{
426
409
  custom: "custom";
427
410
  white: "white";
428
411
  brick: "brick";
@@ -433,7 +416,7 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
433
416
  plaster: "plaster";
434
417
  tile: "tile";
435
418
  marble: "marble";
436
- }>>;
419
+ }>>>;
437
420
  properties: z.ZodOptional<z.ZodObject<{
438
421
  color: z.ZodDefault<z.ZodString>;
439
422
  roughness: z.ZodDefault<z.ZodNumber>;
@@ -455,7 +438,7 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
455
438
  interiorMaterialPreset: z.ZodOptional<z.ZodString>;
456
439
  exteriorMaterial: z.ZodOptional<z.ZodObject<{
457
440
  id: z.ZodOptional<z.ZodString>;
458
- preset: z.ZodOptional<z.ZodEnum<{
441
+ preset: z.ZodOptional<z.ZodCatch<z.ZodEnum<{
459
442
  custom: "custom";
460
443
  white: "white";
461
444
  brick: "brick";
@@ -466,7 +449,7 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
466
449
  plaster: "plaster";
467
450
  tile: "tile";
468
451
  marble: "marble";
469
- }>>;
452
+ }>>>;
470
453
  properties: z.ZodOptional<z.ZodObject<{
471
454
  color: z.ZodDefault<z.ZodString>;
472
455
  roughness: z.ZodDefault<z.ZodNumber>;
@@ -486,9 +469,107 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
486
469
  }, z.core.$strip>>;
487
470
  }, z.core.$strip>>;
488
471
  exteriorMaterialPreset: z.ZodOptional<z.ZodString>;
472
+ slots: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
489
473
  thickness: z.ZodOptional<z.ZodNumber>;
490
474
  height: z.ZodOptional<z.ZodNumber>;
491
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>>;
492
573
  start: z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>;
493
574
  end: z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>;
494
575
  frontSide: z.ZodDefault<z.ZodEnum<{
@@ -521,7 +602,7 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
521
602
  type: z.ZodDefault<z.ZodLiteral<"fence">>;
522
603
  material: z.ZodOptional<z.ZodObject<{
523
604
  id: z.ZodOptional<z.ZodString>;
524
- preset: z.ZodOptional<z.ZodEnum<{
605
+ preset: z.ZodOptional<z.ZodCatch<z.ZodEnum<{
525
606
  custom: "custom";
526
607
  white: "white";
527
608
  brick: "brick";
@@ -532,7 +613,7 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
532
613
  plaster: "plaster";
533
614
  tile: "tile";
534
615
  marble: "marble";
535
- }>>;
616
+ }>>>;
536
617
  properties: z.ZodOptional<z.ZodObject<{
537
618
  color: z.ZodDefault<z.ZodString>;
538
619
  roughness: z.ZodDefault<z.ZodNumber>;
@@ -552,8 +633,11 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
552
633
  }, z.core.$strip>>;
553
634
  }, z.core.$strip>>;
554
635
  materialPreset: z.ZodOptional<z.ZodString>;
636
+ slots: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
555
637
  start: z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>;
556
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>>>>;
557
641
  height: z.ZodDefault<z.ZodNumber>;
558
642
  thickness: z.ZodDefault<z.ZodNumber>;
559
643
  curveOffset: z.ZodOptional<z.ZodNumber>;
@@ -563,15 +647,23 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
563
647
  topRailHeight: z.ZodDefault<z.ZodNumber>;
564
648
  groundClearance: z.ZodDefault<z.ZodNumber>;
565
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
+ }>>;
566
656
  baseStyle: z.ZodDefault<z.ZodEnum<{
567
657
  floating: "floating";
568
658
  grounded: "grounded";
569
659
  }>>;
660
+ showInfill: z.ZodDefault<z.ZodBoolean>;
570
661
  color: z.ZodDefault<z.ZodString>;
571
662
  style: z.ZodDefault<z.ZodEnum<{
572
663
  slat: "slat";
573
664
  rail: "rail";
574
665
  privacy: "privacy";
666
+ horizontal: "horizontal";
575
667
  }>>;
576
668
  }, z.core.$strip>, z.ZodObject<{
577
669
  object: z.ZodDefault<z.ZodLiteral<"node">>;
@@ -589,131 +681,48 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
589
681
  zoom: z.ZodOptional<z.ZodNumber>;
590
682
  }, z.core.$strip>>;
591
683
  metadata: z.ZodDefault<z.ZodOptional<z.ZodJSONSchema>>;
592
- id: z.ZodDefault<z.ZodTemplateLiteral<`item_${string}`>>;
593
- type: z.ZodDefault<z.ZodLiteral<"item">>;
594
684
  position: z.ZodDefault<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
595
- rotation: z.ZodDefault<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
596
- scale: z.ZodDefault<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
597
- side: z.ZodOptional<z.ZodEnum<{
598
- front: "front";
599
- back: "back";
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";
600
703
  }>>;
601
- children: z.ZodDefault<z.ZodArray<z.ZodDefault<z.ZodTemplateLiteral<`item_${string}`>>>>;
602
- wallId: z.ZodOptional<z.ZodString>;
603
- wallT: z.ZodOptional<z.ZodNumber>;
604
- collectionIds: z.ZodOptional<z.ZodArray<z.ZodCustom<`collection_${string}`, `collection_${string}`>>>;
605
- asset: z.ZodObject<{
606
- id: z.ZodString;
607
- category: z.ZodString;
608
- name: z.ZodString;
609
- thumbnail: z.ZodString;
610
- floorPlanUrl: z.ZodOptional<z.ZodString>;
611
- source: z.ZodDefault<z.ZodEnum<{
612
- library: "library";
613
- community: "community";
614
- mine: "mine";
615
- }>>;
616
- isDraft: z.ZodOptional<z.ZodBoolean>;
617
- src: z.ZodString;
618
- dimensions: z.ZodDefault<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
619
- attachTo: z.ZodOptional<z.ZodEnum<{
620
- wall: "wall";
621
- ceiling: "ceiling";
622
- "wall-side": "wall-side";
623
- }>>;
624
- tags: z.ZodOptional<z.ZodArray<z.ZodString>>;
625
- offset: z.ZodDefault<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
626
- rotation: z.ZodDefault<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
627
- scale: z.ZodDefault<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
628
- surface: z.ZodOptional<z.ZodObject<{
629
- height: z.ZodNumber;
630
- }, z.core.$strip>>;
631
- interactive: z.ZodOptional<z.ZodObject<{
632
- controls: z.ZodDefault<z.ZodArray<z.ZodDiscriminatedUnion<[z.ZodObject<{
633
- kind: z.ZodLiteral<"toggle">;
634
- label: z.ZodOptional<z.ZodString>;
635
- default: z.ZodOptional<z.ZodBoolean>;
636
- }, z.core.$strip>, z.ZodObject<{
637
- kind: z.ZodLiteral<"slider">;
638
- label: z.ZodString;
639
- min: z.ZodNumber;
640
- max: z.ZodNumber;
641
- step: z.ZodDefault<z.ZodNumber>;
642
- unit: z.ZodOptional<z.ZodString>;
643
- displayMode: z.ZodDefault<z.ZodEnum<{
644
- slider: "slider";
645
- stepper: "stepper";
646
- dial: "dial";
647
- }>>;
648
- default: z.ZodOptional<z.ZodNumber>;
649
- }, z.core.$strip>, z.ZodObject<{
650
- kind: z.ZodLiteral<"temperature">;
651
- label: z.ZodDefault<z.ZodString>;
652
- min: z.ZodDefault<z.ZodNumber>;
653
- max: z.ZodDefault<z.ZodNumber>;
654
- unit: z.ZodDefault<z.ZodEnum<{
655
- C: "C";
656
- F: "F";
657
- }>>;
658
- default: z.ZodOptional<z.ZodNumber>;
659
- }, z.core.$strip>], "kind">>>;
660
- effects: z.ZodDefault<z.ZodArray<z.ZodDiscriminatedUnion<[z.ZodObject<{
661
- kind: z.ZodLiteral<"animation">;
662
- clips: z.ZodObject<{
663
- on: z.ZodOptional<z.ZodString>;
664
- off: z.ZodOptional<z.ZodString>;
665
- loop: z.ZodOptional<z.ZodString>;
666
- }, z.core.$strip>;
667
- }, z.core.$strip>, z.ZodObject<{
668
- kind: z.ZodLiteral<"light">;
669
- color: z.ZodDefault<z.ZodString>;
670
- intensityRange: z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>;
671
- distance: z.ZodOptional<z.ZodNumber>;
672
- offset: z.ZodDefault<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
673
- }, z.core.$strip>], "kind">>>;
674
- }, z.core.$strip>>;
675
- }, z.core.$strip>;
676
- }, z.core.$strip>, z.ZodObject<{
677
- object: z.ZodDefault<z.ZodLiteral<"node">>;
678
- parentId: z.ZodDefault<z.ZodNullable<z.ZodString>>;
679
- visible: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
680
- camera: z.ZodOptional<z.ZodObject<{
681
- position: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
682
- target: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
683
- mode: z.ZodDefault<z.ZodEnum<{
684
- perspective: "perspective";
685
- orthographic: "orthographic";
686
- }>>;
687
- fov: z.ZodOptional<z.ZodNumber>;
688
- zoom: z.ZodOptional<z.ZodNumber>;
689
- }, z.core.$strip>>;
690
- id: z.ZodDefault<z.ZodTemplateLiteral<`zone_${string}`>>;
691
- type: z.ZodDefault<z.ZodLiteral<"zone">>;
692
- name: z.ZodString;
693
- polygon: z.ZodArray<z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>>;
694
- color: z.ZodDefault<z.ZodString>;
695
- metadata: z.ZodDefault<z.ZodOptional<z.ZodJSONSchema>>;
696
- }, z.core.$strip>, z.ZodObject<{
697
- object: z.ZodDefault<z.ZodLiteral<"node">>;
698
- name: z.ZodOptional<z.ZodString>;
699
- parentId: z.ZodDefault<z.ZodNullable<z.ZodString>>;
700
- visible: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
701
- camera: z.ZodOptional<z.ZodObject<{
702
- position: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
703
- target: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
704
- mode: z.ZodDefault<z.ZodEnum<{
705
- perspective: "perspective";
706
- orthographic: "orthographic";
707
- }>>;
708
- fov: z.ZodOptional<z.ZodNumber>;
709
- zoom: z.ZodOptional<z.ZodNumber>;
710
- }, z.core.$strip>>;
711
- metadata: z.ZodDefault<z.ZodOptional<z.ZodJSONSchema>>;
712
- id: z.ZodDefault<z.ZodTemplateLiteral<`slab_${string}`>>;
713
- type: z.ZodDefault<z.ZodLiteral<"slab">>;
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>;
714
723
  material: z.ZodOptional<z.ZodObject<{
715
724
  id: z.ZodOptional<z.ZodString>;
716
- preset: z.ZodOptional<z.ZodEnum<{
725
+ preset: z.ZodOptional<z.ZodCatch<z.ZodEnum<{
717
726
  custom: "custom";
718
727
  white: "white";
719
728
  brick: "brick";
@@ -724,7 +733,7 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
724
733
  plaster: "plaster";
725
734
  tile: "tile";
726
735
  marble: "marble";
727
- }>>;
736
+ }>>>;
728
737
  properties: z.ZodOptional<z.ZodObject<{
729
738
  color: z.ZodDefault<z.ZodString>;
730
739
  roughness: z.ZodDefault<z.ZodNumber>;
@@ -744,41 +753,1874 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
744
753
  }, z.core.$strip>>;
745
754
  }, z.core.$strip>>;
746
755
  materialPreset: z.ZodOptional<z.ZodString>;
747
- polygon: z.ZodArray<z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>>;
748
- holes: z.ZodDefault<z.ZodArray<z.ZodArray<z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>>>>;
749
- holeMetadata: z.ZodDefault<z.ZodArray<z.ZodObject<{
750
- source: z.ZodDefault<z.ZodEnum<{
751
- stair: "stair";
752
- manual: "manual";
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";
753
774
  }>>;
754
- stairId: z.ZodOptional<z.ZodString>;
755
- }, z.core.$strip>>>;
756
- elevation: z.ZodDefault<z.ZodNumber>;
757
- autoFromWalls: z.ZodDefault<z.ZodBoolean>;
758
- }, z.core.$strip>, z.ZodObject<{
759
- object: z.ZodDefault<z.ZodLiteral<"node">>;
760
- name: z.ZodOptional<z.ZodString>;
761
- parentId: z.ZodDefault<z.ZodNullable<z.ZodString>>;
762
- visible: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
763
- camera: z.ZodOptional<z.ZodObject<{
764
- position: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
765
- target: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
766
- mode: z.ZodDefault<z.ZodEnum<{
767
- perspective: "perspective";
768
- orthographic: "orthographic";
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";
769
784
  }>>;
770
- fov: z.ZodOptional<z.ZodNumber>;
771
- zoom: z.ZodOptional<z.ZodNumber>;
772
- }, z.core.$strip>>;
773
- metadata: z.ZodDefault<z.ZodOptional<z.ZodJSONSchema>>;
774
- id: z.ZodDefault<z.ZodTemplateLiteral<`ceiling_${string}`>>;
775
- type: z.ZodDefault<z.ZodLiteral<"ceiling">>;
776
- children: z.ZodDefault<z.ZodArray<z.ZodDefault<z.ZodTemplateLiteral<`item_${string}`>>>>;
777
- material: z.ZodOptional<z.ZodObject<{
778
- id: z.ZodOptional<z.ZodString>;
779
- preset: z.ZodOptional<z.ZodEnum<{
780
- custom: "custom";
781
- white: "white";
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";
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>;
1086
+ }, z.core.$strip>, z.ZodObject<{
1087
+ object: z.ZodDefault<z.ZodLiteral<"node">>;
1088
+ name: z.ZodOptional<z.ZodString>;
1089
+ parentId: z.ZodDefault<z.ZodNullable<z.ZodString>>;
1090
+ visible: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
1091
+ camera: z.ZodOptional<z.ZodObject<{
1092
+ position: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
1093
+ target: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
1094
+ mode: z.ZodDefault<z.ZodEnum<{
1095
+ perspective: "perspective";
1096
+ orthographic: "orthographic";
1097
+ }>>;
1098
+ fov: z.ZodOptional<z.ZodNumber>;
1099
+ zoom: z.ZodOptional<z.ZodNumber>;
1100
+ }, z.core.$strip>>;
1101
+ metadata: z.ZodDefault<z.ZodOptional<z.ZodJSONSchema>>;
1102
+ id: z.ZodDefault<z.ZodTemplateLiteral<`item_${string}`>>;
1103
+ type: z.ZodDefault<z.ZodLiteral<"item">>;
1104
+ position: z.ZodDefault<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
1105
+ rotation: z.ZodDefault<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
1106
+ scale: z.ZodDefault<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
1107
+ side: z.ZodOptional<z.ZodEnum<{
1108
+ front: "front";
1109
+ back: "back";
1110
+ }>>;
1111
+ children: z.ZodDefault<z.ZodArray<z.ZodDefault<z.ZodTemplateLiteral<`item_${string}`>>>>;
1112
+ wallId: z.ZodOptional<z.ZodString>;
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
+ }>>;
1121
+ collectionIds: z.ZodOptional<z.ZodArray<z.ZodCustom<`collection_${string}`, `collection_${string}`>>>;
1122
+ slots: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
1123
+ asset: z.ZodObject<{
1124
+ id: z.ZodString;
1125
+ category: z.ZodString;
1126
+ name: z.ZodString;
1127
+ thumbnail: z.ZodString;
1128
+ floorPlanUrl: z.ZodOptional<z.ZodString>;
1129
+ source: z.ZodDefault<z.ZodEnum<{
1130
+ library: "library";
1131
+ community: "community";
1132
+ mine: "mine";
1133
+ }>>;
1134
+ isDraft: z.ZodOptional<z.ZodBoolean>;
1135
+ src: z.ZodString;
1136
+ dimensions: z.ZodDefault<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
1137
+ attachTo: z.ZodOptional<z.ZodEnum<{
1138
+ wall: "wall";
1139
+ ceiling: "ceiling";
1140
+ "wall-side": "wall-side";
1141
+ }>>;
1142
+ recessed: z.ZodOptional<z.ZodBoolean>;
1143
+ tags: z.ZodOptional<z.ZodArray<z.ZodString>>;
1144
+ functionTags: z.ZodOptional<z.ZodArray<z.ZodString>>;
1145
+ offset: z.ZodDefault<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
1146
+ rotation: z.ZodDefault<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
1147
+ scale: z.ZodDefault<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
1148
+ surface: z.ZodOptional<z.ZodObject<{
1149
+ height: z.ZodNumber;
1150
+ }, z.core.$strip>>;
1151
+ interactive: z.ZodOptional<z.ZodObject<{
1152
+ controls: z.ZodDefault<z.ZodArray<z.ZodDiscriminatedUnion<[z.ZodObject<{
1153
+ kind: z.ZodLiteral<"toggle">;
1154
+ label: z.ZodOptional<z.ZodString>;
1155
+ default: z.ZodOptional<z.ZodBoolean>;
1156
+ }, z.core.$strip>, z.ZodObject<{
1157
+ kind: z.ZodLiteral<"slider">;
1158
+ label: z.ZodString;
1159
+ min: z.ZodNumber;
1160
+ max: z.ZodNumber;
1161
+ step: z.ZodDefault<z.ZodNumber>;
1162
+ unit: z.ZodOptional<z.ZodString>;
1163
+ displayMode: z.ZodDefault<z.ZodEnum<{
1164
+ slider: "slider";
1165
+ stepper: "stepper";
1166
+ dial: "dial";
1167
+ }>>;
1168
+ default: z.ZodOptional<z.ZodNumber>;
1169
+ }, z.core.$strip>, z.ZodObject<{
1170
+ kind: z.ZodLiteral<"temperature">;
1171
+ label: z.ZodDefault<z.ZodString>;
1172
+ min: z.ZodDefault<z.ZodNumber>;
1173
+ max: z.ZodDefault<z.ZodNumber>;
1174
+ unit: z.ZodDefault<z.ZodEnum<{
1175
+ C: "C";
1176
+ F: "F";
1177
+ }>>;
1178
+ default: z.ZodOptional<z.ZodNumber>;
1179
+ }, z.core.$strip>], "kind">>>;
1180
+ effects: z.ZodDefault<z.ZodArray<z.ZodDiscriminatedUnion<[z.ZodObject<{
1181
+ kind: z.ZodLiteral<"animation">;
1182
+ clips: z.ZodObject<{
1183
+ on: z.ZodOptional<z.ZodString>;
1184
+ off: z.ZodOptional<z.ZodString>;
1185
+ loop: z.ZodOptional<z.ZodString>;
1186
+ }, z.core.$strip>;
1187
+ }, z.core.$strip>, z.ZodObject<{
1188
+ kind: z.ZodLiteral<"light">;
1189
+ color: z.ZodDefault<z.ZodString>;
1190
+ intensityRange: z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>;
1191
+ distance: z.ZodOptional<z.ZodNumber>;
1192
+ offset: z.ZodDefault<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
1193
+ }, z.core.$strip>], "kind">>>;
1194
+ }, z.core.$strip>>;
1195
+ }, z.core.$strip>;
1196
+ }, z.core.$strip>, z.ZodObject<{
1197
+ object: z.ZodDefault<z.ZodLiteral<"node">>;
1198
+ parentId: z.ZodDefault<z.ZodNullable<z.ZodString>>;
1199
+ visible: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
1200
+ camera: z.ZodOptional<z.ZodObject<{
1201
+ position: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
1202
+ target: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
1203
+ mode: z.ZodDefault<z.ZodEnum<{
1204
+ perspective: "perspective";
1205
+ orthographic: "orthographic";
1206
+ }>>;
1207
+ fov: z.ZodOptional<z.ZodNumber>;
1208
+ zoom: z.ZodOptional<z.ZodNumber>;
1209
+ }, z.core.$strip>>;
1210
+ id: z.ZodDefault<z.ZodTemplateLiteral<`zone_${string}`>>;
1211
+ type: z.ZodDefault<z.ZodLiteral<"zone">>;
1212
+ name: z.ZodString;
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}`>>>>;
1216
+ color: z.ZodDefault<z.ZodString>;
1217
+ metadata: z.ZodDefault<z.ZodOptional<z.ZodJSONSchema>>;
1218
+ }, z.core.$strip>, z.ZodObject<{
1219
+ object: z.ZodDefault<z.ZodLiteral<"node">>;
1220
+ name: z.ZodOptional<z.ZodString>;
1221
+ parentId: z.ZodDefault<z.ZodNullable<z.ZodString>>;
1222
+ visible: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
1223
+ camera: z.ZodOptional<z.ZodObject<{
1224
+ position: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
1225
+ target: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
1226
+ mode: z.ZodDefault<z.ZodEnum<{
1227
+ perspective: "perspective";
1228
+ orthographic: "orthographic";
1229
+ }>>;
1230
+ fov: z.ZodOptional<z.ZodNumber>;
1231
+ zoom: z.ZodOptional<z.ZodNumber>;
1232
+ }, z.core.$strip>>;
1233
+ metadata: z.ZodDefault<z.ZodOptional<z.ZodJSONSchema>>;
1234
+ id: z.ZodDefault<z.ZodTemplateLiteral<`slab_${string}`>>;
1235
+ type: z.ZodDefault<z.ZodLiteral<"slab">>;
1236
+ material: z.ZodOptional<z.ZodObject<{
1237
+ id: z.ZodOptional<z.ZodString>;
1238
+ preset: z.ZodOptional<z.ZodCatch<z.ZodEnum<{
1239
+ custom: "custom";
1240
+ white: "white";
1241
+ brick: "brick";
1242
+ concrete: "concrete";
1243
+ wood: "wood";
1244
+ glass: "glass";
1245
+ metal: "metal";
1246
+ plaster: "plaster";
1247
+ tile: "tile";
1248
+ marble: "marble";
1249
+ }>>>;
1250
+ properties: z.ZodOptional<z.ZodObject<{
1251
+ color: z.ZodDefault<z.ZodString>;
1252
+ roughness: z.ZodDefault<z.ZodNumber>;
1253
+ metalness: z.ZodDefault<z.ZodNumber>;
1254
+ opacity: z.ZodDefault<z.ZodNumber>;
1255
+ transparent: z.ZodDefault<z.ZodBoolean>;
1256
+ side: z.ZodDefault<z.ZodEnum<{
1257
+ front: "front";
1258
+ back: "back";
1259
+ double: "double";
1260
+ }>>;
1261
+ }, z.core.$strip>>;
1262
+ texture: z.ZodOptional<z.ZodObject<{
1263
+ url: z.ZodString;
1264
+ repeat: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>>;
1265
+ scale: z.ZodOptional<z.ZodNumber>;
1266
+ }, z.core.$strip>>;
1267
+ }, z.core.$strip>>;
1268
+ materialPreset: z.ZodOptional<z.ZodString>;
1269
+ slots: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
1270
+ polygon: z.ZodArray<z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>>;
1271
+ holes: z.ZodDefault<z.ZodArray<z.ZodArray<z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>>>>;
1272
+ holeMetadata: z.ZodDefault<z.ZodArray<z.ZodObject<{
1273
+ source: z.ZodDefault<z.ZodEnum<{
1274
+ stair: "stair";
1275
+ elevator: "elevator";
1276
+ manual: "manual";
1277
+ }>>;
1278
+ stairId: z.ZodOptional<z.ZodString>;
1279
+ elevatorId: z.ZodOptional<z.ZodString>;
1280
+ }, z.core.$strip>>>;
1281
+ elevation: z.ZodDefault<z.ZodNumber>;
1282
+ autoFromWalls: z.ZodDefault<z.ZodBoolean>;
1283
+ }, z.core.$strip>, z.ZodObject<{
1284
+ object: z.ZodDefault<z.ZodLiteral<"node">>;
1285
+ name: z.ZodOptional<z.ZodString>;
1286
+ parentId: z.ZodDefault<z.ZodNullable<z.ZodString>>;
1287
+ visible: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
1288
+ camera: z.ZodOptional<z.ZodObject<{
1289
+ position: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
1290
+ target: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
1291
+ mode: z.ZodDefault<z.ZodEnum<{
1292
+ perspective: "perspective";
1293
+ orthographic: "orthographic";
1294
+ }>>;
1295
+ fov: z.ZodOptional<z.ZodNumber>;
1296
+ zoom: z.ZodOptional<z.ZodNumber>;
1297
+ }, z.core.$strip>>;
1298
+ metadata: z.ZodDefault<z.ZodOptional<z.ZodJSONSchema>>;
1299
+ id: z.ZodDefault<z.ZodTemplateLiteral<`ceiling_${string}`>>;
1300
+ type: z.ZodDefault<z.ZodLiteral<"ceiling">>;
1301
+ children: z.ZodDefault<z.ZodArray<z.ZodDefault<z.ZodTemplateLiteral<`item_${string}`>>>>;
1302
+ material: z.ZodOptional<z.ZodObject<{
1303
+ id: z.ZodOptional<z.ZodString>;
1304
+ preset: z.ZodOptional<z.ZodCatch<z.ZodEnum<{
1305
+ custom: "custom";
1306
+ white: "white";
1307
+ brick: "brick";
1308
+ concrete: "concrete";
1309
+ wood: "wood";
1310
+ glass: "glass";
1311
+ metal: "metal";
1312
+ plaster: "plaster";
1313
+ tile: "tile";
1314
+ marble: "marble";
1315
+ }>>>;
1316
+ properties: z.ZodOptional<z.ZodObject<{
1317
+ color: z.ZodDefault<z.ZodString>;
1318
+ roughness: z.ZodDefault<z.ZodNumber>;
1319
+ metalness: z.ZodDefault<z.ZodNumber>;
1320
+ opacity: z.ZodDefault<z.ZodNumber>;
1321
+ transparent: z.ZodDefault<z.ZodBoolean>;
1322
+ side: z.ZodDefault<z.ZodEnum<{
1323
+ front: "front";
1324
+ back: "back";
1325
+ double: "double";
1326
+ }>>;
1327
+ }, z.core.$strip>>;
1328
+ texture: z.ZodOptional<z.ZodObject<{
1329
+ url: z.ZodString;
1330
+ repeat: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>>;
1331
+ scale: z.ZodOptional<z.ZodNumber>;
1332
+ }, z.core.$strip>>;
1333
+ }, z.core.$strip>>;
1334
+ materialPreset: z.ZodOptional<z.ZodString>;
1335
+ slots: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
1336
+ polygon: z.ZodArray<z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>>;
1337
+ holes: z.ZodDefault<z.ZodArray<z.ZodArray<z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>>>>;
1338
+ holeMetadata: z.ZodDefault<z.ZodArray<z.ZodObject<{
1339
+ source: z.ZodDefault<z.ZodEnum<{
1340
+ stair: "stair";
1341
+ elevator: "elevator";
1342
+ manual: "manual";
1343
+ }>>;
1344
+ stairId: z.ZodOptional<z.ZodString>;
1345
+ elevatorId: z.ZodOptional<z.ZodString>;
1346
+ }, z.core.$strip>>>;
1347
+ height: z.ZodDefault<z.ZodNumber>;
1348
+ autoFromWalls: z.ZodDefault<z.ZodBoolean>;
1349
+ }, z.core.$strip>, z.ZodObject<{
1350
+ object: z.ZodDefault<z.ZodLiteral<"node">>;
1351
+ name: z.ZodOptional<z.ZodString>;
1352
+ parentId: z.ZodDefault<z.ZodNullable<z.ZodString>>;
1353
+ visible: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
1354
+ camera: z.ZodOptional<z.ZodObject<{
1355
+ position: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
1356
+ target: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
1357
+ mode: z.ZodDefault<z.ZodEnum<{
1358
+ perspective: "perspective";
1359
+ orthographic: "orthographic";
1360
+ }>>;
1361
+ fov: z.ZodOptional<z.ZodNumber>;
1362
+ zoom: z.ZodOptional<z.ZodNumber>;
1363
+ }, z.core.$strip>>;
1364
+ metadata: z.ZodDefault<z.ZodOptional<z.ZodJSONSchema>>;
1365
+ id: z.ZodDefault<z.ZodTemplateLiteral<`roof_${string}`>>;
1366
+ type: z.ZodDefault<z.ZodLiteral<"roof">>;
1367
+ material: z.ZodOptional<z.ZodObject<{
1368
+ id: z.ZodOptional<z.ZodString>;
1369
+ preset: z.ZodOptional<z.ZodCatch<z.ZodEnum<{
1370
+ custom: "custom";
1371
+ white: "white";
1372
+ brick: "brick";
1373
+ concrete: "concrete";
1374
+ wood: "wood";
1375
+ glass: "glass";
1376
+ metal: "metal";
1377
+ plaster: "plaster";
1378
+ tile: "tile";
1379
+ marble: "marble";
1380
+ }>>>;
1381
+ properties: z.ZodOptional<z.ZodObject<{
1382
+ color: z.ZodDefault<z.ZodString>;
1383
+ roughness: z.ZodDefault<z.ZodNumber>;
1384
+ metalness: z.ZodDefault<z.ZodNumber>;
1385
+ opacity: z.ZodDefault<z.ZodNumber>;
1386
+ transparent: z.ZodDefault<z.ZodBoolean>;
1387
+ side: z.ZodDefault<z.ZodEnum<{
1388
+ front: "front";
1389
+ back: "back";
1390
+ double: "double";
1391
+ }>>;
1392
+ }, z.core.$strip>>;
1393
+ texture: z.ZodOptional<z.ZodObject<{
1394
+ url: z.ZodString;
1395
+ repeat: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>>;
1396
+ scale: z.ZodOptional<z.ZodNumber>;
1397
+ }, z.core.$strip>>;
1398
+ }, z.core.$strip>>;
1399
+ materialPreset: z.ZodOptional<z.ZodString>;
1400
+ topMaterial: z.ZodOptional<z.ZodObject<{
1401
+ id: z.ZodOptional<z.ZodString>;
1402
+ preset: z.ZodOptional<z.ZodCatch<z.ZodEnum<{
1403
+ custom: "custom";
1404
+ white: "white";
1405
+ brick: "brick";
1406
+ concrete: "concrete";
1407
+ wood: "wood";
1408
+ glass: "glass";
1409
+ metal: "metal";
1410
+ plaster: "plaster";
1411
+ tile: "tile";
1412
+ marble: "marble";
1413
+ }>>>;
1414
+ properties: z.ZodOptional<z.ZodObject<{
1415
+ color: z.ZodDefault<z.ZodString>;
1416
+ roughness: z.ZodDefault<z.ZodNumber>;
1417
+ metalness: z.ZodDefault<z.ZodNumber>;
1418
+ opacity: z.ZodDefault<z.ZodNumber>;
1419
+ transparent: z.ZodDefault<z.ZodBoolean>;
1420
+ side: z.ZodDefault<z.ZodEnum<{
1421
+ front: "front";
1422
+ back: "back";
1423
+ double: "double";
1424
+ }>>;
1425
+ }, z.core.$strip>>;
1426
+ texture: z.ZodOptional<z.ZodObject<{
1427
+ url: z.ZodString;
1428
+ repeat: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>>;
1429
+ scale: z.ZodOptional<z.ZodNumber>;
1430
+ }, z.core.$strip>>;
1431
+ }, z.core.$strip>>;
1432
+ topMaterialPreset: z.ZodOptional<z.ZodString>;
1433
+ edgeMaterial: z.ZodOptional<z.ZodObject<{
1434
+ id: z.ZodOptional<z.ZodString>;
1435
+ preset: z.ZodOptional<z.ZodCatch<z.ZodEnum<{
1436
+ custom: "custom";
1437
+ white: "white";
1438
+ brick: "brick";
1439
+ concrete: "concrete";
1440
+ wood: "wood";
1441
+ glass: "glass";
1442
+ metal: "metal";
1443
+ plaster: "plaster";
1444
+ tile: "tile";
1445
+ marble: "marble";
1446
+ }>>>;
1447
+ properties: z.ZodOptional<z.ZodObject<{
1448
+ color: z.ZodDefault<z.ZodString>;
1449
+ roughness: z.ZodDefault<z.ZodNumber>;
1450
+ metalness: z.ZodDefault<z.ZodNumber>;
1451
+ opacity: z.ZodDefault<z.ZodNumber>;
1452
+ transparent: z.ZodDefault<z.ZodBoolean>;
1453
+ side: z.ZodDefault<z.ZodEnum<{
1454
+ front: "front";
1455
+ back: "back";
1456
+ double: "double";
1457
+ }>>;
1458
+ }, z.core.$strip>>;
1459
+ texture: z.ZodOptional<z.ZodObject<{
1460
+ url: z.ZodString;
1461
+ repeat: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>>;
1462
+ scale: z.ZodOptional<z.ZodNumber>;
1463
+ }, z.core.$strip>>;
1464
+ }, z.core.$strip>>;
1465
+ edgeMaterialPreset: z.ZodOptional<z.ZodString>;
1466
+ wallMaterial: z.ZodOptional<z.ZodObject<{
1467
+ id: z.ZodOptional<z.ZodString>;
1468
+ preset: z.ZodOptional<z.ZodCatch<z.ZodEnum<{
1469
+ custom: "custom";
1470
+ white: "white";
1471
+ brick: "brick";
1472
+ concrete: "concrete";
1473
+ wood: "wood";
1474
+ glass: "glass";
1475
+ metal: "metal";
1476
+ plaster: "plaster";
1477
+ tile: "tile";
1478
+ marble: "marble";
1479
+ }>>>;
1480
+ properties: z.ZodOptional<z.ZodObject<{
1481
+ color: z.ZodDefault<z.ZodString>;
1482
+ roughness: z.ZodDefault<z.ZodNumber>;
1483
+ metalness: z.ZodDefault<z.ZodNumber>;
1484
+ opacity: z.ZodDefault<z.ZodNumber>;
1485
+ transparent: z.ZodDefault<z.ZodBoolean>;
1486
+ side: z.ZodDefault<z.ZodEnum<{
1487
+ front: "front";
1488
+ back: "back";
1489
+ double: "double";
1490
+ }>>;
1491
+ }, z.core.$strip>>;
1492
+ texture: z.ZodOptional<z.ZodObject<{
1493
+ url: z.ZodString;
1494
+ repeat: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>>;
1495
+ scale: z.ZodOptional<z.ZodNumber>;
1496
+ }, z.core.$strip>>;
1497
+ }, z.core.$strip>>;
1498
+ wallMaterialPreset: z.ZodOptional<z.ZodString>;
1499
+ position: z.ZodDefault<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
1500
+ rotation: z.ZodDefault<z.ZodNumber>;
1501
+ children: z.ZodDefault<z.ZodArray<z.ZodDefault<z.ZodTemplateLiteral<`rseg_${string}`>>>>;
1502
+ }, z.core.$strip>, z.ZodObject<{
1503
+ object: z.ZodDefault<z.ZodLiteral<"node">>;
1504
+ name: z.ZodOptional<z.ZodString>;
1505
+ parentId: z.ZodDefault<z.ZodNullable<z.ZodString>>;
1506
+ visible: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
1507
+ camera: z.ZodOptional<z.ZodObject<{
1508
+ position: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
1509
+ target: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
1510
+ mode: z.ZodDefault<z.ZodEnum<{
1511
+ perspective: "perspective";
1512
+ orthographic: "orthographic";
1513
+ }>>;
1514
+ fov: z.ZodOptional<z.ZodNumber>;
1515
+ zoom: z.ZodOptional<z.ZodNumber>;
1516
+ }, z.core.$strip>>;
1517
+ metadata: z.ZodDefault<z.ZodOptional<z.ZodJSONSchema>>;
1518
+ id: z.ZodDefault<z.ZodTemplateLiteral<`rseg_${string}`>>;
1519
+ type: z.ZodDefault<z.ZodLiteral<"roof-segment">>;
1520
+ material: z.ZodOptional<z.ZodObject<{
1521
+ id: z.ZodOptional<z.ZodString>;
1522
+ preset: z.ZodOptional<z.ZodCatch<z.ZodEnum<{
1523
+ custom: "custom";
1524
+ white: "white";
1525
+ brick: "brick";
1526
+ concrete: "concrete";
1527
+ wood: "wood";
1528
+ glass: "glass";
1529
+ metal: "metal";
1530
+ plaster: "plaster";
1531
+ tile: "tile";
1532
+ marble: "marble";
1533
+ }>>>;
1534
+ properties: z.ZodOptional<z.ZodObject<{
1535
+ color: z.ZodDefault<z.ZodString>;
1536
+ roughness: z.ZodDefault<z.ZodNumber>;
1537
+ metalness: z.ZodDefault<z.ZodNumber>;
1538
+ opacity: z.ZodDefault<z.ZodNumber>;
1539
+ transparent: z.ZodDefault<z.ZodBoolean>;
1540
+ side: z.ZodDefault<z.ZodEnum<{
1541
+ front: "front";
1542
+ back: "back";
1543
+ double: "double";
1544
+ }>>;
1545
+ }, z.core.$strip>>;
1546
+ texture: z.ZodOptional<z.ZodObject<{
1547
+ url: z.ZodString;
1548
+ repeat: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>>;
1549
+ scale: z.ZodOptional<z.ZodNumber>;
1550
+ }, z.core.$strip>>;
1551
+ }, z.core.$strip>>;
1552
+ materialPreset: z.ZodOptional<z.ZodString>;
1553
+ topMaterial: z.ZodOptional<z.ZodObject<{
1554
+ id: z.ZodOptional<z.ZodString>;
1555
+ preset: z.ZodOptional<z.ZodCatch<z.ZodEnum<{
1556
+ custom: "custom";
1557
+ white: "white";
1558
+ brick: "brick";
1559
+ concrete: "concrete";
1560
+ wood: "wood";
1561
+ glass: "glass";
1562
+ metal: "metal";
1563
+ plaster: "plaster";
1564
+ tile: "tile";
1565
+ marble: "marble";
1566
+ }>>>;
1567
+ properties: z.ZodOptional<z.ZodObject<{
1568
+ color: z.ZodDefault<z.ZodString>;
1569
+ roughness: z.ZodDefault<z.ZodNumber>;
1570
+ metalness: z.ZodDefault<z.ZodNumber>;
1571
+ opacity: z.ZodDefault<z.ZodNumber>;
1572
+ transparent: z.ZodDefault<z.ZodBoolean>;
1573
+ side: z.ZodDefault<z.ZodEnum<{
1574
+ front: "front";
1575
+ back: "back";
1576
+ double: "double";
1577
+ }>>;
1578
+ }, z.core.$strip>>;
1579
+ texture: z.ZodOptional<z.ZodObject<{
1580
+ url: z.ZodString;
1581
+ repeat: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>>;
1582
+ scale: z.ZodOptional<z.ZodNumber>;
1583
+ }, z.core.$strip>>;
1584
+ }, z.core.$strip>>;
1585
+ topMaterialPreset: z.ZodOptional<z.ZodString>;
1586
+ edgeMaterial: z.ZodOptional<z.ZodObject<{
1587
+ id: z.ZodOptional<z.ZodString>;
1588
+ preset: z.ZodOptional<z.ZodCatch<z.ZodEnum<{
1589
+ custom: "custom";
1590
+ white: "white";
1591
+ brick: "brick";
1592
+ concrete: "concrete";
1593
+ wood: "wood";
1594
+ glass: "glass";
1595
+ metal: "metal";
1596
+ plaster: "plaster";
1597
+ tile: "tile";
1598
+ marble: "marble";
1599
+ }>>>;
1600
+ properties: z.ZodOptional<z.ZodObject<{
1601
+ color: z.ZodDefault<z.ZodString>;
1602
+ roughness: z.ZodDefault<z.ZodNumber>;
1603
+ metalness: z.ZodDefault<z.ZodNumber>;
1604
+ opacity: z.ZodDefault<z.ZodNumber>;
1605
+ transparent: z.ZodDefault<z.ZodBoolean>;
1606
+ side: z.ZodDefault<z.ZodEnum<{
1607
+ front: "front";
1608
+ back: "back";
1609
+ double: "double";
1610
+ }>>;
1611
+ }, z.core.$strip>>;
1612
+ texture: z.ZodOptional<z.ZodObject<{
1613
+ url: z.ZodString;
1614
+ repeat: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>>;
1615
+ scale: z.ZodOptional<z.ZodNumber>;
1616
+ }, z.core.$strip>>;
1617
+ }, z.core.$strip>>;
1618
+ edgeMaterialPreset: z.ZodOptional<z.ZodString>;
1619
+ wallMaterial: z.ZodOptional<z.ZodObject<{
1620
+ id: z.ZodOptional<z.ZodString>;
1621
+ preset: z.ZodOptional<z.ZodCatch<z.ZodEnum<{
1622
+ custom: "custom";
1623
+ white: "white";
1624
+ brick: "brick";
1625
+ concrete: "concrete";
1626
+ wood: "wood";
1627
+ glass: "glass";
1628
+ metal: "metal";
1629
+ plaster: "plaster";
1630
+ tile: "tile";
1631
+ marble: "marble";
1632
+ }>>>;
1633
+ properties: z.ZodOptional<z.ZodObject<{
1634
+ color: z.ZodDefault<z.ZodString>;
1635
+ roughness: z.ZodDefault<z.ZodNumber>;
1636
+ metalness: z.ZodDefault<z.ZodNumber>;
1637
+ opacity: z.ZodDefault<z.ZodNumber>;
1638
+ transparent: z.ZodDefault<z.ZodBoolean>;
1639
+ side: z.ZodDefault<z.ZodEnum<{
1640
+ front: "front";
1641
+ back: "back";
1642
+ double: "double";
1643
+ }>>;
1644
+ }, z.core.$strip>>;
1645
+ texture: z.ZodOptional<z.ZodObject<{
1646
+ url: z.ZodString;
1647
+ repeat: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>>;
1648
+ scale: z.ZodOptional<z.ZodNumber>;
1649
+ }, z.core.$strip>>;
1650
+ }, z.core.$strip>>;
1651
+ wallMaterialPreset: z.ZodOptional<z.ZodString>;
1652
+ position: z.ZodDefault<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
1653
+ rotation: z.ZodDefault<z.ZodNumber>;
1654
+ roofType: z.ZodDefault<z.ZodEnum<{
1655
+ flat: "flat";
1656
+ hip: "hip";
1657
+ gable: "gable";
1658
+ shed: "shed";
1659
+ gambrel: "gambrel";
1660
+ dutch: "dutch";
1661
+ mansard: "mansard";
1662
+ }>>;
1663
+ width: z.ZodDefault<z.ZodNumber>;
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>>;
1683
+ wallHeight: z.ZodDefault<z.ZodNumber>;
1684
+ pitch: z.ZodDefault<z.ZodNumber>;
1685
+ wallThickness: z.ZodDefault<z.ZodNumber>;
1686
+ deckThickness: z.ZodDefault<z.ZodNumber>;
1687
+ overhang: z.ZodDefault<z.ZodNumber>;
1688
+ shingleThickness: z.ZodDefault<z.ZodNumber>;
1689
+ gambrelLowerWidthRatio: z.ZodDefault<z.ZodNumber>;
1690
+ gambrelLowerHeightRatio: z.ZodDefault<z.ZodNumber>;
1691
+ mansardSteepWidthRatio: z.ZodDefault<z.ZodNumber>;
1692
+ mansardSteepHeightRatio: z.ZodDefault<z.ZodNumber>;
1693
+ dutchHipWidthRatio: z.ZodDefault<z.ZodNumber>;
1694
+ dutchHipHeightRatio: z.ZodDefault<z.ZodNumber>;
1695
+ dutchWaistLengthRatio: z.ZodDefault<z.ZodNumber>;
1696
+ dutchGabletRake: z.ZodDefault<z.ZodNumber>;
1697
+ dutchTopRakeThickness: z.ZodDefault<z.ZodNumber>;
1698
+ children: z.ZodDefault<z.ZodArray<z.ZodString>>;
1699
+ }, z.core.$strip>, z.ZodObject<{
1700
+ object: z.ZodDefault<z.ZodLiteral<"node">>;
1701
+ name: z.ZodOptional<z.ZodString>;
1702
+ parentId: z.ZodDefault<z.ZodNullable<z.ZodString>>;
1703
+ visible: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
1704
+ camera: z.ZodOptional<z.ZodObject<{
1705
+ position: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
1706
+ target: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
1707
+ mode: z.ZodDefault<z.ZodEnum<{
1708
+ perspective: "perspective";
1709
+ orthographic: "orthographic";
1710
+ }>>;
1711
+ fov: z.ZodOptional<z.ZodNumber>;
1712
+ zoom: z.ZodOptional<z.ZodNumber>;
1713
+ }, z.core.$strip>>;
1714
+ metadata: z.ZodDefault<z.ZodOptional<z.ZodJSONSchema>>;
1715
+ id: z.ZodDefault<z.ZodTemplateLiteral<`shelf_${string}`>>;
1716
+ type: z.ZodDefault<z.ZodLiteral<"shelf">>;
1717
+ children: z.ZodDefault<z.ZodArray<z.ZodDefault<z.ZodTemplateLiteral<`item_${string}`>>>>;
1718
+ position: z.ZodDefault<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
1719
+ rotation: z.ZodDefault<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
1720
+ width: z.ZodDefault<z.ZodNumber>;
1721
+ depth: z.ZodDefault<z.ZodNumber>;
1722
+ thickness: z.ZodDefault<z.ZodNumber>;
1723
+ height: z.ZodDefault<z.ZodNumber>;
1724
+ style: z.ZodDefault<z.ZodEnum<{
1725
+ "wall-shelf": "wall-shelf";
1726
+ bookshelf: "bookshelf";
1727
+ "open-rack": "open-rack";
1728
+ cubby: "cubby";
1729
+ }>>;
1730
+ rows: z.ZodDefault<z.ZodNumber>;
1731
+ columns: z.ZodDefault<z.ZodNumber>;
1732
+ withBack: z.ZodDefault<z.ZodBoolean>;
1733
+ withSides: z.ZodDefault<z.ZodBoolean>;
1734
+ withBottom: z.ZodDefault<z.ZodBoolean>;
1735
+ bracketStyle: z.ZodDefault<z.ZodEnum<{
1736
+ minimal: "minimal";
1737
+ industrial: "industrial";
1738
+ hidden: "hidden";
1739
+ }>>;
1740
+ material: z.ZodOptional<z.ZodObject<{
1741
+ id: z.ZodOptional<z.ZodString>;
1742
+ preset: z.ZodOptional<z.ZodCatch<z.ZodEnum<{
1743
+ custom: "custom";
1744
+ white: "white";
1745
+ brick: "brick";
1746
+ concrete: "concrete";
1747
+ wood: "wood";
1748
+ glass: "glass";
1749
+ metal: "metal";
1750
+ plaster: "plaster";
1751
+ tile: "tile";
1752
+ marble: "marble";
1753
+ }>>>;
1754
+ properties: z.ZodOptional<z.ZodObject<{
1755
+ color: z.ZodDefault<z.ZodString>;
1756
+ roughness: z.ZodDefault<z.ZodNumber>;
1757
+ metalness: z.ZodDefault<z.ZodNumber>;
1758
+ opacity: z.ZodDefault<z.ZodNumber>;
1759
+ transparent: z.ZodDefault<z.ZodBoolean>;
1760
+ side: z.ZodDefault<z.ZodEnum<{
1761
+ front: "front";
1762
+ back: "back";
1763
+ double: "double";
1764
+ }>>;
1765
+ }, z.core.$strip>>;
1766
+ texture: z.ZodOptional<z.ZodObject<{
1767
+ url: z.ZodString;
1768
+ repeat: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>>;
1769
+ scale: z.ZodOptional<z.ZodNumber>;
1770
+ }, z.core.$strip>>;
1771
+ }, z.core.$strip>>;
1772
+ materialPreset: z.ZodOptional<z.ZodString>;
1773
+ slots: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
1774
+ }, z.core.$strip>, z.ZodObject<{
1775
+ object: z.ZodDefault<z.ZodLiteral<"node">>;
1776
+ name: z.ZodOptional<z.ZodString>;
1777
+ parentId: z.ZodDefault<z.ZodNullable<z.ZodString>>;
1778
+ visible: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
1779
+ camera: z.ZodOptional<z.ZodObject<{
1780
+ position: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
1781
+ target: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
1782
+ mode: z.ZodDefault<z.ZodEnum<{
1783
+ perspective: "perspective";
1784
+ orthographic: "orthographic";
1785
+ }>>;
1786
+ fov: z.ZodOptional<z.ZodNumber>;
1787
+ zoom: z.ZodOptional<z.ZodNumber>;
1788
+ }, z.core.$strip>>;
1789
+ metadata: z.ZodDefault<z.ZodOptional<z.ZodJSONSchema>>;
1790
+ id: z.ZodDefault<z.ZodTemplateLiteral<`stair_${string}`>>;
1791
+ type: z.ZodDefault<z.ZodLiteral<"stair">>;
1792
+ material: z.ZodOptional<z.ZodObject<{
1793
+ id: z.ZodOptional<z.ZodString>;
1794
+ preset: z.ZodOptional<z.ZodCatch<z.ZodEnum<{
1795
+ custom: "custom";
1796
+ white: "white";
1797
+ brick: "brick";
1798
+ concrete: "concrete";
1799
+ wood: "wood";
1800
+ glass: "glass";
1801
+ metal: "metal";
1802
+ plaster: "plaster";
1803
+ tile: "tile";
1804
+ marble: "marble";
1805
+ }>>>;
1806
+ properties: z.ZodOptional<z.ZodObject<{
1807
+ color: z.ZodDefault<z.ZodString>;
1808
+ roughness: z.ZodDefault<z.ZodNumber>;
1809
+ metalness: z.ZodDefault<z.ZodNumber>;
1810
+ opacity: z.ZodDefault<z.ZodNumber>;
1811
+ transparent: z.ZodDefault<z.ZodBoolean>;
1812
+ side: z.ZodDefault<z.ZodEnum<{
1813
+ front: "front";
1814
+ back: "back";
1815
+ double: "double";
1816
+ }>>;
1817
+ }, z.core.$strip>>;
1818
+ texture: z.ZodOptional<z.ZodObject<{
1819
+ url: z.ZodString;
1820
+ repeat: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>>;
1821
+ scale: z.ZodOptional<z.ZodNumber>;
1822
+ }, z.core.$strip>>;
1823
+ }, z.core.$strip>>;
1824
+ materialPreset: z.ZodOptional<z.ZodString>;
1825
+ railingMaterial: z.ZodOptional<z.ZodObject<{
1826
+ id: z.ZodOptional<z.ZodString>;
1827
+ preset: z.ZodOptional<z.ZodCatch<z.ZodEnum<{
1828
+ custom: "custom";
1829
+ white: "white";
1830
+ brick: "brick";
1831
+ concrete: "concrete";
1832
+ wood: "wood";
1833
+ glass: "glass";
1834
+ metal: "metal";
1835
+ plaster: "plaster";
1836
+ tile: "tile";
1837
+ marble: "marble";
1838
+ }>>>;
1839
+ properties: z.ZodOptional<z.ZodObject<{
1840
+ color: z.ZodDefault<z.ZodString>;
1841
+ roughness: z.ZodDefault<z.ZodNumber>;
1842
+ metalness: z.ZodDefault<z.ZodNumber>;
1843
+ opacity: z.ZodDefault<z.ZodNumber>;
1844
+ transparent: z.ZodDefault<z.ZodBoolean>;
1845
+ side: z.ZodDefault<z.ZodEnum<{
1846
+ front: "front";
1847
+ back: "back";
1848
+ double: "double";
1849
+ }>>;
1850
+ }, z.core.$strip>>;
1851
+ texture: z.ZodOptional<z.ZodObject<{
1852
+ url: z.ZodString;
1853
+ repeat: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>>;
1854
+ scale: z.ZodOptional<z.ZodNumber>;
1855
+ }, z.core.$strip>>;
1856
+ }, z.core.$strip>>;
1857
+ railingMaterialPreset: z.ZodOptional<z.ZodString>;
1858
+ treadMaterial: z.ZodOptional<z.ZodObject<{
1859
+ id: z.ZodOptional<z.ZodString>;
1860
+ preset: z.ZodOptional<z.ZodCatch<z.ZodEnum<{
1861
+ custom: "custom";
1862
+ white: "white";
1863
+ brick: "brick";
1864
+ concrete: "concrete";
1865
+ wood: "wood";
1866
+ glass: "glass";
1867
+ metal: "metal";
1868
+ plaster: "plaster";
1869
+ tile: "tile";
1870
+ marble: "marble";
1871
+ }>>>;
1872
+ properties: z.ZodOptional<z.ZodObject<{
1873
+ color: z.ZodDefault<z.ZodString>;
1874
+ roughness: z.ZodDefault<z.ZodNumber>;
1875
+ metalness: z.ZodDefault<z.ZodNumber>;
1876
+ opacity: z.ZodDefault<z.ZodNumber>;
1877
+ transparent: z.ZodDefault<z.ZodBoolean>;
1878
+ side: z.ZodDefault<z.ZodEnum<{
1879
+ front: "front";
1880
+ back: "back";
1881
+ double: "double";
1882
+ }>>;
1883
+ }, z.core.$strip>>;
1884
+ texture: z.ZodOptional<z.ZodObject<{
1885
+ url: z.ZodString;
1886
+ repeat: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>>;
1887
+ scale: z.ZodOptional<z.ZodNumber>;
1888
+ }, z.core.$strip>>;
1889
+ }, z.core.$strip>>;
1890
+ treadMaterialPreset: z.ZodOptional<z.ZodString>;
1891
+ sideMaterial: z.ZodOptional<z.ZodObject<{
1892
+ id: z.ZodOptional<z.ZodString>;
1893
+ preset: z.ZodOptional<z.ZodCatch<z.ZodEnum<{
1894
+ custom: "custom";
1895
+ white: "white";
1896
+ brick: "brick";
1897
+ concrete: "concrete";
1898
+ wood: "wood";
1899
+ glass: "glass";
1900
+ metal: "metal";
1901
+ plaster: "plaster";
1902
+ tile: "tile";
1903
+ marble: "marble";
1904
+ }>>>;
1905
+ properties: z.ZodOptional<z.ZodObject<{
1906
+ color: z.ZodDefault<z.ZodString>;
1907
+ roughness: z.ZodDefault<z.ZodNumber>;
1908
+ metalness: z.ZodDefault<z.ZodNumber>;
1909
+ opacity: z.ZodDefault<z.ZodNumber>;
1910
+ transparent: z.ZodDefault<z.ZodBoolean>;
1911
+ side: z.ZodDefault<z.ZodEnum<{
1912
+ front: "front";
1913
+ back: "back";
1914
+ double: "double";
1915
+ }>>;
1916
+ }, z.core.$strip>>;
1917
+ texture: z.ZodOptional<z.ZodObject<{
1918
+ url: z.ZodString;
1919
+ repeat: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>>;
1920
+ scale: z.ZodOptional<z.ZodNumber>;
1921
+ }, z.core.$strip>>;
1922
+ }, z.core.$strip>>;
1923
+ sideMaterialPreset: z.ZodOptional<z.ZodString>;
1924
+ slots: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
1925
+ position: z.ZodDefault<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
1926
+ rotation: z.ZodDefault<z.ZodNumber>;
1927
+ stairType: z.ZodDefault<z.ZodEnum<{
1928
+ straight: "straight";
1929
+ spiral: "spiral";
1930
+ curved: "curved";
1931
+ }>>;
1932
+ fromLevelId: z.ZodDefault<z.ZodNullable<z.ZodString>>;
1933
+ toLevelId: z.ZodDefault<z.ZodNullable<z.ZodString>>;
1934
+ slabOpeningMode: z.ZodDefault<z.ZodEnum<{
1935
+ none: "none";
1936
+ destination: "destination";
1937
+ }>>;
1938
+ openingOffset: z.ZodDefault<z.ZodNumber>;
1939
+ width: z.ZodDefault<z.ZodNumber>;
1940
+ totalRise: z.ZodDefault<z.ZodNumber>;
1941
+ stepCount: z.ZodDefault<z.ZodNumber>;
1942
+ thickness: z.ZodDefault<z.ZodNumber>;
1943
+ fillToFloor: z.ZodDefault<z.ZodBoolean>;
1944
+ innerRadius: z.ZodDefault<z.ZodNumber>;
1945
+ sweepAngle: z.ZodDefault<z.ZodNumber>;
1946
+ topLandingMode: z.ZodDefault<z.ZodEnum<{
1947
+ none: "none";
1948
+ integrated: "integrated";
1949
+ }>>;
1950
+ topLandingDepth: z.ZodDefault<z.ZodNumber>;
1951
+ showCenterColumn: z.ZodDefault<z.ZodBoolean>;
1952
+ showStepSupports: z.ZodDefault<z.ZodBoolean>;
1953
+ railingMode: z.ZodDefault<z.ZodEnum<{
1954
+ right: "right";
1955
+ left: "left";
1956
+ none: "none";
1957
+ both: "both";
1958
+ }>>;
1959
+ railingHeight: z.ZodDefault<z.ZodNumber>;
1960
+ children: z.ZodDefault<z.ZodArray<z.ZodDefault<z.ZodTemplateLiteral<`sseg_${string}`>>>>;
1961
+ }, z.core.$strip>, z.ZodObject<{
1962
+ object: z.ZodDefault<z.ZodLiteral<"node">>;
1963
+ name: z.ZodOptional<z.ZodString>;
1964
+ parentId: z.ZodDefault<z.ZodNullable<z.ZodString>>;
1965
+ visible: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
1966
+ camera: z.ZodOptional<z.ZodObject<{
1967
+ position: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
1968
+ target: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
1969
+ mode: z.ZodDefault<z.ZodEnum<{
1970
+ perspective: "perspective";
1971
+ orthographic: "orthographic";
1972
+ }>>;
1973
+ fov: z.ZodOptional<z.ZodNumber>;
1974
+ zoom: z.ZodOptional<z.ZodNumber>;
1975
+ }, z.core.$strip>>;
1976
+ metadata: z.ZodDefault<z.ZodOptional<z.ZodJSONSchema>>;
1977
+ id: z.ZodDefault<z.ZodTemplateLiteral<`sseg_${string}`>>;
1978
+ type: z.ZodDefault<z.ZodLiteral<"stair-segment">>;
1979
+ material: z.ZodOptional<z.ZodObject<{
1980
+ id: z.ZodOptional<z.ZodString>;
1981
+ preset: z.ZodOptional<z.ZodCatch<z.ZodEnum<{
1982
+ custom: "custom";
1983
+ white: "white";
1984
+ brick: "brick";
1985
+ concrete: "concrete";
1986
+ wood: "wood";
1987
+ glass: "glass";
1988
+ metal: "metal";
1989
+ plaster: "plaster";
1990
+ tile: "tile";
1991
+ marble: "marble";
1992
+ }>>>;
1993
+ properties: z.ZodOptional<z.ZodObject<{
1994
+ color: z.ZodDefault<z.ZodString>;
1995
+ roughness: z.ZodDefault<z.ZodNumber>;
1996
+ metalness: z.ZodDefault<z.ZodNumber>;
1997
+ opacity: z.ZodDefault<z.ZodNumber>;
1998
+ transparent: z.ZodDefault<z.ZodBoolean>;
1999
+ side: z.ZodDefault<z.ZodEnum<{
2000
+ front: "front";
2001
+ back: "back";
2002
+ double: "double";
2003
+ }>>;
2004
+ }, z.core.$strip>>;
2005
+ texture: z.ZodOptional<z.ZodObject<{
2006
+ url: z.ZodString;
2007
+ repeat: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>>;
2008
+ scale: z.ZodOptional<z.ZodNumber>;
2009
+ }, z.core.$strip>>;
2010
+ }, z.core.$strip>>;
2011
+ materialPreset: z.ZodOptional<z.ZodString>;
2012
+ position: z.ZodDefault<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
2013
+ rotation: z.ZodDefault<z.ZodNumber>;
2014
+ segmentType: z.ZodDefault<z.ZodEnum<{
2015
+ stair: "stair";
2016
+ landing: "landing";
2017
+ }>>;
2018
+ width: z.ZodDefault<z.ZodNumber>;
2019
+ length: z.ZodDefault<z.ZodNumber>;
2020
+ height: z.ZodDefault<z.ZodNumber>;
2021
+ stepCount: z.ZodDefault<z.ZodNumber>;
2022
+ attachmentSide: z.ZodDefault<z.ZodEnum<{
2023
+ front: "front";
2024
+ right: "right";
2025
+ left: "left";
2026
+ }>>;
2027
+ fillToFloor: z.ZodDefault<z.ZodBoolean>;
2028
+ thickness: z.ZodDefault<z.ZodNumber>;
2029
+ }, z.core.$strip>, z.ZodObject<{
2030
+ object: z.ZodDefault<z.ZodLiteral<"node">>;
2031
+ name: z.ZodOptional<z.ZodString>;
2032
+ parentId: z.ZodDefault<z.ZodNullable<z.ZodString>>;
2033
+ visible: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
2034
+ camera: z.ZodOptional<z.ZodObject<{
2035
+ position: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
2036
+ target: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
2037
+ mode: z.ZodDefault<z.ZodEnum<{
2038
+ perspective: "perspective";
2039
+ orthographic: "orthographic";
2040
+ }>>;
2041
+ fov: z.ZodOptional<z.ZodNumber>;
2042
+ zoom: z.ZodOptional<z.ZodNumber>;
2043
+ }, z.core.$strip>>;
2044
+ metadata: z.ZodDefault<z.ZodOptional<z.ZodJSONSchema>>;
2045
+ id: z.ZodDefault<z.ZodTemplateLiteral<`scan_${string}`>>;
2046
+ type: z.ZodDefault<z.ZodLiteral<"scan">>;
2047
+ url: z.ZodString;
2048
+ position: z.ZodDefault<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
2049
+ rotation: z.ZodDefault<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
2050
+ scale: z.ZodDefault<z.ZodNumber>;
2051
+ opacity: z.ZodDefault<z.ZodNumber>;
2052
+ }, z.core.$strip>, z.ZodObject<{
2053
+ object: z.ZodDefault<z.ZodLiteral<"node">>;
2054
+ name: z.ZodOptional<z.ZodString>;
2055
+ parentId: z.ZodDefault<z.ZodNullable<z.ZodString>>;
2056
+ visible: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
2057
+ camera: z.ZodOptional<z.ZodObject<{
2058
+ position: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
2059
+ target: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
2060
+ mode: z.ZodDefault<z.ZodEnum<{
2061
+ perspective: "perspective";
2062
+ orthographic: "orthographic";
2063
+ }>>;
2064
+ fov: z.ZodOptional<z.ZodNumber>;
2065
+ zoom: z.ZodOptional<z.ZodNumber>;
2066
+ }, z.core.$strip>>;
2067
+ metadata: z.ZodDefault<z.ZodOptional<z.ZodJSONSchema>>;
2068
+ id: z.ZodDefault<z.ZodTemplateLiteral<`guide_${string}`>>;
2069
+ type: z.ZodDefault<z.ZodLiteral<"guide">>;
2070
+ url: z.ZodString;
2071
+ position: z.ZodDefault<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
2072
+ rotation: z.ZodDefault<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
2073
+ scale: z.ZodDefault<z.ZodNumber>;
2074
+ opacity: z.ZodDefault<z.ZodNumber>;
2075
+ scaleReference: z.ZodDefault<z.ZodNullable<z.ZodObject<{
2076
+ start: z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>;
2077
+ end: z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>;
2078
+ realLengthMeters: z.ZodNumber;
2079
+ measuredLengthUnits: z.ZodNumber;
2080
+ metersPerUnit: z.ZodNumber;
2081
+ label: z.ZodString;
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">;
2182
+ }, z.core.$strip>, z.ZodObject<{
2183
+ object: z.ZodDefault<z.ZodLiteral<"node">>;
2184
+ name: z.ZodOptional<z.ZodString>;
2185
+ parentId: z.ZodDefault<z.ZodNullable<z.ZodString>>;
2186
+ visible: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
2187
+ camera: z.ZodOptional<z.ZodObject<{
2188
+ position: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
2189
+ target: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
2190
+ mode: z.ZodDefault<z.ZodEnum<{
2191
+ perspective: "perspective";
2192
+ orthographic: "orthographic";
2193
+ }>>;
2194
+ fov: z.ZodOptional<z.ZodNumber>;
2195
+ zoom: z.ZodOptional<z.ZodNumber>;
2196
+ }, z.core.$strip>>;
2197
+ metadata: z.ZodDefault<z.ZodOptional<z.ZodJSONSchema>>;
2198
+ id: z.ZodDefault<z.ZodTemplateLiteral<`spawn_${string}`>>;
2199
+ type: z.ZodDefault<z.ZodLiteral<"spawn">>;
2200
+ position: z.ZodDefault<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
2201
+ rotation: z.ZodDefault<z.ZodNumber>;
2202
+ }, z.core.$strip>, z.ZodObject<{
2203
+ object: z.ZodDefault<z.ZodLiteral<"node">>;
2204
+ name: z.ZodOptional<z.ZodString>;
2205
+ parentId: z.ZodDefault<z.ZodNullable<z.ZodString>>;
2206
+ visible: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
2207
+ camera: z.ZodOptional<z.ZodObject<{
2208
+ position: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
2209
+ target: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
2210
+ mode: z.ZodDefault<z.ZodEnum<{
2211
+ perspective: "perspective";
2212
+ orthographic: "orthographic";
2213
+ }>>;
2214
+ fov: z.ZodOptional<z.ZodNumber>;
2215
+ zoom: z.ZodOptional<z.ZodNumber>;
2216
+ }, z.core.$strip>>;
2217
+ metadata: z.ZodDefault<z.ZodOptional<z.ZodJSONSchema>>;
2218
+ id: z.ZodDefault<z.ZodTemplateLiteral<`window_${string}`>>;
2219
+ type: z.ZodDefault<z.ZodLiteral<"window">>;
2220
+ material: z.ZodOptional<z.ZodObject<{
2221
+ id: z.ZodOptional<z.ZodString>;
2222
+ preset: z.ZodOptional<z.ZodCatch<z.ZodEnum<{
2223
+ custom: "custom";
2224
+ white: "white";
2225
+ brick: "brick";
2226
+ concrete: "concrete";
2227
+ wood: "wood";
2228
+ glass: "glass";
2229
+ metal: "metal";
2230
+ plaster: "plaster";
2231
+ tile: "tile";
2232
+ marble: "marble";
2233
+ }>>>;
2234
+ properties: z.ZodOptional<z.ZodObject<{
2235
+ color: z.ZodDefault<z.ZodString>;
2236
+ roughness: z.ZodDefault<z.ZodNumber>;
2237
+ metalness: z.ZodDefault<z.ZodNumber>;
2238
+ opacity: z.ZodDefault<z.ZodNumber>;
2239
+ transparent: z.ZodDefault<z.ZodBoolean>;
2240
+ side: z.ZodDefault<z.ZodEnum<{
2241
+ front: "front";
2242
+ back: "back";
2243
+ double: "double";
2244
+ }>>;
2245
+ }, z.core.$strip>>;
2246
+ texture: z.ZodOptional<z.ZodObject<{
2247
+ url: z.ZodString;
2248
+ repeat: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>>;
2249
+ scale: z.ZodOptional<z.ZodNumber>;
2250
+ }, z.core.$strip>>;
2251
+ }, z.core.$strip>>;
2252
+ slots: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
2253
+ position: z.ZodDefault<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
2254
+ rotation: z.ZodDefault<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
2255
+ side: z.ZodOptional<z.ZodEnum<{
2256
+ front: "front";
2257
+ back: "back";
2258
+ }>>;
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
+ }>>;
2267
+ width: z.ZodDefault<z.ZodNumber>;
2268
+ height: z.ZodDefault<z.ZodNumber>;
2269
+ openingKind: z.ZodDefault<z.ZodEnum<{
2270
+ window: "window";
2271
+ opening: "opening";
2272
+ }>>;
2273
+ windowType: z.ZodDefault<z.ZodEnum<{
2274
+ sliding: "sliding";
2275
+ fixed: "fixed";
2276
+ casement: "casement";
2277
+ awning: "awning";
2278
+ hopper: "hopper";
2279
+ "single-hung": "single-hung";
2280
+ "double-hung": "double-hung";
2281
+ bay: "bay";
2282
+ bow: "bow";
2283
+ louvered: "louvered";
2284
+ }>>;
2285
+ operationState: z.ZodDefault<z.ZodNumber>;
2286
+ awningDirection: z.ZodDefault<z.ZodEnum<{
2287
+ up: "up";
2288
+ down: "down";
2289
+ }>>;
2290
+ casementStyle: z.ZodDefault<z.ZodEnum<{
2291
+ french: "french";
2292
+ single: "single";
2293
+ }>>;
2294
+ hingesSide: z.ZodDefault<z.ZodEnum<{
2295
+ right: "right";
2296
+ left: "left";
2297
+ }>>;
2298
+ openingShape: z.ZodDefault<z.ZodEnum<{
2299
+ rectangle: "rectangle";
2300
+ rounded: "rounded";
2301
+ arch: "arch";
2302
+ }>>;
2303
+ openingRadiusMode: z.ZodDefault<z.ZodEnum<{
2304
+ all: "all";
2305
+ individual: "individual";
2306
+ }>>;
2307
+ openingCornerRadii: z.ZodDefault<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
2308
+ cornerRadius: z.ZodDefault<z.ZodNumber>;
2309
+ archHeight: z.ZodDefault<z.ZodNumber>;
2310
+ openingRevealRadius: z.ZodDefault<z.ZodNumber>;
2311
+ frameThickness: z.ZodDefault<z.ZodNumber>;
2312
+ frameDepth: z.ZodDefault<z.ZodNumber>;
2313
+ columnRatios: z.ZodDefault<z.ZodArray<z.ZodNumber>>;
2314
+ rowRatios: z.ZodDefault<z.ZodArray<z.ZodNumber>>;
2315
+ columnDividerThickness: z.ZodDefault<z.ZodNumber>;
2316
+ rowDividerThickness: z.ZodDefault<z.ZodNumber>;
2317
+ sill: z.ZodDefault<z.ZodBoolean>;
2318
+ sillDepth: z.ZodDefault<z.ZodNumber>;
2319
+ sillThickness: z.ZodDefault<z.ZodNumber>;
2320
+ }, z.core.$strip>, z.ZodObject<{
2321
+ object: z.ZodDefault<z.ZodLiteral<"node">>;
2322
+ name: z.ZodOptional<z.ZodString>;
2323
+ parentId: z.ZodDefault<z.ZodNullable<z.ZodString>>;
2324
+ visible: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
2325
+ camera: z.ZodOptional<z.ZodObject<{
2326
+ position: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
2327
+ target: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
2328
+ mode: z.ZodDefault<z.ZodEnum<{
2329
+ perspective: "perspective";
2330
+ orthographic: "orthographic";
2331
+ }>>;
2332
+ fov: z.ZodOptional<z.ZodNumber>;
2333
+ zoom: z.ZodOptional<z.ZodNumber>;
2334
+ }, z.core.$strip>>;
2335
+ metadata: z.ZodDefault<z.ZodOptional<z.ZodJSONSchema>>;
2336
+ id: z.ZodDefault<z.ZodTemplateLiteral<`door_${string}`>>;
2337
+ type: z.ZodDefault<z.ZodLiteral<"door">>;
2338
+ material: z.ZodOptional<z.ZodObject<{
2339
+ id: z.ZodOptional<z.ZodString>;
2340
+ preset: z.ZodOptional<z.ZodCatch<z.ZodEnum<{
2341
+ custom: "custom";
2342
+ white: "white";
2343
+ brick: "brick";
2344
+ concrete: "concrete";
2345
+ wood: "wood";
2346
+ glass: "glass";
2347
+ metal: "metal";
2348
+ plaster: "plaster";
2349
+ tile: "tile";
2350
+ marble: "marble";
2351
+ }>>>;
2352
+ properties: z.ZodOptional<z.ZodObject<{
2353
+ color: z.ZodDefault<z.ZodString>;
2354
+ roughness: z.ZodDefault<z.ZodNumber>;
2355
+ metalness: z.ZodDefault<z.ZodNumber>;
2356
+ opacity: z.ZodDefault<z.ZodNumber>;
2357
+ transparent: z.ZodDefault<z.ZodBoolean>;
2358
+ side: z.ZodDefault<z.ZodEnum<{
2359
+ front: "front";
2360
+ back: "back";
2361
+ double: "double";
2362
+ }>>;
2363
+ }, z.core.$strip>>;
2364
+ texture: z.ZodOptional<z.ZodObject<{
2365
+ url: z.ZodString;
2366
+ repeat: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>>;
2367
+ scale: z.ZodOptional<z.ZodNumber>;
2368
+ }, z.core.$strip>>;
2369
+ }, z.core.$strip>>;
2370
+ slots: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
2371
+ position: z.ZodDefault<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
2372
+ rotation: z.ZodDefault<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
2373
+ side: z.ZodOptional<z.ZodEnum<{
2374
+ front: "front";
2375
+ back: "back";
2376
+ }>>;
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
+ }>>;
2385
+ width: z.ZodDefault<z.ZodNumber>;
2386
+ height: z.ZodDefault<z.ZodNumber>;
2387
+ doorCategory: z.ZodDefault<z.ZodEnum<{
2388
+ interior: "interior";
2389
+ garage: "garage";
2390
+ }>>;
2391
+ doorType: z.ZodDefault<z.ZodEnum<{
2392
+ double: "double";
2393
+ hinged: "hinged";
2394
+ french: "french";
2395
+ folding: "folding";
2396
+ pocket: "pocket";
2397
+ barn: "barn";
2398
+ sliding: "sliding";
2399
+ "garage-sectional": "garage-sectional";
2400
+ "garage-rollup": "garage-rollup";
2401
+ "garage-tiltup": "garage-tiltup";
2402
+ }>>;
2403
+ leafCount: z.ZodDefault<z.ZodUnion<readonly [z.ZodLiteral<1>, z.ZodLiteral<2>, z.ZodLiteral<3>, z.ZodLiteral<4>]>>;
2404
+ operationState: z.ZodDefault<z.ZodNumber>;
2405
+ slideDirection: z.ZodDefault<z.ZodEnum<{
2406
+ right: "right";
2407
+ left: "left";
2408
+ }>>;
2409
+ trackStyle: z.ZodDefault<z.ZodEnum<{
2410
+ visible: "visible";
2411
+ none: "none";
2412
+ pocket: "pocket";
2413
+ overhead: "overhead";
2414
+ }>>;
2415
+ garagePanelCount: z.ZodDefault<z.ZodNumber>;
2416
+ openingKind: z.ZodDefault<z.ZodEnum<{
2417
+ door: "door";
2418
+ opening: "opening";
2419
+ }>>;
2420
+ openingShape: z.ZodDefault<z.ZodEnum<{
2421
+ rectangle: "rectangle";
2422
+ rounded: "rounded";
2423
+ arch: "arch";
2424
+ }>>;
2425
+ openingRadiusMode: z.ZodDefault<z.ZodEnum<{
2426
+ all: "all";
2427
+ individual: "individual";
2428
+ }>>;
2429
+ openingTopRadii: z.ZodDefault<z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>>;
2430
+ cornerRadius: z.ZodDefault<z.ZodNumber>;
2431
+ archHeight: z.ZodDefault<z.ZodNumber>;
2432
+ openingRevealRadius: z.ZodDefault<z.ZodNumber>;
2433
+ frameThickness: z.ZodDefault<z.ZodNumber>;
2434
+ frameDepth: z.ZodDefault<z.ZodNumber>;
2435
+ threshold: z.ZodDefault<z.ZodBoolean>;
2436
+ thresholdHeight: z.ZodDefault<z.ZodNumber>;
2437
+ hingesSide: z.ZodDefault<z.ZodEnum<{
2438
+ right: "right";
2439
+ left: "left";
2440
+ }>>;
2441
+ swingDirection: z.ZodDefault<z.ZodEnum<{
2442
+ inward: "inward";
2443
+ outward: "outward";
2444
+ }>>;
2445
+ swingAngle: z.ZodDefault<z.ZodNumber>;
2446
+ segments: z.ZodDefault<z.ZodArray<z.ZodObject<{
2447
+ type: z.ZodEnum<{
2448
+ glass: "glass";
2449
+ panel: "panel";
2450
+ empty: "empty";
2451
+ }>;
2452
+ heightRatio: z.ZodNumber;
2453
+ columnRatios: z.ZodDefault<z.ZodArray<z.ZodNumber>>;
2454
+ dividerThickness: z.ZodDefault<z.ZodNumber>;
2455
+ panelDepth: z.ZodDefault<z.ZodNumber>;
2456
+ panelInset: z.ZodDefault<z.ZodNumber>;
2457
+ }, z.core.$strip>>>;
2458
+ handle: z.ZodDefault<z.ZodBoolean>;
2459
+ handleHeight: z.ZodDefault<z.ZodNumber>;
2460
+ handleSide: z.ZodDefault<z.ZodEnum<{
2461
+ right: "right";
2462
+ left: "left";
2463
+ }>>;
2464
+ contentPadding: z.ZodDefault<z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>>;
2465
+ doorCloser: z.ZodDefault<z.ZodBoolean>;
2466
+ panicBar: z.ZodDefault<z.ZodBoolean>;
2467
+ panicBarHeight: z.ZodDefault<z.ZodNumber>;
2468
+ }, z.core.$strip>, z.ZodObject<{
2469
+ object: z.ZodDefault<z.ZodLiteral<"node">>;
2470
+ name: z.ZodOptional<z.ZodString>;
2471
+ parentId: z.ZodDefault<z.ZodNullable<z.ZodString>>;
2472
+ visible: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
2473
+ camera: z.ZodOptional<z.ZodObject<{
2474
+ position: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
2475
+ target: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
2476
+ mode: z.ZodDefault<z.ZodEnum<{
2477
+ perspective: "perspective";
2478
+ orthographic: "orthographic";
2479
+ }>>;
2480
+ fov: z.ZodOptional<z.ZodNumber>;
2481
+ zoom: z.ZodOptional<z.ZodNumber>;
2482
+ }, z.core.$strip>>;
2483
+ metadata: z.ZodDefault<z.ZodOptional<z.ZodJSONSchema>>;
2484
+ id: z.ZodDefault<z.ZodTemplateLiteral<`bvent_${string}`>>;
2485
+ type: z.ZodDefault<z.ZodLiteral<"box-vent">>;
2486
+ material: z.ZodOptional<z.ZodObject<{
2487
+ id: z.ZodOptional<z.ZodString>;
2488
+ preset: z.ZodOptional<z.ZodCatch<z.ZodEnum<{
2489
+ custom: "custom";
2490
+ white: "white";
2491
+ brick: "brick";
2492
+ concrete: "concrete";
2493
+ wood: "wood";
2494
+ glass: "glass";
2495
+ metal: "metal";
2496
+ plaster: "plaster";
2497
+ tile: "tile";
2498
+ marble: "marble";
2499
+ }>>>;
2500
+ properties: z.ZodOptional<z.ZodObject<{
2501
+ color: z.ZodDefault<z.ZodString>;
2502
+ roughness: z.ZodDefault<z.ZodNumber>;
2503
+ metalness: z.ZodDefault<z.ZodNumber>;
2504
+ opacity: z.ZodDefault<z.ZodNumber>;
2505
+ transparent: z.ZodDefault<z.ZodBoolean>;
2506
+ side: z.ZodDefault<z.ZodEnum<{
2507
+ front: "front";
2508
+ back: "back";
2509
+ double: "double";
2510
+ }>>;
2511
+ }, z.core.$strip>>;
2512
+ texture: z.ZodOptional<z.ZodObject<{
2513
+ url: z.ZodString;
2514
+ repeat: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>>;
2515
+ scale: z.ZodOptional<z.ZodNumber>;
2516
+ }, z.core.$strip>>;
2517
+ }, z.core.$strip>>;
2518
+ materialPreset: z.ZodDefault<z.ZodString>;
2519
+ roofSegmentId: z.ZodOptional<z.ZodString>;
2520
+ position: z.ZodDefault<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
2521
+ rotation: z.ZodDefault<z.ZodNumber>;
2522
+ width: z.ZodDefault<z.ZodNumber>;
2523
+ depth: z.ZodDefault<z.ZodNumber>;
2524
+ height: z.ZodDefault<z.ZodNumber>;
2525
+ hoodOverhang: z.ZodDefault<z.ZodNumber>;
2526
+ topTaper: z.ZodDefault<z.ZodNumber>;
2527
+ capHeight: z.ZodDefault<z.ZodNumber>;
2528
+ capGap: z.ZodDefault<z.ZodNumber>;
2529
+ domeCurvature: z.ZodDefault<z.ZodNumber>;
2530
+ baseInset: z.ZodDefault<z.ZodNumber>;
2531
+ baseHeight: z.ZodDefault<z.ZodNumber>;
2532
+ cornerBevel: z.ZodDefault<z.ZodNumber>;
2533
+ style: z.ZodPreprocess<z.ZodDefault<z.ZodEnum<{
2534
+ box: "box";
2535
+ cap: "cap";
2536
+ dome: "dome";
2537
+ }>>>;
2538
+ }, z.core.$strip>, z.ZodObject<{
2539
+ object: z.ZodDefault<z.ZodLiteral<"node">>;
2540
+ name: z.ZodOptional<z.ZodString>;
2541
+ parentId: z.ZodDefault<z.ZodNullable<z.ZodString>>;
2542
+ visible: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
2543
+ camera: z.ZodOptional<z.ZodObject<{
2544
+ position: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
2545
+ target: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
2546
+ mode: z.ZodDefault<z.ZodEnum<{
2547
+ perspective: "perspective";
2548
+ orthographic: "orthographic";
2549
+ }>>;
2550
+ fov: z.ZodOptional<z.ZodNumber>;
2551
+ zoom: z.ZodOptional<z.ZodNumber>;
2552
+ }, z.core.$strip>>;
2553
+ metadata: z.ZodDefault<z.ZodOptional<z.ZodJSONSchema>>;
2554
+ id: z.ZodDefault<z.ZodTemplateLiteral<`rvent_${string}`>>;
2555
+ type: z.ZodDefault<z.ZodLiteral<"ridge-vent">>;
2556
+ material: z.ZodOptional<z.ZodObject<{
2557
+ id: z.ZodOptional<z.ZodString>;
2558
+ preset: z.ZodOptional<z.ZodCatch<z.ZodEnum<{
2559
+ custom: "custom";
2560
+ white: "white";
2561
+ brick: "brick";
2562
+ concrete: "concrete";
2563
+ wood: "wood";
2564
+ glass: "glass";
2565
+ metal: "metal";
2566
+ plaster: "plaster";
2567
+ tile: "tile";
2568
+ marble: "marble";
2569
+ }>>>;
2570
+ properties: z.ZodOptional<z.ZodObject<{
2571
+ color: z.ZodDefault<z.ZodString>;
2572
+ roughness: z.ZodDefault<z.ZodNumber>;
2573
+ metalness: z.ZodDefault<z.ZodNumber>;
2574
+ opacity: z.ZodDefault<z.ZodNumber>;
2575
+ transparent: z.ZodDefault<z.ZodBoolean>;
2576
+ side: z.ZodDefault<z.ZodEnum<{
2577
+ front: "front";
2578
+ back: "back";
2579
+ double: "double";
2580
+ }>>;
2581
+ }, z.core.$strip>>;
2582
+ texture: z.ZodOptional<z.ZodObject<{
2583
+ url: z.ZodString;
2584
+ repeat: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>>;
2585
+ scale: z.ZodOptional<z.ZodNumber>;
2586
+ }, z.core.$strip>>;
2587
+ }, z.core.$strip>>;
2588
+ materialPreset: z.ZodOptional<z.ZodString>;
2589
+ roofSegmentId: z.ZodOptional<z.ZodString>;
2590
+ position: z.ZodDefault<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
2591
+ rotation: z.ZodDefault<z.ZodNumber>;
2592
+ length: z.ZodDefault<z.ZodNumber>;
2593
+ width: z.ZodDefault<z.ZodNumber>;
2594
+ height: z.ZodDefault<z.ZodNumber>;
2595
+ style: z.ZodDefault<z.ZodEnum<{
2596
+ metal: "metal";
2597
+ standard: "standard";
2598
+ shingled: "shingled";
2599
+ }>>;
2600
+ endCaps: z.ZodDefault<z.ZodBoolean>;
2601
+ }, z.core.$strip>, z.ZodObject<{
2602
+ object: z.ZodDefault<z.ZodLiteral<"node">>;
2603
+ name: z.ZodOptional<z.ZodString>;
2604
+ parentId: z.ZodDefault<z.ZodNullable<z.ZodString>>;
2605
+ visible: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
2606
+ camera: z.ZodOptional<z.ZodObject<{
2607
+ position: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
2608
+ target: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
2609
+ mode: z.ZodDefault<z.ZodEnum<{
2610
+ perspective: "perspective";
2611
+ orthographic: "orthographic";
2612
+ }>>;
2613
+ fov: z.ZodOptional<z.ZodNumber>;
2614
+ zoom: z.ZodOptional<z.ZodNumber>;
2615
+ }, z.core.$strip>>;
2616
+ metadata: z.ZodDefault<z.ZodOptional<z.ZodJSONSchema>>;
2617
+ id: z.ZodDefault<z.ZodTemplateLiteral<`tvent_${string}`>>;
2618
+ type: z.ZodDefault<z.ZodLiteral<"turbine-vent">>;
2619
+ material: z.ZodOptional<z.ZodObject<{
2620
+ id: z.ZodOptional<z.ZodString>;
2621
+ preset: z.ZodOptional<z.ZodCatch<z.ZodEnum<{
2622
+ custom: "custom";
2623
+ white: "white";
782
2624
  brick: "brick";
783
2625
  concrete: "concrete";
784
2626
  wood: "wood";
@@ -787,7 +2629,71 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
787
2629
  plaster: "plaster";
788
2630
  tile: "tile";
789
2631
  marble: "marble";
2632
+ }>>>;
2633
+ properties: z.ZodOptional<z.ZodObject<{
2634
+ color: z.ZodDefault<z.ZodString>;
2635
+ roughness: z.ZodDefault<z.ZodNumber>;
2636
+ metalness: z.ZodDefault<z.ZodNumber>;
2637
+ opacity: z.ZodDefault<z.ZodNumber>;
2638
+ transparent: z.ZodDefault<z.ZodBoolean>;
2639
+ side: z.ZodDefault<z.ZodEnum<{
2640
+ front: "front";
2641
+ back: "back";
2642
+ double: "double";
2643
+ }>>;
2644
+ }, z.core.$strip>>;
2645
+ texture: z.ZodOptional<z.ZodObject<{
2646
+ url: z.ZodString;
2647
+ repeat: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>>;
2648
+ scale: z.ZodOptional<z.ZodNumber>;
2649
+ }, z.core.$strip>>;
2650
+ }, z.core.$strip>>;
2651
+ materialPreset: z.ZodDefault<z.ZodString>;
2652
+ roofSegmentId: z.ZodOptional<z.ZodString>;
2653
+ position: z.ZodDefault<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
2654
+ rotation: z.ZodDefault<z.ZodNumber>;
2655
+ diameter: z.ZodDefault<z.ZodNumber>;
2656
+ height: z.ZodDefault<z.ZodNumber>;
2657
+ neckHeight: z.ZodDefault<z.ZodNumber>;
2658
+ baseOverhang: z.ZodDefault<z.ZodNumber>;
2659
+ vaneCount: z.ZodDefault<z.ZodNumber>;
2660
+ spinSpeed: z.ZodDefault<z.ZodNumber>;
2661
+ style: z.ZodDefault<z.ZodEnum<{
2662
+ globe: "globe";
2663
+ cylinder: "cylinder";
2664
+ }>>;
2665
+ }, z.core.$strip>, z.ZodObject<{
2666
+ object: z.ZodDefault<z.ZodLiteral<"node">>;
2667
+ name: z.ZodOptional<z.ZodString>;
2668
+ parentId: z.ZodDefault<z.ZodNullable<z.ZodString>>;
2669
+ visible: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
2670
+ camera: z.ZodOptional<z.ZodObject<{
2671
+ position: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
2672
+ target: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
2673
+ mode: z.ZodDefault<z.ZodEnum<{
2674
+ perspective: "perspective";
2675
+ orthographic: "orthographic";
790
2676
  }>>;
2677
+ fov: z.ZodOptional<z.ZodNumber>;
2678
+ zoom: z.ZodOptional<z.ZodNumber>;
2679
+ }, z.core.$strip>>;
2680
+ metadata: z.ZodDefault<z.ZodOptional<z.ZodJSONSchema>>;
2681
+ id: z.ZodDefault<z.ZodTemplateLiteral<`cupola_${string}`>>;
2682
+ type: z.ZodDefault<z.ZodLiteral<"cupola">>;
2683
+ material: z.ZodOptional<z.ZodObject<{
2684
+ id: z.ZodOptional<z.ZodString>;
2685
+ preset: z.ZodOptional<z.ZodCatch<z.ZodEnum<{
2686
+ custom: "custom";
2687
+ white: "white";
2688
+ brick: "brick";
2689
+ concrete: "concrete";
2690
+ wood: "wood";
2691
+ glass: "glass";
2692
+ metal: "metal";
2693
+ plaster: "plaster";
2694
+ tile: "tile";
2695
+ marble: "marble";
2696
+ }>>>;
791
2697
  properties: z.ZodOptional<z.ZodObject<{
792
2698
  color: z.ZodDefault<z.ZodString>;
793
2699
  roughness: z.ZodDefault<z.ZodNumber>;
@@ -806,18 +2712,82 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
806
2712
  scale: z.ZodOptional<z.ZodNumber>;
807
2713
  }, z.core.$strip>>;
808
2714
  }, z.core.$strip>>;
809
- materialPreset: z.ZodOptional<z.ZodString>;
810
- polygon: z.ZodArray<z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>>;
811
- holes: z.ZodDefault<z.ZodArray<z.ZodArray<z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>>>>;
812
- holeMetadata: z.ZodDefault<z.ZodArray<z.ZodObject<{
813
- source: z.ZodDefault<z.ZodEnum<{
814
- stair: "stair";
815
- manual: "manual";
2715
+ materialPreset: z.ZodDefault<z.ZodString>;
2716
+ roofSegmentId: z.ZodOptional<z.ZodString>;
2717
+ position: z.ZodDefault<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
2718
+ rotation: z.ZodDefault<z.ZodNumber>;
2719
+ width: z.ZodDefault<z.ZodNumber>;
2720
+ depth: z.ZodDefault<z.ZodNumber>;
2721
+ height: z.ZodDefault<z.ZodNumber>;
2722
+ roofStyle: z.ZodDefault<z.ZodEnum<{
2723
+ dome: "dome";
2724
+ pyramid: "pyramid";
2725
+ }>>;
2726
+ finial: z.ZodDefault<z.ZodBoolean>;
2727
+ }, z.core.$strip>, z.ZodObject<{
2728
+ object: z.ZodDefault<z.ZodLiteral<"node">>;
2729
+ name: z.ZodOptional<z.ZodString>;
2730
+ parentId: z.ZodDefault<z.ZodNullable<z.ZodString>>;
2731
+ visible: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
2732
+ camera: z.ZodOptional<z.ZodObject<{
2733
+ position: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
2734
+ target: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
2735
+ mode: z.ZodDefault<z.ZodEnum<{
2736
+ perspective: "perspective";
2737
+ orthographic: "orthographic";
816
2738
  }>>;
817
- stairId: z.ZodOptional<z.ZodString>;
818
- }, z.core.$strip>>>;
2739
+ fov: z.ZodOptional<z.ZodNumber>;
2740
+ zoom: z.ZodOptional<z.ZodNumber>;
2741
+ }, z.core.$strip>>;
2742
+ metadata: z.ZodDefault<z.ZodOptional<z.ZodJSONSchema>>;
2743
+ id: z.ZodDefault<z.ZodTemplateLiteral<`eyebrow-vent_${string}`>>;
2744
+ type: z.ZodDefault<z.ZodLiteral<"eyebrow-vent">>;
2745
+ material: z.ZodOptional<z.ZodObject<{
2746
+ id: z.ZodOptional<z.ZodString>;
2747
+ preset: z.ZodOptional<z.ZodCatch<z.ZodEnum<{
2748
+ custom: "custom";
2749
+ white: "white";
2750
+ brick: "brick";
2751
+ concrete: "concrete";
2752
+ wood: "wood";
2753
+ glass: "glass";
2754
+ metal: "metal";
2755
+ plaster: "plaster";
2756
+ tile: "tile";
2757
+ marble: "marble";
2758
+ }>>>;
2759
+ properties: z.ZodOptional<z.ZodObject<{
2760
+ color: z.ZodDefault<z.ZodString>;
2761
+ roughness: z.ZodDefault<z.ZodNumber>;
2762
+ metalness: z.ZodDefault<z.ZodNumber>;
2763
+ opacity: z.ZodDefault<z.ZodNumber>;
2764
+ transparent: z.ZodDefault<z.ZodBoolean>;
2765
+ side: z.ZodDefault<z.ZodEnum<{
2766
+ front: "front";
2767
+ back: "back";
2768
+ double: "double";
2769
+ }>>;
2770
+ }, z.core.$strip>>;
2771
+ texture: z.ZodOptional<z.ZodObject<{
2772
+ url: z.ZodString;
2773
+ repeat: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>>;
2774
+ scale: z.ZodOptional<z.ZodNumber>;
2775
+ }, z.core.$strip>>;
2776
+ }, z.core.$strip>>;
2777
+ materialPreset: z.ZodDefault<z.ZodString>;
2778
+ roofSegmentId: z.ZodOptional<z.ZodString>;
2779
+ position: z.ZodDefault<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
2780
+ rotation: z.ZodDefault<z.ZodNumber>;
2781
+ width: z.ZodDefault<z.ZodNumber>;
2782
+ depth: z.ZodDefault<z.ZodNumber>;
819
2783
  height: z.ZodDefault<z.ZodNumber>;
820
- autoFromWalls: z.ZodDefault<z.ZodBoolean>;
2784
+ style: z.ZodDefault<z.ZodEnum<{
2785
+ scoop: "scoop";
2786
+ "half-round": "half-round";
2787
+ "slant-box": "slant-box";
2788
+ }>>;
2789
+ louverCount: z.ZodDefault<z.ZodNumber>;
2790
+ backRatio: z.ZodDefault<z.ZodNumber>;
821
2791
  }, z.core.$strip>, z.ZodObject<{
822
2792
  object: z.ZodDefault<z.ZodLiteral<"node">>;
823
2793
  name: z.ZodOptional<z.ZodString>;
@@ -834,11 +2804,11 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
834
2804
  zoom: z.ZodOptional<z.ZodNumber>;
835
2805
  }, z.core.$strip>>;
836
2806
  metadata: z.ZodDefault<z.ZodOptional<z.ZodJSONSchema>>;
837
- id: z.ZodDefault<z.ZodTemplateLiteral<`roof_${string}`>>;
838
- type: z.ZodDefault<z.ZodLiteral<"roof">>;
2807
+ id: z.ZodDefault<z.ZodTemplateLiteral<`gutter_${string}`>>;
2808
+ type: z.ZodDefault<z.ZodLiteral<"gutter">>;
839
2809
  material: z.ZodOptional<z.ZodObject<{
840
2810
  id: z.ZodOptional<z.ZodString>;
841
- preset: z.ZodOptional<z.ZodEnum<{
2811
+ preset: z.ZodOptional<z.ZodCatch<z.ZodEnum<{
842
2812
  custom: "custom";
843
2813
  white: "white";
844
2814
  brick: "brick";
@@ -849,7 +2819,114 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
849
2819
  plaster: "plaster";
850
2820
  tile: "tile";
851
2821
  marble: "marble";
2822
+ }>>>;
2823
+ properties: z.ZodOptional<z.ZodObject<{
2824
+ color: z.ZodDefault<z.ZodString>;
2825
+ roughness: z.ZodDefault<z.ZodNumber>;
2826
+ metalness: z.ZodDefault<z.ZodNumber>;
2827
+ opacity: z.ZodDefault<z.ZodNumber>;
2828
+ transparent: z.ZodDefault<z.ZodBoolean>;
2829
+ side: z.ZodDefault<z.ZodEnum<{
2830
+ front: "front";
2831
+ back: "back";
2832
+ double: "double";
2833
+ }>>;
2834
+ }, z.core.$strip>>;
2835
+ texture: z.ZodOptional<z.ZodObject<{
2836
+ url: z.ZodString;
2837
+ repeat: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>>;
2838
+ scale: z.ZodOptional<z.ZodNumber>;
2839
+ }, z.core.$strip>>;
2840
+ }, z.core.$strip>>;
2841
+ materialPreset: z.ZodDefault<z.ZodString>;
2842
+ roofSegmentId: z.ZodOptional<z.ZodString>;
2843
+ position: z.ZodDefault<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
2844
+ rotation: z.ZodDefault<z.ZodNumber>;
2845
+ length: z.ZodDefault<z.ZodNumber>;
2846
+ size: z.ZodDefault<z.ZodNumber>;
2847
+ thickness: z.ZodDefault<z.ZodNumber>;
2848
+ profile: z.ZodDefault<z.ZodEnum<{
2849
+ box: "box";
2850
+ "half-round": "half-round";
2851
+ "k-style": "k-style";
2852
+ }>>;
2853
+ endCapLeft: z.ZodDefault<z.ZodBoolean>;
2854
+ endCapRight: z.ZodDefault<z.ZodBoolean>;
2855
+ hangerStyle: z.ZodDefault<z.ZodEnum<{
2856
+ none: "none";
2857
+ strap: "strap";
2858
+ }>>;
2859
+ hangerSpacing: z.ZodDefault<z.ZodNumber>;
2860
+ outlets: z.ZodDefault<z.ZodArray<z.ZodObject<{
2861
+ id: z.ZodString;
2862
+ offset: z.ZodDefault<z.ZodNumber>;
2863
+ diameter: z.ZodDefault<z.ZodNumber>;
2864
+ }, z.core.$strip>>>;
2865
+ }, z.core.$strip>, z.ZodObject<{
2866
+ object: z.ZodDefault<z.ZodLiteral<"node">>;
2867
+ name: z.ZodOptional<z.ZodString>;
2868
+ parentId: z.ZodDefault<z.ZodNullable<z.ZodString>>;
2869
+ visible: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
2870
+ camera: z.ZodOptional<z.ZodObject<{
2871
+ position: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
2872
+ target: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
2873
+ mode: z.ZodDefault<z.ZodEnum<{
2874
+ perspective: "perspective";
2875
+ orthographic: "orthographic";
852
2876
  }>>;
2877
+ fov: z.ZodOptional<z.ZodNumber>;
2878
+ zoom: z.ZodOptional<z.ZodNumber>;
2879
+ }, z.core.$strip>>;
2880
+ metadata: z.ZodDefault<z.ZodOptional<z.ZodJSONSchema>>;
2881
+ id: z.ZodDefault<z.ZodTemplateLiteral<`chimney_${string}`>>;
2882
+ type: z.ZodDefault<z.ZodLiteral<"chimney">>;
2883
+ material: z.ZodOptional<z.ZodObject<{
2884
+ id: z.ZodOptional<z.ZodString>;
2885
+ preset: z.ZodOptional<z.ZodCatch<z.ZodEnum<{
2886
+ custom: "custom";
2887
+ white: "white";
2888
+ brick: "brick";
2889
+ concrete: "concrete";
2890
+ wood: "wood";
2891
+ glass: "glass";
2892
+ metal: "metal";
2893
+ plaster: "plaster";
2894
+ tile: "tile";
2895
+ marble: "marble";
2896
+ }>>>;
2897
+ properties: z.ZodOptional<z.ZodObject<{
2898
+ color: z.ZodDefault<z.ZodString>;
2899
+ roughness: z.ZodDefault<z.ZodNumber>;
2900
+ metalness: z.ZodDefault<z.ZodNumber>;
2901
+ opacity: z.ZodDefault<z.ZodNumber>;
2902
+ transparent: z.ZodDefault<z.ZodBoolean>;
2903
+ side: z.ZodDefault<z.ZodEnum<{
2904
+ front: "front";
2905
+ back: "back";
2906
+ double: "double";
2907
+ }>>;
2908
+ }, z.core.$strip>>;
2909
+ texture: z.ZodOptional<z.ZodObject<{
2910
+ url: z.ZodString;
2911
+ repeat: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>>;
2912
+ scale: z.ZodOptional<z.ZodNumber>;
2913
+ }, z.core.$strip>>;
2914
+ }, z.core.$strip>>;
2915
+ materialPreset: z.ZodOptional<z.ZodString>;
2916
+ topMaterial: z.ZodOptional<z.ZodObject<{
2917
+ id: z.ZodOptional<z.ZodString>;
2918
+ preset: z.ZodOptional<z.ZodCatch<z.ZodEnum<{
2919
+ custom: "custom";
2920
+ white: "white";
2921
+ brick: "brick";
2922
+ concrete: "concrete";
2923
+ wood: "wood";
2924
+ glass: "glass";
2925
+ metal: "metal";
2926
+ plaster: "plaster";
2927
+ tile: "tile";
2928
+ marble: "marble";
2929
+ }>>>;
853
2930
  properties: z.ZodOptional<z.ZodObject<{
854
2931
  color: z.ZodDefault<z.ZodString>;
855
2932
  roughness: z.ZodDefault<z.ZodNumber>;
@@ -868,10 +2945,93 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
868
2945
  scale: z.ZodOptional<z.ZodNumber>;
869
2946
  }, z.core.$strip>>;
870
2947
  }, z.core.$strip>>;
871
- materialPreset: z.ZodOptional<z.ZodString>;
872
- topMaterial: z.ZodOptional<z.ZodObject<{
2948
+ topMaterialPreset: z.ZodOptional<z.ZodString>;
2949
+ roofSegmentId: z.ZodOptional<z.ZodString>;
2950
+ position: z.ZodDefault<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
2951
+ rotation: z.ZodDefault<z.ZodNumber>;
2952
+ bodyShape: z.ZodDefault<z.ZodEnum<{
2953
+ round: "round";
2954
+ square: "square";
2955
+ }>>;
2956
+ bodyHollowDepth: z.ZodDefault<z.ZodNumber>;
2957
+ bodyHollowMargin: z.ZodDefault<z.ZodNumber>;
2958
+ width: z.ZodDefault<z.ZodNumber>;
2959
+ depth: z.ZodDefault<z.ZodNumber>;
2960
+ heightAboveRidge: z.ZodDefault<z.ZodNumber>;
2961
+ cutoutOffset: z.ZodDefault<z.ZodNumber>;
2962
+ cornerBevel: z.ZodDefault<z.ZodNumber>;
2963
+ cap: z.ZodDefault<z.ZodBoolean>;
2964
+ capShape: z.ZodDefault<z.ZodEnum<{
2965
+ flat: "flat";
2966
+ none: "none";
2967
+ stepped: "stepped";
2968
+ sloped: "sloped";
2969
+ }>>;
2970
+ capOverhang: z.ZodDefault<z.ZodNumber>;
2971
+ capThickness: z.ZodDefault<z.ZodNumber>;
2972
+ flueCount: z.ZodDefault<z.ZodNumber>;
2973
+ flueShape: z.ZodDefault<z.ZodEnum<{
2974
+ round: "round";
2975
+ square: "square";
2976
+ }>>;
2977
+ flueHeight: z.ZodDefault<z.ZodNumber>;
2978
+ flueDiameter: z.ZodDefault<z.ZodNumber>;
2979
+ flueSpacing: z.ZodDefault<z.ZodNumber>;
2980
+ flueWallThickness: z.ZodDefault<z.ZodNumber>;
2981
+ shoulderStyle: z.ZodDefault<z.ZodEnum<{
2982
+ tapered: "tapered";
2983
+ none: "none";
2984
+ corbeled: "corbeled";
2985
+ }>>;
2986
+ shoulderHeight: z.ZodDefault<z.ZodNumber>;
2987
+ shoulderExtent: z.ZodDefault<z.ZodNumber>;
2988
+ bandStyle: z.ZodDefault<z.ZodEnum<{
2989
+ double: "double";
2990
+ none: "none";
2991
+ single: "single";
2992
+ }>>;
2993
+ bandHeight: z.ZodDefault<z.ZodNumber>;
2994
+ bandExtent: z.ZodDefault<z.ZodNumber>;
2995
+ bandOffset: z.ZodDefault<z.ZodNumber>;
2996
+ cricketStyle: z.ZodDefault<z.ZodEnum<{
2997
+ none: "none";
2998
+ simple: "simple";
2999
+ }>>;
3000
+ cricketLength: z.ZodDefault<z.ZodNumber>;
3001
+ cricketHeight: z.ZodDefault<z.ZodNumber>;
3002
+ cricketSide: z.ZodDefault<z.ZodEnum<{
3003
+ front: "front";
3004
+ back: "back";
3005
+ }>>;
3006
+ panelStyle: z.ZodDefault<z.ZodEnum<{
3007
+ rectangular: "rectangular";
3008
+ none: "none";
3009
+ }>>;
3010
+ panelDepth: z.ZodDefault<z.ZodNumber>;
3011
+ panelHeight: z.ZodDefault<z.ZodNumber>;
3012
+ panelOffsetTop: z.ZodDefault<z.ZodNumber>;
3013
+ panelMargin: z.ZodDefault<z.ZodNumber>;
3014
+ }, z.core.$strip>, z.ZodObject<{
3015
+ object: z.ZodDefault<z.ZodLiteral<"node">>;
3016
+ name: z.ZodOptional<z.ZodString>;
3017
+ parentId: z.ZodDefault<z.ZodNullable<z.ZodString>>;
3018
+ visible: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
3019
+ camera: z.ZodOptional<z.ZodObject<{
3020
+ position: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
3021
+ target: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
3022
+ mode: z.ZodDefault<z.ZodEnum<{
3023
+ perspective: "perspective";
3024
+ orthographic: "orthographic";
3025
+ }>>;
3026
+ fov: z.ZodOptional<z.ZodNumber>;
3027
+ zoom: z.ZodOptional<z.ZodNumber>;
3028
+ }, z.core.$strip>>;
3029
+ metadata: z.ZodDefault<z.ZodOptional<z.ZodJSONSchema>>;
3030
+ id: z.ZodDefault<z.ZodTemplateLiteral<`solarpanel_${string}`>>;
3031
+ type: z.ZodDefault<z.ZodLiteral<"solar-panel">>;
3032
+ material: z.ZodOptional<z.ZodObject<{
873
3033
  id: z.ZodOptional<z.ZodString>;
874
- preset: z.ZodOptional<z.ZodEnum<{
3034
+ preset: z.ZodOptional<z.ZodCatch<z.ZodEnum<{
875
3035
  custom: "custom";
876
3036
  white: "white";
877
3037
  brick: "brick";
@@ -882,7 +3042,7 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
882
3042
  plaster: "plaster";
883
3043
  tile: "tile";
884
3044
  marble: "marble";
885
- }>>;
3045
+ }>>>;
886
3046
  properties: z.ZodOptional<z.ZodObject<{
887
3047
  color: z.ZodDefault<z.ZodString>;
888
3048
  roughness: z.ZodDefault<z.ZodNumber>;
@@ -901,10 +3061,10 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
901
3061
  scale: z.ZodOptional<z.ZodNumber>;
902
3062
  }, z.core.$strip>>;
903
3063
  }, z.core.$strip>>;
904
- topMaterialPreset: z.ZodOptional<z.ZodString>;
905
- edgeMaterial: z.ZodOptional<z.ZodObject<{
3064
+ materialPreset: z.ZodOptional<z.ZodString>;
3065
+ panelMaterial: z.ZodOptional<z.ZodObject<{
906
3066
  id: z.ZodOptional<z.ZodString>;
907
- preset: z.ZodOptional<z.ZodEnum<{
3067
+ preset: z.ZodOptional<z.ZodCatch<z.ZodEnum<{
908
3068
  custom: "custom";
909
3069
  white: "white";
910
3070
  brick: "brick";
@@ -915,7 +3075,7 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
915
3075
  plaster: "plaster";
916
3076
  tile: "tile";
917
3077
  marble: "marble";
918
- }>>;
3078
+ }>>>;
919
3079
  properties: z.ZodOptional<z.ZodObject<{
920
3080
  color: z.ZodDefault<z.ZodString>;
921
3081
  roughness: z.ZodDefault<z.ZodNumber>;
@@ -934,10 +3094,52 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
934
3094
  scale: z.ZodOptional<z.ZodNumber>;
935
3095
  }, z.core.$strip>>;
936
3096
  }, z.core.$strip>>;
937
- edgeMaterialPreset: z.ZodOptional<z.ZodString>;
938
- wallMaterial: z.ZodOptional<z.ZodObject<{
3097
+ panelMaterialPreset: z.ZodOptional<z.ZodString>;
3098
+ panelTypePreset: z.ZodOptional<z.ZodEnum<{
3099
+ residential: "residential";
3100
+ "residential-large": "residential-large";
3101
+ compact: "compact";
3102
+ frameless: "frameless";
3103
+ }>>;
3104
+ roofSegmentId: z.ZodOptional<z.ZodString>;
3105
+ position: z.ZodDefault<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
3106
+ rotation: z.ZodDefault<z.ZodNumber>;
3107
+ rows: z.ZodDefault<z.ZodNumber>;
3108
+ columns: z.ZodDefault<z.ZodNumber>;
3109
+ panelWidth: z.ZodDefault<z.ZodNumber>;
3110
+ panelHeight: z.ZodDefault<z.ZodNumber>;
3111
+ gapX: z.ZodDefault<z.ZodNumber>;
3112
+ gapY: z.ZodDefault<z.ZodNumber>;
3113
+ mountingType: z.ZodDefault<z.ZodEnum<{
3114
+ flush: "flush";
3115
+ tilted: "tilted";
3116
+ }>>;
3117
+ tiltAngle: z.ZodDefault<z.ZodNumber>;
3118
+ standoffHeight: z.ZodDefault<z.ZodNumber>;
3119
+ frameThickness: z.ZodDefault<z.ZodNumber>;
3120
+ frameDepth: z.ZodDefault<z.ZodNumber>;
3121
+ surfaceNormal: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
3122
+ }, z.core.$strip>, z.ZodObject<{
3123
+ object: z.ZodDefault<z.ZodLiteral<"node">>;
3124
+ name: z.ZodOptional<z.ZodString>;
3125
+ parentId: z.ZodDefault<z.ZodNullable<z.ZodString>>;
3126
+ visible: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
3127
+ camera: z.ZodOptional<z.ZodObject<{
3128
+ position: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
3129
+ target: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
3130
+ mode: z.ZodDefault<z.ZodEnum<{
3131
+ perspective: "perspective";
3132
+ orthographic: "orthographic";
3133
+ }>>;
3134
+ fov: z.ZodOptional<z.ZodNumber>;
3135
+ zoom: z.ZodOptional<z.ZodNumber>;
3136
+ }, z.core.$strip>>;
3137
+ metadata: z.ZodDefault<z.ZodOptional<z.ZodJSONSchema>>;
3138
+ id: z.ZodDefault<z.ZodTemplateLiteral<`skylight_${string}`>>;
3139
+ type: z.ZodDefault<z.ZodLiteral<"skylight">>;
3140
+ material: z.ZodOptional<z.ZodObject<{
939
3141
  id: z.ZodOptional<z.ZodString>;
940
- preset: z.ZodOptional<z.ZodEnum<{
3142
+ preset: z.ZodOptional<z.ZodCatch<z.ZodEnum<{
941
3143
  custom: "custom";
942
3144
  white: "white";
943
3145
  brick: "brick";
@@ -948,7 +3150,7 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
948
3150
  plaster: "plaster";
949
3151
  tile: "tile";
950
3152
  marble: "marble";
951
- }>>;
3153
+ }>>>;
952
3154
  properties: z.ZodOptional<z.ZodObject<{
953
3155
  color: z.ZodDefault<z.ZodString>;
954
3156
  roughness: z.ZodDefault<z.ZodNumber>;
@@ -967,31 +3169,10 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
967
3169
  scale: z.ZodOptional<z.ZodNumber>;
968
3170
  }, z.core.$strip>>;
969
3171
  }, z.core.$strip>>;
970
- wallMaterialPreset: z.ZodOptional<z.ZodString>;
971
- position: z.ZodDefault<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
972
- rotation: z.ZodDefault<z.ZodNumber>;
973
- children: z.ZodDefault<z.ZodArray<z.ZodDefault<z.ZodTemplateLiteral<`rseg_${string}`>>>>;
974
- }, z.core.$strip>, z.ZodObject<{
975
- object: z.ZodDefault<z.ZodLiteral<"node">>;
976
- name: z.ZodOptional<z.ZodString>;
977
- parentId: z.ZodDefault<z.ZodNullable<z.ZodString>>;
978
- visible: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
979
- camera: z.ZodOptional<z.ZodObject<{
980
- position: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
981
- target: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
982
- mode: z.ZodDefault<z.ZodEnum<{
983
- perspective: "perspective";
984
- orthographic: "orthographic";
985
- }>>;
986
- fov: z.ZodOptional<z.ZodNumber>;
987
- zoom: z.ZodOptional<z.ZodNumber>;
988
- }, z.core.$strip>>;
989
- metadata: z.ZodDefault<z.ZodOptional<z.ZodJSONSchema>>;
990
- id: z.ZodDefault<z.ZodTemplateLiteral<`rseg_${string}`>>;
991
- type: z.ZodDefault<z.ZodLiteral<"roof-segment">>;
992
- material: z.ZodOptional<z.ZodObject<{
3172
+ materialPreset: z.ZodOptional<z.ZodString>;
3173
+ glassMaterial: z.ZodOptional<z.ZodObject<{
993
3174
  id: z.ZodOptional<z.ZodString>;
994
- preset: z.ZodOptional<z.ZodEnum<{
3175
+ preset: z.ZodOptional<z.ZodCatch<z.ZodEnum<{
995
3176
  custom: "custom";
996
3177
  white: "white";
997
3178
  brick: "brick";
@@ -1002,7 +3183,7 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
1002
3183
  plaster: "plaster";
1003
3184
  tile: "tile";
1004
3185
  marble: "marble";
1005
- }>>;
3186
+ }>>>;
1006
3187
  properties: z.ZodOptional<z.ZodObject<{
1007
3188
  color: z.ZodDefault<z.ZodString>;
1008
3189
  roughness: z.ZodDefault<z.ZodNumber>;
@@ -1021,26 +3202,44 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
1021
3202
  scale: z.ZodOptional<z.ZodNumber>;
1022
3203
  }, z.core.$strip>>;
1023
3204
  }, z.core.$strip>>;
1024
- materialPreset: z.ZodOptional<z.ZodString>;
3205
+ glassMaterialPreset: z.ZodOptional<z.ZodString>;
3206
+ roofSegmentId: z.ZodOptional<z.ZodString>;
1025
3207
  position: z.ZodDefault<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
1026
3208
  rotation: z.ZodDefault<z.ZodNumber>;
1027
- roofType: z.ZodDefault<z.ZodEnum<{
3209
+ width: z.ZodDefault<z.ZodNumber>;
3210
+ height: z.ZodDefault<z.ZodNumber>;
3211
+ frameThickness: z.ZodDefault<z.ZodNumber>;
3212
+ frameDepth: z.ZodDefault<z.ZodNumber>;
3213
+ skylightType: z.ZodDefault<z.ZodEnum<{
1028
3214
  flat: "flat";
1029
- hip: "hip";
1030
- gable: "gable";
1031
- shed: "shed";
1032
- gambrel: "gambrel";
1033
- dutch: "dutch";
1034
- mansard: "mansard";
3215
+ sliding: "sliding";
3216
+ opening: "opening";
3217
+ "walk-on": "walk-on";
3218
+ lantern: "lantern";
1035
3219
  }>>;
1036
- width: z.ZodDefault<z.ZodNumber>;
1037
- depth: z.ZodDefault<z.ZodNumber>;
1038
- wallHeight: z.ZodDefault<z.ZodNumber>;
1039
- roofHeight: z.ZodDefault<z.ZodNumber>;
1040
- wallThickness: z.ZodDefault<z.ZodNumber>;
1041
- deckThickness: z.ZodDefault<z.ZodNumber>;
1042
- overhang: z.ZodDefault<z.ZodNumber>;
1043
- shingleThickness: z.ZodDefault<z.ZodNumber>;
3220
+ glassThickness: z.ZodDefault<z.ZodNumber>;
3221
+ lanternHeight: z.ZodDefault<z.ZodNumber>;
3222
+ lanternTopScale: z.ZodDefault<z.ZodNumber>;
3223
+ openingAngle: z.ZodDefault<z.ZodNumber>;
3224
+ openingSide: z.ZodDefault<z.ZodEnum<{
3225
+ right: "right";
3226
+ left: "left";
3227
+ top: "top";
3228
+ bottom: "bottom";
3229
+ }>>;
3230
+ operationState: z.ZodDefault<z.ZodNumber>;
3231
+ motorHousing: z.ZodDefault<z.ZodBoolean>;
3232
+ slideFraction: z.ZodDefault<z.ZodNumber>;
3233
+ slideDirection: z.ZodDefault<z.ZodEnum<{
3234
+ z: "z";
3235
+ x: "x";
3236
+ }>>;
3237
+ trackWidth: z.ZodDefault<z.ZodNumber>;
3238
+ motorHousingSize: z.ZodDefault<z.ZodNumber>;
3239
+ curb: z.ZodDefault<z.ZodBoolean>;
3240
+ curbHeight: z.ZodDefault<z.ZodNumber>;
3241
+ cutoutOffset: z.ZodDefault<z.ZodNumber>;
3242
+ surfaceNormal: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
1044
3243
  }, z.core.$strip>, z.ZodObject<{
1045
3244
  object: z.ZodDefault<z.ZodLiteral<"node">>;
1046
3245
  name: z.ZodOptional<z.ZodString>;
@@ -1057,11 +3256,11 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
1057
3256
  zoom: z.ZodOptional<z.ZodNumber>;
1058
3257
  }, z.core.$strip>>;
1059
3258
  metadata: z.ZodDefault<z.ZodOptional<z.ZodJSONSchema>>;
1060
- id: z.ZodDefault<z.ZodTemplateLiteral<`stair_${string}`>>;
1061
- type: z.ZodDefault<z.ZodLiteral<"stair">>;
3259
+ id: z.ZodDefault<z.ZodTemplateLiteral<`dormer_${string}`>>;
3260
+ type: z.ZodDefault<z.ZodLiteral<"dormer">>;
1062
3261
  material: z.ZodOptional<z.ZodObject<{
1063
3262
  id: z.ZodOptional<z.ZodString>;
1064
- preset: z.ZodOptional<z.ZodEnum<{
3263
+ preset: z.ZodOptional<z.ZodCatch<z.ZodEnum<{
1065
3264
  custom: "custom";
1066
3265
  white: "white";
1067
3266
  brick: "brick";
@@ -1072,7 +3271,7 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
1072
3271
  plaster: "plaster";
1073
3272
  tile: "tile";
1074
3273
  marble: "marble";
1075
- }>>;
3274
+ }>>>;
1076
3275
  properties: z.ZodOptional<z.ZodObject<{
1077
3276
  color: z.ZodDefault<z.ZodString>;
1078
3277
  roughness: z.ZodDefault<z.ZodNumber>;
@@ -1092,9 +3291,9 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
1092
3291
  }, z.core.$strip>>;
1093
3292
  }, z.core.$strip>>;
1094
3293
  materialPreset: z.ZodOptional<z.ZodString>;
1095
- railingMaterial: z.ZodOptional<z.ZodObject<{
3294
+ topMaterial: z.ZodOptional<z.ZodObject<{
1096
3295
  id: z.ZodOptional<z.ZodString>;
1097
- preset: z.ZodOptional<z.ZodEnum<{
3296
+ preset: z.ZodOptional<z.ZodCatch<z.ZodEnum<{
1098
3297
  custom: "custom";
1099
3298
  white: "white";
1100
3299
  brick: "brick";
@@ -1105,7 +3304,7 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
1105
3304
  plaster: "plaster";
1106
3305
  tile: "tile";
1107
3306
  marble: "marble";
1108
- }>>;
3307
+ }>>>;
1109
3308
  properties: z.ZodOptional<z.ZodObject<{
1110
3309
  color: z.ZodDefault<z.ZodString>;
1111
3310
  roughness: z.ZodDefault<z.ZodNumber>;
@@ -1124,10 +3323,10 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
1124
3323
  scale: z.ZodOptional<z.ZodNumber>;
1125
3324
  }, z.core.$strip>>;
1126
3325
  }, z.core.$strip>>;
1127
- railingMaterialPreset: z.ZodOptional<z.ZodString>;
1128
- treadMaterial: z.ZodOptional<z.ZodObject<{
3326
+ topMaterialPreset: z.ZodOptional<z.ZodString>;
3327
+ sideMaterial: z.ZodOptional<z.ZodObject<{
1129
3328
  id: z.ZodOptional<z.ZodString>;
1130
- preset: z.ZodOptional<z.ZodEnum<{
3329
+ preset: z.ZodOptional<z.ZodCatch<z.ZodEnum<{
1131
3330
  custom: "custom";
1132
3331
  white: "white";
1133
3332
  brick: "brick";
@@ -1138,7 +3337,7 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
1138
3337
  plaster: "plaster";
1139
3338
  tile: "tile";
1140
3339
  marble: "marble";
1141
- }>>;
3340
+ }>>>;
1142
3341
  properties: z.ZodOptional<z.ZodObject<{
1143
3342
  color: z.ZodDefault<z.ZodString>;
1144
3343
  roughness: z.ZodDefault<z.ZodNumber>;
@@ -1157,10 +3356,10 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
1157
3356
  scale: z.ZodOptional<z.ZodNumber>;
1158
3357
  }, z.core.$strip>>;
1159
3358
  }, z.core.$strip>>;
1160
- treadMaterialPreset: z.ZodOptional<z.ZodString>;
1161
- sideMaterial: z.ZodOptional<z.ZodObject<{
3359
+ sideMaterialPreset: z.ZodOptional<z.ZodString>;
3360
+ wallMaterial: z.ZodOptional<z.ZodObject<{
1162
3361
  id: z.ZodOptional<z.ZodString>;
1163
- preset: z.ZodOptional<z.ZodEnum<{
3362
+ preset: z.ZodOptional<z.ZodCatch<z.ZodEnum<{
1164
3363
  custom: "custom";
1165
3364
  white: "white";
1166
3365
  brick: "brick";
@@ -1171,7 +3370,7 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
1171
3370
  plaster: "plaster";
1172
3371
  tile: "tile";
1173
3372
  marble: "marble";
1174
- }>>;
3373
+ }>>>;
1175
3374
  properties: z.ZodOptional<z.ZodObject<{
1176
3375
  color: z.ZodDefault<z.ZodString>;
1177
3376
  roughness: z.ZodDefault<z.ZodNumber>;
@@ -1190,43 +3389,43 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
1190
3389
  scale: z.ZodOptional<z.ZodNumber>;
1191
3390
  }, z.core.$strip>>;
1192
3391
  }, z.core.$strip>>;
1193
- sideMaterialPreset: z.ZodOptional<z.ZodString>;
3392
+ wallMaterialPreset: z.ZodOptional<z.ZodString>;
3393
+ roofSegmentId: z.ZodOptional<z.ZodString>;
1194
3394
  position: z.ZodDefault<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
1195
3395
  rotation: z.ZodDefault<z.ZodNumber>;
1196
- stairType: z.ZodDefault<z.ZodEnum<{
1197
- straight: "straight";
1198
- spiral: "spiral";
1199
- curved: "curved";
1200
- }>>;
1201
- fromLevelId: z.ZodDefault<z.ZodNullable<z.ZodString>>;
1202
- toLevelId: z.ZodDefault<z.ZodNullable<z.ZodString>>;
1203
- slabOpeningMode: z.ZodDefault<z.ZodEnum<{
1204
- none: "none";
1205
- destination: "destination";
1206
- }>>;
1207
- openingOffset: z.ZodDefault<z.ZodNumber>;
1208
3396
  width: z.ZodDefault<z.ZodNumber>;
1209
- totalRise: z.ZodDefault<z.ZodNumber>;
1210
- stepCount: z.ZodDefault<z.ZodNumber>;
1211
- thickness: z.ZodDefault<z.ZodNumber>;
1212
- fillToFloor: z.ZodDefault<z.ZodBoolean>;
1213
- innerRadius: z.ZodDefault<z.ZodNumber>;
1214
- sweepAngle: z.ZodDefault<z.ZodNumber>;
1215
- topLandingMode: z.ZodDefault<z.ZodEnum<{
1216
- none: "none";
1217
- integrated: "integrated";
3397
+ depth: z.ZodDefault<z.ZodNumber>;
3398
+ height: z.ZodDefault<z.ZodNumber>;
3399
+ roofType: z.ZodDefault<z.ZodEnum<{
3400
+ flat: "flat";
3401
+ hip: "hip";
3402
+ gable: "gable";
3403
+ shed: "shed";
3404
+ gambrel: "gambrel";
3405
+ dutch: "dutch";
3406
+ mansard: "mansard";
1218
3407
  }>>;
1219
- topLandingDepth: z.ZodDefault<z.ZodNumber>;
1220
- showCenterColumn: z.ZodDefault<z.ZodBoolean>;
1221
- showStepSupports: z.ZodDefault<z.ZodBoolean>;
1222
- railingMode: z.ZodDefault<z.ZodEnum<{
1223
- none: "none";
1224
- left: "left";
1225
- right: "right";
1226
- both: "both";
3408
+ roofHeight: z.ZodDefault<z.ZodNumber>;
3409
+ wallSkirtHeight: z.ZodDefault<z.ZodNumber>;
3410
+ windowWidth: z.ZodDefault<z.ZodNumber>;
3411
+ windowHeight: z.ZodDefault<z.ZodNumber>;
3412
+ windowOffsetX: z.ZodDefault<z.ZodNumber>;
3413
+ windowOffsetY: z.ZodDefault<z.ZodNumber>;
3414
+ windowFrameThickness: z.ZodDefault<z.ZodNumber>;
3415
+ windowFrameDepth: z.ZodDefault<z.ZodNumber>;
3416
+ windowColumns: z.ZodDefault<z.ZodNumber>;
3417
+ windowRows: z.ZodDefault<z.ZodNumber>;
3418
+ windowDividerThickness: z.ZodDefault<z.ZodNumber>;
3419
+ windowShape: z.ZodDefault<z.ZodEnum<{
3420
+ rectangle: "rectangle";
3421
+ rounded: "rounded";
3422
+ arch: "arch";
1227
3423
  }>>;
1228
- railingHeight: z.ZodDefault<z.ZodNumber>;
1229
- children: z.ZodDefault<z.ZodArray<z.ZodDefault<z.ZodTemplateLiteral<`sseg_${string}`>>>>;
3424
+ windowArchHeight: z.ZodDefault<z.ZodNumber>;
3425
+ windowCornerRadii: z.ZodDefault<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
3426
+ windowSill: z.ZodDefault<z.ZodBoolean>;
3427
+ windowSillDepth: z.ZodDefault<z.ZodNumber>;
3428
+ windowSillThickness: z.ZodDefault<z.ZodNumber>;
1230
3429
  }, z.core.$strip>, z.ZodObject<{
1231
3430
  object: z.ZodDefault<z.ZodLiteral<"node">>;
1232
3431
  name: z.ZodOptional<z.ZodString>;
@@ -1243,11 +3442,11 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
1243
3442
  zoom: z.ZodOptional<z.ZodNumber>;
1244
3443
  }, z.core.$strip>>;
1245
3444
  metadata: z.ZodDefault<z.ZodOptional<z.ZodJSONSchema>>;
1246
- id: z.ZodDefault<z.ZodTemplateLiteral<`sseg_${string}`>>;
1247
- type: z.ZodDefault<z.ZodLiteral<"stair-segment">>;
3445
+ id: z.ZodDefault<z.ZodTemplateLiteral<`downspout_${string}`>>;
3446
+ type: z.ZodDefault<z.ZodLiteral<"downspout">>;
1248
3447
  material: z.ZodOptional<z.ZodObject<{
1249
3448
  id: z.ZodOptional<z.ZodString>;
1250
- preset: z.ZodOptional<z.ZodEnum<{
3449
+ preset: z.ZodOptional<z.ZodCatch<z.ZodEnum<{
1251
3450
  custom: "custom";
1252
3451
  white: "white";
1253
3452
  brick: "brick";
@@ -1258,7 +3457,7 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
1258
3457
  plaster: "plaster";
1259
3458
  tile: "tile";
1260
3459
  marble: "marble";
1261
- }>>;
3460
+ }>>>;
1262
3461
  properties: z.ZodOptional<z.ZodObject<{
1263
3462
  color: z.ZodDefault<z.ZodString>;
1264
3463
  roughness: z.ZodDefault<z.ZodNumber>;
@@ -1277,24 +3476,208 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
1277
3476
  scale: z.ZodOptional<z.ZodNumber>;
1278
3477
  }, z.core.$strip>>;
1279
3478
  }, z.core.$strip>>;
1280
- materialPreset: z.ZodOptional<z.ZodString>;
3479
+ materialPreset: z.ZodDefault<z.ZodString>;
3480
+ gutterId: z.ZodOptional<z.ZodString>;
3481
+ outletId: z.ZodOptional<z.ZodString>;
3482
+ length: z.ZodDefault<z.ZodNumber>;
3483
+ diameter: z.ZodDefault<z.ZodNumber>;
3484
+ standoff: z.ZodDefault<z.ZodNumber>;
3485
+ shape: z.ZodDefault<z.ZodEnum<{
3486
+ round: "round";
3487
+ auto: "auto";
3488
+ rect: "rect";
3489
+ }>>;
3490
+ strapStyle: z.ZodDefault<z.ZodEnum<{
3491
+ none: "none";
3492
+ band: "band";
3493
+ }>>;
3494
+ strapSpacing: z.ZodDefault<z.ZodNumber>;
3495
+ terminal: z.ZodDefault<z.ZodEnum<{
3496
+ straight: "straight";
3497
+ splash: "splash";
3498
+ kickout: "kickout";
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">>;
1281
3655
  position: z.ZodDefault<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
1282
3656
  rotation: z.ZodDefault<z.ZodNumber>;
1283
- segmentType: z.ZodDefault<z.ZodEnum<{
1284
- stair: "stair";
1285
- landing: "landing";
3657
+ equipmentType: z.ZodDefault<z.ZodEnum<{
3658
+ furnace: "furnace";
3659
+ "air-handler": "air-handler";
3660
+ condenser: "condenser";
1286
3661
  }>>;
1287
3662
  width: z.ZodDefault<z.ZodNumber>;
1288
- length: z.ZodDefault<z.ZodNumber>;
3663
+ depth: z.ZodDefault<z.ZodNumber>;
1289
3664
  height: z.ZodDefault<z.ZodNumber>;
1290
- stepCount: z.ZodDefault<z.ZodNumber>;
1291
- attachmentSide: z.ZodDefault<z.ZodEnum<{
1292
- front: "front";
1293
- left: "left";
1294
- right: "right";
3665
+ supplyShape: z.ZodDefault<z.ZodEnum<{
3666
+ round: "round";
3667
+ rect: "rect";
3668
+ oval: "oval";
1295
3669
  }>>;
1296
- fillToFloor: z.ZodDefault<z.ZodBoolean>;
1297
- thickness: z.ZodDefault<z.ZodNumber>;
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>;
1298
3681
  }, z.core.$strip>, z.ZodObject<{
1299
3682
  object: z.ZodDefault<z.ZodLiteral<"node">>;
1300
3683
  name: z.ZodOptional<z.ZodString>;
@@ -1311,13 +3694,12 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
1311
3694
  zoom: z.ZodOptional<z.ZodNumber>;
1312
3695
  }, z.core.$strip>>;
1313
3696
  metadata: z.ZodDefault<z.ZodOptional<z.ZodJSONSchema>>;
1314
- id: z.ZodDefault<z.ZodTemplateLiteral<`scan_${string}`>>;
1315
- type: z.ZodDefault<z.ZodLiteral<"scan">>;
1316
- url: z.ZodString;
1317
- position: z.ZodDefault<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
1318
- rotation: z.ZodDefault<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
1319
- scale: z.ZodDefault<z.ZodNumber>;
1320
- opacity: z.ZodDefault<z.ZodNumber>;
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>;
1321
3703
  }, z.core.$strip>, z.ZodObject<{
1322
3704
  object: z.ZodDefault<z.ZodLiteral<"node">>;
1323
3705
  name: z.ZodOptional<z.ZodString>;
@@ -1334,21 +3716,10 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
1334
3716
  zoom: z.ZodOptional<z.ZodNumber>;
1335
3717
  }, z.core.$strip>>;
1336
3718
  metadata: z.ZodDefault<z.ZodOptional<z.ZodJSONSchema>>;
1337
- id: z.ZodDefault<z.ZodTemplateLiteral<`guide_${string}`>>;
1338
- type: z.ZodDefault<z.ZodLiteral<"guide">>;
1339
- url: z.ZodString;
1340
- position: z.ZodDefault<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
1341
- rotation: z.ZodDefault<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
1342
- scale: z.ZodDefault<z.ZodNumber>;
1343
- opacity: z.ZodDefault<z.ZodNumber>;
1344
- scaleReference: z.ZodDefault<z.ZodNullable<z.ZodObject<{
1345
- start: z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>;
1346
- end: z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>;
1347
- realLengthMeters: z.ZodNumber;
1348
- measuredLengthUnits: z.ZodNumber;
1349
- metersPerUnit: z.ZodNumber;
1350
- label: z.ZodString;
1351
- }, z.core.$strip>>>;
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>;
1352
3723
  }, z.core.$strip>, z.ZodObject<{
1353
3724
  object: z.ZodDefault<z.ZodLiteral<"node">>;
1354
3725
  name: z.ZodOptional<z.ZodString>;
@@ -1365,10 +3736,19 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
1365
3736
  zoom: z.ZodOptional<z.ZodNumber>;
1366
3737
  }, z.core.$strip>>;
1367
3738
  metadata: z.ZodDefault<z.ZodOptional<z.ZodJSONSchema>>;
1368
- id: z.ZodDefault<z.ZodTemplateLiteral<`spawn_${string}`>>;
1369
- type: z.ZodDefault<z.ZodLiteral<"spawn">>;
1370
- position: z.ZodDefault<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
1371
- rotation: z.ZodDefault<z.ZodNumber>;
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
+ }>>;
1372
3752
  }, z.core.$strip>, z.ZodObject<{
1373
3753
  object: z.ZodDefault<z.ZodLiteral<"node">>;
1374
3754
  name: z.ZodOptional<z.ZodString>;
@@ -1385,100 +3765,28 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
1385
3765
  zoom: z.ZodOptional<z.ZodNumber>;
1386
3766
  }, z.core.$strip>>;
1387
3767
  metadata: z.ZodDefault<z.ZodOptional<z.ZodJSONSchema>>;
1388
- id: z.ZodDefault<z.ZodTemplateLiteral<`window_${string}`>>;
1389
- type: z.ZodDefault<z.ZodLiteral<"window">>;
1390
- material: z.ZodOptional<z.ZodObject<{
1391
- id: z.ZodOptional<z.ZodString>;
1392
- preset: z.ZodOptional<z.ZodEnum<{
1393
- custom: "custom";
1394
- white: "white";
1395
- brick: "brick";
1396
- concrete: "concrete";
1397
- wood: "wood";
1398
- glass: "glass";
1399
- metal: "metal";
1400
- plaster: "plaster";
1401
- tile: "tile";
1402
- marble: "marble";
1403
- }>>;
1404
- properties: z.ZodOptional<z.ZodObject<{
1405
- color: z.ZodDefault<z.ZodString>;
1406
- roughness: z.ZodDefault<z.ZodNumber>;
1407
- metalness: z.ZodDefault<z.ZodNumber>;
1408
- opacity: z.ZodDefault<z.ZodNumber>;
1409
- transparent: z.ZodDefault<z.ZodBoolean>;
1410
- side: z.ZodDefault<z.ZodEnum<{
1411
- front: "front";
1412
- back: "back";
1413
- double: "double";
1414
- }>>;
1415
- }, z.core.$strip>>;
1416
- texture: z.ZodOptional<z.ZodObject<{
1417
- url: z.ZodString;
1418
- repeat: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>>;
1419
- scale: z.ZodOptional<z.ZodNumber>;
1420
- }, z.core.$strip>>;
1421
- }, z.core.$strip>>;
3768
+ id: z.ZodDefault<z.ZodTemplateLiteral<`pipe-fitting_${string}`>>;
3769
+ type: z.ZodDefault<z.ZodLiteral<"pipe-fitting">>;
1422
3770
  position: z.ZodDefault<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
1423
3771
  rotation: z.ZodDefault<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
1424
- side: z.ZodOptional<z.ZodEnum<{
1425
- front: "front";
1426
- back: "back";
1427
- }>>;
1428
- wallId: z.ZodOptional<z.ZodString>;
1429
- width: z.ZodDefault<z.ZodNumber>;
1430
- height: z.ZodDefault<z.ZodNumber>;
1431
- openingKind: z.ZodDefault<z.ZodEnum<{
1432
- window: "window";
1433
- opening: "opening";
1434
- }>>;
1435
- windowType: z.ZodDefault<z.ZodEnum<{
1436
- sliding: "sliding";
1437
- fixed: "fixed";
1438
- casement: "casement";
1439
- awning: "awning";
1440
- hopper: "hopper";
1441
- "single-hung": "single-hung";
1442
- "double-hung": "double-hung";
1443
- bay: "bay";
1444
- bow: "bow";
1445
- louvered: "louvered";
1446
- }>>;
1447
- operationState: z.ZodDefault<z.ZodNumber>;
1448
- awningDirection: z.ZodDefault<z.ZodEnum<{
1449
- up: "up";
1450
- down: "down";
1451
- }>>;
1452
- casementStyle: z.ZodDefault<z.ZodEnum<{
1453
- french: "french";
1454
- single: "single";
1455
- }>>;
1456
- hingesSide: z.ZodDefault<z.ZodEnum<{
1457
- left: "left";
1458
- right: "right";
3772
+ fittingType: z.ZodDefault<z.ZodEnum<{
3773
+ elbow: "elbow";
3774
+ cross: "cross";
3775
+ wye: "wye";
3776
+ "sanitary-tee": "sanitary-tee";
1459
3777
  }>>;
1460
- openingShape: z.ZodDefault<z.ZodEnum<{
1461
- rectangle: "rectangle";
1462
- rounded: "rounded";
1463
- arch: "arch";
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";
1464
3785
  }>>;
1465
- openingRadiusMode: z.ZodDefault<z.ZodEnum<{
1466
- all: "all";
1467
- individual: "individual";
3786
+ system: z.ZodDefault<z.ZodEnum<{
3787
+ waste: "waste";
3788
+ vent: "vent";
1468
3789
  }>>;
1469
- openingCornerRadii: z.ZodDefault<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
1470
- cornerRadius: z.ZodDefault<z.ZodNumber>;
1471
- archHeight: z.ZodDefault<z.ZodNumber>;
1472
- openingRevealRadius: z.ZodDefault<z.ZodNumber>;
1473
- frameThickness: z.ZodDefault<z.ZodNumber>;
1474
- frameDepth: z.ZodDefault<z.ZodNumber>;
1475
- columnRatios: z.ZodDefault<z.ZodArray<z.ZodNumber>>;
1476
- rowRatios: z.ZodDefault<z.ZodArray<z.ZodNumber>>;
1477
- columnDividerThickness: z.ZodDefault<z.ZodNumber>;
1478
- rowDividerThickness: z.ZodDefault<z.ZodNumber>;
1479
- sill: z.ZodDefault<z.ZodBoolean>;
1480
- sillDepth: z.ZodDefault<z.ZodNumber>;
1481
- sillThickness: z.ZodDefault<z.ZodNumber>;
1482
3790
  }, z.core.$strip>, z.ZodObject<{
1483
3791
  object: z.ZodDefault<z.ZodLiteral<"node">>;
1484
3792
  name: z.ZodOptional<z.ZodString>;
@@ -1495,130 +3803,17 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
1495
3803
  zoom: z.ZodOptional<z.ZodNumber>;
1496
3804
  }, z.core.$strip>>;
1497
3805
  metadata: z.ZodDefault<z.ZodOptional<z.ZodJSONSchema>>;
1498
- id: z.ZodDefault<z.ZodTemplateLiteral<`door_${string}`>>;
1499
- type: z.ZodDefault<z.ZodLiteral<"door">>;
1500
- material: z.ZodOptional<z.ZodObject<{
1501
- id: z.ZodOptional<z.ZodString>;
1502
- preset: z.ZodOptional<z.ZodEnum<{
1503
- custom: "custom";
1504
- white: "white";
1505
- brick: "brick";
1506
- concrete: "concrete";
1507
- wood: "wood";
1508
- glass: "glass";
1509
- metal: "metal";
1510
- plaster: "plaster";
1511
- tile: "tile";
1512
- marble: "marble";
1513
- }>>;
1514
- properties: z.ZodOptional<z.ZodObject<{
1515
- color: z.ZodDefault<z.ZodString>;
1516
- roughness: z.ZodDefault<z.ZodNumber>;
1517
- metalness: z.ZodDefault<z.ZodNumber>;
1518
- opacity: z.ZodDefault<z.ZodNumber>;
1519
- transparent: z.ZodDefault<z.ZodBoolean>;
1520
- side: z.ZodDefault<z.ZodEnum<{
1521
- front: "front";
1522
- back: "back";
1523
- double: "double";
1524
- }>>;
1525
- }, z.core.$strip>>;
1526
- texture: z.ZodOptional<z.ZodObject<{
1527
- url: z.ZodString;
1528
- repeat: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>>;
1529
- scale: z.ZodOptional<z.ZodNumber>;
1530
- }, z.core.$strip>>;
1531
- }, z.core.$strip>>;
3806
+ id: z.ZodDefault<z.ZodTemplateLiteral<`pipe-trap_${string}`>>;
3807
+ type: z.ZodDefault<z.ZodLiteral<"pipe-trap">>;
1532
3808
  position: z.ZodDefault<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
1533
- rotation: z.ZodDefault<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
1534
- side: z.ZodOptional<z.ZodEnum<{
1535
- front: "front";
1536
- back: "back";
1537
- }>>;
1538
- wallId: z.ZodOptional<z.ZodString>;
1539
- width: z.ZodDefault<z.ZodNumber>;
1540
- height: z.ZodDefault<z.ZodNumber>;
1541
- doorCategory: z.ZodDefault<z.ZodEnum<{
1542
- interior: "interior";
1543
- garage: "garage";
1544
- }>>;
1545
- doorType: z.ZodDefault<z.ZodEnum<{
1546
- double: "double";
1547
- hinged: "hinged";
1548
- french: "french";
1549
- folding: "folding";
1550
- pocket: "pocket";
1551
- barn: "barn";
1552
- sliding: "sliding";
1553
- "garage-sectional": "garage-sectional";
1554
- "garage-rollup": "garage-rollup";
1555
- "garage-tiltup": "garage-tiltup";
1556
- }>>;
1557
- leafCount: z.ZodDefault<z.ZodUnion<readonly [z.ZodLiteral<1>, z.ZodLiteral<2>, z.ZodLiteral<3>, z.ZodLiteral<4>]>>;
1558
- operationState: z.ZodDefault<z.ZodNumber>;
1559
- slideDirection: z.ZodDefault<z.ZodEnum<{
1560
- left: "left";
1561
- right: "right";
1562
- }>>;
1563
- trackStyle: z.ZodDefault<z.ZodEnum<{
1564
- visible: "visible";
1565
- none: "none";
1566
- pocket: "pocket";
1567
- overhead: "overhead";
1568
- }>>;
1569
- garagePanelCount: z.ZodDefault<z.ZodNumber>;
1570
- openingKind: z.ZodDefault<z.ZodEnum<{
1571
- door: "door";
1572
- opening: "opening";
1573
- }>>;
1574
- openingShape: z.ZodDefault<z.ZodEnum<{
1575
- rectangle: "rectangle";
1576
- rounded: "rounded";
1577
- arch: "arch";
1578
- }>>;
1579
- openingRadiusMode: z.ZodDefault<z.ZodEnum<{
1580
- all: "all";
1581
- individual: "individual";
1582
- }>>;
1583
- openingTopRadii: z.ZodDefault<z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>>;
1584
- cornerRadius: z.ZodDefault<z.ZodNumber>;
1585
- archHeight: z.ZodDefault<z.ZodNumber>;
1586
- openingRevealRadius: z.ZodDefault<z.ZodNumber>;
1587
- frameThickness: z.ZodDefault<z.ZodNumber>;
1588
- frameDepth: z.ZodDefault<z.ZodNumber>;
1589
- threshold: z.ZodDefault<z.ZodBoolean>;
1590
- thresholdHeight: z.ZodDefault<z.ZodNumber>;
1591
- hingesSide: z.ZodDefault<z.ZodEnum<{
1592
- left: "left";
1593
- right: "right";
1594
- }>>;
1595
- swingDirection: z.ZodDefault<z.ZodEnum<{
1596
- inward: "inward";
1597
- outward: "outward";
1598
- }>>;
1599
- swingAngle: z.ZodDefault<z.ZodNumber>;
1600
- segments: z.ZodDefault<z.ZodArray<z.ZodObject<{
1601
- type: z.ZodEnum<{
1602
- glass: "glass";
1603
- panel: "panel";
1604
- empty: "empty";
1605
- }>;
1606
- heightRatio: z.ZodNumber;
1607
- columnRatios: z.ZodDefault<z.ZodArray<z.ZodNumber>>;
1608
- dividerThickness: z.ZodDefault<z.ZodNumber>;
1609
- panelDepth: z.ZodDefault<z.ZodNumber>;
1610
- panelInset: z.ZodDefault<z.ZodNumber>;
1611
- }, z.core.$strip>>>;
1612
- handle: z.ZodDefault<z.ZodBoolean>;
1613
- handleHeight: z.ZodDefault<z.ZodNumber>;
1614
- handleSide: z.ZodDefault<z.ZodEnum<{
1615
- left: "left";
1616
- right: "right";
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";
1617
3815
  }>>;
1618
- contentPadding: z.ZodDefault<z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>>;
1619
- doorCloser: z.ZodDefault<z.ZodBoolean>;
1620
- panicBar: z.ZodDefault<z.ZodBoolean>;
1621
- panicBarHeight: z.ZodDefault<z.ZodNumber>;
3816
+ armLengthM: z.ZodDefault<z.ZodNumber>;
1622
3817
  }, z.core.$strip>], "type">;
1623
3818
  export type AnyNode = z.infer<typeof AnyNode>;
1624
3819
  export type AnyNodeType = AnyNode['type'];