@pascal-app/core 1.0.0-beta.4 → 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (263) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +23 -0
  3. package/dist/capture/index.d.ts +3 -0
  4. package/dist/capture/index.d.ts.map +1 -0
  5. package/dist/capture/index.js +2 -0
  6. package/dist/capture/schema.d.ts +417 -0
  7. package/dist/capture/schema.d.ts.map +1 -0
  8. package/dist/capture/schema.js +348 -0
  9. package/dist/capture/source.d.ts +60 -0
  10. package/dist/capture/source.d.ts.map +1 -0
  11. package/dist/capture/source.js +254 -0
  12. package/dist/events/bus.d.ts +55 -7
  13. package/dist/events/bus.d.ts.map +1 -1
  14. package/dist/events/hidden-wall-pointer-hold.d.ts +28 -0
  15. package/dist/events/hidden-wall-pointer-hold.d.ts.map +1 -0
  16. package/dist/events/hidden-wall-pointer-hold.js +37 -0
  17. package/dist/hooks/spatial-grid/spatial-grid-manager.d.ts +12 -0
  18. package/dist/hooks/spatial-grid/spatial-grid-manager.d.ts.map +1 -1
  19. package/dist/hooks/spatial-grid/spatial-grid-manager.js +39 -1
  20. package/dist/hooks/spatial-grid/spatial-grid-sync.d.ts +2785 -1
  21. package/dist/hooks/spatial-grid/spatial-grid-sync.d.ts.map +1 -1
  22. package/dist/hooks/spatial-grid/spatial-grid-sync.js +132 -19
  23. package/dist/hooks/spatial-grid/support-host-patch.d.ts +45 -1
  24. package/dist/hooks/spatial-grid/support-host-patch.d.ts.map +1 -1
  25. package/dist/hooks/spatial-grid/support-host-patch.js +171 -6
  26. package/dist/index.d.ts +15 -6
  27. package/dist/index.d.ts.map +1 -1
  28. package/dist/index.js +17 -5
  29. package/dist/lib/asset-storage.d.ts.map +1 -1
  30. package/dist/lib/asset-storage.js +4 -1
  31. package/dist/lib/polygon-union.d.ts +4 -0
  32. package/dist/lib/polygon-union.d.ts.map +1 -0
  33. package/dist/lib/polygon-union.js +306 -0
  34. package/dist/lib/roof-overlap.d.ts +32 -0
  35. package/dist/lib/roof-overlap.d.ts.map +1 -0
  36. package/dist/lib/roof-overlap.js +72 -0
  37. package/dist/lib/room-topology-index.d.ts +50 -0
  38. package/dist/lib/room-topology-index.d.ts.map +1 -0
  39. package/dist/lib/room-topology-index.js +237 -0
  40. package/dist/lib/slab-polygon.d.ts +35 -2
  41. package/dist/lib/slab-polygon.d.ts.map +1 -1
  42. package/dist/lib/slab-polygon.js +133 -27
  43. package/dist/lib/space-detection.d.ts +40 -3
  44. package/dist/lib/space-detection.d.ts.map +1 -1
  45. package/dist/lib/space-detection.js +890 -246
  46. package/dist/registry/handles.d.ts +24 -3
  47. package/dist/registry/handles.d.ts.map +1 -1
  48. package/dist/registry/index.d.ts +3 -3
  49. package/dist/registry/index.d.ts.map +1 -1
  50. package/dist/registry/index.js +1 -1
  51. package/dist/registry/registry.d.ts +29 -6
  52. package/dist/registry/registry.d.ts.map +1 -1
  53. package/dist/registry/registry.js +111 -4
  54. package/dist/registry/scene-api.d.ts +16 -0
  55. package/dist/registry/scene-api.d.ts.map +1 -1
  56. package/dist/registry/scene-api.js +49 -1
  57. package/dist/registry/types.d.ts +261 -13
  58. package/dist/registry/types.d.ts.map +1 -1
  59. package/dist/registry/use-registry-version.d.ts +11 -0
  60. package/dist/registry/use-registry-version.d.ts.map +1 -0
  61. package/dist/registry/use-registry-version.js +15 -0
  62. package/dist/schema/__bench__/node-parsers.bench.d.ts +24 -0
  63. package/dist/schema/__bench__/node-parsers.bench.d.ts.map +1 -0
  64. package/dist/schema/__bench__/node-parsers.bench.js +314 -0
  65. package/dist/schema/__fixtures__/node-fixtures.d.ts +28 -0
  66. package/dist/schema/__fixtures__/node-fixtures.d.ts.map +1 -0
  67. package/dist/schema/__fixtures__/node-fixtures.js +125 -0
  68. package/dist/schema/base.d.ts +1 -1
  69. package/dist/schema/base.d.ts.map +1 -1
  70. package/dist/schema/base.js +8 -1
  71. package/dist/schema/compiled-node-parsers.d.ts +40 -0
  72. package/dist/schema/compiled-node-parsers.d.ts.map +1 -0
  73. package/dist/schema/compiled-node-parsers.js +95 -0
  74. package/dist/schema/index.d.ts +20 -15
  75. package/dist/schema/index.d.ts.map +1 -1
  76. package/dist/schema/index.js +19 -12
  77. package/dist/schema/material.d.ts +2 -1
  78. package/dist/schema/material.d.ts.map +1 -1
  79. package/dist/schema/material.js +1 -0
  80. package/dist/schema/nodes/automatic-downspout.d.ts +17 -0
  81. package/dist/schema/nodes/automatic-downspout.d.ts.map +1 -0
  82. package/dist/schema/nodes/automatic-downspout.js +237 -0
  83. package/dist/schema/nodes/block.d.ts +107 -0
  84. package/dist/schema/nodes/block.d.ts.map +1 -0
  85. package/dist/schema/nodes/block.js +207 -0
  86. package/dist/schema/nodes/box-vent.d.ts +8 -2
  87. package/dist/schema/nodes/box-vent.d.ts.map +1 -1
  88. package/dist/schema/nodes/box-vent.js +2 -0
  89. package/dist/schema/nodes/building.d.ts +1 -1
  90. package/dist/schema/nodes/cabinet.d.ts +25 -3
  91. package/dist/schema/nodes/cabinet.d.ts.map +1 -1
  92. package/dist/schema/nodes/cabinet.js +26 -5
  93. package/dist/schema/nodes/ceiling.d.ts +1 -1
  94. package/dist/schema/nodes/chimney.d.ts +2 -2
  95. package/dist/schema/nodes/column.d.ts +6 -6
  96. package/dist/schema/nodes/construction-dimension.d.ts +4 -4
  97. package/dist/schema/nodes/cupola.d.ts +9 -1
  98. package/dist/schema/nodes/cupola.d.ts.map +1 -1
  99. package/dist/schema/nodes/cupola.js +2 -0
  100. package/dist/schema/nodes/door.d.ts +1 -1
  101. package/dist/schema/nodes/dormer.d.ts +44 -1
  102. package/dist/schema/nodes/dormer.d.ts.map +1 -1
  103. package/dist/schema/nodes/dormer.js +131 -7
  104. package/dist/schema/nodes/downspout.d.ts +11 -1
  105. package/dist/schema/nodes/downspout.d.ts.map +1 -1
  106. package/dist/schema/nodes/downspout.js +24 -0
  107. package/dist/schema/nodes/duct-fitting.d.ts +18 -1
  108. package/dist/schema/nodes/duct-fitting.d.ts.map +1 -1
  109. package/dist/schema/nodes/duct-fitting.js +25 -4
  110. package/dist/schema/nodes/duct-segment.d.ts +23 -1
  111. package/dist/schema/nodes/duct-segment.d.ts.map +1 -1
  112. package/dist/schema/nodes/duct-segment.js +20 -0
  113. package/dist/schema/nodes/duct-terminal.d.ts +1 -1
  114. package/dist/schema/nodes/elevator.d.ts +1 -1
  115. package/dist/schema/nodes/eyebrow-vent.d.ts +8 -2
  116. package/dist/schema/nodes/eyebrow-vent.d.ts.map +1 -1
  117. package/dist/schema/nodes/eyebrow-vent.js +2 -0
  118. package/dist/schema/nodes/fence.d.ts +1 -1
  119. package/dist/schema/nodes/guide.d.ts +1 -1
  120. package/dist/schema/nodes/gutter.d.ts +36 -2
  121. package/dist/schema/nodes/gutter.d.ts.map +1 -1
  122. package/dist/schema/nodes/gutter.js +308 -1
  123. package/dist/schema/nodes/hanger-overrides.d.ts +7 -0
  124. package/dist/schema/nodes/hanger-overrides.d.ts.map +1 -0
  125. package/dist/schema/nodes/hanger-overrides.js +6 -0
  126. package/dist/schema/nodes/hvac-equipment.d.ts +1 -1
  127. package/dist/schema/nodes/item.d.ts +4 -3
  128. package/dist/schema/nodes/item.d.ts.map +1 -1
  129. package/dist/schema/nodes/item.js +5 -0
  130. package/dist/schema/nodes/lean-to-extension.d.ts +212 -0
  131. package/dist/schema/nodes/lean-to-extension.d.ts.map +1 -0
  132. package/dist/schema/nodes/lean-to-extension.js +114 -0
  133. package/dist/schema/nodes/level.d.ts +5 -2
  134. package/dist/schema/nodes/level.d.ts.map +1 -1
  135. package/dist/schema/nodes/level.js +9 -0
  136. package/dist/schema/nodes/lineset.d.ts +1 -1
  137. package/dist/schema/nodes/liquid-line.d.ts +1 -1
  138. package/dist/schema/nodes/measurement.d.ts +1 -1
  139. package/dist/schema/nodes/pipe-fitting.d.ts +9 -1
  140. package/dist/schema/nodes/pipe-fitting.d.ts.map +1 -1
  141. package/dist/schema/nodes/pipe-fitting.js +6 -2
  142. package/dist/schema/nodes/pipe-segment.d.ts +23 -1
  143. package/dist/schema/nodes/pipe-segment.d.ts.map +1 -1
  144. package/dist/schema/nodes/pipe-segment.js +20 -0
  145. package/dist/schema/nodes/pipe-trap.d.ts +1 -1
  146. package/dist/schema/nodes/ridge-vent.d.ts +1 -1
  147. package/dist/schema/nodes/ridge-vent.d.ts.map +1 -1
  148. package/dist/schema/nodes/ridge-vent.js +4 -1
  149. package/dist/schema/nodes/roof-segment-shape.d.ts +4 -0
  150. package/dist/schema/nodes/roof-segment-shape.d.ts.map +1 -1
  151. package/dist/schema/nodes/roof-segment-shape.js +64 -1
  152. package/dist/schema/nodes/roof-segment-walls.d.ts +3 -1
  153. package/dist/schema/nodes/roof-segment-walls.d.ts.map +1 -1
  154. package/dist/schema/nodes/roof-segment-walls.js +1 -1
  155. package/dist/schema/nodes/roof-segment.d.ts +41 -1
  156. package/dist/schema/nodes/roof-segment.d.ts.map +1 -1
  157. package/dist/schema/nodes/roof-segment.js +79 -2
  158. package/dist/schema/nodes/roof.d.ts +22 -1
  159. package/dist/schema/nodes/roof.d.ts.map +1 -1
  160. package/dist/schema/nodes/roof.js +14 -0
  161. package/dist/schema/nodes/scan.d.ts +19 -2
  162. package/dist/schema/nodes/scan.d.ts.map +1 -1
  163. package/dist/schema/nodes/scan.js +11 -1
  164. package/dist/schema/nodes/shelf.d.ts +2 -2
  165. package/dist/schema/nodes/site.d.ts +1 -1
  166. package/dist/schema/nodes/skylight.d.ts +1 -1
  167. package/dist/schema/nodes/slab.d.ts +1 -1
  168. package/dist/schema/nodes/solar-panel.d.ts +1 -1
  169. package/dist/schema/nodes/spawn.d.ts +1 -1
  170. package/dist/schema/nodes/stair-segment.d.ts +1 -1
  171. package/dist/schema/nodes/stair.d.ts +1 -1
  172. package/dist/schema/nodes/structural-grid.d.ts +1 -1
  173. package/dist/schema/nodes/turbine-vent.d.ts +7 -1
  174. package/dist/schema/nodes/turbine-vent.d.ts.map +1 -1
  175. package/dist/schema/nodes/turbine-vent.js +2 -0
  176. package/dist/schema/nodes/wall.d.ts +4 -4
  177. package/dist/schema/nodes/wall.d.ts.map +1 -1
  178. package/dist/schema/nodes/wall.js +7 -1
  179. package/dist/schema/nodes/window.d.ts +10 -3
  180. package/dist/schema/nodes/window.d.ts.map +1 -1
  181. package/dist/schema/nodes/window.js +4 -0
  182. package/dist/schema/nodes/zone.d.ts +2 -2
  183. package/dist/schema/nodes/zone.js +1 -1
  184. package/dist/schema/types.d.ts +485 -109
  185. package/dist/schema/types.d.ts.map +1 -1
  186. package/dist/schema/types.js +27 -1
  187. package/dist/services/hosting.d.ts +2 -2
  188. package/dist/services/hosting.d.ts.map +1 -1
  189. package/dist/services/hosting.js +4 -4
  190. package/dist/services/index.d.ts +2 -2
  191. package/dist/services/index.d.ts.map +1 -1
  192. package/dist/services/index.js +2 -2
  193. package/dist/services/storey.d.ts +3 -10
  194. package/dist/services/storey.d.ts.map +1 -1
  195. package/dist/services/storey.js +45 -15
  196. package/dist/services/system-graph.d.ts +11 -0
  197. package/dist/services/system-graph.d.ts.map +1 -1
  198. package/dist/services/system-graph.js +35 -5
  199. package/dist/store/actions/node-actions.d.ts +15 -4
  200. package/dist/store/actions/node-actions.d.ts.map +1 -1
  201. package/dist/store/actions/node-actions.js +458 -19
  202. package/dist/store/history-control.d.ts +5 -0
  203. package/dist/store/history-control.d.ts.map +1 -1
  204. package/dist/store/history-control.js +68 -6
  205. package/dist/store/history-invalidation.d.ts +3 -0
  206. package/dist/store/history-invalidation.d.ts.map +1 -0
  207. package/dist/store/history-invalidation.js +72 -0
  208. package/dist/store/scene-hydration.d.ts +5 -0
  209. package/dist/store/scene-hydration.d.ts.map +1 -0
  210. package/dist/store/scene-hydration.js +57 -0
  211. package/dist/store/use-scene.d.ts +3 -0
  212. package/dist/store/use-scene.d.ts.map +1 -1
  213. package/dist/store/use-scene.js +407 -227
  214. package/dist/systems/elevator/elevator-service.d.ts.map +1 -1
  215. package/dist/systems/elevator/elevator-service.js +16 -11
  216. package/dist/systems/roof/roof-elevation-system.d.ts +3 -0
  217. package/dist/systems/roof/roof-elevation-system.d.ts.map +1 -0
  218. package/dist/systems/roof/roof-elevation-system.js +94 -0
  219. package/dist/systems/roof/roof-elevation.d.ts +4 -0
  220. package/dist/systems/roof/roof-elevation.d.ts.map +1 -0
  221. package/dist/systems/roof/roof-elevation.js +95 -0
  222. package/dist/systems/roof/roof-footprint.d.ts +17 -0
  223. package/dist/systems/roof/roof-footprint.d.ts.map +1 -0
  224. package/dist/systems/roof/roof-footprint.js +83 -0
  225. package/dist/systems/slab/slab-support.d.ts +0 -31
  226. package/dist/systems/slab/slab-support.d.ts.map +1 -1
  227. package/dist/systems/slab/slab-support.js +26 -4
  228. package/dist/systems/stair/stair-flight.d.ts +17 -0
  229. package/dist/systems/stair/stair-flight.d.ts.map +1 -0
  230. package/dist/systems/stair/stair-flight.js +27 -0
  231. package/dist/systems/stair/stair-opening-preview.d.ts +1556 -1328
  232. package/dist/systems/stair/stair-opening-preview.d.ts.map +1 -1
  233. package/dist/systems/stair/stair-opening-system.d.ts +1 -0
  234. package/dist/systems/stair/stair-opening-system.d.ts.map +1 -1
  235. package/dist/systems/stair/stair-opening-system.js +93 -96
  236. package/dist/systems/stair/stair-rise.js +21 -20
  237. package/dist/systems/wall/wall-curve.d.ts +1 -0
  238. package/dist/systems/wall/wall-curve.d.ts.map +1 -1
  239. package/dist/systems/wall/wall-curve.js +73 -0
  240. package/dist/systems/wall/wall-footprint.d.ts +1 -0
  241. package/dist/systems/wall/wall-footprint.d.ts.map +1 -1
  242. package/dist/systems/wall/wall-footprint.js +1 -0
  243. package/dist/systems/wall/wall-mitering.d.ts.map +1 -1
  244. package/dist/systems/wall/wall-mitering.js +88 -9
  245. package/dist/systems/wall/wall-topology.d.ts +53 -0
  246. package/dist/systems/wall/wall-topology.d.ts.map +1 -0
  247. package/dist/systems/wall/wall-topology.js +414 -0
  248. package/dist/utils/clone-scene-graph.d.ts +2 -0
  249. package/dist/utils/clone-scene-graph.d.ts.map +1 -1
  250. package/dist/utils/clone-scene-graph.js +39 -2
  251. package/dist/utils/scene-migrations.d.ts +1 -0
  252. package/dist/utils/scene-migrations.d.ts.map +1 -1
  253. package/dist/utils/scene-migrations.js +1 -0
  254. package/dist/utils/vertical-scene-migration.d.ts +13 -0
  255. package/dist/utils/vertical-scene-migration.d.ts.map +1 -0
  256. package/dist/utils/vertical-scene-migration.js +179 -0
  257. package/dist/validation/validate-build-json.d.ts +3 -0
  258. package/dist/validation/validate-build-json.d.ts.map +1 -1
  259. package/dist/validation/validate-build-json.js +49 -2
  260. package/package.json +10 -3
  261. package/dist/systems/elevator/elevator-runtime-system.d.ts +0 -2
  262. package/dist/systems/elevator/elevator-runtime-system.d.ts.map +0 -1
  263. package/dist/systems/elevator/elevator-runtime-system.js +0 -8
