@pascal-app/core 1.0.6 → 1.1.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 (1003) hide show
  1. package/dist/agent-operations/__fixtures__/add-object-cases.d.ts +31 -0
  2. package/dist/agent-operations/__fixtures__/add-object-cases.d.ts.map +1 -1
  3. package/dist/agent-operations/__fixtures__/build-room-cases.d.ts.map +1 -1
  4. package/dist/agent-operations/__fixtures__/build-room-cases.js +27 -0
  5. package/dist/agent-operations/__fixtures__/cases.d.ts.map +1 -1
  6. package/dist/agent-operations/__fixtures__/cases.js +19 -11
  7. package/dist/agent-operations/__fixtures__/design-brief-cases.d.ts +25 -2
  8. package/dist/agent-operations/__fixtures__/design-brief-cases.d.ts.map +1 -1
  9. package/dist/agent-operations/__fixtures__/design-brief-cases.js +509 -66
  10. package/dist/agent-operations/__fixtures__/dressing-scenes.d.ts +30 -0
  11. package/dist/agent-operations/__fixtures__/dressing-scenes.d.ts.map +1 -0
  12. package/dist/agent-operations/__fixtures__/dressing-scenes.js +82 -0
  13. package/dist/agent-operations/__fixtures__/native-materials.d.ts +411 -9
  14. package/dist/agent-operations/__fixtures__/native-materials.d.ts.map +1 -1
  15. package/dist/agent-operations/__fixtures__/notation-cases.d.ts.map +1 -1
  16. package/dist/agent-operations/__fixtures__/notation-cases.js +14 -0
  17. package/dist/agent-operations/__fixtures__/roof-bearing-cases.d.ts +13804 -10600
  18. package/dist/agent-operations/__fixtures__/roof-bearing-cases.d.ts.map +1 -1
  19. package/dist/agent-operations/__fixtures__/room-cases.d.ts +1 -0
  20. package/dist/agent-operations/__fixtures__/room-cases.d.ts.map +1 -1
  21. package/dist/agent-operations/__fixtures__/room-cases.js +57 -1
  22. package/dist/agent-operations/__fixtures__/room-check-scenes.d.ts +51 -0
  23. package/dist/agent-operations/__fixtures__/room-check-scenes.d.ts.map +1 -0
  24. package/dist/agent-operations/__fixtures__/room-check-scenes.js +121 -0
  25. package/dist/agent-operations/__fixtures__/scene-check-cases.d.ts.map +1 -1
  26. package/dist/agent-operations/__fixtures__/scene-check-cases.js +152 -18
  27. package/dist/agent-operations/__fixtures__/search-assets-cases.d.ts.map +1 -1
  28. package/dist/agent-operations/__fixtures__/search-assets-cases.js +91 -0
  29. package/dist/agent-operations/__fixtures__/site-cases.d.ts +40 -1
  30. package/dist/agent-operations/__fixtures__/site-cases.d.ts.map +1 -1
  31. package/dist/agent-operations/__fixtures__/structure-cases.d.ts +3 -0
  32. package/dist/agent-operations/__fixtures__/structure-cases.d.ts.map +1 -1
  33. package/dist/agent-operations/__fixtures__/structure-cases.js +199 -18
  34. package/dist/agent-operations/__fixtures__/unit-cases.d.ts +6 -0
  35. package/dist/agent-operations/__fixtures__/unit-cases.d.ts.map +1 -0
  36. package/dist/agent-operations/__fixtures__/unit-cases.js +266 -0
  37. package/dist/agent-operations/__fixtures__/verify-scene-cases.d.ts +37 -1
  38. package/dist/agent-operations/__fixtures__/verify-scene-cases.d.ts.map +1 -1
  39. package/dist/agent-operations/add-column.d.ts.map +1 -1
  40. package/dist/agent-operations/add-column.js +32 -3
  41. package/dist/agent-operations/add-fence.d.ts.map +1 -1
  42. package/dist/agent-operations/add-fence.js +2 -1
  43. package/dist/agent-operations/add-level.d.ts.map +1 -1
  44. package/dist/agent-operations/add-level.js +4 -4
  45. package/dist/agent-operations/add-object.d.ts +32 -6
  46. package/dist/agent-operations/add-object.d.ts.map +1 -1
  47. package/dist/agent-operations/add-object.js +59 -12
  48. package/dist/agent-operations/add-wall.d.ts +3 -8
  49. package/dist/agent-operations/add-wall.d.ts.map +1 -1
  50. package/dist/agent-operations/add-wall.js +31 -8
  51. package/dist/agent-operations/apply-changes.d.ts.map +1 -1
  52. package/dist/agent-operations/apply-changes.js +2 -1
  53. package/dist/agent-operations/asset-catalog.d.ts +63 -0
  54. package/dist/agent-operations/asset-catalog.d.ts.map +1 -0
  55. package/dist/agent-operations/asset-catalog.js +182 -0
  56. package/dist/agent-operations/asset-views.d.ts +4 -2
  57. package/dist/agent-operations/asset-views.d.ts.map +1 -1
  58. package/dist/agent-operations/asset-views.js +1 -3
  59. package/dist/agent-operations/author-scene-checks.d.ts +38 -0
  60. package/dist/agent-operations/author-scene-checks.d.ts.map +1 -0
  61. package/dist/agent-operations/author-scene-checks.js +266 -0
  62. package/dist/agent-operations/author-scene.d.ts +54 -20
  63. package/dist/agent-operations/author-scene.d.ts.map +1 -1
  64. package/dist/agent-operations/author-scene.js +1163 -196
  65. package/dist/agent-operations/authored-scene-merge.d.ts.map +1 -1
  66. package/dist/agent-operations/authored-scene-merge.js +61 -3
  67. package/dist/agent-operations/batch.d.ts +1 -1
  68. package/dist/agent-operations/batch.d.ts.map +1 -1
  69. package/dist/agent-operations/batch.js +38 -39
  70. package/dist/agent-operations/ceiling-object-observations.d.ts.map +1 -1
  71. package/dist/agent-operations/ceiling-object-observations.js +5 -4
  72. package/dist/agent-operations/circulation-geometry.d.ts +14 -0
  73. package/dist/agent-operations/circulation-geometry.d.ts.map +1 -0
  74. package/dist/agent-operations/circulation-geometry.js +151 -0
  75. package/dist/agent-operations/circulation-graph.d.ts +72 -0
  76. package/dist/agent-operations/circulation-graph.d.ts.map +1 -0
  77. package/dist/agent-operations/circulation-graph.js +713 -0
  78. package/dist/agent-operations/circulation-non-spaces.d.ts +10 -0
  79. package/dist/agent-operations/circulation-non-spaces.d.ts.map +1 -0
  80. package/dist/agent-operations/circulation-non-spaces.js +88 -0
  81. package/dist/agent-operations/circulation-spaces.d.ts +5881 -0
  82. package/dist/agent-operations/circulation-spaces.d.ts.map +1 -0
  83. package/dist/agent-operations/circulation-spaces.js +368 -0
  84. package/dist/agent-operations/collections.d.ts.map +1 -1
  85. package/dist/agent-operations/collections.js +9 -7
  86. package/dist/agent-operations/corner-window.d.ts.map +1 -1
  87. package/dist/agent-operations/corner-window.js +2 -4
  88. package/dist/agent-operations/create-roof.d.ts.map +1 -1
  89. package/dist/agent-operations/create-roof.js +5 -7
  90. package/dist/agent-operations/create-room.d.ts +4 -1
  91. package/dist/agent-operations/create-room.d.ts.map +1 -1
  92. package/dist/agent-operations/create-room.js +7 -4
  93. package/dist/agent-operations/create-stair.js +2 -2
  94. package/dist/agent-operations/design-brief.d.ts +13 -7
  95. package/dist/agent-operations/design-brief.d.ts.map +1 -1
  96. package/dist/agent-operations/design-brief.js +172 -92
  97. package/dist/agent-operations/door-clearance.d.ts +68 -8
  98. package/dist/agent-operations/door-clearance.d.ts.map +1 -1
  99. package/dist/agent-operations/door-clearance.js +127 -20
  100. package/dist/agent-operations/dress-targets.d.ts +23 -0
  101. package/dist/agent-operations/dress-targets.d.ts.map +1 -0
  102. package/dist/agent-operations/dress-targets.js +34 -0
  103. package/dist/agent-operations/duplicate-node.d.ts +14 -0
  104. package/dist/agent-operations/duplicate-node.d.ts.map +1 -0
  105. package/dist/agent-operations/duplicate-node.js +173 -0
  106. package/dist/agent-operations/find-by-type.d.ts.map +1 -1
  107. package/dist/agent-operations/find-by-type.js +3 -0
  108. package/dist/agent-operations/furnish-room.d.ts +2 -0
  109. package/dist/agent-operations/furnish-room.d.ts.map +1 -1
  110. package/dist/agent-operations/furnish-room.js +15 -4
  111. package/dist/agent-operations/furniture-kind.d.ts +28 -1
  112. package/dist/agent-operations/furniture-kind.d.ts.map +1 -1
  113. package/dist/agent-operations/furniture-kind.js +105 -6
  114. package/dist/agent-operations/ground-reader.d.ts +10 -0
  115. package/dist/agent-operations/ground-reader.d.ts.map +1 -0
  116. package/dist/agent-operations/ground-reader.js +25 -0
  117. package/dist/agent-operations/index.d.ts +118 -12
  118. package/dist/agent-operations/index.d.ts.map +1 -1
  119. package/dist/agent-operations/index.js +26 -1
  120. package/dist/agent-operations/item-solids.d.ts +39 -0
  121. package/dist/agent-operations/item-solids.d.ts.map +1 -0
  122. package/dist/agent-operations/item-solids.js +128 -0
  123. package/dist/agent-operations/layout-clearance.d.ts +91 -11
  124. package/dist/agent-operations/layout-clearance.d.ts.map +1 -1
  125. package/dist/agent-operations/layout-clearance.js +280 -73
  126. package/dist/agent-operations/level-height-fill.d.ts.map +1 -1
  127. package/dist/agent-operations/level-height-fill.js +7 -1
  128. package/dist/agent-operations/level-reads.d.ts +5 -0
  129. package/dist/agent-operations/level-reads.d.ts.map +1 -1
  130. package/dist/agent-operations/level-reads.js +39 -3
  131. package/dist/agent-operations/list-levels.d.ts.map +1 -1
  132. package/dist/agent-operations/list-levels.js +2 -4
  133. package/dist/agent-operations/move-node.d.ts +12 -0
  134. package/dist/agent-operations/move-node.d.ts.map +1 -0
  135. package/dist/agent-operations/move-node.js +28 -0
  136. package/dist/agent-operations/move-plan.d.ts +28 -0
  137. package/dist/agent-operations/move-plan.d.ts.map +1 -0
  138. package/dist/agent-operations/move-plan.js +259 -0
  139. package/dist/agent-operations/node-patch.d.ts.map +1 -1
  140. package/dist/agent-operations/node-patch.js +15 -0
  141. package/dist/agent-operations/paint.d.ts +3 -1
  142. package/dist/agent-operations/paint.d.ts.map +1 -1
  143. package/dist/agent-operations/paint.js +14 -1
  144. package/dist/agent-operations/photo-elevation.d.ts.map +1 -1
  145. package/dist/agent-operations/photo-elevation.js +2 -1
  146. package/dist/agent-operations/place-in-room.d.ts.map +1 -1
  147. package/dist/agent-operations/place-in-room.js +1 -0
  148. package/dist/agent-operations/place-items.d.ts.map +1 -1
  149. package/dist/agent-operations/place-items.js +3 -4
  150. package/dist/agent-operations/plan-clearance.d.ts +28 -0
  151. package/dist/agent-operations/plan-clearance.d.ts.map +1 -0
  152. package/dist/agent-operations/plan-clearance.js +47 -0
  153. package/dist/agent-operations/plan-geometry.d.ts +2 -0
  154. package/dist/agent-operations/plan-geometry.d.ts.map +1 -1
  155. package/dist/agent-operations/plan-geometry.js +10 -0
  156. package/dist/agent-operations/project-files.d.ts +10 -0
  157. package/dist/agent-operations/project-files.d.ts.map +1 -1
  158. package/dist/agent-operations/reachability.d.ts +41 -0
  159. package/dist/agent-operations/reachability.d.ts.map +1 -0
  160. package/dist/agent-operations/reachability.js +199 -0
  161. package/dist/agent-operations/room-checks.d.ts +60 -0
  162. package/dist/agent-operations/room-checks.d.ts.map +1 -0
  163. package/dist/agent-operations/room-checks.js +226 -0
  164. package/dist/agent-operations/room-faces.d.ts +30 -0
  165. package/dist/agent-operations/room-faces.d.ts.map +1 -0
  166. package/dist/agent-operations/room-faces.js +31 -0
  167. package/dist/agent-operations/room-findings.d.ts +5 -2
  168. package/dist/agent-operations/room-findings.d.ts.map +1 -1
  169. package/dist/agent-operations/room-findings.js +30 -0
  170. package/dist/agent-operations/room-finishes.d.ts +87 -0
  171. package/dist/agent-operations/room-finishes.d.ts.map +1 -0
  172. package/dist/agent-operations/room-finishes.js +193 -0
  173. package/dist/agent-operations/room-floor-script.d.ts +3 -3
  174. package/dist/agent-operations/room-floor-script.js +3 -3
  175. package/dist/agent-operations/room-readings.d.ts +90 -0
  176. package/dist/agent-operations/room-readings.d.ts.map +1 -0
  177. package/dist/agent-operations/room-readings.js +369 -0
  178. package/dist/agent-operations/room-tile.d.ts +15 -0
  179. package/dist/agent-operations/room-tile.d.ts.map +1 -0
  180. package/dist/agent-operations/room-tile.js +30 -0
  181. package/dist/agent-operations/room-wet.d.ts +55 -0
  182. package/dist/agent-operations/room-wet.d.ts.map +1 -0
  183. package/dist/agent-operations/room-wet.js +203 -0
  184. package/dist/agent-operations/scene-check-policy.d.ts +5 -0
  185. package/dist/agent-operations/scene-check-policy.d.ts.map +1 -0
  186. package/dist/agent-operations/scene-check-policy.js +24 -0
  187. package/dist/agent-operations/scene-checkpoint.d.ts +10 -0
  188. package/dist/agent-operations/scene-checkpoint.d.ts.map +1 -1
  189. package/dist/agent-operations/scene-checkpoint.js +31 -0
  190. package/dist/agent-operations/scene-issue-groups.d.ts +17 -0
  191. package/dist/agent-operations/scene-issue-groups.d.ts.map +1 -0
  192. package/dist/agent-operations/scene-issue-groups.js +71 -0
  193. package/dist/agent-operations/scene-materials.d.ts +23 -0
  194. package/dist/agent-operations/scene-materials.d.ts.map +1 -1
  195. package/dist/agent-operations/scene-materials.js +41 -0
  196. package/dist/agent-operations/scene-queries.d.ts +2525 -1723
  197. package/dist/agent-operations/scene-queries.d.ts.map +1 -1
  198. package/dist/agent-operations/scene-queries.js +3 -3
  199. package/dist/agent-operations/scene-review.d.ts.map +1 -1
  200. package/dist/agent-operations/scene-review.js +3 -2
  201. package/dist/agent-operations/scene-view.d.ts.map +1 -1
  202. package/dist/agent-operations/scene-view.js +91 -21
  203. package/dist/agent-operations/search-assets.d.ts +10 -6
  204. package/dist/agent-operations/search-assets.d.ts.map +1 -1
  205. package/dist/agent-operations/search-assets.js +37 -22
  206. package/dist/agent-operations/set-checkpoint.d.ts.map +1 -1
  207. package/dist/agent-operations/set-checkpoint.js +1 -0
  208. package/dist/agent-operations/set-ground-level.d.ts +1 -1
  209. package/dist/agent-operations/set-ground-level.d.ts.map +1 -1
  210. package/dist/agent-operations/set-ground-level.js +3 -14
  211. package/dist/agent-operations/site.js +3 -2
  212. package/dist/agent-operations/slab-surface-script.d.ts +25 -0
  213. package/dist/agent-operations/slab-surface-script.d.ts.map +1 -0
  214. package/dist/agent-operations/slab-surface-script.js +60 -0
  215. package/dist/agent-operations/stair-plan-footprint.d.ts +9 -0
  216. package/dist/agent-operations/stair-plan-footprint.d.ts.map +1 -0
  217. package/dist/agent-operations/stair-plan-footprint.js +50 -0
  218. package/dist/agent-operations/types.d.ts +10 -5
  219. package/dist/agent-operations/types.d.ts.map +1 -1
  220. package/dist/agent-operations/units.d.ts +26 -0
  221. package/dist/agent-operations/units.d.ts.map +1 -0
  222. package/dist/agent-operations/units.js +110 -0
  223. package/dist/agent-operations/unreachable-rooms-check.d.ts +17 -0
  224. package/dist/agent-operations/unreachable-rooms-check.d.ts.map +1 -0
  225. package/dist/agent-operations/unreachable-rooms-check.js +35 -0
  226. package/dist/agent-operations/usage-checks.d.ts +2 -0
  227. package/dist/agent-operations/usage-checks.d.ts.map +1 -0
  228. package/dist/agent-operations/usage-checks.js +12 -0
  229. package/dist/agent-operations/verify-scene.d.ts +8 -11
  230. package/dist/agent-operations/verify-scene.d.ts.map +1 -1
  231. package/dist/agent-operations/verify-scene.js +59 -13
  232. package/dist/agent-operations/wall-face-defaults.d.ts +44 -0
  233. package/dist/agent-operations/wall-face-defaults.d.ts.map +1 -0
  234. package/dist/agent-operations/wall-face-defaults.js +229 -0
  235. package/dist/agent-operations/wall-joins.d.ts +119 -0
  236. package/dist/agent-operations/wall-joins.d.ts.map +1 -0
  237. package/dist/agent-operations/wall-joins.js +308 -0
  238. package/dist/agent-operations/wall-object-observations.d.ts.map +1 -1
  239. package/dist/agent-operations/wall-object-observations.js +5 -7
  240. package/dist/agent-operations/wall-skirting.d.ts.map +1 -1
  241. package/dist/agent-operations/wall-skirting.js +2 -0
  242. package/dist/agent-operations/wall-type.d.ts +49 -0
  243. package/dist/agent-operations/wall-type.d.ts.map +1 -0
  244. package/dist/agent-operations/wall-type.js +31 -0
  245. package/dist/agent-operations/zone-coverage.d.ts +85 -0
  246. package/dist/agent-operations/zone-coverage.d.ts.map +1 -0
  247. package/dist/agent-operations/zone-coverage.js +208 -0
  248. package/dist/agent-tools/add-object.d.ts +31 -0
  249. package/dist/agent-tools/add-object.d.ts.map +1 -1
  250. package/dist/agent-tools/add-object.js +44 -7
  251. package/dist/agent-tools/assets.d.ts +4 -0
  252. package/dist/agent-tools/assets.d.ts.map +1 -1
  253. package/dist/agent-tools/assets.js +11 -1
  254. package/dist/agent-tools/author-scene.d.ts +810 -15
  255. package/dist/agent-tools/author-scene.d.ts.map +1 -1
  256. package/dist/agent-tools/author-scene.js +275 -34
  257. package/dist/agent-tools/batch.d.ts +1 -1
  258. package/dist/agent-tools/batch.d.ts.map +1 -1
  259. package/dist/agent-tools/batch.js +5 -1
  260. package/dist/agent-tools/checkpoints.js +1 -1
  261. package/dist/agent-tools/columns.d.ts +14 -0
  262. package/dist/agent-tools/columns.d.ts.map +1 -1
  263. package/dist/agent-tools/columns.js +14 -2
  264. package/dist/agent-tools/contract.d.ts +10 -0
  265. package/dist/agent-tools/contract.d.ts.map +1 -1
  266. package/dist/agent-tools/contract.js +5 -1
  267. package/dist/agent-tools/corner-window.d.ts +1 -0
  268. package/dist/agent-tools/corner-window.d.ts.map +1 -1
  269. package/dist/agent-tools/corner-window.js +1 -1
  270. package/dist/agent-tools/create-room.d.ts +85 -0
  271. package/dist/agent-tools/create-room.d.ts.map +1 -1
  272. package/dist/agent-tools/create-room.js +8 -1
  273. package/dist/agent-tools/design-brief.d.ts +513 -7
  274. package/dist/agent-tools/design-brief.d.ts.map +1 -1
  275. package/dist/agent-tools/design-brief.js +192 -14
  276. package/dist/agent-tools/designs.js +1 -1
  277. package/dist/agent-tools/find-by-type.js +1 -1
  278. package/dist/agent-tools/index.d.ts +658 -10
  279. package/dist/agent-tools/index.d.ts.map +1 -1
  280. package/dist/agent-tools/index.js +9 -1
  281. package/dist/agent-tools/levels.js +4 -4
  282. package/dist/agent-tools/move-duplicate.d.ts +65 -0
  283. package/dist/agent-tools/move-duplicate.d.ts.map +1 -0
  284. package/dist/agent-tools/move-duplicate.js +68 -0
  285. package/dist/agent-tools/paint.d.ts +6 -0
  286. package/dist/agent-tools/paint.d.ts.map +1 -1
  287. package/dist/agent-tools/paint.js +7 -3
  288. package/dist/agent-tools/photo-elevation.js +1 -1
  289. package/dist/agent-tools/project-files.d.ts +2 -2
  290. package/dist/agent-tools/project-files.d.ts.map +1 -1
  291. package/dist/agent-tools/project-files.js +1 -1
  292. package/dist/agent-tools/refusal.d.ts +9 -1
  293. package/dist/agent-tools/refusal.d.ts.map +1 -1
  294. package/dist/agent-tools/refusal.js +5 -1
  295. package/dist/agent-tools/roofs.js +1 -1
  296. package/dist/agent-tools/room-structure.d.ts +60 -0
  297. package/dist/agent-tools/room-structure.d.ts.map +1 -1
  298. package/dist/agent-tools/room-structure.js +20 -1
  299. package/dist/agent-tools/search-materials.d.ts +1 -0
  300. package/dist/agent-tools/search-materials.d.ts.map +1 -1
  301. package/dist/agent-tools/site.js +1 -1
  302. package/dist/agent-tools/stairs.js +1 -1
  303. package/dist/agent-tools/units.d.ts +84 -0
  304. package/dist/agent-tools/units.d.ts.map +1 -0
  305. package/dist/agent-tools/units.js +54 -0
  306. package/dist/agent-tools/verify-scene-usage.d.ts +44 -0
  307. package/dist/agent-tools/verify-scene-usage.d.ts.map +1 -0
  308. package/dist/agent-tools/verify-scene-usage.js +146 -0
  309. package/dist/agent-tools/verify-scene.d.ts +12 -1
  310. package/dist/agent-tools/verify-scene.d.ts.map +1 -1
  311. package/dist/agent-tools/verify-scene.js +183 -3
  312. package/dist/agent-tools/view-scene.d.ts +3 -0
  313. package/dist/agent-tools/view-scene.d.ts.map +1 -1
  314. package/dist/agent-tools/view-scene.js +4 -1
  315. package/dist/agent-tools/wall-openings.d.ts +121 -2
  316. package/dist/agent-tools/wall-openings.d.ts.map +1 -1
  317. package/dist/agent-tools/wall-openings.js +123 -18
  318. package/dist/agent-tools/walls.d.ts +30 -0
  319. package/dist/agent-tools/walls.d.ts.map +1 -1
  320. package/dist/agent-tools/walls.js +54 -2
  321. package/dist/building/__fixtures__/wall-opening-cases.d.ts +181 -35
  322. package/dist/building/__fixtures__/wall-opening-cases.d.ts.map +1 -1
  323. package/dist/building/__fixtures__/wall-opening-cases.js +13 -0
  324. package/dist/building/code-profile.d.ts +231 -0
  325. package/dist/building/code-profile.d.ts.map +1 -0
  326. package/dist/building/code-profile.js +208 -0
  327. package/dist/building/corner-window.d.ts +2 -2
  328. package/dist/building/corner-window.d.ts.map +1 -1
  329. package/dist/building/corner-window.js +11 -2
  330. package/dist/building/door-types.d.ts +1 -0
  331. package/dist/building/door-types.d.ts.map +1 -1
  332. package/dist/building/door-types.js +2 -0
  333. package/dist/building/floor-item-fit.d.ts.map +1 -1
  334. package/dist/building/floor-item-fit.js +2 -4
  335. package/dist/building/ground-level.d.ts +1 -3
  336. package/dist/building/ground-level.d.ts.map +1 -1
  337. package/dist/building/ground-level.js +3 -5
  338. package/dist/building/index.d.ts +2 -0
  339. package/dist/building/index.d.ts.map +1 -1
  340. package/dist/building/index.js +2 -0
  341. package/dist/building/level-duplication.d.ts +4667 -3065
  342. package/dist/building/level-duplication.d.ts.map +1 -1
  343. package/dist/building/level-insertion.d.ts +1 -1
  344. package/dist/building/level-wall-copy.d.ts +24 -0
  345. package/dist/building/level-wall-copy.d.ts.map +1 -0
  346. package/dist/building/level-wall-copy.js +53 -0
  347. package/dist/building/merge-windows.d.ts.map +1 -1
  348. package/dist/building/merge-windows.js +5 -3
  349. package/dist/building/opening-style-presets.d.ts +2 -0
  350. package/dist/building/opening-style-presets.d.ts.map +1 -1
  351. package/dist/building/opening-style-presets.js +26 -5
  352. package/dist/building/room-use.d.ts +26 -0
  353. package/dist/building/room-use.d.ts.map +1 -0
  354. package/dist/building/room-use.js +102 -0
  355. package/dist/building/wall-openings.d.ts +134 -12
  356. package/dist/building/wall-openings.d.ts.map +1 -1
  357. package/dist/building/wall-openings.js +182 -41
  358. package/dist/building/window-types.d.ts +1 -0
  359. package/dist/building/window-types.d.ts.map +1 -1
  360. package/dist/building/window-types.js +3 -0
  361. package/dist/coherence/__fixtures__/enclosure-scenes.d.ts +84 -0
  362. package/dist/coherence/__fixtures__/enclosure-scenes.d.ts.map +1 -0
  363. package/dist/coherence/__fixtures__/enclosure-scenes.js +44 -0
  364. package/dist/commands/structure/attached-walls.d.ts +16 -0
  365. package/dist/commands/structure/attached-walls.d.ts.map +1 -0
  366. package/dist/commands/structure/attached-walls.js +53 -0
  367. package/dist/commands/structure/index.d.ts +3 -0
  368. package/dist/commands/structure/index.d.ts.map +1 -1
  369. package/dist/commands/structure/index.js +3 -0
  370. package/dist/commands/structure/move-separators.d.ts +62 -0
  371. package/dist/commands/structure/move-separators.d.ts.map +1 -0
  372. package/dist/commands/structure/move-separators.js +346 -0
  373. package/dist/commands/structure/set-floor-foundation.d.ts +5 -0
  374. package/dist/commands/structure/set-floor-foundation.d.ts.map +1 -1
  375. package/dist/commands/structure/set-wall-geometry.d.ts.map +1 -1
  376. package/dist/commands/structure/set-wall-geometry.js +44 -11
  377. package/dist/commands/structure/set-zone-intent.d.ts +26 -0
  378. package/dist/commands/structure/set-zone-intent.d.ts.map +1 -1
  379. package/dist/commands/structure/set-zone-intent.js +107 -2
  380. package/dist/commands/structure/shared.d.ts +889 -88
  381. package/dist/commands/structure/shared.d.ts.map +1 -1
  382. package/dist/commands/structure/wall-overlap.d.ts +45 -0
  383. package/dist/commands/structure/wall-overlap.d.ts.map +1 -0
  384. package/dist/commands/structure/wall-overlap.js +289 -0
  385. package/dist/commands/structure/zone-wall-merge.d.ts +2897 -1938
  386. package/dist/commands/structure/zone-wall-merge.d.ts.map +1 -1
  387. package/dist/contracts/reference-discovery.d.ts +2 -2
  388. package/dist/contracts/reference-discovery.d.ts.map +1 -1
  389. package/dist/contracts/reference-discovery.js +5 -3
  390. package/dist/contracts/reference-inventory.d.ts.map +1 -1
  391. package/dist/contracts/reference-inventory.js +75 -25
  392. package/dist/events/bus.d.ts +15 -2
  393. package/dist/events/bus.d.ts.map +1 -1
  394. package/dist/hooks/spatial-grid/built-in-floor-placed.d.ts +40 -0
  395. package/dist/hooks/spatial-grid/built-in-floor-placed.d.ts.map +1 -0
  396. package/dist/hooks/spatial-grid/built-in-floor-placed.js +220 -0
  397. package/dist/hooks/spatial-grid/floor-placed-elevation.d.ts.map +1 -1
  398. package/dist/hooks/spatial-grid/floor-placed-elevation.js +13 -7
  399. package/dist/hooks/spatial-grid/spatial-grid-manager.d.ts +62 -2
  400. package/dist/hooks/spatial-grid/spatial-grid-manager.d.ts.map +1 -1
  401. package/dist/hooks/spatial-grid/spatial-grid-manager.js +207 -36
  402. package/dist/hooks/spatial-grid/spatial-grid-sync.d.ts +2915 -2114
  403. package/dist/hooks/spatial-grid/spatial-grid-sync.d.ts.map +1 -1
  404. package/dist/hooks/spatial-grid/spatial-grid-sync.js +32 -5
  405. package/dist/hooks/spatial-grid/support-host-patch.js +10 -10
  406. package/dist/i18n/format.d.ts +41 -0
  407. package/dist/i18n/format.d.ts.map +1 -0
  408. package/dist/i18n/format.js +124 -0
  409. package/dist/i18n/index.d.ts +5 -0
  410. package/dist/i18n/index.d.ts.map +1 -0
  411. package/dist/i18n/index.js +3 -0
  412. package/dist/i18n/registry.d.ts +78 -0
  413. package/dist/i18n/registry.d.ts.map +1 -0
  414. package/dist/i18n/registry.js +252 -0
  415. package/dist/i18n/use-translate.d.ts +16 -0
  416. package/dist/i18n/use-translate.d.ts.map +1 -0
  417. package/dist/i18n/use-translate.js +23 -0
  418. package/dist/index.d.ts +43 -20
  419. package/dist/index.d.ts.map +1 -1
  420. package/dist/index.js +42 -19
  421. package/dist/lib/__fixtures__/mezzanine.d.ts +10900 -8225
  422. package/dist/lib/__fixtures__/mezzanine.d.ts.map +1 -1
  423. package/dist/lib/absorb-wall-separators.d.ts +1629 -828
  424. package/dist/lib/absorb-wall-separators.d.ts.map +1 -1
  425. package/dist/lib/beam.d.ts +137 -0
  426. package/dist/lib/beam.d.ts.map +1 -0
  427. package/dist/lib/beam.js +297 -0
  428. package/dist/lib/below-grade-footprints.d.ts +13 -5
  429. package/dist/lib/below-grade-footprints.d.ts.map +1 -1
  430. package/dist/lib/below-grade-footprints.js +53 -10
  431. package/dist/lib/build-mode.d.ts +11 -0
  432. package/dist/lib/build-mode.d.ts.map +1 -0
  433. package/dist/lib/build-mode.js +24 -0
  434. package/dist/lib/build-up.d.ts +89 -0
  435. package/dist/lib/build-up.d.ts.map +1 -0
  436. package/dist/lib/build-up.js +216 -0
  437. package/dist/lib/corner-pair.d.ts +207 -4
  438. package/dist/lib/corner-pair.d.ts.map +1 -1
  439. package/dist/lib/deck-boards.d.ts +80 -0
  440. package/dist/lib/deck-boards.d.ts.map +1 -0
  441. package/dist/lib/deck-boards.js +184 -0
  442. package/dist/lib/deck-framing.d.ts +150 -0
  443. package/dist/lib/deck-framing.d.ts.map +1 -0
  444. package/dist/lib/deck-framing.js +515 -0
  445. package/dist/lib/deepest-drawn.d.ts +3 -6
  446. package/dist/lib/deepest-drawn.d.ts.map +1 -1
  447. package/dist/lib/deepest-drawn.js +4 -8
  448. package/dist/lib/door-interaction.d.ts +14 -0
  449. package/dist/lib/door-interaction.d.ts.map +1 -0
  450. package/dist/lib/door-interaction.js +62 -0
  451. package/dist/lib/door-opening.d.ts +19 -0
  452. package/dist/lib/door-opening.d.ts.map +1 -0
  453. package/dist/lib/door-opening.js +27 -0
  454. package/dist/lib/door-operation.d.ts +2 -0
  455. package/dist/lib/door-operation.d.ts.map +1 -1
  456. package/dist/lib/door-operation.js +4 -0
  457. package/dist/lib/elevator-support.d.ts +15 -0
  458. package/dist/lib/elevator-support.d.ts.map +1 -0
  459. package/dist/lib/elevator-support.js +40 -0
  460. package/dist/lib/exterior-wall-loops.d.ts.map +1 -1
  461. package/dist/lib/exterior-wall-loops.js +2 -1
  462. package/dist/lib/finish-script.d.ts +5 -5
  463. package/dist/lib/finish-script.d.ts.map +1 -1
  464. package/dist/lib/finish-script.js +12 -5
  465. package/dist/lib/floor-footprint-name.d.ts +17 -0
  466. package/dist/lib/floor-footprint-name.d.ts.map +1 -1
  467. package/dist/lib/floor-footprint-name.js +17 -4
  468. package/dist/lib/floor-intent-changes.d.ts.map +1 -1
  469. package/dist/lib/floor-intent-changes.js +66 -39
  470. package/dist/lib/floor-opening-footprints.d.ts +1 -1
  471. package/dist/lib/floor-opening-footprints.d.ts.map +1 -1
  472. package/dist/lib/floor-opening-footprints.js +10 -4
  473. package/dist/lib/floor-plate-paint.d.ts +2 -0
  474. package/dist/lib/floor-plate-paint.d.ts.map +1 -1
  475. package/dist/lib/floor-plate-paint.js +12 -0
  476. package/dist/lib/floor-plates.d.ts +250 -0
  477. package/dist/lib/floor-plates.d.ts.map +1 -1
  478. package/dist/lib/floor-plates.js +43 -4
  479. package/dist/lib/floor-script.d.ts +35 -6
  480. package/dist/lib/floor-script.d.ts.map +1 -1
  481. package/dist/lib/floor-script.js +96 -16
  482. package/dist/lib/foundation-construction.d.ts +4 -13
  483. package/dist/lib/foundation-construction.d.ts.map +1 -1
  484. package/dist/lib/foundation-construction.js +4 -14
  485. package/dist/lib/foundation-standard.d.ts +2 -3
  486. package/dist/lib/foundation-standard.d.ts.map +1 -1
  487. package/dist/lib/foundation-standard.js +2 -3
  488. package/dist/lib/foundation-wall.d.ts +1 -2
  489. package/dist/lib/foundation-wall.d.ts.map +1 -1
  490. package/dist/lib/foundation-wall.js +1 -2
  491. package/dist/lib/framing-post.d.ts +91 -0
  492. package/dist/lib/framing-post.d.ts.map +1 -0
  493. package/dist/lib/framing-post.js +174 -0
  494. package/dist/lib/geometry-script-node.d.ts +11 -0
  495. package/dist/lib/geometry-script-node.d.ts.map +1 -1
  496. package/dist/lib/geometry-script-node.js +35 -0
  497. package/dist/lib/grade-standing.d.ts +16 -2
  498. package/dist/lib/grade-standing.d.ts.map +1 -1
  499. package/dist/lib/grade-standing.js +129 -9
  500. package/dist/lib/ground-seat.d.ts +2 -22
  501. package/dist/lib/ground-seat.d.ts.map +1 -1
  502. package/dist/lib/ground-seat.js +2 -17
  503. package/dist/lib/ground-window.d.ts +2 -1
  504. package/dist/lib/ground-window.d.ts.map +1 -1
  505. package/dist/lib/ground-window.js +5 -2
  506. package/dist/lib/hierarchy.d.ts +19 -0
  507. package/dist/lib/hierarchy.d.ts.map +1 -0
  508. package/dist/lib/hierarchy.js +53 -0
  509. package/dist/lib/level-footprints.d.ts +2 -0
  510. package/dist/lib/level-footprints.d.ts.map +1 -1
  511. package/dist/lib/level-footprints.js +7 -0
  512. package/dist/lib/opening-casing.d.ts +67 -0
  513. package/dist/lib/opening-casing.d.ts.map +1 -0
  514. package/dist/lib/opening-casing.js +131 -0
  515. package/dist/lib/opening-exterior-face.d.ts +6 -0
  516. package/dist/lib/opening-exterior-face.d.ts.map +1 -0
  517. package/dist/lib/opening-exterior-face.js +15 -0
  518. package/dist/lib/opening-floor-datum.d.ts +11 -5
  519. package/dist/lib/opening-floor-datum.d.ts.map +1 -1
  520. package/dist/lib/opening-floor-datum.js +40 -8
  521. package/dist/lib/opening-frame-depth.d.ts +18 -0
  522. package/dist/lib/opening-frame-depth.d.ts.map +1 -0
  523. package/dist/lib/opening-frame-depth.js +22 -0
  524. package/dist/lib/outdoor-room.d.ts +32 -0
  525. package/dist/lib/outdoor-room.d.ts.map +1 -0
  526. package/dist/lib/outdoor-room.js +66 -0
  527. package/dist/lib/own-floor-intent.d.ts.map +1 -1
  528. package/dist/lib/own-floor-intent.js +2 -2
  529. package/dist/lib/plate-surface.d.ts +8 -0
  530. package/dist/lib/plate-surface.d.ts.map +1 -1
  531. package/dist/lib/plate-surface.js +53 -3
  532. package/dist/lib/polygon-boolean.d.ts.map +1 -1
  533. package/dist/lib/polygon-boolean.js +2 -1
  534. package/dist/lib/porch-framing-sync.d.ts +46 -0
  535. package/dist/lib/porch-framing-sync.d.ts.map +1 -0
  536. package/dist/lib/porch-framing-sync.js +206 -0
  537. package/dist/lib/porch-framing.d.ts +44 -0
  538. package/dist/lib/porch-framing.d.ts.map +1 -0
  539. package/dist/lib/porch-framing.js +159 -0
  540. package/dist/lib/railing-rooms.d.ts +13 -0
  541. package/dist/lib/railing-rooms.d.ts.map +1 -0
  542. package/dist/lib/railing-rooms.js +37 -0
  543. package/dist/lib/roof-eave.d.ts +135 -0
  544. package/dist/lib/roof-eave.d.ts.map +1 -0
  545. package/dist/lib/roof-eave.js +186 -0
  546. package/dist/lib/room-floor-elevation.d.ts +12 -0
  547. package/dist/lib/room-floor-elevation.d.ts.map +1 -0
  548. package/dist/lib/room-floor-elevation.js +41 -0
  549. package/dist/lib/room-floor-feasibility.d.ts.map +1 -1
  550. package/dist/lib/room-floor-feasibility.js +1 -1
  551. package/dist/lib/room-floor-plate.d.ts +3 -1
  552. package/dist/lib/room-floor-plate.d.ts.map +1 -1
  553. package/dist/lib/room-floor-plate.js +7 -0
  554. package/dist/lib/space-detection.d.ts +13 -0
  555. package/dist/lib/space-detection.d.ts.map +1 -1
  556. package/dist/lib/space-detection.js +113 -24
  557. package/dist/lib/structure-kernel.d.ts +22 -9
  558. package/dist/lib/structure-kernel.d.ts.map +1 -1
  559. package/dist/lib/structure-kernel.js +146 -28
  560. package/dist/lib/structure-reconcile.d.ts +1 -1
  561. package/dist/lib/structure-reconcile.d.ts.map +1 -1
  562. package/dist/lib/structure-reconcile.js +7 -4
  563. package/dist/lib/surface-intent.d.ts +10 -0
  564. package/dist/lib/surface-intent.d.ts.map +1 -0
  565. package/dist/lib/surface-intent.js +18 -0
  566. package/dist/lib/terrain-source.d.ts.map +1 -1
  567. package/dist/lib/terrain-source.js +2 -1
  568. package/dist/lib/wall-face-script.d.ts.map +1 -1
  569. package/dist/lib/wall-face-script.js +8 -5
  570. package/dist/lib/window-interaction.d.ts +16 -0
  571. package/dist/lib/window-interaction.d.ts.map +1 -0
  572. package/dist/lib/window-interaction.js +82 -0
  573. package/dist/lib/zone-quantities.js +1 -1
  574. package/dist/material-kinds.d.ts +1 -1
  575. package/dist/material-kinds.d.ts.map +1 -1
  576. package/dist/material-kinds.js +1 -0
  577. package/dist/material-library.d.ts +15 -0
  578. package/dist/material-library.d.ts.map +1 -1
  579. package/dist/material-library.js +458 -59
  580. package/dist/node-slots/column.d.ts +5 -0
  581. package/dist/node-slots/column.d.ts.map +1 -1
  582. package/dist/node-slots/column.js +10 -0
  583. package/dist/node-slots/door.d.ts +3 -4
  584. package/dist/node-slots/door.d.ts.map +1 -1
  585. package/dist/node-slots/door.js +4 -3
  586. package/dist/node-slots/wall.d.ts.map +1 -1
  587. package/dist/node-slots/wall.js +21 -3
  588. package/dist/node-slots/window.d.ts +2 -2
  589. package/dist/node-slots/window.d.ts.map +1 -1
  590. package/dist/node-slots/window.js +6 -1
  591. package/dist/procedural-items/design.d.ts +8 -0
  592. package/dist/procedural-items/design.d.ts.map +1 -1
  593. package/dist/procedural-items/design.js +169 -21
  594. package/dist/procedural-items/motion-controller.d.ts +2 -0
  595. package/dist/procedural-items/motion-controller.d.ts.map +1 -1
  596. package/dist/procedural-items/motion-controller.js +2 -1
  597. package/dist/registry/index.d.ts +3 -3
  598. package/dist/registry/index.d.ts.map +1 -1
  599. package/dist/registry/index.js +2 -2
  600. package/dist/registry/mechanism.d.ts +4 -1
  601. package/dist/registry/mechanism.d.ts.map +1 -1
  602. package/dist/registry/mechanism.js +10 -0
  603. package/dist/registry/registry.d.ts +5 -0
  604. package/dist/registry/registry.d.ts.map +1 -1
  605. package/dist/registry/registry.js +10 -0
  606. package/dist/registry/types.d.ts +89 -23
  607. package/dist/registry/types.d.ts.map +1 -1
  608. package/dist/runtime/__fixtures__/live-scene.d.ts +14 -0
  609. package/dist/runtime/__fixtures__/live-scene.d.ts.map +1 -0
  610. package/dist/runtime/__fixtures__/live-scene.js +64 -0
  611. package/dist/runtime/apply.d.ts +42 -0
  612. package/dist/runtime/apply.d.ts.map +1 -0
  613. package/dist/runtime/apply.js +274 -0
  614. package/dist/runtime/dependencies.d.ts +97 -0
  615. package/dist/runtime/dependencies.d.ts.map +1 -0
  616. package/dist/runtime/dependencies.js +42 -0
  617. package/dist/runtime/ids.d.ts +11 -0
  618. package/dist/runtime/ids.d.ts.map +1 -0
  619. package/dist/runtime/ids.js +80 -0
  620. package/dist/runtime/index.d.ts +14 -0
  621. package/dist/runtime/index.d.ts.map +1 -0
  622. package/dist/runtime/index.js +11 -0
  623. package/dist/runtime/node-queries.d.ts +16 -0
  624. package/dist/runtime/node-queries.d.ts.map +1 -0
  625. package/dist/runtime/node-queries.js +30 -0
  626. package/dist/runtime/patch.d.ts +26 -0
  627. package/dist/runtime/patch.d.ts.map +1 -0
  628. package/dist/runtime/patch.js +165 -0
  629. package/dist/runtime/reader.d.ts +104 -0
  630. package/dist/runtime/reader.d.ts.map +1 -0
  631. package/dist/runtime/reader.js +455 -0
  632. package/dist/runtime/scene-runtime.d.ts +112 -0
  633. package/dist/runtime/scene-runtime.d.ts.map +1 -0
  634. package/dist/runtime/scene-runtime.js +302 -0
  635. package/dist/schema/__fixtures__/node-fixtures.d.ts.map +1 -1
  636. package/dist/schema/__fixtures__/node-fixtures.js +1 -0
  637. package/dist/schema/assembly.d.ts +3 -0
  638. package/dist/schema/assembly.d.ts.map +1 -1
  639. package/dist/schema/assembly.js +13 -0
  640. package/dist/schema/asset-url.d.ts +37 -2
  641. package/dist/schema/asset-url.d.ts.map +1 -1
  642. package/dist/schema/asset-url.js +80 -11
  643. package/dist/schema/base.d.ts +8 -0
  644. package/dist/schema/base.d.ts.map +1 -1
  645. package/dist/schema/base.js +19 -1
  646. package/dist/schema/build-up.d.ts +247 -0
  647. package/dist/schema/build-up.d.ts.map +1 -0
  648. package/dist/schema/build-up.js +83 -0
  649. package/dist/schema/geometry-source.d.ts +80 -0
  650. package/dist/schema/geometry-source.d.ts.map +1 -1
  651. package/dist/schema/geometry-source.js +38 -0
  652. package/dist/schema/index.d.ts +12 -7
  653. package/dist/schema/index.d.ts.map +1 -1
  654. package/dist/schema/index.js +12 -6
  655. package/dist/schema/material.d.ts +5 -0
  656. package/dist/schema/material.d.ts.map +1 -1
  657. package/dist/schema/material.js +6 -0
  658. package/dist/schema/nodes/beam.d.ts +264 -0
  659. package/dist/schema/nodes/beam.d.ts.map +1 -0
  660. package/dist/schema/nodes/beam.js +139 -0
  661. package/dist/schema/nodes/box-vent.d.ts +5 -0
  662. package/dist/schema/nodes/box-vent.d.ts.map +1 -1
  663. package/dist/schema/nodes/cabinet.d.ts +10 -0
  664. package/dist/schema/nodes/cabinet.d.ts.map +1 -1
  665. package/dist/schema/nodes/ceiling.d.ts +48 -0
  666. package/dist/schema/nodes/ceiling.d.ts.map +1 -1
  667. package/dist/schema/nodes/ceiling.js +5 -0
  668. package/dist/schema/nodes/chimney.d.ts +10 -0
  669. package/dist/schema/nodes/chimney.d.ts.map +1 -1
  670. package/dist/schema/nodes/column.d.ts +42 -0
  671. package/dist/schema/nodes/column.d.ts.map +1 -1
  672. package/dist/schema/nodes/column.js +11 -1
  673. package/dist/schema/nodes/cupola.d.ts +5 -0
  674. package/dist/schema/nodes/cupola.d.ts.map +1 -1
  675. package/dist/schema/nodes/door.d.ts +54 -3
  676. package/dist/schema/nodes/door.d.ts.map +1 -1
  677. package/dist/schema/nodes/door.js +41 -7
  678. package/dist/schema/nodes/dormer.d.ts +20 -0
  679. package/dist/schema/nodes/dormer.d.ts.map +1 -1
  680. package/dist/schema/nodes/downspout.d.ts +5 -0
  681. package/dist/schema/nodes/downspout.d.ts.map +1 -1
  682. package/dist/schema/nodes/elevator.d.ts +5 -0
  683. package/dist/schema/nodes/elevator.d.ts.map +1 -1
  684. package/dist/schema/nodes/eyebrow-vent.d.ts +5 -0
  685. package/dist/schema/nodes/eyebrow-vent.d.ts.map +1 -1
  686. package/dist/schema/nodes/fence.d.ts +5 -0
  687. package/dist/schema/nodes/fence.d.ts.map +1 -1
  688. package/dist/schema/nodes/guide.d.ts +14 -0
  689. package/dist/schema/nodes/guide.d.ts.map +1 -1
  690. package/dist/schema/nodes/guide.js +2 -0
  691. package/dist/schema/nodes/gutter.d.ts +5 -0
  692. package/dist/schema/nodes/gutter.d.ts.map +1 -1
  693. package/dist/schema/nodes/item.d.ts +71 -0
  694. package/dist/schema/nodes/item.d.ts.map +1 -1
  695. package/dist/schema/nodes/item.js +5 -1
  696. package/dist/schema/nodes/level.d.ts +1 -1
  697. package/dist/schema/nodes/level.d.ts.map +1 -1
  698. package/dist/schema/nodes/opening-types.d.ts +13 -0
  699. package/dist/schema/nodes/opening-types.d.ts.map +1 -1
  700. package/dist/schema/nodes/opening-types.js +8 -1
  701. package/dist/schema/nodes/railing-wall.d.ts +112 -0
  702. package/dist/schema/nodes/railing-wall.d.ts.map +1 -0
  703. package/dist/schema/nodes/railing-wall.js +160 -0
  704. package/dist/schema/nodes/ridge-vent.d.ts +5 -0
  705. package/dist/schema/nodes/ridge-vent.d.ts.map +1 -1
  706. package/dist/schema/nodes/roof-segment-resize.d.ts.map +1 -1
  707. package/dist/schema/nodes/roof-segment-resize.js +2 -2
  708. package/dist/schema/nodes/roof-segment.d.ts +226 -1
  709. package/dist/schema/nodes/roof-segment.d.ts.map +1 -1
  710. package/dist/schema/nodes/roof-segment.js +97 -12
  711. package/dist/schema/nodes/roof-types.d.ts +11 -0
  712. package/dist/schema/nodes/roof-types.d.ts.map +1 -1
  713. package/dist/schema/nodes/roof-types.js +6 -0
  714. package/dist/schema/nodes/roof.d.ts +60 -0
  715. package/dist/schema/nodes/roof.d.ts.map +1 -1
  716. package/dist/schema/nodes/roof.js +4 -0
  717. package/dist/schema/nodes/shelf.d.ts +5 -0
  718. package/dist/schema/nodes/shelf.d.ts.map +1 -1
  719. package/dist/schema/nodes/site.d.ts +80 -0
  720. package/dist/schema/nodes/site.d.ts.map +1 -1
  721. package/dist/schema/nodes/site.js +7 -0
  722. package/dist/schema/nodes/skylight.d.ts +10 -0
  723. package/dist/schema/nodes/skylight.d.ts.map +1 -1
  724. package/dist/schema/nodes/slab.d.ts +137 -0
  725. package/dist/schema/nodes/slab.d.ts.map +1 -1
  726. package/dist/schema/nodes/slab.js +3 -0
  727. package/dist/schema/nodes/solar-panel.d.ts +10 -0
  728. package/dist/schema/nodes/solar-panel.d.ts.map +1 -1
  729. package/dist/schema/nodes/stair-segment.d.ts +5 -0
  730. package/dist/schema/nodes/stair-segment.d.ts.map +1 -1
  731. package/dist/schema/nodes/stair-structure.d.ts +69 -0
  732. package/dist/schema/nodes/stair-structure.d.ts.map +1 -0
  733. package/dist/schema/nodes/stair-structure.js +39 -0
  734. package/dist/schema/nodes/stair.d.ts +46 -0
  735. package/dist/schema/nodes/stair.d.ts.map +1 -1
  736. package/dist/schema/nodes/stair.js +3 -0
  737. package/dist/schema/nodes/turbine-vent.d.ts +5 -0
  738. package/dist/schema/nodes/turbine-vent.d.ts.map +1 -1
  739. package/dist/schema/nodes/wall.d.ts +136 -2
  740. package/dist/schema/nodes/wall.d.ts.map +1 -1
  741. package/dist/schema/nodes/wall.js +48 -6
  742. package/dist/schema/nodes/window.d.ts +66 -1
  743. package/dist/schema/nodes/window.d.ts.map +1 -1
  744. package/dist/schema/nodes/window.js +50 -5
  745. package/dist/schema/nodes/zone.d.ts +68 -0
  746. package/dist/schema/nodes/zone.d.ts.map +1 -1
  747. package/dist/schema/nodes/zone.js +32 -0
  748. package/dist/schema/scene-material.d.ts +5 -0
  749. package/dist/schema/scene-material.d.ts.map +1 -1
  750. package/dist/schema/types.d.ts +1080 -4
  751. package/dist/schema/types.d.ts.map +1 -1
  752. package/dist/schema/types.js +2 -0
  753. package/dist/schema/wall-type.d.ts +95 -0
  754. package/dist/schema/wall-type.d.ts.map +1 -0
  755. package/dist/schema/wall-type.js +32 -0
  756. package/dist/services/index.d.ts +1 -1
  757. package/dist/services/index.d.ts.map +1 -1
  758. package/dist/services/index.js +1 -1
  759. package/dist/services/movement.d.ts +7 -0
  760. package/dist/services/movement.d.ts.map +1 -1
  761. package/dist/services/movement.js +13 -0
  762. package/dist/services/port-connectivity.d.ts +15 -6
  763. package/dist/services/port-connectivity.d.ts.map +1 -1
  764. package/dist/services/port-connectivity.js +83 -17
  765. package/dist/services/roof-bearing.d.ts.map +1 -1
  766. package/dist/services/roof-bearing.js +8 -4
  767. package/dist/services/roof-level.d.ts.map +1 -1
  768. package/dist/services/roof-level.js +4 -3
  769. package/dist/services/roof-move.d.ts.map +1 -1
  770. package/dist/services/roof-move.js +13 -7
  771. package/dist/services/storey.d.ts +6 -1
  772. package/dist/services/storey.d.ts.map +1 -1
  773. package/dist/services/storey.js +24 -10
  774. package/dist/spatial/usage-field/beds.d.ts +51 -0
  775. package/dist/spatial/usage-field/beds.d.ts.map +1 -0
  776. package/dist/spatial/usage-field/beds.js +346 -0
  777. package/dist/spatial/usage-field/blocked.d.ts +28 -0
  778. package/dist/spatial/usage-field/blocked.d.ts.map +1 -0
  779. package/dist/spatial/usage-field/blocked.js +185 -0
  780. package/dist/spatial/usage-field/boxes.d.ts +17 -0
  781. package/dist/spatial/usage-field/boxes.d.ts.map +1 -0
  782. package/dist/spatial/usage-field/boxes.js +82 -0
  783. package/dist/spatial/usage-field/catalogue-shapes.d.ts +3 -0
  784. package/dist/spatial/usage-field/catalogue-shapes.d.ts.map +1 -0
  785. package/dist/spatial/usage-field/catalogue-shapes.js +257 -0
  786. package/dist/spatial/usage-field/catalogue.d.ts +6 -0
  787. package/dist/spatial/usage-field/catalogue.d.ts.map +1 -0
  788. package/dist/spatial/usage-field/catalogue.js +11 -0
  789. package/dist/spatial/usage-field/clash.d.ts +40 -0
  790. package/dist/spatial/usage-field/clash.d.ts.map +1 -0
  791. package/dist/spatial/usage-field/clash.js +187 -0
  792. package/dist/spatial/usage-field/door-stairs.d.ts +18 -0
  793. package/dist/spatial/usage-field/door-stairs.d.ts.map +1 -0
  794. package/dist/spatial/usage-field/door-stairs.js +129 -0
  795. package/dist/spatial/usage-field/entry-way.d.ts +14 -0
  796. package/dist/spatial/usage-field/entry-way.d.ts.map +1 -0
  797. package/dist/spatial/usage-field/entry-way.js +219 -0
  798. package/dist/spatial/usage-field/fences.d.ts +18 -0
  799. package/dist/spatial/usage-field/fences.d.ts.map +1 -0
  800. package/dist/spatial/usage-field/fences.js +253 -0
  801. package/dist/spatial/usage-field/field.d.ts +44 -0
  802. package/dist/spatial/usage-field/field.d.ts.map +1 -0
  803. package/dist/spatial/usage-field/field.js +145 -0
  804. package/dist/spatial/usage-field/findings.d.ts +76 -0
  805. package/dist/spatial/usage-field/findings.d.ts.map +1 -0
  806. package/dist/spatial/usage-field/findings.js +252 -0
  807. package/dist/spatial/usage-field/fixtures.d.ts +18 -0
  808. package/dist/spatial/usage-field/fixtures.d.ts.map +1 -0
  809. package/dist/spatial/usage-field/fixtures.js +160 -0
  810. package/dist/spatial/usage-field/flag.d.ts +10 -0
  811. package/dist/spatial/usage-field/flag.d.ts.map +1 -0
  812. package/dist/spatial/usage-field/flag.js +12 -0
  813. package/dist/spatial/usage-field/floors.d.ts +13 -0
  814. package/dist/spatial/usage-field/floors.d.ts.map +1 -0
  815. package/dist/spatial/usage-field/floors.js +36 -0
  816. package/dist/spatial/usage-field/index.d.ts +7 -0
  817. package/dist/spatial/usage-field/index.d.ts.map +1 -0
  818. package/dist/spatial/usage-field/index.js +5 -0
  819. package/dist/spatial/usage-field/items.d.ts +38 -0
  820. package/dist/spatial/usage-field/items.d.ts.map +1 -0
  821. package/dist/spatial/usage-field/items.js +261 -0
  822. package/dist/spatial/usage-field/labels.d.ts +8 -0
  823. package/dist/spatial/usage-field/labels.d.ts.map +1 -0
  824. package/dist/spatial/usage-field/labels.js +14 -0
  825. package/dist/spatial/usage-field/level-field.d.ts +47 -0
  826. package/dist/spatial/usage-field/level-field.d.ts.map +1 -0
  827. package/dist/spatial/usage-field/level-field.js +96 -0
  828. package/dist/spatial/usage-field/measure.d.ts +324 -0
  829. package/dist/spatial/usage-field/measure.d.ts.map +1 -0
  830. package/dist/spatial/usage-field/measure.js +458 -0
  831. package/dist/spatial/usage-field/obstacles.d.ts +63 -0
  832. package/dist/spatial/usage-field/obstacles.d.ts.map +1 -0
  833. package/dist/spatial/usage-field/obstacles.js +215 -0
  834. package/dist/spatial/usage-field/openings.d.ts +12 -0
  835. package/dist/spatial/usage-field/openings.d.ts.map +1 -0
  836. package/dist/spatial/usage-field/openings.js +162 -0
  837. package/dist/spatial/usage-field/path.d.ts +48 -0
  838. package/dist/spatial/usage-field/path.d.ts.map +1 -0
  839. package/dist/spatial/usage-field/path.js +354 -0
  840. package/dist/spatial/usage-field/pieces.d.ts +27 -0
  841. package/dist/spatial/usage-field/pieces.d.ts.map +1 -0
  842. package/dist/spatial/usage-field/pieces.js +89 -0
  843. package/dist/spatial/usage-field/shapes.d.ts +18 -0
  844. package/dist/spatial/usage-field/shapes.d.ts.map +1 -0
  845. package/dist/spatial/usage-field/shapes.js +92 -0
  846. package/dist/spatial/usage-field/stairs.d.ts +23 -0
  847. package/dist/spatial/usage-field/stairs.d.ts.map +1 -0
  848. package/dist/spatial/usage-field/stairs.js +163 -0
  849. package/dist/spatial/usage-field/support.d.ts +24 -0
  850. package/dist/spatial/usage-field/support.d.ts.map +1 -0
  851. package/dist/spatial/usage-field/support.js +46 -0
  852. package/dist/spatial/usage-field/swings.d.ts +847 -0
  853. package/dist/spatial/usage-field/swings.d.ts.map +1 -0
  854. package/dist/spatial/usage-field/swings.js +427 -0
  855. package/dist/spatial/usage-field/types.d.ts +65 -0
  856. package/dist/spatial/usage-field/types.d.ts.map +1 -0
  857. package/dist/spatial/usage-field/types.js +1 -0
  858. package/dist/spatial/usage-field/walls.d.ts +1059 -0
  859. package/dist/spatial/usage-field/walls.d.ts.map +1 -0
  860. package/dist/spatial/usage-field/walls.js +180 -0
  861. package/dist/spatial/usage-field/way-in.d.ts +26 -0
  862. package/dist/spatial/usage-field/way-in.d.ts.map +1 -0
  863. package/dist/spatial/usage-field/way-in.js +113 -0
  864. package/dist/store/actions/node-actions.d.ts +1467 -664
  865. package/dist/store/actions/node-actions.d.ts.map +1 -1
  866. package/dist/store/actions/node-actions.js +65 -21
  867. package/dist/store/derived-node-guard.d.ts +10 -2
  868. package/dist/store/derived-node-guard.d.ts.map +1 -1
  869. package/dist/store/derived-node-guard.js +33 -12
  870. package/dist/store/document-settling.d.ts +9 -0
  871. package/dist/store/document-settling.d.ts.map +1 -0
  872. package/dist/store/document-settling.js +22 -0
  873. package/dist/store/history-control.d.ts +19 -10
  874. package/dist/store/history-control.d.ts.map +1 -1
  875. package/dist/store/history-control.js +176 -127
  876. package/dist/store/history-drafts.d.ts.map +1 -1
  877. package/dist/store/history-drafts.js +21 -17
  878. package/dist/store/live-previews.d.ts +9 -0
  879. package/dist/store/live-previews.d.ts.map +1 -0
  880. package/dist/store/live-previews.js +19 -0
  881. package/dist/store/scene-annotations.d.ts +5409 -3807
  882. package/dist/store/scene-annotations.d.ts.map +1 -1
  883. package/dist/store/scene-environment.d.ts +33 -0
  884. package/dist/store/scene-environment.d.ts.map +1 -0
  885. package/dist/store/scene-environment.js +54 -0
  886. package/dist/store/scene-hydration.d.ts.map +1 -1
  887. package/dist/store/scene-hydration.js +41 -30
  888. package/dist/store/use-interactive.d.ts +9 -3
  889. package/dist/store/use-interactive.d.ts.map +1 -1
  890. package/dist/store/use-interactive.js +43 -11
  891. package/dist/store/use-live-node-overrides.d.ts.map +1 -1
  892. package/dist/store/use-live-node-overrides.js +3 -0
  893. package/dist/store/use-scene.d.ts +25 -0
  894. package/dist/store/use-scene.d.ts.map +1 -1
  895. package/dist/store/use-scene.js +408 -336
  896. package/dist/systems/document-reconcile.d.ts +40 -0
  897. package/dist/systems/document-reconcile.d.ts.map +1 -0
  898. package/dist/systems/document-reconcile.js +159 -0
  899. package/dist/systems/elevator/elevator-geometry.d.ts +25 -0
  900. package/dist/systems/elevator/elevator-geometry.d.ts.map +1 -1
  901. package/dist/systems/elevator/elevator-geometry.js +40 -8
  902. package/dist/systems/elevator/elevator-opening-sync.d.ts.map +1 -1
  903. package/dist/systems/elevator/elevator-opening-sync.js +4 -35
  904. package/dist/systems/elevator/elevator-opening-system.d.ts.map +1 -1
  905. package/dist/systems/elevator/elevator-opening-system.js +9 -24
  906. package/dist/systems/elevator/elevator-runtime.d.ts.map +1 -1
  907. package/dist/systems/elevator/elevator-runtime.js +95 -18
  908. package/dist/systems/elevator/elevator-service.d.ts.map +1 -1
  909. package/dist/systems/elevator/elevator-service.js +24 -4
  910. package/dist/systems/fence/guard-layout.d.ts +69 -0
  911. package/dist/systems/fence/guard-layout.d.ts.map +1 -0
  912. package/dist/systems/fence/guard-layout.js +194 -0
  913. package/dist/systems/owned-floor-openings.d.ts +13 -1
  914. package/dist/systems/owned-floor-openings.d.ts.map +1 -1
  915. package/dist/systems/owned-floor-openings.js +58 -2
  916. package/dist/systems/reconcile-owned-floor-openings.d.ts +3 -1
  917. package/dist/systems/reconcile-owned-floor-openings.d.ts.map +1 -1
  918. package/dist/systems/reconcile-owned-floor-openings.js +4 -4
  919. package/dist/systems/roof/roof-elevation-system.d.ts.map +1 -1
  920. package/dist/systems/roof/roof-elevation-system.js +8 -26
  921. package/dist/systems/roof/roof-elevation.d.ts +16 -1
  922. package/dist/systems/roof/roof-elevation.d.ts.map +1 -1
  923. package/dist/systems/roof/roof-elevation.js +87 -5
  924. package/dist/systems/roof/roof-footprint.d.ts +42 -1
  925. package/dist/systems/roof/roof-footprint.d.ts.map +1 -1
  926. package/dist/systems/roof/roof-footprint.js +160 -4
  927. package/dist/systems/slab/__fixtures__/floor-step.d.ts +2714 -1481
  928. package/dist/systems/slab/__fixtures__/floor-step.d.ts.map +1 -1
  929. package/dist/systems/slab/__fixtures__/raised-room.d.ts +3815 -2565
  930. package/dist/systems/slab/__fixtures__/raised-room.d.ts.map +1 -1
  931. package/dist/systems/stair/stair-clearance.d.ts +7 -0
  932. package/dist/systems/stair/stair-clearance.d.ts.map +1 -1
  933. package/dist/systems/stair/stair-clearance.js +31 -11
  934. package/dist/systems/stair/stair-construction.d.ts +8 -3
  935. package/dist/systems/stair/stair-construction.d.ts.map +1 -1
  936. package/dist/systems/stair/stair-construction.js +55 -4
  937. package/dist/systems/stair/stair-opening-preview.d.ts +1630 -829
  938. package/dist/systems/stair/stair-opening-preview.d.ts.map +1 -1
  939. package/dist/systems/stair/stair-opening-system.d.ts.map +1 -1
  940. package/dist/systems/stair/stair-opening-system.js +18 -34
  941. package/dist/systems/stair/stair-presets.d.ts +36 -0
  942. package/dist/systems/stair/stair-presets.d.ts.map +1 -1
  943. package/dist/systems/stair/stair-rise-query.d.ts.map +1 -1
  944. package/dist/systems/stair/stair-rise-query.js +3 -2
  945. package/dist/systems/stair/stair-rise.d.ts.map +1 -1
  946. package/dist/systems/stair/stair-rise.js +6 -0
  947. package/dist/systems/stair/stair-sizing.d.ts +42 -11
  948. package/dist/systems/stair/stair-sizing.d.ts.map +1 -1
  949. package/dist/systems/stair/stair-sizing.js +10 -1
  950. package/dist/systems/stair/stair-structure.d.ts +277 -0
  951. package/dist/systems/stair/stair-structure.d.ts.map +1 -0
  952. package/dist/systems/stair/stair-structure.js +496 -0
  953. package/dist/systems/wall/wall-assembly.d.ts +84 -6
  954. package/dist/systems/wall/wall-assembly.d.ts.map +1 -1
  955. package/dist/systems/wall/wall-assembly.js +204 -5
  956. package/dist/systems/wall/wall-curve.d.ts +10 -0
  957. package/dist/systems/wall/wall-curve.d.ts.map +1 -1
  958. package/dist/systems/wall/wall-curve.js +38 -0
  959. package/dist/systems/wall/wall-finish.d.ts +38 -2
  960. package/dist/systems/wall/wall-finish.d.ts.map +1 -1
  961. package/dist/systems/wall/wall-finish.js +70 -2
  962. package/dist/systems/wall/wall-footprint.js +2 -2
  963. package/dist/systems/wall/wall-frame.d.ts.map +1 -1
  964. package/dist/systems/wall/wall-frame.js +8 -0
  965. package/dist/systems/wall/wall-merge.d.ts +9 -1
  966. package/dist/systems/wall/wall-merge.d.ts.map +1 -1
  967. package/dist/systems/wall/wall-merge.js +66 -13
  968. package/dist/systems/wall/wall-mitering.d.ts +1 -0
  969. package/dist/systems/wall/wall-mitering.d.ts.map +1 -1
  970. package/dist/systems/wall/wall-mitering.js +152 -52
  971. package/dist/systems/wall/wall-move.d.ts +23 -6
  972. package/dist/systems/wall/wall-move.d.ts.map +1 -1
  973. package/dist/systems/wall/wall-move.js +65 -0
  974. package/dist/systems/wall/wall-top.d.ts +11 -4
  975. package/dist/systems/wall/wall-top.d.ts.map +1 -1
  976. package/dist/systems/wall/wall-top.js +28 -7
  977. package/dist/systems/wall/wall-topology.d.ts +32 -1
  978. package/dist/systems/wall/wall-topology.d.ts.map +1 -1
  979. package/dist/systems/wall/wall-topology.js +137 -11
  980. package/dist/systems/wall/wall-trim-profiles.d.ts +12 -0
  981. package/dist/systems/wall/wall-trim-profiles.d.ts.map +1 -0
  982. package/dist/systems/wall/wall-trim-profiles.js +191 -0
  983. package/dist/utils/ensure-scene-openings.d.ts +4663 -3061
  984. package/dist/utils/ensure-scene-openings.d.ts.map +1 -1
  985. package/dist/utils/floor-piece-adoption.d.ts +5 -0
  986. package/dist/utils/floor-piece-adoption.d.ts.map +1 -1
  987. package/dist/utils/floor-plate-migration.d.ts +3372 -2571
  988. package/dist/utils/floor-plate-migration.d.ts.map +1 -1
  989. package/dist/utils/measurement-format.d.ts +27 -0
  990. package/dist/utils/measurement-format.d.ts.map +1 -0
  991. package/dist/utils/measurement-format.js +143 -0
  992. package/dist/utils/owned-floor-opening-migration.d.ts +1629 -828
  993. package/dist/utils/owned-floor-opening-migration.d.ts.map +1 -1
  994. package/dist/utils/reconcile-structure-on-load.d.ts +2308 -1507
  995. package/dist/utils/reconcile-structure-on-load.d.ts.map +1 -1
  996. package/dist/utils/structure-id.d.ts.map +1 -1
  997. package/dist/utils/structure-id.js +4 -0
  998. package/dist/validation/validate-build-json.d.ts.map +1 -1
  999. package/dist/validation/validate-build-json.js +3 -1
  1000. package/package.json +22 -5
  1001. package/dist/lib/generic-foundation.d.ts +0 -40
  1002. package/dist/lib/generic-foundation.d.ts.map +0 -1
  1003. package/dist/lib/generic-foundation.js +0 -200
