@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
@@ -21,7 +21,9 @@ type NumericSanitizeIssue = {
21
21
  action: 'clamped' | 'dropped' | 'rounded';
22
22
  };
23
23
  export declare function numericSanitizeIssuesToMessage(issues: NumericSanitizeIssue[] | null | undefined): string;
24
- /** Authored updates whose deferred dirty intent has not reached render systems yet. */
24
+ export declare function shouldRefreshDefaultRidgeVents(data: Partial<AnyNode>): boolean;
25
+ export declare function shouldRefreshDefaultGutters(data: Partial<AnyNode>): boolean;
26
+ /** The current environment's authored updates whose deferred dirty intent has not reached render systems yet. */
25
27
  export declare function getPendingNodeUpdateCount(): number;
26
28
  declare const createNodesActionImpl: (set: (fn: (state: SceneState) => Partial<SceneState>) => void, get: () => SceneState, ops: NodeCreateOp[], options?: DerivedWriteOptions) => void;
27
29
  /**
@@ -84,7 +86,7 @@ export declare function planSceneNodeChanges(snapshot: Pick<SceneState, 'nodes'
84
86
  delete?: AnyNodeId[];
85
87
  wallDeletionPlan?: StructurePlan;
86
88
  }): {
87
- nodes: Record<`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}`, {
89
+ nodes: Record<`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}`, {
88
90
  object: "node";
89
91
  name?: string | undefined;
90
92
  parentId: string | null;
@@ -155,196 +157,42 @@ export declare function planSceneNodeChanges(snapshot: Pick<SceneState, 'nodes'
155
157
  fromIds: string[];
156
158
  } | undefined;
157
159
  } | undefined;
158
- id: `column_${string}`;
159
- children: string[];
160
- position: [number, number, number];
161
- rotation: number;
162
- supportSlabId?: string | undefined;
163
- source?: {
164
- kind: "script";
165
- meta?: {
166
- description?: string | undefined;
167
- category?: string | undefined;
168
- tags?: string[] | undefined;
169
- parent?: string | undefined;
170
- } | undefined;
171
- language: "bpy" | "three";
172
- script: string;
173
- params: Record<string, string | number | boolean>;
174
- artifact: string;
175
- manifest: {
176
- bounds: {
177
- min: [number, number, number];
178
- max: [number, number, number];
179
- };
180
- params: {
181
- id: string;
182
- label?: string | undefined;
183
- kind: "boolean" | "number" | "string";
184
- default: string | number | boolean;
185
- min?: number | undefined;
186
- max?: number | undefined;
187
- step?: number | undefined;
188
- unit?: string | undefined;
189
- options?: string[] | undefined;
190
- }[];
191
- parts: {
192
- id: string;
193
- label?: string | undefined;
194
- type?: string | undefined;
195
- bounds?: {
196
- min: [number, number, number];
197
- max: [number, number, number];
198
- } | undefined;
199
- }[];
200
- surfaces: {
201
- part?: string | undefined;
202
- y: number;
203
- polygon: [number, number][];
204
- }[];
205
- slots: {
206
- id: string;
207
- label?: string | undefined;
208
- color?: string | undefined;
209
- roughness?: number | undefined;
210
- metalness?: number | undefined;
211
- transparent?: boolean | undefined;
212
- emissive?: boolean | undefined;
213
- }[];
214
- anchors: {
215
- id: string;
216
- position: [number, number, number];
217
- normal?: [number, number, number] | undefined;
218
- }[];
219
- lights: {
220
- id: string;
221
- position: [number, number, number];
222
- color: string;
223
- intensity: number;
224
- distance?: number | undefined;
225
- }[];
226
- undersides: {
227
- part?: string | undefined;
228
- polygon: [number, number][];
229
- plane: [number, number, number, number];
230
- }[];
231
- animations: {
232
- name: string;
233
- duration: number;
234
- }[];
235
- cutters?: {
236
- host: "ceiling" | "mounted" | "slab" | "wall";
237
- polygon: number[][];
238
- minY: number;
239
- maxY: number;
240
- }[] | undefined;
241
- cutout: boolean;
242
- collider: boolean;
243
- triangles: number;
244
- coverage?: number | undefined;
245
- uncovered?: {
246
- min: [number, number];
247
- max: [number, number];
248
- }[] | undefined;
160
+ id: `construction-dimension_${string}`;
161
+ anchors: ({
162
+ kind: "feature";
163
+ reference: {
164
+ nodeId: string;
165
+ featureId: string;
166
+ parameters?: Record<string, string | number | boolean> | undefined;
249
167
  };
250
- images?: {
251
- artifact: string;
252
- thumbnail: string;
253
- floorPlan: string;
254
- } | undefined;
255
- } | undefined;
256
- style: "cluster" | "dravidian-carved" | "faceted" | "fluted" | "lathe-turned" | "plain";
257
- crossSection: "octagonal" | "rectangular" | "round" | "sixteen-sided" | "square";
258
- height: number;
259
- radius: number;
260
- width: number;
261
- depth: number;
262
- edgeSoftness: number;
263
- baseHeight: number;
264
- capitalHeight: number;
265
- shaftProfile: "baluster" | "bulged" | "hourglass" | "straight" | "tapered";
266
- shaftTaper: number;
267
- shaftBulge: number;
268
- shaftStartScale: number;
269
- shaftEndScale: number;
270
- shaftSegmentCount: number;
271
- shaftTwistStep: number;
272
- shaftCornerRadius: number;
273
- shaftDetail: "fluted" | "lathe-turned" | "none" | "panelled" | "spiral";
274
- baseStyle: "lotus" | "none" | "panelled-pedestal" | "ribbed-lotus" | "round-rings" | "simple-square" | "square-plinth" | "stepped-square";
275
- baseWidthScale: number;
276
- baseDepthScale: number;
277
- baseTierCount: number;
278
- baseStepSpread: number;
279
- basePlinthHeightRatio: number;
280
- baseRoundBandScale: number;
281
- baseNeckScale: number;
282
- baseRoundBandCount: number;
283
- baseRibCount: number;
284
- baseCarvingLevel: number;
285
- basePanelInset: number;
286
- capitalStyle: "corinthian-leaf" | "doric" | "ionic-volute" | "leaf-carved" | "none" | "rounded" | "simple" | "simple-slab" | "south-indian-bracket" | "stepped" | "volute" | "wood-bracket";
287
- capitalWidthScale: number;
288
- capitalDepthScale: number;
289
- capitalTierCount: number;
290
- capitalStepSpread: number;
291
- capitalBandCount: number;
292
- voluteSize: number;
293
- voluteCount: number;
294
- leafCount: number;
295
- leafRows: number;
296
- bracketDepth: number;
297
- bracketTierCount: number;
298
- pendantCount: number;
299
- capitalCarvingLevel: number;
300
- ringCount: number;
301
- ringPlacement: "bottom" | "ends" | "even" | "top";
302
- ringThickness: number;
303
- ringSpread: number;
304
- fluteCount: number;
305
- fluteDepth: number;
306
- fluteWidth: number;
307
- spiralTwist: number;
308
- spiralRibCount: number;
309
- panelCount: number;
310
- panelInsetDepth: number;
311
- panelShape: "arched" | "diamond" | "rectangle";
312
- latheRingCount: number;
313
- latheRingSpacing: "bottom" | "ends" | "even" | "top";
314
- carvingLevel: number;
315
- carvingPlacement: "all" | "base" | "capital" | "shaft";
316
- lowerBandEnabled: boolean;
317
- lowerBandHeight: number;
318
- lowerBandCarvingLevel: number;
319
- dentilCount: number;
320
- beadCount: number;
321
- supportStyle: "a-frame" | "box-frame" | "k-brace" | "portal-frame" | "single-strut" | "trestle" | "tripod" | "v-frame" | "vertical" | "x-brace" | "y-frame";
322
- braceWidth: number;
323
- braceDepth: number;
324
- braceBottomSpread: number;
325
- braceTopSpread: number;
326
- bracePlateEnabled: boolean;
327
- role?: "ornament" | undefined;
328
- material?: {
329
- id?: string | undefined;
330
- preset?: "brick" | "concrete" | "custom" | "glass" | "marble" | "metal" | "plaster" | "tile" | "white" | "wood" | undefined;
331
- properties?: {
332
- color: string;
333
- roughness: number;
334
- metalness: number;
335
- opacity: number;
336
- transparent: boolean;
337
- side: "back" | "double" | "front";
338
- } | undefined;
339
- texture?: {
340
- url: string;
341
- repeat?: [number, number] | undefined;
342
- scale?: number | undefined;
343
- } | undefined;
344
- } | undefined;
345
- materialPreset?: string | undefined;
346
- slots?: Record<string, string> | undefined;
347
- type: "column";
168
+ fallback: [number, number, number];
169
+ } | [number, number, number])[];
170
+ baseline: {
171
+ origin: [number, number];
172
+ direction: [number, number];
173
+ };
174
+ chainMode: "continuous" | "point-to-point";
175
+ mode: "angular" | "arc-length" | "center-mark" | "chord" | "coordinate" | "diameter" | "linear" | "radius";
176
+ featureCount: number;
177
+ showCenterMark: boolean;
178
+ prefix: string;
179
+ suffix: string;
180
+ textOverride: string | null;
181
+ datumPolicy: "centerline" | "finish-face" | "structural-face" | "wall-face";
182
+ terminator: "architectural-tick" | "dot" | "filled-arrow" | "open-arrow";
183
+ textPosition: "above" | "centered";
184
+ imperialPrecision: "1" | "1/16" | "1/2" | "1/4" | "1/8";
185
+ metricNotation: "meters" | "millimeters";
186
+ extensionStartGap: number;
187
+ extensionOvershoot: number;
188
+ drawingType: "floor-plan" | "foundation-plan" | "reflected-ceiling-plan" | "roof-plan" | "site-plan";
189
+ drawingOverrides: {
190
+ drawingType: "floor-plan" | "foundation-plan" | "reflected-ceiling-plan" | "roof-plan" | "site-plan";
191
+ presentation: "controlled" | "omit" | "shown";
192
+ suppressedSegmentIndexes: number[];
193
+ }[];
194
+ controllingDimensionId: `construction-dimension_${string}` | null;
195
+ type: "construction-dimension";
348
196
  } | {
349
197
  object: "node";
350
198
  name?: string | undefined;
@@ -369,29 +217,19 @@ export declare function planSceneNodeChanges(snapshot: Pick<SceneState, 'nodes'
369
217
  fromIds: string[];
370
218
  } | undefined;
371
219
  } | undefined;
372
- id: `duct-fitting_${string}`;
220
+ id: `duct-terminal_${string}`;
373
221
  position: [number, number, number];
374
- rotation: [number, number, number];
375
- fittingType: "access-panel" | "coupling" | "cross" | "damper" | "elbow" | "end-cap" | "reducer" | "tee" | "transition";
376
- shape: "oval" | "rect" | "round";
377
- inletShape?: "oval" | "rect" | "round" | undefined;
378
- outletShape?: "oval" | "rect" | "round" | undefined;
222
+ rotation: number;
223
+ supportSlabId?: string | undefined;
224
+ terminalType: "diffuser" | "return-grille" | "supply-register";
225
+ mount: "ceiling" | "floor" | "wall";
379
226
  width: number;
380
- height: number;
381
- shape2: "oval" | "rect" | "round";
382
- width2: number;
383
- height2: number;
384
- angle: number;
385
- branchAngle: number;
386
- diameter: number;
387
- diameter2: number;
388
- ductMaterial: "duct-board" | "flex" | "sheet-metal";
389
- system: "return" | "supply";
390
- damperAngle: number;
391
- panelWidth: number;
392
- panelHeight: number;
393
- slots?: Record<string, string> | undefined;
394
- type: "duct-fitting";
227
+ depth: number;
228
+ collarShape: "oval" | "rect" | "round";
229
+ collarDiameter: number;
230
+ collarWidth: number;
231
+ collarHeight: number;
232
+ type: "duct-terminal";
395
233
  } | {
396
234
  object: "node";
397
235
  name?: string | undefined;
@@ -416,23 +254,23 @@ export declare function planSceneNodeChanges(snapshot: Pick<SceneState, 'nodes'
416
254
  fromIds: string[];
417
255
  } | undefined;
418
256
  } | undefined;
419
- id: `hvac-equipment_${string}`;
257
+ id: `guide_${string}`;
258
+ url: string;
420
259
  position: [number, number, number];
421
- rotation: number;
422
- supportSlabId?: string | undefined;
423
- equipmentType: "air-handler" | "condenser" | "furnace";
424
- width: number;
425
- depth: number;
426
- height: number;
427
- supplyShape: "oval" | "rect" | "round";
428
- returnShape: "oval" | "rect" | "round";
429
- supplyDiameter: number;
430
- returnDiameter: number;
431
- supplyWidth: number;
432
- supplyHeight: number;
433
- returnWidth: number;
434
- returnHeight: number;
435
- type: "hvac-equipment";
260
+ rotation: [number, number, number];
261
+ scale: number;
262
+ opacity: number;
263
+ scaleReference: {
264
+ start: [number, number];
265
+ end: [number, number];
266
+ realLengthMeters: number;
267
+ measuredLengthUnits: number;
268
+ metersPerUnit: number;
269
+ displayLength?: number | undefined;
270
+ displayUnit?: "centimeters" | "feet" | "inches" | "meters" | undefined;
271
+ label: string;
272
+ } | null;
273
+ type: "guide";
436
274
  } | {
437
275
  object: "node";
438
276
  name?: string | undefined;
@@ -457,17 +295,10 @@ export declare function planSceneNodeChanges(snapshot: Pick<SceneState, 'nodes'
457
295
  fromIds: string[];
458
296
  } | undefined;
459
297
  } | undefined;
460
- id: `pipe-fitting_${string}`;
461
- position: [number, number, number];
462
- rotation: [number, number, number];
463
- fittingType: "cleanout" | "coupling" | "cross" | "elbow" | "end-cap" | "reducer" | "sanitary-tee" | "wye";
464
- angle: number;
298
+ id: `liquid-line_${string}`;
299
+ path: [number, number, number][];
465
300
  diameter: number;
466
- diameter2: number;
467
- cleanoutStyle: "end" | "inline";
468
- pipeMaterial: "abs" | "cast-iron" | "pvc";
469
- system: "vent" | "waste";
470
- type: "pipe-fitting";
301
+ type: "liquid-line";
471
302
  } | {
472
303
  object: "node";
473
304
  name?: string | undefined;
@@ -508,6 +339,11 @@ export declare function planSceneNodeChanges(snapshot: Pick<SceneState, 'nodes'
508
339
  url: string;
509
340
  repeat?: [number, number] | undefined;
510
341
  scale?: number | undefined;
342
+ offset?: [number, number] | undefined;
343
+ normalMap?: string | undefined;
344
+ normalScale?: number | undefined;
345
+ bumpMap?: string | undefined;
346
+ bumpScale?: number | undefined;
511
347
  } | undefined;
512
348
  } | undefined;
513
349
  materialPreset?: string | undefined;
@@ -526,6 +362,11 @@ export declare function planSceneNodeChanges(snapshot: Pick<SceneState, 'nodes'
526
362
  url: string;
527
363
  repeat?: [number, number] | undefined;
528
364
  scale?: number | undefined;
365
+ offset?: [number, number] | undefined;
366
+ normalMap?: string | undefined;
367
+ normalScale?: number | undefined;
368
+ bumpMap?: string | undefined;
369
+ bumpScale?: number | undefined;
529
370
  } | undefined;
530
371
  } | undefined;
531
372
  topMaterialPreset?: string | undefined;
@@ -544,6 +385,11 @@ export declare function planSceneNodeChanges(snapshot: Pick<SceneState, 'nodes'
544
385
  url: string;
545
386
  repeat?: [number, number] | undefined;
546
387
  scale?: number | undefined;
388
+ offset?: [number, number] | undefined;
389
+ normalMap?: string | undefined;
390
+ normalScale?: number | undefined;
391
+ bumpMap?: string | undefined;
392
+ bumpScale?: number | undefined;
547
393
  } | undefined;
548
394
  } | undefined;
549
395
  edgeMaterialPreset?: string | undefined;
@@ -562,6 +408,11 @@ export declare function planSceneNodeChanges(snapshot: Pick<SceneState, 'nodes'
562
408
  url: string;
563
409
  repeat?: [number, number] | undefined;
564
410
  scale?: number | undefined;
411
+ offset?: [number, number] | undefined;
412
+ normalMap?: string | undefined;
413
+ normalScale?: number | undefined;
414
+ bumpMap?: string | undefined;
415
+ bumpScale?: number | undefined;
565
416
  } | undefined;
566
417
  } | undefined;
567
418
  wallMaterialPreset?: string | undefined;
@@ -631,6 +482,39 @@ export declare function planSceneNodeChanges(snapshot: Pick<SceneState, 'nodes'
631
482
  overhang: number;
632
483
  gableOverhang?: number | undefined;
633
484
  shingleThickness: number;
485
+ buildUp?: {
486
+ presetId?: string | undefined;
487
+ roofing: {
488
+ kind: "architectural-shingle" | "asphalt-3-tab" | "clay-tile" | "concrete-tile" | "slate" | "standing-seam-metal" | "wood-shake";
489
+ thickness: number;
490
+ name?: string | undefined;
491
+ };
492
+ underlayment?: {
493
+ kind: "felt-15" | "felt-30" | "ice-and-water" | "synthetic";
494
+ thickness: number;
495
+ name?: string | undefined;
496
+ } | undefined;
497
+ sheathing: {
498
+ kind: "osb" | "plywood";
499
+ thickness: number;
500
+ name?: string | undefined;
501
+ };
502
+ structure: {
503
+ system: "rafters" | "trusses";
504
+ size: "2x10" | "2x12" | "2x4" | "2x6" | "2x8";
505
+ spacing: number;
506
+ };
507
+ insulation?: {
508
+ kind: "batt" | "blown" | "rigid";
509
+ thickness: number;
510
+ name?: string | undefined;
511
+ } | undefined;
512
+ finish?: {
513
+ kind: "drywall" | "plaster" | "wood-plank";
514
+ thickness: number;
515
+ name?: string | undefined;
516
+ } | undefined;
517
+ } | undefined;
634
518
  arc?: {
635
519
  centerX: number;
636
520
  centerZ: number;
@@ -652,6 +536,7 @@ export declare function planSceneNodeChanges(snapshot: Pick<SceneState, 'nodes'
652
536
  wallShell: "auto" | "include" | "omit";
653
537
  shedInsetEndPanels: boolean;
654
538
  fascia?: boolean | undefined;
539
+ eaveCut?: "plumb" | "plumb-level" | "square" | undefined;
655
540
  fasciaHighEdge?: boolean | undefined;
656
541
  fasciaHeight?: number | undefined;
657
542
  fasciaDepth?: number | undefined;
@@ -670,9 +555,83 @@ export declare function planSceneNodeChanges(snapshot: Pick<SceneState, 'nodes'
670
555
  url: string;
671
556
  repeat?: [number, number] | undefined;
672
557
  scale?: number | undefined;
558
+ offset?: [number, number] | undefined;
559
+ normalMap?: string | undefined;
560
+ normalScale?: number | undefined;
561
+ bumpMap?: string | undefined;
562
+ bumpScale?: number | undefined;
673
563
  } | undefined;
674
564
  } | undefined;
675
565
  fasciaMaterialPreset?: string | undefined;
566
+ heelMaterial?: {
567
+ id?: string | undefined;
568
+ preset?: "brick" | "concrete" | "custom" | "glass" | "marble" | "metal" | "plaster" | "tile" | "white" | "wood" | undefined;
569
+ properties?: {
570
+ color: string;
571
+ roughness: number;
572
+ metalness: number;
573
+ opacity: number;
574
+ transparent: boolean;
575
+ side: "back" | "double" | "front";
576
+ } | undefined;
577
+ texture?: {
578
+ url: string;
579
+ repeat?: [number, number] | undefined;
580
+ scale?: number | undefined;
581
+ offset?: [number, number] | undefined;
582
+ normalMap?: string | undefined;
583
+ normalScale?: number | undefined;
584
+ bumpMap?: string | undefined;
585
+ bumpScale?: number | undefined;
586
+ } | undefined;
587
+ } | undefined;
588
+ heelMaterialPreset?: string | undefined;
589
+ gableLeftMaterial?: {
590
+ id?: string | undefined;
591
+ preset?: "brick" | "concrete" | "custom" | "glass" | "marble" | "metal" | "plaster" | "tile" | "white" | "wood" | undefined;
592
+ properties?: {
593
+ color: string;
594
+ roughness: number;
595
+ metalness: number;
596
+ opacity: number;
597
+ transparent: boolean;
598
+ side: "back" | "double" | "front";
599
+ } | undefined;
600
+ texture?: {
601
+ url: string;
602
+ repeat?: [number, number] | undefined;
603
+ scale?: number | undefined;
604
+ offset?: [number, number] | undefined;
605
+ normalMap?: string | undefined;
606
+ normalScale?: number | undefined;
607
+ bumpMap?: string | undefined;
608
+ bumpScale?: number | undefined;
609
+ } | undefined;
610
+ } | undefined;
611
+ gableLeftMaterialPreset?: string | undefined;
612
+ gableRightMaterial?: {
613
+ id?: string | undefined;
614
+ preset?: "brick" | "concrete" | "custom" | "glass" | "marble" | "metal" | "plaster" | "tile" | "white" | "wood" | undefined;
615
+ properties?: {
616
+ color: string;
617
+ roughness: number;
618
+ metalness: number;
619
+ opacity: number;
620
+ transparent: boolean;
621
+ side: "back" | "double" | "front";
622
+ } | undefined;
623
+ texture?: {
624
+ url: string;
625
+ repeat?: [number, number] | undefined;
626
+ scale?: number | undefined;
627
+ offset?: [number, number] | undefined;
628
+ normalMap?: string | undefined;
629
+ normalScale?: number | undefined;
630
+ bumpMap?: string | undefined;
631
+ bumpScale?: number | undefined;
632
+ } | undefined;
633
+ } | undefined;
634
+ gableRightMaterialPreset?: string | undefined;
676
635
  gambrelLowerWidthRatio: number;
677
636
  gambrelLowerHeightRatio: number;
678
637
  mansardSteepWidthRatio: number;
@@ -708,7 +667,64 @@ export declare function planSceneNodeChanges(snapshot: Pick<SceneState, 'nodes'
708
667
  fromIds: string[];
709
668
  } | undefined;
710
669
  } | undefined;
711
- id: `slab_${string}`;
670
+ id: `separator_${string}`;
671
+ start: [number, number];
672
+ end: [number, number];
673
+ type: "separator";
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
+ id: `spawn_${string}`;
699
+ position: [number, number, number];
700
+ rotation: number;
701
+ supportSlabId?: string | undefined;
702
+ type: "spawn";
703
+ } | {
704
+ object: "node";
705
+ name?: string | undefined;
706
+ parentId: string | null;
707
+ visible: boolean;
708
+ camera?: {
709
+ position: [number, number, number];
710
+ target: [number, number, number];
711
+ mode: "orthographic" | "perspective";
712
+ fov?: number | undefined;
713
+ zoom?: number | undefined;
714
+ } | undefined;
715
+ metadata: Record<string, unknown>;
716
+ provenance?: {
717
+ refs: {
718
+ ns?: string | undefined;
719
+ id: string;
720
+ role?: "absorbed" | "alias" | "derived" | "piece" | "primary" | undefined;
721
+ }[];
722
+ lineage?: {
723
+ op: "attach" | "convert" | "duplicate" | "import" | "make-independent" | "merge" | "promote" | "split";
724
+ fromIds: string[];
725
+ } | undefined;
726
+ } | undefined;
727
+ id: `sseg_${string}`;
712
728
  material?: {
713
729
  id?: string | undefined;
714
730
  preset?: "brick" | "concrete" | "custom" | "glass" | "marble" | "metal" | "plaster" | "tile" | "white" | "wood" | undefined;
@@ -724,56 +740,272 @@ export declare function planSceneNodeChanges(snapshot: Pick<SceneState, 'nodes'
724
740
  url: string;
725
741
  repeat?: [number, number] | undefined;
726
742
  scale?: number | undefined;
743
+ offset?: [number, number] | undefined;
744
+ normalMap?: string | undefined;
745
+ normalScale?: number | undefined;
746
+ bumpMap?: string | undefined;
747
+ bumpScale?: number | undefined;
727
748
  } | undefined;
728
749
  } | undefined;
729
750
  materialPreset?: string | undefined;
730
751
  slots?: Record<string, string> | undefined;
731
- polygon: [number, number][];
732
- holes: [number, number][][];
733
- holeMetadata: {
734
- source: "elevator" | "floor-opening" | "manual" | "room" | "stair";
735
- openingId?: string | undefined;
736
- stairId?: string | undefined;
737
- elevatorId?: string | undefined;
738
- }[];
739
- elevation: number;
740
- floorHeight?: number | undefined;
741
- referenceFloorElevation?: number | undefined;
742
- foundation?: {
743
- type: "none" | "solid";
744
- material?: string | {
745
- id?: string | undefined;
746
- preset?: "brick" | "concrete" | "custom" | "glass" | "marble" | "metal" | "plaster" | "tile" | "white" | "wood" | undefined;
747
- properties?: {
752
+ position: [number, number, number];
753
+ rotation: number;
754
+ segmentType: "landing" | "stair";
755
+ width: number;
756
+ length: number;
757
+ height: number;
758
+ stepCount: number;
759
+ attachmentSide: "front" | "left" | "right";
760
+ fillToFloor: boolean;
761
+ construction?: {
762
+ mode: "center-stringer" | "open" | "side-stringers" | "solid" | "waist";
763
+ waistThickness: number;
764
+ treadThickness: number;
765
+ riserThickness: number;
766
+ nosing: number;
767
+ finishThickness: number;
768
+ closedRisers: boolean;
769
+ stringerWidth: number;
770
+ stringerDepth: number;
771
+ } | undefined;
772
+ winder?: {
773
+ turn: "left" | "right";
774
+ innerGap: number;
775
+ walkingLineOffset: number;
776
+ division: "equal-angle" | "equal-going";
777
+ } | undefined;
778
+ thickness: number;
779
+ type: "stair-segment";
780
+ } | {
781
+ object: "node";
782
+ name?: string | undefined;
783
+ parentId: string | null;
784
+ visible: boolean;
785
+ camera?: {
786
+ position: [number, number, number];
787
+ target: [number, number, number];
788
+ mode: "orthographic" | "perspective";
789
+ fov?: number | undefined;
790
+ zoom?: number | undefined;
791
+ } | undefined;
792
+ metadata: Record<string, unknown>;
793
+ provenance?: {
794
+ refs: {
795
+ ns?: string | undefined;
796
+ id: string;
797
+ role?: "absorbed" | "alias" | "derived" | "piece" | "primary" | undefined;
798
+ }[];
799
+ lineage?: {
800
+ op: "attach" | "convert" | "duplicate" | "import" | "make-independent" | "merge" | "promote" | "split";
801
+ fromIds: string[];
802
+ } | undefined;
803
+ } | undefined;
804
+ id: `window_${string}`;
805
+ material?: {
806
+ id?: string | undefined;
807
+ preset?: "brick" | "concrete" | "custom" | "glass" | "marble" | "metal" | "plaster" | "tile" | "white" | "wood" | undefined;
808
+ properties?: {
809
+ color: string;
810
+ roughness: number;
811
+ metalness: number;
812
+ opacity: number;
813
+ transparent: boolean;
814
+ side: "back" | "double" | "front";
815
+ } | undefined;
816
+ texture?: {
817
+ url: string;
818
+ repeat?: [number, number] | undefined;
819
+ scale?: number | undefined;
820
+ offset?: [number, number] | undefined;
821
+ normalMap?: string | undefined;
822
+ normalScale?: number | undefined;
823
+ bumpMap?: string | undefined;
824
+ bumpScale?: number | undefined;
825
+ } | undefined;
826
+ } | undefined;
827
+ slots?: Record<string, string> | undefined;
828
+ source?: {
829
+ kind: "script";
830
+ meta?: {
831
+ description?: string | undefined;
832
+ category?: string | undefined;
833
+ tags?: string[] | undefined;
834
+ parent?: string | undefined;
835
+ } | undefined;
836
+ language: "bpy" | "three";
837
+ script: string;
838
+ params: Record<string, string | number | boolean>;
839
+ artifact: string;
840
+ manifest: {
841
+ bounds: {
842
+ min: [number, number, number];
843
+ max: [number, number, number];
844
+ };
845
+ params: {
846
+ id: string;
847
+ label?: string | undefined;
848
+ kind: "boolean" | "number" | "string";
849
+ default: string | number | boolean;
850
+ min?: number | undefined;
851
+ max?: number | undefined;
852
+ step?: number | undefined;
853
+ unit?: string | undefined;
854
+ options?: string[] | undefined;
855
+ }[];
856
+ parts: {
857
+ id: string;
858
+ label?: string | undefined;
859
+ type?: string | undefined;
860
+ bounds?: {
861
+ min: [number, number, number];
862
+ max: [number, number, number];
863
+ } | undefined;
864
+ }[];
865
+ surfaces: {
866
+ part?: string | undefined;
867
+ y: number;
868
+ polygon: [number, number][];
869
+ }[];
870
+ slots: {
871
+ id: string;
872
+ label?: string | undefined;
873
+ color?: string | undefined;
874
+ roughness?: number | undefined;
875
+ metalness?: number | undefined;
876
+ transparent?: boolean | undefined;
877
+ emissive?: boolean | undefined;
878
+ }[];
879
+ anchors: {
880
+ id: string;
881
+ position: [number, number, number];
882
+ normal?: [number, number, number] | undefined;
883
+ }[];
884
+ lights: {
885
+ id: string;
886
+ position: [number, number, number];
748
887
  color: string;
749
- roughness: number;
750
- metalness: number;
751
- opacity: number;
752
- transparent: boolean;
753
- side: "back" | "double" | "front";
754
- } | undefined;
755
- texture?: {
756
- url: string;
757
- repeat?: [number, number] | undefined;
758
- scale?: number | undefined;
888
+ intensity: number;
889
+ distance?: number | undefined;
890
+ spot?: {
891
+ direction: [number, number, number];
892
+ angle: number;
893
+ softness: number;
894
+ } | undefined;
895
+ shadows?: boolean | undefined;
896
+ glow?: {
897
+ size: number;
898
+ strength: number;
899
+ } | undefined;
900
+ }[];
901
+ undersides: {
902
+ part?: string | undefined;
903
+ polygon: [number, number][];
904
+ plane: [number, number, number, number];
905
+ }[];
906
+ animations: {
907
+ name: string;
908
+ duration: number;
909
+ }[];
910
+ cutters?: {
911
+ host: "ceiling" | "mounted" | "slab" | "wall";
912
+ polygon: number[][];
913
+ minY: number;
914
+ maxY: number;
915
+ }[] | undefined;
916
+ cutout: boolean;
917
+ collider: boolean;
918
+ shape?: {
919
+ tolerance: number;
920
+ bands: {
921
+ y0: number;
922
+ y1: number;
923
+ polygons: {
924
+ outer: [number, number][];
925
+ holes?: [number, number][][] | undefined;
926
+ }[];
927
+ }[];
759
928
  } | undefined;
929
+ triangles: number;
930
+ coverage?: number | undefined;
931
+ uncovered?: {
932
+ min: [number, number];
933
+ max: [number, number];
934
+ }[] | undefined;
935
+ };
936
+ images?: {
937
+ artifact: string;
938
+ thumbnail: string;
939
+ floorPlan: string;
760
940
  } | undefined;
761
941
  } | undefined;
762
- thickness: number;
763
- recessed: boolean;
764
- recessedRimElevation?: number | undefined;
765
- fillToTerrain?: boolean | undefined;
766
- boundary?: "auto" | undefined;
767
- support?: "open" | undefined;
768
- plateRole?: "base" | "platform" | "sunken" | undefined;
769
- railing?: {
770
- start: [number, number];
771
- end: [number, number];
772
- }[] | undefined;
773
- zoneIds?: string[] | undefined;
774
- associatedZoneIds?: string[] | undefined;
775
- autoFromWalls: boolean;
776
- type: "slab";
942
+ position: [number, number, number];
943
+ rotation: [number, number, number];
944
+ side?: "back" | "front" | undefined;
945
+ verticalAnchor?: "floor" | "wall" | undefined;
946
+ floorThresholdVersion: 0 | 1;
947
+ wallId?: string | undefined;
948
+ dormerId?: string | undefined;
949
+ dormerFace?: "back" | "front" | "left" | "right" | undefined;
950
+ roofSegmentId?: string | undefined;
951
+ roofFace?: "back" | "front" | "left" | "right" | undefined;
952
+ width: number;
953
+ height: number;
954
+ mark?: string | undefined;
955
+ constructionType: "framed" | "masonry";
956
+ dimensionReference: "finish-opening" | "masonry-opening" | "nominal" | "rough-opening";
957
+ roughOpeningWidth?: number | undefined;
958
+ roughOpeningHeight?: number | undefined;
959
+ masonryOpeningWidth?: number | undefined;
960
+ masonryOpeningHeight?: number | undefined;
961
+ finishOpeningWidth?: number | undefined;
962
+ finishOpeningHeight?: number | undefined;
963
+ openingKind: "opening" | "window";
964
+ windowType: "awning" | "bay" | "bow" | "casement" | "double-hung" | "fixed" | "hopper" | "louvered" | "single-hung" | "sliding" | "tilt-turn";
965
+ operationState: number;
966
+ openingDirection?: "inward" | "outward" | undefined;
967
+ tiltTurnMode?: "tilt" | "turn" | undefined;
968
+ awningDirection: "down" | "up";
969
+ casementStyle: "french" | "single";
970
+ hingesSide: "left" | "right";
971
+ openingShape: "arch" | "rectangle" | "rounded";
972
+ openingRadiusMode: "all" | "individual";
973
+ openingCornerRadii: [number, number, number, number];
974
+ cornerRadius: number;
975
+ archHeight: number;
976
+ openingRevealRadius: number;
977
+ frameThickness: number;
978
+ frameDepth?: number | undefined;
979
+ windowHandle?: boolean | undefined;
980
+ sashGrid?: boolean | undefined;
981
+ columnRatios: number[];
982
+ rowRatios: number[];
983
+ columnDividerThickness: number;
984
+ rowDividerThickness: number;
985
+ corner?: {
986
+ end: "end" | "start";
987
+ partnerId: string;
988
+ post: "none" | "post";
989
+ } | undefined;
990
+ sill: boolean;
991
+ sillDepth: number;
992
+ sillThickness: number;
993
+ sillOverhang?: number | undefined;
994
+ sillInterior?: boolean | undefined;
995
+ sillInteriorDepth?: number | undefined;
996
+ sillInteriorThickness?: number | undefined;
997
+ sillInteriorOverhang?: number | undefined;
998
+ shutters?: "board-batten" | "louvered" | "none" | "panel" | undefined;
999
+ shutterWidth?: number | undefined;
1000
+ shutterOpen?: number | undefined;
1001
+ shutterSides?: "both" | "left" | "right" | undefined;
1002
+ rollerShutter?: "box" | "concealed" | "none" | undefined;
1003
+ rollerShutterBoxHeight?: number | undefined;
1004
+ rollerShutterOpen?: number | undefined;
1005
+ casingFaceA?: boolean | undefined;
1006
+ casingFaceB?: boolean | undefined;
1007
+ casingWidth?: number | undefined;
1008
+ type: "window";
777
1009
  } | {
778
1010
  object: "node";
779
1011
  name?: string | undefined;
@@ -875,6 +1107,16 @@ export declare function planSceneNodeChanges(snapshot: Pick<SceneState, 'nodes'
875
1107
  color: string;
876
1108
  intensity: number;
877
1109
  distance?: number | undefined;
1110
+ spot?: {
1111
+ direction: [number, number, number];
1112
+ angle: number;
1113
+ softness: number;
1114
+ } | undefined;
1115
+ shadows?: boolean | undefined;
1116
+ glow?: {
1117
+ size: number;
1118
+ strength: number;
1119
+ } | undefined;
878
1120
  }[];
879
1121
  undersides: {
880
1122
  part?: string | undefined;
@@ -893,6 +1135,17 @@ export declare function planSceneNodeChanges(snapshot: Pick<SceneState, 'nodes'
893
1135
  }[] | undefined;
894
1136
  cutout: boolean;
895
1137
  collider: boolean;
1138
+ shape?: {
1139
+ tolerance: number;
1140
+ bands: {
1141
+ y0: number;
1142
+ y1: number;
1143
+ polygons: {
1144
+ outer: [number, number][];
1145
+ holes?: [number, number][][] | undefined;
1146
+ }[];
1147
+ }[];
1148
+ } | undefined;
896
1149
  triangles: number;
897
1150
  coverage?: number | undefined;
898
1151
  uncovered?: {
@@ -963,6 +1216,16 @@ export declare function planSceneNodeChanges(snapshot: Pick<SceneState, 'nodes'
963
1216
  intensityRange: [number, number];
964
1217
  distance?: number | undefined;
965
1218
  offset: [number, number, number];
1219
+ spot?: {
1220
+ direction: [number, number, number];
1221
+ angle: number;
1222
+ softness: number;
1223
+ } | undefined;
1224
+ shadows?: boolean | undefined;
1225
+ glow?: {
1226
+ size: number;
1227
+ strength: number;
1228
+ } | undefined;
966
1229
  })[];
967
1230
  } | undefined;
968
1231
  };
@@ -1006,6 +1269,11 @@ export declare function planSceneNodeChanges(snapshot: Pick<SceneState, 'nodes'
1006
1269
  url: string;
1007
1270
  repeat?: [number, number] | undefined;
1008
1271
  scale?: number | undefined;
1272
+ offset?: [number, number] | undefined;
1273
+ normalMap?: string | undefined;
1274
+ normalScale?: number | undefined;
1275
+ bumpMap?: string | undefined;
1276
+ bumpScale?: number | undefined;
1009
1277
  } | undefined;
1010
1278
  } | undefined;
1011
1279
  slots?: Record<string, string> | undefined;
@@ -1071,6 +1339,16 @@ export declare function planSceneNodeChanges(snapshot: Pick<SceneState, 'nodes'
1071
1339
  color: string;
1072
1340
  intensity: number;
1073
1341
  distance?: number | undefined;
1342
+ spot?: {
1343
+ direction: [number, number, number];
1344
+ angle: number;
1345
+ softness: number;
1346
+ } | undefined;
1347
+ shadows?: boolean | undefined;
1348
+ glow?: {
1349
+ size: number;
1350
+ strength: number;
1351
+ } | undefined;
1074
1352
  }[];
1075
1353
  undersides: {
1076
1354
  part?: string | undefined;
@@ -1089,6 +1367,17 @@ export declare function planSceneNodeChanges(snapshot: Pick<SceneState, 'nodes'
1089
1367
  }[] | undefined;
1090
1368
  cutout: boolean;
1091
1369
  collider: boolean;
1370
+ shape?: {
1371
+ tolerance: number;
1372
+ bands: {
1373
+ y0: number;
1374
+ y1: number;
1375
+ polygons: {
1376
+ outer: [number, number][];
1377
+ holes?: [number, number][][] | undefined;
1378
+ }[];
1379
+ }[];
1380
+ } | undefined;
1092
1381
  triangles: number;
1093
1382
  coverage?: number | undefined;
1094
1383
  uncovered?: {
@@ -1112,6 +1401,10 @@ export declare function planSceneNodeChanges(snapshot: Pick<SceneState, 'nodes'
1112
1401
  roofFace?: "back" | "front" | "left" | "right" | undefined;
1113
1402
  width: number;
1114
1403
  height: number;
1404
+ sidelightLeft?: number | undefined;
1405
+ sidelightRight?: number | undefined;
1406
+ transomHeight?: number | undefined;
1407
+ slidingStyle?: "bypass" | "patio" | undefined;
1115
1408
  mark?: string | undefined;
1116
1409
  constructionType: "framed" | "masonry";
1117
1410
  dimensionReference: "finish-opening" | "masonry-opening" | "nominal" | "rough-opening";
@@ -1123,7 +1416,7 @@ export declare function planSceneNodeChanges(snapshot: Pick<SceneState, 'nodes'
1123
1416
  finishOpeningHeight?: number | undefined;
1124
1417
  doorCategory: "garage" | "interior";
1125
1418
  doorType: "barn" | "double" | "folding" | "french" | "garage-rollup" | "garage-sectional" | "garage-tiltup" | "hinged" | "pocket" | "sliding";
1126
- leafCount: 1 | 2 | 3 | 4;
1419
+ leafCount: 1 | 2 | 3 | 4 | 6 | 8;
1127
1420
  operationState: number;
1128
1421
  slideDirection: "left" | "right";
1129
1422
  trackStyle: "none" | "overhead" | "pocket" | "visible";
@@ -1136,9 +1429,12 @@ export declare function planSceneNodeChanges(snapshot: Pick<SceneState, 'nodes'
1136
1429
  archHeight: number;
1137
1430
  openingRevealRadius: number;
1138
1431
  frameThickness: number;
1139
- frameDepth: number;
1432
+ frameDepth?: number | undefined;
1140
1433
  threshold: boolean;
1141
1434
  thresholdHeight: number;
1435
+ casingFaceA?: boolean | undefined;
1436
+ casingFaceB?: boolean | undefined;
1437
+ casingWidth?: number | undefined;
1142
1438
  hingesSide: "left" | "right";
1143
1439
  swingDirection: "inward" | "outward";
1144
1440
  swingAngle: number;
@@ -1151,11 +1447,14 @@ export declare function planSceneNodeChanges(snapshot: Pick<SceneState, 'nodes'
1151
1447
  panelInset: number;
1152
1448
  }[];
1153
1449
  handle: boolean;
1450
+ handleStyle?: "bar" | "knob" | "lever" | "lever-curved" | "plate" | undefined;
1154
1451
  handleHeight: number;
1155
1452
  handleSide: "left" | "right";
1156
1453
  contentPadding: [number, number];
1157
1454
  doorCloser: boolean;
1158
1455
  panicBar: boolean;
1456
+ panicBarStyle: "crossbar" | "touchbar";
1457
+ panicBarRods: boolean;
1159
1458
  panicBarHeight: number;
1160
1459
  type: "door";
1161
1460
  } | {
@@ -1182,25 +1481,11 @@ export declare function planSceneNodeChanges(snapshot: Pick<SceneState, 'nodes'
1182
1481
  fromIds: string[];
1183
1482
  } | undefined;
1184
1483
  } | undefined;
1185
- id: `window_${string}`;
1186
- material?: {
1187
- id?: string | undefined;
1188
- preset?: "brick" | "concrete" | "custom" | "glass" | "marble" | "metal" | "plaster" | "tile" | "white" | "wood" | undefined;
1189
- properties?: {
1190
- color: string;
1191
- roughness: number;
1192
- metalness: number;
1193
- opacity: number;
1194
- transparent: boolean;
1195
- side: "back" | "double" | "front";
1196
- } | undefined;
1197
- texture?: {
1198
- url: string;
1199
- repeat?: [number, number] | undefined;
1200
- scale?: number | undefined;
1201
- } | undefined;
1202
- } | undefined;
1203
- slots?: Record<string, string> | undefined;
1484
+ id: `column_${string}`;
1485
+ children: string[];
1486
+ position: [number, number, number];
1487
+ rotation: number;
1488
+ supportSlabId?: string | undefined;
1204
1489
  source?: {
1205
1490
  kind: "script";
1206
1491
  meta?: {
@@ -1263,6 +1548,16 @@ export declare function planSceneNodeChanges(snapshot: Pick<SceneState, 'nodes'
1263
1548
  color: string;
1264
1549
  intensity: number;
1265
1550
  distance?: number | undefined;
1551
+ spot?: {
1552
+ direction: [number, number, number];
1553
+ angle: number;
1554
+ softness: number;
1555
+ } | undefined;
1556
+ shadows?: boolean | undefined;
1557
+ glow?: {
1558
+ size: number;
1559
+ strength: number;
1560
+ } | undefined;
1266
1561
  }[];
1267
1562
  undersides: {
1268
1563
  part?: string | undefined;
@@ -1281,6 +1576,17 @@ export declare function planSceneNodeChanges(snapshot: Pick<SceneState, 'nodes'
1281
1576
  }[] | undefined;
1282
1577
  cutout: boolean;
1283
1578
  collider: boolean;
1579
+ shape?: {
1580
+ tolerance: number;
1581
+ bands: {
1582
+ y0: number;
1583
+ y1: number;
1584
+ polygons: {
1585
+ outer: [number, number][];
1586
+ holes?: [number, number][][] | undefined;
1587
+ }[];
1588
+ }[];
1589
+ } | undefined;
1284
1590
  triangles: number;
1285
1591
  coverage?: number | undefined;
1286
1592
  uncovered?: {
@@ -1294,54 +1600,104 @@ export declare function planSceneNodeChanges(snapshot: Pick<SceneState, 'nodes'
1294
1600
  floorPlan: string;
1295
1601
  } | undefined;
1296
1602
  } | undefined;
1297
- position: [number, number, number];
1298
- rotation: [number, number, number];
1299
- side?: "back" | "front" | undefined;
1300
- verticalAnchor?: "floor" | "wall" | undefined;
1301
- floorThresholdVersion: 0 | 1;
1302
- wallId?: string | undefined;
1303
- dormerId?: string | undefined;
1304
- dormerFace?: "back" | "front" | "left" | "right" | undefined;
1305
- roofSegmentId?: string | undefined;
1306
- roofFace?: "back" | "front" | "left" | "right" | undefined;
1307
- width: number;
1308
- height: number;
1309
- mark?: string | undefined;
1310
- constructionType: "framed" | "masonry";
1311
- dimensionReference: "finish-opening" | "masonry-opening" | "nominal" | "rough-opening";
1312
- roughOpeningWidth?: number | undefined;
1313
- roughOpeningHeight?: number | undefined;
1314
- masonryOpeningWidth?: number | undefined;
1315
- masonryOpeningHeight?: number | undefined;
1316
- finishOpeningWidth?: number | undefined;
1317
- finishOpeningHeight?: number | undefined;
1318
- openingKind: "opening" | "window";
1319
- windowType: "awning" | "bay" | "bow" | "casement" | "double-hung" | "fixed" | "hopper" | "louvered" | "single-hung" | "sliding";
1320
- operationState: number;
1321
- awningDirection: "down" | "up";
1322
- casementStyle: "french" | "single";
1323
- hingesSide: "left" | "right";
1324
- openingShape: "arch" | "rectangle" | "rounded";
1325
- openingRadiusMode: "all" | "individual";
1326
- openingCornerRadii: [number, number, number, number];
1327
- cornerRadius: number;
1328
- archHeight: number;
1329
- openingRevealRadius: number;
1330
- frameThickness: number;
1331
- frameDepth: number;
1332
- columnRatios: number[];
1333
- rowRatios: number[];
1334
- columnDividerThickness: number;
1335
- rowDividerThickness: number;
1336
- corner?: {
1337
- end: "end" | "start";
1338
- partnerId: string;
1339
- post: "none" | "post";
1340
- } | undefined;
1341
- sill: boolean;
1342
- sillDepth: number;
1343
- sillThickness: number;
1344
- type: "window";
1603
+ style: "cluster" | "dravidian-carved" | "faceted" | "fluted" | "lathe-turned" | "plain";
1604
+ crossSection: "octagonal" | "rectangular" | "round" | "sixteen-sided" | "square";
1605
+ height: number;
1606
+ radius: number;
1607
+ width: number;
1608
+ depth: number;
1609
+ edgeSoftness: number;
1610
+ baseHeight: number;
1611
+ capitalHeight: number;
1612
+ shaftProfile: "baluster" | "bulged" | "hourglass" | "straight" | "tapered";
1613
+ shaftTaper: number;
1614
+ shaftBulge: number;
1615
+ shaftStartScale: number;
1616
+ shaftEndScale: number;
1617
+ shaftSegmentCount: number;
1618
+ shaftTwistStep: number;
1619
+ shaftCornerRadius: number;
1620
+ shaftDetail: "fluted" | "lathe-turned" | "none" | "panelled" | "spiral";
1621
+ baseStyle: "lotus" | "none" | "panelled-pedestal" | "ribbed-lotus" | "round-rings" | "simple-square" | "square-plinth" | "stepped-square";
1622
+ baseWidthScale: number;
1623
+ baseDepthScale: number;
1624
+ baseTierCount: number;
1625
+ baseStepSpread: number;
1626
+ basePlinthHeightRatio: number;
1627
+ baseRoundBandScale: number;
1628
+ baseNeckScale: number;
1629
+ baseRoundBandCount: number;
1630
+ baseRibCount: number;
1631
+ baseCarvingLevel: number;
1632
+ basePanelInset: number;
1633
+ capitalStyle: "corinthian-leaf" | "doric" | "ionic-volute" | "leaf-carved" | "none" | "rounded" | "simple" | "simple-slab" | "south-indian-bracket" | "stepped" | "volute" | "wood-bracket";
1634
+ capitalWidthScale: number;
1635
+ capitalDepthScale: number;
1636
+ capitalTierCount: number;
1637
+ capitalStepSpread: number;
1638
+ capitalBandCount: number;
1639
+ voluteSize: number;
1640
+ voluteCount: number;
1641
+ leafCount: number;
1642
+ leafRows: number;
1643
+ bracketDepth: number;
1644
+ bracketTierCount: number;
1645
+ pendantCount: number;
1646
+ capitalCarvingLevel: number;
1647
+ ringCount: number;
1648
+ ringPlacement: "bottom" | "ends" | "even" | "top";
1649
+ ringThickness: number;
1650
+ ringSpread: number;
1651
+ fluteCount: number;
1652
+ fluteDepth: number;
1653
+ fluteWidth: number;
1654
+ spiralTwist: number;
1655
+ spiralRibCount: number;
1656
+ panelCount: number;
1657
+ panelInsetDepth: number;
1658
+ panelShape: "arched" | "diamond" | "rectangle";
1659
+ latheRingCount: number;
1660
+ latheRingSpacing: "bottom" | "ends" | "even" | "top";
1661
+ carvingLevel: number;
1662
+ carvingPlacement: "all" | "base" | "capital" | "shaft";
1663
+ lowerBandEnabled: boolean;
1664
+ lowerBandHeight: number;
1665
+ lowerBandCarvingLevel: number;
1666
+ dentilCount: number;
1667
+ beadCount: number;
1668
+ supportStyle: "a-frame" | "box-frame" | "k-brace" | "portal-frame" | "single-strut" | "trestle" | "tripod" | "v-frame" | "vertical" | "x-brace" | "y-frame";
1669
+ braceWidth: number;
1670
+ braceDepth: number;
1671
+ braceBottomSpread: number;
1672
+ braceTopSpread: number;
1673
+ bracePlateEnabled: boolean;
1674
+ role?: "ornament" | "post" | undefined;
1675
+ postBase?: "none" | "pier" | "post-base" | undefined;
1676
+ material?: {
1677
+ id?: string | undefined;
1678
+ preset?: "brick" | "concrete" | "custom" | "glass" | "marble" | "metal" | "plaster" | "tile" | "white" | "wood" | undefined;
1679
+ properties?: {
1680
+ color: string;
1681
+ roughness: number;
1682
+ metalness: number;
1683
+ opacity: number;
1684
+ transparent: boolean;
1685
+ side: "back" | "double" | "front";
1686
+ } | undefined;
1687
+ texture?: {
1688
+ url: string;
1689
+ repeat?: [number, number] | undefined;
1690
+ scale?: number | undefined;
1691
+ offset?: [number, number] | undefined;
1692
+ normalMap?: string | undefined;
1693
+ normalScale?: number | undefined;
1694
+ bumpMap?: string | undefined;
1695
+ bumpScale?: number | undefined;
1696
+ } | undefined;
1697
+ } | undefined;
1698
+ materialPreset?: string | undefined;
1699
+ slots?: Record<string, string> | undefined;
1700
+ type: "column";
1345
1701
  } | {
1346
1702
  object: "node";
1347
1703
  name?: string | undefined;
@@ -1382,6 +1738,11 @@ export declare function planSceneNodeChanges(snapshot: Pick<SceneState, 'nodes'
1382
1738
  url: string;
1383
1739
  repeat?: [number, number] | undefined;
1384
1740
  scale?: number | undefined;
1741
+ offset?: [number, number] | undefined;
1742
+ normalMap?: string | undefined;
1743
+ normalScale?: number | undefined;
1744
+ bumpMap?: string | undefined;
1745
+ bumpScale?: number | undefined;
1385
1746
  } | undefined;
1386
1747
  } | undefined;
1387
1748
  materialPreset?: string | undefined;
@@ -1400,6 +1761,11 @@ export declare function planSceneNodeChanges(snapshot: Pick<SceneState, 'nodes'
1400
1761
  url: string;
1401
1762
  repeat?: [number, number] | undefined;
1402
1763
  scale?: number | undefined;
1764
+ offset?: [number, number] | undefined;
1765
+ normalMap?: string | undefined;
1766
+ normalScale?: number | undefined;
1767
+ bumpMap?: string | undefined;
1768
+ bumpScale?: number | undefined;
1403
1769
  } | undefined;
1404
1770
  } | undefined;
1405
1771
  topMaterialPreset?: string | undefined;
@@ -1418,6 +1784,11 @@ export declare function planSceneNodeChanges(snapshot: Pick<SceneState, 'nodes'
1418
1784
  url: string;
1419
1785
  repeat?: [number, number] | undefined;
1420
1786
  scale?: number | undefined;
1787
+ offset?: [number, number] | undefined;
1788
+ normalMap?: string | undefined;
1789
+ normalScale?: number | undefined;
1790
+ bumpMap?: string | undefined;
1791
+ bumpScale?: number | undefined;
1421
1792
  } | undefined;
1422
1793
  } | undefined;
1423
1794
  edgeMaterialPreset?: string | undefined;
@@ -1436,9 +1807,37 @@ export declare function planSceneNodeChanges(snapshot: Pick<SceneState, 'nodes'
1436
1807
  url: string;
1437
1808
  repeat?: [number, number] | undefined;
1438
1809
  scale?: number | undefined;
1810
+ offset?: [number, number] | undefined;
1811
+ normalMap?: string | undefined;
1812
+ normalScale?: number | undefined;
1813
+ bumpMap?: string | undefined;
1814
+ bumpScale?: number | undefined;
1439
1815
  } | undefined;
1440
1816
  } | undefined;
1441
1817
  wallMaterialPreset?: string | undefined;
1818
+ heelMaterial?: {
1819
+ id?: string | undefined;
1820
+ preset?: "brick" | "concrete" | "custom" | "glass" | "marble" | "metal" | "plaster" | "tile" | "white" | "wood" | undefined;
1821
+ properties?: {
1822
+ color: string;
1823
+ roughness: number;
1824
+ metalness: number;
1825
+ opacity: number;
1826
+ transparent: boolean;
1827
+ side: "back" | "double" | "front";
1828
+ } | undefined;
1829
+ texture?: {
1830
+ url: string;
1831
+ repeat?: [number, number] | undefined;
1832
+ scale?: number | undefined;
1833
+ offset?: [number, number] | undefined;
1834
+ normalMap?: string | undefined;
1835
+ normalScale?: number | undefined;
1836
+ bumpMap?: string | undefined;
1837
+ bumpScale?: number | undefined;
1838
+ } | undefined;
1839
+ } | undefined;
1840
+ heelMaterialPreset?: string | undefined;
1442
1841
  position: [number, number, number];
1443
1842
  rotation: number;
1444
1843
  support: {
@@ -1457,6 +1856,7 @@ export declare function planSceneNodeChanges(snapshot: Pick<SceneState, 'nodes'
1457
1856
  role: "air" | "covering" | "deck" | "fill" | "finish" | "furring" | "glazing" | "insulation" | "lining" | "membrane" | "sheathing" | "shell" | "structure" | "substrate" | "underlay";
1458
1857
  thickness: number;
1459
1858
  core?: true | undefined;
1859
+ spacing?: number | undefined;
1460
1860
  material?: string | undefined;
1461
1861
  slot?: string | undefined;
1462
1862
  returns?: boolean | undefined;
@@ -1471,6 +1871,7 @@ export declare function planSceneNodeChanges(snapshot: Pick<SceneState, 'nodes'
1471
1871
  role: "air" | "covering" | "deck" | "fill" | "finish" | "furring" | "glazing" | "insulation" | "lining" | "membrane" | "sheathing" | "shell" | "structure" | "substrate" | "underlay";
1472
1872
  thickness: number;
1473
1873
  core?: true | undefined;
1874
+ spacing?: number | undefined;
1474
1875
  material?: string | undefined;
1475
1876
  slot?: string | undefined;
1476
1877
  returns?: boolean | undefined;
@@ -1484,9 +1885,224 @@ export declare function planSceneNodeChanges(snapshot: Pick<SceneState, 'nodes'
1484
1885
  presetId?: string | undefined;
1485
1886
  cavityInsulation?: string | undefined;
1486
1887
  } | undefined;
1487
- slots?: Record<string, string> | undefined;
1488
- children: `rseg_${string}`[];
1489
- type: "roof";
1888
+ slots?: Record<string, string> | undefined;
1889
+ children: `rseg_${string}`[];
1890
+ type: "roof";
1891
+ } | {
1892
+ object: "node";
1893
+ name?: string | undefined;
1894
+ parentId: string | null;
1895
+ visible: boolean;
1896
+ camera?: {
1897
+ position: [number, number, number];
1898
+ target: [number, number, number];
1899
+ mode: "orthographic" | "perspective";
1900
+ fov?: number | undefined;
1901
+ zoom?: number | undefined;
1902
+ } | undefined;
1903
+ metadata: Record<string, unknown>;
1904
+ provenance?: {
1905
+ refs: {
1906
+ ns?: string | undefined;
1907
+ id: string;
1908
+ role?: "absorbed" | "alias" | "derived" | "piece" | "primary" | undefined;
1909
+ }[];
1910
+ lineage?: {
1911
+ op: "attach" | "convert" | "duplicate" | "import" | "make-independent" | "merge" | "promote" | "split";
1912
+ fromIds: string[];
1913
+ } | undefined;
1914
+ } | undefined;
1915
+ id: `slab_${string}`;
1916
+ material?: {
1917
+ id?: string | undefined;
1918
+ preset?: "brick" | "concrete" | "custom" | "glass" | "marble" | "metal" | "plaster" | "tile" | "white" | "wood" | undefined;
1919
+ properties?: {
1920
+ color: string;
1921
+ roughness: number;
1922
+ metalness: number;
1923
+ opacity: number;
1924
+ transparent: boolean;
1925
+ side: "back" | "double" | "front";
1926
+ } | undefined;
1927
+ texture?: {
1928
+ url: string;
1929
+ repeat?: [number, number] | undefined;
1930
+ scale?: number | undefined;
1931
+ offset?: [number, number] | undefined;
1932
+ normalMap?: string | undefined;
1933
+ normalScale?: number | undefined;
1934
+ bumpMap?: string | undefined;
1935
+ bumpScale?: number | undefined;
1936
+ } | undefined;
1937
+ } | undefined;
1938
+ materialPreset?: string | undefined;
1939
+ slots?: Record<string, string> | undefined;
1940
+ polygon: [number, number][];
1941
+ holes: [number, number][][];
1942
+ holeMetadata: {
1943
+ source: "elevator" | "floor-opening" | "manual" | "room" | "stair";
1944
+ openingId?: string | undefined;
1945
+ stairId?: string | undefined;
1946
+ elevatorId?: string | undefined;
1947
+ }[];
1948
+ elevation: number;
1949
+ floorHeight?: number | undefined;
1950
+ referenceFloorElevation?: number | undefined;
1951
+ foundation?: {
1952
+ type: "none" | "solid";
1953
+ material?: string | {
1954
+ id?: string | undefined;
1955
+ preset?: "brick" | "concrete" | "custom" | "glass" | "marble" | "metal" | "plaster" | "tile" | "white" | "wood" | undefined;
1956
+ properties?: {
1957
+ color: string;
1958
+ roughness: number;
1959
+ metalness: number;
1960
+ opacity: number;
1961
+ transparent: boolean;
1962
+ side: "back" | "double" | "front";
1963
+ } | undefined;
1964
+ texture?: {
1965
+ url: string;
1966
+ repeat?: [number, number] | undefined;
1967
+ scale?: number | undefined;
1968
+ offset?: [number, number] | undefined;
1969
+ normalMap?: string | undefined;
1970
+ normalScale?: number | undefined;
1971
+ bumpMap?: string | undefined;
1972
+ bumpScale?: number | undefined;
1973
+ } | undefined;
1974
+ } | undefined;
1975
+ } | undefined;
1976
+ thickness: number;
1977
+ recessed: boolean;
1978
+ recessedRimElevation?: number | undefined;
1979
+ fillToTerrain?: boolean | undefined;
1980
+ boundary?: "auto" | undefined;
1981
+ support?: "open" | undefined;
1982
+ plateRole?: "base" | "platform" | "sunken" | undefined;
1983
+ railing?: {
1984
+ start: [number, number];
1985
+ end: [number, number];
1986
+ }[] | undefined;
1987
+ zoneIds?: string[] | undefined;
1988
+ associatedZoneIds?: string[] | undefined;
1989
+ autoFromWalls: boolean;
1990
+ surfaceScript?: {
1991
+ kind: "script";
1992
+ meta?: {
1993
+ description?: string | undefined;
1994
+ category?: string | undefined;
1995
+ tags?: string[] | undefined;
1996
+ parent?: string | undefined;
1997
+ } | undefined;
1998
+ language: "bpy" | "three";
1999
+ script: string;
2000
+ params: Record<string, string | number | boolean>;
2001
+ artifact: string;
2002
+ manifest: {
2003
+ bounds: {
2004
+ min: [number, number, number];
2005
+ max: [number, number, number];
2006
+ };
2007
+ params: {
2008
+ id: string;
2009
+ label?: string | undefined;
2010
+ kind: "boolean" | "number" | "string";
2011
+ default: string | number | boolean;
2012
+ min?: number | undefined;
2013
+ max?: number | undefined;
2014
+ step?: number | undefined;
2015
+ unit?: string | undefined;
2016
+ options?: string[] | undefined;
2017
+ }[];
2018
+ parts: {
2019
+ id: string;
2020
+ label?: string | undefined;
2021
+ type?: string | undefined;
2022
+ bounds?: {
2023
+ min: [number, number, number];
2024
+ max: [number, number, number];
2025
+ } | undefined;
2026
+ }[];
2027
+ surfaces: {
2028
+ part?: string | undefined;
2029
+ y: number;
2030
+ polygon: [number, number][];
2031
+ }[];
2032
+ slots: {
2033
+ id: string;
2034
+ label?: string | undefined;
2035
+ color?: string | undefined;
2036
+ roughness?: number | undefined;
2037
+ metalness?: number | undefined;
2038
+ transparent?: boolean | undefined;
2039
+ emissive?: boolean | undefined;
2040
+ }[];
2041
+ anchors: {
2042
+ id: string;
2043
+ position: [number, number, number];
2044
+ normal?: [number, number, number] | undefined;
2045
+ }[];
2046
+ lights: {
2047
+ id: string;
2048
+ position: [number, number, number];
2049
+ color: string;
2050
+ intensity: number;
2051
+ distance?: number | undefined;
2052
+ spot?: {
2053
+ direction: [number, number, number];
2054
+ angle: number;
2055
+ softness: number;
2056
+ } | undefined;
2057
+ shadows?: boolean | undefined;
2058
+ glow?: {
2059
+ size: number;
2060
+ strength: number;
2061
+ } | undefined;
2062
+ }[];
2063
+ undersides: {
2064
+ part?: string | undefined;
2065
+ polygon: [number, number][];
2066
+ plane: [number, number, number, number];
2067
+ }[];
2068
+ animations: {
2069
+ name: string;
2070
+ duration: number;
2071
+ }[];
2072
+ cutters?: {
2073
+ host: "ceiling" | "mounted" | "slab" | "wall";
2074
+ polygon: number[][];
2075
+ minY: number;
2076
+ maxY: number;
2077
+ }[] | undefined;
2078
+ cutout: boolean;
2079
+ collider: boolean;
2080
+ shape?: {
2081
+ tolerance: number;
2082
+ bands: {
2083
+ y0: number;
2084
+ y1: number;
2085
+ polygons: {
2086
+ outer: [number, number][];
2087
+ holes?: [number, number][][] | undefined;
2088
+ }[];
2089
+ }[];
2090
+ } | undefined;
2091
+ triangles: number;
2092
+ coverage?: number | undefined;
2093
+ uncovered?: {
2094
+ min: [number, number];
2095
+ max: [number, number];
2096
+ }[] | undefined;
2097
+ };
2098
+ images?: {
2099
+ artifact: string;
2100
+ thumbnail: string;
2101
+ floorPlan: string;
2102
+ } | undefined;
2103
+ inputs: string;
2104
+ } | undefined;
2105
+ type: "slab";
1490
2106
  } | {
1491
2107
  object: "node";
1492
2108
  name?: string | undefined;
@@ -1612,7 +2228,7 @@ export declare function planSceneNodeChanges(snapshot: Pick<SceneState, 'nodes'
1612
2228
  } | undefined;
1613
2229
  } | undefined;
1614
2230
  id: `wall_${string}`;
1615
- wallType?: "curtain" | "standard" | undefined;
2231
+ wallType?: "curtain" | "railing" | "standard" | undefined;
1616
2232
  curtainWall?: {
1617
2233
  construction: "stick" | "unitized";
1618
2234
  framing: "capped" | "horizontal-caps" | "structural-glazing" | "vertical-caps";
@@ -1646,6 +2262,15 @@ export declare function planSceneNodeChanges(snapshot: Pick<SceneState, 'nodes'
1646
2262
  type: "empty" | "glass" | "solid";
1647
2263
  }[];
1648
2264
  } | undefined;
2265
+ railing?: {
2266
+ style: "balusters" | "boards" | "cable" | "glass" | "metal" | "post-and-rail";
2267
+ postSpacing: number;
2268
+ postSize: number;
2269
+ infillSize: number;
2270
+ infillGap: number;
2271
+ bottomClearance: number;
2272
+ cap: boolean;
2273
+ } | undefined;
1649
2274
  children: (`door_${string}` | `item_${string}` | `leanto_${string}` | `procedural-item_${string}` | `window_${string}`)[];
1650
2275
  material?: {
1651
2276
  id?: string | undefined;
@@ -1662,6 +2287,11 @@ export declare function planSceneNodeChanges(snapshot: Pick<SceneState, 'nodes'
1662
2287
  url: string;
1663
2288
  repeat?: [number, number] | undefined;
1664
2289
  scale?: number | undefined;
2290
+ offset?: [number, number] | undefined;
2291
+ normalMap?: string | undefined;
2292
+ normalScale?: number | undefined;
2293
+ bumpMap?: string | undefined;
2294
+ bumpScale?: number | undefined;
1665
2295
  } | undefined;
1666
2296
  } | undefined;
1667
2297
  materialPreset?: string | undefined;
@@ -1680,6 +2310,11 @@ export declare function planSceneNodeChanges(snapshot: Pick<SceneState, 'nodes'
1680
2310
  url: string;
1681
2311
  repeat?: [number, number] | undefined;
1682
2312
  scale?: number | undefined;
2313
+ offset?: [number, number] | undefined;
2314
+ normalMap?: string | undefined;
2315
+ normalScale?: number | undefined;
2316
+ bumpMap?: string | undefined;
2317
+ bumpScale?: number | undefined;
1683
2318
  } | undefined;
1684
2319
  } | undefined;
1685
2320
  interiorMaterialPreset?: string | undefined;
@@ -1698,6 +2333,11 @@ export declare function planSceneNodeChanges(snapshot: Pick<SceneState, 'nodes'
1698
2333
  url: string;
1699
2334
  repeat?: [number, number] | undefined;
1700
2335
  scale?: number | undefined;
2336
+ offset?: [number, number] | undefined;
2337
+ normalMap?: string | undefined;
2338
+ normalScale?: number | undefined;
2339
+ bumpMap?: string | undefined;
2340
+ bumpScale?: number | undefined;
1701
2341
  } | undefined;
1702
2342
  } | undefined;
1703
2343
  exteriorMaterialPreset?: string | undefined;
@@ -1719,6 +2359,11 @@ export declare function planSceneNodeChanges(snapshot: Pick<SceneState, 'nodes'
1719
2359
  url: string;
1720
2360
  repeat?: [number, number] | undefined;
1721
2361
  scale?: number | undefined;
2362
+ offset?: [number, number] | undefined;
2363
+ normalMap?: string | undefined;
2364
+ normalScale?: number | undefined;
2365
+ bumpMap?: string | undefined;
2366
+ bumpScale?: number | undefined;
1722
2367
  } | undefined;
1723
2368
  } | undefined;
1724
2369
  materialPreset?: string | undefined;
@@ -1739,6 +2384,11 @@ export declare function planSceneNodeChanges(snapshot: Pick<SceneState, 'nodes'
1739
2384
  url: string;
1740
2385
  repeat?: [number, number] | undefined;
1741
2386
  scale?: number | undefined;
2387
+ offset?: [number, number] | undefined;
2388
+ normalMap?: string | undefined;
2389
+ normalScale?: number | undefined;
2390
+ bumpMap?: string | undefined;
2391
+ bumpScale?: number | undefined;
1742
2392
  } | undefined;
1743
2393
  } | undefined;
1744
2394
  materialPreset?: string | undefined;
@@ -1760,6 +2410,7 @@ export declare function planSceneNodeChanges(snapshot: Pick<SceneState, 'nodes'
1760
2410
  role: "air" | "covering" | "deck" | "fill" | "finish" | "furring" | "glazing" | "insulation" | "lining" | "membrane" | "sheathing" | "shell" | "structure" | "substrate" | "underlay";
1761
2411
  thickness: number;
1762
2412
  core?: true | undefined;
2413
+ spacing?: number | undefined;
1763
2414
  material?: string | undefined;
1764
2415
  slot?: string | undefined;
1765
2416
  returns?: boolean | undefined;
@@ -1774,6 +2425,7 @@ export declare function planSceneNodeChanges(snapshot: Pick<SceneState, 'nodes'
1774
2425
  role: "air" | "covering" | "deck" | "fill" | "finish" | "furring" | "glazing" | "insulation" | "lining" | "membrane" | "sheathing" | "shell" | "structure" | "substrate" | "underlay";
1775
2426
  thickness: number;
1776
2427
  core?: true | undefined;
2428
+ spacing?: number | undefined;
1777
2429
  material?: string | undefined;
1778
2430
  slot?: string | undefined;
1779
2431
  returns?: boolean | undefined;
@@ -1789,6 +2441,7 @@ export declare function planSceneNodeChanges(snapshot: Pick<SceneState, 'nodes'
1789
2441
  } | undefined;
1790
2442
  justification?: "a" | "b" | undefined;
1791
2443
  height?: number | undefined;
2444
+ endHeightOffset?: number | undefined;
1792
2445
  curveOffset?: number | undefined;
1793
2446
  supportSlabId?: string | undefined;
1794
2447
  supportOffset?: number | undefined;
@@ -1891,6 +2544,16 @@ export declare function planSceneNodeChanges(snapshot: Pick<SceneState, 'nodes'
1891
2544
  color: string;
1892
2545
  intensity: number;
1893
2546
  distance?: number | undefined;
2547
+ spot?: {
2548
+ direction: [number, number, number];
2549
+ angle: number;
2550
+ softness: number;
2551
+ } | undefined;
2552
+ shadows?: boolean | undefined;
2553
+ glow?: {
2554
+ size: number;
2555
+ strength: number;
2556
+ } | undefined;
1894
2557
  }[];
1895
2558
  undersides: {
1896
2559
  part?: string | undefined;
@@ -1909,6 +2572,17 @@ export declare function planSceneNodeChanges(snapshot: Pick<SceneState, 'nodes'
1909
2572
  }[] | undefined;
1910
2573
  cutout: boolean;
1911
2574
  collider: boolean;
2575
+ shape?: {
2576
+ tolerance: number;
2577
+ bands: {
2578
+ y0: number;
2579
+ y1: number;
2580
+ polygons: {
2581
+ outer: [number, number][];
2582
+ holes?: [number, number][][] | undefined;
2583
+ }[];
2584
+ }[];
2585
+ } | undefined;
1912
2586
  triangles: number;
1913
2587
  coverage?: number | undefined;
1914
2588
  uncovered?: {
@@ -1986,6 +2660,16 @@ export declare function planSceneNodeChanges(snapshot: Pick<SceneState, 'nodes'
1986
2660
  color: string;
1987
2661
  intensity: number;
1988
2662
  distance?: number | undefined;
2663
+ spot?: {
2664
+ direction: [number, number, number];
2665
+ angle: number;
2666
+ softness: number;
2667
+ } | undefined;
2668
+ shadows?: boolean | undefined;
2669
+ glow?: {
2670
+ size: number;
2671
+ strength: number;
2672
+ } | undefined;
1989
2673
  }[];
1990
2674
  undersides: {
1991
2675
  part?: string | undefined;
@@ -2004,6 +2688,17 @@ export declare function planSceneNodeChanges(snapshot: Pick<SceneState, 'nodes'
2004
2688
  }[] | undefined;
2005
2689
  cutout: boolean;
2006
2690
  collider: boolean;
2691
+ shape?: {
2692
+ tolerance: number;
2693
+ bands: {
2694
+ y0: number;
2695
+ y1: number;
2696
+ polygons: {
2697
+ outer: [number, number][];
2698
+ holes?: [number, number][][] | undefined;
2699
+ }[];
2700
+ }[];
2701
+ } | undefined;
2007
2702
  triangles: number;
2008
2703
  coverage?: number | undefined;
2009
2704
  uncovered?: {
@@ -2025,34 +2720,6 @@ export declare function planSceneNodeChanges(snapshot: Pick<SceneState, 'nodes'
2025
2720
  frontSide: "exterior" | "interior" | "unknown";
2026
2721
  backSide: "exterior" | "interior" | "unknown";
2027
2722
  type: "wall";
2028
- } | {
2029
- object: "node";
2030
- name?: string | undefined;
2031
- parentId: string | null;
2032
- visible: boolean;
2033
- camera?: {
2034
- position: [number, number, number];
2035
- target: [number, number, number];
2036
- mode: "orthographic" | "perspective";
2037
- fov?: number | undefined;
2038
- zoom?: number | undefined;
2039
- } | undefined;
2040
- metadata: Record<string, unknown>;
2041
- provenance?: {
2042
- refs: {
2043
- ns?: string | undefined;
2044
- id: string;
2045
- role?: "absorbed" | "alias" | "derived" | "piece" | "primary" | undefined;
2046
- }[];
2047
- lineage?: {
2048
- op: "attach" | "convert" | "duplicate" | "import" | "make-independent" | "merge" | "promote" | "split";
2049
- fromIds: string[];
2050
- } | undefined;
2051
- } | undefined;
2052
- id: `separator_${string}`;
2053
- start: [number, number];
2054
- end: [number, number];
2055
- type: "separator";
2056
2723
  } | {
2057
2724
  object: "node";
2058
2725
  name?: string | undefined;
@@ -2130,6 +2797,11 @@ export declare function planSceneNodeChanges(snapshot: Pick<SceneState, 'nodes'
2130
2797
  url: string;
2131
2798
  repeat?: [number, number] | undefined;
2132
2799
  scale?: number | undefined;
2800
+ offset?: [number, number] | undefined;
2801
+ normalMap?: string | undefined;
2802
+ normalScale?: number | undefined;
2803
+ bumpMap?: string | undefined;
2804
+ bumpScale?: number | undefined;
2133
2805
  } | undefined;
2134
2806
  } | undefined;
2135
2807
  materialPreset?: string | undefined;
@@ -2202,42 +2874,18 @@ export declare function planSceneNodeChanges(snapshot: Pick<SceneState, 'nodes'
2202
2874
  fromIds: string[];
2203
2875
  } | undefined;
2204
2876
  } | undefined;
2205
- id: `construction-dimension_${string}`;
2206
- anchors: ({
2207
- kind: "feature";
2208
- reference: {
2209
- nodeId: string;
2210
- featureId: string;
2211
- parameters?: Record<string, string | number | boolean> | undefined;
2212
- };
2213
- fallback: [number, number, number];
2214
- } | [number, number, number])[];
2215
- baseline: {
2216
- origin: [number, number];
2217
- direction: [number, number];
2218
- };
2219
- chainMode: "continuous" | "point-to-point";
2220
- mode: "angular" | "arc-length" | "center-mark" | "chord" | "coordinate" | "diameter" | "linear" | "radius";
2221
- featureCount: number;
2222
- showCenterMark: boolean;
2223
- prefix: string;
2224
- suffix: string;
2225
- textOverride: string | null;
2226
- datumPolicy: "centerline" | "finish-face" | "structural-face" | "wall-face";
2227
- terminator: "architectural-tick" | "dot" | "filled-arrow" | "open-arrow";
2228
- textPosition: "above" | "centered";
2229
- imperialPrecision: "1" | "1/16" | "1/2" | "1/4" | "1/8";
2230
- metricNotation: "meters" | "millimeters";
2231
- extensionStartGap: number;
2232
- extensionOvershoot: number;
2233
- drawingType: "floor-plan" | "foundation-plan" | "reflected-ceiling-plan" | "roof-plan" | "site-plan";
2234
- drawingOverrides: {
2235
- drawingType: "floor-plan" | "foundation-plan" | "reflected-ceiling-plan" | "roof-plan" | "site-plan";
2236
- presentation: "controlled" | "omit" | "shown";
2237
- suppressedSegmentIndexes: number[];
2238
- }[];
2239
- controllingDimensionId: `construction-dimension_${string}` | null;
2240
- type: "construction-dimension";
2877
+ id: `beam_${string}`;
2878
+ start: [number, number];
2879
+ end: [number, number];
2880
+ width: number;
2881
+ depth: number;
2882
+ size?: string | undefined;
2883
+ plies: number;
2884
+ material: "glulam" | "lvl" | "pressure-treated" | "sawn" | "steel";
2885
+ placement: "dropped" | "flush";
2886
+ topElevation?: number | undefined;
2887
+ supportSlabId?: string | undefined;
2888
+ type: "beam";
2241
2889
  } | {
2242
2890
  object: "node";
2243
2891
  name?: string | undefined;
@@ -2614,6 +3262,16 @@ export declare function planSceneNodeChanges(snapshot: Pick<SceneState, 'nodes'
2614
3262
  color: string;
2615
3263
  intensity: number;
2616
3264
  distance?: number | undefined;
3265
+ spot?: {
3266
+ direction: [number, number, number];
3267
+ angle: number;
3268
+ softness: number;
3269
+ } | undefined;
3270
+ shadows?: boolean | undefined;
3271
+ glow?: {
3272
+ size: number;
3273
+ strength: number;
3274
+ } | undefined;
2617
3275
  }[];
2618
3276
  undersides: {
2619
3277
  part?: string | undefined;
@@ -2632,6 +3290,17 @@ export declare function planSceneNodeChanges(snapshot: Pick<SceneState, 'nodes'
2632
3290
  }[] | undefined;
2633
3291
  cutout: boolean;
2634
3292
  collider: boolean;
3293
+ shape?: {
3294
+ tolerance: number;
3295
+ bands: {
3296
+ y0: number;
3297
+ y1: number;
3298
+ polygons: {
3299
+ outer: [number, number][];
3300
+ holes?: [number, number][][] | undefined;
3301
+ }[];
3302
+ }[];
3303
+ } | undefined;
2635
3304
  triangles: number;
2636
3305
  coverage?: number | undefined;
2637
3306
  uncovered?: {
@@ -2646,6 +3315,19 @@ export declare function planSceneNodeChanges(snapshot: Pick<SceneState, 'nodes'
2646
3315
  } | undefined;
2647
3316
  inputs: string;
2648
3317
  } | undefined;
3318
+ drop?: number | undefined;
3319
+ } | undefined;
3320
+ roomType?: "deck" | "patio" | "porch" | undefined;
3321
+ porchFraming?: {
3322
+ auto?: boolean | undefined;
3323
+ postSize?: string | undefined;
3324
+ postSpacing?: number | undefined;
3325
+ beamSize?: string | undefined;
3326
+ } | undefined;
3327
+ decking?: {
3328
+ boardSize?: "2x4" | "2x6" | "5/4x6" | "composite" | undefined;
3329
+ gap?: number | undefined;
3330
+ direction?: "diagonal" | "parallel" | "perpendicular" | undefined;
2649
3331
  } | undefined;
2650
3332
  ceiling?: {
2651
3333
  regions?: {
@@ -2722,6 +3404,11 @@ export declare function planSceneNodeChanges(snapshot: Pick<SceneState, 'nodes'
2722
3404
  url: string;
2723
3405
  repeat?: [number, number] | undefined;
2724
3406
  scale?: number | undefined;
3407
+ offset?: [number, number] | undefined;
3408
+ normalMap?: string | undefined;
3409
+ normalScale?: number | undefined;
3410
+ bumpMap?: string | undefined;
3411
+ bumpScale?: number | undefined;
2725
3412
  } | undefined;
2726
3413
  } | undefined;
2727
3414
  materialPreset?: string | undefined;
@@ -2736,6 +3423,29 @@ export declare function planSceneNodeChanges(snapshot: Pick<SceneState, 'nodes'
2736
3423
  }[];
2737
3424
  openingIds?: string[] | undefined;
2738
3425
  height?: number | undefined;
3426
+ buildUp?: {
3427
+ presetId?: string | undefined;
3428
+ finish?: {
3429
+ kind: "drywall" | "plaster" | "wood-plank";
3430
+ thickness: number;
3431
+ name?: string | undefined;
3432
+ } | undefined;
3433
+ framing?: {
3434
+ system: "joists" | "truss-chords";
3435
+ size: "2x10" | "2x12" | "2x4" | "2x6" | "2x8";
3436
+ spacing: number;
3437
+ } | undefined;
3438
+ decking?: {
3439
+ kind: "osb" | "plywood";
3440
+ thickness: number;
3441
+ name?: string | undefined;
3442
+ } | undefined;
3443
+ insulation?: {
3444
+ kind: "batt" | "blown" | "rigid";
3445
+ thickness: number;
3446
+ name?: string | undefined;
3447
+ } | undefined;
3448
+ } | undefined;
2739
3449
  regions?: {
2740
3450
  id: string;
2741
3451
  polygon: [number, number][];
@@ -2745,78 +3455,6 @@ export declare function planSceneNodeChanges(snapshot: Pick<SceneState, 'nodes'
2745
3455
  zoneId?: string | undefined;
2746
3456
  autoFromWalls: boolean;
2747
3457
  type: "ceiling";
2748
- } | {
2749
- object: "node";
2750
- name?: string | undefined;
2751
- parentId: string | null;
2752
- visible: boolean;
2753
- camera?: {
2754
- position: [number, number, number];
2755
- target: [number, number, number];
2756
- mode: "orthographic" | "perspective";
2757
- fov?: number | undefined;
2758
- zoom?: number | undefined;
2759
- } | undefined;
2760
- metadata: Record<string, unknown>;
2761
- provenance?: {
2762
- refs: {
2763
- ns?: string | undefined;
2764
- id: string;
2765
- role?: "absorbed" | "alias" | "derived" | "piece" | "primary" | undefined;
2766
- }[];
2767
- lineage?: {
2768
- op: "attach" | "convert" | "duplicate" | "import" | "make-independent" | "merge" | "promote" | "split";
2769
- fromIds: string[];
2770
- } | undefined;
2771
- } | undefined;
2772
- id: `sseg_${string}`;
2773
- material?: {
2774
- id?: string | undefined;
2775
- preset?: "brick" | "concrete" | "custom" | "glass" | "marble" | "metal" | "plaster" | "tile" | "white" | "wood" | undefined;
2776
- properties?: {
2777
- color: string;
2778
- roughness: number;
2779
- metalness: number;
2780
- opacity: number;
2781
- transparent: boolean;
2782
- side: "back" | "double" | "front";
2783
- } | undefined;
2784
- texture?: {
2785
- url: string;
2786
- repeat?: [number, number] | undefined;
2787
- scale?: number | undefined;
2788
- } | undefined;
2789
- } | undefined;
2790
- materialPreset?: string | undefined;
2791
- slots?: Record<string, string> | undefined;
2792
- position: [number, number, number];
2793
- rotation: number;
2794
- segmentType: "landing" | "stair";
2795
- width: number;
2796
- length: number;
2797
- height: number;
2798
- stepCount: number;
2799
- attachmentSide: "front" | "left" | "right";
2800
- fillToFloor: boolean;
2801
- construction?: {
2802
- mode: "center-stringer" | "open" | "side-stringers" | "solid" | "waist";
2803
- waistThickness: number;
2804
- treadThickness: number;
2805
- riserThickness: number;
2806
- nosing: number;
2807
- finishThickness: number;
2808
- closedRisers: boolean;
2809
- stringerWidth: number;
2810
- stringerDepth: number;
2811
- } | undefined;
2812
- winder?: {
2813
- turn: "left" | "right";
2814
- innerGap: number;
2815
- walkingLineOffset: number;
2816
- division: "equal-angle" | "equal-going";
2817
- } | undefined;
2818
- thickness: number;
2819
- type: "stair-segment";
2820
3458
  } | {
2821
3459
  object: "node";
2822
3460
  name?: string | undefined;
@@ -2857,6 +3495,11 @@ export declare function planSceneNodeChanges(snapshot: Pick<SceneState, 'nodes'
2857
3495
  url: string;
2858
3496
  repeat?: [number, number] | undefined;
2859
3497
  scale?: number | undefined;
3498
+ offset?: [number, number] | undefined;
3499
+ normalMap?: string | undefined;
3500
+ normalScale?: number | undefined;
3501
+ bumpMap?: string | undefined;
3502
+ bumpScale?: number | undefined;
2860
3503
  } | undefined;
2861
3504
  } | undefined;
2862
3505
  materialPreset?: string | undefined;
@@ -2875,6 +3518,11 @@ export declare function planSceneNodeChanges(snapshot: Pick<SceneState, 'nodes'
2875
3518
  url: string;
2876
3519
  repeat?: [number, number] | undefined;
2877
3520
  scale?: number | undefined;
3521
+ offset?: [number, number] | undefined;
3522
+ normalMap?: string | undefined;
3523
+ normalScale?: number | undefined;
3524
+ bumpMap?: string | undefined;
3525
+ bumpScale?: number | undefined;
2878
3526
  } | undefined;
2879
3527
  } | undefined;
2880
3528
  railingMaterialPreset?: string | undefined;
@@ -2893,6 +3541,11 @@ export declare function planSceneNodeChanges(snapshot: Pick<SceneState, 'nodes'
2893
3541
  url: string;
2894
3542
  repeat?: [number, number] | undefined;
2895
3543
  scale?: number | undefined;
3544
+ offset?: [number, number] | undefined;
3545
+ normalMap?: string | undefined;
3546
+ normalScale?: number | undefined;
3547
+ bumpMap?: string | undefined;
3548
+ bumpScale?: number | undefined;
2896
3549
  } | undefined;
2897
3550
  } | undefined;
2898
3551
  treadMaterialPreset?: string | undefined;
@@ -2911,6 +3564,11 @@ export declare function planSceneNodeChanges(snapshot: Pick<SceneState, 'nodes'
2911
3564
  url: string;
2912
3565
  repeat?: [number, number] | undefined;
2913
3566
  scale?: number | undefined;
3567
+ offset?: [number, number] | undefined;
3568
+ normalMap?: string | undefined;
3569
+ normalScale?: number | undefined;
3570
+ bumpMap?: string | undefined;
3571
+ bumpScale?: number | undefined;
2914
3572
  } | undefined;
2915
3573
  } | undefined;
2916
3574
  sideMaterialPreset?: string | undefined;
@@ -2949,6 +3607,17 @@ export declare function planSceneNodeChanges(snapshot: Pick<SceneState, 'nodes'
2949
3607
  stringerWidth: number;
2950
3608
  stringerDepth: number;
2951
3609
  } | undefined;
3610
+ structure?: {
3611
+ type: "concrete" | "steel-stringers" | "wood-stringers";
3612
+ stringerStock: "2x10" | "2x12";
3613
+ stringerType: "cut" | "housed";
3614
+ stringerSpacing: number;
3615
+ stringerCount?: number | undefined;
3616
+ treadStock?: "2x12" | "2x6-pair" | "5/4x6-pair" | "plywood-finish" | undefined;
3617
+ closedRisers?: boolean | undefined;
3618
+ treated?: boolean | undefined;
3619
+ nosing?: number | undefined;
3620
+ } | undefined;
2952
3621
  innerRadius: number;
2953
3622
  sweepAngle: number;
2954
3623
  topLandingMode: "integrated" | "none";
@@ -3018,45 +3687,6 @@ export declare function planSceneNodeChanges(snapshot: Pick<SceneState, 'nodes'
3018
3687
  scale: number;
3019
3688
  opacity: number;
3020
3689
  type: "scan";
3021
- } | {
3022
- object: "node";
3023
- name?: string | undefined;
3024
- parentId: string | null;
3025
- visible: boolean;
3026
- camera?: {
3027
- position: [number, number, number];
3028
- target: [number, number, number];
3029
- mode: "orthographic" | "perspective";
3030
- fov?: number | undefined;
3031
- zoom?: number | undefined;
3032
- } | undefined;
3033
- metadata: Record<string, unknown>;
3034
- provenance?: {
3035
- refs: {
3036
- ns?: string | undefined;
3037
- id: string;
3038
- role?: "absorbed" | "alias" | "derived" | "piece" | "primary" | undefined;
3039
- }[];
3040
- lineage?: {
3041
- op: "attach" | "convert" | "duplicate" | "import" | "make-independent" | "merge" | "promote" | "split";
3042
- fromIds: string[];
3043
- } | undefined;
3044
- } | undefined;
3045
- id: `guide_${string}`;
3046
- url: string;
3047
- position: [number, number, number];
3048
- rotation: [number, number, number];
3049
- scale: number;
3050
- opacity: number;
3051
- scaleReference: {
3052
- start: [number, number];
3053
- end: [number, number];
3054
- realLengthMeters: number;
3055
- measuredLengthUnits: number;
3056
- metersPerUnit: number;
3057
- label: string;
3058
- } | null;
3059
- type: "guide";
3060
3690
  } | {
3061
3691
  object: "node";
3062
3692
  name?: string | undefined;
@@ -3148,51 +3778,22 @@ export declare function planSceneNodeChanges(snapshot: Pick<SceneState, 'nodes'
3148
3778
  featureId: string;
3149
3779
  parameters?: Record<string, string | number | boolean> | undefined;
3150
3780
  };
3151
- fallback: [number, number, number];
3152
- } | [number, number, number])[];
3153
- } | {
3154
- kind: "volume";
3155
- base: ({
3156
- kind: "feature";
3157
- reference: {
3158
- nodeId: string;
3159
- featureId: string;
3160
- parameters?: Record<string, string | number | boolean> | undefined;
3161
- };
3162
- fallback: [number, number, number];
3163
- } | [number, number, number])[];
3164
- extrusion: [number, number, number];
3165
- };
3166
- type: "measurement";
3167
- } | {
3168
- object: "node";
3169
- name?: string | undefined;
3170
- parentId: string | null;
3171
- visible: boolean;
3172
- camera?: {
3173
- position: [number, number, number];
3174
- target: [number, number, number];
3175
- mode: "orthographic" | "perspective";
3176
- fov?: number | undefined;
3177
- zoom?: number | undefined;
3178
- } | undefined;
3179
- metadata: Record<string, unknown>;
3180
- provenance?: {
3181
- refs: {
3182
- ns?: string | undefined;
3183
- id: string;
3184
- role?: "absorbed" | "alias" | "derived" | "piece" | "primary" | undefined;
3185
- }[];
3186
- lineage?: {
3187
- op: "attach" | "convert" | "duplicate" | "import" | "make-independent" | "merge" | "promote" | "split";
3188
- fromIds: string[];
3189
- } | undefined;
3190
- } | undefined;
3191
- id: `spawn_${string}`;
3192
- position: [number, number, number];
3193
- rotation: number;
3194
- supportSlabId?: string | undefined;
3195
- type: "spawn";
3781
+ fallback: [number, number, number];
3782
+ } | [number, number, number])[];
3783
+ } | {
3784
+ kind: "volume";
3785
+ base: ({
3786
+ kind: "feature";
3787
+ reference: {
3788
+ nodeId: string;
3789
+ featureId: string;
3790
+ parameters?: Record<string, string | number | boolean> | undefined;
3791
+ };
3792
+ fallback: [number, number, number];
3793
+ } | [number, number, number])[];
3794
+ extrusion: [number, number, number];
3795
+ };
3796
+ type: "measurement";
3196
3797
  } | {
3197
3798
  object: "node";
3198
3799
  name?: string | undefined;
@@ -3248,6 +3849,11 @@ export declare function planSceneNodeChanges(snapshot: Pick<SceneState, 'nodes'
3248
3849
  url: string;
3249
3850
  repeat?: [number, number] | undefined;
3250
3851
  scale?: number | undefined;
3852
+ offset?: [number, number] | undefined;
3853
+ normalMap?: string | undefined;
3854
+ normalScale?: number | undefined;
3855
+ bumpMap?: string | undefined;
3856
+ bumpScale?: number | undefined;
3251
3857
  } | undefined;
3252
3858
  } | undefined;
3253
3859
  materialPreset?: string | undefined;
@@ -3331,19 +3937,29 @@ export declare function planSceneNodeChanges(snapshot: Pick<SceneState, 'nodes'
3331
3937
  fromIds: string[];
3332
3938
  } | undefined;
3333
3939
  } | undefined;
3334
- id: `duct-terminal_${string}`;
3940
+ id: `duct-fitting_${string}`;
3335
3941
  position: [number, number, number];
3336
- rotation: number;
3337
- supportSlabId?: string | undefined;
3338
- terminalType: "diffuser" | "return-grille" | "supply-register";
3339
- mount: "ceiling" | "floor" | "wall";
3942
+ rotation: [number, number, number];
3943
+ fittingType: "access-panel" | "coupling" | "cross" | "damper" | "elbow" | "end-cap" | "reducer" | "tee" | "transition";
3944
+ shape: "oval" | "rect" | "round";
3945
+ inletShape?: "oval" | "rect" | "round" | undefined;
3946
+ outletShape?: "oval" | "rect" | "round" | undefined;
3340
3947
  width: number;
3341
- depth: number;
3342
- collarShape: "oval" | "rect" | "round";
3343
- collarDiameter: number;
3344
- collarWidth: number;
3345
- collarHeight: number;
3346
- type: "duct-terminal";
3948
+ height: number;
3949
+ shape2: "oval" | "rect" | "round";
3950
+ width2: number;
3951
+ height2: number;
3952
+ angle: number;
3953
+ branchAngle: number;
3954
+ diameter: number;
3955
+ diameter2: number;
3956
+ ductMaterial: "duct-board" | "flex" | "sheet-metal";
3957
+ system: "return" | "supply";
3958
+ damperAngle: number;
3959
+ panelWidth: number;
3960
+ panelHeight: number;
3961
+ slots?: Record<string, string> | undefined;
3962
+ type: "duct-fitting";
3347
3963
  } | {
3348
3964
  object: "node";
3349
3965
  name?: string | undefined;
@@ -3368,12 +3984,23 @@ export declare function planSceneNodeChanges(snapshot: Pick<SceneState, 'nodes'
3368
3984
  fromIds: string[];
3369
3985
  } | undefined;
3370
3986
  } | undefined;
3371
- id: `lineset_${string}`;
3372
- path: [number, number, number][];
3373
- suctionDiameter: number;
3374
- liquidDiameter: number;
3375
- insulated: boolean;
3376
- type: "lineset";
3987
+ id: `hvac-equipment_${string}`;
3988
+ position: [number, number, number];
3989
+ rotation: number;
3990
+ supportSlabId?: string | undefined;
3991
+ equipmentType: "air-handler" | "condenser" | "furnace";
3992
+ width: number;
3993
+ depth: number;
3994
+ height: number;
3995
+ supplyShape: "oval" | "rect" | "round";
3996
+ returnShape: "oval" | "rect" | "round";
3997
+ supplyDiameter: number;
3998
+ returnDiameter: number;
3999
+ supplyWidth: number;
4000
+ supplyHeight: number;
4001
+ returnWidth: number;
4002
+ returnHeight: number;
4003
+ type: "hvac-equipment";
3377
4004
  } | {
3378
4005
  object: "node";
3379
4006
  name?: string | undefined;
@@ -3398,10 +4025,12 @@ export declare function planSceneNodeChanges(snapshot: Pick<SceneState, 'nodes'
3398
4025
  fromIds: string[];
3399
4026
  } | undefined;
3400
4027
  } | undefined;
3401
- id: `liquid-line_${string}`;
4028
+ id: `lineset_${string}`;
3402
4029
  path: [number, number, number][];
3403
- diameter: number;
3404
- type: "liquid-line";
4030
+ suctionDiameter: number;
4031
+ liquidDiameter: number;
4032
+ insulated: boolean;
4033
+ type: "lineset";
3405
4034
  } | {
3406
4035
  object: "node";
3407
4036
  name?: string | undefined;
@@ -3448,6 +4077,41 @@ export declare function planSceneNodeChanges(snapshot: Pick<SceneState, 'nodes'
3448
4077
  pipeMaterial: "abs" | "cast-iron" | "pvc";
3449
4078
  system: "vent" | "waste";
3450
4079
  type: "pipe-segment";
4080
+ } | {
4081
+ object: "node";
4082
+ name?: string | undefined;
4083
+ parentId: string | null;
4084
+ visible: boolean;
4085
+ camera?: {
4086
+ position: [number, number, number];
4087
+ target: [number, number, number];
4088
+ mode: "orthographic" | "perspective";
4089
+ fov?: number | undefined;
4090
+ zoom?: number | undefined;
4091
+ } | undefined;
4092
+ metadata: Record<string, unknown>;
4093
+ provenance?: {
4094
+ refs: {
4095
+ ns?: string | undefined;
4096
+ id: string;
4097
+ role?: "absorbed" | "alias" | "derived" | "piece" | "primary" | undefined;
4098
+ }[];
4099
+ lineage?: {
4100
+ op: "attach" | "convert" | "duplicate" | "import" | "make-independent" | "merge" | "promote" | "split";
4101
+ fromIds: string[];
4102
+ } | undefined;
4103
+ } | undefined;
4104
+ id: `pipe-fitting_${string}`;
4105
+ position: [number, number, number];
4106
+ rotation: [number, number, number];
4107
+ fittingType: "cleanout" | "coupling" | "cross" | "elbow" | "end-cap" | "reducer" | "sanitary-tee" | "wye";
4108
+ angle: number;
4109
+ diameter: number;
4110
+ diameter2: number;
4111
+ cleanoutStyle: "end" | "inline";
4112
+ pipeMaterial: "abs" | "cast-iron" | "pvc";
4113
+ system: "vent" | "waste";
4114
+ type: "pipe-fitting";
3451
4115
  } | {
3452
4116
  object: "node";
3453
4117
  name?: string | undefined;
@@ -3504,7 +4168,7 @@ export declare function planSceneNodeChanges(snapshot: Pick<SceneState, 'nodes'
3504
4168
  } | undefined;
3505
4169
  } | undefined;
3506
4170
  id: `level_${string}`;
3507
- 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}`)[];
4171
+ 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}`)[];
3508
4172
  level: number;
3509
4173
  baseElevation: number;
3510
4174
  height?: number | undefined;
@@ -3549,6 +4213,11 @@ export declare function planSceneNodeChanges(snapshot: Pick<SceneState, 'nodes'
3549
4213
  url: string;
3550
4214
  repeat?: [number, number] | undefined;
3551
4215
  scale?: number | undefined;
4216
+ offset?: [number, number] | undefined;
4217
+ normalMap?: string | undefined;
4218
+ normalScale?: number | undefined;
4219
+ bumpMap?: string | undefined;
4220
+ bumpScale?: number | undefined;
3552
4221
  } | undefined;
3553
4222
  } | undefined;
3554
4223
  materialPreset?: string | undefined;
@@ -3675,6 +4344,11 @@ export declare function planSceneNodeChanges(snapshot: Pick<SceneState, 'nodes'
3675
4344
  url: string;
3676
4345
  repeat?: [number, number] | undefined;
3677
4346
  scale?: number | undefined;
4347
+ offset?: [number, number] | undefined;
4348
+ normalMap?: string | undefined;
4349
+ normalScale?: number | undefined;
4350
+ bumpMap?: string | undefined;
4351
+ bumpScale?: number | undefined;
3678
4352
  } | undefined;
3679
4353
  } | undefined;
3680
4354
  materialPreset?: string | undefined;
@@ -3693,6 +4367,11 @@ export declare function planSceneNodeChanges(snapshot: Pick<SceneState, 'nodes'
3693
4367
  url: string;
3694
4368
  repeat?: [number, number] | undefined;
3695
4369
  scale?: number | undefined;
4370
+ offset?: [number, number] | undefined;
4371
+ normalMap?: string | undefined;
4372
+ normalScale?: number | undefined;
4373
+ bumpMap?: string | undefined;
4374
+ bumpScale?: number | undefined;
3696
4375
  } | undefined;
3697
4376
  } | undefined;
3698
4377
  topMaterialPreset?: string | undefined;
@@ -3711,6 +4390,11 @@ export declare function planSceneNodeChanges(snapshot: Pick<SceneState, 'nodes'
3711
4390
  url: string;
3712
4391
  repeat?: [number, number] | undefined;
3713
4392
  scale?: number | undefined;
4393
+ offset?: [number, number] | undefined;
4394
+ normalMap?: string | undefined;
4395
+ normalScale?: number | undefined;
4396
+ bumpMap?: string | undefined;
4397
+ bumpScale?: number | undefined;
3714
4398
  } | undefined;
3715
4399
  } | undefined;
3716
4400
  sideMaterialPreset?: string | undefined;
@@ -3729,6 +4413,11 @@ export declare function planSceneNodeChanges(snapshot: Pick<SceneState, 'nodes'
3729
4413
  url: string;
3730
4414
  repeat?: [number, number] | undefined;
3731
4415
  scale?: number | undefined;
4416
+ offset?: [number, number] | undefined;
4417
+ normalMap?: string | undefined;
4418
+ normalScale?: number | undefined;
4419
+ bumpMap?: string | undefined;
4420
+ bumpScale?: number | undefined;
3732
4421
  } | undefined;
3733
4422
  } | undefined;
3734
4423
  wallMaterialPreset?: string | undefined;
@@ -3759,6 +4448,78 @@ export declare function planSceneNodeChanges(snapshot: Pick<SceneState, 'nodes'
3759
4448
  windowSillThickness: number;
3760
4449
  children: `window_${string}`[];
3761
4450
  type: "dormer";
4451
+ } | {
4452
+ object: "node";
4453
+ name?: string | undefined;
4454
+ parentId: string | null;
4455
+ visible: boolean;
4456
+ camera?: {
4457
+ position: [number, number, number];
4458
+ target: [number, number, number];
4459
+ mode: "orthographic" | "perspective";
4460
+ fov?: number | undefined;
4461
+ zoom?: number | undefined;
4462
+ } | undefined;
4463
+ metadata: Record<string, unknown>;
4464
+ provenance?: {
4465
+ refs: {
4466
+ ns?: string | undefined;
4467
+ id: string;
4468
+ role?: "absorbed" | "alias" | "derived" | "piece" | "primary" | undefined;
4469
+ }[];
4470
+ lineage?: {
4471
+ op: "attach" | "convert" | "duplicate" | "import" | "make-independent" | "merge" | "promote" | "split";
4472
+ fromIds: string[];
4473
+ } | undefined;
4474
+ } | undefined;
4475
+ id: `gutter_${string}`;
4476
+ material?: {
4477
+ id?: string | undefined;
4478
+ preset?: "brick" | "concrete" | "custom" | "glass" | "marble" | "metal" | "plaster" | "tile" | "white" | "wood" | undefined;
4479
+ properties?: {
4480
+ color: string;
4481
+ roughness: number;
4482
+ metalness: number;
4483
+ opacity: number;
4484
+ transparent: boolean;
4485
+ side: "back" | "double" | "front";
4486
+ } | undefined;
4487
+ texture?: {
4488
+ url: string;
4489
+ repeat?: [number, number] | undefined;
4490
+ scale?: number | undefined;
4491
+ offset?: [number, number] | undefined;
4492
+ normalMap?: string | undefined;
4493
+ normalScale?: number | undefined;
4494
+ bumpMap?: string | undefined;
4495
+ bumpScale?: number | undefined;
4496
+ } | undefined;
4497
+ } | undefined;
4498
+ slots?: Record<string, string> | undefined;
4499
+ materialPreset: string;
4500
+ roofSegmentId?: string | undefined;
4501
+ position: [number, number, number];
4502
+ rotation: number;
4503
+ length: number;
4504
+ arc?: {
4505
+ centerX: number;
4506
+ centerZ: number;
4507
+ radius: number;
4508
+ } | undefined;
4509
+ size: number;
4510
+ thickness: number;
4511
+ profile: "box" | "half-round" | "k-style";
4512
+ endCapLeft: boolean;
4513
+ endCapRight: boolean;
4514
+ hangerStyle: "none" | "strap";
4515
+ hangerSpacing: number;
4516
+ outlets: {
4517
+ id: string;
4518
+ offset: number;
4519
+ diameter: number;
4520
+ generatedBy?: "default-downspout" | undefined;
4521
+ }[];
4522
+ type: "gutter";
3762
4523
  } | {
3763
4524
  object: "node";
3764
4525
  name?: string | undefined;
@@ -3934,6 +4695,45 @@ export declare function planSceneNodeChanges(snapshot: Pick<SceneState, 'nodes'
3934
4695
  points: [number, number][];
3935
4696
  }[];
3936
4697
  } | undefined;
4698
+ wallTypes?: {
4699
+ id: string;
4700
+ label: string;
4701
+ assembly: {
4702
+ layers: {
4703
+ id: string;
4704
+ role: "air" | "covering" | "deck" | "fill" | "finish" | "furring" | "glazing" | "insulation" | "lining" | "membrane" | "sheathing" | "shell" | "structure" | "substrate" | "underlay";
4705
+ thickness: number;
4706
+ core?: true | undefined;
4707
+ spacing?: number | undefined;
4708
+ material?: string | undefined;
4709
+ slot?: string | undefined;
4710
+ returns?: boolean | undefined;
4711
+ display?: "construction" | "finished" | undefined;
4712
+ inset?: number | undefined;
4713
+ bottom?: number | undefined;
4714
+ lift?: number | undefined;
4715
+ src?: string | undefined;
4716
+ }[];
4717
+ backing?: {
4718
+ id: string;
4719
+ role: "air" | "covering" | "deck" | "fill" | "finish" | "furring" | "glazing" | "insulation" | "lining" | "membrane" | "sheathing" | "shell" | "structure" | "substrate" | "underlay";
4720
+ thickness: number;
4721
+ core?: true | undefined;
4722
+ spacing?: number | undefined;
4723
+ material?: string | undefined;
4724
+ slot?: string | undefined;
4725
+ returns?: boolean | undefined;
4726
+ display?: "construction" | "finished" | undefined;
4727
+ inset?: number | undefined;
4728
+ bottom?: number | undefined;
4729
+ lift?: number | undefined;
4730
+ src?: string | undefined;
4731
+ }[] | undefined;
4732
+ face?: "exterior" | "front" | undefined;
4733
+ presetId?: string | undefined;
4734
+ cavityInsulation?: string | undefined;
4735
+ };
4736
+ }[] | undefined;
3937
4737
  children: string[];
3938
4738
  type: "site";
3939
4739
  } | {
@@ -4076,6 +4876,11 @@ export declare function planSceneNodeChanges(snapshot: Pick<SceneState, 'nodes'
4076
4876
  url: string;
4077
4877
  repeat?: [number, number] | undefined;
4078
4878
  scale?: number | undefined;
4879
+ offset?: [number, number] | undefined;
4880
+ normalMap?: string | undefined;
4881
+ normalScale?: number | undefined;
4882
+ bumpMap?: string | undefined;
4883
+ bumpScale?: number | undefined;
4079
4884
  } | undefined;
4080
4885
  } | undefined;
4081
4886
  materialPreset?: string | undefined;
@@ -4236,6 +5041,11 @@ export declare function planSceneNodeChanges(snapshot: Pick<SceneState, 'nodes'
4236
5041
  url: string;
4237
5042
  repeat?: [number, number] | undefined;
4238
5043
  scale?: number | undefined;
5044
+ offset?: [number, number] | undefined;
5045
+ normalMap?: string | undefined;
5046
+ normalScale?: number | undefined;
5047
+ bumpMap?: string | undefined;
5048
+ bumpScale?: number | undefined;
4239
5049
  } | undefined;
4240
5050
  } | undefined;
4241
5051
  materialPreset?: string | undefined;
@@ -4372,6 +5182,11 @@ export declare function planSceneNodeChanges(snapshot: Pick<SceneState, 'nodes'
4372
5182
  url: string;
4373
5183
  repeat?: [number, number] | undefined;
4374
5184
  scale?: number | undefined;
5185
+ offset?: [number, number] | undefined;
5186
+ normalMap?: string | undefined;
5187
+ normalScale?: number | undefined;
5188
+ bumpMap?: string | undefined;
5189
+ bumpScale?: number | undefined;
4375
5190
  } | undefined;
4376
5191
  } | undefined;
4377
5192
  slots?: Record<string, string> | undefined;
@@ -4432,6 +5247,11 @@ export declare function planSceneNodeChanges(snapshot: Pick<SceneState, 'nodes'
4432
5247
  url: string;
4433
5248
  repeat?: [number, number] | undefined;
4434
5249
  scale?: number | undefined;
5250
+ offset?: [number, number] | undefined;
5251
+ normalMap?: string | undefined;
5252
+ normalScale?: number | undefined;
5253
+ bumpMap?: string | undefined;
5254
+ bumpScale?: number | undefined;
4435
5255
  } | undefined;
4436
5256
  } | undefined;
4437
5257
  materialPreset?: string | undefined;
@@ -4484,6 +5304,11 @@ export declare function planSceneNodeChanges(snapshot: Pick<SceneState, 'nodes'
4484
5304
  url: string;
4485
5305
  repeat?: [number, number] | undefined;
4486
5306
  scale?: number | undefined;
5307
+ offset?: [number, number] | undefined;
5308
+ normalMap?: string | undefined;
5309
+ normalScale?: number | undefined;
5310
+ bumpMap?: string | undefined;
5311
+ bumpScale?: number | undefined;
4487
5312
  } | undefined;
4488
5313
  } | undefined;
4489
5314
  slots?: Record<string, string> | undefined;
@@ -4539,6 +5364,11 @@ export declare function planSceneNodeChanges(snapshot: Pick<SceneState, 'nodes'
4539
5364
  url: string;
4540
5365
  repeat?: [number, number] | undefined;
4541
5366
  scale?: number | undefined;
5367
+ offset?: [number, number] | undefined;
5368
+ normalMap?: string | undefined;
5369
+ normalScale?: number | undefined;
5370
+ bumpMap?: string | undefined;
5371
+ bumpScale?: number | undefined;
4542
5372
  } | undefined;
4543
5373
  } | undefined;
4544
5374
  slots?: Record<string, string> | undefined;
@@ -4592,6 +5422,11 @@ export declare function planSceneNodeChanges(snapshot: Pick<SceneState, 'nodes'
4592
5422
  url: string;
4593
5423
  repeat?: [number, number] | undefined;
4594
5424
  scale?: number | undefined;
5425
+ offset?: [number, number] | undefined;
5426
+ normalMap?: string | undefined;
5427
+ normalScale?: number | undefined;
5428
+ bumpMap?: string | undefined;
5429
+ bumpScale?: number | undefined;
4595
5430
  } | undefined;
4596
5431
  } | undefined;
4597
5432
  slots?: Record<string, string> | undefined;
@@ -4606,73 +5441,6 @@ export declare function planSceneNodeChanges(snapshot: Pick<SceneState, 'nodes'
4606
5441
  louverCount: number;
4607
5442
  backRatio: number;
4608
5443
  type: "eyebrow-vent";
4609
- } | {
4610
- object: "node";
4611
- name?: string | undefined;
4612
- parentId: string | null;
4613
- visible: boolean;
4614
- camera?: {
4615
- position: [number, number, number];
4616
- target: [number, number, number];
4617
- mode: "orthographic" | "perspective";
4618
- fov?: number | undefined;
4619
- zoom?: number | undefined;
4620
- } | undefined;
4621
- metadata: Record<string, unknown>;
4622
- provenance?: {
4623
- refs: {
4624
- ns?: string | undefined;
4625
- id: string;
4626
- role?: "absorbed" | "alias" | "derived" | "piece" | "primary" | undefined;
4627
- }[];
4628
- lineage?: {
4629
- op: "attach" | "convert" | "duplicate" | "import" | "make-independent" | "merge" | "promote" | "split";
4630
- fromIds: string[];
4631
- } | undefined;
4632
- } | undefined;
4633
- id: `gutter_${string}`;
4634
- material?: {
4635
- id?: string | undefined;
4636
- preset?: "brick" | "concrete" | "custom" | "glass" | "marble" | "metal" | "plaster" | "tile" | "white" | "wood" | undefined;
4637
- properties?: {
4638
- color: string;
4639
- roughness: number;
4640
- metalness: number;
4641
- opacity: number;
4642
- transparent: boolean;
4643
- side: "back" | "double" | "front";
4644
- } | undefined;
4645
- texture?: {
4646
- url: string;
4647
- repeat?: [number, number] | undefined;
4648
- scale?: number | undefined;
4649
- } | undefined;
4650
- } | undefined;
4651
- slots?: Record<string, string> | undefined;
4652
- materialPreset: string;
4653
- roofSegmentId?: string | undefined;
4654
- position: [number, number, number];
4655
- rotation: number;
4656
- length: number;
4657
- arc?: {
4658
- centerX: number;
4659
- centerZ: number;
4660
- radius: number;
4661
- } | undefined;
4662
- size: number;
4663
- thickness: number;
4664
- profile: "box" | "half-round" | "k-style";
4665
- endCapLeft: boolean;
4666
- endCapRight: boolean;
4667
- hangerStyle: "none" | "strap";
4668
- hangerSpacing: number;
4669
- outlets: {
4670
- id: string;
4671
- offset: number;
4672
- diameter: number;
4673
- generatedBy?: "default-downspout" | undefined;
4674
- }[];
4675
- type: "gutter";
4676
5444
  } | {
4677
5445
  object: "node";
4678
5446
  name?: string | undefined;
@@ -4713,6 +5481,11 @@ export declare function planSceneNodeChanges(snapshot: Pick<SceneState, 'nodes'
4713
5481
  url: string;
4714
5482
  repeat?: [number, number] | undefined;
4715
5483
  scale?: number | undefined;
5484
+ offset?: [number, number] | undefined;
5485
+ normalMap?: string | undefined;
5486
+ normalScale?: number | undefined;
5487
+ bumpMap?: string | undefined;
5488
+ bumpScale?: number | undefined;
4716
5489
  } | undefined;
4717
5490
  } | undefined;
4718
5491
  materialPreset?: string | undefined;
@@ -4731,6 +5504,11 @@ export declare function planSceneNodeChanges(snapshot: Pick<SceneState, 'nodes'
4731
5504
  url: string;
4732
5505
  repeat?: [number, number] | undefined;
4733
5506
  scale?: number | undefined;
5507
+ offset?: [number, number] | undefined;
5508
+ normalMap?: string | undefined;
5509
+ normalScale?: number | undefined;
5510
+ bumpMap?: string | undefined;
5511
+ bumpScale?: number | undefined;
4734
5512
  } | undefined;
4735
5513
  } | undefined;
4736
5514
  topMaterialPreset?: string | undefined;
@@ -4812,6 +5590,11 @@ export declare function planSceneNodeChanges(snapshot: Pick<SceneState, 'nodes'
4812
5590
  url: string;
4813
5591
  repeat?: [number, number] | undefined;
4814
5592
  scale?: number | undefined;
5593
+ offset?: [number, number] | undefined;
5594
+ normalMap?: string | undefined;
5595
+ normalScale?: number | undefined;
5596
+ bumpMap?: string | undefined;
5597
+ bumpScale?: number | undefined;
4815
5598
  } | undefined;
4816
5599
  } | undefined;
4817
5600
  materialPreset?: string | undefined;
@@ -4830,6 +5613,11 @@ export declare function planSceneNodeChanges(snapshot: Pick<SceneState, 'nodes'
4830
5613
  url: string;
4831
5614
  repeat?: [number, number] | undefined;
4832
5615
  scale?: number | undefined;
5616
+ offset?: [number, number] | undefined;
5617
+ normalMap?: string | undefined;
5618
+ normalScale?: number | undefined;
5619
+ bumpMap?: string | undefined;
5620
+ bumpScale?: number | undefined;
4833
5621
  } | undefined;
4834
5622
  } | undefined;
4835
5623
  panelMaterialPreset?: string | undefined;
@@ -4890,6 +5678,11 @@ export declare function planSceneNodeChanges(snapshot: Pick<SceneState, 'nodes'
4890
5678
  url: string;
4891
5679
  repeat?: [number, number] | undefined;
4892
5680
  scale?: number | undefined;
5681
+ offset?: [number, number] | undefined;
5682
+ normalMap?: string | undefined;
5683
+ normalScale?: number | undefined;
5684
+ bumpMap?: string | undefined;
5685
+ bumpScale?: number | undefined;
4893
5686
  } | undefined;
4894
5687
  } | undefined;
4895
5688
  materialPreset?: string | undefined;
@@ -4908,6 +5701,11 @@ export declare function planSceneNodeChanges(snapshot: Pick<SceneState, 'nodes'
4908
5701
  url: string;
4909
5702
  repeat?: [number, number] | undefined;
4910
5703
  scale?: number | undefined;
5704
+ offset?: [number, number] | undefined;
5705
+ normalMap?: string | undefined;
5706
+ normalScale?: number | undefined;
5707
+ bumpMap?: string | undefined;
5708
+ bumpScale?: number | undefined;
4911
5709
  } | undefined;
4912
5710
  } | undefined;
4913
5711
  glassMaterialPreset?: string | undefined;
@@ -4975,6 +5773,11 @@ export declare function planSceneNodeChanges(snapshot: Pick<SceneState, 'nodes'
4975
5773
  url: string;
4976
5774
  repeat?: [number, number] | undefined;
4977
5775
  scale?: number | undefined;
5776
+ offset?: [number, number] | undefined;
5777
+ normalMap?: string | undefined;
5778
+ normalScale?: number | undefined;
5779
+ bumpMap?: string | undefined;
5780
+ bumpScale?: number | undefined;
4978
5781
  } | undefined;
4979
5782
  } | undefined;
4980
5783
  slots?: Record<string, string> | undefined;
@@ -4991,9 +5794,9 @@ export declare function planSceneNodeChanges(snapshot: Pick<SceneState, 'nodes'
4991
5794
  terminal: "kickout" | "splash" | "straight";
4992
5795
  type: "downspout";
4993
5796
  }>;
4994
- rootNodeIds: (`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}`)[];
5797
+ rootNodeIds: (`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}`)[];
4995
5798
  collections: Record<`collection_${string}`, Collection>;
4996
- dirtyIds: (`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}`)[];
5799
+ dirtyIds: (`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}`)[];
4997
5800
  };
4998
5801
  export declare const createNodesAction: (set: Parameters<typeof createNodesActionImpl>[0], get: Parameters<typeof createNodesActionImpl>[1], ops: NodeCreateOp[], options?: DerivedWriteOptions) => void;
4999
5802
  export declare const applyNodeChangesAction: (set: Parameters<typeof applyNodeChangesActionImpl>[0], get: Parameters<typeof applyNodeChangesActionImpl>[1], changes: Parameters<typeof applyNodeChangesActionImpl>[2], options?: DerivedWriteOptions) => void;