@@ -1,5 +1,29 @@
1
1
  import z from 'zod';
2
- export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
2
+ /** A node schema as authored: `type` is a literal wrapped by `nodeType()`'s `.default()`. */
3
+ type NodeMember = z.ZodObject<{
4
+ type: z.ZodDefault<z.ZodLiteral<string>>;
5
+ } & z.core.$ZodLooseShape>;
6
+ /** The same schema with the discriminator narrowed back to its bare literal. */
7
+ type BareDiscriminator<T extends NodeMember> = z.ZodObject<Omit<T['shape'], 'type'> & {
8
+ type: ReturnType<T['shape']['type']['unwrap']>;
9
+ }>;
10
+ /**
11
+ * Assembles the node union on discriminators that claim exactly one value.
12
+ *
13
+ * `nodeType()` defaults the literal so a per-kind schema can fill `type` in
14
+ * (`WallNode.parse({ start, end })`), but a `.default()`-wrapped discriminator
15
+ * also claims `undefined` from zod 4.5 on (upstream #6432). With 48 members
16
+ * doing it, the union's lazily-built discriminator map collides on
17
+ * `undefined` and throws `Duplicate discriminator value` — as a plain Error,
18
+ * so it escapes `safeParse` and surfaces as a crash at the first parse.
19
+ *
20
+ * Each member is therefore projected to a clone whose `type` is the bare
21
+ * literal. Per-kind schemas keep their default; only the union's view of the
22
+ * discriminator narrows. Metadata lives in zod's global registry keyed by
23
+ * instance, so `.describe()` text has to be carried over to the clone by hand.
24
+ */
25
+ export declare const nodeUnion: <const T extends readonly [NodeMember, ...NodeMember[]]>(members: T) => z.ZodDiscriminatedUnion<{ [K in keyof T]: BareDiscriminator<T[K]>; }, "type">;
26
+ export declare const AnyNode: z.ZodDiscriminatedUnion<readonly [BareDiscriminator<z.ZodObject<{
3
27
  object: z.ZodDefault<z.ZodLiteral<"node">>;
4
28
  name: z.ZodOptional<z.ZodString>;
5
29
  parentId: z.ZodDefault<z.ZodNullable<z.ZodString>>;
@@ -14,7 +38,7 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
14
38
  fov: z.ZodOptional<z.ZodNumber>;
15
39
  zoom: z.ZodOptional<z.ZodNumber>;
16
40
  }, z.core.$strip>>;
17
- metadata: z.ZodDefault<z.ZodOptional<z.ZodJSONSchema>>;
41
+ metadata: z.ZodDefault<z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
18
42
  id: z.ZodDefault<z.ZodTemplateLiteral<`site_${string}`>>;
19
43
  type: z.ZodDefault<z.ZodLiteral<"site">>;
20
44
  polygon: z.ZodDefault<z.ZodOptional<z.ZodObject<{
@@ -31,7 +55,7 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
31
55
  heights: z.ZodString;
32
56
  }, z.core.$strip>>;
33
57
  children: z.ZodDefault<z.ZodArray<z.ZodString>>;
34
- }, z.core.$strip>, z.ZodObject<{
58
+ }, z.core.$strip>>, BareDiscriminator<z.ZodObject<{
35
59
  object: z.ZodDefault<z.ZodLiteral<"node">>;
36
60
  name: z.ZodOptional<z.ZodString>;
37
61
  parentId: z.ZodDefault<z.ZodNullable<z.ZodString>>;
@@ -46,13 +70,13 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
46
70
  fov: z.ZodOptional<z.ZodNumber>;
47
71
  zoom: z.ZodOptional<z.ZodNumber>;
48
72
  }, z.core.$strip>>;
49
- metadata: z.ZodDefault<z.ZodOptional<z.ZodJSONSchema>>;
73
+ metadata: z.ZodDefault<z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
50
74
  id: z.ZodDefault<z.ZodTemplateLiteral<`building_${string}`>>;
51
75
  type: z.ZodDefault<z.ZodLiteral<"building">>;
52
76
  children: z.ZodDefault<z.ZodArray<z.ZodUnion<readonly [z.ZodDefault<z.ZodTemplateLiteral<`level_${string}`>>, z.ZodDefault<z.ZodTemplateLiteral<`elevator_${string}`>>]>>>;
53
77
  position: z.ZodDefault<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
54
78
  rotation: z.ZodDefault<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
55
- }, z.core.$strip>, z.ZodObject<{
79
+ }, z.core.$strip>>, BareDiscriminator<z.ZodObject<{
56
80
  object: z.ZodDefault<z.ZodLiteral<"node">>;
57
81
  name: z.ZodOptional<z.ZodString>;
58
82
  parentId: z.ZodDefault<z.ZodNullable<z.ZodString>>;
@@ -67,7 +91,7 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
67
91
  fov: z.ZodOptional<z.ZodNumber>;
68
92
  zoom: z.ZodOptional<z.ZodNumber>;
69
93
  }, z.core.$strip>>;
70
- metadata: z.ZodDefault<z.ZodOptional<z.ZodJSONSchema>>;
94
+ metadata: z.ZodDefault<z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
71
95
  id: z.ZodDefault<z.ZodTemplateLiteral<`elevator_${string}`>>;
72
96
  type: z.ZodDefault<z.ZodLiteral<"elevator">>;
73
97
  material: z.ZodOptional<z.ZodObject<{
@@ -137,7 +161,7 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
137
161
  speed: z.ZodDefault<z.ZodNumber>;
138
162
  doorDurationMs: z.ZodDefault<z.ZodNumber>;
139
163
  dwellMs: z.ZodDefault<z.ZodNumber>;
140
- }, z.core.$strip>, z.ZodObject<{
164
+ }, z.core.$strip>>, BareDiscriminator<z.ZodObject<{
141
165
  object: z.ZodDefault<z.ZodLiteral<"node">>;
142
166
  name: z.ZodOptional<z.ZodString>;
143
167
  parentId: z.ZodDefault<z.ZodNullable<z.ZodString>>;
@@ -152,13 +176,14 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
152
176
  fov: z.ZodOptional<z.ZodNumber>;
153
177
  zoom: z.ZodOptional<z.ZodNumber>;
154
178
  }, z.core.$strip>>;
155
- metadata: z.ZodDefault<z.ZodOptional<z.ZodJSONSchema>>;
179
+ metadata: z.ZodDefault<z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
156
180
  id: z.ZodDefault<z.ZodTemplateLiteral<`level_${string}`>>;
157
181
  type: z.ZodDefault<z.ZodLiteral<"level">>;
158
- children: z.ZodDefault<z.ZodArray<z.ZodPipe<z.ZodString, z.ZodTransform<`item_${string}` | `ceiling_${string}` | `column_${string}` | `wall_${string}` | `fence_${string}` | `construction-dimension_${string}` | `structural-grid_${string}` | `zone_${string}` | `slab_${string}` | `roof_${string}` | `stair_${string}` | `scan_${string}` | `guide_${string}` | `measurement_${string}` | `spawn_${string}` | `shelf_${string}` | `duct-segment_${string}` | `duct-fitting_${string}` | `duct-terminal_${string}` | `hvac-equipment_${string}` | `lineset_${string}` | `liquid-line_${string}` | `pipe-segment_${string}` | `pipe-fitting_${string}` | `pipe-trap_${string}`, string>>>>;
182
+ children: z.ZodDefault<z.ZodArray<z.ZodPipe<z.ZodString, z.ZodTransform<`item_${string}` | `block_${string}` | `ceiling_${string}` | `column_${string}` | `wall_${string}` | `roof_${string}` | `slab_${string}` | `fence_${string}` | `construction-dimension_${string}` | `structural-grid_${string}` | `zone_${string}` | `stair_${string}` | `scan_${string}` | `guide_${string}` | `measurement_${string}` | `spawn_${string}` | `shelf_${string}` | `duct-segment_${string}` | `duct-fitting_${string}` | `duct-terminal_${string}` | `hvac-equipment_${string}` | `lineset_${string}` | `liquid-line_${string}` | `pipe-segment_${string}` | `pipe-fitting_${string}` | `pipe-trap_${string}`, string>>>>;
159
183
  level: z.ZodDefault<z.ZodNumber>;
184
+ baseElevation: z.ZodDefault<z.ZodNumber>;
160
185
  height: z.ZodOptional<z.ZodNumber>;
161
- }, z.core.$strip>, z.ZodObject<{
186
+ }, z.core.$strip>>, BareDiscriminator<z.ZodObject<{
162
187
  object: z.ZodDefault<z.ZodLiteral<"node">>;
163
188
  name: z.ZodOptional<z.ZodString>;
164
189
  parentId: z.ZodDefault<z.ZodNullable<z.ZodString>>;
@@ -173,7 +198,157 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
173
198
  fov: z.ZodOptional<z.ZodNumber>;
174
199
  zoom: z.ZodOptional<z.ZodNumber>;
175
200
  }, z.core.$strip>>;