@@ -30,42 +30,314 @@ export declare function getNodesWithLiveStairOpeningInputs(nodes: Record<string,
30
30
  fromIds: string[];
31
31
  } | undefined;
32
32
  } | undefined;
33
- id: `bvent_${string}`;
34
- material?: {
35
- id?: string | undefined;
36
- preset?: "brick" | "concrete" | "custom" | "glass" | "marble" | "metal" | "plaster" | "tile" | "white" | "wood" | undefined;
37
- properties?: {
38
- color: string;
39
- roughness: number;
40
- metalness: number;
41
- opacity: number;
42
- transparent: boolean;
43
- side: "back" | "double" | "front";
33
+ id: `beam_${string}`;
34
+ start: [number, number];
35
+ end: [number, number];
36
+ width: number;
37
+ depth: number;
38
+ size?: string | undefined;
39
+ plies: number;
40
+ material: "glulam" | "lvl" | "pressure-treated" | "sawn" | "steel";
41
+ placement: "dropped" | "flush";
42
+ topElevation?: number | undefined;
43
+ supportSlabId?: string | undefined;
44
+ type: "beam";
45
+ } | {
46
+ object: "node";
47
+ name?: string | undefined;
48
+ parentId: string | null;
49
+ visible: boolean;
50
+ camera?: {
51
+ position: [number, number, number];
52
+ target: [number, number, number];
53
+ mode: "orthographic" | "perspective";
54
+ fov?: number | undefined;
55
+ zoom?: number | undefined;
56
+ } | undefined;
57
+ metadata: Record<string, unknown>;
58
+ provenance?: {
59
+ refs: {
60
+ ns?: string | undefined;
61
+ id: string;
62
+ role?: "absorbed" | "alias" | "derived" | "piece" | "primary" | undefined;
63
+ }[];
64
+ lineage?: {
65
+ op: "attach" | "convert" | "duplicate" | "import" | "make-independent" | "merge" | "promote" | "split";
66
+ fromIds: string[];
44
67
  } | undefined;
45
- texture?: {
46
- url: string;
47
- repeat?: [number, number] | undefined;
48
- scale?: number | undefined;
68
+ } | undefined;
69
+ id: `measurement_${string}`;
70
+ measurement: {
71
+ kind: "volume";
72
+ base: ({
73
+ kind: "feature";
74
+ reference: {
75
+ nodeId: string;
76
+ featureId: string;
77
+ parameters?: Record<string, string | number | boolean> | undefined;
78
+ };
79
+ fallback: [number, number, number];
80
+ } | [number, number, number])[];
81
+ extrusion: [number, number, number];
82
+ } | {
83
+ kind: "distance";
84
+ points: [{
85
+ kind: "feature";
86
+ reference: {
87
+ nodeId: string;
88
+ featureId: string;
89
+ parameters?: Record<string, string | number | boolean> | undefined;
90
+ };
91
+ fallback: [number, number, number];
92
+ } | [number, number, number], {
93
+ kind: "feature";
94
+ reference: {
95
+ nodeId: string;
96
+ featureId: string;
97
+ parameters?: Record<string, string | number | boolean> | undefined;
98
+ };
99
+ fallback: [number, number, number];
100
+ } | [number, number, number]];
101
+ } | {
102
+ kind: "angle";
103
+ points: [{
104
+ kind: "feature";
105
+ reference: {
106
+ nodeId: string;
107
+ featureId: string;
108
+ parameters?: Record<string, string | number | boolean> | undefined;
109
+ };
110
+ fallback: [number, number, number];
111
+ } | [number, number, number], {
112
+ kind: "feature";
113
+ reference: {
114
+ nodeId: string;
115
+ featureId: string;
116
+ parameters?: Record<string, string | number | boolean> | undefined;
117
+ };
118
+ fallback: [number, number, number];
119
+ } | [number, number, number], {
120
+ kind: "feature";
121
+ reference: {
122
+ nodeId: string;
123
+ featureId: string;
124
+ parameters?: Record<string, string | number | boolean> | undefined;
125
+ };
126
+ fallback: [number, number, number];
127
+ } | [number, number, number]];
128
+ } | {
129
+ kind: "area";
130
+ base: ({
131
+ kind: "feature";
132
+ reference: {
133
+ nodeId: string;
134
+ featureId: string;
135
+ parameters?: Record<string, string | number | boolean> | undefined;
136
+ };
137
+ fallback: [number, number, number];
138
+ } | [number, number, number])[];
139
+ } | {
140
+ kind: "perimeter";
141
+ base: ({
142
+ kind: "feature";
143
+ reference: {
144
+ nodeId: string;
145
+ featureId: string;
146
+ parameters?: Record<string, string | number | boolean> | undefined;
147
+ };
148
+ fallback: [number, number, number];
149
+ } | [number, number, number])[];
150
+ };
151
+ type: "measurement";
152
+ } | {
153
+ object: "node";
154
+ name?: string | undefined;
155
+ parentId: string | null;
156
+ visible: boolean;
157
+ camera?: {
158
+ position: [number, number, number];
159
+ target: [number, number, number];
160
+ mode: "orthographic" | "perspective";
161
+ fov?: number | undefined;
162
+ zoom?: number | undefined;
163
+ } | undefined;
164
+ metadata: Record<string, unknown>;
165
+ provenance?: {
166
+ refs: {
167
+ ns?: string | undefined;
168
+ id: string;
169
+ role?: "absorbed" | "alias" | "derived" | "piece" | "primary" | undefined;
170
+ }[];
171
+ lineage?: {
172
+ op: "attach" | "convert" | "duplicate" | "import" | "make-independent" | "merge" | "promote" | "split";
173
+ fromIds: string[];
49
174
  } | undefined;
50
175
  } | undefined;
176
+ id: `duct-segment_${string}`;
177
+ path: [number, number, number][];
178
+ autoHangers?: boolean | undefined;
179
+ hangerOverrides?: Record<string, {
180
+ fraction?: number | undefined;
181
+ skipped?: boolean | undefined;
182
+ hostId?: string | undefined;
183
+ }> | undefined;
184
+ hangerStyle?: "double" | "single" | undefined;
185
+ hangerSpacing?: number | undefined;
186
+ hangerMaxReach?: number | undefined;
187
+ wallAttachment?: {
188
+ wallId: `wall_${string}`;
189
+ side: "back" | "front";
190
+ startUV: [number, number];
191
+ endUV: [number, number];
192
+ offset: number;
193
+ } | undefined;
194
+ shape: "oval" | "rect" | "round";
195
+ diameter: number;
196
+ width: number;
197
+ height: number;
198
+ roll: number;
199
+ ductMaterial: "duct-board" | "flex" | "sheet-metal" | "spiral";
200
+ seamDetail: boolean;
201
+ insulated: boolean;
202
+ insulationR: number;
203
+ system: "return" | "supply";
51
204
  slots?: Record<string, string> | undefined;
52
- materialPreset: string;
53
- roofSegmentId?: string | undefined;
205
+ type: "duct-segment";
206
+ } | {
207
+ object: "node";
208
+ name?: string | undefined;
209
+ parentId: string | null;
210
+ visible: boolean;
211
+ camera?: {
212
+ position: [number, number, number];
213
+ target: [number, number, number];
214
+ mode: "orthographic" | "perspective";
215
+ fov?: number | undefined;
216
+ zoom?: number | undefined;
217
+ } | undefined;
218
+ metadata: Record<string, unknown>;
219
+ provenance?: {
220
+ refs: {
221
+ ns?: string | undefined;
222
+ id: string;
223
+ role?: "absorbed" | "alias" | "derived" | "piece" | "primary" | undefined;
224
+ }[];
225
+ lineage?: {
226
+ op: "attach" | "convert" | "duplicate" | "import" | "make-independent" | "merge" | "promote" | "split";
227
+ fromIds: string[];
228
+ } | undefined;
229
+ } | undefined;
230
+ id: `floor-opening_${string}`;
231
+ polygon: [number, number][];
232
+ hostZoneId?: string | undefined;
233
+ legacyPlateCuts?: Record<string, [number, number][][]> | undefined;
234
+ legacyCeilingCuts?: Record<string, [number, number][][]> | undefined;
235
+ source: string;
236
+ ownerId?: string | undefined;
237
+ surfaceId?: string | undefined;
238
+ drawnOn: "ceiling" | "floor";
239
+ cutsPrimary: boolean;
240
+ cutsAdjacent: boolean;
241
+ type: "floor-opening";
242
+ } | {
243
+ object: "node";
244
+ name?: string | undefined;
245
+ parentId: string | null;
246
+ visible: boolean;
247
+ camera?: {
248
+ position: [number, number, number];
249
+ target: [number, number, number];
250
+ mode: "orthographic" | "perspective";
251
+ fov?: number | undefined;
252
+ zoom?: number | undefined;
253
+ } | undefined;
254
+ metadata: Record<string, unknown>;
255
+ provenance?: {
256
+ refs: {
257
+ ns?: string | undefined;
258
+ id: string;
259
+ role?: "absorbed" | "alias" | "derived" | "piece" | "primary" | undefined;
260
+ }[];
261
+ lineage?: {
262
+ op: "attach" | "convert" | "duplicate" | "import" | "make-independent" | "merge" | "promote" | "split";
263
+ fromIds: string[];
264
+ } | undefined;
265
+ } | undefined;
266
+ id: `lineset_${string}`;
267
+ path: [number, number, number][];
268
+ suctionDiameter: number;
269
+ liquidDiameter: number;
270
+ insulated: boolean;
271
+ type: "lineset";
272
+ } | {
273
+ object: "node";
274
+ name?: string | undefined;
275
+ parentId: string | null;
276
+ visible: boolean;
277
+ camera?: {
278
+ position: [number, number, number];
279
+ target: [number, number, number];
280
+ mode: "orthographic" | "perspective";
281
+ fov?: number | undefined;
282
+ zoom?: number | undefined;
283
+ } | undefined;
284
+ metadata: Record<string, unknown>;
285
+ provenance?: {
286
+ refs: {
287
+ ns?: string | undefined;
288
+ id: string;
289
+ role?: "absorbed" | "alias" | "derived" | "piece" | "primary" | undefined;
290
+ }[];
291
+ lineage?: {
292
+ op: "attach" | "convert" | "duplicate" | "import" | "make-independent" | "merge" | "promote" | "split";
293
+ fromIds: string[];
294
+ } | undefined;
295
+ } | undefined;
296
+ id: `pipe-trap_${string}`;
54
297
  position: [number, number, number];
55
298
  rotation: number;
56
- width: number;
57
- depth: number;
58
- height: number;
59
- hoodOverhang: number;
60
- topTaper: number;
61
- capHeight: number;
62
- capGap: number;
63
- domeCurvature: number;
64
- baseInset: number;
65
- baseHeight: number;
66
- cornerBevel: number;
67
- style: "box" | "cap" | "dome";
68
- type: "box-vent";
299
+ diameter: number;
300
+ pipeMaterial: "abs" | "cast-iron" | "pvc";
301
+ armLengthM: number;
302
+ type: "pipe-trap";
303
+ } | {
304
+ object: "node";
305
+ name?: string | undefined;
306
+ parentId: string | null;
307
+ visible: boolean;
308
+ camera?: {
309
+ position: [number, number, number];
310
+ target: [number, number, number];
311
+ mode: "orthographic" | "perspective";
312
+ fov?: number | undefined;
313
+ zoom?: number | undefined;
314
+ } | undefined;
315
+ metadata: Record<string, unknown>;
316
+ provenance?: {
317
+ refs: {
318
+ ns?: string | undefined;
319
+ id: string;
320
+ role?: "absorbed" | "alias" | "derived" | "piece" | "primary" | undefined;
321
+ }[];
322
+ lineage?: {
323
+ op: "attach" | "convert" | "duplicate" | "import" | "make-independent" | "merge" | "promote" | "split";
324
+ fromIds: string[];
325
+ } | undefined;
326
+ } | undefined;
327
+ id: `scan_${string}`;
328
+ url: string | null;
329
+ captureSession: {
330
+ sessionId: string;
331
+ schemaVersion?: number | undefined;
332
+ revisionId?: string | undefined;
333
+ manifestUrl?: string | undefined;
334
+ } | null;
335
+ layers: Record<string, boolean>;
336
+ position: [number, number, number];
337
+ rotation: [number, number, number];
338
+ scale: number;
339
+ opacity: number;
340
+ type: "scan";
69
341
  } | {
70
342
  object: "node";
71
343
  name?: string | undefined;
@@ -90,22 +362,82 @@ export declare function getNodesWithLiveStairOpeningInputs(nodes: Record<string,
90
362
  fromIds: string[];
91
363
  } | undefined;
92
364
  } | undefined;
93
- type: "item";
94
- id: `item_${string}`;
95
- position: [number, number, number];
96
- rotation: [number, number, number];
97
- scale: [number, number, number];
98
- side?: "back" | "front" | undefined;
99
- children: string[];
100
- wallId?: string | undefined;
101
- wallT?: number | undefined;
102
- roofSegmentId?: string | undefined;
103
- roofFace?: "back" | "front" | "left" | "right" | undefined;
104
- blockFaceId?: string | undefined;
105
- supportSlabId?: string | undefined;
106
- collectionIds?: `collection_${string}`[] | undefined;
107
- slots?: Record<string, string> | undefined;
108
- source?: {
365
+ id: `slab_${string}`;
366
+ material?: {
367
+ id?: string | undefined;
368
+ preset?: "brick" | "concrete" | "custom" | "glass" | "marble" | "metal" | "plaster" | "tile" | "white" | "wood" | undefined;
369
+ properties?: {
370
+ color: string;
371
+ roughness: number;
372
+ metalness: number;
373
+ opacity: number;
374
+ transparent: boolean;
375
+ side: "back" | "double" | "front";
376
+ } | undefined;
377
+ texture?: {
378
+ url: string;
379
+ repeat?: [number, number] | undefined;
380
+ scale?: number | undefined;
381
+ offset?: [number, number] | undefined;
382
+ normalMap?: string | undefined;
383
+ normalScale?: number | undefined;
384
+ bumpMap?: string | undefined;
385
+ bumpScale?: number | undefined;
386
+ } | undefined;
387
+ } | undefined;
388
+ materialPreset?: string | undefined;
389
+ slots?: Record<string, string> | undefined;
390
+ polygon: [number, number][];
391
+ holes: [number, number][][];
392
+ holeMetadata: {
393
+ source: "elevator" | "floor-opening" | "manual" | "room" | "stair";
394
+ openingId?: string | undefined;
395
+ stairId?: string | undefined;
396
+ elevatorId?: string | undefined;
397
+ }[];
398
+ elevation: number;
399
+ floorHeight?: number | undefined;
400
+ referenceFloorElevation?: number | undefined;
401
+ foundation?: {
402
+ type: "none" | "solid";
403
+ material?: string | {
404
+ id?: string | undefined;
405
+ preset?: "brick" | "concrete" | "custom" | "glass" | "marble" | "metal" | "plaster" | "tile" | "white" | "wood" | undefined;
406
+ properties?: {
407
+ color: string;
408
+ roughness: number;
409
+ metalness: number;
410
+ opacity: number;
411
+ transparent: boolean;
412
+ side: "back" | "double" | "front";
413
+ } | undefined;
414
+ texture?: {
415
+ url: string;
416
+ repeat?: [number, number] | undefined;
417
+ scale?: number | undefined;
418
+ offset?: [number, number] | undefined;
419
+ normalMap?: string | undefined;
420
+ normalScale?: number | undefined;
421
+ bumpMap?: string | undefined;
422
+ bumpScale?: number | undefined;
423
+ } | undefined;
424
+ } | undefined;
425
+ } | undefined;
426
+ thickness: number;
427
+ recessed: boolean;
428
+ recessedRimElevation?: number | undefined;
429
+ fillToTerrain?: boolean | undefined;
430
+ boundary?: "auto" | undefined;
431
+ support?: "open" | undefined;
432
+ plateRole?: "base" | "platform" | "sunken" | undefined;
433
+ railing?: {
434
+ start: [number, number];
435
+ end: [number, number];
436
+ }[] | undefined;
437
+ zoneIds?: string[] | undefined;
438
+ associatedZoneIds?: string[] | undefined;
439
+ autoFromWalls: boolean;
440
+ surfaceScript?: {
109
441
  kind: "script";
110
442
  meta?: {
111
443
  description?: string | undefined;
@@ -167,6 +499,16 @@ export declare function getNodesWithLiveStairOpeningInputs(nodes: Record<string,
167
499
  color: string;
168
500
  intensity: number;
169
501
  distance?: number | undefined;
502
+ spot?: {
503
+ direction: [number, number, number];
504
+ angle: number;
505
+ softness: number;
506
+ } | undefined;
507
+ shadows?: boolean | undefined;
508
+ glow?: {
509
+ size: number;
510
+ strength: number;
511
+ } | undefined;
170
512
  }[];
171
513
  undersides: {
172
514
  part?: string | undefined;
@@ -185,6 +527,17 @@ export declare function getNodesWithLiveStairOpeningInputs(nodes: Record<string,
185
527
  }[] | undefined;
186
528
  cutout: boolean;
187
529
  collider: boolean;
530
+ shape?: {
531
+ tolerance: number;
532
+ bands: {
533
+ y0: number;
534
+ y1: number;
535
+ polygons: {
536
+ outer: [number, number][];
537
+ holes?: [number, number][][] | undefined;
538
+ }[];
539
+ }[];
540
+ } | undefined;
188
541
  triangles: number;
189
542
  coverage?: number | undefined;
190
543
  uncovered?: {
@@ -197,67 +550,69 @@ export declare function getNodesWithLiveStairOpeningInputs(nodes: Record<string,
197
550
  thumbnail: string;
198
551
  floorPlan: string;
199
552
  } | undefined;
553
+ inputs: string;
200
554
  } | undefined;
201
- asset: {
202
- id: string;
203
- category: string;
204
- name: string;
205
- thumbnail: string;
206
- floorPlanUrl?: string | undefined;
207
- source: "community" | "library" | "mine";
208
- isDraft?: boolean | undefined;
209
- src: string;
210
- dimensions: [number, number, number];
211
- attachTo?: "ceiling" | "wall" | "wall-side" | undefined;
212
- recessed?: boolean | undefined;
213
- tags?: string[] | undefined;
214
- functionTags?: string[] | undefined;
215
- offset: [number, number, number];
216
- rotation: [number, number, number];
217
- scale: [number, number, number];
218
- surface?: {
219
- height: number;
555
+ type: "slab";
556
+ } | {
557
+ object: "node";
558
+ name?: string | undefined;
559
+ parentId: string | null;
560
+ visible: boolean;
561
+ camera?: {
562
+ position: [number, number, number];
563
+ target: [number, number, number];
564
+ mode: "orthographic" | "perspective";
565
+ fov?: number | undefined;
566
+ zoom?: number | undefined;
567
+ } | undefined;
568
+ metadata: Record<string, unknown>;
569
+ provenance?: {
570
+ refs: {
571
+ ns?: string | undefined;
572
+ id: string;
573
+ role?: "absorbed" | "alias" | "derived" | "piece" | "primary" | undefined;
574
+ }[];
575
+ lineage?: {
576
+ op: "attach" | "convert" | "duplicate" | "import" | "make-independent" | "merge" | "promote" | "split";
577
+ fromIds: string[];
220
578
  } | undefined;
221
- interactive?: {
222
- controls: ({
223
- kind: "toggle";
224
- label?: string | undefined;
225
- default?: boolean | undefined;
226
- } | {
227
- kind: "slider";
228
- label: string;
229
- min: number;
230
- max: number;
231
- step: number;
232
- unit?: string | undefined;
233
- displayMode: "dial" | "slider" | "stepper";
234
- default?: number | undefined;
235
- } | {
236
- kind: "temperature";
237
- label: string;
238
- min: number;
239
- max: number;
240
- unit: "C" | "F";
241
- default?: number | undefined;
242
- })[];
243
- effects: ({
244
- kind: "animation";
245
- mode?: "ambient" | "open-close" | undefined;
246
- control?: number | undefined;
247
- clips: {
248
- on?: string | undefined;
249
- off?: string | undefined;
250
- loop?: string | undefined;
251
- };
252
- } | {
253
- kind: "light";
254
- color: string;
255
- intensityRange: [number, number];
256
- distance?: number | undefined;
257
- offset: [number, number, number];
258
- })[];
579
+ } | undefined;
580
+ id: `structural-grid_${string}`;
581
+ start: [number, number];
582
+ end: [number, number];
583
+ label: string;
584
+ showStartBubble: boolean;
585
+ showEndBubble: boolean;
586
+ type: "structural-grid";
587
+ } | {
588
+ object: "node";
589
+ parentId: string | null;
590
+ visible: boolean;
591
+ camera?: {
592
+ position: [number, number, number];
593
+ target: [number, number, number];
594
+ mode: "orthographic" | "perspective";
595
+ fov?: number | undefined;
596
+ zoom?: number | undefined;
597
+ } | undefined;
598
+ provenance?: {
599
+ refs: {
600
+ ns?: string | undefined;
601
+ id: string;
602
+ role?: "absorbed" | "alias" | "derived" | "piece" | "primary" | undefined;
603
+ }[];
604
+ lineage?: {
605
+ op: "attach" | "convert" | "duplicate" | "import" | "make-independent" | "merge" | "promote" | "split";
606
+ fromIds: string[];
259
607
  } | undefined;
260
- };
608
+ } | undefined;
609
+ id: `unit_${string}`;
610
+ name: string;
611
+ kind: "apartment" | "commercial" | "common" | "hotel-room";
612
+ members: `zone_${string}`[];
613
+ color: string;
614
+ metadata: Record<string, unknown>;
615
+ type: "unit";
261
616
  } | {
262
617
  object: "node";
263
618
  name?: string | undefined;
@@ -282,8 +637,7 @@ export declare function getNodesWithLiveStairOpeningInputs(nodes: Record<string,
282
637
  fromIds: string[];
283
638
  } | undefined;
284
639
  } | undefined;
285
- id: `ceiling_${string}`;
286
- children: (`item_${string}` | `procedural-item_${string}`)[];
640
+ id: `cupola_${string}`;
287
641
  material?: {
288
642
  id?: string | undefined;
289
643
  preset?: "brick" | "concrete" | "custom" | "glass" | "marble" | "metal" | "plaster" | "tile" | "white" | "wood" | undefined;
@@ -299,29 +653,101 @@ export declare function getNodesWithLiveStairOpeningInputs(nodes: Record<string,
299
653
  url: string;
300
654
  repeat?: [number, number] | undefined;
301
655
  scale?: number | undefined;
656
+ offset?: [number, number] | undefined;
657
+ normalMap?: string | undefined;
658
+ normalScale?: number | undefined;
659
+ bumpMap?: string | undefined;
660
+ bumpScale?: number | undefined;
302
661
  } | undefined;
303
662
  } | undefined;
304
- materialPreset?: string | undefined;
305
663
  slots?: Record<string, string> | undefined;
306
- polygon: [number, number][];
307
- holes: [number, number][][];
308
- holeMetadata: {
309
- source: "elevator" | "floor-opening" | "manual" | "room" | "stair";
310
- openingId?: string | undefined;
311
- stairId?: string | undefined;
312
- elevatorId?: string | undefined;
313
- }[];
314
- openingIds?: string[] | undefined;
664
+ materialPreset: string;
665
+ roofSegmentId?: string | undefined;
666
+ position: [number, number, number];
667
+ rotation: number;
668
+ width: number;
669
+ depth: number;
670
+ height: number;
671
+ roofStyle: "dome" | "pyramid";
672
+ finial: boolean;
673
+ type: "cupola";
674
+ } | {
675
+ object: "node";
676
+ name?: string | undefined;
677
+ parentId: string | null;
678
+ visible: boolean;
679
+ camera?: {
680
+ position: [number, number, number];
681
+ target: [number, number, number];
682
+ mode: "orthographic" | "perspective";
683
+ fov?: number | undefined;
684
+ zoom?: number | undefined;
685
+ } | undefined;
686
+ metadata: Record<string, unknown>;
687
+ provenance?: {
688
+ refs: {
689
+ ns?: string | undefined;
690
+ id: string;
691
+ role?: "absorbed" | "alias" | "derived" | "piece" | "primary" | undefined;
692
+ }[];
693
+ lineage?: {
694
+ op: "attach" | "convert" | "duplicate" | "import" | "make-independent" | "merge" | "promote" | "split";
695
+ fromIds: string[];
696
+ } | undefined;
697
+ } | undefined;
698
+ matchFenceStyle?: boolean | undefined;
699
+ matchFenceHeight?: boolean | undefined;
700
+ leafType?: "double" | "single" | undefined;
701
+ style?: "guard" | "horizontal" | "match" | "picket" | "privacy" | "rail" | "slat" | undefined;
702
+ height?: number | undefined;
703
+ clearance?: number | undefined;
704
+ thickness?: number | undefined;
705
+ frameWidth?: number | undefined;
706
+ spacing?: number | undefined;
707
+ boardWidth?: number | undefined;
708
+ hinge?: "left" | "right" | undefined;
709
+ swing?: "inward" | "outward" | undefined;
710
+ openAngle?: number | undefined;
711
+ leafSplit?: number | undefined;
712
+ brace?: "cross" | "diagonal" | "none" | undefined;
713
+ showHardware?: boolean | undefined;
714
+ showPosts?: boolean | undefined;
715
+ id: `fence-gate_${string}`;
716
+ center: number;
717
+ width: number;
718
+ type: "fence-gate";
719
+ } | {
720
+ object: "node";
721
+ name?: string | undefined;
722
+ parentId: string | null;
723
+ visible: boolean;
724
+ camera?: {
725
+ position: [number, number, number];
726
+ target: [number, number, number];
727
+ mode: "orthographic" | "perspective";
728
+ fov?: number | undefined;
729
+ zoom?: number | undefined;
730
+ } | undefined;
731
+ metadata: Record<string, unknown>;
732
+ provenance?: {
733
+ refs: {
734
+ ns?: string | undefined;
735
+ id: string;
736
+ role?: "absorbed" | "alias" | "derived" | "piece" | "primary" | undefined;
737
+ }[];
738
+ lineage?: {
739
+ op: "attach" | "convert" | "duplicate" | "import" | "make-independent" | "merge" | "promote" | "split";
740
+ fromIds: string[];
741
+ } | undefined;
742
+ } | undefined;
743
+ center: number;
744
+ width: number;
745
+ matchFenceStyle?: boolean | undefined;
746
+ matchFenceHeight?: boolean | undefined;
315
747
  height?: number | undefined;
316
- regions?: {
317
- id: string;
318
- polygon: [number, number][];
319
- finish: string | Record<string, unknown>;
320
- }[] | undefined;
321
- boundary?: "auto" | undefined;
322
- zoneId?: string | undefined;
323
- autoFromWalls: boolean;
324
- type: "ceiling";
748
+ showPosts: boolean;
749
+ id: `fence-opening_${string}`;
750
+ type: "fence-opening";
325
751
  } | {
326
752
  object: "node";
327
753
  name?: string | undefined;
@@ -346,42 +772,77 @@ export declare function getNodesWithLiveStairOpeningInputs(nodes: Record<string,
346
772
  fromIds: string[];
347
773
  } | undefined;
348
774
  } | undefined;
349
- id: `construction-dimension_${string}`;
350
- anchors: ({
351
- kind: "feature";
352
- reference: {
353
- nodeId: string;
354
- featureId: string;
355
- parameters?: Record<string, string | number | boolean> | undefined;
356
- };
357
- fallback: [number, number, number];
358
- } | [number, number, number])[];
359
- baseline: {
360
- origin: [number, number];
361
- direction: [number, number];
362
- };
363
- chainMode: "continuous" | "point-to-point";
364
- mode: "angular" | "arc-length" | "center-mark" | "chord" | "coordinate" | "diameter" | "linear" | "radius";
365
- featureCount: number;
366
- showCenterMark: boolean;
367
- prefix: string;
368
- suffix: string;
369
- textOverride: string | null;
370
- datumPolicy: "centerline" | "finish-face" | "structural-face" | "wall-face";
371
- terminator: "architectural-tick" | "dot" | "filled-arrow" | "open-arrow";
372
- textPosition: "above" | "centered";
373
- imperialPrecision: "1" | "1/16" | "1/2" | "1/4" | "1/8";
374
- metricNotation: "meters" | "millimeters";
375
- extensionStartGap: number;
376
- extensionOvershoot: number;
377
- drawingType: "floor-plan" | "foundation-plan" | "reflected-ceiling-plan" | "roof-plan" | "site-plan";
378
- drawingOverrides: {
379
- drawingType: "floor-plan" | "foundation-plan" | "reflected-ceiling-plan" | "roof-plan" | "site-plan";
380
- presentation: "controlled" | "omit" | "shown";
381
- suppressedSegmentIndexes: number[];
382
- }[];
383
- controllingDimensionId: `construction-dimension_${string}` | null;
384
- type: "construction-dimension";
775
+ id: `skylight_${string}`;
776
+ material?: {
777
+ id?: string | undefined;
778
+ preset?: "brick" | "concrete" | "custom" | "glass" | "marble" | "metal" | "plaster" | "tile" | "white" | "wood" | undefined;
779
+ properties?: {
780
+ color: string;
781
+ roughness: number;
782
+ metalness: number;
783
+ opacity: number;
784
+ transparent: boolean;
785
+ side: "back" | "double" | "front";
786
+ } | undefined;
787
+ texture?: {
788
+ url: string;
789
+ repeat?: [number, number] | undefined;
790
+ scale?: number | undefined;
791
+ offset?: [number, number] | undefined;
792
+ normalMap?: string | undefined;
793
+ normalScale?: number | undefined;
794
+ bumpMap?: string | undefined;
795
+ bumpScale?: number | undefined;
796
+ } | undefined;
797
+ } | undefined;
798
+ materialPreset?: string | undefined;
799
+ glassMaterial?: {
800
+ id?: string | undefined;
801
+ preset?: "brick" | "concrete" | "custom" | "glass" | "marble" | "metal" | "plaster" | "tile" | "white" | "wood" | undefined;
802
+ properties?: {
803
+ color: string;
804
+ roughness: number;
805
+ metalness: number;
806
+ opacity: number;
807
+ transparent: boolean;
808
+ side: "back" | "double" | "front";
809
+ } | undefined;
810
+ texture?: {
811
+ url: string;
812
+ repeat?: [number, number] | undefined;
813
+ scale?: number | undefined;
814
+ offset?: [number, number] | undefined;
815
+ normalMap?: string | undefined;
816
+ normalScale?: number | undefined;
817
+ bumpMap?: string | undefined;
818
+ bumpScale?: number | undefined;
819
+ } | undefined;
820
+ } | undefined;
821
+ glassMaterialPreset?: string | undefined;
822
+ roofSegmentId?: string | undefined;
823
+ position: [number, number, number];
824
+ rotation: number;
825
+ width: number;
826
+ height: number;
827
+ frameThickness: number;
828
+ frameDepth: number;
829
+ skylightType: "flat" | "lantern" | "opening" | "sliding" | "walk-on";
830
+ glassThickness: number;
831
+ lanternHeight: number;
832
+ lanternTopScale: number;
833
+ openingAngle: number;
834
+ openingSide: "bottom" | "left" | "right" | "top";
835
+ operationState: number;
836
+ motorHousing: boolean;
837
+ slideFraction: number;
838
+ slideDirection: "x" | "z";
839
+ trackWidth: number;
840
+ motorHousingSize: number;
841
+ curb: boolean;
842
+ curbHeight: number;
843
+ cutoutOffset: number;
844
+ surfaceNormal?: [number, number, number] | undefined;
845
+ type: "skylight";
385
846
  } | {
386
847
  object: "node";
387
848
  name?: string | undefined;
@@ -557,8 +1018,270 @@ export declare function getNodesWithLiveStairOpeningInputs(nodes: Record<string,
557
1018
  points: [number, number][];
558
1019
  }[];
559
1020
  } | undefined;
560
- children: string[];
561
- type: "site";
1021
+ wallTypes?: {
1022
+ id: string;
1023
+ label: string;
1024
+ assembly: {
1025
+ layers: {
1026
+ id: string;
1027
+ role: "air" | "covering" | "deck" | "fill" | "finish" | "furring" | "glazing" | "insulation" | "lining" | "membrane" | "sheathing" | "shell" | "structure" | "substrate" | "underlay";
1028
+ thickness: number;
1029
+ core?: true | undefined;
1030
+ spacing?: number | undefined;
1031
+ material?: string | undefined;
1032
+ slot?: string | undefined;
1033
+ returns?: boolean | undefined;
1034
+ display?: "construction" | "finished" | undefined;
1035
+ inset?: number | undefined;
1036
+ bottom?: number | undefined;
1037
+ lift?: number | undefined;
1038
+ src?: string | undefined;
1039
+ }[];
1040
+ backing?: {
1041
+ id: string;
1042
+ role: "air" | "covering" | "deck" | "fill" | "finish" | "furring" | "glazing" | "insulation" | "lining" | "membrane" | "sheathing" | "shell" | "structure" | "substrate" | "underlay";
1043
+ thickness: number;
1044
+ core?: true | undefined;
1045
+ spacing?: number | undefined;
1046
+ material?: string | undefined;
1047
+ slot?: string | undefined;
1048
+ returns?: boolean | undefined;
1049
+ display?: "construction" | "finished" | undefined;
1050
+ inset?: number | undefined;
1051
+ bottom?: number | undefined;
1052
+ lift?: number | undefined;
1053
+ src?: string | undefined;
1054
+ }[] | undefined;
1055
+ face?: "exterior" | "front" | undefined;
1056
+ presetId?: string | undefined;
1057
+ cavityInsulation?: string | undefined;
1058
+ };
1059
+ }[] | undefined;
1060
+ children: string[];
1061
+ type: "site";
1062
+ } | {
1063
+ object: "node";
1064
+ name?: string | undefined;
1065
+ parentId: string | null;
1066
+ visible: boolean;
1067
+ camera?: {
1068
+ position: [number, number, number];
1069
+ target: [number, number, number];
1070
+ mode: "orthographic" | "perspective";
1071
+ fov?: number | undefined;
1072
+ zoom?: number | undefined;
1073
+ } | undefined;
1074
+ metadata: Record<string, unknown>;
1075
+ provenance?: {
1076
+ refs: {
1077
+ ns?: string | undefined;
1078
+ id: string;
1079
+ role?: "absorbed" | "alias" | "derived" | "piece" | "primary" | undefined;
1080
+ }[];
1081
+ lineage?: {
1082
+ op: "attach" | "convert" | "duplicate" | "import" | "make-independent" | "merge" | "promote" | "split";
1083
+ fromIds: string[];
1084
+ } | undefined;
1085
+ } | undefined;
1086
+ type: "item";
1087
+ id: `item_${string}`;
1088
+ position: [number, number, number];
1089
+ rotation: [number, number, number];
1090
+ scale: [number, number, number];
1091
+ side?: "back" | "front" | undefined;
1092
+ children: string[];
1093
+ wallId?: string | undefined;
1094
+ wallT?: number | undefined;
1095
+ roofSegmentId?: string | undefined;
1096
+ roofFace?: "back" | "front" | "left" | "right" | undefined;
1097
+ blockFaceId?: string | undefined;
1098
+ supportSlabId?: string | undefined;
1099
+ collectionIds?: `collection_${string}`[] | undefined;
1100
+ slots?: Record<string, string> | undefined;
1101
+ source?: {
1102
+ kind: "script";
1103
+ meta?: {
1104
+ description?: string | undefined;
1105
+ category?: string | undefined;
1106
+ tags?: string[] | undefined;
1107
+ parent?: string | undefined;
1108
+ } | undefined;
1109
+ language: "bpy" | "three";
1110
+ script: string;
1111
+ params: Record<string, string | number | boolean>;
1112
+ artifact: string;
1113
+ manifest: {
1114
+ bounds: {
1115
+ min: [number, number, number];
1116
+ max: [number, number, number];
1117
+ };
1118
+ params: {
1119
+ id: string;
1120
+ label?: string | undefined;
1121
+ kind: "boolean" | "number" | "string";
1122
+ default: string | number | boolean;
1123
+ min?: number | undefined;
1124
+ max?: number | undefined;
1125
+ step?: number | undefined;
1126
+ unit?: string | undefined;
1127
+ options?: string[] | undefined;
1128
+ }[];
1129
+ parts: {
1130
+ id: string;
1131
+ label?: string | undefined;
1132
+ type?: string | undefined;
1133
+ bounds?: {
1134
+ min: [number, number, number];
1135
+ max: [number, number, number];
1136
+ } | undefined;
1137
+ }[];
1138
+ surfaces: {
1139
+ part?: string | undefined;
1140
+ y: number;
1141
+ polygon: [number, number][];
1142
+ }[];
1143
+ slots: {
1144
+ id: string;
1145
+ label?: string | undefined;
1146
+ color?: string | undefined;
1147
+ roughness?: number | undefined;
1148
+ metalness?: number | undefined;
1149
+ transparent?: boolean | undefined;
1150
+ emissive?: boolean | undefined;
1151
+ }[];
1152
+ anchors: {
1153
+ id: string;
1154
+ position: [number, number, number];
1155
+ normal?: [number, number, number] | undefined;
1156
+ }[];
1157
+ lights: {
1158
+ id: string;
1159
+ position: [number, number, number];
1160
+ color: string;
1161
+ intensity: number;
1162
+ distance?: number | undefined;
1163
+ spot?: {
1164
+ direction: [number, number, number];
1165
+ angle: number;
1166
+ softness: number;
1167
+ } | undefined;
1168
+ shadows?: boolean | undefined;
1169
+ glow?: {
1170
+ size: number;
1171
+ strength: number;
1172
+ } | undefined;
1173
+ }[];
1174
+ undersides: {
1175
+ part?: string | undefined;
1176
+ polygon: [number, number][];
1177
+ plane: [number, number, number, number];
1178
+ }[];
1179
+ animations: {
1180
+ name: string;
1181
+ duration: number;
1182
+ }[];
1183
+ cutters?: {
1184
+ host: "ceiling" | "mounted" | "slab" | "wall";
1185
+ polygon: number[][];
1186
+ minY: number;
1187
+ maxY: number;
1188
+ }[] | undefined;
1189
+ cutout: boolean;
1190
+ collider: boolean;
1191
+ shape?: {
1192
+ tolerance: number;
1193
+ bands: {
1194
+ y0: number;
1195
+ y1: number;
1196
+ polygons: {
1197
+ outer: [number, number][];
1198
+ holes?: [number, number][][] | undefined;
1199
+ }[];
1200
+ }[];
1201
+ } | undefined;
1202
+ triangles: number;
1203
+ coverage?: number | undefined;
1204
+ uncovered?: {
1205
+ min: [number, number];
1206
+ max: [number, number];
1207
+ }[] | undefined;
1208
+ };
1209
+ images?: {
1210
+ artifact: string;
1211
+ thumbnail: string;
1212
+ floorPlan: string;
1213
+ } | undefined;
1214
+ } | undefined;
1215
+ asset: {
1216
+ id: string;
1217
+ category: string;
1218
+ name: string;
1219
+ thumbnail: string;
1220
+ floorPlanUrl?: string | undefined;
1221
+ source: "community" | "library" | "mine";
1222
+ isDraft?: boolean | undefined;
1223
+ src: string;
1224
+ dimensions: [number, number, number];
1225
+ attachTo?: "ceiling" | "wall" | "wall-side" | undefined;
1226
+ recessed?: boolean | undefined;
1227
+ tags?: string[] | undefined;
1228
+ functionTags?: string[] | undefined;
1229
+ offset: [number, number, number];
1230
+ rotation: [number, number, number];
1231
+ scale: [number, number, number];
1232
+ surface?: {
1233
+ height: number;
1234
+ } | undefined;
1235
+ interactive?: {
1236
+ controls: ({
1237
+ kind: "toggle";
1238
+ label?: string | undefined;
1239
+ default?: boolean | undefined;
1240
+ } | {
1241
+ kind: "slider";
1242
+ label: string;
1243
+ min: number;
1244
+ max: number;
1245
+ step: number;
1246
+ unit?: string | undefined;
1247
+ displayMode: "dial" | "slider" | "stepper";
1248
+ default?: number | undefined;
1249
+ } | {
1250
+ kind: "temperature";
1251
+ label: string;
1252
+ min: number;
1253
+ max: number;
1254
+ unit: "C" | "F";
1255
+ default?: number | undefined;
1256
+ })[];
1257
+ effects: ({
1258
+ kind: "animation";
1259
+ mode?: "ambient" | "open-close" | undefined;
1260
+ control?: number | undefined;
1261
+ clips: {
1262
+ on?: string | undefined;
1263
+ off?: string | undefined;
1264
+ loop?: string | undefined;
1265
+ };
1266
+ } | {
1267
+ kind: "light";
1268
+ color: string;
1269
+ intensityRange: [number, number];
1270
+ distance?: number | undefined;
1271
+ offset: [number, number, number];
1272
+ spot?: {
1273
+ direction: [number, number, number];
1274
+ angle: number;
1275
+ softness: number;
1276
+ } | undefined;
1277
+ shadows?: boolean | undefined;
1278
+ glow?: {
1279
+ size: number;
1280
+ strength: number;
1281
+ } | undefined;
1282
+ })[];
1283
+ } | undefined;
1284
+ };
562
1285
  } | {
563
1286
  object: "node";
564
1287
  name?: string | undefined;
@@ -599,6 +1322,11 @@ export declare function getNodesWithLiveStairOpeningInputs(nodes: Record<string,
599
1322
  url: string;
600
1323
  repeat?: [number, number] | undefined;
601
1324
  scale?: number | undefined;
1325
+ offset?: [number, number] | undefined;
1326
+ normalMap?: string | undefined;
1327
+ normalScale?: number | undefined;
1328
+ bumpMap?: string | undefined;
1329
+ bumpScale?: number | undefined;
602
1330
  } | undefined;
603
1331
  } | undefined;
604
1332
  slots?: Record<string, string> | undefined;
@@ -664,6 +1392,16 @@ export declare function getNodesWithLiveStairOpeningInputs(nodes: Record<string,
664
1392
  color: string;
665
1393
  intensity: number;
666
1394
  distance?: number | undefined;
1395
+ spot?: {
1396
+ direction: [number, number, number];
1397
+ angle: number;
1398
+ softness: number;
1399
+ } | undefined;
1400
+ shadows?: boolean | undefined;
1401
+ glow?: {
1402
+ size: number;
1403
+ strength: number;
1404
+ } | undefined;
667
1405
  }[];
668
1406
  undersides: {
669
1407
  part?: string | undefined;
@@ -682,6 +1420,17 @@ export declare function getNodesWithLiveStairOpeningInputs(nodes: Record<string,
682
1420
  }[] | undefined;
683
1421
  cutout: boolean;
684
1422
  collider: boolean;
1423
+ shape?: {
1424
+ tolerance: number;
1425
+ bands: {
1426
+ y0: number;
1427
+ y1: number;
1428
+ polygons: {
1429
+ outer: [number, number][];
1430
+ holes?: [number, number][][] | undefined;
1431
+ }[];
1432
+ }[];
1433
+ } | undefined;
685
1434
  triangles: number;
686
1435
  coverage?: number | undefined;
687
1436
  uncovered?: {
@@ -705,6 +1454,10 @@ export declare function getNodesWithLiveStairOpeningInputs(nodes: Record<string,
705
1454
  roofFace?: "back" | "front" | "left" | "right" | undefined;
706
1455
  width: number;
707
1456
  height: number;
1457
+ sidelightLeft?: number | undefined;
1458
+ sidelightRight?: number | undefined;
1459
+ transomHeight?: number | undefined;
1460
+ slidingStyle?: "bypass" | "patio" | undefined;
708
1461
  mark?: string | undefined;
709
1462
  constructionType: "framed" | "masonry";
710
1463
  dimensionReference: "finish-opening" | "masonry-opening" | "nominal" | "rough-opening";
@@ -716,7 +1469,7 @@ export declare function getNodesWithLiveStairOpeningInputs(nodes: Record<string,
716
1469
  finishOpeningHeight?: number | undefined;
717
1470
  doorCategory: "garage" | "interior";
718
1471
  doorType: "barn" | "double" | "folding" | "french" | "garage-rollup" | "garage-sectional" | "garage-tiltup" | "hinged" | "pocket" | "sliding";
719
- leafCount: 1 | 2 | 3 | 4;
1472
+ leafCount: 1 | 2 | 3 | 4 | 6 | 8;
720
1473
  operationState: number;
721
1474
  slideDirection: "left" | "right";
722
1475
  trackStyle: "none" | "overhead" | "pocket" | "visible";
@@ -729,9 +1482,12 @@ export declare function getNodesWithLiveStairOpeningInputs(nodes: Record<string,
729
1482
  archHeight: number;
730
1483
  openingRevealRadius: number;
731
1484
  frameThickness: number;
732
- frameDepth: number;
1485
+ frameDepth?: number | undefined;
733
1486
  threshold: boolean;
734
1487
  thresholdHeight: number;
1488
+ casingFaceA?: boolean | undefined;
1489
+ casingFaceB?: boolean | undefined;
1490
+ casingWidth?: number | undefined;
735
1491
  hingesSide: "left" | "right";
736
1492
  swingDirection: "inward" | "outward";
737
1493
  swingAngle: number;
@@ -744,11 +1500,14 @@ export declare function getNodesWithLiveStairOpeningInputs(nodes: Record<string,
744
1500
  panelInset: number;
745
1501
  }[];
746
1502
  handle: boolean;
1503
+ handleStyle?: "bar" | "knob" | "lever" | "lever-curved" | "plate" | undefined;
747
1504
  handleHeight: number;
748
1505
  handleSide: "left" | "right";
749
1506
  contentPadding: [number, number];
750
1507
  doorCloser: boolean;
751
1508
  panicBar: boolean;
1509
+ panicBarStyle: "crossbar" | "touchbar";
1510
+ panicBarRods: boolean;
752
1511
  panicBarHeight: number;
753
1512
  type: "door";
754
1513
  } | {
@@ -791,6 +1550,11 @@ export declare function getNodesWithLiveStairOpeningInputs(nodes: Record<string,
791
1550
  url: string;
792
1551
  repeat?: [number, number] | undefined;
793
1552
  scale?: number | undefined;
1553
+ offset?: [number, number] | undefined;
1554
+ normalMap?: string | undefined;
1555
+ normalScale?: number | undefined;
1556
+ bumpMap?: string | undefined;
1557
+ bumpScale?: number | undefined;
794
1558
  } | undefined;
795
1559
  } | undefined;
796
1560
  slots?: Record<string, string> | undefined;
@@ -856,6 +1620,16 @@ export declare function getNodesWithLiveStairOpeningInputs(nodes: Record<string,
856
1620
  color: string;
857
1621
  intensity: number;
858
1622
  distance?: number | undefined;
1623
+ spot?: {
1624
+ direction: [number, number, number];
1625
+ angle: number;
1626
+ softness: number;
1627
+ } | undefined;
1628
+ shadows?: boolean | undefined;
1629
+ glow?: {
1630
+ size: number;
1631
+ strength: number;
1632
+ } | undefined;
859
1633
  }[];
860
1634
  undersides: {
861
1635
  part?: string | undefined;
@@ -874,6 +1648,17 @@ export declare function getNodesWithLiveStairOpeningInputs(nodes: Record<string,
874
1648
  }[] | undefined;
875
1649
  cutout: boolean;
876
1650
  collider: boolean;
1651
+ shape?: {
1652
+ tolerance: number;
1653
+ bands: {
1654
+ y0: number;
1655
+ y1: number;
1656
+ polygons: {
1657
+ outer: [number, number][];
1658
+ holes?: [number, number][][] | undefined;
1659
+ }[];
1660
+ }[];
1661
+ } | undefined;
877
1662
  triangles: number;
878
1663
  coverage?: number | undefined;
879
1664
  uncovered?: {
@@ -909,8 +1694,10 @@ export declare function getNodesWithLiveStairOpeningInputs(nodes: Record<string,
909
1694
  finishOpeningWidth?: number | undefined;
910
1695
  finishOpeningHeight?: number | undefined;
911
1696
  openingKind: "opening" | "window";
912
- windowType: "awning" | "bay" | "bow" | "casement" | "double-hung" | "fixed" | "hopper" | "louvered" | "single-hung" | "sliding";
1697
+ windowType: "awning" | "bay" | "bow" | "casement" | "double-hung" | "fixed" | "hopper" | "louvered" | "single-hung" | "sliding" | "tilt-turn";
913
1698
  operationState: number;
1699
+ openingDirection?: "inward" | "outward" | undefined;
1700
+ tiltTurnMode?: "tilt" | "turn" | undefined;
914
1701
  awningDirection: "down" | "up";
915
1702
  casementStyle: "french" | "single";
916
1703
  hingesSide: "left" | "right";
@@ -921,7 +1708,9 @@ export declare function getNodesWithLiveStairOpeningInputs(nodes: Record<string,
921
1708
  archHeight: number;
922
1709
  openingRevealRadius: number;
923
1710
  frameThickness: number;
924
- frameDepth: number;
1711
+ frameDepth?: number | undefined;
1712
+ windowHandle?: boolean | undefined;
1713
+ sashGrid?: boolean | undefined;
925
1714
  columnRatios: number[];
926
1715
  rowRatios: number[];
927
1716
  columnDividerThickness: number;
@@ -934,6 +1723,21 @@ export declare function getNodesWithLiveStairOpeningInputs(nodes: Record<string,
934
1723
  sill: boolean;
935
1724
  sillDepth: number;
936
1725
  sillThickness: number;
1726
+ sillOverhang?: number | undefined;
1727
+ sillInterior?: boolean | undefined;
1728
+ sillInteriorDepth?: number | undefined;
1729
+ sillInteriorThickness?: number | undefined;
1730
+ sillInteriorOverhang?: number | undefined;
1731
+ shutters?: "board-batten" | "louvered" | "none" | "panel" | undefined;
1732
+ shutterWidth?: number | undefined;
1733
+ shutterOpen?: number | undefined;
1734
+ shutterSides?: "both" | "left" | "right" | undefined;
1735
+ rollerShutter?: "box" | "concealed" | "none" | undefined;
1736
+ rollerShutterBoxHeight?: number | undefined;
1737
+ rollerShutterOpen?: number | undefined;
1738
+ casingFaceA?: boolean | undefined;
1739
+ casingFaceB?: boolean | undefined;
1740
+ casingWidth?: number | undefined;
937
1741
  type: "window";
938
1742
  } | {
939
1743
  object: "node";
@@ -1026,6 +1830,16 @@ export declare function getNodesWithLiveStairOpeningInputs(nodes: Record<string,
1026
1830
  color: string;
1027
1831
  intensity: number;
1028
1832
  distance?: number | undefined;
1833
+ spot?: {
1834
+ direction: [number, number, number];
1835
+ angle: number;
1836
+ softness: number;
1837
+ } | undefined;
1838
+ shadows?: boolean | undefined;
1839
+ glow?: {
1840
+ size: number;
1841
+ strength: number;
1842
+ } | undefined;
1029
1843
  }[];
1030
1844
  undersides: {
1031
1845
  part?: string | undefined;
@@ -1044,6 +1858,17 @@ export declare function getNodesWithLiveStairOpeningInputs(nodes: Record<string,
1044
1858
  }[] | undefined;
1045
1859
  cutout: boolean;
1046
1860
  collider: boolean;
1861
+ shape?: {
1862
+ tolerance: number;
1863
+ bands: {
1864
+ y0: number;
1865
+ y1: number;
1866
+ polygons: {
1867
+ outer: [number, number][];
1868
+ holes?: [number, number][][] | undefined;
1869
+ }[];
1870
+ }[];
1871
+ } | undefined;
1047
1872
  triangles: number;
1048
1873
  coverage?: number | undefined;
1049
1874
  uncovered?: {
@@ -1128,7 +1953,8 @@ export declare function getNodesWithLiveStairOpeningInputs(nodes: Record<string,
1128
1953
  braceBottomSpread: number;
1129
1954
  braceTopSpread: number;
1130
1955
  bracePlateEnabled: boolean;
1131
- role?: "ornament" | undefined;
1956
+ role?: "ornament" | "post" | undefined;
1957
+ postBase?: "none" | "pier" | "post-base" | undefined;
1132
1958
  material?: {
1133
1959
  id?: string | undefined;
1134
1960
  preset?: "brick" | "concrete" | "custom" | "glass" | "marble" | "metal" | "plaster" | "tile" | "white" | "wood" | undefined;
@@ -1144,6 +1970,11 @@ export declare function getNodesWithLiveStairOpeningInputs(nodes: Record<string,
1144
1970
  url: string;
1145
1971
  repeat?: [number, number] | undefined;
1146
1972
  scale?: number | undefined;
1973
+ offset?: [number, number] | undefined;
1974
+ normalMap?: string | undefined;
1975
+ normalScale?: number | undefined;
1976
+ bumpMap?: string | undefined;
1977
+ bumpScale?: number | undefined;
1147
1978
  } | undefined;
1148
1979
  } | undefined;
1149
1980
  materialPreset?: string | undefined;
@@ -1189,6 +2020,11 @@ export declare function getNodesWithLiveStairOpeningInputs(nodes: Record<string,
1189
2020
  url: string;
1190
2021
  repeat?: [number, number] | undefined;
1191
2022
  scale?: number | undefined;
2023
+ offset?: [number, number] | undefined;
2024
+ normalMap?: string | undefined;
2025
+ normalScale?: number | undefined;
2026
+ bumpMap?: string | undefined;
2027
+ bumpScale?: number | undefined;
1192
2028
  } | undefined;
1193
2029
  } | undefined;
1194
2030
  materialPreset?: string | undefined;
@@ -1207,6 +2043,11 @@ export declare function getNodesWithLiveStairOpeningInputs(nodes: Record<string,
1207
2043
  url: string;
1208
2044
  repeat?: [number, number] | undefined;
1209
2045
  scale?: number | undefined;
2046
+ offset?: [number, number] | undefined;
2047
+ normalMap?: string | undefined;
2048
+ normalScale?: number | undefined;
2049
+ bumpMap?: string | undefined;
2050
+ bumpScale?: number | undefined;
1210
2051
  } | undefined;
1211
2052
  } | undefined;
1212
2053
  topMaterialPreset?: string | undefined;
@@ -1225,6 +2066,11 @@ export declare function getNodesWithLiveStairOpeningInputs(nodes: Record<string,
1225
2066
  url: string;
1226
2067
  repeat?: [number, number] | undefined;
1227
2068
  scale?: number | undefined;
2069
+ offset?: [number, number] | undefined;
2070
+ normalMap?: string | undefined;
2071
+ normalScale?: number | undefined;
2072
+ bumpMap?: string | undefined;
2073
+ bumpScale?: number | undefined;
1228
2074
  } | undefined;
1229
2075
  } | undefined;
1230
2076
  edgeMaterialPreset?: string | undefined;
@@ -1243,6 +2089,11 @@ export declare function getNodesWithLiveStairOpeningInputs(nodes: Record<string,
1243
2089
  url: string;
1244
2090
  repeat?: [number, number] | undefined;
1245
2091
  scale?: number | undefined;
2092
+ offset?: [number, number] | undefined;
2093
+ normalMap?: string | undefined;
2094
+ normalScale?: number | undefined;
2095
+ bumpMap?: string | undefined;
2096
+ bumpScale?: number | undefined;
1246
2097
  } | undefined;
1247
2098
  } | undefined;
1248
2099
  wallMaterialPreset?: string | undefined;
@@ -1312,6 +2163,39 @@ export declare function getNodesWithLiveStairOpeningInputs(nodes: Record<string,
1312
2163
  overhang: number;
1313
2164
  gableOverhang?: number | undefined;
1314
2165
  shingleThickness: number;
2166
+ buildUp?: {
2167
+ presetId?: string | undefined;
2168
+ roofing: {
2169
+ kind: "architectural-shingle" | "asphalt-3-tab" | "clay-tile" | "concrete-tile" | "slate" | "standing-seam-metal" | "wood-shake";
2170
+ thickness: number;
2171
+ name?: string | undefined;
2172
+ };
2173
+ underlayment?: {
2174
+ kind: "felt-15" | "felt-30" | "ice-and-water" | "synthetic";
2175
+ thickness: number;
2176
+ name?: string | undefined;
2177
+ } | undefined;
2178
+ sheathing: {
2179
+ kind: "osb" | "plywood";
2180
+ thickness: number;
2181
+ name?: string | undefined;
2182
+ };
2183
+ structure: {
2184
+ system: "rafters" | "trusses";
2185
+ size: "2x10" | "2x12" | "2x4" | "2x6" | "2x8";
2186
+ spacing: number;
2187
+ };
2188
+ insulation?: {
2189
+ kind: "batt" | "blown" | "rigid";
2190
+ thickness: number;
2191
+ name?: string | undefined;
2192
+ } | undefined;
2193
+ finish?: {
2194
+ kind: "drywall" | "plaster" | "wood-plank";
2195
+ thickness: number;
2196
+ name?: string | undefined;
2197
+ } | undefined;
2198
+ } | undefined;
1315
2199
  arc?: {
1316
2200
  centerX: number;
1317
2201
  centerZ: number;
@@ -1333,6 +2217,7 @@ export declare function getNodesWithLiveStairOpeningInputs(nodes: Record<string,
1333
2217
  wallShell: "auto" | "include" | "omit";
1334
2218
  shedInsetEndPanels: boolean;
1335
2219
  fascia?: boolean | undefined;
2220
+ eaveCut?: "plumb" | "plumb-level" | "square" | undefined;
1336
2221
  fasciaHighEdge?: boolean | undefined;
1337
2222
  fasciaHeight?: number | undefined;
1338
2223
  fasciaDepth?: number | undefined;
@@ -1351,9 +2236,83 @@ export declare function getNodesWithLiveStairOpeningInputs(nodes: Record<string,
1351
2236
  url: string;
1352
2237
  repeat?: [number, number] | undefined;
1353
2238
  scale?: number | undefined;
2239
+ offset?: [number, number] | undefined;
2240
+ normalMap?: string | undefined;
2241
+ normalScale?: number | undefined;
2242
+ bumpMap?: string | undefined;
2243
+ bumpScale?: number | undefined;
1354
2244
  } | undefined;
1355
2245
  } | undefined;
1356
2246
  fasciaMaterialPreset?: string | undefined;
2247
+ heelMaterial?: {
2248
+ id?: string | undefined;
2249
+ preset?: "brick" | "concrete" | "custom" | "glass" | "marble" | "metal" | "plaster" | "tile" | "white" | "wood" | undefined;
2250
+ properties?: {
2251
+ color: string;
2252
+ roughness: number;
2253
+ metalness: number;
2254
+ opacity: number;
2255
+ transparent: boolean;
2256
+ side: "back" | "double" | "front";
2257
+ } | undefined;
2258
+ texture?: {
2259
+ url: string;
2260
+ repeat?: [number, number] | undefined;
2261
+ scale?: number | undefined;
2262
+ offset?: [number, number] | undefined;
2263
+ normalMap?: string | undefined;
2264
+ normalScale?: number | undefined;
2265
+ bumpMap?: string | undefined;
2266
+ bumpScale?: number | undefined;
2267
+ } | undefined;
2268
+ } | undefined;
2269
+ heelMaterialPreset?: string | undefined;
2270
+ gableLeftMaterial?: {
2271
+ id?: string | undefined;
2272
+ preset?: "brick" | "concrete" | "custom" | "glass" | "marble" | "metal" | "plaster" | "tile" | "white" | "wood" | undefined;
2273
+ properties?: {
2274
+ color: string;
2275
+ roughness: number;
2276
+ metalness: number;
2277
+ opacity: number;
2278
+ transparent: boolean;
2279
+ side: "back" | "double" | "front";
2280
+ } | undefined;
2281
+ texture?: {
2282
+ url: string;
2283
+ repeat?: [number, number] | undefined;
2284
+ scale?: number | undefined;
2285
+ offset?: [number, number] | undefined;
2286
+ normalMap?: string | undefined;
2287
+ normalScale?: number | undefined;
2288
+ bumpMap?: string | undefined;
2289
+ bumpScale?: number | undefined;
2290
+ } | undefined;
2291
+ } | undefined;
2292
+ gableLeftMaterialPreset?: string | undefined;
2293
+ gableRightMaterial?: {
2294
+ id?: string | undefined;
2295
+ preset?: "brick" | "concrete" | "custom" | "glass" | "marble" | "metal" | "plaster" | "tile" | "white" | "wood" | undefined;
2296
+ properties?: {
2297
+ color: string;
2298
+ roughness: number;
2299
+ metalness: number;
2300
+ opacity: number;
2301
+ transparent: boolean;
2302
+ side: "back" | "double" | "front";
2303
+ } | undefined;
2304
+ texture?: {
2305
+ url: string;
2306
+ repeat?: [number, number] | undefined;
2307
+ scale?: number | undefined;
2308
+ offset?: [number, number] | undefined;
2309
+ normalMap?: string | undefined;
2310
+ normalScale?: number | undefined;
2311
+ bumpMap?: string | undefined;
2312
+ bumpScale?: number | undefined;
2313
+ } | undefined;
2314
+ } | undefined;
2315
+ gableRightMaterialPreset?: string | undefined;
1357
2316
  gambrelLowerWidthRatio: number;
1358
2317
  gambrelLowerHeightRatio: number;
1359
2318
  mansardSteepWidthRatio: number;
@@ -1405,6 +2364,11 @@ export declare function getNodesWithLiveStairOpeningInputs(nodes: Record<string,
1405
2364
  url: string;
1406
2365
  repeat?: [number, number] | undefined;
1407
2366
  scale?: number | undefined;
2367
+ offset?: [number, number] | undefined;
2368
+ normalMap?: string | undefined;
2369
+ normalScale?: number | undefined;
2370
+ bumpMap?: string | undefined;
2371
+ bumpScale?: number | undefined;
1408
2372
  } | undefined;
1409
2373
  } | undefined;
1410
2374
  materialPreset?: string | undefined;
@@ -1423,6 +2387,11 @@ export declare function getNodesWithLiveStairOpeningInputs(nodes: Record<string,
1423
2387
  url: string;
1424
2388
  repeat?: [number, number] | undefined;
1425
2389
  scale?: number | undefined;
2390
+ offset?: [number, number] | undefined;
2391
+ normalMap?: string | undefined;
2392
+ normalScale?: number | undefined;
2393
+ bumpMap?: string | undefined;
2394
+ bumpScale?: number | undefined;
1426
2395
  } | undefined;
1427
2396
  } | undefined;
1428
2397
  topMaterialPreset?: string | undefined;
@@ -1441,6 +2410,11 @@ export declare function getNodesWithLiveStairOpeningInputs(nodes: Record<string,
1441
2410
  url: string;
1442
2411
  repeat?: [number, number] | undefined;
1443
2412
  scale?: number | undefined;
2413
+ offset?: [number, number] | undefined;
2414
+ normalMap?: string | undefined;
2415
+ normalScale?: number | undefined;
2416
+ bumpMap?: string | undefined;
2417
+ bumpScale?: number | undefined;
1444
2418
  } | undefined;
1445
2419
  } | undefined;
1446
2420
  edgeMaterialPreset?: string | undefined;
@@ -1459,9 +2433,37 @@ export declare function getNodesWithLiveStairOpeningInputs(nodes: Record<string,
1459
2433
  url: string;
1460
2434
  repeat?: [number, number] | undefined;
1461
2435
  scale?: number | undefined;
2436
+ offset?: [number, number] | undefined;
2437
+ normalMap?: string | undefined;
2438
+ normalScale?: number | undefined;
2439
+ bumpMap?: string | undefined;
2440
+ bumpScale?: number | undefined;
1462
2441
  } | undefined;
1463
2442
  } | undefined;
1464
2443
  wallMaterialPreset?: string | undefined;
2444
+ heelMaterial?: {
2445
+ id?: string | undefined;
2446
+ preset?: "brick" | "concrete" | "custom" | "glass" | "marble" | "metal" | "plaster" | "tile" | "white" | "wood" | undefined;
2447
+ properties?: {
2448
+ color: string;
2449
+ roughness: number;
2450
+ metalness: number;
2451
+ opacity: number;
2452
+ transparent: boolean;
2453
+ side: "back" | "double" | "front";
2454
+ } | undefined;
2455
+ texture?: {
2456
+ url: string;
2457
+ repeat?: [number, number] | undefined;
2458
+ scale?: number | undefined;
2459
+ offset?: [number, number] | undefined;
2460
+ normalMap?: string | undefined;
2461
+ normalScale?: number | undefined;
2462
+ bumpMap?: string | undefined;
2463
+ bumpScale?: number | undefined;
2464
+ } | undefined;
2465
+ } | undefined;
2466
+ heelMaterialPreset?: string | undefined;
1465
2467
  position: [number, number, number];
1466
2468
  rotation: number;
1467
2469
  support: {
@@ -1480,6 +2482,7 @@ export declare function getNodesWithLiveStairOpeningInputs(nodes: Record<string,
1480
2482
  role: "air" | "covering" | "deck" | "fill" | "finish" | "furring" | "glazing" | "insulation" | "lining" | "membrane" | "sheathing" | "shell" | "structure" | "substrate" | "underlay";
1481
2483
  thickness: number;
1482
2484
  core?: true | undefined;
2485
+ spacing?: number | undefined;
1483
2486
  material?: string | undefined;
1484
2487
  slot?: string | undefined;
1485
2488
  returns?: boolean | undefined;
@@ -1494,6 +2497,7 @@ export declare function getNodesWithLiveStairOpeningInputs(nodes: Record<string,
1494
2497
  role: "air" | "covering" | "deck" | "fill" | "finish" | "furring" | "glazing" | "insulation" | "lining" | "membrane" | "sheathing" | "shell" | "structure" | "substrate" | "underlay";
1495
2498
  thickness: number;
1496
2499
  core?: true | undefined;
2500
+ spacing?: number | undefined;
1497
2501
  material?: string | undefined;
1498
2502
  slot?: string | undefined;
1499
2503
  returns?: boolean | undefined;
@@ -1505,101 +2509,11 @@ export declare function getNodesWithLiveStairOpeningInputs(nodes: Record<string,
1505
2509
  }[] | undefined;
1506
2510
  face?: "exterior" | "front" | undefined;
1507
2511
  presetId?: string | undefined;
1508
- cavityInsulation?: string | undefined;
1509
- } | undefined;
1510
- slots?: Record<string, string> | undefined;
1511
- children: `rseg_${string}`[];
1512
- type: "roof";
1513
- } | {
1514
- object: "node";
1515
- name?: string | undefined;
1516
- parentId: string | null;
1517
- visible: boolean;
1518
- camera?: {
1519
- position: [number, number, number];
1520
- target: [number, number, number];
1521
- mode: "orthographic" | "perspective";
1522
- fov?: number | undefined;
1523
- zoom?: number | undefined;
1524
- } | undefined;
1525
- metadata: Record<string, unknown>;
1526
- provenance?: {
1527
- refs: {
1528
- ns?: string | undefined;
1529
- id: string;
1530
- role?: "absorbed" | "alias" | "derived" | "piece" | "primary" | undefined;
1531
- }[];
1532
- lineage?: {
1533
- op: "attach" | "convert" | "duplicate" | "import" | "make-independent" | "merge" | "promote" | "split";
1534
- fromIds: string[];
1535
- } | undefined;
1536
- } | undefined;
1537
- id: `slab_${string}`;
1538
- material?: {
1539
- id?: string | undefined;
1540
- preset?: "brick" | "concrete" | "custom" | "glass" | "marble" | "metal" | "plaster" | "tile" | "white" | "wood" | undefined;
1541
- properties?: {
1542
- color: string;
1543
- roughness: number;
1544
- metalness: number;
1545
- opacity: number;
1546
- transparent: boolean;
1547
- side: "back" | "double" | "front";
1548
- } | undefined;
1549
- texture?: {
1550
- url: string;
1551
- repeat?: [number, number] | undefined;
1552
- scale?: number | undefined;
1553
- } | undefined;
1554
- } | undefined;
1555
- materialPreset?: string | undefined;
1556
- slots?: Record<string, string> | undefined;
1557
- polygon: [number, number][];
1558
- holes: [number, number][][];
1559
- holeMetadata: {
1560
- source: "elevator" | "floor-opening" | "manual" | "room" | "stair";
1561
- openingId?: string | undefined;
1562
- stairId?: string | undefined;
1563
- elevatorId?: string | undefined;
1564
- }[];
1565
- elevation: number;
1566
- floorHeight?: number | undefined;
1567
- referenceFloorElevation?: number | undefined;
1568
- foundation?: {
1569
- type: "none" | "solid";
1570
- material?: string | {
1571
- id?: string | undefined;
1572
- preset?: "brick" | "concrete" | "custom" | "glass" | "marble" | "metal" | "plaster" | "tile" | "white" | "wood" | undefined;
1573
- properties?: {
1574
- color: string;
1575
- roughness: number;
1576
- metalness: number;
1577
- opacity: number;
1578
- transparent: boolean;
1579
- side: "back" | "double" | "front";
1580
- } | undefined;
1581
- texture?: {
1582
- url: string;
1583
- repeat?: [number, number] | undefined;
1584
- scale?: number | undefined;
1585
- } | undefined;
1586
- } | undefined;
1587
- } | undefined;
1588
- thickness: number;
1589
- recessed: boolean;
1590
- recessedRimElevation?: number | undefined;
1591
- fillToTerrain?: boolean | undefined;
1592
- boundary?: "auto" | undefined;
1593
- support?: "open" | undefined;
1594
- plateRole?: "base" | "platform" | "sunken" | undefined;
1595
- railing?: {
1596
- start: [number, number];
1597
- end: [number, number];
1598
- }[] | undefined;
1599
- zoneIds?: string[] | undefined;
1600
- associatedZoneIds?: string[] | undefined;
1601
- autoFromWalls: boolean;
1602
- type: "slab";
2512
+ cavityInsulation?: string | undefined;
2513
+ } | undefined;
2514
+ slots?: Record<string, string> | undefined;
2515
+ children: `rseg_${string}`[];
2516
+ type: "roof";
1603
2517
  } | {
1604
2518
  object: "node";
1605
2519
  name?: string | undefined;
@@ -1725,7 +2639,7 @@ export declare function getNodesWithLiveStairOpeningInputs(nodes: Record<string,
1725
2639
  } | undefined;
1726
2640
  } | undefined;
1727
2641
  id: `wall_${string}`;
1728
- wallType?: "curtain" | "standard" | undefined;
2642
+ wallType?: "curtain" | "railing" | "standard" | undefined;
1729
2643
  curtainWall?: {
1730
2644
  construction: "stick" | "unitized";
1731
2645
  framing: "capped" | "horizontal-caps" | "structural-glazing" | "vertical-caps";
@@ -1759,6 +2673,15 @@ export declare function getNodesWithLiveStairOpeningInputs(nodes: Record<string,
1759
2673
  type: "empty" | "glass" | "solid";
1760
2674
  }[];
1761
2675
  } | undefined;
2676
+ railing?: {
2677
+ style: "balusters" | "boards" | "cable" | "glass" | "metal" | "post-and-rail";
2678
+ postSpacing: number;
2679
+ postSize: number;
2680
+ infillSize: number;
2681
+ infillGap: number;
2682
+ bottomClearance: number;
2683
+ cap: boolean;
2684
+ } | undefined;
1762
2685
  children: (`door_${string}` | `item_${string}` | `leanto_${string}` | `procedural-item_${string}` | `window_${string}`)[];
1763
2686
  material?: {
1764
2687
  id?: string | undefined;
@@ -1775,6 +2698,11 @@ export declare function getNodesWithLiveStairOpeningInputs(nodes: Record<string,
1775
2698
  url: string;
1776
2699
  repeat?: [number, number] | undefined;
1777
2700
  scale?: number | undefined;
2701
+ offset?: [number, number] | undefined;
2702
+ normalMap?: string | undefined;
2703
+ normalScale?: number | undefined;
2704
+ bumpMap?: string | undefined;
2705
+ bumpScale?: number | undefined;
1778
2706
  } | undefined;
1779
2707
  } | undefined;
1780
2708
  materialPreset?: string | undefined;
@@ -1793,6 +2721,11 @@ export declare function getNodesWithLiveStairOpeningInputs(nodes: Record<string,
1793
2721
  url: string;
1794
2722
  repeat?: [number, number] | undefined;
1795
2723
  scale?: number | undefined;
2724
+ offset?: [number, number] | undefined;
2725
+ normalMap?: string | undefined;
2726
+ normalScale?: number | undefined;
2727
+ bumpMap?: string | undefined;
2728
+ bumpScale?: number | undefined;
1796
2729
  } | undefined;
1797
2730
  } | undefined;
1798
2731
  interiorMaterialPreset?: string | undefined;
@@ -1811,6 +2744,11 @@ export declare function getNodesWithLiveStairOpeningInputs(nodes: Record<string,
1811
2744
  url: string;
1812
2745
  repeat?: [number, number] | undefined;
1813
2746
  scale?: number | undefined;
2747
+ offset?: [number, number] | undefined;
2748
+ normalMap?: string | undefined;
2749
+ normalScale?: number | undefined;
2750
+ bumpMap?: string | undefined;
2751
+ bumpScale?: number | undefined;
1814
2752
  } | undefined;
1815
2753
  } | undefined;
1816
2754
  exteriorMaterialPreset?: string | undefined;
@@ -1832,6 +2770,11 @@ export declare function getNodesWithLiveStairOpeningInputs(nodes: Record<string,
1832
2770
  url: string;
1833
2771
  repeat?: [number, number] | undefined;
1834
2772
  scale?: number | undefined;
2773
+ offset?: [number, number] | undefined;
2774
+ normalMap?: string | undefined;
2775
+ normalScale?: number | undefined;
2776
+ bumpMap?: string | undefined;
2777
+ bumpScale?: number | undefined;
1835
2778
  } | undefined;
1836
2779
  } | undefined;
1837
2780
  materialPreset?: string | undefined;
@@ -1852,6 +2795,11 @@ export declare function getNodesWithLiveStairOpeningInputs(nodes: Record<string,
1852
2795
  url: string;
1853
2796
  repeat?: [number, number] | undefined;
1854
2797
  scale?: number | undefined;
2798
+ offset?: [number, number] | undefined;
2799
+ normalMap?: string | undefined;
2800
+ normalScale?: number | undefined;
2801
+ bumpMap?: string | undefined;
2802
+ bumpScale?: number | undefined;
1855
2803
  } | undefined;
1856
2804
  } | undefined;
1857
2805
  materialPreset?: string | undefined;
@@ -1873,6 +2821,7 @@ export declare function getNodesWithLiveStairOpeningInputs(nodes: Record<string,
1873
2821
  role: "air" | "covering" | "deck" | "fill" | "finish" | "furring" | "glazing" | "insulation" | "lining" | "membrane" | "sheathing" | "shell" | "structure" | "substrate" | "underlay";
1874
2822
  thickness: number;
1875
2823
  core?: true | undefined;
2824
+ spacing?: number | undefined;
1876
2825
  material?: string | undefined;
1877
2826
  slot?: string | undefined;
1878
2827
  returns?: boolean | undefined;
@@ -1887,6 +2836,7 @@ export declare function getNodesWithLiveStairOpeningInputs(nodes: Record<string,
1887
2836
  role: "air" | "covering" | "deck" | "fill" | "finish" | "furring" | "glazing" | "insulation" | "lining" | "membrane" | "sheathing" | "shell" | "structure" | "substrate" | "underlay";
1888
2837
  thickness: number;
1889
2838
  core?: true | undefined;
2839
+ spacing?: number | undefined;
1890
2840
  material?: string | undefined;
1891
2841
  slot?: string | undefined;
1892
2842
  returns?: boolean | undefined;
@@ -1902,6 +2852,7 @@ export declare function getNodesWithLiveStairOpeningInputs(nodes: Record<string,
1902
2852
  } | undefined;
1903
2853
  justification?: "a" | "b" | undefined;
1904
2854
  height?: number | undefined;
2855
+ endHeightOffset?: number | undefined;
1905
2856
  curveOffset?: number | undefined;
1906
2857
  supportSlabId?: string | undefined;
1907
2858
  supportOffset?: number | undefined;
@@ -2004,6 +2955,16 @@ export declare function getNodesWithLiveStairOpeningInputs(nodes: Record<string,
2004
2955
  color: string;
2005
2956
  intensity: number;
2006
2957
  distance?: number | undefined;
2958
+ spot?: {
2959
+ direction: [number, number, number];
2960
+ angle: number;
2961
+ softness: number;
2962
+ } | undefined;
2963
+ shadows?: boolean | undefined;
2964
+ glow?: {
2965
+ size: number;
2966
+ strength: number;
2967
+ } | undefined;
2007
2968
  }[];
2008
2969
  undersides: {
2009
2970
  part?: string | undefined;
@@ -2022,6 +2983,17 @@ export declare function getNodesWithLiveStairOpeningInputs(nodes: Record<string,
2022
2983
  }[] | undefined;
2023
2984
  cutout: boolean;
2024
2985
  collider: boolean;
2986
+ shape?: {
2987
+ tolerance: number;
2988
+ bands: {
2989
+ y0: number;
2990
+ y1: number;
2991
+ polygons: {
2992
+ outer: [number, number][];
2993
+ holes?: [number, number][][] | undefined;
2994
+ }[];
2995
+ }[];
2996
+ } | undefined;
2025
2997
  triangles: number;
2026
2998
  coverage?: number | undefined;
2027
2999
  uncovered?: {
@@ -2099,6 +3071,16 @@ export declare function getNodesWithLiveStairOpeningInputs(nodes: Record<string,
2099
3071
  color: string;
2100
3072
  intensity: number;
2101
3073
  distance?: number | undefined;
3074
+ spot?: {
3075
+ direction: [number, number, number];
3076
+ angle: number;
3077
+ softness: number;
3078
+ } | undefined;
3079
+ shadows?: boolean | undefined;
3080
+ glow?: {
3081
+ size: number;
3082
+ strength: number;
3083
+ } | undefined;
2102
3084
  }[];
2103
3085
  undersides: {
2104
3086
  part?: string | undefined;
@@ -2117,6 +3099,17 @@ export declare function getNodesWithLiveStairOpeningInputs(nodes: Record<string,
2117
3099
  }[] | undefined;
2118
3100
  cutout: boolean;
2119
3101
  collider: boolean;
3102
+ shape?: {
3103
+ tolerance: number;
3104
+ bands: {
3105
+ y0: number;
3106
+ y1: number;
3107
+ polygons: {
3108
+ outer: [number, number][];
3109
+ holes?: [number, number][][] | undefined;
3110
+ }[];
3111
+ }[];
3112
+ } | undefined;
2120
3113
  triangles: number;
2121
3114
  coverage?: number | undefined;
2122
3115
  uncovered?: {
@@ -2166,42 +3159,6 @@ export declare function getNodesWithLiveStairOpeningInputs(nodes: Record<string,
2166
3159
  start: [number, number];
2167
3160
  end: [number, number];
2168
3161
  type: "separator";
2169
- } | {
2170
- object: "node";
2171
- name?: string | undefined;
2172
- parentId: string | null;
2173
- visible: boolean;
2174
- camera?: {
2175
- position: [number, number, number];
2176
- target: [number, number, number];
2177
- mode: "orthographic" | "perspective";
2178
- fov?: number | undefined;
2179
- zoom?: number | undefined;
2180
- } | undefined;
2181
- metadata: Record<string, unknown>;
2182
- provenance?: {
2183
- refs: {
2184
- ns?: string | undefined;
2185
- id: string;
2186
- role?: "absorbed" | "alias" | "derived" | "piece" | "primary" | undefined;
2187
- }[];
2188
- lineage?: {
2189
- op: "attach" | "convert" | "duplicate" | "import" | "make-independent" | "merge" | "promote" | "split";
2190
- fromIds: string[];
2191
- } | undefined;
2192
- } | undefined;
2193
- id: `floor-opening_${string}`;
2194
- polygon: [number, number][];
2195
- hostZoneId?: string | undefined;
2196
- legacyPlateCuts?: Record<string, [number, number][][]> | undefined;
2197
- legacyCeilingCuts?: Record<string, [number, number][][]> | undefined;
2198
- source: string;
2199
- ownerId?: string | undefined;
2200
- surfaceId?: string | undefined;
2201
- drawnOn: "ceiling" | "floor";
2202
- cutsPrimary: boolean;
2203
- cutsAdjacent: boolean;
2204
- type: "floor-opening";
2205
3162
  } | {
2206
3163
  object: "node";
2207
3164
  name?: string | undefined;
@@ -2243,6 +3200,11 @@ export declare function getNodesWithLiveStairOpeningInputs(nodes: Record<string,
2243
3200
  url: string;
2244
3201
  repeat?: [number, number] | undefined;
2245
3202
  scale?: number | undefined;
3203
+ offset?: [number, number] | undefined;
3204
+ normalMap?: string | undefined;
3205
+ normalScale?: number | undefined;
3206
+ bumpMap?: string | undefined;
3207
+ bumpScale?: number | undefined;
2246
3208
  } | undefined;
2247
3209
  } | undefined;
2248
3210
  materialPreset?: string | undefined;
@@ -2315,29 +3277,42 @@ export declare function getNodesWithLiveStairOpeningInputs(nodes: Record<string,
2315
3277
  fromIds: string[];
2316
3278
  } | undefined;
2317
3279
  } | undefined;
2318
- id: `block_${string}`;
2319
- children: string[];
2320
- position: [number, number, number];
2321
- rotation: number;
2322
- supportSlabId?: string | undefined;
2323
- topology: {
2324
- vertices: {
2325
- id: string;
2326
- position: [number, number, number];
2327
- }[];
2328
- edges: {
2329
- id: string;
2330
- vertexIds: [string, string];
2331
- }[];
2332
- faces: {
2333
- id: string;
2334
- vertexIds: string[];
2335
- materialSlot: string;
2336
- }[];
3280
+ id: `construction-dimension_${string}`;
3281
+ anchors: ({
3282
+ kind: "feature";
3283
+ reference: {
3284
+ nodeId: string;
3285
+ featureId: string;
3286
+ parameters?: Record<string, string | number | boolean> | undefined;
3287
+ };
3288
+ fallback: [number, number, number];
3289
+ } | [number, number, number])[];
3290
+ baseline: {
3291
+ origin: [number, number];
3292
+ direction: [number, number];
2337
3293
  };
2338
- slots: Record<string, string>;
2339
- slotNames: Record<string, string>;
2340
- type: "block";
3294
+ chainMode: "continuous" | "point-to-point";
3295
+ mode: "angular" | "arc-length" | "center-mark" | "chord" | "coordinate" | "diameter" | "linear" | "radius";
3296
+ featureCount: number;
3297
+ showCenterMark: boolean;
3298
+ prefix: string;
3299
+ suffix: string;
3300
+ textOverride: string | null;
3301
+ datumPolicy: "centerline" | "finish-face" | "structural-face" | "wall-face";
3302
+ terminator: "architectural-tick" | "dot" | "filled-arrow" | "open-arrow";
3303
+ textPosition: "above" | "centered";
3304
+ imperialPrecision: "1" | "1/16" | "1/2" | "1/4" | "1/8";
3305
+ metricNotation: "meters" | "millimeters";
3306
+ extensionStartGap: number;
3307
+ extensionOvershoot: number;
3308
+ drawingType: "floor-plan" | "foundation-plan" | "reflected-ceiling-plan" | "roof-plan" | "site-plan";
3309
+ drawingOverrides: {
3310
+ drawingType: "floor-plan" | "foundation-plan" | "reflected-ceiling-plan" | "roof-plan" | "site-plan";
3311
+ presentation: "controlled" | "omit" | "shown";
3312
+ suppressedSegmentIndexes: number[];
3313
+ }[];
3314
+ controllingDimensionId: `construction-dimension_${string}` | null;
3315
+ type: "construction-dimension";
2341
3316
  } | {
2342
3317
  object: "node";
2343
3318
  name?: string | undefined;
@@ -2362,13 +3337,29 @@ export declare function getNodesWithLiveStairOpeningInputs(nodes: Record<string,
2362
3337
  fromIds: string[];
2363
3338
  } | undefined;
2364
3339
  } | undefined;
2365
- id: `structural-grid_${string}`;
2366
- start: [number, number];
2367
- end: [number, number];
2368
- label: string;
2369
- showStartBubble: boolean;
2370
- showEndBubble: boolean;
2371
- type: "structural-grid";
3340
+ id: `block_${string}`;
3341
+ children: string[];
3342
+ position: [number, number, number];
3343
+ rotation: number;
3344
+ supportSlabId?: string | undefined;
3345
+ topology: {
3346
+ vertices: {
3347
+ id: string;
3348
+ position: [number, number, number];
3349
+ }[];
3350
+ edges: {
3351
+ id: string;
3352
+ vertexIds: [string, string];
3353
+ }[];
3354
+ faces: {
3355
+ id: string;
3356
+ vertexIds: string[];
3357
+ materialSlot: string;
3358
+ }[];
3359
+ };
3360
+ slots: Record<string, string>;
3361
+ slotNames: Record<string, string>;
3362
+ type: "block";
2372
3363
  } | {
2373
3364
  object: "node";
2374
3365
  name?: string | undefined;
@@ -2714,6 +3705,16 @@ export declare function getNodesWithLiveStairOpeningInputs(nodes: Record<string,
2714
3705
  color: string;
2715
3706
  intensity: number;
2716
3707
  distance?: number | undefined;
3708
+ spot?: {
3709
+ direction: [number, number, number];
3710
+ angle: number;
3711
+ softness: number;
3712
+ } | undefined;
3713
+ shadows?: boolean | undefined;
3714
+ glow?: {
3715
+ size: number;
3716
+ strength: number;
3717
+ } | undefined;
2717
3718
  }[];
2718
3719
  undersides: {
2719
3720
  part?: string | undefined;
@@ -2732,6 +3733,17 @@ export declare function getNodesWithLiveStairOpeningInputs(nodes: Record<string,
2732
3733
  }[] | undefined;
2733
3734
  cutout: boolean;
2734
3735
  collider: boolean;
3736
+ shape?: {
3737
+ tolerance: number;
3738
+ bands: {
3739
+ y0: number;
3740
+ y1: number;
3741
+ polygons: {
3742
+ outer: [number, number][];
3743
+ holes?: [number, number][][] | undefined;
3744
+ }[];
3745
+ }[];
3746
+ } | undefined;
2735
3747
  triangles: number;
2736
3748
  coverage?: number | undefined;
2737
3749
  uncovered?: {
@@ -2746,6 +3758,19 @@ export declare function getNodesWithLiveStairOpeningInputs(nodes: Record<string,
2746
3758
  } | undefined;
2747
3759
  inputs: string;
2748
3760
  } | undefined;
3761
+ drop?: number | undefined;
3762
+ } | undefined;
3763
+ roomType?: "deck" | "patio" | "porch" | undefined;
3764
+ porchFraming?: {
3765
+ auto?: boolean | undefined;
3766
+ postSize?: string | undefined;
3767
+ postSpacing?: number | undefined;
3768
+ beamSize?: string | undefined;
3769
+ } | undefined;
3770
+ decking?: {
3771
+ boardSize?: "2x4" | "2x6" | "5/4x6" | "composite" | undefined;
3772
+ gap?: number | undefined;
3773
+ direction?: "diagonal" | "parallel" | "perpendicular" | undefined;
2749
3774
  } | undefined;
2750
3775
  ceiling?: {
2751
3776
  regions?: {
@@ -2781,6 +3806,98 @@ export declare function getNodesWithLiveStairOpeningInputs(nodes: Record<string,
2781
3806
  color: string;
2782
3807
  metadata: Record<string, unknown>;
2783
3808
  type: "zone";
3809
+ } | {
3810
+ object: "node";
3811
+ name?: string | undefined;
3812
+ parentId: string | null;
3813
+ visible: boolean;
3814
+ camera?: {
3815
+ position: [number, number, number];
3816
+ target: [number, number, number];
3817
+ mode: "orthographic" | "perspective";
3818
+ fov?: number | undefined;
3819
+ zoom?: number | undefined;
3820
+ } | undefined;
3821
+ metadata: Record<string, unknown>;
3822
+ provenance?: {
3823
+ refs: {
3824
+ ns?: string | undefined;
3825
+ id: string;
3826
+ role?: "absorbed" | "alias" | "derived" | "piece" | "primary" | undefined;
3827
+ }[];
3828
+ lineage?: {
3829
+ op: "attach" | "convert" | "duplicate" | "import" | "make-independent" | "merge" | "promote" | "split";
3830
+ fromIds: string[];
3831
+ } | undefined;
3832
+ } | undefined;
3833
+ id: `ceiling_${string}`;
3834
+ children: (`item_${string}` | `procedural-item_${string}`)[];
3835
+ material?: {
3836
+ id?: string | undefined;
3837
+ preset?: "brick" | "concrete" | "custom" | "glass" | "marble" | "metal" | "plaster" | "tile" | "white" | "wood" | undefined;
3838
+ properties?: {
3839
+ color: string;
3840
+ roughness: number;
3841
+ metalness: number;
3842
+ opacity: number;
3843
+ transparent: boolean;
3844
+ side: "back" | "double" | "front";
3845
+ } | undefined;
3846
+ texture?: {
3847
+ url: string;
3848
+ repeat?: [number, number] | undefined;
3849
+ scale?: number | undefined;
3850
+ offset?: [number, number] | undefined;
3851
+ normalMap?: string | undefined;
3852
+ normalScale?: number | undefined;
3853
+ bumpMap?: string | undefined;
3854
+ bumpScale?: number | undefined;
3855
+ } | undefined;
3856
+ } | undefined;
3857
+ materialPreset?: string | undefined;
3858
+ slots?: Record<string, string> | undefined;
3859
+ polygon: [number, number][];
3860
+ holes: [number, number][][];
3861
+ holeMetadata: {
3862
+ source: "elevator" | "floor-opening" | "manual" | "room" | "stair";
3863
+ openingId?: string | undefined;
3864
+ stairId?: string | undefined;
3865
+ elevatorId?: string | undefined;
3866
+ }[];
3867
+ openingIds?: string[] | undefined;
3868
+ height?: number | undefined;
3869
+ buildUp?: {
3870
+ presetId?: string | undefined;
3871
+ finish?: {
3872
+ kind: "drywall" | "plaster" | "wood-plank";
3873
+ thickness: number;
3874
+ name?: string | undefined;
3875
+ } | undefined;
3876
+ framing?: {
3877
+ system: "joists" | "truss-chords";
3878
+ size: "2x10" | "2x12" | "2x4" | "2x6" | "2x8";
3879
+ spacing: number;
3880
+ } | undefined;
3881
+ decking?: {
3882
+ kind: "osb" | "plywood";
3883
+ thickness: number;
3884
+ name?: string | undefined;
3885
+ } | undefined;
3886
+ insulation?: {
3887
+ kind: "batt" | "blown" | "rigid";
3888
+ thickness: number;
3889
+ name?: string | undefined;
3890
+ } | undefined;
3891
+ } | undefined;
3892
+ regions?: {
3893
+ id: string;
3894
+ polygon: [number, number][];
3895
+ finish: string | Record<string, unknown>;
3896
+ }[] | undefined;
3897
+ boundary?: "auto" | undefined;
3898
+ zoneId?: string | undefined;
3899
+ autoFromWalls: boolean;
3900
+ type: "ceiling";
2784
3901
  } | {
2785
3902
  object: "node";
2786
3903
  name?: string | undefined;
@@ -2821,6 +3938,11 @@ export declare function getNodesWithLiveStairOpeningInputs(nodes: Record<string,
2821
3938
  url: string;
2822
3939
  repeat?: [number, number] | undefined;
2823
3940
  scale?: number | undefined;
3941
+ offset?: [number, number] | undefined;
3942
+ normalMap?: string | undefined;
3943
+ normalScale?: number | undefined;
3944
+ bumpMap?: string | undefined;
3945
+ bumpScale?: number | undefined;
2824
3946
  } | undefined;
2825
3947
  } | undefined;
2826
3948
  materialPreset?: string | undefined;
@@ -2893,6 +4015,11 @@ export declare function getNodesWithLiveStairOpeningInputs(nodes: Record<string,
2893
4015
  url: string;
2894
4016
  repeat?: [number, number] | undefined;
2895
4017
  scale?: number | undefined;
4018
+ offset?: [number, number] | undefined;
4019
+ normalMap?: string | undefined;
4020
+ normalScale?: number | undefined;
4021
+ bumpMap?: string | undefined;
4022
+ bumpScale?: number | undefined;
2896
4023
  } | undefined;
2897
4024
  } | undefined;
2898
4025
  materialPreset?: string | undefined;
@@ -2911,6 +4038,11 @@ export declare function getNodesWithLiveStairOpeningInputs(nodes: Record<string,
2911
4038
  url: string;
2912
4039
  repeat?: [number, number] | undefined;
2913
4040
  scale?: number | undefined;
4041
+ offset?: [number, number] | undefined;
4042
+ normalMap?: string | undefined;
4043
+ normalScale?: number | undefined;
4044
+ bumpMap?: string | undefined;
4045
+ bumpScale?: number | undefined;
2914
4046
  } | undefined;
2915
4047
  } | undefined;
2916
4048
  railingMaterialPreset?: string | undefined;
@@ -2929,6 +4061,11 @@ export declare function getNodesWithLiveStairOpeningInputs(nodes: Record<string,
2929
4061
  url: string;
2930
4062
  repeat?: [number, number] | undefined;
2931
4063
  scale?: number | undefined;
4064
+ offset?: [number, number] | undefined;
4065
+ normalMap?: string | undefined;
4066
+ normalScale?: number | undefined;
4067
+ bumpMap?: string | undefined;
4068
+ bumpScale?: number | undefined;
2932
4069
  } | undefined;
2933
4070
  } | undefined;
2934
4071
  treadMaterialPreset?: string | undefined;
@@ -2947,6 +4084,11 @@ export declare function getNodesWithLiveStairOpeningInputs(nodes: Record<string,
2947
4084
  url: string;
2948
4085
  repeat?: [number, number] | undefined;
2949
4086
  scale?: number | undefined;
4087
+ offset?: [number, number] | undefined;
4088
+ normalMap?: string | undefined;
4089
+ normalScale?: number | undefined;
4090
+ bumpMap?: string | undefined;
4091
+ bumpScale?: number | undefined;
2950
4092
  } | undefined;
2951
4093
  } | undefined;
2952
4094
  sideMaterialPreset?: string | undefined;
@@ -2985,6 +4127,17 @@ export declare function getNodesWithLiveStairOpeningInputs(nodes: Record<string,
2985
4127
  stringerWidth: number;
2986
4128
  stringerDepth: number;
2987
4129
  } | undefined;
4130
+ structure?: {
4131
+ type: "concrete" | "steel-stringers" | "wood-stringers";
4132
+ stringerStock: "2x10" | "2x12";
4133
+ stringerType: "cut" | "housed";
4134
+ stringerSpacing: number;
4135
+ stringerCount?: number | undefined;
4136
+ treadStock?: "2x12" | "2x6-pair" | "5/4x6-pair" | "plywood-finish" | undefined;
4137
+ closedRisers?: boolean | undefined;
4138
+ treated?: boolean | undefined;
4139
+ nosing?: number | undefined;
4140
+ } | undefined;
2988
4141
  innerRadius: number;
2989
4142
  sweepAngle: number;
2990
4143
  topLandingMode: "integrated" | "none";
@@ -2998,62 +4151,24 @@ export declare function getNodesWithLiveStairOpeningInputs(nodes: Record<string,
2998
4151
  handrail?: {
2999
4152
  mode: "both" | "left" | "none" | "right";
3000
4153
  height: number;
3001
- diameter: number;
3002
- offset: number;
3003
- bottom?: {
3004
- extension: number;
3005
- return: "floor" | "none" | "post" | "wall";
3006
- returnLength: number;
3007
- } | undefined;
3008
- top?: {
3009
- extension: number;
3010
- return: "floor" | "none" | "post" | "wall";
3011
- returnLength: number;
3012
- } | undefined;
3013
- } | undefined;
3014
- railingTopPost?: boolean | undefined;
3015
- railingTopReach?: number | undefined;
3016
- railingPostThrough?: boolean | undefined;
3017
- children: `sseg_${string}`[];
3018
- type: "stair";
3019
- } | {
3020
- object: "node";
3021
- name?: string | undefined;
3022
- parentId: string | null;
3023
- visible: boolean;
3024
- camera?: {
3025
- position: [number, number, number];
3026
- target: [number, number, number];
3027
- mode: "orthographic" | "perspective";
3028
- fov?: number | undefined;
3029
- zoom?: number | undefined;
3030
- } | undefined;
3031
- metadata: Record<string, unknown>;
3032
- provenance?: {
3033
- refs: {
3034
- ns?: string | undefined;
3035
- id: string;
3036
- role?: "absorbed" | "alias" | "derived" | "piece" | "primary" | undefined;
3037
- }[];
3038
- lineage?: {
3039
- op: "attach" | "convert" | "duplicate" | "import" | "make-independent" | "merge" | "promote" | "split";
3040
- fromIds: string[];
4154
+ diameter: number;
4155
+ offset: number;
4156
+ bottom?: {
4157
+ extension: number;
4158
+ return: "floor" | "none" | "post" | "wall";
4159
+ returnLength: number;
4160
+ } | undefined;
4161
+ top?: {
4162
+ extension: number;
4163
+ return: "floor" | "none" | "post" | "wall";
4164
+ returnLength: number;
3041
4165
  } | undefined;
3042
4166
  } | undefined;
3043
- id: `scan_${string}`;
3044
- url: string | null;
3045
- captureSession: {
3046
- sessionId: string;
3047
- schemaVersion?: number | undefined;
3048
- revisionId?: string | undefined;
3049
- manifestUrl?: string | undefined;
3050
- } | null;
3051
- layers: Record<string, boolean>;
3052
- position: [number, number, number];
3053
- rotation: [number, number, number];
3054
- scale: number;
3055
- opacity: number;
3056
- type: "scan";
4167
+ railingTopPost?: boolean | undefined;
4168
+ railingTopReach?: number | undefined;
4169
+ railingPostThrough?: boolean | undefined;
4170
+ children: `sseg_${string}`[];
4171
+ type: "stair";
3057
4172
  } | {
3058
4173
  object: "node";
3059
4174
  name?: string | undefined;
@@ -3090,116 +4205,11 @@ export declare function getNodesWithLiveStairOpeningInputs(nodes: Record<string,
3090
4205
  realLengthMeters: number;
3091
4206
  measuredLengthUnits: number;
3092
4207
  metersPerUnit: number;
4208
+ displayLength?: number | undefined;
4209
+ displayUnit?: "centimeters" | "feet" | "inches" | "meters" | undefined;
3093
4210
  label: string;
3094
4211
  } | null;
3095
4212
  type: "guide";
3096
- } | {
3097
- object: "node";
3098
- name?: string | undefined;
3099
- parentId: string | null;
3100
- visible: boolean;
3101
- camera?: {
3102
- position: [number, number, number];
3103
- target: [number, number, number];
3104
- mode: "orthographic" | "perspective";
3105
- fov?: number | undefined;
3106
- zoom?: number | undefined;
3107
- } | undefined;
3108
- metadata: Record<string, unknown>;
3109
- provenance?: {
3110
- refs: {
3111
- ns?: string | undefined;
3112
- id: string;
3113
- role?: "absorbed" | "alias" | "derived" | "piece" | "primary" | undefined;
3114
- }[];
3115
- lineage?: {
3116
- op: "attach" | "convert" | "duplicate" | "import" | "make-independent" | "merge" | "promote" | "split";
3117
- fromIds: string[];
3118
- } | undefined;
3119
- } | undefined;
3120
- id: `measurement_${string}`;
3121
- measurement: {
3122
- kind: "distance";
3123
- points: [{
3124
- kind: "feature";
3125
- reference: {
3126
- nodeId: string;
3127
- featureId: string;
3128
- parameters?: Record<string, string | number | boolean> | undefined;
3129
- };
3130
- fallback: [number, number, number];
3131
- } | [number, number, number], {
3132
- kind: "feature";
3133
- reference: {
3134
- nodeId: string;
3135
- featureId: string;
3136
- parameters?: Record<string, string | number | boolean> | undefined;
3137
- };
3138
- fallback: [number, number, number];
3139
- } | [number, number, number]];
3140
- } | {
3141
- kind: "angle";
3142
- points: [{
3143
- kind: "feature";
3144
- reference: {
3145
- nodeId: string;
3146
- featureId: string;
3147
- parameters?: Record<string, string | number | boolean> | undefined;
3148
- };
3149
- fallback: [number, number, number];
3150
- } | [number, number, number], {
3151
- kind: "feature";
3152
- reference: {
3153
- nodeId: string;
3154
- featureId: string;
3155
- parameters?: Record<string, string | number | boolean> | undefined;
3156
- };
3157
- fallback: [number, number, number];
3158
- } | [number, number, number], {
3159
- kind: "feature";
3160
- reference: {
3161
- nodeId: string;
3162
- featureId: string;
3163
- parameters?: Record<string, string | number | boolean> | undefined;
3164
- };
3165
- fallback: [number, number, number];
3166
- } | [number, number, number]];
3167
- } | {
3168
- kind: "area";
3169
- base: ({
3170
- kind: "feature";
3171
- reference: {
3172
- nodeId: string;
3173
- featureId: string;
3174
- parameters?: Record<string, string | number | boolean> | undefined;
3175
- };
3176
- fallback: [number, number, number];
3177
- } | [number, number, number])[];
3178
- } | {
3179
- kind: "perimeter";
3180
- base: ({
3181
- kind: "feature";
3182
- reference: {
3183
- nodeId: string;
3184
- featureId: string;
3185
- parameters?: Record<string, string | number | boolean> | undefined;
3186
- };
3187
- fallback: [number, number, number];
3188
- } | [number, number, number])[];
3189
- } | {
3190
- kind: "volume";
3191
- base: ({
3192
- kind: "feature";
3193
- reference: {
3194
- nodeId: string;
3195
- featureId: string;
3196
- parameters?: Record<string, string | number | boolean> | undefined;
3197
- };
3198
- fallback: [number, number, number];
3199
- } | [number, number, number])[];
3200
- extrusion: [number, number, number];
3201
- };
3202
- type: "measurement";
3203
4213
  } | {
3204
4214
  object: "node";
3205
4215
  name?: string | undefined;
@@ -3284,65 +4294,16 @@ export declare function getNodesWithLiveStairOpeningInputs(nodes: Record<string,
3284
4294
  url: string;
3285
4295
  repeat?: [number, number] | undefined;
3286
4296
  scale?: number | undefined;
4297
+ offset?: [number, number] | undefined;
4298
+ normalMap?: string | undefined;
4299
+ normalScale?: number | undefined;
4300
+ bumpMap?: string | undefined;
4301
+ bumpScale?: number | undefined;
3287
4302
  } | undefined;
3288
4303
  } | undefined;
3289
4304
  materialPreset?: string | undefined;
3290
4305
  slots?: Record<string, string> | undefined;
3291
4306
  type: "shelf";
3292
- } | {
3293
- object: "node";
3294
- name?: string | undefined;
3295
- parentId: string | null;
3296
- visible: boolean;
3297
- camera?: {
3298
- position: [number, number, number];
3299
- target: [number, number, number];
3300
- mode: "orthographic" | "perspective";
3301
- fov?: number | undefined;
3302
- zoom?: number | undefined;
3303
- } | undefined;
3304
- metadata: Record<string, unknown>;
3305
- provenance?: {
3306
- refs: {
3307
- ns?: string | undefined;
3308
- id: string;
3309
- role?: "absorbed" | "alias" | "derived" | "piece" | "primary" | undefined;
3310
- }[];
3311
- lineage?: {
3312
- op: "attach" | "convert" | "duplicate" | "import" | "make-independent" | "merge" | "promote" | "split";
3313
- fromIds: string[];
3314
- } | undefined;
3315
- } | undefined;
3316
- id: `duct-segment_${string}`;
3317
- path: [number, number, number][];
3318
- autoHangers?: boolean | undefined;
3319
- hangerOverrides?: Record<string, {
3320
- fraction?: number | undefined;
3321
- skipped?: boolean | undefined;
3322
- hostId?: string | undefined;
3323
- }> | undefined;
3324
- hangerStyle?: "double" | "single" | undefined;
3325
- hangerSpacing?: number | undefined;
3326
- hangerMaxReach?: number | undefined;
3327
- wallAttachment?: {
3328
- wallId: `wall_${string}`;
3329
- side: "back" | "front";
3330
- startUV: [number, number];
3331
- endUV: [number, number];
3332
- offset: number;
3333
- } | undefined;
3334
- shape: "oval" | "rect" | "round";
3335
- diameter: number;
3336
- width: number;
3337
- height: number;
3338
- roll: number;
3339
- ductMaterial: "duct-board" | "flex" | "sheet-metal" | "spiral";
3340
- seamDetail: boolean;
3341
- insulated: boolean;
3342
- insulationR: number;
3343
- system: "return" | "supply";
3344
- slots?: Record<string, string> | undefined;
3345
- type: "duct-segment";
3346
4307
  } | {
3347
4308
  object: "node";
3348
4309
  name?: string | undefined;
@@ -3468,36 +4429,6 @@ export declare function getNodesWithLiveStairOpeningInputs(nodes: Record<string,
3468
4429
  returnWidth: number;
3469
4430
  returnHeight: number;
3470
4431
  type: "hvac-equipment";
3471
- } | {
3472
- object: "node";
3473
- name?: string | undefined;
3474
- parentId: string | null;
3475
- visible: boolean;
3476
- camera?: {
3477
- position: [number, number, number];
3478
- target: [number, number, number];
3479
- mode: "orthographic" | "perspective";
3480
- fov?: number | undefined;
3481
- zoom?: number | undefined;
3482
- } | undefined;
3483
- metadata: Record<string, unknown>;
3484
- provenance?: {
3485
- refs: {
3486
- ns?: string | undefined;
3487
- id: string;
3488
- role?: "absorbed" | "alias" | "derived" | "piece" | "primary" | undefined;
3489
- }[];
3490
- lineage?: {
3491
- op: "attach" | "convert" | "duplicate" | "import" | "make-independent" | "merge" | "promote" | "split";
3492
- fromIds: string[];
3493
- } | undefined;
3494
- } | undefined;
3495
- id: `lineset_${string}`;
3496
- path: [number, number, number][];
3497
- suctionDiameter: number;
3498
- liquidDiameter: number;
3499
- insulated: boolean;
3500
- type: "lineset";
3501
4432
  } | {
3502
4433
  object: "node";
3503
4434
  name?: string | undefined;
@@ -3571,42 +4502,7 @@ export declare function getNodesWithLiveStairOpeningInputs(nodes: Record<string,
3571
4502
  diameter: number;
3572
4503
  pipeMaterial: "abs" | "cast-iron" | "pvc";
3573
4504
  system: "vent" | "waste";
3574
- type: "pipe-segment";
3575
- } | {
3576
- object: "node";
3577
- name?: string | undefined;
3578
- parentId: string | null;
3579
- visible: boolean;
3580
- camera?: {
3581
- position: [number, number, number];
3582
- target: [number, number, number];
3583
- mode: "orthographic" | "perspective";
3584
- fov?: number | undefined;
3585
- zoom?: number | undefined;
3586
- } | undefined;
3587
- metadata: Record<string, unknown>;
3588
- provenance?: {
3589
- refs: {
3590
- ns?: string | undefined;
3591
- id: string;
3592
- role?: "absorbed" | "alias" | "derived" | "piece" | "primary" | undefined;
3593
- }[];
3594
- lineage?: {
3595
- op: "attach" | "convert" | "duplicate" | "import" | "make-independent" | "merge" | "promote" | "split";
3596
- fromIds: string[];
3597
- } | undefined;
3598
- } | undefined;
3599
- id: `pipe-fitting_${string}`;
3600
- position: [number, number, number];
3601
- rotation: [number, number, number];
3602
- fittingType: "cleanout" | "coupling" | "cross" | "elbow" | "end-cap" | "reducer" | "sanitary-tee" | "wye";
3603
- angle: number;
3604
- diameter: number;
3605
- diameter2: number;
3606
- cleanoutStyle: "end" | "inline";
3607
- pipeMaterial: "abs" | "cast-iron" | "pvc";
3608
- system: "vent" | "waste";
3609
- type: "pipe-fitting";
4505
+ type: "pipe-segment";
3610
4506
  } | {
3611
4507
  object: "node";
3612
4508
  name?: string | undefined;
@@ -3631,13 +4527,17 @@ export declare function getNodesWithLiveStairOpeningInputs(nodes: Record<string,
3631
4527
  fromIds: string[];
3632
4528
  } | undefined;
3633
4529
  } | undefined;
3634
- id: `pipe-trap_${string}`;
4530
+ id: `pipe-fitting_${string}`;
3635
4531
  position: [number, number, number];
3636
- rotation: number;
4532
+ rotation: [number, number, number];
4533
+ fittingType: "cleanout" | "coupling" | "cross" | "elbow" | "end-cap" | "reducer" | "sanitary-tee" | "wye";
4534
+ angle: number;
3637
4535
  diameter: number;
4536
+ diameter2: number;
4537
+ cleanoutStyle: "end" | "inline";
3638
4538
  pipeMaterial: "abs" | "cast-iron" | "pvc";
3639
- armLengthM: number;
3640
- type: "pipe-trap";
4539
+ system: "vent" | "waste";
4540
+ type: "pipe-fitting";
3641
4541
  } | {
3642
4542
  object: "node";
3643
4543
  name?: string | undefined;
@@ -3663,7 +4563,7 @@ export declare function getNodesWithLiveStairOpeningInputs(nodes: Record<string,
3663
4563
  } | undefined;
3664
4564
  } | undefined;
3665
4565
  id: `level_${string}`;
3666
- children: (`block_${string}` | `ceiling_${string}` | `column_${string}` | `construction-dimension_${string}` | `duct-fitting_${string}` | `duct-segment_${string}` | `duct-terminal_${string}` | `fence_${string}` | `floor-opening_${string}` | `guide_${string}` | `hvac-equipment_${string}` | `imesh_${string}` | `item_${string}` | `lineset_${string}` | `liquid-line_${string}` | `measurement_${string}` | `pipe-fitting_${string}` | `pipe-segment_${string}` | `pipe-trap_${string}` | `procedural-item_${string}` | `roof_${string}` | `scan_${string}` | `separator_${string}` | `shelf_${string}` | `slab_${string}` | `spawn_${string}` | `stair_${string}` | `structural-grid_${string}` | `wall_${string}` | `zone_${string}`)[];
4566
+ children: (`beam_${string}` | `block_${string}` | `ceiling_${string}` | `column_${string}` | `construction-dimension_${string}` | `duct-fitting_${string}` | `duct-segment_${string}` | `duct-terminal_${string}` | `fence_${string}` | `floor-opening_${string}` | `guide_${string}` | `hvac-equipment_${string}` | `imesh_${string}` | `item_${string}` | `lineset_${string}` | `liquid-line_${string}` | `measurement_${string}` | `pipe-fitting_${string}` | `pipe-segment_${string}` | `pipe-trap_${string}` | `procedural-item_${string}` | `roof_${string}` | `scan_${string}` | `separator_${string}` | `shelf_${string}` | `slab_${string}` | `spawn_${string}` | `stair_${string}` | `structural-grid_${string}` | `wall_${string}` | `zone_${string}`)[];
3667
4567
  level: number;
3668
4568
  baseElevation: number;
3669
4569
  height?: number | undefined;
@@ -3708,6 +4608,11 @@ export declare function getNodesWithLiveStairOpeningInputs(nodes: Record<string,
3708
4608
  url: string;
3709
4609
  repeat?: [number, number] | undefined;
3710
4610
  scale?: number | undefined;
4611
+ offset?: [number, number] | undefined;
4612
+ normalMap?: string | undefined;
4613
+ normalScale?: number | undefined;
4614
+ bumpMap?: string | undefined;
4615
+ bumpScale?: number | undefined;
3711
4616
  } | undefined;
3712
4617
  } | undefined;
3713
4618
  materialPreset?: string | undefined;
@@ -3735,35 +4640,6 @@ export declare function getNodesWithLiveStairOpeningInputs(nodes: Record<string,
3735
4640
  doorDurationMs: number;
3736
4641
  dwellMs: number;
3737
4642
  type: "elevator";
3738
- } | {
3739
- object: "node";
3740
- parentId: string | null;
3741
- visible: boolean;
3742
- camera?: {
3743
- position: [number, number, number];
3744
- target: [number, number, number];
3745
- mode: "orthographic" | "perspective";
3746
- fov?: number | undefined;
3747
- zoom?: number | undefined;
3748
- } | undefined;
3749
- provenance?: {
3750
- refs: {
3751
- ns?: string | undefined;
3752
- id: string;
3753
- role?: "absorbed" | "alias" | "derived" | "piece" | "primary" | undefined;
3754
- }[];
3755
- lineage?: {
3756
- op: "attach" | "convert" | "duplicate" | "import" | "make-independent" | "merge" | "promote" | "split";
3757
- fromIds: string[];
3758
- } | undefined;
3759
- } | undefined;
3760
- id: `unit_${string}`;
3761
- name: string;
3762
- kind: "apartment" | "commercial" | "common" | "hotel-room";
3763
- members: `zone_${string}`[];
3764
- color: string;
3765
- metadata: Record<string, unknown>;
3766
- type: "unit";
3767
4643
  } | {
3768
4644
  object: "node";
3769
4645
  name?: string | undefined;
@@ -3794,83 +4670,6 @@ export declare function getNodesWithLiveStairOpeningInputs(nodes: Record<string,
3794
4670
  rotation: [number, number, number];
3795
4671
  groundLevelId?: `level_${string}` | undefined;
3796
4672
  type: "building";
3797
- } | {
3798
- object: "node";
3799
- name?: string | undefined;
3800
- parentId: string | null;
3801
- visible: boolean;
3802
- camera?: {
3803
- position: [number, number, number];
3804
- target: [number, number, number];
3805
- mode: "orthographic" | "perspective";
3806
- fov?: number | undefined;
3807
- zoom?: number | undefined;
3808
- } | undefined;
3809
- metadata: Record<string, unknown>;
3810
- provenance?: {
3811
- refs: {
3812
- ns?: string | undefined;
3813
- id: string;
3814
- role?: "absorbed" | "alias" | "derived" | "piece" | "primary" | undefined;
3815
- }[];
3816
- lineage?: {
3817
- op: "attach" | "convert" | "duplicate" | "import" | "make-independent" | "merge" | "promote" | "split";
3818
- fromIds: string[];
3819
- } | undefined;
3820
- } | undefined;
3821
- matchFenceStyle?: boolean | undefined;
3822
- matchFenceHeight?: boolean | undefined;
3823
- leafType?: "double" | "single" | undefined;
3824
- style?: "guard" | "horizontal" | "match" | "picket" | "privacy" | "rail" | "slat" | undefined;
3825
- height?: number | undefined;
3826
- clearance?: number | undefined;
3827
- thickness?: number | undefined;
3828
- frameWidth?: number | undefined;
3829
- spacing?: number | undefined;
3830
- boardWidth?: number | undefined;
3831
- hinge?: "left" | "right" | undefined;
3832
- swing?: "inward" | "outward" | undefined;
3833
- openAngle?: number | undefined;
3834
- leafSplit?: number | undefined;
3835
- brace?: "cross" | "diagonal" | "none" | undefined;
3836
- showHardware?: boolean | undefined;
3837
- showPosts?: boolean | undefined;
3838
- id: `fence-gate_${string}`;
3839
- center: number;
3840
- width: number;
3841
- type: "fence-gate";
3842
- } | {
3843
- object: "node";
3844
- name?: string | undefined;
3845
- parentId: string | null;
3846
- visible: boolean;
3847
- camera?: {
3848
- position: [number, number, number];
3849
- target: [number, number, number];
3850
- mode: "orthographic" | "perspective";
3851
- fov?: number | undefined;
3852
- zoom?: number | undefined;
3853
- } | undefined;
3854
- metadata: Record<string, unknown>;
3855
- provenance?: {
3856
- refs: {
3857
- ns?: string | undefined;
3858
- id: string;
3859
- role?: "absorbed" | "alias" | "derived" | "piece" | "primary" | undefined;
3860
- }[];
3861
- lineage?: {
3862
- op: "attach" | "convert" | "duplicate" | "import" | "make-independent" | "merge" | "promote" | "split";
3863
- fromIds: string[];
3864
- } | undefined;
3865
- } | undefined;
3866
- center: number;
3867
- width: number;
3868
- matchFenceStyle?: boolean | undefined;
3869
- matchFenceHeight?: boolean | undefined;
3870
- height?: number | undefined;
3871
- showPosts: boolean;
3872
- id: `fence-opening_${string}`;
3873
- type: "fence-opening";
3874
4673
  } | {
3875
4674
  object: "node";
3876
4675
  name?: string | undefined;
@@ -3934,6 +4733,11 @@ export declare function getNodesWithLiveStairOpeningInputs(nodes: Record<string,
3934
4733
  url: string;
3935
4734
  repeat?: [number, number] | undefined;
3936
4735
  scale?: number | undefined;
4736
+ offset?: [number, number] | undefined;
4737
+ normalMap?: string | undefined;
4738
+ normalScale?: number | undefined;
4739
+ bumpMap?: string | undefined;
4740
+ bumpScale?: number | undefined;
3937
4741
  } | undefined;
3938
4742
  } | undefined;
3939
4743
  materialPreset?: string | undefined;
@@ -4094,6 +4898,11 @@ export declare function getNodesWithLiveStairOpeningInputs(nodes: Record<string,
4094
4898
  url: string;
4095
4899
  repeat?: [number, number] | undefined;
4096
4900
  scale?: number | undefined;
4901
+ offset?: [number, number] | undefined;
4902
+ normalMap?: string | undefined;
4903
+ normalScale?: number | undefined;
4904
+ bumpMap?: string | undefined;
4905
+ bumpScale?: number | undefined;
4097
4906
  } | undefined;
4098
4907
  } | undefined;
4099
4908
  materialPreset?: string | undefined;
@@ -4214,7 +5023,7 @@ export declare function getNodesWithLiveStairOpeningInputs(nodes: Record<string,
4214
5023
  fromIds: string[];
4215
5024
  } | undefined;
4216
5025
  } | undefined;
4217
- id: `rvent_${string}`;
5026
+ id: `bvent_${string}`;
4218
5027
  material?: {
4219
5028
  id?: string | undefined;
4220
5029
  preset?: "brick" | "concrete" | "custom" | "glass" | "marble" | "metal" | "plaster" | "tile" | "white" | "wood" | undefined;
@@ -4230,18 +5039,31 @@ export declare function getNodesWithLiveStairOpeningInputs(nodes: Record<string,
4230
5039
  url: string;
4231
5040
  repeat?: [number, number] | undefined;
4232
5041
  scale?: number | undefined;
5042
+ offset?: [number, number] | undefined;
5043
+ normalMap?: string | undefined;
5044
+ normalScale?: number | undefined;
5045
+ bumpMap?: string | undefined;
5046
+ bumpScale?: number | undefined;
4233
5047
  } | undefined;
4234
5048
  } | undefined;
4235
- materialPreset?: string | undefined;
5049
+ slots?: Record<string, string> | undefined;
5050
+ materialPreset: string;
4236
5051
  roofSegmentId?: string | undefined;
4237
5052
  position: [number, number, number];
4238
5053
  rotation: number;
4239
- length: number;
4240
5054
  width: number;
5055
+ depth: number;
4241
5056
  height: number;
4242
- style: "metal" | "shingled" | "standard";
4243
- endCaps: boolean;
4244
- type: "ridge-vent";
5057
+ hoodOverhang: number;
5058
+ topTaper: number;
5059
+ capHeight: number;
5060
+ capGap: number;
5061
+ domeCurvature: number;
5062
+ baseInset: number;
5063
+ baseHeight: number;
5064
+ cornerBevel: number;
5065
+ style: "box" | "cap" | "dome";
5066
+ type: "box-vent";
4245
5067
  } | {
4246
5068
  object: "node";
4247
5069
  name?: string | undefined;
@@ -4266,7 +5088,7 @@ export declare function getNodesWithLiveStairOpeningInputs(nodes: Record<string,
4266
5088
  fromIds: string[];
4267
5089
  } | undefined;
4268
5090
  } | undefined;
4269
- id: `tvent_${string}`;
5091
+ id: `rvent_${string}`;
4270
5092
  material?: {
4271
5093
  id?: string | undefined;
4272
5094
  preset?: "brick" | "concrete" | "custom" | "glass" | "marble" | "metal" | "plaster" | "tile" | "white" | "wood" | undefined;
@@ -4282,21 +5104,23 @@ export declare function getNodesWithLiveStairOpeningInputs(nodes: Record<string,
4282
5104
  url: string;
4283
5105
  repeat?: [number, number] | undefined;
4284
5106
  scale?: number | undefined;
5107
+ offset?: [number, number] | undefined;
5108
+ normalMap?: string | undefined;
5109
+ normalScale?: number | undefined;
5110
+ bumpMap?: string | undefined;
5111
+ bumpScale?: number | undefined;
4285
5112
  } | undefined;
4286
5113
  } | undefined;
4287
- slots?: Record<string, string> | undefined;
4288
- materialPreset: string;
5114
+ materialPreset?: string | undefined;
4289
5115
  roofSegmentId?: string | undefined;
4290
5116
  position: [number, number, number];
4291
5117
  rotation: number;
4292
- diameter: number;
5118
+ length: number;
5119
+ width: number;
4293
5120
  height: number;
4294
- neckHeight: number;
4295
- baseOverhang: number;
4296
- vaneCount: number;
4297
- spinSpeed: number;
4298
- style: "cylinder" | "globe";
4299
- type: "turbine-vent";
5121
+ style: "metal" | "shingled" | "standard";
5122
+ endCaps: boolean;
5123
+ type: "ridge-vent";
4300
5124
  } | {
4301
5125
  object: "node";
4302
5126
  name?: string | undefined;
@@ -4321,7 +5145,7 @@ export declare function getNodesWithLiveStairOpeningInputs(nodes: Record<string,
4321
5145
  fromIds: string[];
4322
5146
  } | undefined;
4323
5147
  } | undefined;
4324
- id: `cupola_${string}`;
5148
+ id: `tvent_${string}`;
4325
5149
  material?: {
4326
5150
  id?: string | undefined;
4327
5151
  preset?: "brick" | "concrete" | "custom" | "glass" | "marble" | "metal" | "plaster" | "tile" | "white" | "wood" | undefined;
@@ -4337,6 +5161,11 @@ export declare function getNodesWithLiveStairOpeningInputs(nodes: Record<string,
4337
5161
  url: string;
4338
5162
  repeat?: [number, number] | undefined;
4339
5163
  scale?: number | undefined;
5164
+ offset?: [number, number] | undefined;
5165
+ normalMap?: string | undefined;
5166
+ normalScale?: number | undefined;
5167
+ bumpMap?: string | undefined;
5168
+ bumpScale?: number | undefined;
4340
5169
  } | undefined;
4341
5170
  } | undefined;
4342
5171
  slots?: Record<string, string> | undefined;
@@ -4344,12 +5173,14 @@ export declare function getNodesWithLiveStairOpeningInputs(nodes: Record<string,
4344
5173
  roofSegmentId?: string | undefined;
4345
5174
  position: [number, number, number];
4346
5175
  rotation: number;
4347
- width: number;
4348
- depth: number;
5176
+ diameter: number;
4349
5177
  height: number;
4350
- roofStyle: "dome" | "pyramid";
4351
- finial: boolean;
4352
- type: "cupola";
5178
+ neckHeight: number;
5179
+ baseOverhang: number;
5180
+ vaneCount: number;
5181
+ spinSpeed: number;
5182
+ style: "cylinder" | "globe";
5183
+ type: "turbine-vent";
4353
5184
  } | {
4354
5185
  object: "node";
4355
5186
  name?: string | undefined;
@@ -4390,6 +5221,11 @@ export declare function getNodesWithLiveStairOpeningInputs(nodes: Record<string,
4390
5221
  url: string;
4391
5222
  repeat?: [number, number] | undefined;
4392
5223
  scale?: number | undefined;
5224
+ offset?: [number, number] | undefined;
5225
+ normalMap?: string | undefined;
5226
+ normalScale?: number | undefined;
5227
+ bumpMap?: string | undefined;
5228
+ bumpScale?: number | undefined;
4393
5229
  } | undefined;
4394
5230
  } | undefined;
4395
5231
  slots?: Record<string, string> | undefined;
@@ -4444,6 +5280,11 @@ export declare function getNodesWithLiveStairOpeningInputs(nodes: Record<string,
4444
5280
  url: string;
4445
5281
  repeat?: [number, number] | undefined;
4446
5282
  scale?: number | undefined;
5283
+ offset?: [number, number] | undefined;
5284
+ normalMap?: string | undefined;
5285
+ normalScale?: number | undefined;
5286
+ bumpMap?: string | undefined;
5287
+ bumpScale?: number | undefined;
4447
5288
  } | undefined;
4448
5289
  } | undefined;
4449
5290
  slots?: Record<string, string> | undefined;
@@ -4511,6 +5352,11 @@ export declare function getNodesWithLiveStairOpeningInputs(nodes: Record<string,
4511
5352
  url: string;
4512
5353
  repeat?: [number, number] | undefined;
4513
5354
  scale?: number | undefined;
5355
+ offset?: [number, number] | undefined;
5356
+ normalMap?: string | undefined;
5357
+ normalScale?: number | undefined;
5358
+ bumpMap?: string | undefined;
5359
+ bumpScale?: number | undefined;
4514
5360
  } | undefined;
4515
5361
  } | undefined;
4516
5362
  materialPreset?: string | undefined;
@@ -4529,6 +5375,11 @@ export declare function getNodesWithLiveStairOpeningInputs(nodes: Record<string,
4529
5375
  url: string;
4530
5376
  repeat?: [number, number] | undefined;
4531
5377
  scale?: number | undefined;
5378
+ offset?: [number, number] | undefined;
5379
+ normalMap?: string | undefined;
5380
+ normalScale?: number | undefined;
5381
+ bumpMap?: string | undefined;
5382
+ bumpScale?: number | undefined;
4532
5383
  } | undefined;
4533
5384
  } | undefined;
4534
5385
  topMaterialPreset?: string | undefined;
@@ -4610,6 +5461,11 @@ export declare function getNodesWithLiveStairOpeningInputs(nodes: Record<string,
4610
5461
  url: string;
4611
5462
  repeat?: [number, number] | undefined;
4612
5463
  scale?: number | undefined;
5464
+ offset?: [number, number] | undefined;
5465
+ normalMap?: string | undefined;
5466
+ normalScale?: number | undefined;
5467
+ bumpMap?: string | undefined;
5468
+ bumpScale?: number | undefined;
4613
5469
  } | undefined;
4614
5470
  } | undefined;
4615
5471
  materialPreset?: string | undefined;
@@ -4628,6 +5484,11 @@ export declare function getNodesWithLiveStairOpeningInputs(nodes: Record<string,
4628
5484
  url: string;
4629
5485
  repeat?: [number, number] | undefined;
4630
5486
  scale?: number | undefined;
5487
+ offset?: [number, number] | undefined;
5488
+ normalMap?: string | undefined;
5489
+ normalScale?: number | undefined;
5490
+ bumpMap?: string | undefined;
5491
+ bumpScale?: number | undefined;
4631
5492
  } | undefined;
4632
5493
  } | undefined;
4633
5494
  panelMaterialPreset?: string | undefined;
@@ -4648,91 +5509,6 @@ export declare function getNodesWithLiveStairOpeningInputs(nodes: Record<string,
4648
5509
  frameDepth: number;
4649
5510
  surfaceNormal?: [number, number, number] | undefined;
4650
5511
  type: "solar-panel";
4651
- } | {
4652
- object: "node";
4653
- name?: string | undefined;
4654
- parentId: string | null;
4655
- visible: boolean;
4656
- camera?: {
4657
- position: [number, number, number];
4658
- target: [number, number, number];
4659
- mode: "orthographic" | "perspective";
4660
- fov?: number | undefined;
4661
- zoom?: number | undefined;
4662
- } | undefined;
4663
- metadata: Record<string, unknown>;
4664
- provenance?: {
4665
- refs: {
4666
- ns?: string | undefined;
4667
- id: string;
4668
- role?: "absorbed" | "alias" | "derived" | "piece" | "primary" | undefined;
4669
- }[];
4670
- lineage?: {
4671
- op: "attach" | "convert" | "duplicate" | "import" | "make-independent" | "merge" | "promote" | "split";
4672
- fromIds: string[];
4673
- } | undefined;
4674
- } | undefined;
4675
- id: `skylight_${string}`;
4676
- material?: {
4677
- id?: string | undefined;
4678
- preset?: "brick" | "concrete" | "custom" | "glass" | "marble" | "metal" | "plaster" | "tile" | "white" | "wood" | undefined;
4679
- properties?: {
4680
- color: string;
4681
- roughness: number;
4682
- metalness: number;
4683
- opacity: number;
4684
- transparent: boolean;
4685
- side: "back" | "double" | "front";
4686
- } | undefined;
4687
- texture?: {
4688
- url: string;
4689
- repeat?: [number, number] | undefined;
4690
- scale?: number | undefined;
4691
- } | undefined;
4692
- } | undefined;
4693
- materialPreset?: string | undefined;
4694
- glassMaterial?: {
4695
- id?: string | undefined;
4696
- preset?: "brick" | "concrete" | "custom" | "glass" | "marble" | "metal" | "plaster" | "tile" | "white" | "wood" | undefined;
4697
- properties?: {
4698
- color: string;
4699
- roughness: number;
4700
- metalness: number;
4701
- opacity: number;
4702
- transparent: boolean;
4703
- side: "back" | "double" | "front";
4704
- } | undefined;
4705
- texture?: {
4706
- url: string;
4707
- repeat?: [number, number] | undefined;
4708
- scale?: number | undefined;
4709
- } | undefined;
4710
- } | undefined;
4711
- glassMaterialPreset?: string | undefined;
4712
- roofSegmentId?: string | undefined;
4713
- position: [number, number, number];
4714
- rotation: number;
4715
- width: number;
4716
- height: number;
4717
- frameThickness: number;
4718
- frameDepth: number;
4719
- skylightType: "flat" | "lantern" | "opening" | "sliding" | "walk-on";
4720
- glassThickness: number;
4721
- lanternHeight: number;
4722
- lanternTopScale: number;
4723
- openingAngle: number;
4724
- openingSide: "bottom" | "left" | "right" | "top";
4725
- operationState: number;
4726
- motorHousing: boolean;
4727
- slideFraction: number;
4728
- slideDirection: "x" | "z";
4729
- trackWidth: number;
4730
- motorHousingSize: number;
4731
- curb: boolean;
4732
- curbHeight: number;
4733
- cutoutOffset: number;
4734
- surfaceNormal?: [number, number, number] | undefined;
4735
- type: "skylight";
4736
5512
  } | {
4737
5513
  object: "node";
4738
5514
  name?: string | undefined;
@@ -4773,6 +5549,11 @@ export declare function getNodesWithLiveStairOpeningInputs(nodes: Record<string,
4773
5549
  url: string;
4774
5550
  repeat?: [number, number] | undefined;
4775
5551
  scale?: number | undefined;
5552
+ offset?: [number, number] | undefined;
5553
+ normalMap?: string | undefined;
5554
+ normalScale?: number | undefined;
5555
+ bumpMap?: string | undefined;
5556
+ bumpScale?: number | undefined;
4776
5557
  } | undefined;
4777
5558
  } | undefined;
4778
5559
  materialPreset?: string | undefined;
@@ -4791,6 +5572,11 @@ export declare function getNodesWithLiveStairOpeningInputs(nodes: Record<string,
4791
5572
  url: string;
4792
5573
  repeat?: [number, number] | undefined;
4793
5574
  scale?: number | undefined;
5575
+ offset?: [number, number] | undefined;
5576
+ normalMap?: string | undefined;
5577
+ normalScale?: number | undefined;
5578
+ bumpMap?: string | undefined;
5579
+ bumpScale?: number | undefined;
4794
5580
  } | undefined;
4795
5581
  } | undefined;
