@pascal-app/core 0.7.0 → 0.9.1

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 (318) hide show
  1. package/dist/events/bus.d.ts +47 -18
  2. package/dist/events/bus.d.ts.map +1 -1
  3. package/dist/events/bus.js +1 -1
  4. package/dist/hooks/scene-registry/scene-registry.d.ts +6 -22
  5. package/dist/hooks/scene-registry/scene-registry.d.ts.map +1 -1
  6. package/dist/hooks/scene-registry/scene-registry.js +33 -26
  7. package/dist/hooks/spatial-grid/floor-placed-elevation.d.ts +14 -0
  8. package/dist/hooks/spatial-grid/floor-placed-elevation.d.ts.map +1 -0
  9. package/dist/hooks/spatial-grid/floor-placed-elevation.js +51 -0
  10. package/dist/hooks/spatial-grid/floor-placed-elevation.test.d.ts +2 -0
  11. package/dist/hooks/spatial-grid/floor-placed-elevation.test.d.ts.map +1 -0
  12. package/dist/hooks/spatial-grid/floor-placed-elevation.test.js +273 -0
  13. package/dist/hooks/spatial-grid/spatial-grid-manager.d.ts +13 -2
  14. package/dist/hooks/spatial-grid/spatial-grid-manager.d.ts.map +1 -1
  15. package/dist/hooks/spatial-grid/spatial-grid-manager.js +95 -9
  16. package/dist/hooks/spatial-grid/spatial-grid-sync.d.ts +28 -1
  17. package/dist/hooks/spatial-grid/spatial-grid-sync.d.ts.map +1 -1
  18. package/dist/hooks/spatial-grid/spatial-grid-sync.js +91 -18
  19. package/dist/index.d.ts +22 -4
  20. package/dist/index.d.ts.map +1 -1
  21. package/dist/index.js +19 -2
  22. package/dist/lib/polygon-geometry.d.ts.map +1 -1
  23. package/dist/lib/polygon-relations.d.ts +10 -0
  24. package/dist/lib/polygon-relations.d.ts.map +1 -0
  25. package/dist/lib/polygon-relations.js +73 -0
  26. package/dist/lib/space-detection-pause.test.d.ts +2 -0
  27. package/dist/lib/space-detection-pause.test.d.ts.map +1 -0
  28. package/dist/lib/space-detection-pause.test.js +42 -0
  29. package/dist/lib/space-detection.d.ts +30 -1
  30. package/dist/lib/space-detection.d.ts.map +1 -1
  31. package/dist/lib/space-detection.js +222 -41
  32. package/dist/lib/space-detection.test.d.ts +2 -0
  33. package/dist/lib/space-detection.test.d.ts.map +1 -0
  34. package/dist/lib/space-detection.test.js +77 -0
  35. package/dist/material-library.d.ts +1 -1
  36. package/dist/material-library.d.ts.map +1 -1
  37. package/dist/material-library.js +1957 -141
  38. package/dist/registry/__bench__/relations-resolver.bench.d.ts +15 -0
  39. package/dist/registry/__bench__/relations-resolver.bench.d.ts.map +1 -0
  40. package/dist/registry/__bench__/relations-resolver.bench.js +170 -0
  41. package/dist/registry/handles.d.ts +321 -0
  42. package/dist/registry/handles.d.ts.map +1 -0
  43. package/dist/registry/handles.js +24 -0
  44. package/dist/registry/index.d.ts +7 -0
  45. package/dist/registry/index.d.ts.map +1 -0
  46. package/dist/registry/index.js +4 -0
  47. package/dist/registry/registry.d.ts +93 -0
  48. package/dist/registry/registry.d.ts.map +1 -0
  49. package/dist/registry/registry.js +201 -0
  50. package/dist/registry/registry.test.d.ts +2 -0
  51. package/dist/registry/registry.test.d.ts.map +1 -0
  52. package/dist/registry/registry.test.js +183 -0
  53. package/dist/registry/relations-resolver.d.ts +42 -0
  54. package/dist/registry/relations-resolver.d.ts.map +1 -0
  55. package/dist/registry/relations-resolver.js +77 -0
  56. package/dist/registry/relations-resolver.test.d.ts +2 -0
  57. package/dist/registry/relations-resolver.test.d.ts.map +1 -0
  58. package/dist/registry/relations-resolver.test.js +183 -0
  59. package/dist/registry/scene-api.d.ts +44 -0
  60. package/dist/registry/scene-api.d.ts.map +1 -0
  61. package/dist/registry/scene-api.js +111 -0
  62. package/dist/registry/scene-api.test.d.ts +2 -0
  63. package/dist/registry/scene-api.test.d.ts.map +1 -0
  64. package/dist/registry/scene-api.test.js +183 -0
  65. package/dist/registry/subtree.d.ts +67 -0
  66. package/dist/registry/subtree.d.ts.map +1 -0
  67. package/dist/registry/subtree.js +119 -0
  68. package/dist/registry/subtree.test.d.ts +2 -0
  69. package/dist/registry/subtree.test.d.ts.map +1 -0
  70. package/dist/registry/subtree.test.js +133 -0
  71. package/dist/registry/types.d.ts +1420 -0
  72. package/dist/registry/types.d.ts.map +1 -0
  73. package/dist/registry/types.js +1 -0
  74. package/dist/schema/asset-url.test.js +0 -4
  75. package/dist/schema/index.d.ts +17 -2
  76. package/dist/schema/index.d.ts.map +1 -1
  77. package/dist/schema/index.js +17 -3
  78. package/dist/schema/material.d.ts +12 -2
  79. package/dist/schema/material.d.ts.map +1 -1
  80. package/dist/schema/material.js +10 -0
  81. package/dist/schema/nodes/box-vent.d.ts +74 -0
  82. package/dist/schema/nodes/box-vent.d.ts.map +1 -0
  83. package/dist/schema/nodes/box-vent.js +63 -0
  84. package/dist/schema/nodes/building.d.ts +1 -1
  85. package/dist/schema/nodes/building.d.ts.map +1 -1
  86. package/dist/schema/nodes/building.js +3 -2
  87. package/dist/schema/nodes/ceiling.d.ts +3 -1
  88. package/dist/schema/nodes/ceiling.d.ts.map +1 -1
  89. package/dist/schema/nodes/ceiling.js +1 -1
  90. package/dist/schema/nodes/chimney.d.ts +158 -0
  91. package/dist/schema/nodes/chimney.d.ts.map +1 -0
  92. package/dist/schema/nodes/chimney.js +67 -0
  93. package/dist/schema/nodes/column.d.ts +598 -6
  94. package/dist/schema/nodes/column.d.ts.map +1 -1
  95. package/dist/schema/nodes/column.js +586 -6
  96. package/dist/schema/nodes/cupola.d.ts +66 -0
  97. package/dist/schema/nodes/cupola.d.ts.map +1 -0
  98. package/dist/schema/nodes/cupola.js +28 -0
  99. package/dist/schema/nodes/door.d.ts +1 -1
  100. package/dist/schema/nodes/dormer.d.ts +228 -0
  101. package/dist/schema/nodes/dormer.d.ts.map +1 -0
  102. package/dist/schema/nodes/dormer.js +119 -0
  103. package/dist/schema/nodes/downspout.d.ts +75 -0
  104. package/dist/schema/nodes/downspout.d.ts.map +1 -0
  105. package/dist/schema/nodes/downspout.js +63 -0
  106. package/dist/schema/nodes/elevator.d.ts +105 -0
  107. package/dist/schema/nodes/elevator.d.ts.map +1 -0
  108. package/dist/schema/nodes/elevator.js +54 -0
  109. package/dist/schema/nodes/eyebrow-vent.d.ts +68 -0
  110. package/dist/schema/nodes/eyebrow-vent.d.ts.map +1 -0
  111. package/dist/schema/nodes/eyebrow-vent.js +40 -0
  112. package/dist/schema/nodes/fence.d.ts +3 -2
  113. package/dist/schema/nodes/fence.d.ts.map +1 -1
  114. package/dist/schema/nodes/fence.js +4 -2
  115. package/dist/schema/nodes/gutter.d.ts +84 -0
  116. package/dist/schema/nodes/gutter.d.ts.map +1 -0
  117. package/dist/schema/nodes/gutter.js +76 -0
  118. package/dist/schema/nodes/item.d.ts +16 -0
  119. package/dist/schema/nodes/item.d.ts.map +1 -1
  120. package/dist/schema/nodes/item.js +21 -0
  121. package/dist/schema/nodes/level.d.ts +1 -1
  122. package/dist/schema/nodes/level.d.ts.map +1 -1
  123. package/dist/schema/nodes/level.js +2 -0
  124. package/dist/schema/nodes/ridge-vent.d.ts +67 -0
  125. package/dist/schema/nodes/ridge-vent.d.ts.map +1 -0
  126. package/dist/schema/nodes/ridge-vent.js +30 -0
  127. package/dist/schema/nodes/roof-segment.d.ts +198 -4
  128. package/dist/schema/nodes/roof-segment.d.ts.map +1 -1
  129. package/dist/schema/nodes/roof-segment.js +254 -3
  130. package/dist/schema/nodes/roof.d.ts +6 -6
  131. package/dist/schema/nodes/roof.d.ts.map +1 -1
  132. package/dist/schema/nodes/roof.js +9 -21
  133. package/dist/schema/nodes/shelf.d.ts +105 -0
  134. package/dist/schema/nodes/shelf.d.ts.map +1 -0
  135. package/dist/schema/nodes/shelf.js +84 -0
  136. package/dist/schema/nodes/site.d.ts +1 -116
  137. package/dist/schema/nodes/site.d.ts.map +1 -1
  138. package/dist/schema/nodes/site.js +2 -6
  139. package/dist/schema/nodes/skylight.d.ts +279 -0
  140. package/dist/schema/nodes/skylight.d.ts.map +1 -0
  141. package/dist/schema/nodes/skylight.js +152 -0
  142. package/dist/schema/nodes/slab.d.ts +3 -1
  143. package/dist/schema/nodes/slab.d.ts.map +1 -1
  144. package/dist/schema/nodes/slab.js +1 -1
  145. package/dist/schema/nodes/solar-panel.d.ts +117 -0
  146. package/dist/schema/nodes/solar-panel.d.ts.map +1 -0
  147. package/dist/schema/nodes/solar-panel.js +47 -0
  148. package/dist/schema/nodes/stair-segment.d.ts +1 -1
  149. package/dist/schema/nodes/stair.d.ts +6 -6
  150. package/dist/schema/nodes/stair.d.ts.map +1 -1
  151. package/dist/schema/nodes/stair.js +9 -7
  152. package/dist/schema/nodes/surface-hole-metadata.d.ts +2 -0
  153. package/dist/schema/nodes/surface-hole-metadata.d.ts.map +1 -1
  154. package/dist/schema/nodes/surface-hole-metadata.js +3 -1
  155. package/dist/schema/nodes/turbine-vent.d.ts +68 -0
  156. package/dist/schema/nodes/turbine-vent.d.ts.map +1 -0
  157. package/dist/schema/nodes/turbine-vent.js +41 -0
  158. package/dist/schema/nodes/wall.d.ts +3 -3
  159. package/dist/schema/nodes/window.d.ts +1 -1
  160. package/dist/schema/types.d.ts +1448 -236
  161. package/dist/schema/types.d.ts.map +1 -1
  162. package/dist/schema/types.js +26 -0
  163. package/dist/services/alignment-anchors.d.ts +100 -0
  164. package/dist/services/alignment-anchors.d.ts.map +1 -0
  165. package/dist/services/alignment-anchors.js +283 -0
  166. package/dist/services/alignment-anchors.test.d.ts +2 -0
  167. package/dist/services/alignment-anchors.test.d.ts.map +1 -0
  168. package/dist/services/alignment-anchors.test.js +383 -0
  169. package/dist/services/alignment.d.ts +126 -0
  170. package/dist/services/alignment.d.ts.map +1 -0
  171. package/dist/services/alignment.js +169 -0
  172. package/dist/services/alignment.test.d.ts +2 -0
  173. package/dist/services/alignment.test.d.ts.map +1 -0
  174. package/dist/services/alignment.test.js +92 -0
  175. package/dist/services/drag-session.d.ts +47 -0
  176. package/dist/services/drag-session.d.ts.map +1 -0
  177. package/dist/services/drag-session.js +100 -0
  178. package/dist/services/drag-session.test.d.ts +2 -0
  179. package/dist/services/drag-session.test.d.ts.map +1 -0
  180. package/dist/services/drag-session.test.js +219 -0
  181. package/dist/services/hosting.d.ts +80 -0
  182. package/dist/services/hosting.d.ts.map +1 -0
  183. package/dist/services/hosting.js +122 -0
  184. package/dist/services/hosting.test.d.ts +2 -0
  185. package/dist/services/hosting.test.d.ts.map +1 -0
  186. package/dist/services/hosting.test.js +199 -0
  187. package/dist/services/index.d.ts +7 -0
  188. package/dist/services/index.d.ts.map +1 -0
  189. package/dist/services/index.js +6 -0
  190. package/dist/services/movement.d.ts +48 -0
  191. package/dist/services/movement.d.ts.map +1 -0
  192. package/dist/services/movement.js +65 -0
  193. package/dist/services/movement.test.d.ts +2 -0
  194. package/dist/services/movement.test.d.ts.map +1 -0
  195. package/dist/services/movement.test.js +133 -0
  196. package/dist/services/single-undo-dance.test.d.ts +2 -0
  197. package/dist/services/single-undo-dance.test.d.ts.map +1 -0
  198. package/dist/services/single-undo-dance.test.js +210 -0
  199. package/dist/services/snap.d.ts +72 -0
  200. package/dist/services/snap.d.ts.map +1 -0
  201. package/dist/services/snap.js +120 -0
  202. package/dist/services/snap.test.d.ts +2 -0
  203. package/dist/services/snap.test.d.ts.map +1 -0
  204. package/dist/services/snap.test.js +95 -0
  205. package/dist/solar-panel-presets.d.ts +17 -0
  206. package/dist/solar-panel-presets.d.ts.map +1 -0
  207. package/dist/solar-panel-presets.js +43 -0
  208. package/dist/store/actions/node-actions.d.ts +14 -2
  209. package/dist/store/actions/node-actions.d.ts.map +1 -1
  210. package/dist/store/actions/node-actions.js +499 -20
  211. package/dist/store/actions/node-mutation-sanitize.test.d.ts +2 -0
  212. package/dist/store/actions/node-mutation-sanitize.test.d.ts.map +1 -0
  213. package/dist/store/actions/node-mutation-sanitize.test.js +147 -0
  214. package/dist/store/actions/reparent.test.d.ts +2 -0
  215. package/dist/store/actions/reparent.test.d.ts.map +1 -0
  216. package/dist/store/actions/reparent.test.js +212 -0
  217. package/dist/store/use-interactive.d.ts +39 -0
  218. package/dist/store/use-interactive.d.ts.map +1 -1
  219. package/dist/store/use-interactive.js +75 -0
  220. package/dist/store/use-live-node-overrides.d.ts +22 -0
  221. package/dist/store/use-live-node-overrides.d.ts.map +1 -0
  222. package/dist/store/use-live-node-overrides.js +59 -0
  223. package/dist/store/use-scene-elevator-migration.test.d.ts +2 -0
  224. package/dist/store/use-scene-elevator-migration.test.d.ts.map +1 -0
  225. package/dist/store/use-scene-elevator-migration.test.js +109 -0
  226. package/dist/store/use-scene.d.ts +11 -0
  227. package/dist/store/use-scene.d.ts.map +1 -1
  228. package/dist/store/use-scene.js +207 -11
  229. package/dist/systems/elevator/elevator-dispatch.d.ts +12 -0
  230. package/dist/systems/elevator/elevator-dispatch.d.ts.map +1 -0
  231. package/dist/systems/elevator/elevator-dispatch.js +57 -0
  232. package/dist/systems/elevator/elevator-geometry.d.ts +15 -0
  233. package/dist/systems/elevator/elevator-geometry.d.ts.map +1 -0
  234. package/dist/systems/elevator/elevator-geometry.js +50 -0
  235. package/dist/systems/elevator/elevator-opening-sync.d.ts +6 -0
  236. package/dist/systems/elevator/elevator-opening-sync.d.ts.map +1 -0
  237. package/dist/systems/elevator/elevator-opening-sync.js +218 -0
  238. package/dist/systems/elevator/elevator-opening-sync.test.d.ts +2 -0
  239. package/dist/systems/elevator/elevator-opening-sync.test.d.ts.map +1 -0
  240. package/dist/systems/elevator/elevator-opening-sync.test.js +146 -0
  241. package/dist/systems/elevator/elevator-opening-system.d.ts +2 -0
  242. package/dist/systems/elevator/elevator-opening-system.d.ts.map +1 -0
  243. package/dist/systems/elevator/elevator-opening-system.js +48 -0
  244. package/dist/systems/elevator/elevator-runtime-system.d.ts +2 -0
  245. package/dist/systems/elevator/elevator-runtime-system.d.ts.map +1 -0
  246. package/dist/systems/elevator/elevator-runtime-system.js +8 -0
  247. package/dist/systems/elevator/elevator-runtime.d.ts +18 -0
  248. package/dist/systems/elevator/elevator-runtime.d.ts.map +1 -0
  249. package/dist/systems/elevator/elevator-runtime.js +225 -0
  250. package/dist/systems/elevator/elevator-runtime.test.d.ts +2 -0
  251. package/dist/systems/elevator/elevator-runtime.test.d.ts.map +1 -0
  252. package/dist/systems/elevator/elevator-runtime.test.js +64 -0
  253. package/dist/systems/elevator/elevator-service.d.ts +19 -0
  254. package/dist/systems/elevator/elevator-service.d.ts.map +1 -0
  255. package/dist/systems/elevator/elevator-service.js +111 -0
  256. package/dist/systems/stair/stair-footprint.d.ts +44 -0
  257. package/dist/systems/stair/stair-footprint.d.ts.map +1 -0
  258. package/dist/systems/stair/stair-footprint.js +168 -0
  259. package/dist/systems/stair/stair-opening-preview.d.ts +1777 -0
  260. package/dist/systems/stair/stair-opening-preview.d.ts.map +1 -0
  261. package/dist/systems/stair/stair-opening-preview.js +93 -0
  262. package/dist/systems/stair/stair-opening-preview.test.d.ts +2 -0
  263. package/dist/systems/stair/stair-opening-preview.test.d.ts.map +1 -0
  264. package/dist/systems/stair/stair-opening-preview.test.js +80 -0
  265. package/dist/systems/stair/stair-opening-sync.d.ts.map +1 -1
  266. package/dist/systems/stair/stair-opening-sync.js +183 -185
  267. package/dist/systems/stair/stair-opening-sync.test.js +385 -4
  268. package/dist/systems/stair/stair-opening-system.d.ts +2 -0
  269. package/dist/systems/stair/stair-opening-system.d.ts.map +1 -0
  270. package/dist/systems/stair/stair-opening-system.js +104 -0
  271. package/dist/systems/wall/wall-curve.d.ts +1 -1
  272. package/dist/systems/wall/wall-curve.d.ts.map +1 -1
  273. package/dist/systems/wall/wall-curve.js +1 -1
  274. package/dist/systems/wall/wall-mitering.d.ts.map +1 -1
  275. package/dist/systems/wall/wall-mitering.js +2 -6
  276. package/dist/systems/wall/wall-move.d.ts +48 -0
  277. package/dist/systems/wall/wall-move.d.ts.map +1 -0
  278. package/dist/systems/wall/wall-move.js +193 -0
  279. package/dist/utils/clone-scene-graph.d.ts +6 -4
  280. package/dist/utils/clone-scene-graph.d.ts.map +1 -1
  281. package/dist/utils/clone-scene-graph.js +6 -4
  282. package/dist/utils/clone-scene-graph.test.d.ts +2 -0
  283. package/dist/utils/clone-scene-graph.test.d.ts.map +1 -0
  284. package/dist/utils/clone-scene-graph.test.js +59 -0
  285. package/dist/validation/validate-build-json.d.ts +43 -0
  286. package/dist/validation/validate-build-json.d.ts.map +1 -0
  287. package/dist/validation/validate-build-json.js +227 -0
  288. package/package.json +11 -3
  289. package/dist/materials.d.ts +0 -10
  290. package/dist/materials.d.ts.map +0 -1
  291. package/dist/materials.js +0 -22
  292. package/dist/systems/ceiling/ceiling-system.d.ts +0 -8
  293. package/dist/systems/ceiling/ceiling-system.d.ts.map +0 -1
  294. package/dist/systems/ceiling/ceiling-system.js +0 -92
  295. package/dist/systems/door/door-system.d.ts +0 -2
  296. package/dist/systems/door/door-system.d.ts.map +0 -1
  297. package/dist/systems/door/door-system.js +0 -195
  298. package/dist/systems/fence/fence-system.d.ts +0 -2
  299. package/dist/systems/fence/fence-system.d.ts.map +0 -1
  300. package/dist/systems/fence/fence-system.js +0 -187
  301. package/dist/systems/item/item-system.d.ts +0 -2
  302. package/dist/systems/item/item-system.d.ts.map +0 -1
  303. package/dist/systems/item/item-system.js +0 -48
  304. package/dist/systems/roof/roof-system.d.ts +0 -16
  305. package/dist/systems/roof/roof-system.d.ts.map +0 -1
  306. package/dist/systems/roof/roof-system.js +0 -797
  307. package/dist/systems/slab/slab-system.d.ts +0 -8
  308. package/dist/systems/slab/slab-system.d.ts.map +0 -1
  309. package/dist/systems/slab/slab-system.js +0 -214
  310. package/dist/systems/stair/stair-system.d.ts +0 -2
  311. package/dist/systems/stair/stair-system.d.ts.map +0 -1
  312. package/dist/systems/stair/stair-system.js +0 -776
  313. package/dist/systems/wall/wall-system.d.ts +0 -12
  314. package/dist/systems/wall/wall-system.d.ts.map +0 -1
  315. package/dist/systems/wall/wall-system.js +0 -455
  316. package/dist/systems/window/window-system.d.ts +0 -2
  317. package/dist/systems/window/window-system.d.ts.map +0 -1
  318. package/dist/systems/window/window-system.js +0 -131