176
- metadata: z.ZodDefault<z.ZodOptional<z.ZodJSONSchema>>;
201
+ metadata: z.ZodDefault<z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
202
+ id: z.ZodDefault<z.ZodTemplateLiteral<`leanto_${string}`>>;
203
+ type: z.ZodDefault<z.ZodLiteral<"lean-to-extension">>;
204
+ position: z.ZodDefault<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
205
+ rotation: z.ZodDefault<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
206
+ children: z.ZodDefault<z.ZodArray<z.ZodUnion<readonly [z.ZodDefault<z.ZodTemplateLiteral<`column_${string}`>>, z.ZodDefault<z.ZodTemplateLiteral<`roof_${string}`>>]>>>;
207
+ canopyForm: z.ZodDefault<z.ZodEnum<{
208
+ gable: "gable";
209
+ mono: "mono";
210
+ butterfly: "butterfly";
211
+ }>>;
212
+ hostKind: z.ZodDefault<z.ZodEnum<{
213
+ wall: "wall";
214
+ "slab-edge": "slab-edge";
215
+ freestanding: "freestanding";
216
+ "conical-roof": "conical-roof";
217
+ }>>;
218
+ hostHeightOffset: z.ZodDefault<z.ZodNumber>;
219
+ hostSlabId: z.ZodOptional<z.ZodDefault<z.ZodTemplateLiteral<`slab_${string}`>>>;
220
+ hostSlabEdgeIndex: z.ZodOptional<z.ZodNumber>;
221
+ hostSlabEdgeT: z.ZodOptional<z.ZodNumber>;
222
+ span: z.ZodDefault<z.ZodNumber>;
223
+ autoSpan: z.ZodDefault<z.ZodBoolean>;
224
+ projection: z.ZodDefault<z.ZodNumber>;
225
+ spanArcCenterZ: z.ZodOptional<z.ZodNumber>;
226
+ spanArcRadius: z.ZodOptional<z.ZodNumber>;
227
+ highEdgeHeight: z.ZodDefault<z.ZodNumber>;
228
+ lowEdgeHeight: z.ZodDefault<z.ZodNumber>;
229
+ pitch: z.ZodDefault<z.ZodNumber>;
230
+ resizeLock: z.ZodDefault<z.ZodEnum<{
231
+ "preserve-high-edge": "preserve-high-edge";
232
+ "preserve-low-edge": "preserve-low-edge";
233
+ "preserve-pitch": "preserve-pitch";
234
+ }>>;
235
+ leftEndCondition: z.ZodDefault<z.ZodEnum<{
236
+ open: "open";
237
+ "wall-abutment": "wall-abutment";
238
+ joined: "joined";
239
+ }>>;
240
+ rightEndCondition: z.ZodDefault<z.ZodEnum<{
241
+ open: "open";
242
+ "wall-abutment": "wall-abutment";
243
+ joined: "joined";
244
+ }>>;
245
+ autoMiterCorners: z.ZodDefault<z.ZodBoolean>;
246
+ sideFlashing: z.ZodDefault<z.ZodBoolean>;
247
+ flashingProjection: z.ZodDefault<z.ZodNumber>;
248
+ flashingHeight: z.ZodDefault<z.ZodNumber>;
249
+ slots: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
250
+ highSideMode: z.ZodDefault<z.ZodEnum<{
251
+ "wall-ledger": "wall-ledger";
252
+ "independent-high-beam": "independent-high-beam";
253
+ }>>;
254
+ ledgerVerticalOffset: z.ZodDefault<z.ZodNumber>;
255
+ lowBeamInset: z.ZodDefault<z.ZodNumber>;
256
+ gutterEnabled: z.ZodDefault<z.ZodBoolean>;
257
+ gutterProfile: z.ZodDefault<z.ZodEnum<{
258
+ box: "box";
259
+ "k-style": "k-style";
260
+ "half-round": "half-round";
261
+ }>>;
262
+ gutterSize: z.ZodDefault<z.ZodNumber>;
263
+ downspoutEnabled: z.ZodDefault<z.ZodBoolean>;
264
+ downspoutPosition: z.ZodDefault<z.ZodNumber>;
265
+ connectionMode: z.ZodDefault<z.ZodEnum<{
266
+ manual: "manual";
267
+ auto: "auto";
268
+ }>>;
269
+ hostRoofId: z.ZodOptional<z.ZodDefault<z.ZodTemplateLiteral<`roof_${string}`>>>;
270
+ hostRoofSegmentId: z.ZodOptional<z.ZodString>;
271
+ hostRoofEdge: z.ZodOptional<z.ZodEnum<{
272
+ "+X": "+X";
273
+ "-X": "-X";
274
+ "+Z": "+Z";
275
+ "-Z": "-Z";
276
+ }>>;
277
+ hostRoofEdgeRange: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>>;
278
+ connectionOffset: z.ZodDefault<z.ZodNumber>;
279
+ connectionInset: z.ZodDefault<z.ZodNumber>;
280
+ matchHostRoofMaterial: z.ZodDefault<z.ZodBoolean>;
281
+ matchHostRoofStructure: z.ZodDefault<z.ZodBoolean>;
282
+ roofThickness: z.ZodDefault<z.ZodNumber>;
283
+ shingleThickness: z.ZodDefault<z.ZodNumber>;
284
+ highOverhang: z.ZodDefault<z.ZodNumber>;
285
+ lowOverhang: z.ZodDefault<z.ZodNumber>;
286
+ leftOverhang: z.ZodDefault<z.ZodNumber>;
287
+ rightOverhang: z.ZodDefault<z.ZodNumber>;
288
+ coveringType: z.ZodDefault<z.ZodEnum<{
289
+ generic: "generic";
290
+ shingle: "shingle";
291
+ "metal-panel": "metal-panel";
292
+ }>>;
293
+ beamWidth: z.ZodDefault<z.ZodNumber>;
294
+ beamHeight: z.ZodDefault<z.ZodNumber>;
295
+ ledgerDepth: z.ZodDefault<z.ZodNumber>;
296
+ ledgerHeight: z.ZodDefault<z.ZodNumber>;
297
+ rafterWidth: z.ZodDefault<z.ZodNumber>;
298
+ rafterHeight: z.ZodDefault<z.ZodNumber>;
299
+ rafterSpacing: z.ZodDefault<z.ZodNumber>;
300
+ rafterEndInset: z.ZodDefault<z.ZodNumber>;
301
+ framingStrategy: z.ZodDefault<z.ZodEnum<{
302
+ hidden: "hidden";
303
+ rafters: "rafters";
304
+ purlins: "purlins";
305
+ "covering-specific": "covering-specific";
306
+ }>>;
307
+ purlinWidth: z.ZodDefault<z.ZodNumber>;
308
+ purlinHeight: z.ZodDefault<z.ZodNumber>;
309
+ purlinSpacing: z.ZodDefault<z.ZodNumber>;
310
+ postWidth: z.ZodDefault<z.ZodNumber>;
311
+ postDepth: z.ZodDefault<z.ZodNumber>;
312
+ postCount: z.ZodDefault<z.ZodNumber>;
313
+ postLayoutMode: z.ZodDefault<z.ZodEnum<{
314
+ count: "count";
315
+ "target-spacing": "target-spacing";
316
+ }>>;
317
+ postSpacing: z.ZodDefault<z.ZodNumber>;
318
+ postInset: z.ZodDefault<z.ZodNumber>;
319
+ omittedPostSlots: z.ZodDefault<z.ZodArray<z.ZodObject<{
320
+ side: z.ZodEnum<{
321
+ low: "low";
322
+ high: "high";
323
+ }>;
324
+ index: z.ZodNumber;
325
+ layoutCount: z.ZodNumber;
326
+ }, z.core.$strip>>>;
327
+ postBracing: z.ZodDefault<z.ZodEnum<{
328
+ none: "none";
329
+ knee: "knee";
330
+ }>>;
331
+ footingStyle: z.ZodDefault<z.ZodEnum<{
332
+ none: "none";
333
+ "base-plate": "base-plate";
334
+ "concrete-pad": "concrete-pad";
335
+ }>>;
336
+ }, z.core.$strip>>, BareDiscriminator<z.ZodObject<{
337
+ object: z.ZodDefault<z.ZodLiteral<"node">>;
338
+ name: z.ZodOptional<z.ZodString>;
339
+ parentId: z.ZodDefault<z.ZodNullable<z.ZodString>>;
340
+ visible: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
341
+ camera: z.ZodOptional<z.ZodObject<{
342
+ position: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
343
+ target: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
344
+ mode: z.ZodDefault<z.ZodEnum<{
345
+ perspective: "perspective";
346
+ orthographic: "orthographic";
347
+ }>>;
348
+ fov: z.ZodOptional<z.ZodNumber>;
349
+ zoom: z.ZodOptional<z.ZodNumber>;
350
+ }, z.core.$strip>>;
351
+ metadata: z.ZodDefault<z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
177
352
  id: z.ZodDefault<z.ZodTemplateLiteral<`column_${string}`>>;
178
353
  type: z.ZodDefault<z.ZodLiteral<"column">>;
179
354
  position: z.ZodDefault<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
@@ -272,9 +447,9 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
272
447
  capitalCarvingLevel: z.ZodDefault<z.ZodNumber>;
273
448
  ringCount: z.ZodDefault<z.ZodNumber>;
274
449
  ringPlacement: z.ZodDefault<z.ZodEnum<{
450
+ top: "top";
275
451
  ends: "ends";
276
452
  even: "even";
277
- top: "top";
278
453
  bottom: "bottom";
279
454
  }>>;
280
455
  ringThickness: z.ZodDefault<z.ZodNumber>;
@@ -293,15 +468,15 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
293
468
  }>>;
294
469
  latheRingCount: z.ZodDefault<z.ZodNumber>;
295
470
  latheRingSpacing: z.ZodDefault<z.ZodEnum<{
471
+ top: "top";
296
472
  ends: "ends";
297
473
  even: "even";
298
- top: "top";
299
474
  bottom: "bottom";
300
475
  }>>;
301
476
  carvingLevel: z.ZodDefault<z.ZodNumber>;
302
477
  carvingPlacement: z.ZodDefault<z.ZodEnum<{
303
- shaft: "shaft";
304
478
  base: "base";
479
+ shaft: "shaft";
305
480
  capital: "capital";
306
481
  all: "all";
307
482
  }>>;
@@ -362,7 +537,7 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
362
537
  }, z.core.$strip>>;
363
538
  materialPreset: z.ZodOptional<z.ZodString>;
364
539
  slots: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
365
- }, z.core.$strip>, z.ZodObject<{
540
+ }, z.core.$strip>>, BareDiscriminator<z.ZodObject<{
366
541
  object: z.ZodDefault<z.ZodLiteral<"node">>;
367
542
  name: z.ZodOptional<z.ZodString>;
368
543
  parentId: z.ZodDefault<z.ZodNullable<z.ZodString>>;
@@ -377,7 +552,7 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
377
552
  fov: z.ZodOptional<z.ZodNumber>;
378
553
  zoom: z.ZodOptional<z.ZodNumber>;
379
554
  }, z.core.$strip>>;
380
- metadata: z.ZodDefault<z.ZodOptional<z.ZodJSONSchema>>;
555
+ metadata: z.ZodDefault<z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
381
556
  id: z.ZodDefault<z.ZodTemplateLiteral<`construction-dimension_${string}`>>;
382
557
  type: z.ZodDefault<z.ZodLiteral<"construction-dimension">>;
383
558
  anchors: z.ZodDefault<z.ZodArray<z.ZodUnion<readonly [z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>, z.ZodObject<{
@@ -457,14 +632,14 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
457
632
  "site-plan": "site-plan";
458
633
  }>;
459
634
  presentation: z.ZodEnum<{
460
- shown: "shown";
461
635
  omit: "omit";
636
+ shown: "shown";
462
637
  controlled: "controlled";
463
638
  }>;
464
639
  suppressedSegmentIndexes: z.ZodDefault<z.ZodArray<z.ZodNumber>>;
465
640
  }, z.core.$strip>>>;
466
641
  controllingDimensionId: z.ZodDefault<z.ZodNullable<z.ZodDefault<z.ZodTemplateLiteral<`construction-dimension_${string}`>>>>;
467
- }, z.core.$strip>, z.ZodObject<{
642
+ }, z.core.$strip>>, BareDiscriminator<z.ZodObject<{
468
643
  object: z.ZodDefault<z.ZodLiteral<"node">>;
469
644
  name: z.ZodOptional<z.ZodString>;
470
645
  parentId: z.ZodDefault<z.ZodNullable<z.ZodString>>;
@@ -479,7 +654,46 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
479
654
  fov: z.ZodOptional<z.ZodNumber>;
480
655
  zoom: z.ZodOptional<z.ZodNumber>;
481
656
  }, z.core.$strip>>;
482
- metadata: z.ZodDefault<z.ZodOptional<z.ZodJSONSchema>>;
657
+ metadata: z.ZodDefault<z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
658
+ id: z.ZodDefault<z.ZodTemplateLiteral<`block_${string}`>>;
659
+ type: z.ZodDefault<z.ZodLiteral<"block">>;
660
+ children: z.ZodDefault<z.ZodArray<z.ZodDefault<z.ZodTemplateLiteral<`item_${string}`>>>>;
661
+ position: z.ZodDefault<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
662
+ rotation: z.ZodDefault<z.ZodNumber>;
663
+ supportSlabId: z.ZodOptional<z.ZodString>;
664
+ topology: z.ZodDefault<z.ZodObject<{
665
+ vertices: z.ZodArray<z.ZodObject<{
666
+ id: z.ZodString;
667
+ position: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
668
+ }, z.core.$strip>>;
669
+ edges: z.ZodArray<z.ZodObject<{
670
+ id: z.ZodString;
671
+ vertexIds: z.ZodTuple<[z.ZodString, z.ZodString], null>;
672
+ }, z.core.$strip>>;
673
+ faces: z.ZodArray<z.ZodObject<{
674
+ id: z.ZodString;
675
+ vertexIds: z.ZodArray<z.ZodString>;
676
+ materialSlot: z.ZodDefault<z.ZodString>;
677
+ }, z.core.$strip>>;
678
+ }, z.core.$strip>>;
679
+ slots: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodString>>;
680
+ slotNames: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodString>>;
681
+ }, z.core.$strip>>, BareDiscriminator<z.ZodObject<{
682
+ object: z.ZodDefault<z.ZodLiteral<"node">>;
683
+ name: z.ZodOptional<z.ZodString>;
684
+ parentId: z.ZodDefault<z.ZodNullable<z.ZodString>>;
685
+ visible: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
686
+ camera: z.ZodOptional<z.ZodObject<{
687
+ position: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
688
+ target: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
689
+ mode: z.ZodDefault<z.ZodEnum<{
690
+ perspective: "perspective";
691
+ orthographic: "orthographic";
692
+ }>>;
693
+ fov: z.ZodOptional<z.ZodNumber>;
694
+ zoom: z.ZodOptional<z.ZodNumber>;
695
+ }, z.core.$strip>>;
696
+ metadata: z.ZodDefault<z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
483
697
  id: z.ZodDefault<z.ZodTemplateLiteral<`structural-grid_${string}`>>;
484
698
  type: z.ZodDefault<z.ZodLiteral<"structural-grid">>;
485
699
  start: z.ZodDefault<z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>>;
@@ -487,7 +701,7 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
487
701
  label: z.ZodDefault<z.ZodString>;
488
702
  showStartBubble: z.ZodDefault<z.ZodBoolean>;
489
703
  showEndBubble: z.ZodDefault<z.ZodBoolean>;
490
- }, z.core.$strip>, z.ZodObject<{
704
+ }, z.core.$strip>>, BareDiscriminator<z.ZodObject<{
491
705
  object: z.ZodDefault<z.ZodLiteral<"node">>;
492
706
  name: z.ZodOptional<z.ZodString>;
493
707
  parentId: z.ZodDefault<z.ZodNullable<z.ZodString>>;
@@ -502,10 +716,10 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
502
716
  fov: z.ZodOptional<z.ZodNumber>;
503
717
  zoom: z.ZodOptional<z.ZodNumber>;
504
718
  }, z.core.$strip>>;