4796
5582
  topMaterialPreset?: string | undefined;
@@ -4809,6 +5595,11 @@ export declare function getNodesWithLiveStairOpeningInputs(nodes: Record<string,
4809
5595
  url: string;
4810
5596
  repeat?: [number, number] | undefined;
4811
5597
  scale?: number | undefined;
5598
+ offset?: [number, number] | undefined;
5599
+ normalMap?: string | undefined;
5600
+ normalScale?: number | undefined;
5601
+ bumpMap?: string | undefined;
5602
+ bumpScale?: number | undefined;
4812
5603
  } | undefined;
4813
5604
  } | undefined;
4814
5605
  sideMaterialPreset?: string | undefined;
@@ -4827,6 +5618,11 @@ export declare function getNodesWithLiveStairOpeningInputs(nodes: Record<string,
4827
5618
  url: string;
4828
5619
  repeat?: [number, number] | undefined;
4829
5620
  scale?: number | undefined;
5621
+ offset?: [number, number] | undefined;
5622
+ normalMap?: string | undefined;
5623
+ normalScale?: number | undefined;
5624
+ bumpMap?: string | undefined;
5625
+ bumpScale?: number | undefined;
4830
5626
  } | undefined;
4831
5627
  } | undefined;
4832
5628
  wallMaterialPreset?: string | undefined;
