@pascal-app/core 0.8.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 (272) hide show
  1. package/dist/events/bus.d.ts +39 -13
  2. package/dist/events/bus.d.ts.map +1 -1
  3. package/dist/hooks/scene-registry/scene-registry.d.ts +6 -22
  4. package/dist/hooks/scene-registry/scene-registry.d.ts.map +1 -1
  5. package/dist/hooks/scene-registry/scene-registry.js +33 -26
  6. package/dist/hooks/spatial-grid/floor-placed-elevation.d.ts +14 -0
  7. package/dist/hooks/spatial-grid/floor-placed-elevation.d.ts.map +1 -0
  8. package/dist/hooks/spatial-grid/floor-placed-elevation.js +51 -0
  9. package/dist/hooks/spatial-grid/floor-placed-elevation.test.d.ts +2 -0
  10. package/dist/hooks/spatial-grid/floor-placed-elevation.test.d.ts.map +1 -0
  11. package/dist/hooks/spatial-grid/floor-placed-elevation.test.js +273 -0
  12. package/dist/hooks/spatial-grid/spatial-grid-manager.d.ts +13 -2
  13. package/dist/hooks/spatial-grid/spatial-grid-manager.d.ts.map +1 -1
  14. package/dist/hooks/spatial-grid/spatial-grid-manager.js +95 -9
  15. package/dist/hooks/spatial-grid/spatial-grid-sync.d.ts +28 -1
  16. package/dist/hooks/spatial-grid/spatial-grid-sync.d.ts.map +1 -1
  17. package/dist/hooks/spatial-grid/spatial-grid-sync.js +91 -18
  18. package/dist/index.d.ts +22 -4
  19. package/dist/index.d.ts.map +1 -1
  20. package/dist/index.js +19 -2
  21. package/dist/lib/polygon-relations.d.ts +10 -0
  22. package/dist/lib/polygon-relations.d.ts.map +1 -0
  23. package/dist/lib/polygon-relations.js +73 -0
  24. package/dist/lib/space-detection-pause.test.d.ts +2 -0
  25. package/dist/lib/space-detection-pause.test.d.ts.map +1 -0
  26. package/dist/lib/space-detection-pause.test.js +42 -0
  27. package/dist/lib/space-detection.d.ts +30 -1
  28. package/dist/lib/space-detection.d.ts.map +1 -1
  29. package/dist/lib/space-detection.js +215 -36
  30. package/dist/lib/space-detection.test.d.ts +2 -0
  31. package/dist/lib/space-detection.test.d.ts.map +1 -0
  32. package/dist/lib/space-detection.test.js +77 -0
  33. package/dist/material-library.d.ts +1 -1
  34. package/dist/material-library.d.ts.map +1 -1
  35. package/dist/material-library.js +1940 -143
  36. package/dist/registry/__bench__/relations-resolver.bench.d.ts +15 -0
  37. package/dist/registry/__bench__/relations-resolver.bench.d.ts.map +1 -0
  38. package/dist/registry/__bench__/relations-resolver.bench.js +170 -0
  39. package/dist/registry/handles.d.ts +321 -0
  40. package/dist/registry/handles.d.ts.map +1 -0
  41. package/dist/registry/handles.js +24 -0
  42. package/dist/registry/index.d.ts +7 -0
  43. package/dist/registry/index.d.ts.map +1 -0
  44. package/dist/registry/index.js +4 -0
  45. package/dist/registry/registry.d.ts +93 -0
  46. package/dist/registry/registry.d.ts.map +1 -0
  47. package/dist/registry/registry.js +201 -0
  48. package/dist/registry/registry.test.d.ts +2 -0
  49. package/dist/registry/registry.test.d.ts.map +1 -0
  50. package/dist/registry/registry.test.js +183 -0
  51. package/dist/registry/relations-resolver.d.ts +42 -0
  52. package/dist/registry/relations-resolver.d.ts.map +1 -0
  53. package/dist/registry/relations-resolver.js +77 -0
  54. package/dist/registry/relations-resolver.test.d.ts +2 -0
  55. package/dist/registry/relations-resolver.test.d.ts.map +1 -0
  56. package/dist/registry/relations-resolver.test.js +183 -0
  57. package/dist/registry/scene-api.d.ts +44 -0
  58. package/dist/registry/scene-api.d.ts.map +1 -0
  59. package/dist/registry/scene-api.js +111 -0
  60. package/dist/registry/scene-api.test.d.ts +2 -0
  61. package/dist/registry/scene-api.test.d.ts.map +1 -0
  62. package/dist/registry/scene-api.test.js +183 -0
  63. package/dist/registry/subtree.d.ts +67 -0
  64. package/dist/registry/subtree.d.ts.map +1 -0
  65. package/dist/registry/subtree.js +119 -0
  66. package/dist/registry/subtree.test.d.ts +2 -0
  67. package/dist/registry/subtree.test.d.ts.map +1 -0
  68. package/dist/registry/subtree.test.js +133 -0
  69. package/dist/registry/types.d.ts +1420 -0
  70. package/dist/registry/types.d.ts.map +1 -0
  71. package/dist/registry/types.js +1 -0
  72. package/dist/schema/index.d.ts +17 -2
  73. package/dist/schema/index.d.ts.map +1 -1
  74. package/dist/schema/index.js +17 -3
  75. package/dist/schema/material.d.ts +10 -0
  76. package/dist/schema/material.d.ts.map +1 -1
  77. package/dist/schema/material.js +10 -0
  78. package/dist/schema/nodes/box-vent.d.ts +74 -0
  79. package/dist/schema/nodes/box-vent.d.ts.map +1 -0
  80. package/dist/schema/nodes/box-vent.js +63 -0
  81. package/dist/schema/nodes/building.d.ts +1 -1
  82. package/dist/schema/nodes/building.d.ts.map +1 -1
  83. package/dist/schema/nodes/building.js +3 -2
  84. package/dist/schema/nodes/ceiling.d.ts +2 -0
  85. package/dist/schema/nodes/ceiling.d.ts.map +1 -1
  86. package/dist/schema/nodes/ceiling.js +1 -1
  87. package/dist/schema/nodes/chimney.d.ts +158 -0
  88. package/dist/schema/nodes/chimney.d.ts.map +1 -0
  89. package/dist/schema/nodes/chimney.js +67 -0
  90. package/dist/schema/nodes/column.d.ts +597 -5
  91. package/dist/schema/nodes/column.d.ts.map +1 -1
  92. package/dist/schema/nodes/column.js +586 -6
  93. package/dist/schema/nodes/cupola.d.ts +66 -0
  94. package/dist/schema/nodes/cupola.d.ts.map +1 -0
  95. package/dist/schema/nodes/cupola.js +28 -0
  96. package/dist/schema/nodes/dormer.d.ts +228 -0
  97. package/dist/schema/nodes/dormer.d.ts.map +1 -0
  98. package/dist/schema/nodes/dormer.js +119 -0
  99. package/dist/schema/nodes/downspout.d.ts +75 -0
  100. package/dist/schema/nodes/downspout.d.ts.map +1 -0
  101. package/dist/schema/nodes/downspout.js +63 -0
  102. package/dist/schema/nodes/elevator.d.ts +105 -0
  103. package/dist/schema/nodes/elevator.d.ts.map +1 -0
  104. package/dist/schema/nodes/elevator.js +54 -0
  105. package/dist/schema/nodes/eyebrow-vent.d.ts +68 -0
  106. package/dist/schema/nodes/eyebrow-vent.d.ts.map +1 -0
  107. package/dist/schema/nodes/eyebrow-vent.js +40 -0
  108. package/dist/schema/nodes/fence.d.ts +1 -0
  109. package/dist/schema/nodes/fence.d.ts.map +1 -1
  110. package/dist/schema/nodes/fence.js +2 -0
  111. package/dist/schema/nodes/gutter.d.ts +84 -0
  112. package/dist/schema/nodes/gutter.d.ts.map +1 -0
  113. package/dist/schema/nodes/gutter.js +76 -0
  114. package/dist/schema/nodes/item.d.ts +4 -0
  115. package/dist/schema/nodes/item.d.ts.map +1 -1
  116. package/dist/schema/nodes/item.js +9 -0
  117. package/dist/schema/nodes/level.d.ts +1 -1
  118. package/dist/schema/nodes/level.d.ts.map +1 -1
  119. package/dist/schema/nodes/level.js +2 -0
  120. package/dist/schema/nodes/ridge-vent.d.ts +67 -0
  121. package/dist/schema/nodes/ridge-vent.d.ts.map +1 -0
  122. package/dist/schema/nodes/ridge-vent.js +30 -0
  123. package/dist/schema/nodes/roof-segment.d.ts +195 -1
  124. package/dist/schema/nodes/roof-segment.d.ts.map +1 -1
  125. package/dist/schema/nodes/roof-segment.js +254 -3
  126. package/dist/schema/nodes/roof.d.ts.map +1 -1
  127. package/dist/schema/nodes/roof.js +4 -16
  128. package/dist/schema/nodes/shelf.d.ts +105 -0
  129. package/dist/schema/nodes/shelf.d.ts.map +1 -0
  130. package/dist/schema/nodes/shelf.js +84 -0
  131. package/dist/schema/nodes/site.d.ts +1 -122
  132. package/dist/schema/nodes/site.d.ts.map +1 -1
  133. package/dist/schema/nodes/site.js +2 -6
  134. package/dist/schema/nodes/skylight.d.ts +279 -0
  135. package/dist/schema/nodes/skylight.d.ts.map +1 -0
  136. package/dist/schema/nodes/skylight.js +152 -0
  137. package/dist/schema/nodes/slab.d.ts +2 -0
  138. package/dist/schema/nodes/slab.d.ts.map +1 -1
  139. package/dist/schema/nodes/slab.js +1 -1
  140. package/dist/schema/nodes/solar-panel.d.ts +117 -0
  141. package/dist/schema/nodes/solar-panel.d.ts.map +1 -0
  142. package/dist/schema/nodes/solar-panel.js +47 -0
  143. package/dist/schema/nodes/surface-hole-metadata.d.ts +2 -0
  144. package/dist/schema/nodes/surface-hole-metadata.d.ts.map +1 -1
  145. package/dist/schema/nodes/surface-hole-metadata.js +3 -1
  146. package/dist/schema/nodes/turbine-vent.d.ts +68 -0
  147. package/dist/schema/nodes/turbine-vent.d.ts.map +1 -0
  148. package/dist/schema/nodes/turbine-vent.js +41 -0
  149. package/dist/schema/types.d.ts +1325 -125
  150. package/dist/schema/types.d.ts.map +1 -1
  151. package/dist/schema/types.js +26 -0
  152. package/dist/services/alignment-anchors.d.ts +100 -0
  153. package/dist/services/alignment-anchors.d.ts.map +1 -0
  154. package/dist/services/alignment-anchors.js +283 -0
  155. package/dist/services/alignment-anchors.test.d.ts +2 -0
  156. package/dist/services/alignment-anchors.test.d.ts.map +1 -0
  157. package/dist/services/alignment-anchors.test.js +383 -0
  158. package/dist/services/alignment.d.ts +126 -0
  159. package/dist/services/alignment.d.ts.map +1 -0
  160. package/dist/services/alignment.js +169 -0
  161. package/dist/services/alignment.test.d.ts +2 -0
  162. package/dist/services/alignment.test.d.ts.map +1 -0
  163. package/dist/services/alignment.test.js +92 -0
  164. package/dist/services/drag-session.d.ts +47 -0
  165. package/dist/services/drag-session.d.ts.map +1 -0
  166. package/dist/services/drag-session.js +100 -0
  167. package/dist/services/drag-session.test.d.ts +2 -0
  168. package/dist/services/drag-session.test.d.ts.map +1 -0
  169. package/dist/services/drag-session.test.js +219 -0
  170. package/dist/services/hosting.d.ts +80 -0
  171. package/dist/services/hosting.d.ts.map +1 -0
  172. package/dist/services/hosting.js +122 -0
  173. package/dist/services/hosting.test.d.ts +2 -0
  174. package/dist/services/hosting.test.d.ts.map +1 -0
  175. package/dist/services/hosting.test.js +199 -0
  176. package/dist/services/index.d.ts +7 -0
  177. package/dist/services/index.d.ts.map +1 -0
  178. package/dist/services/index.js +6 -0
  179. package/dist/services/movement.d.ts +48 -0
  180. package/dist/services/movement.d.ts.map +1 -0
  181. package/dist/services/movement.js +65 -0
  182. package/dist/services/movement.test.d.ts +2 -0
  183. package/dist/services/movement.test.d.ts.map +1 -0
  184. package/dist/services/movement.test.js +133 -0
  185. package/dist/services/single-undo-dance.test.d.ts +2 -0
  186. package/dist/services/single-undo-dance.test.d.ts.map +1 -0
  187. package/dist/services/single-undo-dance.test.js +210 -0
  188. package/dist/services/snap.d.ts +72 -0
  189. package/dist/services/snap.d.ts.map +1 -0
  190. package/dist/services/snap.js +120 -0
  191. package/dist/services/snap.test.d.ts +2 -0
  192. package/dist/services/snap.test.d.ts.map +1 -0
  193. package/dist/services/snap.test.js +95 -0
  194. package/dist/solar-panel-presets.d.ts +17 -0
  195. package/dist/solar-panel-presets.d.ts.map +1 -0
  196. package/dist/solar-panel-presets.js +43 -0
  197. package/dist/store/actions/node-actions.d.ts +14 -2
  198. package/dist/store/actions/node-actions.d.ts.map +1 -1
  199. package/dist/store/actions/node-actions.js +492 -15
  200. package/dist/store/actions/node-mutation-sanitize.test.d.ts +2 -0
  201. package/dist/store/actions/node-mutation-sanitize.test.d.ts.map +1 -0
  202. package/dist/store/actions/node-mutation-sanitize.test.js +147 -0
  203. package/dist/store/actions/reparent.test.d.ts +2 -0
  204. package/dist/store/actions/reparent.test.d.ts.map +1 -0
  205. package/dist/store/actions/reparent.test.js +212 -0
  206. package/dist/store/use-interactive.d.ts +39 -0
  207. package/dist/store/use-interactive.d.ts.map +1 -1
  208. package/dist/store/use-interactive.js +75 -0
  209. package/dist/store/use-live-node-overrides.d.ts +22 -0
  210. package/dist/store/use-live-node-overrides.d.ts.map +1 -0
  211. package/dist/store/use-live-node-overrides.js +59 -0
  212. package/dist/store/use-scene-elevator-migration.test.d.ts +2 -0
  213. package/dist/store/use-scene-elevator-migration.test.d.ts.map +1 -0
  214. package/dist/store/use-scene-elevator-migration.test.js +109 -0
  215. package/dist/store/use-scene.d.ts +11 -0
  216. package/dist/store/use-scene.d.ts.map +1 -1
  217. package/dist/store/use-scene.js +196 -6
  218. package/dist/systems/elevator/elevator-dispatch.d.ts +12 -0
  219. package/dist/systems/elevator/elevator-dispatch.d.ts.map +1 -0
  220. package/dist/systems/elevator/elevator-dispatch.js +57 -0
  221. package/dist/systems/elevator/elevator-geometry.d.ts +15 -0
  222. package/dist/systems/elevator/elevator-geometry.d.ts.map +1 -0
  223. package/dist/systems/elevator/elevator-geometry.js +50 -0
  224. package/dist/systems/elevator/elevator-opening-sync.d.ts +6 -0
  225. package/dist/systems/elevator/elevator-opening-sync.d.ts.map +1 -0
  226. package/dist/systems/elevator/elevator-opening-sync.js +218 -0
  227. package/dist/systems/elevator/elevator-opening-sync.test.d.ts +2 -0
  228. package/dist/systems/elevator/elevator-opening-sync.test.d.ts.map +1 -0
  229. package/dist/systems/elevator/elevator-opening-sync.test.js +146 -0
  230. package/dist/systems/elevator/elevator-opening-system.d.ts +2 -0
  231. package/dist/systems/elevator/elevator-opening-system.d.ts.map +1 -0
  232. package/dist/systems/elevator/elevator-opening-system.js +48 -0
  233. package/dist/systems/elevator/elevator-runtime-system.d.ts +2 -0
  234. package/dist/systems/elevator/elevator-runtime-system.d.ts.map +1 -0
  235. package/dist/systems/elevator/elevator-runtime-system.js +8 -0
  236. package/dist/systems/elevator/elevator-runtime.d.ts +18 -0
  237. package/dist/systems/elevator/elevator-runtime.d.ts.map +1 -0
  238. package/dist/systems/elevator/elevator-runtime.js +225 -0
  239. package/dist/systems/elevator/elevator-runtime.test.d.ts +2 -0
  240. package/dist/systems/elevator/elevator-runtime.test.d.ts.map +1 -0
  241. package/dist/systems/elevator/elevator-runtime.test.js +64 -0
  242. package/dist/systems/elevator/elevator-service.d.ts +19 -0
  243. package/dist/systems/elevator/elevator-service.d.ts.map +1 -0
  244. package/dist/systems/elevator/elevator-service.js +111 -0
  245. package/dist/systems/stair/stair-footprint.d.ts +44 -0
  246. package/dist/systems/stair/stair-footprint.d.ts.map +1 -0
  247. package/dist/systems/stair/stair-footprint.js +168 -0
  248. package/dist/systems/stair/stair-opening-preview.d.ts +1777 -0
  249. package/dist/systems/stair/stair-opening-preview.d.ts.map +1 -0
  250. package/dist/systems/stair/stair-opening-preview.js +93 -0
  251. package/dist/systems/stair/stair-opening-preview.test.d.ts +2 -0
  252. package/dist/systems/stair/stair-opening-preview.test.d.ts.map +1 -0
  253. package/dist/systems/stair/stair-opening-preview.test.js +80 -0
  254. package/dist/systems/stair/stair-opening-sync.d.ts.map +1 -1
  255. package/dist/systems/stair/stair-opening-sync.js +172 -147
  256. package/dist/systems/stair/stair-opening-sync.test.js +385 -2
  257. package/dist/systems/stair/stair-opening-system.d.ts +2 -0
  258. package/dist/systems/stair/stair-opening-system.d.ts.map +1 -0
  259. package/dist/systems/stair/stair-opening-system.js +104 -0
  260. package/dist/systems/wall/wall-move.d.ts +48 -0
  261. package/dist/systems/wall/wall-move.d.ts.map +1 -0
  262. package/dist/systems/wall/wall-move.js +193 -0
  263. package/dist/utils/clone-scene-graph.d.ts +6 -4
  264. package/dist/utils/clone-scene-graph.d.ts.map +1 -1
  265. package/dist/utils/clone-scene-graph.js +6 -4
  266. package/dist/utils/clone-scene-graph.test.d.ts +2 -0
  267. package/dist/utils/clone-scene-graph.test.d.ts.map +1 -0
  268. package/dist/utils/clone-scene-graph.test.js +59 -0
  269. package/dist/validation/validate-build-json.d.ts +43 -0
  270. package/dist/validation/validate-build-json.d.ts.map +1 -0
  271. package/dist/validation/validate-build-json.js +227 -0
  272. package/package.json +9 -2