505
- metadata: z.ZodDefault<z.ZodOptional<z.ZodJSONSchema>>;
719
+ metadata: z.ZodDefault<z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
506
720
  id: z.ZodDefault<z.ZodTemplateLiteral<`wall_${string}`>>;
507
721
  type: z.ZodDefault<z.ZodLiteral<"wall">>;
508
- children: z.ZodDefault<z.ZodArray<z.ZodUnion<readonly [z.ZodDefault<z.ZodTemplateLiteral<`item_${string}`>>, z.ZodDefault<z.ZodTemplateLiteral<`door_${string}`>>, z.ZodDefault<z.ZodTemplateLiteral<`window_${string}`>>]>>>;
722
+ children: z.ZodDefault<z.ZodArray<z.ZodUnion<readonly [z.ZodDefault<z.ZodTemplateLiteral<`item_${string}`>>, z.ZodDefault<z.ZodTemplateLiteral<`door_${string}`>>, z.ZodDefault<z.ZodTemplateLiteral<`window_${string}`>>, z.ZodDefault<z.ZodTemplateLiteral<`leanto_${string}`>>]>>>;
509
723
  material: z.ZodOptional<z.ZodObject<{
510
724
  id: z.ZodOptional<z.ZodString>;
511
725
  preset: z.ZodOptional<z.ZodCatch<z.ZodEnum<{
@@ -618,7 +832,7 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
618
832
  lowerHeight: z.ZodDefault<z.ZodNumber>;
619
833
  middleHeight: z.ZodDefault<z.ZodNumber>;
620
834
  upperHeight: z.ZodDefault<z.ZodNumber>;
621
- }, z.core.$strip>>>;
835
+ }, z.core.$strip>, unknown>>;
622
836
  skirting: z.ZodOptional<z.ZodObject<{
623
837
  enabled: z.ZodDefault<z.ZodBoolean>;
624
838
  sides: z.ZodDefault<z.ZodEnum<{
@@ -721,7 +935,7 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
721
935
  interior: "interior";
722
936
  exterior: "exterior";
723
937
  }>>;
724
- }, z.core.$strip>, z.ZodObject<{
938
+ }, z.core.$strip>>, BareDiscriminator<z.ZodObject<{
725
939
  object: z.ZodDefault<z.ZodLiteral<"node">>;
726
940
  name: z.ZodOptional<z.ZodString>;
727
941
  parentId: z.ZodDefault<z.ZodNullable<z.ZodString>>;
@@ -736,7 +950,7 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
736
950
  fov: z.ZodOptional<z.ZodNumber>;
737
951
  zoom: z.ZodOptional<z.ZodNumber>;
738
952
  }, z.core.$strip>>;
739
- metadata: z.ZodDefault<z.ZodOptional<z.ZodJSONSchema>>;
953
+ metadata: z.ZodDefault<z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
740
954
  id: z.ZodDefault<z.ZodTemplateLiteral<`fence_${string}`>>;
741
955
  type: z.ZodDefault<z.ZodLiteral<"fence">>;
742
956
  material: z.ZodOptional<z.ZodObject<{
@@ -806,7 +1020,7 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
806
1020
  privacy: "privacy";
807
1021
  horizontal: "horizontal";
808
1022
  }>>;
809
- }, z.core.$strip>, z.ZodObject<{
1023
+ }, z.core.$strip>>, BareDiscriminator<z.ZodObject<{
810
1024
  object: z.ZodDefault<z.ZodLiteral<"node">>;
811
1025
  name: z.ZodOptional<z.ZodString>;
812
1026
  parentId: z.ZodDefault<z.ZodNullable<z.ZodString>>;
@@ -821,7 +1035,7 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
821
1035
  fov: z.ZodOptional<z.ZodNumber>;
822
1036
  zoom: z.ZodOptional<z.ZodNumber>;
823
1037
  }, z.core.$strip>>;
824
- metadata: z.ZodDefault<z.ZodOptional<z.ZodJSONSchema>>;
1038
+ metadata: z.ZodDefault<z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
825
1039
  position: z.ZodDefault<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
826
1040
  rotation: z.ZodDefault<z.ZodNumber>;
827
1041
  supportSlabId: z.ZodOptional<z.ZodString>;
@@ -843,6 +1057,7 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
843
1057
  shaker: "shaker";
844
1058
  "raised-arch": "raised-arch";
845
1059
  }>>;
1060
+ panelReady: z.ZodDefault<z.ZodBoolean>;
846
1061
  handleStyle: z.ZodDefault<z.ZodEnum<{
847
1062
  none: "none";
848
1063
  bar: "bar";
@@ -1006,7 +1221,7 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
1006
1221
  base: "base";
1007
1222
  tall: "tall";
1008
1223
  }>>;
1009
- children: z.ZodDefault<z.ZodArray<z.ZodDefault<z.ZodTemplateLiteral<`cabinet-module_${string}`>>>>;
1224
+ children: z.ZodDefault<z.ZodArray<z.ZodUnion<readonly [z.ZodDefault<z.ZodTemplateLiteral<`cabinet-module_${string}`>>, z.ZodDefault<z.ZodTemplateLiteral<`cabinet_${string}`>>]>>>;
1010
1225
  barLedge: z.ZodOptional<z.ZodObject<{
1011
1226
  edge: z.ZodDefault<z.ZodEnum<{
1012
1227
  back: "back";
@@ -1017,7 +1232,8 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
1017
1232
  depth: z.ZodDefault<z.ZodNumber>;
1018
1233
  }, z.core.$strip>>;
1019
1234
  withWaterfall: z.ZodDefault<z.ZodBoolean>;
1020
- }, z.core.$strip>, z.ZodObject<{
1235
+ withFinishedEnds: z.ZodDefault<z.ZodBoolean>;
1236
+ }, z.core.$strip>>, BareDiscriminator<z.ZodObject<{
1021
1237
  object: z.ZodDefault<z.ZodLiteral<"node">>;
1022
1238
  name: z.ZodOptional<z.ZodString>;
1023
1239
  parentId: z.ZodDefault<z.ZodNullable<z.ZodString>>;
@@ -1032,7 +1248,7 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
1032
1248
  fov: z.ZodOptional<z.ZodNumber>;
1033
1249
  zoom: z.ZodOptional<z.ZodNumber>;
1034
1250
  }, z.core.$strip>>;
1035
- metadata: z.ZodDefault<z.ZodOptional<z.ZodJSONSchema>>;
1251
+ metadata: z.ZodDefault<z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
1036
1252
  position: z.ZodDefault<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
1037
1253
  rotation: z.ZodDefault<z.ZodNumber>;
1038
1254
  supportSlabId: z.ZodOptional<z.ZodString>;
@@ -1054,6 +1270,7 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
1054
1270
  shaker: "shaker";
1055
1271
  "raised-arch": "raised-arch";
1056
1272
  }>>;
1273
+ panelReady: z.ZodDefault<z.ZodBoolean>;
1057
1274
  handleStyle: z.ZodDefault<z.ZodEnum<{
1058
1275
  none: "none";
1059
1276
  bar: "bar";
@@ -1226,7 +1443,14 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
1226
1443
  left: "left";
1227
1444
  }>>;
1228
1445
  cornerShelf: z.ZodOptional<z.ZodBoolean>;
1229
- }, z.core.$strip>, z.ZodObject<{
1446
+ topFinish: z.ZodDefault<z.ZodEnum<{
1447
+ trim: "trim";
1448
+ none: "none";
1449
+ "top-cabinet": "top-cabinet";
1450
+ }>>;
1451
+ topFinishHeight: z.ZodDefault<z.ZodNumber>;
1452
+ topFinishDepth: z.ZodDefault<z.ZodNumber>;
1453
+ }, z.core.$strip>>, BareDiscriminator<z.ZodObject<{
1230
1454
  object: z.ZodDefault<z.ZodLiteral<"node">>;
1231
1455
  name: z.ZodOptional<z.ZodString>;
1232
1456
  parentId: z.ZodDefault<z.ZodNullable<z.ZodString>>;
@@ -1241,7 +1465,7 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
1241
1465
  fov: z.ZodOptional<z.ZodNumber>;
1242
1466
  zoom: z.ZodOptional<z.ZodNumber>;
1243
1467
  }, z.core.$strip>>;
1244
- metadata: z.ZodDefault<z.ZodOptional<z.ZodJSONSchema>>;
1468
+ metadata: z.ZodDefault<z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
1245
1469
  id: z.ZodDefault<z.ZodTemplateLiteral<`item_${string}`>>;
1246
1470
  type: z.ZodDefault<z.ZodLiteral<"item">>;
1247
1471
  position: z.ZodDefault<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
@@ -1261,6 +1485,7 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
1261
1485
  right: "right";
1262
1486
  left: "left";
1263
1487
  }>>;
1488
+ blockFaceId: z.ZodOptional<z.ZodString>;
1264
1489
  supportSlabId: z.ZodOptional<z.ZodString>;
1265
1490
  collectionIds: z.ZodOptional<z.ZodArray<z.ZodCustom<`collection_${string}`, `collection_${string}`>>>;
1266
1491
  slots: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
@@ -1280,8 +1505,8 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
1280
1505
  dimensions: z.ZodDefault<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
1281
1506
  attachTo: z.ZodOptional<z.ZodEnum<{
1282
1507
  wall: "wall";
1283
- ceiling: "ceiling";
1284
1508
  "wall-side": "wall-side";
1509
+ ceiling: "ceiling";
1285
1510
  }>>;
1286
1511
  recessed: z.ZodOptional<z.ZodBoolean>;
1287
1512
  tags: z.ZodOptional<z.ZodArray<z.ZodString>>;
@@ -1337,7 +1562,7 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
1337
1562
  }, z.core.$strip>], "kind">>>;
1338
1563
  }, z.core.$strip>>;
1339
1564
  }, z.core.$strip>;
1340
- }, z.core.$strip>, z.ZodObject<{
1565
+ }, z.core.$strip>>, BareDiscriminator<z.ZodObject<{
1341
1566
  object: z.ZodDefault<z.ZodLiteral<"node">>;
1342
1567
  parentId: z.ZodDefault<z.ZodNullable<z.ZodString>>;
1343
1568
  visible: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
@@ -1364,8 +1589,8 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
1364
1589
  roomNumber: z.ZodDefault<z.ZodString>;
1365
1590
  enclosureStatus: z.ZodDefault<z.ZodEnum<{
1366
1591
  auto: "auto";
1367
- enclosed: "enclosed";
1368
1592
  open: "open";
1593
+ enclosed: "enclosed";
1369
1594
  }>>;
1370
1595
  floorFinish: z.ZodDefault<z.ZodString>;
1371
1596
  wallFinish: z.ZodDefault<z.ZodString>;
@@ -1378,8 +1603,8 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
1378
1603
  "finish-faces": "finish-faces";
1379
1604
  }>>;
1380
1605
  color: z.ZodDefault<z.ZodString>;
1381
- metadata: z.ZodDefault<z.ZodOptional<z.ZodJSONSchema>>;
1382
- }, z.core.$strip>, z.ZodObject<{
1606
+ metadata: z.ZodDefault<z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
1607
+ }, z.core.$strip>>, BareDiscriminator<z.ZodObject<{
1383
1608
  object: z.ZodDefault<z.ZodLiteral<"node">>;
1384
1609
  name: z.ZodOptional<z.ZodString>;
1385
1610
  parentId: z.ZodDefault<z.ZodNullable<z.ZodString>>;
@@ -1394,7 +1619,7 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
1394
1619
  fov: z.ZodOptional<z.ZodNumber>;
1395
1620
  zoom: z.ZodOptional<z.ZodNumber>;
1396
1621
  }, z.core.$strip>>;
1397
- metadata: z.ZodDefault<z.ZodOptional<z.ZodJSONSchema>>;
1622
+ metadata: z.ZodDefault<z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
1398
1623
  id: z.ZodDefault<z.ZodTemplateLiteral<`slab_${string}`>>;
1399
1624
  type: z.ZodDefault<z.ZodLiteral<"slab">>;
1400
1625
  material: z.ZodOptional<z.ZodObject<{
@@ -1448,7 +1673,7 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
1448
1673
  recessedRimElevation: z.ZodOptional<z.ZodNumber>;
1449
1674
  fillToTerrain: z.ZodOptional<z.ZodBoolean>;
1450
1675
  autoFromWalls: z.ZodDefault<z.ZodBoolean>;
1451
- }, z.core.$strip>, z.ZodObject<{
1676
+ }, z.core.$strip>>, BareDiscriminator<z.ZodObject<{
1452
1677
  object: z.ZodDefault<z.ZodLiteral<"node">>;
1453
1678
  name: z.ZodOptional<z.ZodString>;
1454
1679
  parentId: z.ZodDefault<z.ZodNullable<z.ZodString>>;
@@ -1463,7 +1688,7 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
1463
1688
  fov: z.ZodOptional<z.ZodNumber>;
1464
1689
  zoom: z.ZodOptional<z.ZodNumber>;
1465
1690
  }, z.core.$strip>>;
1466
- metadata: z.ZodDefault<z.ZodOptional<z.ZodJSONSchema>>;
1691
+ metadata: z.ZodDefault<z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
1467
1692
  id: z.ZodDefault<z.ZodTemplateLiteral<`ceiling_${string}`>>;
1468
1693
  type: z.ZodDefault<z.ZodLiteral<"ceiling">>;
1469
1694
  children: z.ZodDefault<z.ZodArray<z.ZodDefault<z.ZodTemplateLiteral<`item_${string}`>>>>;
@@ -1514,7 +1739,7 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
1514
1739
  }, z.core.$strip>>>;
1515
1740
  height: z.ZodOptional<z.ZodNumber>;