@@ -4897,6 +5693,11 @@ export declare function getNodesWithLiveStairOpeningInputs(nodes: Record<string,
4897
5693
  url: string;
4898
5694
  repeat?: [number, number] | undefined;
4899
5695
  scale?: number | undefined;
5696
+ offset?: [number, number] | undefined;
5697
+ normalMap?: string | undefined;
5698
+ normalScale?: number | undefined;
5699
+ bumpMap?: string | undefined;
5700
+ bumpScale?: number | undefined;
4900
5701
  } | undefined;
4901
5702
  } | undefined;
4902
5703
  slots?: Record<string, string> | undefined;
@@ -4914,7 +5715,7 @@ export declare function getNodesWithLiveStairOpeningInputs(nodes: Record<string,
4914
5715
  type: "downspout";
4915
5716
  }>;
4916
5717
  export declare function createSurfaceOpeningPreviewController(): {
4917
- previewSurfaceIds: Set<`block_${string}` | `building_${string}` | `bvent_${string}` | `cabinet-module_${string}` | `cabinet_${string}` | `ceiling_${string}` | `chimney_${string}` | `column_${string}` | `construction-dimension_${string}` | `cupola_${string}` | `door_${string}` | `dormer_${string}` | `downspout_${string}` | `duct-fitting_${string}` | `duct-segment_${string}` | `duct-terminal_${string}` | `elevator_${string}` | `eyebrow-vent_${string}` | `fence-gate_${string}` | `fence-opening_${string}` | `fence_${string}` | `floor-opening_${string}` | `guide_${string}` | `gutter_${string}` | `hvac-equipment_${string}` | `imesh_${string}` | `item_${string}` | `leanto_${string}` | `level_${string}` | `lineset_${string}` | `liquid-line_${string}` | `measurement_${string}` | `pipe-fitting_${string}` | `pipe-segment_${string}` | `pipe-trap_${string}` | `procedural-item_${string}` | `roof_${string}` | `rseg_${string}` | `rvent_${string}` | `scan_${string}` | `separator_${string}` | `shelf_${string}` | `site_${string}` | `skylight_${string}` | `slab_${string}` | `solarpanel_${string}` | `spawn_${string}` | `sseg_${string}` | `stair_${string}` | `structural-grid_${string}` | `tvent_${string}` | `unit_${string}` | `wall_${string}` | `window_${string}` | `zone_${string}`>;
5718
+ previewSurfaceIds: Set<`beam_${string}` | `block_${string}` | `building_${string}` | `bvent_${string}` | `cabinet-module_${string}` | `cabinet_${string}` | `ceiling_${string}` | `chimney_${string}` | `column_${string}` | `construction-dimension_${string}` | `cupola_${string}` | `door_${string}` | `dormer_${string}` | `downspout_${string}` | `duct-fitting_${string}` | `duct-segment_${string}` | `duct-terminal_${string}` | `elevator_${string}` | `eyebrow-vent_${string}` | `fence-gate_${string}` | `fence-opening_${string}` | `fence_${string}` | `floor-opening_${string}` | `guide_${string}` | `gutter_${string}` | `hvac-equipment_${string}` | `imesh_${string}` | `item_${string}` | `leanto_${string}` | `level_${string}` | `lineset_${string}` | `liquid-line_${string}` | `measurement_${string}` | `pipe-fitting_${string}` | `pipe-segment_${string}` | `pipe-trap_${string}` | `procedural-item_${string}` | `roof_${string}` | `rseg_${string}` | `rvent_${string}` | `scan_${string}` | `separator_${string}` | `shelf_${string}` | `site_${string}` | `skylight_${string}` | `slab_${string}` | `solarpanel_${string}` | `spawn_${string}` | `sseg_${string}` | `stair_${string}` | `structural-grid_${string}` | `tvent_${string}` | `unit_${string}` | `wall_${string}` | `window_${string}` | `zone_${string}`>;
4918
5719
  apply(updates: SurfaceOpeningUpdate[]): void;
4919
5720
  clear(): void;
4920
5721
  };