@@ -21,122 +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
- src: z.ZodString;
81
- dimensions: z.ZodDefault<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
82
- attachTo: z.ZodOptional<z.ZodEnum<{
83
- wall: "wall";
84
- ceiling: "ceiling";
85
- "wall-side": "wall-side";
86
- }>>;
87
- tags: z.ZodOptional<z.ZodArray<z.ZodString>>;
88
- offset: z.ZodDefault<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
89
- rotation: z.ZodDefault<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
90
- scale: z.ZodDefault<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
91
- surface: z.ZodOptional<z.ZodObject<{
92
- height: z.ZodNumber;
93
- }, z.core.$strip>>;
94
- interactive: z.ZodOptional<z.ZodObject<{
95
- controls: z.ZodDefault<z.ZodArray<z.ZodDiscriminatedUnion<[z.ZodObject<{
96
- kind: z.ZodLiteral<"toggle">;
97
- label: z.ZodOptional<z.ZodString>;
98
- default: z.ZodOptional<z.ZodBoolean>;
99
- }, z.core.$strip>, z.ZodObject<{
100
- kind: z.ZodLiteral<"slider">;
101
- label: z.ZodString;
102
- min: z.ZodNumber;
103
- max: z.ZodNumber;
104
- step: z.ZodDefault<z.ZodNumber>;
105
- unit: z.ZodOptional<z.ZodString>;
106
- displayMode: z.ZodDefault<z.ZodEnum<{
107
- slider: "slider";
108
- stepper: "stepper";
109
- dial: "dial";
110
- }>>;
111
- default: z.ZodOptional<z.ZodNumber>;
112
- }, z.core.$strip>, z.ZodObject<{
113
- kind: z.ZodLiteral<"temperature">;
114
- label: z.ZodDefault<z.ZodString>;
115
- min: z.ZodDefault<z.ZodNumber>;
116
- max: z.ZodDefault<z.ZodNumber>;
117
- unit: z.ZodDefault<z.ZodEnum<{
118
- C: "C";
119
- F: "F";
120
- }>>;
121
- default: z.ZodOptional<z.ZodNumber>;
122
- }, z.core.$strip>], "kind">>>;
123
- effects: z.ZodDefault<z.ZodArray<z.ZodDiscriminatedUnion<[z.ZodObject<{
124
- kind: z.ZodLiteral<"animation">;
125
- clips: z.ZodObject<{
126
- on: z.ZodOptional<z.ZodString>;
127
- off: z.ZodOptional<z.ZodString>;
128
- loop: z.ZodOptional<z.ZodString>;
129
- }, z.core.$strip>;
130
- }, z.core.$strip>, z.ZodObject<{
131
- kind: z.ZodLiteral<"light">;
132
- color: z.ZodDefault<z.ZodString>;
133
- intensityRange: z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>;
134
- distance: z.ZodOptional<z.ZodNumber>;
135
- offset: z.ZodDefault<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
136
- }, z.core.$strip>], "kind">>>;
137
- }, z.core.$strip>>;
138
- }, z.core.$strip>;
139
- }, z.core.$strip>], "type">>>;
24
+ children: z.ZodDefault<z.ZodArray<z.ZodString>>;
140
25
  }, z.core.$strip>, z.ZodObject<{
141
26
  object: z.ZodDefault<z.ZodLiteral<"node">>;
142
27
  name: z.ZodOptional<z.ZodString>;
@@ -155,9 +40,93 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
155
40
  metadata: z.ZodDefault<z.ZodOptional<z.ZodJSONSchema>>;
156
41
  id: z.ZodDefault<z.ZodTemplateLiteral<`building_${string}`>>;
157
42
  type: z.ZodDefault<z.ZodLiteral<"building">>;
158
- 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}`>>]>>>;
159
44
  position: z.ZodDefault<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
160
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.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
+ position: z.ZodDefault<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
98
+ rotation: z.ZodDefault<z.ZodNumber>;
99
+ width: z.ZodDefault<z.ZodNumber>;
100
+ depth: z.ZodDefault<z.ZodNumber>;
101
+ shaftWidth: z.ZodOptional<z.ZodNumber>;
102
+ shaftDepth: z.ZodOptional<z.ZodNumber>;
103
+ shaftWallThickness: z.ZodDefault<z.ZodNumber>;
104
+ shaftStyle: z.ZodDefault<z.ZodEnum<{
105
+ glass: "glass";
106
+ solid: "solid";
107
+ }>>;
108
+ cabHeight: z.ZodDefault<z.ZodNumber>;
109
+ doorWidth: z.ZodDefault<z.ZodNumber>;
110
+ doorHeight: z.ZodDefault<z.ZodNumber>;
111
+ doorStyle: z.ZodDefault<z.ZodEnum<{
112
+ "center-opening": "center-opening";
113
+ "single-left": "single-left";
114
+ "single-right": "single-right";
115
+ }>>;
116
+ doorPanelStyle: z.ZodDefault<z.ZodEnum<{
117
+ "glass-frame": "glass-frame";
118
+ "solid-panel": "solid-panel";
119
+ "segmented-panel": "segmented-panel";
120
+ }>>;
121
+ fromLevelId: z.ZodDefault<z.ZodNullable<z.ZodString>>;
122
+ toLevelId: z.ZodDefault<z.ZodNullable<z.ZodString>>;
123
+ servedLevelIds: z.ZodOptional<z.ZodArray<z.ZodString>>;
124
+ disabledLevelIds: z.ZodDefault<z.ZodArray<z.ZodString>>;
125
+ serviceOnlyLevelIds: z.ZodDefault<z.ZodArray<z.ZodString>>;
126
+ defaultLevelId: z.ZodDefault<z.ZodNullable<z.ZodString>>;
127
+ speed: z.ZodDefault<z.ZodNumber>;
128
+ doorDurationMs: z.ZodDefault<z.ZodNumber>;
129
+ dwellMs: z.ZodDefault<z.ZodNumber>;
161
130
  }, z.core.$strip>, z.ZodObject<{
162
131
  object: z.ZodDefault<z.ZodLiteral<"node">>;
163
132
  name: z.ZodOptional<z.ZodString>;
@@ -176,7 +145,7 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
176
145
  metadata: z.ZodDefault<z.ZodOptional<z.ZodJSONSchema>>;
177
146
  id: z.ZodDefault<z.ZodTemplateLiteral<`level_${string}`>>;
178
147
  type: z.ZodDefault<z.ZodLiteral<"level">>;
179
- children: z.ZodDefault<z.ZodArray<z.ZodUnion<readonly [z.ZodDefault<z.ZodTemplateLiteral<`wall_${string}`>>, z.ZodDefault<z.ZodTemplateLiteral<`fence_${string}`>>, z.ZodDefault<z.ZodTemplateLiteral<`column_${string}`>>, z.ZodDefault<z.ZodTemplateLiteral<`item_${string}`>>, z.ZodDefault<z.ZodTemplateLiteral<`zone_${string}`>>, z.ZodDefault<z.ZodTemplateLiteral<`slab_${string}`>>, z.ZodDefault<z.ZodTemplateLiteral<`ceiling_${string}`>>, z.ZodDefault<z.ZodTemplateLiteral<`roof_${string}`>>, z.ZodDefault<z.ZodTemplateLiteral<`stair_${string}`>>, z.ZodDefault<z.ZodTemplateLiteral<`scan_${string}`>>, z.ZodDefault<z.ZodTemplateLiteral<`guide_${string}`>>, z.ZodDefault<z.ZodTemplateLiteral<`spawn_${string}`>>]>>>;
148
+ children: z.ZodDefault<z.ZodArray<z.ZodUnion<readonly [z.ZodDefault<z.ZodTemplateLiteral<`wall_${string}`>>, z.ZodDefault<z.ZodTemplateLiteral<`fence_${string}`>>, z.ZodDefault<z.ZodTemplateLiteral<`column_${string}`>>, z.ZodDefault<z.ZodTemplateLiteral<`item_${string}`>>, z.ZodDefault<z.ZodTemplateLiteral<`zone_${string}`>>, z.ZodDefault<z.ZodTemplateLiteral<`slab_${string}`>>, z.ZodDefault<z.ZodTemplateLiteral<`ceiling_${string}`>>, z.ZodDefault<z.ZodTemplateLiteral<`roof_${string}`>>, z.ZodDefault<z.ZodTemplateLiteral<`stair_${string}`>>, z.ZodDefault<z.ZodTemplateLiteral<`scan_${string}`>>, z.ZodDefault<z.ZodTemplateLiteral<`guide_${string}`>>, z.ZodDefault<z.ZodTemplateLiteral<`spawn_${string}`>>, z.ZodDefault<z.ZodTemplateLiteral<`shelf_${string}`>>]>>>;
180
149
  level: z.ZodDefault<z.ZodNumber>;
181
150
  }, z.core.$strip>, z.ZodObject<{
182
151
  object: z.ZodDefault<z.ZodLiteral<"node">>;
@@ -329,9 +298,28 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
329
298
  lowerBandCarvingLevel: z.ZodDefault<z.ZodNumber>;
330
299
  dentilCount: z.ZodDefault<z.ZodNumber>;
331
300
  beadCount: z.ZodDefault<z.ZodNumber>;
301
+ supportStyle: z.ZodDefault<z.ZodEnum<{
302
+ vertical: "vertical";
303
+ "a-frame": "a-frame";
304
+ "y-frame": "y-frame";
305
+ "v-frame": "v-frame";
306
+ "x-brace": "x-brace";
307
+ "k-brace": "k-brace";
308
+ "single-strut": "single-strut";
309
+ tripod: "tripod";
310
+ trestle: "trestle";
311
+ "portal-frame": "portal-frame";
312
+ "box-frame": "box-frame";
313
+ }>>;
314
+ braceWidth: z.ZodDefault<z.ZodNumber>;
315
+ braceDepth: z.ZodDefault<z.ZodNumber>;
316
+ braceBottomSpread: z.ZodDefault<z.ZodNumber>;
317
+ braceTopSpread: z.ZodDefault<z.ZodNumber>;
318
+ bracePlateEnabled: z.ZodDefault<z.ZodBoolean>;
332
319
  material: z.ZodOptional<z.ZodObject<{
333
320
  id: z.ZodOptional<z.ZodString>;
334
321
  preset: z.ZodOptional<z.ZodEnum<{
322
+ custom: "custom";
335
323
  white: "white";
336
324
  brick: "brick";
337
325
  concrete: "concrete";
@@ -341,7 +329,6 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
341
329
  plaster: "plaster";
342
330
  tile: "tile";
343
331
  marble: "marble";
344
- custom: "custom";
345
332
  }>>;
346
333
  properties: z.ZodOptional<z.ZodObject<{
347
334
  color: z.ZodDefault<z.ZodString>;
@@ -384,6 +371,7 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
384
371
  material: z.ZodOptional<z.ZodObject<{
385
372
  id: z.ZodOptional<z.ZodString>;
386
373
  preset: z.ZodOptional<z.ZodEnum<{
374
+ custom: "custom";
387
375
  white: "white";
388
376
  brick: "brick";
389
377
  concrete: "concrete";
@@ -393,7 +381,6 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
393
381
  plaster: "plaster";
394
382
  tile: "tile";
395
383
  marble: "marble";
396
- custom: "custom";
397
384
  }>>;
398
385
  properties: z.ZodOptional<z.ZodObject<{
399
386
  color: z.ZodDefault<z.ZodString>;
@@ -417,6 +404,7 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
417
404
  interiorMaterial: z.ZodOptional<z.ZodObject<{
418
405
  id: z.ZodOptional<z.ZodString>;
419
406
  preset: z.ZodOptional<z.ZodEnum<{
407
+ custom: "custom";
420
408
  white: "white";
421
409
  brick: "brick";
422
410
  concrete: "concrete";
@@ -426,7 +414,6 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
426
414
  plaster: "plaster";
427
415
  tile: "tile";
428
416
  marble: "marble";
429
- custom: "custom";
430
417
  }>>;
431
418
  properties: z.ZodOptional<z.ZodObject<{
432
419
  color: z.ZodDefault<z.ZodString>;
@@ -450,6 +437,7 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
450
437
  exteriorMaterial: z.ZodOptional<z.ZodObject<{
451
438
  id: z.ZodOptional<z.ZodString>;
452
439
  preset: z.ZodOptional<z.ZodEnum<{
440
+ custom: "custom";
453
441
  white: "white";
454
442
  brick: "brick";
455
443
  concrete: "concrete";
@@ -459,7 +447,6 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
459
447
  plaster: "plaster";
460
448
  tile: "tile";
461
449
  marble: "marble";
462
- custom: "custom";
463
450
  }>>;
464
451
  properties: z.ZodOptional<z.ZodObject<{
465
452
  color: z.ZodDefault<z.ZodString>;
@@ -516,6 +503,7 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
516
503
  material: z.ZodOptional<z.ZodObject<{
517
504
  id: z.ZodOptional<z.ZodString>;
518
505
  preset: z.ZodOptional<z.ZodEnum<{
506
+ custom: "custom";
519
507
  white: "white";
520
508
  brick: "brick";
521
509
  concrete: "concrete";
@@ -525,7 +513,6 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
525
513
  plaster: "plaster";
526
514
  tile: "tile";
527
515
  marble: "marble";
528
- custom: "custom";
529
516
  }>>;
530
517
  properties: z.ZodOptional<z.ZodObject<{
531
518
  color: z.ZodDefault<z.ZodString>;
@@ -548,9 +535,9 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
548
535
  materialPreset: z.ZodOptional<z.ZodString>;
549
536
  start: z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>;
550
537
  end: z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>;
551
- curveOffset: z.ZodOptional<z.ZodNumber>;
552
538
  height: z.ZodDefault<z.ZodNumber>;
553
539
  thickness: z.ZodDefault<z.ZodNumber>;
540
+ curveOffset: z.ZodOptional<z.ZodNumber>;
554
541
  baseHeight: z.ZodDefault<z.ZodNumber>;
555
542
  postSpacing: z.ZodDefault<z.ZodNumber>;
556
543
  postSize: z.ZodDefault<z.ZodNumber>;
@@ -561,6 +548,7 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
561
548
  floating: "floating";
562
549
  grounded: "grounded";
563
550
  }>>;
551
+ showInfill: z.ZodDefault<z.ZodBoolean>;
564
552
  color: z.ZodDefault<z.ZodString>;
565
553
  style: z.ZodDefault<z.ZodEnum<{
566
554
  slat: "slat";
@@ -602,6 +590,12 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
602
590
  name: z.ZodString;
603
591
  thumbnail: z.ZodString;
604
592
  floorPlanUrl: z.ZodOptional<z.ZodString>;
593
+ source: z.ZodDefault<z.ZodEnum<{
594
+ library: "library";
595
+ community: "community";
596
+ mine: "mine";
597
+ }>>;
598
+ isDraft: z.ZodOptional<z.ZodBoolean>;
605
599
  src: z.ZodString;
606
600
  dimensions: z.ZodDefault<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
607
601
  attachTo: z.ZodOptional<z.ZodEnum<{
@@ -609,7 +603,9 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
609
603
  ceiling: "ceiling";
610
604
  "wall-side": "wall-side";
611
605
  }>>;
606
+ recessed: z.ZodOptional<z.ZodBoolean>;
612
607
  tags: z.ZodOptional<z.ZodArray<z.ZodString>>;
608
+ functionTags: z.ZodOptional<z.ZodArray<z.ZodString>>;
613
609
  offset: z.ZodDefault<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
614
610
  rotation: z.ZodDefault<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
615
611
  scale: z.ZodDefault<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
@@ -702,6 +698,7 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
702
698
  material: z.ZodOptional<z.ZodObject<{
703
699
  id: z.ZodOptional<z.ZodString>;
704
700
  preset: z.ZodOptional<z.ZodEnum<{
701
+ custom: "custom";
705
702
  white: "white";
706
703
  brick: "brick";
707
704
  concrete: "concrete";
@@ -711,7 +708,6 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
711
708
  plaster: "plaster";
712
709
  tile: "tile";
713
710
  marble: "marble";
714
- custom: "custom";
715
711
  }>>;
716
712
  properties: z.ZodOptional<z.ZodObject<{
717
713
  color: z.ZodDefault<z.ZodString>;
@@ -737,9 +733,11 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
737
733
  holeMetadata: z.ZodDefault<z.ZodArray<z.ZodObject<{
738
734
  source: z.ZodDefault<z.ZodEnum<{
739
735
  stair: "stair";
736
+ elevator: "elevator";
740
737
  manual: "manual";
741
738
  }>>;
742
739
  stairId: z.ZodOptional<z.ZodString>;
740
+ elevatorId: z.ZodOptional<z.ZodString>;
743
741
  }, z.core.$strip>>>;
744
742
  elevation: z.ZodDefault<z.ZodNumber>;
745
743
  autoFromWalls: z.ZodDefault<z.ZodBoolean>;
@@ -765,6 +763,7 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
765
763
  material: z.ZodOptional<z.ZodObject<{
766
764
  id: z.ZodOptional<z.ZodString>;
767
765
  preset: z.ZodOptional<z.ZodEnum<{
766
+ custom: "custom";
768
767
  white: "white";
769
768
  brick: "brick";
770
769
  concrete: "concrete";
@@ -774,7 +773,6 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
774
773
  plaster: "plaster";
775
774
  tile: "tile";
776
775
  marble: "marble";
777
- custom: "custom";
778
776
  }>>;
779
777
  properties: z.ZodOptional<z.ZodObject<{
780
778
  color: z.ZodDefault<z.ZodString>;
@@ -800,9 +798,11 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
800
798
  holeMetadata: z.ZodDefault<z.ZodArray<z.ZodObject<{
801
799
  source: z.ZodDefault<z.ZodEnum<{
802
800
  stair: "stair";
801
+ elevator: "elevator";
803
802
  manual: "manual";
804
803
  }>>;
805
804
  stairId: z.ZodOptional<z.ZodString>;
805
+ elevatorId: z.ZodOptional<z.ZodString>;
806
806
  }, z.core.$strip>>>;
807
807
  height: z.ZodDefault<z.ZodNumber>;
808
808
  autoFromWalls: z.ZodDefault<z.ZodBoolean>;
@@ -827,6 +827,7 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
827
827
  material: z.ZodOptional<z.ZodObject<{
828
828
  id: z.ZodOptional<z.ZodString>;
829
829
  preset: z.ZodOptional<z.ZodEnum<{
830
+ custom: "custom";
830
831
  white: "white";
831
832
  brick: "brick";
832
833
  concrete: "concrete";
@@ -836,7 +837,6 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
836
837
  plaster: "plaster";
837
838
  tile: "tile";
838
839
  marble: "marble";
839
- custom: "custom";
840
840
  }>>;
841
841
  properties: z.ZodOptional<z.ZodObject<{
842
842
  color: z.ZodDefault<z.ZodString>;
@@ -860,6 +860,7 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
860
860
  topMaterial: z.ZodOptional<z.ZodObject<{
861
861
  id: z.ZodOptional<z.ZodString>;
862
862
  preset: z.ZodOptional<z.ZodEnum<{
863
+ custom: "custom";
863
864
  white: "white";
864
865
  brick: "brick";
865
866
  concrete: "concrete";
@@ -869,7 +870,6 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
869
870
  plaster: "plaster";
870
871
  tile: "tile";
871
872
  marble: "marble";
872
- custom: "custom";
873
873
  }>>;
874
874
  properties: z.ZodOptional<z.ZodObject<{
875
875
  color: z.ZodDefault<z.ZodString>;
@@ -893,6 +893,7 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
893
893
  edgeMaterial: z.ZodOptional<z.ZodObject<{
894
894
  id: z.ZodOptional<z.ZodString>;
895
895
  preset: z.ZodOptional<z.ZodEnum<{
896
+ custom: "custom";
896
897
  white: "white";
897
898
  brick: "brick";
898
899
  concrete: "concrete";
@@ -902,7 +903,6 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
902
903
  plaster: "plaster";
903
904
  tile: "tile";
904
905
  marble: "marble";
905
- custom: "custom";
906
906
  }>>;
907
907
  properties: z.ZodOptional<z.ZodObject<{
908
908
  color: z.ZodDefault<z.ZodString>;
@@ -926,6 +926,7 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
926
926
  wallMaterial: z.ZodOptional<z.ZodObject<{
927
927
  id: z.ZodOptional<z.ZodString>;
928
928
  preset: z.ZodOptional<z.ZodEnum<{
929
+ custom: "custom";
929
930
  white: "white";
930
931
  brick: "brick";
931
932
  concrete: "concrete";
@@ -935,7 +936,6 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
935
936
  plaster: "plaster";
936
937
  tile: "tile";
937
938
  marble: "marble";
938
- custom: "custom";
939
939
  }>>;
940
940
  properties: z.ZodOptional<z.ZodObject<{
941
941
  color: z.ZodDefault<z.ZodString>;
@@ -980,6 +980,7 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
980
980
  material: z.ZodOptional<z.ZodObject<{
981
981
  id: z.ZodOptional<z.ZodString>;
982
982
  preset: z.ZodOptional<z.ZodEnum<{
983
+ custom: "custom";
983
984
  white: "white";
984
985
  brick: "brick";
985
986
  concrete: "concrete";
@@ -989,7 +990,6 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
989
990
  plaster: "plaster";
990
991
  tile: "tile";
991
992
  marble: "marble";
992
- custom: "custom";
993
993
  }>>;
994
994
  properties: z.ZodOptional<z.ZodObject<{
995
995
  color: z.ZodDefault<z.ZodString>;
@@ -1010,46 +1010,10 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
1010
1010
  }, z.core.$strip>>;
1011
1011
  }, z.core.$strip>>;
1012
1012
  materialPreset: z.ZodOptional<z.ZodString>;
1013
- position: z.ZodDefault<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
1014
- rotation: z.ZodDefault<z.ZodNumber>;
1015
- roofType: z.ZodDefault<z.ZodEnum<{
1016
- hip: "hip";
1017
- gable: "gable";
1018
- shed: "shed";
1019
- gambrel: "gambrel";
1020
- dutch: "dutch";
1021
- mansard: "mansard";
1022
- flat: "flat";
1023
- }>>;
1024
- width: z.ZodDefault<z.ZodNumber>;
1025
- depth: z.ZodDefault<z.ZodNumber>;
1026
- wallHeight: z.ZodDefault<z.ZodNumber>;
1027
- roofHeight: z.ZodDefault<z.ZodNumber>;
1028
- wallThickness: z.ZodDefault<z.ZodNumber>;
1029
- deckThickness: z.ZodDefault<z.ZodNumber>;
1030
- overhang: z.ZodDefault<z.ZodNumber>;
1031
- shingleThickness: z.ZodDefault<z.ZodNumber>;
1032
- }, z.core.$strip>, z.ZodObject<{
1033
- object: z.ZodDefault<z.ZodLiteral<"node">>;
1034
- name: z.ZodOptional<z.ZodString>;
1035
- parentId: z.ZodDefault<z.ZodNullable<z.ZodString>>;
1036
- visible: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
1037
- camera: z.ZodOptional<z.ZodObject<{
1038
- position: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
1039
- target: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
1040
- mode: z.ZodDefault<z.ZodEnum<{
1041
- perspective: "perspective";
1042
- orthographic: "orthographic";
1043
- }>>;
1044
- fov: z.ZodOptional<z.ZodNumber>;
1045
- zoom: z.ZodOptional<z.ZodNumber>;
1046
- }, z.core.$strip>>;
1047
- metadata: z.ZodDefault<z.ZodOptional<z.ZodJSONSchema>>;
1048
- id: z.ZodDefault<z.ZodTemplateLiteral<`stair_${string}`>>;
1049
- type: z.ZodDefault<z.ZodLiteral<"stair">>;
1050
- material: z.ZodOptional<z.ZodObject<{
1013
+ topMaterial: z.ZodOptional<z.ZodObject<{
1051
1014
  id: z.ZodOptional<z.ZodString>;
1052
1015
  preset: z.ZodOptional<z.ZodEnum<{
1016
+ custom: "custom";
1053
1017
  white: "white";
1054
1018
  brick: "brick";
1055
1019
  concrete: "concrete";
@@ -1059,7 +1023,6 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
1059
1023
  plaster: "plaster";
1060
1024
  tile: "tile";
1061
1025
  marble: "marble";
1062
- custom: "custom";
1063
1026
  }>>;
1064
1027
  properties: z.ZodOptional<z.ZodObject<{
1065
1028
  color: z.ZodDefault<z.ZodString>;
@@ -1079,10 +1042,11 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
1079
1042
  scale: z.ZodOptional<z.ZodNumber>;
1080
1043
  }, z.core.$strip>>;
1081
1044
  }, z.core.$strip>>;
1082
- materialPreset: z.ZodOptional<z.ZodString>;
1083
- railingMaterial: z.ZodOptional<z.ZodObject<{
1045
+ topMaterialPreset: z.ZodOptional<z.ZodString>;
1046
+ edgeMaterial: z.ZodOptional<z.ZodObject<{
1084
1047
  id: z.ZodOptional<z.ZodString>;
1085
1048
  preset: z.ZodOptional<z.ZodEnum<{
1049
+ custom: "custom";
1086
1050
  white: "white";
1087
1051
  brick: "brick";
1088
1052
  concrete: "concrete";
@@ -1092,7 +1056,6 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
1092
1056
  plaster: "plaster";
1093
1057
  tile: "tile";
1094
1058
  marble: "marble";
1095
- custom: "custom";
1096
1059
  }>>;
1097
1060
  properties: z.ZodOptional<z.ZodObject<{
1098
1061
  color: z.ZodDefault<z.ZodString>;
@@ -1112,10 +1075,11 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
1112
1075
  scale: z.ZodOptional<z.ZodNumber>;
1113
1076
  }, z.core.$strip>>;
1114
1077
  }, z.core.$strip>>;
1115
- railingMaterialPreset: z.ZodOptional<z.ZodString>;
1116
- treadMaterial: z.ZodOptional<z.ZodObject<{
1078
+ edgeMaterialPreset: z.ZodOptional<z.ZodString>;
1079
+ wallMaterial: z.ZodOptional<z.ZodObject<{
1117
1080
  id: z.ZodOptional<z.ZodString>;
1118
1081
  preset: z.ZodOptional<z.ZodEnum<{
1082
+ custom: "custom";
1119
1083
  white: "white";
1120
1084
  brick: "brick";
1121
1085
  concrete: "concrete";
@@ -1125,7 +1089,6 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
1125
1089
  plaster: "plaster";
1126
1090
  tile: "tile";
1127
1091
  marble: "marble";
1128
- custom: "custom";
1129
1092
  }>>;
1130
1093
  properties: z.ZodOptional<z.ZodObject<{
1131
1094
  color: z.ZodDefault<z.ZodString>;
@@ -1145,10 +1108,78 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
1145
1108
  scale: z.ZodOptional<z.ZodNumber>;
1146
1109
  }, z.core.$strip>>;
1147
1110
  }, z.core.$strip>>;
1148
- treadMaterialPreset: z.ZodOptional<z.ZodString>;
1149
- sideMaterial: z.ZodOptional<z.ZodObject<{
1111
+ wallMaterialPreset: z.ZodOptional<z.ZodString>;
1112
+ position: z.ZodDefault<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
1113
+ rotation: z.ZodDefault<z.ZodNumber>;
1114
+ roofType: z.ZodDefault<z.ZodEnum<{
1115
+ flat: "flat";
1116
+ hip: "hip";
1117
+ gable: "gable";
1118
+ shed: "shed";
1119
+ gambrel: "gambrel";
1120
+ dutch: "dutch";
1121
+ mansard: "mansard";
1122
+ }>>;
1123
+ width: z.ZodDefault<z.ZodNumber>;
1124
+ depth: z.ZodDefault<z.ZodNumber>;
1125
+ wallHeight: z.ZodDefault<z.ZodNumber>;
1126
+ pitch: z.ZodDefault<z.ZodNumber>;
1127
+ wallThickness: z.ZodDefault<z.ZodNumber>;
1128
+ deckThickness: z.ZodDefault<z.ZodNumber>;
1129
+ overhang: z.ZodDefault<z.ZodNumber>;
1130
+ shingleThickness: z.ZodDefault<z.ZodNumber>;
1131
+ gambrelLowerWidthRatio: z.ZodDefault<z.ZodNumber>;
1132
+ gambrelLowerHeightRatio: z.ZodDefault<z.ZodNumber>;
1133
+ mansardSteepWidthRatio: z.ZodDefault<z.ZodNumber>;
1134
+ mansardSteepHeightRatio: z.ZodDefault<z.ZodNumber>;
1135
+ dutchHipWidthRatio: z.ZodDefault<z.ZodNumber>;
1136
+ dutchHipHeightRatio: z.ZodDefault<z.ZodNumber>;
1137
+ children: z.ZodDefault<z.ZodArray<z.ZodString>>;
1138
+ }, z.core.$strip>, z.ZodObject<{
1139
+ object: z.ZodDefault<z.ZodLiteral<"node">>;
1140
+ name: z.ZodOptional<z.ZodString>;
1141
+ parentId: z.ZodDefault<z.ZodNullable<z.ZodString>>;
1142
+ visible: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
1143
+ camera: z.ZodOptional<z.ZodObject<{
1144
+ position: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
1145
+ target: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
1146
+ mode: z.ZodDefault<z.ZodEnum<{
1147
+ perspective: "perspective";
1148
+ orthographic: "orthographic";
1149
+ }>>;
1150
+ fov: z.ZodOptional<z.ZodNumber>;
1151
+ zoom: z.ZodOptional<z.ZodNumber>;
1152
+ }, z.core.$strip>>;
1153
+ metadata: z.ZodDefault<z.ZodOptional<z.ZodJSONSchema>>;
1154
+ id: z.ZodDefault<z.ZodTemplateLiteral<`shelf_${string}`>>;
1155
+ type: z.ZodDefault<z.ZodLiteral<"shelf">>;
1156
+ children: z.ZodDefault<z.ZodArray<z.ZodDefault<z.ZodTemplateLiteral<`item_${string}`>>>>;
1157
+ position: z.ZodDefault<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
1158
+ rotation: z.ZodDefault<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
1159
+ width: z.ZodDefault<z.ZodNumber>;
1160
+ depth: z.ZodDefault<z.ZodNumber>;
1161
+ thickness: z.ZodDefault<z.ZodNumber>;
1162
+ height: z.ZodDefault<z.ZodNumber>;
1163
+ style: z.ZodDefault<z.ZodEnum<{
1164
+ "wall-shelf": "wall-shelf";
1165
+ bookshelf: "bookshelf";
1166
+ "open-rack": "open-rack";
1167
+ cubby: "cubby";
1168
+ }>>;
1169
+ rows: z.ZodDefault<z.ZodNumber>;
1170
+ columns: z.ZodDefault<z.ZodNumber>;
1171
+ withBack: z.ZodDefault<z.ZodBoolean>;
1172
+ withSides: z.ZodDefault<z.ZodBoolean>;
1173
+ withBottom: z.ZodDefault<z.ZodBoolean>;
1174
+ bracketStyle: z.ZodDefault<z.ZodEnum<{
1175
+ minimal: "minimal";
1176
+ industrial: "industrial";
1177
+ hidden: "hidden";
1178
+ }>>;
1179
+ material: z.ZodOptional<z.ZodObject<{
1150
1180
  id: z.ZodOptional<z.ZodString>;
1151
1181
  preset: z.ZodOptional<z.ZodEnum<{
1182
+ custom: "custom";
1152
1183
  white: "white";
1153
1184
  brick: "brick";
1154
1185
  concrete: "concrete";
@@ -1158,7 +1189,6 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
1158
1189
  plaster: "plaster";
1159
1190
  tile: "tile";
1160
1191
  marble: "marble";
1161
- custom: "custom";
1162
1192
  }>>;
1163
1193
  properties: z.ZodOptional<z.ZodObject<{
1164
1194
  color: z.ZodDefault<z.ZodString>;
@@ -1178,43 +1208,7 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
1178
1208
  scale: z.ZodOptional<z.ZodNumber>;
1179
1209
  }, z.core.$strip>>;
1180
1210
  }, z.core.$strip>>;
1181
- sideMaterialPreset: z.ZodOptional<z.ZodString>;
1182
- position: z.ZodDefault<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
1183
- rotation: z.ZodDefault<z.ZodNumber>;
1184
- stairType: z.ZodDefault<z.ZodEnum<{
1185
- straight: "straight";
1186
- spiral: "spiral";
1187
- curved: "curved";
1188
- }>>;
1189
- fromLevelId: z.ZodDefault<z.ZodNullable<z.ZodString>>;
1190
- toLevelId: z.ZodDefault<z.ZodNullable<z.ZodString>>;
1191
- slabOpeningMode: z.ZodDefault<z.ZodEnum<{
1192
- none: "none";
1193
- destination: "destination";
1194
- }>>;
1195
- openingOffset: z.ZodDefault<z.ZodNumber>;
1196
- width: z.ZodDefault<z.ZodNumber>;
1197
- totalRise: z.ZodDefault<z.ZodNumber>;
1198
- stepCount: z.ZodDefault<z.ZodNumber>;
1199
- thickness: z.ZodDefault<z.ZodNumber>;
1200
- fillToFloor: z.ZodDefault<z.ZodBoolean>;
1201
- innerRadius: z.ZodDefault<z.ZodNumber>;
1202
- sweepAngle: z.ZodDefault<z.ZodNumber>;
1203
- topLandingMode: z.ZodDefault<z.ZodEnum<{
1204
- none: "none";
1205
- integrated: "integrated";
1206
- }>>;
1207
- topLandingDepth: z.ZodDefault<z.ZodNumber>;
1208
- showCenterColumn: z.ZodDefault<z.ZodBoolean>;
1209
- showStepSupports: z.ZodDefault<z.ZodBoolean>;
1210
- railingMode: z.ZodDefault<z.ZodEnum<{
1211
- none: "none";
1212
- left: "left";
1213
- right: "right";
1214
- both: "both";
1215
- }>>;
1216
- railingHeight: z.ZodDefault<z.ZodNumber>;
1217
- children: z.ZodDefault<z.ZodArray<z.ZodDefault<z.ZodTemplateLiteral<`sseg_${string}`>>>>;
1211
+ materialPreset: z.ZodOptional<z.ZodString>;
1218
1212
  }, z.core.$strip>, z.ZodObject<{
1219
1213
  object: z.ZodDefault<z.ZodLiteral<"node">>;
1220
1214
  name: z.ZodOptional<z.ZodString>;
@@ -1231,11 +1225,12 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
1231
1225
  zoom: z.ZodOptional<z.ZodNumber>;
1232
1226
  }, z.core.$strip>>;
1233
1227
  metadata: z.ZodDefault<z.ZodOptional<z.ZodJSONSchema>>;
1234
- id: z.ZodDefault<z.ZodTemplateLiteral<`sseg_${string}`>>;
1235
- type: z.ZodDefault<z.ZodLiteral<"stair-segment">>;
1228
+ id: z.ZodDefault<z.ZodTemplateLiteral<`stair_${string}`>>;
1229
+ type: z.ZodDefault<z.ZodLiteral<"stair">>;
1236
1230
  material: z.ZodOptional<z.ZodObject<{
1237
1231
  id: z.ZodOptional<z.ZodString>;
1238
1232
  preset: z.ZodOptional<z.ZodEnum<{
1233
+ custom: "custom";
1239
1234
  white: "white";
1240
1235
  brick: "brick";
1241
1236
  concrete: "concrete";
@@ -1245,7 +1240,6 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
1245
1240
  plaster: "plaster";
1246
1241
  tile: "tile";
1247
1242
  marble: "marble";
1248
- custom: "custom";
1249
1243
  }>>;
1250
1244
  properties: z.ZodOptional<z.ZodObject<{
1251
1245
  color: z.ZodDefault<z.ZodString>;
@@ -1266,21 +1260,207 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
1266
1260
  }, z.core.$strip>>;
1267
1261
  }, z.core.$strip>>;
1268
1262
  materialPreset: z.ZodOptional<z.ZodString>;
1269
- position: z.ZodDefault<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
1270
- rotation: z.ZodDefault<z.ZodNumber>;
1271
- segmentType: z.ZodDefault<z.ZodEnum<{
1272
- stair: "stair";
1273
- landing: "landing";
1274
- }>>;
1275
- width: z.ZodDefault<z.ZodNumber>;
1276
- length: z.ZodDefault<z.ZodNumber>;
1277
- height: z.ZodDefault<z.ZodNumber>;
1278
- stepCount: z.ZodDefault<z.ZodNumber>;
1279
- attachmentSide: z.ZodDefault<z.ZodEnum<{
1280
- front: "front";
1281
- left: "left";
1282
- right: "right";
1283
- }>>;
1263
+ railingMaterial: z.ZodOptional<z.ZodObject<{
1264
+ id: z.ZodOptional<z.ZodString>;
1265
+ preset: z.ZodOptional<z.ZodEnum<{
1266
+ custom: "custom";
1267
+ white: "white";
1268
+ brick: "brick";
1269
+ concrete: "concrete";
1270
+ wood: "wood";
1271
+ glass: "glass";
1272
+ metal: "metal";
1273
+ plaster: "plaster";
1274
+ tile: "tile";
1275
+ marble: "marble";
1276
+ }>>;
1277
+ properties: z.ZodOptional<z.ZodObject<{
1278
+ color: z.ZodDefault<z.ZodString>;
1279
+ roughness: z.ZodDefault<z.ZodNumber>;
1280
+ metalness: z.ZodDefault<z.ZodNumber>;
1281
+ opacity: z.ZodDefault<z.ZodNumber>;
1282
+ transparent: z.ZodDefault<z.ZodBoolean>;
1283
+ side: z.ZodDefault<z.ZodEnum<{
1284
+ front: "front";
1285
+ back: "back";
1286
+ double: "double";
1287
+ }>>;
1288
+ }, z.core.$strip>>;
1289
+ texture: z.ZodOptional<z.ZodObject<{
1290
+ url: z.ZodString;
1291
+ repeat: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>>;
1292
+ scale: z.ZodOptional<z.ZodNumber>;
1293
+ }, z.core.$strip>>;
1294
+ }, z.core.$strip>>;
1295
+ railingMaterialPreset: z.ZodOptional<z.ZodString>;
1296
+ treadMaterial: z.ZodOptional<z.ZodObject<{
1297
+ id: z.ZodOptional<z.ZodString>;
1298
+ preset: z.ZodOptional<z.ZodEnum<{
1299
+ custom: "custom";
1300
+ white: "white";
1301
+ brick: "brick";
1302
+ concrete: "concrete";
1303
+ wood: "wood";
1304
+ glass: "glass";
1305
+ metal: "metal";
1306
+ plaster: "plaster";
1307
+ tile: "tile";
1308
+ marble: "marble";
1309
+ }>>;
1310
+ properties: z.ZodOptional<z.ZodObject<{
1311
+ color: z.ZodDefault<z.ZodString>;
1312
+ roughness: z.ZodDefault<z.ZodNumber>;
1313
+ metalness: z.ZodDefault<z.ZodNumber>;
1314
+ opacity: z.ZodDefault<z.ZodNumber>;
1315
+ transparent: z.ZodDefault<z.ZodBoolean>;
1316
+ side: z.ZodDefault<z.ZodEnum<{
1317
+ front: "front";
1318
+ back: "back";
1319
+ double: "double";
1320
+ }>>;
1321
+ }, z.core.$strip>>;
1322
+ texture: z.ZodOptional<z.ZodObject<{
1323
+ url: z.ZodString;
1324
+ repeat: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>>;
1325
+ scale: z.ZodOptional<z.ZodNumber>;
1326
+ }, z.core.$strip>>;
1327
+ }, z.core.$strip>>;
1328
+ treadMaterialPreset: z.ZodOptional<z.ZodString>;
1329
+ sideMaterial: z.ZodOptional<z.ZodObject<{
1330
+ id: z.ZodOptional<z.ZodString>;
1331
+ preset: z.ZodOptional<z.ZodEnum<{
1332
+ custom: "custom";
1333
+ white: "white";
1334
+ brick: "brick";
1335
+ concrete: "concrete";
1336
+ wood: "wood";
1337
+ glass: "glass";
1338
+ metal: "metal";
1339
+ plaster: "plaster";
1340
+ tile: "tile";
1341
+ marble: "marble";
1342
+ }>>;
1343
+ properties: z.ZodOptional<z.ZodObject<{
1344
+ color: z.ZodDefault<z.ZodString>;
1345
+ roughness: z.ZodDefault<z.ZodNumber>;
1346
+ metalness: z.ZodDefault<z.ZodNumber>;
1347
+ opacity: z.ZodDefault<z.ZodNumber>;
1348
+ transparent: z.ZodDefault<z.ZodBoolean>;
1349
+ side: z.ZodDefault<z.ZodEnum<{
1350
+ front: "front";
1351
+ back: "back";
1352
+ double: "double";
1353
+ }>>;
1354
+ }, z.core.$strip>>;
1355
+ texture: z.ZodOptional<z.ZodObject<{
1356
+ url: z.ZodString;
1357
+ repeat: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>>;
1358
+ scale: z.ZodOptional<z.ZodNumber>;
1359
+ }, z.core.$strip>>;
1360
+ }, z.core.$strip>>;
1361
+ sideMaterialPreset: z.ZodOptional<z.ZodString>;
1362
+ position: z.ZodDefault<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
1363
+ rotation: z.ZodDefault<z.ZodNumber>;
1364
+ stairType: z.ZodDefault<z.ZodEnum<{
1365
+ straight: "straight";
1366
+ spiral: "spiral";
1367
+ curved: "curved";
1368
+ }>>;
1369
+ fromLevelId: z.ZodDefault<z.ZodNullable<z.ZodString>>;
1370
+ toLevelId: z.ZodDefault<z.ZodNullable<z.ZodString>>;
1371
+ slabOpeningMode: z.ZodDefault<z.ZodEnum<{
1372
+ none: "none";
1373
+ destination: "destination";
1374
+ }>>;
1375
+ openingOffset: z.ZodDefault<z.ZodNumber>;
1376
+ width: z.ZodDefault<z.ZodNumber>;
1377
+ totalRise: z.ZodDefault<z.ZodNumber>;
1378
+ stepCount: z.ZodDefault<z.ZodNumber>;
1379
+ thickness: z.ZodDefault<z.ZodNumber>;
1380
+ fillToFloor: z.ZodDefault<z.ZodBoolean>;
1381
+ innerRadius: z.ZodDefault<z.ZodNumber>;
1382
+ sweepAngle: z.ZodDefault<z.ZodNumber>;
1383
+ topLandingMode: z.ZodDefault<z.ZodEnum<{
1384
+ none: "none";
1385
+ integrated: "integrated";
1386
+ }>>;
1387
+ topLandingDepth: z.ZodDefault<z.ZodNumber>;
1388
+ showCenterColumn: z.ZodDefault<z.ZodBoolean>;
1389
+ showStepSupports: z.ZodDefault<z.ZodBoolean>;
1390
+ railingMode: z.ZodDefault<z.ZodEnum<{
1391
+ none: "none";
1392
+ left: "left";
1393
+ right: "right";
1394
+ both: "both";
1395
+ }>>;
1396
+ railingHeight: z.ZodDefault<z.ZodNumber>;
1397
+ children: z.ZodDefault<z.ZodArray<z.ZodDefault<z.ZodTemplateLiteral<`sseg_${string}`>>>>;
1398
+ }, z.core.$strip>, z.ZodObject<{
1399
+ object: z.ZodDefault<z.ZodLiteral<"node">>;
1400
+ name: z.ZodOptional<z.ZodString>;
1401
+ parentId: z.ZodDefault<z.ZodNullable<z.ZodString>>;
1402
+ visible: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
1403
+ camera: z.ZodOptional<z.ZodObject<{
1404
+ position: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
1405
+ target: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
1406
+ mode: z.ZodDefault<z.ZodEnum<{
1407
+ perspective: "perspective";
1408
+ orthographic: "orthographic";
1409
+ }>>;
1410
+ fov: z.ZodOptional<z.ZodNumber>;
1411
+ zoom: z.ZodOptional<z.ZodNumber>;
1412
+ }, z.core.$strip>>;
1413
+ metadata: z.ZodDefault<z.ZodOptional<z.ZodJSONSchema>>;
1414
+ id: z.ZodDefault<z.ZodTemplateLiteral<`sseg_${string}`>>;
1415
+ type: z.ZodDefault<z.ZodLiteral<"stair-segment">>;
1416
+ material: z.ZodOptional<z.ZodObject<{
1417
+ id: z.ZodOptional<z.ZodString>;
1418
+ preset: z.ZodOptional<z.ZodEnum<{
1419
+ custom: "custom";
1420
+ white: "white";
1421
+ brick: "brick";
1422
+ concrete: "concrete";
1423
+ wood: "wood";
1424
+ glass: "glass";
1425
+ metal: "metal";
1426
+ plaster: "plaster";
1427
+ tile: "tile";
1428
+ marble: "marble";
1429
+ }>>;
1430
+ properties: z.ZodOptional<z.ZodObject<{
1431
+ color: z.ZodDefault<z.ZodString>;
1432
+ roughness: z.ZodDefault<z.ZodNumber>;
1433
+ metalness: z.ZodDefault<z.ZodNumber>;
1434
+ opacity: z.ZodDefault<z.ZodNumber>;
1435
+ transparent: z.ZodDefault<z.ZodBoolean>;
1436
+ side: z.ZodDefault<z.ZodEnum<{
1437
+ front: "front";
1438
+ back: "back";
1439
+ double: "double";
1440
+ }>>;
1441
+ }, z.core.$strip>>;
1442
+ texture: z.ZodOptional<z.ZodObject<{
1443
+ url: z.ZodString;
1444
+ repeat: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>>;
1445
+ scale: z.ZodOptional<z.ZodNumber>;
1446
+ }, z.core.$strip>>;
1447
+ }, z.core.$strip>>;
1448
+ materialPreset: z.ZodOptional<z.ZodString>;
1449
+ position: z.ZodDefault<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
1450
+ rotation: z.ZodDefault<z.ZodNumber>;
1451
+ segmentType: z.ZodDefault<z.ZodEnum<{
1452
+ stair: "stair";
1453
+ landing: "landing";
1454
+ }>>;
1455
+ width: z.ZodDefault<z.ZodNumber>;
1456
+ length: z.ZodDefault<z.ZodNumber>;
1457
+ height: z.ZodDefault<z.ZodNumber>;
1458
+ stepCount: z.ZodDefault<z.ZodNumber>;
1459
+ attachmentSide: z.ZodDefault<z.ZodEnum<{
1460
+ front: "front";
1461
+ left: "left";
1462
+ right: "right";
1463
+ }>>;
1284
1464
  fillToFloor: z.ZodDefault<z.ZodBoolean>;
1285
1465
  thickness: z.ZodDefault<z.ZodNumber>;
1286
1466
  }, z.core.$strip>, z.ZodObject<{
@@ -1378,6 +1558,7 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
1378
1558
  material: z.ZodOptional<z.ZodObject<{
1379
1559
  id: z.ZodOptional<z.ZodString>;
1380
1560
  preset: z.ZodOptional<z.ZodEnum<{
1561
+ custom: "custom";
1381
1562
  white: "white";
1382
1563
  brick: "brick";
1383
1564
  concrete: "concrete";
@@ -1387,7 +1568,6 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
1387
1568
  plaster: "plaster";
1388
1569
  tile: "tile";
1389
1570
  marble: "marble";
1390
- custom: "custom";
1391
1571
  }>>;
1392
1572
  properties: z.ZodOptional<z.ZodObject<{
1393
1573
  color: z.ZodDefault<z.ZodString>;
@@ -1488,6 +1668,7 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
1488
1668
  material: z.ZodOptional<z.ZodObject<{
1489
1669
  id: z.ZodOptional<z.ZodString>;
1490
1670
  preset: z.ZodOptional<z.ZodEnum<{
1671
+ custom: "custom";
1491
1672
  white: "white";
1492
1673
  brick: "brick";
1493
1674
  concrete: "concrete";
@@ -1497,7 +1678,6 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
1497
1678
  plaster: "plaster";
1498
1679
  tile: "tile";
1499
1680
  marble: "marble";
1500
- custom: "custom";
1501
1681
  }>>;
1502
1682
  properties: z.ZodOptional<z.ZodObject<{
1503
1683
  color: z.ZodDefault<z.ZodString>;
@@ -1607,6 +1787,1038 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
1607
1787
  doorCloser: z.ZodDefault<z.ZodBoolean>;
1608
1788
  panicBar: z.ZodDefault<z.ZodBoolean>;
1609
1789
  panicBarHeight: z.ZodDefault<z.ZodNumber>;
1790
+ }, z.core.$strip>, z.ZodObject<{
1791
+ object: z.ZodDefault<z.ZodLiteral<"node">>;
1792
+ name: z.ZodOptional<z.ZodString>;
1793
+ parentId: z.ZodDefault<z.ZodNullable<z.ZodString>>;
1794
+ visible: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
1795
+ camera: z.ZodOptional<z.ZodObject<{
1796
+ position: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
1797
+ target: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
1798
+ mode: z.ZodDefault<z.ZodEnum<{
1799
+ perspective: "perspective";
1800
+ orthographic: "orthographic";
1801
+ }>>;
1802
+ fov: z.ZodOptional<z.ZodNumber>;
1803
+ zoom: z.ZodOptional<z.ZodNumber>;
1804
+ }, z.core.$strip>>;
1805
+ metadata: z.ZodDefault<z.ZodOptional<z.ZodJSONSchema>>;
1806
+ id: z.ZodDefault<z.ZodTemplateLiteral<`bvent_${string}`>>;
1807
+ type: z.ZodDefault<z.ZodLiteral<"box-vent">>;
1808
+ material: z.ZodOptional<z.ZodObject<{
1809
+ id: z.ZodOptional<z.ZodString>;
1810
+ preset: z.ZodOptional<z.ZodEnum<{
1811
+ custom: "custom";
1812
+ white: "white";
1813
+ brick: "brick";
1814
+ concrete: "concrete";
1815
+ wood: "wood";
1816
+ glass: "glass";
1817
+ metal: "metal";
1818
+ plaster: "plaster";
1819
+ tile: "tile";
1820
+ marble: "marble";
1821
+ }>>;
1822
+ properties: z.ZodOptional<z.ZodObject<{
1823
+ color: z.ZodDefault<z.ZodString>;
1824
+ roughness: z.ZodDefault<z.ZodNumber>;
1825
+ metalness: z.ZodDefault<z.ZodNumber>;
1826
+ opacity: z.ZodDefault<z.ZodNumber>;
1827
+ transparent: z.ZodDefault<z.ZodBoolean>;
1828
+ side: z.ZodDefault<z.ZodEnum<{
1829
+ front: "front";
1830
+ back: "back";
1831
+ double: "double";
1832
+ }>>;
1833
+ }, z.core.$strip>>;
1834
+ texture: z.ZodOptional<z.ZodObject<{
1835
+ url: z.ZodString;
1836
+ repeat: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>>;
1837
+ scale: z.ZodOptional<z.ZodNumber>;
1838
+ }, z.core.$strip>>;
1839
+ }, z.core.$strip>>;
1840
+ materialPreset: z.ZodDefault<z.ZodString>;
1841
+ roofSegmentId: z.ZodOptional<z.ZodString>;
1842
+ position: z.ZodDefault<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
1843
+ rotation: z.ZodDefault<z.ZodNumber>;
1844
+ width: z.ZodDefault<z.ZodNumber>;
1845
+ depth: z.ZodDefault<z.ZodNumber>;
1846
+ height: z.ZodDefault<z.ZodNumber>;
1847
+ hoodOverhang: z.ZodDefault<z.ZodNumber>;
1848
+ topTaper: z.ZodDefault<z.ZodNumber>;
1849
+ capHeight: z.ZodDefault<z.ZodNumber>;
1850
+ capGap: z.ZodDefault<z.ZodNumber>;
1851
+ domeCurvature: z.ZodDefault<z.ZodNumber>;
1852
+ baseInset: z.ZodDefault<z.ZodNumber>;
1853
+ baseHeight: z.ZodDefault<z.ZodNumber>;
1854
+ cornerBevel: z.ZodDefault<z.ZodNumber>;
1855
+ style: z.ZodPreprocess<z.ZodDefault<z.ZodEnum<{
1856
+ box: "box";
1857
+ cap: "cap";
1858
+ dome: "dome";
1859
+ }>>>;
1860
+ }, z.core.$strip>, z.ZodObject<{
1861
+ object: z.ZodDefault<z.ZodLiteral<"node">>;
1862
+ name: z.ZodOptional<z.ZodString>;
1863
+ parentId: z.ZodDefault<z.ZodNullable<z.ZodString>>;
1864
+ visible: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
1865
+ camera: z.ZodOptional<z.ZodObject<{
1866
+ position: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
1867
+ target: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
1868
+ mode: z.ZodDefault<z.ZodEnum<{
1869
+ perspective: "perspective";
1870
+ orthographic: "orthographic";
1871
+ }>>;
1872
+ fov: z.ZodOptional<z.ZodNumber>;
1873
+ zoom: z.ZodOptional<z.ZodNumber>;
1874
+ }, z.core.$strip>>;
1875
+ metadata: z.ZodDefault<z.ZodOptional<z.ZodJSONSchema>>;
1876
+ id: z.ZodDefault<z.ZodTemplateLiteral<`rvent_${string}`>>;
1877
+ type: z.ZodDefault<z.ZodLiteral<"ridge-vent">>;
1878
+ material: z.ZodOptional<z.ZodObject<{
1879
+ id: z.ZodOptional<z.ZodString>;
1880
+ preset: z.ZodOptional<z.ZodEnum<{
1881
+ custom: "custom";
1882
+ white: "white";
1883
+ brick: "brick";
1884
+ concrete: "concrete";
1885
+ wood: "wood";
1886
+ glass: "glass";
1887
+ metal: "metal";
1888
+ plaster: "plaster";
1889
+ tile: "tile";
1890
+ marble: "marble";
1891
+ }>>;
1892
+ properties: z.ZodOptional<z.ZodObject<{
1893
+ color: z.ZodDefault<z.ZodString>;
1894
+ roughness: z.ZodDefault<z.ZodNumber>;
1895
+ metalness: z.ZodDefault<z.ZodNumber>;
1896
+ opacity: z.ZodDefault<z.ZodNumber>;
1897
+ transparent: z.ZodDefault<z.ZodBoolean>;
1898
+ side: z.ZodDefault<z.ZodEnum<{
1899
+ front: "front";
1900
+ back: "back";
1901
+ double: "double";
1902
+ }>>;
1903
+ }, z.core.$strip>>;
1904
+ texture: z.ZodOptional<z.ZodObject<{
1905
+ url: z.ZodString;
1906
+ repeat: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>>;
1907
+ scale: z.ZodOptional<z.ZodNumber>;
1908
+ }, z.core.$strip>>;
1909
+ }, z.core.$strip>>;
1910
+ materialPreset: z.ZodDefault<z.ZodString>;
1911
+ roofSegmentId: z.ZodOptional<z.ZodString>;
1912
+ position: z.ZodDefault<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
1913
+ rotation: z.ZodDefault<z.ZodNumber>;
1914
+ length: z.ZodDefault<z.ZodNumber>;
1915
+ width: z.ZodDefault<z.ZodNumber>;
1916
+ height: z.ZodDefault<z.ZodNumber>;
1917
+ style: z.ZodDefault<z.ZodEnum<{
1918
+ metal: "metal";
1919
+ standard: "standard";
1920
+ shingled: "shingled";
1921
+ }>>;
1922
+ endCaps: z.ZodDefault<z.ZodBoolean>;
1923
+ }, z.core.$strip>, z.ZodObject<{
1924
+ object: z.ZodDefault<z.ZodLiteral<"node">>;
1925
+ name: z.ZodOptional<z.ZodString>;
1926
+ parentId: z.ZodDefault<z.ZodNullable<z.ZodString>>;
1927
+ visible: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
1928
+ camera: z.ZodOptional<z.ZodObject<{
1929
+ position: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
1930
+ target: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
1931
+ mode: z.ZodDefault<z.ZodEnum<{
1932
+ perspective: "perspective";
1933
+ orthographic: "orthographic";
1934
+ }>>;
1935
+ fov: z.ZodOptional<z.ZodNumber>;
1936
+ zoom: z.ZodOptional<z.ZodNumber>;
1937
+ }, z.core.$strip>>;
1938
+ metadata: z.ZodDefault<z.ZodOptional<z.ZodJSONSchema>>;
1939
+ id: z.ZodDefault<z.ZodTemplateLiteral<`tvent_${string}`>>;
1940
+ type: z.ZodDefault<z.ZodLiteral<"turbine-vent">>;
1941
+ material: z.ZodOptional<z.ZodObject<{
1942
+ id: z.ZodOptional<z.ZodString>;
1943
+ preset: z.ZodOptional<z.ZodEnum<{
1944
+ custom: "custom";
1945
+ white: "white";
1946
+ brick: "brick";
1947
+ concrete: "concrete";
1948
+ wood: "wood";
1949
+ glass: "glass";
1950
+ metal: "metal";
1951
+ plaster: "plaster";
1952
+ tile: "tile";
1953
+ marble: "marble";
1954
+ }>>;
1955
+ properties: z.ZodOptional<z.ZodObject<{
1956
+ color: z.ZodDefault<z.ZodString>;
1957
+ roughness: z.ZodDefault<z.ZodNumber>;
1958
+ metalness: z.ZodDefault<z.ZodNumber>;
1959
+ opacity: z.ZodDefault<z.ZodNumber>;
1960
+ transparent: z.ZodDefault<z.ZodBoolean>;
1961
+ side: z.ZodDefault<z.ZodEnum<{
1962
+ front: "front";
1963
+ back: "back";
1964
+ double: "double";
1965
+ }>>;
1966
+ }, z.core.$strip>>;
1967
+ texture: z.ZodOptional<z.ZodObject<{
1968
+ url: z.ZodString;
1969
+ repeat: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>>;
1970
+ scale: z.ZodOptional<z.ZodNumber>;
1971
+ }, z.core.$strip>>;
1972
+ }, z.core.$strip>>;
1973
+ materialPreset: z.ZodDefault<z.ZodString>;
1974
+ roofSegmentId: z.ZodOptional<z.ZodString>;
1975
+ position: z.ZodDefault<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
1976
+ rotation: z.ZodDefault<z.ZodNumber>;
1977
+ diameter: z.ZodDefault<z.ZodNumber>;
1978
+ height: z.ZodDefault<z.ZodNumber>;
1979
+ neckHeight: z.ZodDefault<z.ZodNumber>;
1980
+ baseOverhang: z.ZodDefault<z.ZodNumber>;
1981
+ vaneCount: z.ZodDefault<z.ZodNumber>;
1982
+ spinSpeed: z.ZodDefault<z.ZodNumber>;
1983
+ style: z.ZodDefault<z.ZodEnum<{
1984
+ globe: "globe";
1985
+ cylinder: "cylinder";
1986
+ }>>;
1987
+ }, z.core.$strip>, z.ZodObject<{
1988
+ object: z.ZodDefault<z.ZodLiteral<"node">>;
1989
+ name: z.ZodOptional<z.ZodString>;
1990
+ parentId: z.ZodDefault<z.ZodNullable<z.ZodString>>;
1991
+ visible: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
1992
+ camera: z.ZodOptional<z.ZodObject<{
1993
+ position: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
1994
+ target: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
1995
+ mode: z.ZodDefault<z.ZodEnum<{
1996
+ perspective: "perspective";
1997
+ orthographic: "orthographic";
1998
+ }>>;
1999
+ fov: z.ZodOptional<z.ZodNumber>;
2000
+ zoom: z.ZodOptional<z.ZodNumber>;
2001
+ }, z.core.$strip>>;
2002
+ metadata: z.ZodDefault<z.ZodOptional<z.ZodJSONSchema>>;
2003
+ id: z.ZodDefault<z.ZodTemplateLiteral<`cupola_${string}`>>;
2004
+ type: z.ZodDefault<z.ZodLiteral<"cupola">>;
2005
+ material: z.ZodOptional<z.ZodObject<{
2006
+ id: z.ZodOptional<z.ZodString>;
2007
+ preset: z.ZodOptional<z.ZodEnum<{
2008
+ custom: "custom";
2009
+ white: "white";
2010
+ brick: "brick";
2011
+ concrete: "concrete";
2012
+ wood: "wood";
2013
+ glass: "glass";
2014
+ metal: "metal";
2015
+ plaster: "plaster";
2016
+ tile: "tile";
2017
+ marble: "marble";
2018
+ }>>;
2019
+ properties: z.ZodOptional<z.ZodObject<{
2020
+ color: z.ZodDefault<z.ZodString>;
2021
+ roughness: z.ZodDefault<z.ZodNumber>;
2022
+ metalness: z.ZodDefault<z.ZodNumber>;
2023
+ opacity: z.ZodDefault<z.ZodNumber>;
2024
+ transparent: z.ZodDefault<z.ZodBoolean>;
2025
+ side: z.ZodDefault<z.ZodEnum<{
2026
+ front: "front";
2027
+ back: "back";
2028
+ double: "double";
2029
+ }>>;
2030
+ }, z.core.$strip>>;
2031
+ texture: z.ZodOptional<z.ZodObject<{
2032
+ url: z.ZodString;
2033
+ repeat: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>>;
2034
+ scale: z.ZodOptional<z.ZodNumber>;
2035
+ }, z.core.$strip>>;
2036
+ }, z.core.$strip>>;
2037
+ materialPreset: z.ZodDefault<z.ZodString>;
2038
+ roofSegmentId: z.ZodOptional<z.ZodString>;
2039
+ position: z.ZodDefault<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
2040
+ rotation: z.ZodDefault<z.ZodNumber>;
2041
+ width: z.ZodDefault<z.ZodNumber>;
2042
+ depth: z.ZodDefault<z.ZodNumber>;
2043
+ height: z.ZodDefault<z.ZodNumber>;
2044
+ roofStyle: z.ZodDefault<z.ZodEnum<{
2045
+ dome: "dome";
2046
+ pyramid: "pyramid";
2047
+ }>>;
2048
+ finial: z.ZodDefault<z.ZodBoolean>;
2049
+ }, z.core.$strip>, z.ZodObject<{
2050
+ object: z.ZodDefault<z.ZodLiteral<"node">>;
2051
+ name: z.ZodOptional<z.ZodString>;
2052
+ parentId: z.ZodDefault<z.ZodNullable<z.ZodString>>;
2053
+ visible: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
2054
+ camera: z.ZodOptional<z.ZodObject<{
2055
+ position: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
2056
+ target: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
2057
+ mode: z.ZodDefault<z.ZodEnum<{
2058
+ perspective: "perspective";
2059
+ orthographic: "orthographic";
2060
+ }>>;
2061
+ fov: z.ZodOptional<z.ZodNumber>;
2062
+ zoom: z.ZodOptional<z.ZodNumber>;
2063
+ }, z.core.$strip>>;
2064
+ metadata: z.ZodDefault<z.ZodOptional<z.ZodJSONSchema>>;
2065
+ id: z.ZodDefault<z.ZodTemplateLiteral<`eyebrow-vent_${string}`>>;
2066
+ type: z.ZodDefault<z.ZodLiteral<"eyebrow-vent">>;
2067
+ material: z.ZodOptional<z.ZodObject<{
2068
+ id: z.ZodOptional<z.ZodString>;
2069
+ preset: z.ZodOptional<z.ZodEnum<{
2070
+ custom: "custom";
2071
+ white: "white";
2072
+ brick: "brick";
2073
+ concrete: "concrete";
2074
+ wood: "wood";
2075
+ glass: "glass";
2076
+ metal: "metal";
2077
+ plaster: "plaster";
2078
+ tile: "tile";
2079
+ marble: "marble";
2080
+ }>>;
2081
+ properties: z.ZodOptional<z.ZodObject<{
2082
+ color: z.ZodDefault<z.ZodString>;
2083
+ roughness: z.ZodDefault<z.ZodNumber>;
2084
+ metalness: z.ZodDefault<z.ZodNumber>;
2085
+ opacity: z.ZodDefault<z.ZodNumber>;
2086
+ transparent: z.ZodDefault<z.ZodBoolean>;
2087
+ side: z.ZodDefault<z.ZodEnum<{
2088
+ front: "front";
2089
+ back: "back";
2090
+ double: "double";
2091
+ }>>;
2092
+ }, z.core.$strip>>;
2093
+ texture: z.ZodOptional<z.ZodObject<{
2094
+ url: z.ZodString;
2095
+ repeat: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>>;
2096
+ scale: z.ZodOptional<z.ZodNumber>;
2097
+ }, z.core.$strip>>;
2098
+ }, z.core.$strip>>;
2099
+ materialPreset: z.ZodDefault<z.ZodString>;
2100
+ roofSegmentId: z.ZodOptional<z.ZodString>;
2101
+ position: z.ZodDefault<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
2102
+ rotation: z.ZodDefault<z.ZodNumber>;
2103
+ width: z.ZodDefault<z.ZodNumber>;
2104
+ depth: z.ZodDefault<z.ZodNumber>;
2105
+ height: z.ZodDefault<z.ZodNumber>;
2106
+ style: z.ZodDefault<z.ZodEnum<{
2107
+ scoop: "scoop";
2108
+ "half-round": "half-round";
2109
+ "slant-box": "slant-box";
2110
+ }>>;
2111
+ louverCount: z.ZodDefault<z.ZodNumber>;
2112
+ backRatio: z.ZodDefault<z.ZodNumber>;
2113
+ }, z.core.$strip>, z.ZodObject<{
2114
+ object: z.ZodDefault<z.ZodLiteral<"node">>;
2115
+ name: z.ZodOptional<z.ZodString>;
2116
+ parentId: z.ZodDefault<z.ZodNullable<z.ZodString>>;
2117
+ visible: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
2118
+ camera: z.ZodOptional<z.ZodObject<{
2119
+ position: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
2120
+ target: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
2121
+ mode: z.ZodDefault<z.ZodEnum<{
2122
+ perspective: "perspective";
2123
+ orthographic: "orthographic";
2124
+ }>>;
2125
+ fov: z.ZodOptional<z.ZodNumber>;
2126
+ zoom: z.ZodOptional<z.ZodNumber>;
2127
+ }, z.core.$strip>>;
2128
+ metadata: z.ZodDefault<z.ZodOptional<z.ZodJSONSchema>>;
2129
+ id: z.ZodDefault<z.ZodTemplateLiteral<`gutter_${string}`>>;
2130
+ type: z.ZodDefault<z.ZodLiteral<"gutter">>;
2131
+ material: z.ZodOptional<z.ZodObject<{
2132
+ id: z.ZodOptional<z.ZodString>;
2133
+ preset: z.ZodOptional<z.ZodEnum<{
2134
+ custom: "custom";
2135
+ white: "white";
2136
+ brick: "brick";
2137
+ concrete: "concrete";
2138
+ wood: "wood";
2139
+ glass: "glass";
2140
+ metal: "metal";
2141
+ plaster: "plaster";
2142
+ tile: "tile";
2143
+ marble: "marble";
2144
+ }>>;
2145
+ properties: z.ZodOptional<z.ZodObject<{
2146
+ color: z.ZodDefault<z.ZodString>;
2147
+ roughness: z.ZodDefault<z.ZodNumber>;
2148
+ metalness: z.ZodDefault<z.ZodNumber>;
2149
+ opacity: z.ZodDefault<z.ZodNumber>;
2150
+ transparent: z.ZodDefault<z.ZodBoolean>;
2151
+ side: z.ZodDefault<z.ZodEnum<{
2152
+ front: "front";
2153
+ back: "back";
2154
+ double: "double";
2155
+ }>>;
2156
+ }, z.core.$strip>>;
2157
+ texture: z.ZodOptional<z.ZodObject<{
2158
+ url: z.ZodString;
2159
+ repeat: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>>;
2160
+ scale: z.ZodOptional<z.ZodNumber>;
2161
+ }, z.core.$strip>>;
2162
+ }, z.core.$strip>>;
2163
+ materialPreset: z.ZodDefault<z.ZodString>;
2164
+ roofSegmentId: z.ZodOptional<z.ZodString>;
2165
+ position: z.ZodDefault<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
2166
+ rotation: z.ZodDefault<z.ZodNumber>;
2167
+ length: z.ZodDefault<z.ZodNumber>;
2168
+ size: z.ZodDefault<z.ZodNumber>;
2169
+ thickness: z.ZodDefault<z.ZodNumber>;
2170
+ profile: z.ZodDefault<z.ZodEnum<{
2171
+ box: "box";
2172
+ "half-round": "half-round";
2173
+ "k-style": "k-style";
2174
+ }>>;
2175
+ endCapLeft: z.ZodDefault<z.ZodBoolean>;
2176
+ endCapRight: z.ZodDefault<z.ZodBoolean>;
2177
+ hangerStyle: z.ZodDefault<z.ZodEnum<{
2178
+ none: "none";
2179
+ strap: "strap";
2180
+ }>>;
2181
+ hangerSpacing: z.ZodDefault<z.ZodNumber>;
2182
+ outlets: z.ZodDefault<z.ZodArray<z.ZodObject<{
2183
+ id: z.ZodString;
2184
+ offset: z.ZodDefault<z.ZodNumber>;
2185
+ diameter: z.ZodDefault<z.ZodNumber>;
2186
+ }, z.core.$strip>>>;
2187
+ }, z.core.$strip>, z.ZodObject<{
2188
+ object: z.ZodDefault<z.ZodLiteral<"node">>;
2189
+ name: z.ZodOptional<z.ZodString>;
2190
+ parentId: z.ZodDefault<z.ZodNullable<z.ZodString>>;
2191
+ visible: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
2192
+ camera: z.ZodOptional<z.ZodObject<{
2193
+ position: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
2194
+ target: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
2195
+ mode: z.ZodDefault<z.ZodEnum<{
2196
+ perspective: "perspective";
2197
+ orthographic: "orthographic";
2198
+ }>>;
2199
+ fov: z.ZodOptional<z.ZodNumber>;
2200
+ zoom: z.ZodOptional<z.ZodNumber>;
2201
+ }, z.core.$strip>>;
2202
+ metadata: z.ZodDefault<z.ZodOptional<z.ZodJSONSchema>>;
2203
+ id: z.ZodDefault<z.ZodTemplateLiteral<`chimney_${string}`>>;
2204
+ type: z.ZodDefault<z.ZodLiteral<"chimney">>;
2205
+ material: z.ZodOptional<z.ZodObject<{
2206
+ id: z.ZodOptional<z.ZodString>;
2207
+ preset: z.ZodOptional<z.ZodEnum<{
2208
+ custom: "custom";
2209
+ white: "white";
2210
+ brick: "brick";
2211
+ concrete: "concrete";
2212
+ wood: "wood";
2213
+ glass: "glass";
2214
+ metal: "metal";
2215
+ plaster: "plaster";
2216
+ tile: "tile";
2217
+ marble: "marble";
2218
+ }>>;
2219
+ properties: z.ZodOptional<z.ZodObject<{
2220
+ color: z.ZodDefault<z.ZodString>;
2221
+ roughness: z.ZodDefault<z.ZodNumber>;
2222
+ metalness: z.ZodDefault<z.ZodNumber>;
2223
+ opacity: z.ZodDefault<z.ZodNumber>;
2224
+ transparent: z.ZodDefault<z.ZodBoolean>;
2225
+ side: z.ZodDefault<z.ZodEnum<{
2226
+ front: "front";
2227
+ back: "back";
2228
+ double: "double";
2229
+ }>>;
2230
+ }, z.core.$strip>>;
2231
+ texture: z.ZodOptional<z.ZodObject<{
2232
+ url: z.ZodString;
2233
+ repeat: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>>;
2234
+ scale: z.ZodOptional<z.ZodNumber>;
2235
+ }, z.core.$strip>>;
2236
+ }, z.core.$strip>>;
2237
+ materialPreset: z.ZodOptional<z.ZodString>;
2238
+ topMaterial: z.ZodOptional<z.ZodObject<{
2239
+ id: z.ZodOptional<z.ZodString>;
2240
+ preset: z.ZodOptional<z.ZodEnum<{
2241
+ custom: "custom";
2242
+ white: "white";
2243
+ brick: "brick";
2244
+ concrete: "concrete";
2245
+ wood: "wood";
2246
+ glass: "glass";
2247
+ metal: "metal";
2248
+ plaster: "plaster";
2249
+ tile: "tile";
2250
+ marble: "marble";
2251
+ }>>;
2252
+ properties: z.ZodOptional<z.ZodObject<{
2253
+ color: z.ZodDefault<z.ZodString>;
2254
+ roughness: z.ZodDefault<z.ZodNumber>;
2255
+ metalness: z.ZodDefault<z.ZodNumber>;
2256
+ opacity: z.ZodDefault<z.ZodNumber>;
2257
+ transparent: z.ZodDefault<z.ZodBoolean>;
2258
+ side: z.ZodDefault<z.ZodEnum<{
2259
+ front: "front";
2260
+ back: "back";
2261
+ double: "double";
2262
+ }>>;
2263
+ }, z.core.$strip>>;
2264
+ texture: z.ZodOptional<z.ZodObject<{
2265
+ url: z.ZodString;
2266
+ repeat: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>>;
2267
+ scale: z.ZodOptional<z.ZodNumber>;
2268
+ }, z.core.$strip>>;
2269
+ }, z.core.$strip>>;
2270
+ topMaterialPreset: z.ZodOptional<z.ZodString>;
2271
+ roofSegmentId: z.ZodOptional<z.ZodString>;
2272
+ position: z.ZodDefault<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
2273
+ rotation: z.ZodDefault<z.ZodNumber>;
2274
+ bodyShape: z.ZodDefault<z.ZodEnum<{
2275
+ round: "round";
2276
+ square: "square";
2277
+ }>>;
2278
+ bodyHollowDepth: z.ZodDefault<z.ZodNumber>;
2279
+ bodyHollowMargin: z.ZodDefault<z.ZodNumber>;
2280
+ width: z.ZodDefault<z.ZodNumber>;
2281
+ depth: z.ZodDefault<z.ZodNumber>;
2282
+ heightAboveRidge: z.ZodDefault<z.ZodNumber>;
2283
+ cutoutOffset: z.ZodDefault<z.ZodNumber>;
2284
+ cornerBevel: z.ZodDefault<z.ZodNumber>;
2285
+ cap: z.ZodDefault<z.ZodBoolean>;
2286
+ capShape: z.ZodDefault<z.ZodEnum<{
2287
+ flat: "flat";
2288
+ none: "none";
2289
+ stepped: "stepped";
2290
+ sloped: "sloped";
2291
+ }>>;
2292
+ capOverhang: z.ZodDefault<z.ZodNumber>;
2293
+ capThickness: z.ZodDefault<z.ZodNumber>;
2294
+ flueCount: z.ZodDefault<z.ZodNumber>;
2295
+ flueShape: z.ZodDefault<z.ZodEnum<{
2296
+ round: "round";
2297
+ square: "square";
2298
+ }>>;
2299
+ flueHeight: z.ZodDefault<z.ZodNumber>;
2300
+ flueDiameter: z.ZodDefault<z.ZodNumber>;
2301
+ flueSpacing: z.ZodDefault<z.ZodNumber>;
2302
+ flueWallThickness: z.ZodDefault<z.ZodNumber>;
2303
+ shoulderStyle: z.ZodDefault<z.ZodEnum<{
2304
+ tapered: "tapered";
2305
+ none: "none";
2306
+ corbeled: "corbeled";
2307
+ }>>;
2308
+ shoulderHeight: z.ZodDefault<z.ZodNumber>;
2309
+ shoulderExtent: z.ZodDefault<z.ZodNumber>;
2310
+ bandStyle: z.ZodDefault<z.ZodEnum<{
2311
+ double: "double";
2312
+ none: "none";
2313
+ single: "single";
2314
+ }>>;
2315
+ bandHeight: z.ZodDefault<z.ZodNumber>;
2316
+ bandExtent: z.ZodDefault<z.ZodNumber>;
2317
+ bandOffset: z.ZodDefault<z.ZodNumber>;
2318
+ cricketStyle: z.ZodDefault<z.ZodEnum<{
2319
+ none: "none";
2320
+ simple: "simple";
2321
+ }>>;
2322
+ cricketLength: z.ZodDefault<z.ZodNumber>;
2323
+ cricketHeight: z.ZodDefault<z.ZodNumber>;
2324
+ cricketSide: z.ZodDefault<z.ZodEnum<{
2325
+ front: "front";
2326
+ back: "back";
2327
+ }>>;
2328
+ panelStyle: z.ZodDefault<z.ZodEnum<{
2329
+ rectangular: "rectangular";
2330
+ none: "none";
2331
+ }>>;
2332
+ panelDepth: z.ZodDefault<z.ZodNumber>;
2333
+ panelHeight: z.ZodDefault<z.ZodNumber>;
2334
+ panelOffsetTop: z.ZodDefault<z.ZodNumber>;
2335
+ panelMargin: z.ZodDefault<z.ZodNumber>;
2336
+ }, z.core.$strip>, z.ZodObject<{
2337
+ object: z.ZodDefault<z.ZodLiteral<"node">>;
2338
+ name: z.ZodOptional<z.ZodString>;
2339
+ parentId: z.ZodDefault<z.ZodNullable<z.ZodString>>;
2340
+ visible: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
2341
+ camera: z.ZodOptional<z.ZodObject<{
2342
+ position: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
2343
+ target: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
2344
+ mode: z.ZodDefault<z.ZodEnum<{
2345
+ perspective: "perspective";
2346
+ orthographic: "orthographic";
2347
+ }>>;
2348
+ fov: z.ZodOptional<z.ZodNumber>;
2349
+ zoom: z.ZodOptional<z.ZodNumber>;
2350
+ }, z.core.$strip>>;
2351
+ metadata: z.ZodDefault<z.ZodOptional<z.ZodJSONSchema>>;
2352
+ id: z.ZodDefault<z.ZodTemplateLiteral<`solarpanel_${string}`>>;
2353
+ type: z.ZodDefault<z.ZodLiteral<"solar-panel">>;
2354
+ material: z.ZodOptional<z.ZodObject<{
2355
+ id: z.ZodOptional<z.ZodString>;
2356
+ preset: z.ZodOptional<z.ZodEnum<{
2357
+ custom: "custom";
2358
+ white: "white";
2359
+ brick: "brick";
2360
+ concrete: "concrete";
2361
+ wood: "wood";
2362
+ glass: "glass";
2363
+ metal: "metal";
2364
+ plaster: "plaster";
2365
+ tile: "tile";
2366
+ marble: "marble";
2367
+ }>>;
2368
+ properties: z.ZodOptional<z.ZodObject<{
2369
+ color: z.ZodDefault<z.ZodString>;
2370
+ roughness: z.ZodDefault<z.ZodNumber>;
2371
+ metalness: z.ZodDefault<z.ZodNumber>;
2372
+ opacity: z.ZodDefault<z.ZodNumber>;
2373
+ transparent: z.ZodDefault<z.ZodBoolean>;
2374
+ side: z.ZodDefault<z.ZodEnum<{
2375
+ front: "front";
2376
+ back: "back";
2377
+ double: "double";
2378
+ }>>;
2379
+ }, z.core.$strip>>;
2380
+ texture: z.ZodOptional<z.ZodObject<{
2381
+ url: z.ZodString;
2382
+ repeat: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>>;
2383
+ scale: z.ZodOptional<z.ZodNumber>;
2384
+ }, z.core.$strip>>;
2385
+ }, z.core.$strip>>;
2386
+ materialPreset: z.ZodOptional<z.ZodString>;
2387
+ panelMaterial: z.ZodOptional<z.ZodObject<{
2388
+ id: z.ZodOptional<z.ZodString>;
2389
+ preset: z.ZodOptional<z.ZodEnum<{
2390
+ custom: "custom";
2391
+ white: "white";
2392
+ brick: "brick";
2393
+ concrete: "concrete";
2394
+ wood: "wood";
2395
+ glass: "glass";
2396
+ metal: "metal";
2397
+ plaster: "plaster";
2398
+ tile: "tile";
2399
+ marble: "marble";
2400
+ }>>;
2401
+ properties: z.ZodOptional<z.ZodObject<{
2402
+ color: z.ZodDefault<z.ZodString>;
2403
+ roughness: z.ZodDefault<z.ZodNumber>;
2404
+ metalness: z.ZodDefault<z.ZodNumber>;
2405
+ opacity: z.ZodDefault<z.ZodNumber>;
2406
+ transparent: z.ZodDefault<z.ZodBoolean>;
2407
+ side: z.ZodDefault<z.ZodEnum<{
2408
+ front: "front";
2409
+ back: "back";
2410
+ double: "double";
2411
+ }>>;
2412
+ }, z.core.$strip>>;
2413
+ texture: z.ZodOptional<z.ZodObject<{
2414
+ url: z.ZodString;
2415
+ repeat: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>>;
2416
+ scale: z.ZodOptional<z.ZodNumber>;
2417
+ }, z.core.$strip>>;
2418
+ }, z.core.$strip>>;
2419
+ panelMaterialPreset: z.ZodOptional<z.ZodString>;
2420
+ panelTypePreset: z.ZodOptional<z.ZodEnum<{
2421
+ residential: "residential";
2422
+ "residential-large": "residential-large";
2423
+ compact: "compact";
2424
+ frameless: "frameless";
2425
+ }>>;
2426
+ roofSegmentId: z.ZodOptional<z.ZodString>;
2427
+ position: z.ZodDefault<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
2428
+ rotation: z.ZodDefault<z.ZodNumber>;
2429
+ rows: z.ZodDefault<z.ZodNumber>;
2430
+ columns: z.ZodDefault<z.ZodNumber>;
2431
+ panelWidth: z.ZodDefault<z.ZodNumber>;
2432
+ panelHeight: z.ZodDefault<z.ZodNumber>;
2433
+ gapX: z.ZodDefault<z.ZodNumber>;
2434
+ gapY: z.ZodDefault<z.ZodNumber>;
2435
+ mountingType: z.ZodDefault<z.ZodEnum<{
2436
+ flush: "flush";
2437
+ tilted: "tilted";
2438
+ }>>;
2439
+ tiltAngle: z.ZodDefault<z.ZodNumber>;
2440
+ standoffHeight: z.ZodDefault<z.ZodNumber>;
2441
+ frameThickness: z.ZodDefault<z.ZodNumber>;
2442
+ frameDepth: z.ZodDefault<z.ZodNumber>;
2443
+ surfaceNormal: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
2444
+ }, z.core.$strip>, z.ZodObject<{
2445
+ object: z.ZodDefault<z.ZodLiteral<"node">>;
2446
+ name: z.ZodOptional<z.ZodString>;
2447
+ parentId: z.ZodDefault<z.ZodNullable<z.ZodString>>;
2448
+ visible: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
2449
+ camera: z.ZodOptional<z.ZodObject<{
2450
+ position: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
2451
+ target: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
2452
+ mode: z.ZodDefault<z.ZodEnum<{
2453
+ perspective: "perspective";
2454
+ orthographic: "orthographic";
2455
+ }>>;
2456
+ fov: z.ZodOptional<z.ZodNumber>;
2457
+ zoom: z.ZodOptional<z.ZodNumber>;
2458
+ }, z.core.$strip>>;
2459
+ metadata: z.ZodDefault<z.ZodOptional<z.ZodJSONSchema>>;
2460
+ id: z.ZodDefault<z.ZodTemplateLiteral<`skylight_${string}`>>;
2461
+ type: z.ZodDefault<z.ZodLiteral<"skylight">>;
2462
+ material: z.ZodOptional<z.ZodObject<{
2463
+ id: z.ZodOptional<z.ZodString>;
2464
+ preset: z.ZodOptional<z.ZodEnum<{
2465
+ custom: "custom";
2466
+ white: "white";
2467
+ brick: "brick";
2468
+ concrete: "concrete";
2469
+ wood: "wood";
2470
+ glass: "glass";
2471
+ metal: "metal";
2472
+ plaster: "plaster";
2473
+ tile: "tile";
2474
+ marble: "marble";
2475
+ }>>;
2476
+ properties: z.ZodOptional<z.ZodObject<{
2477
+ color: z.ZodDefault<z.ZodString>;
2478
+ roughness: z.ZodDefault<z.ZodNumber>;
2479
+ metalness: z.ZodDefault<z.ZodNumber>;
2480
+ opacity: z.ZodDefault<z.ZodNumber>;
2481
+ transparent: z.ZodDefault<z.ZodBoolean>;
2482
+ side: z.ZodDefault<z.ZodEnum<{
2483
+ front: "front";
2484
+ back: "back";
2485
+ double: "double";
2486
+ }>>;
2487
+ }, z.core.$strip>>;
2488
+ texture: z.ZodOptional<z.ZodObject<{
2489
+ url: z.ZodString;
2490
+ repeat: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>>;
2491
+ scale: z.ZodOptional<z.ZodNumber>;
2492
+ }, z.core.$strip>>;
2493
+ }, z.core.$strip>>;
2494
+ materialPreset: z.ZodOptional<z.ZodString>;
2495
+ glassMaterial: z.ZodOptional<z.ZodObject<{
2496
+ id: z.ZodOptional<z.ZodString>;
2497
+ preset: z.ZodOptional<z.ZodEnum<{
2498
+ custom: "custom";
2499
+ white: "white";
2500
+ brick: "brick";
2501
+ concrete: "concrete";
2502
+ wood: "wood";
2503
+ glass: "glass";
2504
+ metal: "metal";
2505
+ plaster: "plaster";
2506
+ tile: "tile";
2507
+ marble: "marble";
2508
+ }>>;
2509
+ properties: z.ZodOptional<z.ZodObject<{
2510
+ color: z.ZodDefault<z.ZodString>;
2511
+ roughness: z.ZodDefault<z.ZodNumber>;
2512
+ metalness: z.ZodDefault<z.ZodNumber>;
2513
+ opacity: z.ZodDefault<z.ZodNumber>;
2514
+ transparent: z.ZodDefault<z.ZodBoolean>;
2515
+ side: z.ZodDefault<z.ZodEnum<{
2516
+ front: "front";
2517
+ back: "back";
2518
+ double: "double";
2519
+ }>>;
2520
+ }, z.core.$strip>>;
2521
+ texture: z.ZodOptional<z.ZodObject<{
2522
+ url: z.ZodString;
2523
+ repeat: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>>;
2524
+ scale: z.ZodOptional<z.ZodNumber>;
2525
+ }, z.core.$strip>>;
2526
+ }, z.core.$strip>>;
2527
+ glassMaterialPreset: z.ZodOptional<z.ZodString>;
2528
+ roofSegmentId: z.ZodOptional<z.ZodString>;
2529
+ position: z.ZodDefault<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
2530
+ rotation: z.ZodDefault<z.ZodNumber>;
2531
+ width: z.ZodDefault<z.ZodNumber>;
2532
+ height: z.ZodDefault<z.ZodNumber>;
2533
+ frameThickness: z.ZodDefault<z.ZodNumber>;
2534
+ frameDepth: z.ZodDefault<z.ZodNumber>;
2535
+ skylightType: z.ZodDefault<z.ZodEnum<{
2536
+ flat: "flat";
2537
+ sliding: "sliding";
2538
+ opening: "opening";
2539
+ "walk-on": "walk-on";
2540
+ lantern: "lantern";
2541
+ }>>;
2542
+ glassThickness: z.ZodDefault<z.ZodNumber>;
2543
+ lanternHeight: z.ZodDefault<z.ZodNumber>;
2544
+ lanternTopScale: z.ZodDefault<z.ZodNumber>;
2545
+ openingAngle: z.ZodDefault<z.ZodNumber>;
2546
+ openingSide: z.ZodDefault<z.ZodEnum<{
2547
+ top: "top";
2548
+ bottom: "bottom";
2549
+ left: "left";
2550
+ right: "right";
2551
+ }>>;
2552
+ operationState: z.ZodDefault<z.ZodNumber>;
2553
+ motorHousing: z.ZodDefault<z.ZodBoolean>;
2554
+ slideFraction: z.ZodDefault<z.ZodNumber>;
2555
+ slideDirection: z.ZodDefault<z.ZodEnum<{
2556
+ x: "x";
2557
+ z: "z";
2558
+ }>>;
2559
+ trackWidth: z.ZodDefault<z.ZodNumber>;
2560
+ motorHousingSize: z.ZodDefault<z.ZodNumber>;
2561
+ curb: z.ZodDefault<z.ZodBoolean>;
2562
+ curbHeight: z.ZodDefault<z.ZodNumber>;
2563
+ cutoutOffset: z.ZodDefault<z.ZodNumber>;
2564
+ surfaceNormal: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
2565
+ }, z.core.$strip>, z.ZodObject<{
2566
+ object: z.ZodDefault<z.ZodLiteral<"node">>;
2567
+ name: z.ZodOptional<z.ZodString>;
2568
+ parentId: z.ZodDefault<z.ZodNullable<z.ZodString>>;
2569
+ visible: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
2570
+ camera: z.ZodOptional<z.ZodObject<{
2571
+ position: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
2572
+ target: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
2573
+ mode: z.ZodDefault<z.ZodEnum<{
2574
+ perspective: "perspective";
2575
+ orthographic: "orthographic";
2576
+ }>>;
2577
+ fov: z.ZodOptional<z.ZodNumber>;
2578
+ zoom: z.ZodOptional<z.ZodNumber>;
2579
+ }, z.core.$strip>>;
2580
+ metadata: z.ZodDefault<z.ZodOptional<z.ZodJSONSchema>>;
2581
+ id: z.ZodDefault<z.ZodTemplateLiteral<`dormer_${string}`>>;
2582
+ type: z.ZodDefault<z.ZodLiteral<"dormer">>;
2583
+ material: z.ZodOptional<z.ZodObject<{
2584
+ id: z.ZodOptional<z.ZodString>;
2585
+ preset: z.ZodOptional<z.ZodEnum<{
2586
+ custom: "custom";
2587
+ white: "white";
2588
+ brick: "brick";
2589
+ concrete: "concrete";
2590
+ wood: "wood";
2591
+ glass: "glass";
2592
+ metal: "metal";
2593
+ plaster: "plaster";
2594
+ tile: "tile";
2595
+ marble: "marble";
2596
+ }>>;
2597
+ properties: z.ZodOptional<z.ZodObject<{
2598
+ color: z.ZodDefault<z.ZodString>;
2599
+ roughness: z.ZodDefault<z.ZodNumber>;
2600
+ metalness: z.ZodDefault<z.ZodNumber>;
2601
+ opacity: z.ZodDefault<z.ZodNumber>;
2602
+ transparent: z.ZodDefault<z.ZodBoolean>;
2603
+ side: z.ZodDefault<z.ZodEnum<{
2604
+ front: "front";
2605
+ back: "back";
2606
+ double: "double";
2607
+ }>>;
2608
+ }, z.core.$strip>>;
2609
+ texture: z.ZodOptional<z.ZodObject<{
2610
+ url: z.ZodString;
2611
+ repeat: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>>;
2612
+ scale: z.ZodOptional<z.ZodNumber>;
2613
+ }, z.core.$strip>>;
2614
+ }, z.core.$strip>>;
2615
+ materialPreset: z.ZodOptional<z.ZodString>;
2616
+ topMaterial: z.ZodOptional<z.ZodObject<{
2617
+ id: z.ZodOptional<z.ZodString>;
2618
+ preset: z.ZodOptional<z.ZodEnum<{
2619
+ custom: "custom";
2620
+ white: "white";
2621
+ brick: "brick";
2622
+ concrete: "concrete";
2623
+ wood: "wood";
2624
+ glass: "glass";
2625
+ metal: "metal";
2626
+ plaster: "plaster";
2627
+ tile: "tile";
2628
+ marble: "marble";
2629
+ }>>;
2630
+ properties: z.ZodOptional<z.ZodObject<{
2631
+ color: z.ZodDefault<z.ZodString>;
2632
+ roughness: z.ZodDefault<z.ZodNumber>;
2633
+ metalness: z.ZodDefault<z.ZodNumber>;
2634
+ opacity: z.ZodDefault<z.ZodNumber>;
2635
+ transparent: z.ZodDefault<z.ZodBoolean>;
2636
+ side: z.ZodDefault<z.ZodEnum<{
2637
+ front: "front";
2638
+ back: "back";
2639
+ double: "double";
2640
+ }>>;
2641
+ }, z.core.$strip>>;
2642
+ texture: z.ZodOptional<z.ZodObject<{
2643
+ url: z.ZodString;
2644
+ repeat: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>>;
2645
+ scale: z.ZodOptional<z.ZodNumber>;
2646
+ }, z.core.$strip>>;
2647
+ }, z.core.$strip>>;
2648
+ topMaterialPreset: z.ZodOptional<z.ZodString>;
2649
+ sideMaterial: z.ZodOptional<z.ZodObject<{
2650
+ id: z.ZodOptional<z.ZodString>;
2651
+ preset: z.ZodOptional<z.ZodEnum<{
2652
+ custom: "custom";
2653
+ white: "white";
2654
+ brick: "brick";
2655
+ concrete: "concrete";
2656
+ wood: "wood";
2657
+ glass: "glass";
2658
+ metal: "metal";
2659
+ plaster: "plaster";
2660
+ tile: "tile";
2661
+ marble: "marble";
2662
+ }>>;
2663
+ properties: z.ZodOptional<z.ZodObject<{
2664
+ color: z.ZodDefault<z.ZodString>;
2665
+ roughness: z.ZodDefault<z.ZodNumber>;
2666
+ metalness: z.ZodDefault<z.ZodNumber>;
2667
+ opacity: z.ZodDefault<z.ZodNumber>;
2668
+ transparent: z.ZodDefault<z.ZodBoolean>;
2669
+ side: z.ZodDefault<z.ZodEnum<{
2670
+ front: "front";
2671
+ back: "back";
2672
+ double: "double";
2673
+ }>>;
2674
+ }, z.core.$strip>>;
2675
+ texture: z.ZodOptional<z.ZodObject<{
2676
+ url: z.ZodString;
2677
+ repeat: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>>;
2678
+ scale: z.ZodOptional<z.ZodNumber>;
2679
+ }, z.core.$strip>>;
2680
+ }, z.core.$strip>>;
2681
+ sideMaterialPreset: z.ZodOptional<z.ZodString>;
2682
+ wallMaterial: z.ZodOptional<z.ZodObject<{
2683
+ id: z.ZodOptional<z.ZodString>;
2684
+ preset: z.ZodOptional<z.ZodEnum<{
2685
+ custom: "custom";
2686
+ white: "white";
2687
+ brick: "brick";
2688
+ concrete: "concrete";
2689
+ wood: "wood";
2690
+ glass: "glass";
2691
+ metal: "metal";
2692
+ plaster: "plaster";
2693
+ tile: "tile";
2694
+ marble: "marble";
2695
+ }>>;
2696
+ properties: z.ZodOptional<z.ZodObject<{
2697
+ color: z.ZodDefault<z.ZodString>;
2698
+ roughness: z.ZodDefault<z.ZodNumber>;
2699
+ metalness: z.ZodDefault<z.ZodNumber>;
2700
+ opacity: z.ZodDefault<z.ZodNumber>;
2701
+ transparent: z.ZodDefault<z.ZodBoolean>;
2702
+ side: z.ZodDefault<z.ZodEnum<{
2703
+ front: "front";
2704
+ back: "back";
2705
+ double: "double";
2706
+ }>>;
2707
+ }, z.core.$strip>>;
2708
+ texture: z.ZodOptional<z.ZodObject<{
2709
+ url: z.ZodString;
2710
+ repeat: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>>;
2711
+ scale: z.ZodOptional<z.ZodNumber>;
2712
+ }, z.core.$strip>>;
2713
+ }, z.core.$strip>>;
2714
+ wallMaterialPreset: z.ZodOptional<z.ZodString>;
2715
+ roofSegmentId: z.ZodOptional<z.ZodString>;
2716
+ position: z.ZodDefault<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
2717
+ rotation: z.ZodDefault<z.ZodNumber>;
2718
+ width: z.ZodDefault<z.ZodNumber>;
2719
+ depth: z.ZodDefault<z.ZodNumber>;
2720
+ height: z.ZodDefault<z.ZodNumber>;
2721
+ roofType: z.ZodDefault<z.ZodEnum<{
2722
+ flat: "flat";
2723
+ hip: "hip";
2724
+ gable: "gable";
2725
+ shed: "shed";
2726
+ gambrel: "gambrel";
2727
+ dutch: "dutch";
2728
+ mansard: "mansard";
2729
+ }>>;
2730
+ roofHeight: z.ZodDefault<z.ZodNumber>;
2731
+ wallSkirtHeight: z.ZodDefault<z.ZodNumber>;
2732
+ windowWidth: z.ZodDefault<z.ZodNumber>;
2733
+ windowHeight: z.ZodDefault<z.ZodNumber>;
2734
+ windowOffsetX: z.ZodDefault<z.ZodNumber>;
2735
+ windowOffsetY: z.ZodDefault<z.ZodNumber>;
2736
+ windowFrameThickness: z.ZodDefault<z.ZodNumber>;
2737
+ windowFrameDepth: z.ZodDefault<z.ZodNumber>;
2738
+ windowColumns: z.ZodDefault<z.ZodNumber>;
2739
+ windowRows: z.ZodDefault<z.ZodNumber>;
2740
+ windowDividerThickness: z.ZodDefault<z.ZodNumber>;
2741
+ windowShape: z.ZodDefault<z.ZodEnum<{
2742
+ rectangle: "rectangle";
2743
+ rounded: "rounded";
2744
+ arch: "arch";
2745
+ }>>;
2746
+ windowArchHeight: z.ZodDefault<z.ZodNumber>;
2747
+ windowCornerRadii: z.ZodDefault<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
2748
+ windowSill: z.ZodDefault<z.ZodBoolean>;
2749
+ windowSillDepth: z.ZodDefault<z.ZodNumber>;
2750
+ windowSillThickness: z.ZodDefault<z.ZodNumber>;
2751
+ }, z.core.$strip>, z.ZodObject<{
2752
+ object: z.ZodDefault<z.ZodLiteral<"node">>;
2753
+ name: z.ZodOptional<z.ZodString>;
2754
+ parentId: z.ZodDefault<z.ZodNullable<z.ZodString>>;
2755
+ visible: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
2756
+ camera: z.ZodOptional<z.ZodObject<{
2757
+ position: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
2758
+ target: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
2759
+ mode: z.ZodDefault<z.ZodEnum<{
2760
+ perspective: "perspective";
2761
+ orthographic: "orthographic";
2762
+ }>>;
2763
+ fov: z.ZodOptional<z.ZodNumber>;
2764
+ zoom: z.ZodOptional<z.ZodNumber>;
2765
+ }, z.core.$strip>>;
2766
+ metadata: z.ZodDefault<z.ZodOptional<z.ZodJSONSchema>>;
2767
+ id: z.ZodDefault<z.ZodTemplateLiteral<`downspout_${string}`>>;
2768
+ type: z.ZodDefault<z.ZodLiteral<"downspout">>;
2769
+ material: z.ZodOptional<z.ZodObject<{
2770
+ id: z.ZodOptional<z.ZodString>;
2771
+ preset: z.ZodOptional<z.ZodEnum<{
2772
+ custom: "custom";
2773
+ white: "white";
2774
+ brick: "brick";
2775
+ concrete: "concrete";
2776
+ wood: "wood";
2777
+ glass: "glass";
2778
+ metal: "metal";
2779
+ plaster: "plaster";
2780
+ tile: "tile";
2781
+ marble: "marble";
2782
+ }>>;
2783
+ properties: z.ZodOptional<z.ZodObject<{
2784
+ color: z.ZodDefault<z.ZodString>;
2785
+ roughness: z.ZodDefault<z.ZodNumber>;
2786
+ metalness: z.ZodDefault<z.ZodNumber>;
2787
+ opacity: z.ZodDefault<z.ZodNumber>;
2788
+ transparent: z.ZodDefault<z.ZodBoolean>;
2789
+ side: z.ZodDefault<z.ZodEnum<{
2790
+ front: "front";
2791
+ back: "back";
2792
+ double: "double";
2793
+ }>>;
2794
+ }, z.core.$strip>>;
2795
+ texture: z.ZodOptional<z.ZodObject<{
2796
+ url: z.ZodString;
2797
+ repeat: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>>;
2798
+ scale: z.ZodOptional<z.ZodNumber>;
2799
+ }, z.core.$strip>>;
2800
+ }, z.core.$strip>>;
2801
+ materialPreset: z.ZodDefault<z.ZodString>;
2802
+ gutterId: z.ZodOptional<z.ZodString>;
2803
+ outletId: z.ZodOptional<z.ZodString>;
2804
+ length: z.ZodDefault<z.ZodNumber>;
2805
+ diameter: z.ZodDefault<z.ZodNumber>;
2806
+ standoff: z.ZodDefault<z.ZodNumber>;
2807
+ shape: z.ZodDefault<z.ZodEnum<{
2808
+ round: "round";
2809
+ auto: "auto";
2810
+ rect: "rect";
2811
+ }>>;
2812
+ strapStyle: z.ZodDefault<z.ZodEnum<{
2813
+ none: "none";
2814
+ band: "band";
2815
+ }>>;
2816
+ strapSpacing: z.ZodDefault<z.ZodNumber>;
2817
+ terminal: z.ZodDefault<z.ZodEnum<{
2818
+ straight: "straight";
2819
+ splash: "splash";
2820
+ kickout: "kickout";
2821
+ }>>;
1610
2822
  }, z.core.$strip>], "type">;
1611
2823
  export type AnyNode = z.infer<typeof AnyNode>;
1612
2824
  export type AnyNodeType = AnyNode['type'];