1516
1741
  autoFromWalls: z.ZodDefault<z.ZodBoolean>;
1517
- }, z.core.$strip>, z.ZodObject<{
1742
+ }, z.core.$strip>>, BareDiscriminator<z.ZodObject<{
1518
1743
  object: z.ZodDefault<z.ZodLiteral<"node">>;
1519
1744
  name: z.ZodOptional<z.ZodString>;
1520
1745
  parentId: z.ZodDefault<z.ZodNullable<z.ZodString>>;
@@ -1529,7 +1754,7 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
1529
1754
  fov: z.ZodOptional<z.ZodNumber>;
1530
1755
  zoom: z.ZodOptional<z.ZodNumber>;
1531
1756
  }, z.core.$strip>>;
1532
- metadata: z.ZodDefault<z.ZodOptional<z.ZodJSONSchema>>;
1757
+ metadata: z.ZodDefault<z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
1533
1758
  id: z.ZodDefault<z.ZodTemplateLiteral<`roof_${string}`>>;
1534
1759
  type: z.ZodDefault<z.ZodLiteral<"roof">>;
1535
1760
  material: z.ZodOptional<z.ZodObject<{
@@ -1666,8 +1891,18 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
1666
1891
  wallMaterialPreset: z.ZodOptional<z.ZodString>;
1667
1892
  position: z.ZodDefault<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
1668
1893
  rotation: z.ZodDefault<z.ZodNumber>;
1894
+ support: z.ZodDefault<z.ZodDiscriminatedUnion<[z.ZodObject<{
1895
+ kind: z.ZodLiteral<"level">;
1896
+ }, z.core.$strip>, z.ZodObject<{
1897
+ kind: z.ZodLiteral<"walls">;
1898
+ }, z.core.$strip>, z.ZodObject<{
1899
+ kind: z.ZodLiteral<"roof">;
1900
+ roofSegmentId: z.ZodDefault<z.ZodTemplateLiteral<`rseg_${string}`>>;
1901
+ localPosition: z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>;
1902
+ curbHeight: z.ZodDefault<z.ZodNumber>;
1903
+ }, z.core.$strip>], "kind">>;
1669
1904
  children: z.ZodDefault<z.ZodArray<z.ZodDefault<z.ZodTemplateLiteral<`rseg_${string}`>>>>;
1670
- }, z.core.$strip>, z.ZodObject<{
1905
+ }, z.core.$strip>>, BareDiscriminator<z.ZodObject<{
1671
1906
  object: z.ZodDefault<z.ZodLiteral<"node">>;
1672
1907
  name: z.ZodOptional<z.ZodString>;
1673
1908
  parentId: z.ZodDefault<z.ZodNullable<z.ZodString>>;
@@ -1682,7 +1917,7 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
1682
1917
  fov: z.ZodOptional<z.ZodNumber>;
1683
1918
  zoom: z.ZodOptional<z.ZodNumber>;
1684
1919
  }, z.core.$strip>>;
1685
- metadata: z.ZodDefault<z.ZodOptional<z.ZodJSONSchema>>;
1920
+ metadata: z.ZodDefault<z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
1686
1921
  id: z.ZodDefault<z.ZodTemplateLiteral<`rseg_${string}`>>;
1687
1922
  type: z.ZodDefault<z.ZodLiteral<"roof-segment">>;
1688
1923
  material: z.ZodOptional<z.ZodObject<{
@@ -1827,9 +2062,13 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
1827
2062
  gambrel: "gambrel";
1828
2063
  dutch: "dutch";
1829
2064
  mansard: "mansard";
2065
+ conical: "conical";
1830
2066
  }>>;
1831
2067
  width: z.ZodDefault<z.ZodNumber>;
1832
2068
  depth: z.ZodDefault<z.ZodNumber>;
2069
+ conicalStartAngle: z.ZodOptional<z.ZodNumber>;
2070
+ conicalSweepAngle: z.ZodOptional<z.ZodNumber>;
2071
+ conicalFullCircle: z.ZodOptional<z.ZodBoolean>;
1833
2072
  trim: z.ZodDefault<z.ZodObject<{
1834
2073
  left: z.ZodDefault<z.ZodNumber>;
1835
2074
  right: z.ZodDefault<z.ZodNumber>;
@@ -1854,6 +2093,33 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
1854
2093
  deckThickness: z.ZodDefault<z.ZodNumber>;
1855
2094
  overhang: z.ZodDefault<z.ZodNumber>;
1856
2095
  shingleThickness: z.ZodDefault<z.ZodNumber>;
2096
+ arc: z.ZodOptional<z.ZodObject<{
2097
+ centerX: z.ZodNumber;
2098
+ centerZ: z.ZodNumber;
2099
+ radius: z.ZodNumber;
2100
+ }, z.core.$strip>>;
2101
+ shedSideInfillSpan: z.ZodOptional<z.ZodNumber>;
2102
+ shedSideInfillMinX: z.ZodOptional<z.ZodNumber>;
2103
+ shedSideInfillMaxX: z.ZodOptional<z.ZodNumber>;
2104
+ shedFootprintPieces: z.ZodOptional<z.ZodArray<z.ZodArray<z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>>>>;
2105
+ shedOpenEndSides: z.ZodOptional<z.ZodArray<z.ZodEnum<{
2106
+ right: "right";
2107
+ left: "left";
2108
+ }>>>;
2109
+ shedJointFrame: z.ZodOptional<z.ZodObject<{
2110
+ position: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
2111
+ rotation: z.ZodNumber;
2112
+ }, z.core.$strip>>;
2113
+ shedJointOwnerId: z.ZodOptional<z.ZodString>;
2114
+ shedJointNeighborIds: z.ZodOptional<z.ZodArray<z.ZodString>>;
2115
+ shedJointScopeId: z.ZodOptional<z.ZodString>;
2116
+ managedByParent: z.ZodDefault<z.ZodBoolean>;
2117
+ wallShell: z.ZodDefault<z.ZodEnum<{
2118
+ auto: "auto";
2119
+ include: "include";
2120
+ omit: "omit";
2121
+ }>>;
2122
+ shedInsetEndPanels: z.ZodDefault<z.ZodBoolean>;
1857
2123
  gambrelLowerWidthRatio: z.ZodDefault<z.ZodNumber>;
1858
2124
  gambrelLowerHeightRatio: z.ZodDefault<z.ZodNumber>;
1859
2125
  mansardSteepWidthRatio: z.ZodDefault<z.ZodNumber>;
@@ -1864,7 +2130,7 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
1864
2130
  dutchGabletRake: z.ZodDefault<z.ZodNumber>;
1865
2131
  dutchTopRakeThickness: z.ZodDefault<z.ZodNumber>;
1866
2132
  children: z.ZodDefault<z.ZodArray<z.ZodString>>;
1867
- }, z.core.$strip>, z.ZodObject<{
2133
+ }, z.core.$strip>>, BareDiscriminator<z.ZodObject<{
1868
2134
  object: z.ZodDefault<z.ZodLiteral<"node">>;
1869
2135
  name: z.ZodOptional<z.ZodString>;
1870
2136
  parentId: z.ZodDefault<z.ZodNullable<z.ZodString>>;
@@ -1879,7 +2145,7 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
1879
2145
  fov: z.ZodOptional<z.ZodNumber>;
1880
2146
  zoom: z.ZodOptional<z.ZodNumber>;
1881
2147
  }, z.core.$strip>>;
1882
- metadata: z.ZodDefault<z.ZodOptional<z.ZodJSONSchema>>;
2148
+ metadata: z.ZodDefault<z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
1883
2149
  id: z.ZodDefault<z.ZodTemplateLiteral<`shelf_${string}`>>;
1884
2150
  type: z.ZodDefault<z.ZodLiteral<"shelf">>;
1885
2151
  children: z.ZodDefault<z.ZodArray<z.ZodDefault<z.ZodTemplateLiteral<`item_${string}`>>>>;
@@ -1902,9 +2168,9 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
1902
2168
  withSides: z.ZodDefault<z.ZodBoolean>;
1903
2169
  withBottom: z.ZodDefault<z.ZodBoolean>;
1904
2170
  bracketStyle: z.ZodDefault<z.ZodEnum<{
2171
+ hidden: "hidden";
1905
2172
  minimal: "minimal";
1906
2173
  industrial: "industrial";
1907
- hidden: "hidden";
1908
2174
  }>>;
1909
2175
  material: z.ZodOptional<z.ZodObject<{
1910
2176
  id: z.ZodOptional<z.ZodString>;
@@ -1940,7 +2206,7 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
1940
2206
  }, z.core.$strip>>;
1941
2207
  materialPreset: z.ZodOptional<z.ZodString>;
1942
2208
  slots: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
1943
- }, z.core.$strip>, z.ZodObject<{
2209
+ }, z.core.$strip>>, BareDiscriminator<z.ZodObject<{
1944
2210
  object: z.ZodDefault<z.ZodLiteral<"node">>;
1945
2211
  name: z.ZodOptional<z.ZodString>;
1946
2212
  parentId: z.ZodDefault<z.ZodNullable<z.ZodString>>;
@@ -1955,7 +2221,7 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
1955
2221
  fov: z.ZodOptional<z.ZodNumber>;
1956
2222
  zoom: z.ZodOptional<z.ZodNumber>;
1957
2223
  }, z.core.$strip>>;
1958
- metadata: z.ZodDefault<z.ZodOptional<z.ZodJSONSchema>>;
2224
+ metadata: z.ZodDefault<z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
1959
2225
  id: z.ZodDefault<z.ZodTemplateLiteral<`stair_${string}`>>;
1960
2226
  type: z.ZodDefault<z.ZodLiteral<"stair">>;
1961
2227
  material: z.ZodOptional<z.ZodObject<{
@@ -2129,7 +2395,7 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
2129
2395
  }>>;
2130
2396
  railingHeight: z.ZodDefault<z.ZodNumber>;
2131
2397
  children: z.ZodDefault<z.ZodArray<z.ZodDefault<z.ZodTemplateLiteral<`sseg_${string}`>>>>;
2132
- }, z.core.$strip>, z.ZodObject<{
2398
+ }, z.core.$strip>>, BareDiscriminator<z.ZodObject<{
2133
2399
  object: z.ZodDefault<z.ZodLiteral<"node">>;
2134
2400
  name: z.ZodOptional<z.ZodString>;
2135
2401
  parentId: z.ZodDefault<z.ZodNullable<z.ZodString>>;
@@ -2144,7 +2410,7 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
2144
2410
  fov: z.ZodOptional<z.ZodNumber>;
2145
2411
  zoom: z.ZodOptional<z.ZodNumber>;
2146
2412
  }, z.core.$strip>>;
2147
- metadata: z.ZodDefault<z.ZodOptional<z.ZodJSONSchema>>;
2413
+ metadata: z.ZodDefault<z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
2148
2414
  id: z.ZodDefault<z.ZodTemplateLiteral<`sseg_${string}`>>;
2149
2415
  type: z.ZodDefault<z.ZodLiteral<"stair-segment">>;
2150
2416
  material: z.ZodOptional<z.ZodObject<{
@@ -2197,7 +2463,7 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
2197
2463
  }>>;
2198
2464
  fillToFloor: z.ZodDefault<z.ZodBoolean>;
2199
2465
  thickness: z.ZodDefault<z.ZodNumber>;
2200
- }, z.core.$strip>, z.ZodObject<{
2466
+ }, z.core.$strip>>, BareDiscriminator<z.ZodObject<{
2201
2467
  object: z.ZodDefault<z.ZodLiteral<"node">>;
2202
2468
  name: z.ZodOptional<z.ZodString>;
2203
2469
  parentId: z.ZodDefault<z.ZodNullable<z.ZodString>>;
@@ -2212,15 +2478,22 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
2212
2478
  fov: z.ZodOptional<z.ZodNumber>;
2213
2479
  zoom: z.ZodOptional<z.ZodNumber>;
2214
2480
  }, z.core.$strip>>;
2215
- metadata: z.ZodDefault<z.ZodOptional<z.ZodJSONSchema>>;
2481
+ metadata: z.ZodDefault<z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
2216
2482
  id: z.ZodDefault<z.ZodTemplateLiteral<`scan_${string}`>>;
2217
2483
  type: z.ZodDefault<z.ZodLiteral<"scan">>;
2218
- url: z.ZodString;
2484
+ url: z.ZodDefault<z.ZodNullable<z.ZodString>>;
2485
+ captureSession: z.ZodDefault<z.ZodNullable<z.ZodObject<{
2486
+ sessionId: z.ZodString;
2487
+ schemaVersion: z.ZodOptional<z.ZodNumber>;
2488
+ revisionId: z.ZodOptional<z.ZodString>;
2489
+ manifestUrl: z.ZodOptional<z.ZodString>;
2490
+ }, z.core.$strip>>>;
2491
+ layers: z.ZodPipe<z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodBoolean>>, z.ZodTransform<Record<string, boolean>, Record<string, boolean>>>;
2219
2492
  position: z.ZodDefault<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
2220
2493
  rotation: z.ZodDefault<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
2221
2494
  scale: z.ZodDefault<z.ZodNumber>;
2222
2495
  opacity: z.ZodDefault<z.ZodNumber>;
2223
- }, z.core.$strip>, z.ZodObject<{
2496
+ }, z.core.$strip>>, BareDiscriminator<z.ZodObject<{
2224
2497
  object: z.ZodDefault<z.ZodLiteral<"node">>;
2225
2498
  name: z.ZodOptional<z.ZodString>;
2226
2499
  parentId: z.ZodDefault<z.ZodNullable<z.ZodString>>;
@@ -2235,7 +2508,7 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
2235
2508
  fov: z.ZodOptional<z.ZodNumber>;
2236
2509
  zoom: z.ZodOptional<z.ZodNumber>;
2237
2510
  }, z.core.$strip>>;
2238
- metadata: z.ZodDefault<z.ZodOptional<z.ZodJSONSchema>>;
2511
+ metadata: z.ZodDefault<z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
2239
2512
  id: z.ZodDefault<z.ZodTemplateLiteral<`guide_${string}`>>;
2240
2513
  type: z.ZodDefault<z.ZodLiteral<"guide">>;
2241
2514
  url: z.ZodString;
@@ -2251,7 +2524,7 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
2251
2524
  metersPerUnit: z.ZodNumber;