@@ -21,128 +21,7 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
21
21
  type: z.ZodLiteral<"polygon">;
22
22
  points: z.ZodArray<z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>>;
23
23
  }, z.core.$strip>>>;
24
- children: z.ZodDefault<z.ZodArray<z.ZodDiscriminatedUnion<[z.ZodObject<{
25
- object: z.ZodDefault<z.ZodLiteral<"node">>;
26
- name: z.ZodOptional<z.ZodString>;
27
- parentId: z.ZodDefault<z.ZodNullable<z.ZodString>>;
28
- visible: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
29
- camera: z.ZodOptional<z.ZodObject<{
30
- position: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
31
- target: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
32
- mode: z.ZodDefault<z.ZodEnum<{
33
- perspective: "perspective";
34
- orthographic: "orthographic";
35
- }>>;
36
- fov: z.ZodOptional<z.ZodNumber>;
37
- zoom: z.ZodOptional<z.ZodNumber>;
38
- }, z.core.$strip>>;
39
- metadata: z.ZodDefault<z.ZodOptional<z.ZodJSONSchema>>;
40
- id: z.ZodDefault<z.ZodTemplateLiteral<`building_${string}`>>;
41
- type: z.ZodDefault<z.ZodLiteral<"building">>;
42
- children: z.ZodDefault<z.ZodArray<z.ZodDefault<z.ZodTemplateLiteral<`level_${string}`>>>>;
43
- position: z.ZodDefault<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
44
- rotation: z.ZodDefault<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
45
- }, z.core.$strip>, z.ZodObject<{
46
- object: z.ZodDefault<z.ZodLiteral<"node">>;
47
- name: z.ZodOptional<z.ZodString>;
48
- parentId: z.ZodDefault<z.ZodNullable<z.ZodString>>;
49
- visible: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
50
- camera: z.ZodOptional<z.ZodObject<{
51
- position: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
52
- target: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
53
- mode: z.ZodDefault<z.ZodEnum<{
54
- perspective: "perspective";
55
- orthographic: "orthographic";
56
- }>>;
57
- fov: z.ZodOptional<z.ZodNumber>;
58
- zoom: z.ZodOptional<z.ZodNumber>;
59
- }, z.core.$strip>>;
60
- metadata: z.ZodDefault<z.ZodOptional<z.ZodJSONSchema>>;
61
- id: z.ZodDefault<z.ZodTemplateLiteral<`item_${string}`>>;
62
- type: z.ZodDefault<z.ZodLiteral<"item">>;
63
- position: z.ZodDefault<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
64
- rotation: z.ZodDefault<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
65
- scale: z.ZodDefault<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
66
- side: z.ZodOptional<z.ZodEnum<{
67
- front: "front";
68
- back: "back";
69
- }>>;
70
- children: z.ZodDefault<z.ZodArray<z.ZodDefault<z.ZodTemplateLiteral<`item_${string}`>>>>;
71
- wallId: z.ZodOptional<z.ZodString>;
72
- wallT: z.ZodOptional<z.ZodNumber>;
73
- collectionIds: z.ZodOptional<z.ZodArray<z.ZodCustom<`collection_${string}`, `collection_${string}`>>>;
74
- asset: z.ZodObject<{
75
- id: z.ZodString;
76
- category: z.ZodString;
77
- name: z.ZodString;
78
- thumbnail: z.ZodString;
79
- floorPlanUrl: z.ZodOptional<z.ZodString>;
80
- source: z.ZodDefault<z.ZodEnum<{
81
- library: "library";
82
- community: "community";
83
- mine: "mine";
84
- }>>;
85
- isDraft: z.ZodOptional<z.ZodBoolean>;
86
- src: z.ZodString;
87
- dimensions: z.ZodDefault<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
88
- attachTo: z.ZodOptional<z.ZodEnum<{
89
- wall: "wall";
90
- ceiling: "ceiling";
91
- "wall-side": "wall-side";
92
- }>>;
93
- tags: z.ZodOptional<z.ZodArray<z.ZodString>>;
94
- offset: z.ZodDefault<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
95
- rotation: z.ZodDefault<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
96
- scale: z.ZodDefault<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
97
- surface: z.ZodOptional<z.ZodObject<{
98
- height: z.ZodNumber;
99
- }, z.core.$strip>>;
100
- interactive: z.ZodOptional<z.ZodObject<{
101
- controls: z.ZodDefault<z.ZodArray<z.ZodDiscriminatedUnion<[z.ZodObject<{
102
- kind: z.ZodLiteral<"toggle">;
103
- label: z.ZodOptional<z.ZodString>;
104
- default: z.ZodOptional<z.ZodBoolean>;
105
- }, z.core.$strip>, z.ZodObject<{
106
- kind: z.ZodLiteral<"slider">;
107
- label: z.ZodString;
108
- min: z.ZodNumber;
109
- max: z.ZodNumber;
110
- step: z.ZodDefault<z.ZodNumber>;
111
- unit: z.ZodOptional<z.ZodString>;
112
- displayMode: z.ZodDefault<z.ZodEnum<{
113
- slider: "slider";
114
- stepper: "stepper";
115
- dial: "dial";
116
- }>>;
117
- default: z.ZodOptional<z.ZodNumber>;
118
- }, z.core.$strip>, z.ZodObject<{
119
- kind: z.ZodLiteral<"temperature">;
120
- label: z.ZodDefault<z.ZodString>;
121
- min: z.ZodDefault<z.ZodNumber>;
122
- max: z.ZodDefault<z.ZodNumber>;
123
- unit: z.ZodDefault<z.ZodEnum<{
124
- C: "C";
125
- F: "F";
126
- }>>;
127
- default: z.ZodOptional<z.ZodNumber>;
128
- }, z.core.$strip>], "kind">>>;
129
- effects: z.ZodDefault<z.ZodArray<z.ZodDiscriminatedUnion<[z.ZodObject<{
130
- kind: z.ZodLiteral<"animation">;
131
- clips: z.ZodObject<{
132
- on: z.ZodOptional<z.ZodString>;
133
- off: z.ZodOptional<z.ZodString>;
134
- loop: z.ZodOptional<z.ZodString>;
135
- }, z.core.$strip>;
136
- }, z.core.$strip>, z.ZodObject<{
137
- kind: z.ZodLiteral<"light">;
138
- color: z.ZodDefault<z.ZodString>;
139
- intensityRange: z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>;
140
- distance: z.ZodOptional<z.ZodNumber>;
141
- offset: z.ZodDefault<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
142
- }, z.core.$strip>], "kind">>>;
143
- }, z.core.$strip>>;
144
- }, z.core.$strip>;
145
- }, z.core.$strip>], "type">>>;
24
+ children: z.ZodDefault<z.ZodArray<z.ZodString>>;
146
25
  }, z.core.$strip>, z.ZodObject<{
147
26
  object: z.ZodDefault<z.ZodLiteral<"node">>;
148
27
  name: z.ZodOptional<z.ZodString>;
@@ -161,9 +40,93 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
161
40
  metadata: z.ZodDefault<z.ZodOptional<z.ZodJSONSchema>>;
162
41
  id: z.ZodDefault<z.ZodTemplateLiteral<`building_${string}`>>;
163
42
  type: z.ZodDefault<z.ZodLiteral<"building">>;
164
- children: z.ZodDefault<z.ZodArray<z.ZodDefault<z.ZodTemplateLiteral<`level_${string}`>>>>;
43
+ children: z.ZodDefault<z.ZodArray<z.ZodUnion<readonly [z.ZodDefault<z.ZodTemplateLiteral<`level_${string}`>>, z.ZodDefault<z.ZodTemplateLiteral<`elevator_${string}`>>]>>>;
165
44
  position: z.ZodDefault<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
166
45
  rotation: z.ZodDefault<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
46
+ }, z.core.$strip>, z.ZodObject<{
47
+ object: z.ZodDefault<z.ZodLiteral<"node">>;
48
+ name: z.ZodOptional<z.ZodString>;
49
+ parentId: z.ZodDefault<z.ZodNullable<z.ZodString>>;
50
+ visible: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
51
+ camera: z.ZodOptional<z.ZodObject<{
52
+ position: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
53
+ target: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
54
+ mode: z.ZodDefault<z.ZodEnum<{
55
+ perspective: "perspective";
56
+ orthographic: "orthographic";
57
+ }>>;
58
+ fov: z.ZodOptional<z.ZodNumber>;
59
+ zoom: z.ZodOptional<z.ZodNumber>;
60
+ }, z.core.$strip>>;
61
+ metadata: z.ZodDefault<z.ZodOptional<z.ZodJSONSchema>>;
62
+ id: z.ZodDefault<z.ZodTemplateLiteral<`elevator_${string}`>>;
63
+ type: z.ZodDefault<z.ZodLiteral<"elevator">>;
64
+ material: z.ZodOptional<z.ZodObject<{
65
+ id: z.ZodOptional<z.ZodString>;
66
+ preset: z.ZodOptional<z.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>;
167
130
  }, z.core.$strip>, z.ZodObject<{
168
131
  object: z.ZodDefault<z.ZodLiteral<"node">>;
169
132
  name: z.ZodOptional<z.ZodString>;
@@ -182,7 +145,7 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
182
145
  metadata: z.ZodDefault<z.ZodOptional<z.ZodJSONSchema>>;
183
146
  id: z.ZodDefault<z.ZodTemplateLiteral<`level_${string}`>>;
184
147
  type: z.ZodDefault<z.ZodLiteral<"level">>;
185
- children: z.ZodDefault<z.ZodArray<z.ZodUnion<readonly [z.ZodDefault<z.ZodTemplateLiteral<`wall_${string}`>>, z.ZodDefault<z.ZodTemplateLiteral<`fence_${string}`>>, z.ZodDefault<z.ZodTemplateLiteral<`column_${string}`>>, z.ZodDefault<z.ZodTemplateLiteral<`item_${string}`>>, z.ZodDefault<z.ZodTemplateLiteral<`zone_${string}`>>, z.ZodDefault<z.ZodTemplateLiteral<`slab_${string}`>>, z.ZodDefault<z.ZodTemplateLiteral<`ceiling_${string}`>>, z.ZodDefault<z.ZodTemplateLiteral<`roof_${string}`>>, z.ZodDefault<z.ZodTemplateLiteral<`stair_${string}`>>, z.ZodDefault<z.ZodTemplateLiteral<`scan_${string}`>>, z.ZodDefault<z.ZodTemplateLiteral<`guide_${string}`>>, z.ZodDefault<z.ZodTemplateLiteral<`spawn_${string}`>>]>>>;
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}`>>]>>>;
186
149
  level: z.ZodDefault<z.ZodNumber>;
187
150
  }, z.core.$strip>, z.ZodObject<{
188
151
  object: z.ZodDefault<z.ZodLiteral<"node">>;
@@ -335,6 +298,24 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
335
298
  lowerBandCarvingLevel: z.ZodDefault<z.ZodNumber>;
336
299
  dentilCount: z.ZodDefault<z.ZodNumber>;
337
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>;
338
319
  material: z.ZodOptional<z.ZodObject<{
339
320
  id: z.ZodOptional<z.ZodString>;
340
321
  preset: z.ZodOptional<z.ZodEnum<{
@@ -567,6 +548,7 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
567
548
  floating: "floating";
568
549
  grounded: "grounded";
569
550
  }>>;
551
+ showInfill: z.ZodDefault<z.ZodBoolean>;
570
552
  color: z.ZodDefault<z.ZodString>;
571
553
  style: z.ZodDefault<z.ZodEnum<{
572
554
  slat: "slat";
@@ -621,7 +603,9 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
621
603
  ceiling: "ceiling";
622
604
  "wall-side": "wall-side";
623
605
  }>>;
606
+ recessed: z.ZodOptional<z.ZodBoolean>;
624
607
  tags: z.ZodOptional<z.ZodArray<z.ZodString>>;
608
+ functionTags: z.ZodOptional<z.ZodArray<z.ZodString>>;
625
609
  offset: z.ZodDefault<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
626
610
  rotation: z.ZodDefault<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
627
611
  scale: z.ZodDefault<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
@@ -749,9 +733,11 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
749
733
  holeMetadata: z.ZodDefault<z.ZodArray<z.ZodObject<{
750
734
  source: z.ZodDefault<z.ZodEnum<{
751
735
  stair: "stair";
736
+ elevator: "elevator";
752
737
  manual: "manual";
753
738
  }>>;
754
739
  stairId: z.ZodOptional<z.ZodString>;
740
+ elevatorId: z.ZodOptional<z.ZodString>;
755
741
  }, z.core.$strip>>>;
756
742
  elevation: z.ZodDefault<z.ZodNumber>;
757
743
  autoFromWalls: z.ZodDefault<z.ZodBoolean>;
@@ -812,9 +798,11 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
812
798
  holeMetadata: z.ZodDefault<z.ZodArray<z.ZodObject<{
813
799
  source: z.ZodDefault<z.ZodEnum<{
814
800
  stair: "stair";
801
+ elevator: "elevator";
815
802
  manual: "manual";
816
803
  }>>;
817
804
  stairId: z.ZodOptional<z.ZodString>;
805
+ elevatorId: z.ZodOptional<z.ZodString>;
818
806
  }, z.core.$strip>>>;
819
807
  height: z.ZodDefault<z.ZodNumber>;
820
808
  autoFromWalls: z.ZodDefault<z.ZodBoolean>;
@@ -1022,6 +1010,105 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
1022
1010
  }, z.core.$strip>>;
1023
1011
  }, z.core.$strip>>;
1024
1012
  materialPreset: z.ZodOptional<z.ZodString>;
1013
+ topMaterial: z.ZodOptional<z.ZodObject<{
1014
+ id: z.ZodOptional<z.ZodString>;
1015
+ preset: z.ZodOptional<z.ZodEnum<{
1016
+ custom: "custom";
1017
+ white: "white";
1018
+ brick: "brick";
1019
+ concrete: "concrete";
1020
+ wood: "wood";
1021
+ glass: "glass";
1022
+ metal: "metal";
1023
+ plaster: "plaster";
1024
+ tile: "tile";
1025
+ marble: "marble";
1026
+ }>>;
1027
+ properties: z.ZodOptional<z.ZodObject<{
1028
+ color: z.ZodDefault<z.ZodString>;
1029
+ roughness: z.ZodDefault<z.ZodNumber>;
1030
+ metalness: z.ZodDefault<z.ZodNumber>;
1031
+ opacity: z.ZodDefault<z.ZodNumber>;
1032
+ transparent: z.ZodDefault<z.ZodBoolean>;
1033
+ side: z.ZodDefault<z.ZodEnum<{
1034
+ front: "front";
1035
+ back: "back";
1036
+ double: "double";
1037
+ }>>;
1038
+ }, z.core.$strip>>;
1039
+ texture: z.ZodOptional<z.ZodObject<{
1040
+ url: z.ZodString;
1041
+ repeat: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>>;
1042
+ scale: z.ZodOptional<z.ZodNumber>;
1043
+ }, z.core.$strip>>;
1044
+ }, z.core.$strip>>;
1045
+ topMaterialPreset: z.ZodOptional<z.ZodString>;
1046
+ edgeMaterial: z.ZodOptional<z.ZodObject<{
1047
+ id: z.ZodOptional<z.ZodString>;
1048
+ preset: z.ZodOptional<z.ZodEnum<{
1049
+ custom: "custom";
1050
+ white: "white";
1051
+ brick: "brick";
1052
+ concrete: "concrete";
1053
+ wood: "wood";
1054
+ glass: "glass";
1055
+ metal: "metal";
1056
+ plaster: "plaster";
1057
+ tile: "tile";
1058
+ marble: "marble";
1059
+ }>>;
1060
+ properties: z.ZodOptional<z.ZodObject<{
1061
+ color: z.ZodDefault<z.ZodString>;
1062
+ roughness: z.ZodDefault<z.ZodNumber>;
1063
+ metalness: z.ZodDefault<z.ZodNumber>;
1064
+ opacity: z.ZodDefault<z.ZodNumber>;
1065
+ transparent: z.ZodDefault<z.ZodBoolean>;
1066
+ side: z.ZodDefault<z.ZodEnum<{
1067
+ front: "front";
1068
+ back: "back";
1069
+ double: "double";
1070
+ }>>;
1071
+ }, z.core.$strip>>;
1072
+ texture: z.ZodOptional<z.ZodObject<{
1073
+ url: z.ZodString;
1074
+ repeat: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>>;
1075
+ scale: z.ZodOptional<z.ZodNumber>;
1076
+ }, z.core.$strip>>;
1077
+ }, z.core.$strip>>;
1078
+ edgeMaterialPreset: z.ZodOptional<z.ZodString>;
1079
+ wallMaterial: z.ZodOptional<z.ZodObject<{
1080
+ id: z.ZodOptional<z.ZodString>;
1081
+ preset: z.ZodOptional<z.ZodEnum<{
1082
+ custom: "custom";
1083
+ white: "white";
1084
+ brick: "brick";
1085
+ concrete: "concrete";
1086
+ wood: "wood";
1087
+ glass: "glass";
1088
+ metal: "metal";
1089
+ plaster: "plaster";
1090
+ tile: "tile";
1091
+ marble: "marble";
1092
+ }>>;
1093
+ properties: z.ZodOptional<z.ZodObject<{
1094
+ color: z.ZodDefault<z.ZodString>;
1095
+ roughness: z.ZodDefault<z.ZodNumber>;
1096
+ metalness: z.ZodDefault<z.ZodNumber>;
1097
+ opacity: z.ZodDefault<z.ZodNumber>;
1098
+ transparent: z.ZodDefault<z.ZodBoolean>;
1099
+ side: z.ZodDefault<z.ZodEnum<{
1100
+ front: "front";
1101
+ back: "back";
1102
+ double: "double";
1103
+ }>>;
1104
+ }, z.core.$strip>>;
1105
+ texture: z.ZodOptional<z.ZodObject<{
1106
+ url: z.ZodString;
1107
+ repeat: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>>;
1108
+ scale: z.ZodOptional<z.ZodNumber>;
1109
+ }, z.core.$strip>>;
1110
+ }, z.core.$strip>>;
1111
+ wallMaterialPreset: z.ZodOptional<z.ZodString>;
1025
1112
  position: z.ZodDefault<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
1026
1113
  rotation: z.ZodDefault<z.ZodNumber>;
1027
1114
  roofType: z.ZodDefault<z.ZodEnum<{
@@ -1036,11 +1123,92 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
1036
1123
  width: z.ZodDefault<z.ZodNumber>;
1037
1124
  depth: z.ZodDefault<z.ZodNumber>;
1038
1125
  wallHeight: z.ZodDefault<z.ZodNumber>;
1039
- roofHeight: z.ZodDefault<z.ZodNumber>;
1126
+ pitch: z.ZodDefault<z.ZodNumber>;
1040
1127
  wallThickness: z.ZodDefault<z.ZodNumber>;
1041
1128
  deckThickness: z.ZodDefault<z.ZodNumber>;
1042
1129
  overhang: z.ZodDefault<z.ZodNumber>;
1043
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<{
1180
+ id: z.ZodOptional<z.ZodString>;
1181
+ preset: z.ZodOptional<z.ZodEnum<{
1182
+ custom: "custom";
1183
+ white: "white";
1184
+ brick: "brick";
1185
+ concrete: "concrete";
1186
+ wood: "wood";
1187
+ glass: "glass";
1188
+ metal: "metal";
1189
+ plaster: "plaster";
1190
+ tile: "tile";
1191
+ marble: "marble";
1192
+ }>>;
1193
+ properties: z.ZodOptional<z.ZodObject<{
1194
+ color: z.ZodDefault<z.ZodString>;
1195
+ roughness: z.ZodDefault<z.ZodNumber>;
1196
+ metalness: z.ZodDefault<z.ZodNumber>;
1197
+ opacity: z.ZodDefault<z.ZodNumber>;
1198
+ transparent: z.ZodDefault<z.ZodBoolean>;
1199
+ side: z.ZodDefault<z.ZodEnum<{
1200
+ front: "front";
1201
+ back: "back";
1202
+ double: "double";
1203
+ }>>;
1204
+ }, z.core.$strip>>;
1205
+ texture: z.ZodOptional<z.ZodObject<{
1206
+ url: z.ZodString;
1207
+ repeat: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>>;
1208
+ scale: z.ZodOptional<z.ZodNumber>;
1209
+ }, z.core.$strip>>;
1210
+ }, z.core.$strip>>;
1211
+ materialPreset: z.ZodOptional<z.ZodString>;
1044
1212
  }, z.core.$strip>, z.ZodObject<{
1045
1213
  object: z.ZodDefault<z.ZodLiteral<"node">>;
1046
1214
  name: z.ZodOptional<z.ZodString>;
@@ -1619,6 +1787,1038 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
1619
1787
  doorCloser: z.ZodDefault<z.ZodBoolean>;
1620
1788
  panicBar: z.ZodDefault<z.ZodBoolean>;
1621
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
+ }>>;
1622
2822
  }, z.core.$strip>], "type">;
1623
2823
  export type AnyNode = z.infer<typeof AnyNode>;
1624
2824
  export type AnyNodeType = AnyNode['type'];