2252
2525
  label: z.ZodString;
2253
2526
  }, z.core.$strip>>>;
2254
- }, z.core.$strip>, z.ZodObject<{
2527
+ }, z.core.$strip>>, BareDiscriminator<z.ZodObject<{
2255
2528
  object: z.ZodDefault<z.ZodLiteral<"node">>;
2256
2529
  name: z.ZodOptional<z.ZodString>;
2257
2530
  parentId: z.ZodDefault<z.ZodNullable<z.ZodString>>;
@@ -2266,7 +2539,7 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
2266
2539
  fov: z.ZodOptional<z.ZodNumber>;
2267
2540
  zoom: z.ZodOptional<z.ZodNumber>;
2268
2541
  }, z.core.$strip>>;
2269
- metadata: z.ZodDefault<z.ZodOptional<z.ZodJSONSchema>>;
2542
+ metadata: z.ZodDefault<z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
2270
2543
  id: z.ZodDefault<z.ZodTemplateLiteral<`measurement_${string}`>>;
2271
2544
  type: z.ZodDefault<z.ZodLiteral<"measurement">>;
2272
2545
  measurement: z.ZodDiscriminatedUnion<[z.ZodObject<{
@@ -2350,7 +2623,7 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
2350
2623
  }, z.core.$strip>]>>;
2351
2624
  extrusion: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
2352
2625
  }, z.core.$strip>], "kind">;
2353
- }, z.core.$strip>, z.ZodObject<{
2626
+ }, z.core.$strip>>, BareDiscriminator<z.ZodObject<{
2354
2627
  object: z.ZodDefault<z.ZodLiteral<"node">>;
2355
2628
  name: z.ZodOptional<z.ZodString>;
2356
2629
  parentId: z.ZodDefault<z.ZodNullable<z.ZodString>>;
@@ -2365,13 +2638,13 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
2365
2638
  fov: z.ZodOptional<z.ZodNumber>;
2366
2639
  zoom: z.ZodOptional<z.ZodNumber>;
2367
2640
  }, z.core.$strip>>;
2368
- metadata: z.ZodDefault<z.ZodOptional<z.ZodJSONSchema>>;
2641
+ metadata: z.ZodDefault<z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
2369
2642
  id: z.ZodDefault<z.ZodTemplateLiteral<`spawn_${string}`>>;
2370
2643
  type: z.ZodDefault<z.ZodLiteral<"spawn">>;
2371
2644
  position: z.ZodDefault<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
2372
2645
  rotation: z.ZodDefault<z.ZodNumber>;
2373
2646
  supportSlabId: z.ZodOptional<z.ZodString>;
2374
- }, z.core.$strip>, z.ZodObject<{
2647
+ }, z.core.$strip>>, BareDiscriminator<z.ZodObject<{
2375
2648
  object: z.ZodDefault<z.ZodLiteral<"node">>;
2376
2649
  name: z.ZodOptional<z.ZodString>;
2377
2650
  parentId: z.ZodDefault<z.ZodNullable<z.ZodString>>;
@@ -2386,7 +2659,7 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
2386
2659
  fov: z.ZodOptional<z.ZodNumber>;
2387
2660
  zoom: z.ZodOptional<z.ZodNumber>;
2388
2661
  }, z.core.$strip>>;
2389
- metadata: z.ZodDefault<z.ZodOptional<z.ZodJSONSchema>>;
2662
+ metadata: z.ZodDefault<z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
2390
2663
  id: z.ZodDefault<z.ZodTemplateLiteral<`window_${string}`>>;
2391
2664
  type: z.ZodDefault<z.ZodLiteral<"window">>;
2392
2665
  material: z.ZodOptional<z.ZodObject<{
@@ -2429,6 +2702,13 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
2429
2702
  back: "back";
2430
2703
  }>>;
2431
2704
  wallId: z.ZodOptional<z.ZodString>;
2705
+ dormerId: z.ZodOptional<z.ZodString>;
2706
+ dormerFace: z.ZodOptional<z.ZodEnum<{
2707
+ front: "front";
2708
+ back: "back";
2709
+ right: "right";
2710
+ left: "left";
2711
+ }>>;
2432
2712
  roofSegmentId: z.ZodOptional<z.ZodString>;
2433
2713
  roofFace: z.ZodOptional<z.ZodEnum<{
2434
2714
  front: "front";
@@ -2460,8 +2740,8 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
2460
2740
  opening: "opening";
2461
2741
  }>>;
2462
2742
  windowType: z.ZodDefault<z.ZodEnum<{
2463
- sliding: "sliding";
2464
2743
  fixed: "fixed";
2744
+ sliding: "sliding";
2465
2745
  casement: "casement";
2466
2746
  awning: "awning";
2467
2747
  hopper: "hopper";
@@ -2506,7 +2786,7 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
2506
2786
  sill: z.ZodDefault<z.ZodBoolean>;
2507
2787
  sillDepth: z.ZodDefault<z.ZodNumber>;
2508
2788
  sillThickness: z.ZodDefault<z.ZodNumber>;
2509
- }, z.core.$strip>, z.ZodObject<{
2789
+ }, z.core.$strip>>, BareDiscriminator<z.ZodObject<{
2510
2790
  object: z.ZodDefault<z.ZodLiteral<"node">>;
2511
2791
  name: z.ZodOptional<z.ZodString>;
2512
2792
  parentId: z.ZodDefault<z.ZodNullable<z.ZodString>>;
@@ -2521,7 +2801,7 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
2521
2801
  fov: z.ZodOptional<z.ZodNumber>;
2522
2802
  zoom: z.ZodOptional<z.ZodNumber>;
2523
2803
  }, z.core.$strip>>;
2524
- metadata: z.ZodDefault<z.ZodOptional<z.ZodJSONSchema>>;
2804
+ metadata: z.ZodDefault<z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
2525
2805
  id: z.ZodDefault<z.ZodTemplateLiteral<`door_${string}`>>;
2526
2806
  type: z.ZodDefault<z.ZodLiteral<"door">>;
2527
2807
  material: z.ZodOptional<z.ZodObject<{
@@ -2671,7 +2951,7 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
2671
2951
  doorCloser: z.ZodDefault<z.ZodBoolean>;
2672
2952
  panicBar: z.ZodDefault<z.ZodBoolean>;
2673
2953
  panicBarHeight: z.ZodDefault<z.ZodNumber>;
2674
- }, z.core.$strip>, z.ZodObject<{
2954
+ }, z.core.$strip>>, BareDiscriminator<z.ZodObject<{
2675
2955
  object: z.ZodDefault<z.ZodLiteral<"node">>;
2676
2956
  name: z.ZodOptional<z.ZodString>;
2677
2957
  parentId: z.ZodDefault<z.ZodNullable<z.ZodString>>;
@@ -2686,7 +2966,7 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
2686
2966
  fov: z.ZodOptional<z.ZodNumber>;
2687
2967
  zoom: z.ZodOptional<z.ZodNumber>;
2688
2968
  }, z.core.$strip>>;
2689
- metadata: z.ZodDefault<z.ZodOptional<z.ZodJSONSchema>>;
2969
+ metadata: z.ZodDefault<z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
2690
2970
  id: z.ZodDefault<z.ZodTemplateLiteral<`bvent_${string}`>>;
2691
2971
  type: z.ZodDefault<z.ZodLiteral<"box-vent">>;
2692
2972
  material: z.ZodOptional<z.ZodObject<{
@@ -2721,6 +3001,7 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
2721
3001
  scale: z.ZodOptional<z.ZodNumber>;
2722
3002
  }, z.core.$strip>>;
2723
3003
  }, z.core.$strip>>;
3004
+ slots: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
2724
3005
  materialPreset: z.ZodDefault<z.ZodString>;
2725
3006
  roofSegmentId: z.ZodOptional<z.ZodString>;
2726
3007
  position: z.ZodDefault<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
@@ -2740,8 +3021,8 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
2740
3021
  box: "box";
2741
3022
  cap: "cap";
2742
3023
  dome: "dome";
2743
- }>>>;
2744
- }, z.core.$strip>, z.ZodObject<{
3024
+ }>>, unknown>;
3025
+ }, z.core.$strip>>, BareDiscriminator<z.ZodObject<{
2745
3026
  object: z.ZodDefault<z.ZodLiteral<"node">>;
2746
3027
  name: z.ZodOptional<z.ZodString>;
2747
3028
  parentId: z.ZodDefault<z.ZodNullable<z.ZodString>>;
@@ -2756,7 +3037,7 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
2756
3037
  fov: z.ZodOptional<z.ZodNumber>;
2757
3038
  zoom: z.ZodOptional<z.ZodNumber>;
2758
3039
  }, z.core.$strip>>;
2759
- metadata: z.ZodDefault<z.ZodOptional<z.ZodJSONSchema>>;
3040
+ metadata: z.ZodDefault<z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
2760
3041
  id: z.ZodDefault<z.ZodTemplateLiteral<`rvent_${string}`>>;
2761
3042
  type: z.ZodDefault<z.ZodLiteral<"ridge-vent">>;
2762
3043
  material: z.ZodOptional<z.ZodObject<{
@@ -2804,7 +3085,7 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
2804
3085
  shingled: "shingled";
2805
3086
  }>>;
2806
3087
  endCaps: z.ZodDefault<z.ZodBoolean>;
2807
- }, z.core.$strip>, z.ZodObject<{
3088
+ }, z.core.$strip>>, BareDiscriminator<z.ZodObject<{
2808
3089
  object: z.ZodDefault<z.ZodLiteral<"node">>;
2809
3090
  name: z.ZodOptional<z.ZodString>;
2810
3091
  parentId: z.ZodDefault<z.ZodNullable<z.ZodString>>;
@@ -2819,7 +3100,7 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
2819
3100
  fov: z.ZodOptional<z.ZodNumber>;
2820
3101
  zoom: z.ZodOptional<z.ZodNumber>;
2821
3102
  }, z.core.$strip>>;
2822
- metadata: z.ZodDefault<z.ZodOptional<z.ZodJSONSchema>>;
3103
+ metadata: z.ZodDefault<z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
2823
3104
  id: z.ZodDefault<z.ZodTemplateLiteral<`tvent_${string}`>>;
2824
3105
  type: z.ZodDefault<z.ZodLiteral<"turbine-vent">>;
2825
3106
  material: z.ZodOptional<z.ZodObject<{
@@ -2854,6 +3135,7 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
2854
3135
  scale: z.ZodOptional<z.ZodNumber>;
2855
3136
  }, z.core.$strip>>;
2856
3137
  }, z.core.$strip>>;
3138
+ slots: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
2857
3139
  materialPreset: z.ZodDefault<z.ZodString>;
2858
3140
  roofSegmentId: z.ZodOptional<z.ZodString>;
2859
3141
  position: z.ZodDefault<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
@@ -2868,7 +3150,7 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
2868
3150
  globe: "globe";
2869
3151
  cylinder: "cylinder";
2870
3152
  }>>;
2871
- }, z.core.$strip>, z.ZodObject<{
3153
+ }, z.core.$strip>>, BareDiscriminator<z.ZodObject<{
2872
3154
  object: z.ZodDefault<z.ZodLiteral<"node">>;
2873
3155
  name: z.ZodOptional<z.ZodString>;
2874
3156
  parentId: z.ZodDefault<z.ZodNullable<z.ZodString>>;
@@ -2883,7 +3165,7 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
2883
3165
  fov: z.ZodOptional<z.ZodNumber>;
2884
3166
  zoom: z.ZodOptional<z.ZodNumber>;
2885
3167
  }, z.core.$strip>>;
2886
- metadata: z.ZodDefault<z.ZodOptional<z.ZodJSONSchema>>;
3168
+ metadata: z.ZodDefault<z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
2887
3169
  id: z.ZodDefault<z.ZodTemplateLiteral<`cupola_${string}`>>;
2888
3170
  type: z.ZodDefault<z.ZodLiteral<"cupola">>;
2889
3171
  material: z.ZodOptional<z.ZodObject<{
@@ -2918,6 +3200,7 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
2918
3200
  scale: z.ZodOptional<z.ZodNumber>;
2919
3201
  }, z.core.$strip>>;
2920
3202
  }, z.core.$strip>>;
3203
+ slots: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
2921
3204
  materialPreset: z.ZodDefault<z.ZodString>;
2922
3205
  roofSegmentId: z.ZodOptional<z.ZodString>;
2923
3206
  position: z.ZodDefault<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
@@ -2930,7 +3213,7 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
2930
3213
  pyramid: "pyramid";
2931
3214
  }>>;
2932
3215
  finial: z.ZodDefault<z.ZodBoolean>;
2933
- }, z.core.$strip>, z.ZodObject<{
3216
+ }, z.core.$strip>>, BareDiscriminator<z.ZodObject<{
2934
3217
  object: z.ZodDefault<z.ZodLiteral<"node">>;
2935
3218
  name: z.ZodOptional<z.ZodString>;
2936
3219
  parentId: z.ZodDefault<z.ZodNullable<z.ZodString>>;
@@ -2945,7 +3228,7 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
2945
3228
  fov: z.ZodOptional<z.ZodNumber>;
2946
3229
  zoom: z.ZodOptional<z.ZodNumber>;
2947
3230
  }, z.core.$strip>>;
2948
- metadata: z.ZodDefault<z.ZodOptional<z.ZodJSONSchema>>;
3231
+ metadata: z.ZodDefault<z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
2949
3232
  id: z.ZodDefault<z.ZodTemplateLiteral<`eyebrow-vent_${string}`>>;
2950
3233
  type: z.ZodDefault<z.ZodLiteral<"eyebrow-vent">>;
2951
3234
  material: z.ZodOptional<z.ZodObject<{
@@ -2980,6 +3263,7 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
2980
3263
  scale: z.ZodOptional<z.ZodNumber>;
2981
3264
  }, z.core.$strip>>;
2982
3265
  }, z.core.$strip>>;
3266
+ slots: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
2983
3267
  materialPreset: z.ZodDefault<z.ZodString>;
2984
3268
  roofSegmentId: z.ZodOptional<z.ZodString>;
2985
3269
  position: z.ZodDefault<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
@@ -2988,13 +3272,13 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
2988
3272
  depth: z.ZodDefault<z.ZodNumber>;
2989
3273
  height: z.ZodDefault<z.ZodNumber>;
2990
3274
  style: z.ZodDefault<z.ZodEnum<{
2991
- scoop: "scoop";
2992
3275
  "half-round": "half-round";
3276
+ scoop: "scoop";
2993
3277
  "slant-box": "slant-box";
2994
3278
  }>>;
2995
3279
  louverCount: z.ZodDefault<z.ZodNumber>;
2996
3280
  backRatio: z.ZodDefault<z.ZodNumber>;
2997
- }, z.core.$strip>, z.ZodObject<{
3281
+ }, z.core.$strip>>, BareDiscriminator<z.ZodObject<{
2998
3282
  object: z.ZodDefault<z.ZodLiteral<"node">>;
2999
3283
  name: z.ZodOptional<z.ZodString>;
3000
3284
  parentId: z.ZodDefault<z.ZodNullable<z.ZodString>>;
@@ -3009,7 +3293,7 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
3009
3293
  fov: z.ZodOptional<z.ZodNumber>;
3010
3294
  zoom: z.ZodOptional<z.ZodNumber>;
3011
3295
  }, z.core.$strip>>;
3012
- metadata: z.ZodDefault<z.ZodOptional<z.ZodJSONSchema>>;
3296
+ metadata: z.ZodDefault<z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
3013
3297
  id: z.ZodDefault<z.ZodTemplateLiteral<`gutter_${string}`>>;
3014
3298
  type: z.ZodDefault<z.ZodLiteral<"gutter">>;
3015
3299
  material: z.ZodOptional<z.ZodObject<{
@@ -3044,17 +3328,23 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
3044
3328
  scale: z.ZodOptional<z.ZodNumber>;
3045
3329
  }, z.core.$strip>>;
3046
3330
  }, z.core.$strip>>;
3331
+ slots: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
3047
3332
  materialPreset: z.ZodDefault<z.ZodString>;
3048
3333
  roofSegmentId: z.ZodOptional<z.ZodString>;
3049
3334
  position: z.ZodDefault<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
3050
3335
  rotation: z.ZodDefault<z.ZodNumber>;
3051
3336
  length: z.ZodDefault<z.ZodNumber>;
3337
+ arc: z.ZodOptional<z.ZodObject<{
3338
+ centerX: z.ZodNumber;
3339
+ centerZ: z.ZodNumber;
3340
+ radius: z.ZodNumber;
3341
+ }, z.core.$strip>>;
3052
3342
  size: z.ZodDefault<z.ZodNumber>;
3053
3343
  thickness: z.ZodDefault<z.ZodNumber>;
3054
3344
  profile: z.ZodDefault<z.ZodEnum<{
3055
3345
  box: "box";
3056
- "half-round": "half-round";
3057
3346
  "k-style": "k-style";
3347
+ "half-round": "half-round";
3058
3348
  }>>;
3059
3349
  endCapLeft: z.ZodDefault<z.ZodBoolean>;
3060
3350
  endCapRight: z.ZodDefault<z.ZodBoolean>;
@@ -3067,8 +3357,9 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
3067
3357
  id: z.ZodString;
3068
3358
  offset: z.ZodDefault<z.ZodNumber>;
3069
3359
  diameter: z.ZodDefault<z.ZodNumber>;
3360
+ generatedBy: z.ZodOptional<z.ZodLiteral<"default-downspout">>;
3070
3361
  }, z.core.$strip>>>;
3071
- }, z.core.$strip>, z.ZodObject<{
3362
+ }, z.core.$strip>>, BareDiscriminator<z.ZodObject<{
3072
3363
  object: z.ZodDefault<z.ZodLiteral<"node">>;
3073
3364
  name: z.ZodOptional<z.ZodString>;
3074
3365
  parentId: z.ZodDefault<z.ZodNullable<z.ZodString>>;
@@ -3083,7 +3374,7 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
3083
3374
  fov: z.ZodOptional<z.ZodNumber>;
3084
3375
  zoom: z.ZodOptional<z.ZodNumber>;
3085
3376
  }, z.core.$strip>>;
3086
- metadata: z.ZodDefault<z.ZodOptional<z.ZodJSONSchema>>;
3377
+ metadata: z.ZodDefault<z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
3087
3378
  id: z.ZodDefault<z.ZodTemplateLiteral<`chimney_${string}`>>;
3088
3379
  type: z.ZodDefault<z.ZodLiteral<"chimney">>;
3089
3380
  material: z.ZodOptional<z.ZodObject<{
@@ -3217,7 +3508,7 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
3217
3508
  panelHeight: z.ZodDefault<z.ZodNumber>;
3218
3509
  panelOffsetTop: z.ZodDefault<z.ZodNumber>;
3219
3510
  panelMargin: z.ZodDefault<z.ZodNumber>;
3220
- }, z.core.$strip>, z.ZodObject<{
3511
+ }, z.core.$strip>>, BareDiscriminator<z.ZodObject<{
3221
3512
  object: z.ZodDefault<z.ZodLiteral<"node">>;
3222
3513
  name: z.ZodOptional<z.ZodString>;
3223
3514
  parentId: z.ZodDefault<z.ZodNullable<z.ZodString>>;
@@ -3232,7 +3523,7 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
3232
3523
  fov: z.ZodOptional<z.ZodNumber>;
3233
3524
  zoom: z.ZodOptional<z.ZodNumber>;
3234
3525
  }, z.core.$strip>>;
3235
- metadata: z.ZodDefault<z.ZodOptional<z.ZodJSONSchema>>;
3526
+ metadata: z.ZodDefault<z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
3236
3527
  id: z.ZodDefault<z.ZodTemplateLiteral<`solarpanel_${string}`>>;
3237
3528
  type: z.ZodDefault<z.ZodLiteral<"solar-panel">>;
3238
3529
  material: z.ZodOptional<z.ZodObject<{
@@ -3325,7 +3616,7 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
3325
3616
  frameThickness: z.ZodDefault<z.ZodNumber>;
3326
3617
  frameDepth: z.ZodDefault<z.ZodNumber>;
3327
3618
  surfaceNormal: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
3328
- }, z.core.$strip>, z.ZodObject<{
3619
+ }, z.core.$strip>>, BareDiscriminator<z.ZodObject<{
3329
3620
  object: z.ZodDefault<z.ZodLiteral<"node">>;
3330
3621
  name: z.ZodOptional<z.ZodString>;
3331
3622
  parentId: z.ZodDefault<z.ZodNullable<z.ZodString>>;
@@ -3340,7 +3631,7 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
3340
3631
  fov: z.ZodOptional<z.ZodNumber>;
3341
3632
  zoom: z.ZodOptional<z.ZodNumber>;
3342
3633
  }, z.core.$strip>>;
3343
- metadata: z.ZodDefault<z.ZodOptional<z.ZodJSONSchema>>;
3634
+ metadata: z.ZodDefault<z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
3344
3635
  id: z.ZodDefault<z.ZodTemplateLiteral<`skylight_${string}`>>;
3345
3636
  type: z.ZodDefault<z.ZodLiteral<"skylight">>;
3346
3637
  material: z.ZodOptional<z.ZodObject<{
@@ -3446,7 +3737,7 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
3446
3737
  curbHeight: z.ZodDefault<z.ZodNumber>;
3447
3738
  cutoutOffset: z.ZodDefault<z.ZodNumber>;
3448
3739
  surfaceNormal: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
3449
- }, z.core.$strip>, z.ZodObject<{
3740
+ }, z.core.$strip>>, BareDiscriminator<z.ZodObject<{
3450
3741
  object: z.ZodDefault<z.ZodLiteral<"node">>;
3451
3742
  name: z.ZodOptional<z.ZodString>;
3452
3743
  parentId: z.ZodDefault<z.ZodNullable<z.ZodString>>;
@@ -3461,7 +3752,7 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
3461
3752
  fov: z.ZodOptional<z.ZodNumber>;
3462
3753
  zoom: z.ZodOptional<z.ZodNumber>;
3463
3754
  }, z.core.$strip>>;
3464
- metadata: z.ZodDefault<z.ZodOptional<z.ZodJSONSchema>>;
3755
+ metadata: z.ZodDefault<z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
3465
3756
  id: z.ZodDefault<z.ZodTemplateLiteral<`dormer_${string}`>>;
3466
3757
  type: z.ZodDefault<z.ZodLiteral<"dormer">>;
3467
3758
  material: z.ZodOptional<z.ZodObject<{
@@ -3610,8 +3901,13 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
3610
3901
  gambrel: "gambrel";
3611
3902
  dutch: "dutch";
3612
3903
  mansard: "mansard";
3904
+ conical: "conical";
3613
3905
  }>>;
3614
3906
  roofHeight: z.ZodDefault<z.ZodNumber>;
3907
+ shedHighSide: z.ZodDefault<z.ZodEnum<{
3908
+ front: "front";
3909
+ back: "back";
3910
+ }>>;
3615
3911
  wallSkirtHeight: z.ZodDefault<z.ZodNumber>;
3616
3912
  windowWidth: z.ZodDefault<z.ZodNumber>;
3617
3913
  windowHeight: z.ZodDefault<z.ZodNumber>;
@@ -3632,7 +3928,8 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
3632
3928
  windowSill: z.ZodDefault<z.ZodBoolean>;
3633
3929
  windowSillDepth: z.ZodDefault<z.ZodNumber>;
3634
3930
  windowSillThickness: z.ZodDefault<z.ZodNumber>;
3635
- }, z.core.$strip>, z.ZodObject<{
3931
+ children: z.ZodDefault<z.ZodArray<z.ZodDefault<z.ZodTemplateLiteral<`window_${string}`>>>>;
3932
+ }, z.core.$strip>>, BareDiscriminator<z.ZodObject<{
3636
3933
  object: z.ZodDefault<z.ZodLiteral<"node">>;
3637
3934
  name: z.ZodOptional<z.ZodString>;
3638
3935
  parentId: z.ZodDefault<z.ZodNullable<z.ZodString>>;
@@ -3647,7 +3944,7 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
3647
3944
  fov: z.ZodOptional<z.ZodNumber>;
3648
3945
  zoom: z.ZodOptional<z.ZodNumber>;
3649
3946
  }, z.core.$strip>>;
3650
- metadata: z.ZodDefault<z.ZodOptional<z.ZodJSONSchema>>;
3947
+ metadata: z.ZodDefault<z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
3651
3948
  id: z.ZodDefault<z.ZodTemplateLiteral<`downspout_${string}`>>;
3652
3949
  type: z.ZodDefault<z.ZodLiteral<"downspout">>;
3653
3950
  material: z.ZodOptional<z.ZodObject<{
@@ -3682,10 +3979,15 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
3682
3979
  scale: z.ZodOptional<z.ZodNumber>;
3683
3980
  }, z.core.$strip>>;
3684
3981
  }, z.core.$strip>>;
3982
+ slots: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
3685
3983
  materialPreset: z.ZodDefault<z.ZodString>;
3686
3984
  gutterId: z.ZodOptional<z.ZodString>;
3687
3985
  outletId: z.ZodOptional<z.ZodString>;
3688
3986
  length: z.ZodDefault<z.ZodNumber>;
3987
+ lengthMode: z.ZodOptional<z.ZodEnum<{
3988
+ manual: "manual";
3989
+ "to-ground": "to-ground";
3990
+ }>>;
3689
3991
  diameter: z.ZodDefault<z.ZodNumber>;
3690
3992
  standoff: z.ZodDefault<z.ZodNumber>;
3691
3993
  shape: z.ZodDefault<z.ZodEnum<{
@@ -3703,7 +4005,7 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
3703
4005
  splash: "splash";
3704
4006
  kickout: "kickout";
3705
4007
  }>>;
3706
- }, z.core.$strip>, z.ZodObject<{
4008
+ }, z.core.$strip>>, BareDiscriminator<z.ZodObject<{
3707
4009
  object: z.ZodDefault<z.ZodLiteral<"node">>;
3708
4010
  name: z.ZodOptional<z.ZodString>;
3709
4011
  parentId: z.ZodDefault<z.ZodNullable<z.ZodString>>;
@@ -3718,10 +4020,32 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
3718
4020
  fov: z.ZodOptional<z.ZodNumber>;
3719
4021
  zoom: z.ZodOptional<z.ZodNumber>;
3720
4022
  }, z.core.$strip>>;
3721
- metadata: z.ZodDefault<z.ZodOptional<z.ZodJSONSchema>>;
4023
+ metadata: z.ZodDefault<z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
3722
4024
  id: z.ZodDefault<z.ZodTemplateLiteral<`duct-segment_${string}`>>;
3723
4025
  type: z.ZodDefault<z.ZodLiteral<"duct-segment">>;
3724
4026
  path: z.ZodArray<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
4027
+ autoHangers: z.ZodOptional<z.ZodBoolean>;
4028
+ hangerOverrides: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
4029
+ fraction: z.ZodOptional<z.ZodNumber>;
4030
+ skipped: z.ZodOptional<z.ZodBoolean>;
4031
+ hostId: z.ZodOptional<z.ZodString>;
4032
+ }, z.core.$strip>>>;
4033
+ hangerStyle: z.ZodOptional<z.ZodEnum<{
4034
+ double: "double";
4035
+ single: "single";
4036
+ }>>;
4037
+ hangerSpacing: z.ZodOptional<z.ZodNumber>;
4038
+ hangerMaxReach: z.ZodOptional<z.ZodNumber>;
4039
+ wallAttachment: z.ZodOptional<z.ZodObject<{
4040
+ wallId: z.ZodDefault<z.ZodTemplateLiteral<`wall_${string}`>>;
4041
+ side: z.ZodEnum<{
4042
+ front: "front";
4043
+ back: "back";
4044
+ }>;
4045
+ startUV: z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>;
4046
+ endUV: z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>;
4047
+ offset: z.ZodNumber;
4048
+ }, z.core.$strip>>;
3725
4049
  shape: z.ZodDefault<z.ZodEnum<{
3726
4050
  round: "round";
3727
4051
  rect: "rect";
@@ -3745,7 +4069,7 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
3745
4069
  return: "return";
3746
4070
  }>>;
3747
4071
  slots: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
3748
- }, z.core.$strip>, z.ZodObject<{
4072
+ }, z.core.$strip>>, BareDiscriminator<z.ZodObject<{
3749
4073
  object: z.ZodDefault<z.ZodLiteral<"node">>;
3750
4074
  name: z.ZodOptional<z.ZodString>;
3751
4075
  parentId: z.ZodDefault<z.ZodNullable<z.ZodString>>;
@@ -3760,7 +4084,7 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
3760
4084
  fov: z.ZodOptional<z.ZodNumber>;
3761
4085
  zoom: z.ZodOptional<z.ZodNumber>;
3762
4086
  }, z.core.$strip>>;
3763
- metadata: z.ZodDefault<z.ZodOptional<z.ZodJSONSchema>>;
4087
+ metadata: z.ZodDefault<z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
3764
4088
  id: z.ZodDefault<z.ZodTemplateLiteral<`duct-fitting_${string}`>>;
3765
4089
  type: z.ZodDefault<z.ZodLiteral<"duct-fitting">>;
3766
4090
  position: z.ZodDefault<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
@@ -3771,12 +4095,26 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
3771
4095
  cross: "cross";
3772
4096
  reducer: "reducer";
3773
4097
  transition: "transition";
4098
+ "end-cap": "end-cap";
4099
+ damper: "damper";
4100
+ "access-panel": "access-panel";
4101
+ coupling: "coupling";
3774
4102
  }>>;
3775
4103
  shape: z.ZodDefault<z.ZodEnum<{
3776
4104
  round: "round";
3777
4105
  rect: "rect";
3778
4106
  oval: "oval";
3779
4107
  }>>;
4108
+ inletShape: z.ZodOptional<z.ZodEnum<{
4109
+ round: "round";
4110
+ rect: "rect";
4111
+ oval: "oval";
4112
+ }>>;
4113
+ outletShape: z.ZodOptional<z.ZodEnum<{
4114
+ round: "round";
4115
+ rect: "rect";
4116
+ oval: "oval";
4117
+ }>>;
3780
4118
  width: z.ZodDefault<z.ZodNumber>;
3781
4119
  height: z.ZodDefault<z.ZodNumber>;
3782
4120
  shape2: z.ZodDefault<z.ZodEnum<{
@@ -3799,8 +4137,11 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
3799
4137
  supply: "supply";
3800
4138
  return: "return";
3801
4139
  }>>;
4140
+ damperAngle: z.ZodDefault<z.ZodNumber>;
4141
+ panelWidth: z.ZodDefault<z.ZodNumber>;
4142
+ panelHeight: z.ZodDefault<z.ZodNumber>;
3802
4143
  slots: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
3803
- }, z.core.$strip>, z.ZodObject<{
4144
+ }, z.core.$strip>>, BareDiscriminator<z.ZodObject<{
3804
4145
  object: z.ZodDefault<z.ZodLiteral<"node">>;
3805
4146
  name: z.ZodOptional<z.ZodString>;
3806
4147
  parentId: z.ZodDefault<z.ZodNullable<z.ZodString>>;
@@ -3815,7 +4156,7 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
3815
4156
  fov: z.ZodOptional<z.ZodNumber>;
3816
4157
  zoom: z.ZodOptional<z.ZodNumber>;
3817
4158
  }, z.core.$strip>>;
3818
- metadata: z.ZodDefault<z.ZodOptional<z.ZodJSONSchema>>;
4159
+ metadata: z.ZodDefault<z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
3819
4160
  id: z.ZodDefault<z.ZodTemplateLiteral<`duct-terminal_${string}`>>;
3820
4161
  type: z.ZodDefault<z.ZodLiteral<"duct-terminal">>;
3821
4162
  position: z.ZodDefault<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
@@ -3841,7 +4182,7 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
3841
4182
  collarDiameter: z.ZodDefault<z.ZodNumber>;
3842
4183
  collarWidth: z.ZodDefault<z.ZodNumber>;
3843
4184
  collarHeight: z.ZodDefault<z.ZodNumber>;
3844
- }, z.core.$strip>, z.ZodObject<{
4185
+ }, z.core.$strip>>, BareDiscriminator<z.ZodObject<{
3845
4186
  object: z.ZodDefault<z.ZodLiteral<"node">>;
3846
4187
  name: z.ZodOptional<z.ZodString>;
3847
4188
  parentId: z.ZodDefault<z.ZodNullable<z.ZodString>>;
@@ -3856,7 +4197,7 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
3856
4197
  fov: z.ZodOptional<z.ZodNumber>;
3857
4198
  zoom: z.ZodOptional<z.ZodNumber>;
3858
4199
  }, z.core.$strip>>;
3859
- metadata: z.ZodDefault<z.ZodOptional<z.ZodJSONSchema>>;
4200
+ metadata: z.ZodDefault<z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
3860
4201
  id: z.ZodDefault<z.ZodTemplateLiteral<`hvac-equipment_${string}`>>;
3861
4202
  type: z.ZodDefault<z.ZodLiteral<"hvac-equipment">>;
3862
4203
  position: z.ZodDefault<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
@@ -3886,7 +4227,7 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
3886
4227
  supplyHeight: z.ZodDefault<z.ZodNumber>;
3887
4228
  returnWidth: z.ZodDefault<z.ZodNumber>;
3888
4229
  returnHeight: z.ZodDefault<z.ZodNumber>;
3889
- }, z.core.$strip>, z.ZodObject<{
4230
+ }, z.core.$strip>>, BareDiscriminator<z.ZodObject<{
3890
4231
  object: z.ZodDefault<z.ZodLiteral<"node">>;
3891
4232
  name: z.ZodOptional<z.ZodString>;
3892
4233
  parentId: z.ZodDefault<z.ZodNullable<z.ZodString>>;
@@ -3901,14 +4242,14 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
3901
4242
  fov: z.ZodOptional<z.ZodNumber>;
3902
4243
  zoom: z.ZodOptional<z.ZodNumber>;
3903
4244
  }, z.core.$strip>>;
3904
- metadata: z.ZodDefault<z.ZodOptional<z.ZodJSONSchema>>;
4245
+ metadata: z.ZodDefault<z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
3905
4246
  id: z.ZodDefault<z.ZodTemplateLiteral<`lineset_${string}`>>;
3906
4247
  type: z.ZodDefault<z.ZodLiteral<"lineset">>;
3907
4248
  path: z.ZodArray<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
3908
4249
  suctionDiameter: z.ZodDefault<z.ZodNumber>;
3909
4250
  liquidDiameter: z.ZodDefault<z.ZodNumber>;
3910
4251
  insulated: z.ZodDefault<z.ZodBoolean>;
3911
- }, z.core.$strip>, z.ZodObject<{
4252
+ }, z.core.$strip>>, BareDiscriminator<z.ZodObject<{
3912
4253
  object: z.ZodDefault<z.ZodLiteral<"node">>;
3913
4254
  name: z.ZodOptional<z.ZodString>;
3914
4255
  parentId: z.ZodDefault<z.ZodNullable<z.ZodString>>;
@@ -3923,12 +4264,12 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
3923
4264
  fov: z.ZodOptional<z.ZodNumber>;
3924
4265
  zoom: z.ZodOptional<z.ZodNumber>;
3925
4266
  }, z.core.$strip>>;
3926
- metadata: z.ZodDefault<z.ZodOptional<z.ZodJSONSchema>>;
4267
+ metadata: z.ZodDefault<z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
3927
4268
  id: z.ZodDefault<z.ZodTemplateLiteral<`liquid-line_${string}`>>;
3928
4269
  type: z.ZodDefault<z.ZodLiteral<"liquid-line">>;
3929
4270
  path: z.ZodArray<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
3930
4271
  diameter: z.ZodDefault<z.ZodNumber>;
3931
- }, z.core.$strip>, z.ZodObject<{
4272
+ }, z.core.$strip>>, BareDiscriminator<z.ZodObject<{
3932
4273
  object: z.ZodDefault<z.ZodLiteral<"node">>;
3933
4274
  name: z.ZodOptional<z.ZodString>;
3934
4275
  parentId: z.ZodDefault<z.ZodNullable<z.ZodString>>;
@@ -3943,10 +4284,32 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
3943
4284
  fov: z.ZodOptional<z.ZodNumber>;
3944
4285
  zoom: z.ZodOptional<z.ZodNumber>;
3945
4286
  }, z.core.$strip>>;
3946
- metadata: z.ZodDefault<z.ZodOptional<z.ZodJSONSchema>>;
4287
+ metadata: z.ZodDefault<z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
3947
4288
  id: z.ZodDefault<z.ZodTemplateLiteral<`pipe-segment_${string}`>>;
3948
4289
  type: z.ZodDefault<z.ZodLiteral<"pipe-segment">>;
3949
4290
  path: z.ZodArray<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
4291
+ autoHangers: z.ZodOptional<z.ZodBoolean>;
4292
+ hangerOverrides: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
4293
+ fraction: z.ZodOptional<z.ZodNumber>;
4294
+ skipped: z.ZodOptional<z.ZodBoolean>;
4295
+ hostId: z.ZodOptional<z.ZodString>;
4296
+ }, z.core.$strip>>>;
4297
+ hangerStyle: z.ZodOptional<z.ZodEnum<{
4298
+ double: "double";
4299
+ single: "single";
4300
+ }>>;
4301
+ hangerSpacing: z.ZodOptional<z.ZodNumber>;
4302
+ hangerMaxReach: z.ZodOptional<z.ZodNumber>;
4303
+ wallAttachment: z.ZodOptional<z.ZodObject<{
4304
+ wallId: z.ZodDefault<z.ZodTemplateLiteral<`wall_${string}`>>;
4305
+ side: z.ZodEnum<{
4306
+ front: "front";
4307
+ back: "back";
4308
+ }>;
4309
+ startUV: z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>;
4310
+ endUV: z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>;
4311
+ offset: z.ZodNumber;
4312
+ }, z.core.$strip>>;
3950
4313
  diameter: z.ZodDefault<z.ZodNumber>;
3951
4314
  pipeMaterial: z.ZodDefault<z.ZodEnum<{
3952
4315
  pvc: "pvc";
@@ -3957,7 +4320,7 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
3957
4320
  waste: "waste";
3958
4321
  vent: "vent";
3959
4322
  }>>;
3960
- }, z.core.$strip>, z.ZodObject<{
4323
+ }, z.core.$strip>>, BareDiscriminator<z.ZodObject<{
3961
4324
  object: z.ZodDefault<z.ZodLiteral<"node">>;
3962
4325
  name: z.ZodOptional<z.ZodString>;
3963
4326
  parentId: z.ZodDefault<z.ZodNullable<z.ZodString>>;
@@ -3972,7 +4335,7 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
3972
4335
  fov: z.ZodOptional<z.ZodNumber>;
3973
4336
  zoom: z.ZodOptional<z.ZodNumber>;
3974
4337
  }, z.core.$strip>>;
3975
- metadata: z.ZodDefault<z.ZodOptional<z.ZodJSONSchema>>;
4338
+ metadata: z.ZodDefault<z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
3976
4339
  id: z.ZodDefault<z.ZodTemplateLiteral<`pipe-fitting_${string}`>>;
3977
4340
  type: z.ZodDefault<z.ZodLiteral<"pipe-fitting">>;
3978
4341
  position: z.ZodDefault<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
@@ -3980,12 +4343,20 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
3980
4343
  fittingType: z.ZodDefault<z.ZodEnum<{
3981
4344
  elbow: "elbow";
3982
4345
  cross: "cross";
4346
+ reducer: "reducer";
4347
+ "end-cap": "end-cap";
4348
+ coupling: "coupling";
3983
4349
  wye: "wye";
3984
4350
  "sanitary-tee": "sanitary-tee";
4351
+ cleanout: "cleanout";
3985
4352
  }>>;
3986
4353
  angle: z.ZodDefault<z.ZodNumber>;
3987
4354
  diameter: z.ZodDefault<z.ZodNumber>;
3988
4355
  diameter2: z.ZodDefault<z.ZodNumber>;
4356
+ cleanoutStyle: z.ZodDefault<z.ZodEnum<{
4357
+ end: "end";
4358
+ inline: "inline";
4359
+ }>>;
3989
4360
  pipeMaterial: z.ZodDefault<z.ZodEnum<{
3990
4361
  pvc: "pvc";
3991
4362
  abs: "abs";
@@ -3995,7 +4366,7 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
3995
4366
  waste: "waste";
3996
4367
  vent: "vent";
3997
4368
  }>>;
3998
- }, z.core.$strip>, z.ZodObject<{
4369
+ }, z.core.$strip>>, BareDiscriminator<z.ZodObject<{
3999
4370
  object: z.ZodDefault<z.ZodLiteral<"node">>;
4000
4371
  name: z.ZodOptional<z.ZodString>;
4001
4372
  parentId: z.ZodDefault<z.ZodNullable<z.ZodString>>;
@@ -4010,7 +4381,7 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
4010
4381
  fov: z.ZodOptional<z.ZodNumber>;
4011
4382
  zoom: z.ZodOptional<z.ZodNumber>;
4012
4383
  }, z.core.$strip>>;
4013
- metadata: z.ZodDefault<z.ZodOptional<z.ZodJSONSchema>>;
4384
+ metadata: z.ZodDefault<z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
4014
4385
  id: z.ZodDefault<z.ZodTemplateLiteral<`pipe-trap_${string}`>>;
4015
4386
  type: z.ZodDefault<z.ZodLiteral<"pipe-trap">>;
4016
4387
  position: z.ZodDefault<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
@@ -4022,8 +4393,13 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
4022
4393
  "cast-iron": "cast-iron";
4023
4394
  }>>;
4024
4395
  armLengthM: z.ZodDefault<z.ZodNumber>;
4025
- }, z.core.$strip>], "type">;
4396
+ }, z.core.$strip>>], "type">;
4026
4397
  export type AnyNode = z.infer<typeof AnyNode>;
4027
4398
  export type AnyNodeType = AnyNode['type'];
4028
4399
  export type AnyNodeId = AnyNode['id'];
4400
+ /** One member schema of `AnyNode`, discriminator already projected to a bare literal. */
4401
+ export type AnyNodeOption = (typeof AnyNode)['options'][number];
4402
+ /** The node kind a union member accepts, read off its bare-literal discriminator. */
4403
+ export declare const nodeKindOf: (option: AnyNodeOption) => AnyNodeType;
4404
+ export {};
4029
4405
  //# sourceMappingURL=types.d.ts.map