@snaptrude/plugin-core 0.0.0-bimsvg-20260928124803

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 (383) hide show
  1. package/AGENTS.md +231 -0
  2. package/CHANGELOG.md +341 -0
  3. package/CLAUDE.md +11 -0
  4. package/api-manifest.json +9120 -0
  5. package/dist/api/analysis/daylight.d.ts +603 -0
  6. package/dist/api/analysis/daylight.d.ts.map +1 -0
  7. package/dist/api/analysis/heatmaps.d.ts +658 -0
  8. package/dist/api/analysis/heatmaps.d.ts.map +1 -0
  9. package/dist/api/analysis/illuminance.d.ts +145 -0
  10. package/dist/api/analysis/illuminance.d.ts.map +1 -0
  11. package/dist/api/analysis/index.d.ts +59 -0
  12. package/dist/api/analysis/index.d.ts.map +1 -0
  13. package/dist/api/analysis/shadows.d.ts +165 -0
  14. package/dist/api/analysis/shadows.d.ts.map +1 -0
  15. package/dist/api/analysis/solar.d.ts +249 -0
  16. package/dist/api/analysis/solar.d.ts.map +1 -0
  17. package/dist/api/analysis/sunlightHours.d.ts +208 -0
  18. package/dist/api/analysis/sunlightHours.d.ts.map +1 -0
  19. package/dist/api/analysis/sunpath.d.ts +80 -0
  20. package/dist/api/analysis/sunpath.d.ts.map +1 -0
  21. package/dist/api/analysis/weather.d.ts +193 -0
  22. package/dist/api/analysis/weather.d.ts.map +1 -0
  23. package/dist/api/core/buildings.d.ts +427 -0
  24. package/dist/api/core/buildings.d.ts.map +1 -0
  25. package/dist/api/core/camera/index.d.ts +261 -0
  26. package/dist/api/core/camera/index.d.ts.map +1 -0
  27. package/dist/api/core/comment/index.d.ts +333 -0
  28. package/dist/api/core/comment/index.d.ts.map +1 -0
  29. package/dist/api/core/geom/create/index.d.ts +1073 -0
  30. package/dist/api/core/geom/create/index.d.ts.map +1 -0
  31. package/dist/api/core/geom/delete/index.d.ts +78 -0
  32. package/dist/api/core/geom/delete/index.d.ts.map +1 -0
  33. package/dist/api/core/geom/index.d.ts +33 -0
  34. package/dist/api/core/geom/index.d.ts.map +1 -0
  35. package/dist/api/core/geom/query/arc.d.ts +169 -0
  36. package/dist/api/core/geom/query/arc.d.ts.map +1 -0
  37. package/dist/api/core/geom/query/brep.d.ts +514 -0
  38. package/dist/api/core/geom/query/brep.d.ts.map +1 -0
  39. package/dist/api/core/geom/query/circle.d.ts +378 -0
  40. package/dist/api/core/geom/query/circle.d.ts.map +1 -0
  41. package/dist/api/core/geom/query/contour.d.ts +450 -0
  42. package/dist/api/core/geom/query/contour.d.ts.map +1 -0
  43. package/dist/api/core/geom/query/curve.d.ts +918 -0
  44. package/dist/api/core/geom/query/curve.d.ts.map +1 -0
  45. package/dist/api/core/geom/query/edge.d.ts +128 -0
  46. package/dist/api/core/geom/query/edge.d.ts.map +1 -0
  47. package/dist/api/core/geom/query/face.d.ts +363 -0
  48. package/dist/api/core/geom/query/face.d.ts.map +1 -0
  49. package/dist/api/core/geom/query/halfedge.d.ts +206 -0
  50. package/dist/api/core/geom/query/halfedge.d.ts.map +1 -0
  51. package/dist/api/core/geom/query/index.d.ts +61 -0
  52. package/dist/api/core/geom/query/index.d.ts.map +1 -0
  53. package/dist/api/core/geom/query/profile.d.ts +410 -0
  54. package/dist/api/core/geom/query/profile.d.ts.map +1 -0
  55. package/dist/api/core/geom/query/vertex.d.ts +187 -0
  56. package/dist/api/core/geom/query/vertex.d.ts.map +1 -0
  57. package/dist/api/core/geom/update/contour.d.ts +272 -0
  58. package/dist/api/core/geom/update/contour.d.ts.map +1 -0
  59. package/dist/api/core/geom/update/curve.d.ts +180 -0
  60. package/dist/api/core/geom/update/curve.d.ts.map +1 -0
  61. package/dist/api/core/geom/update/index.d.ts +27 -0
  62. package/dist/api/core/geom/update/index.d.ts.map +1 -0
  63. package/dist/api/core/geom/update/profile.d.ts +329 -0
  64. package/dist/api/core/geom/update/profile.d.ts.map +1 -0
  65. package/dist/api/core/groups.d.ts +485 -0
  66. package/dist/api/core/groups.d.ts.map +1 -0
  67. package/dist/api/core/handles/index.d.ts +210 -0
  68. package/dist/api/core/handles/index.d.ts.map +1 -0
  69. package/dist/api/core/history/index.d.ts +78 -0
  70. package/dist/api/core/history/index.d.ts.map +1 -0
  71. package/dist/api/core/index.d.ts +97 -0
  72. package/dist/api/core/index.d.ts.map +1 -0
  73. package/dist/api/core/io/export/index.d.ts +134 -0
  74. package/dist/api/core/io/export/index.d.ts.map +1 -0
  75. package/dist/api/core/io/import/index.d.ts +455 -0
  76. package/dist/api/core/io/import/index.d.ts.map +1 -0
  77. package/dist/api/core/io/index.d.ts +40 -0
  78. package/dist/api/core/io/index.d.ts.map +1 -0
  79. package/dist/api/core/io/job/index.d.ts +139 -0
  80. package/dist/api/core/io/job/index.d.ts.map +1 -0
  81. package/dist/api/core/io/query/index.d.ts +74 -0
  82. package/dist/api/core/io/query/index.d.ts.map +1 -0
  83. package/dist/api/core/io/terrain/index.d.ts +341 -0
  84. package/dist/api/core/io/terrain/index.d.ts.map +1 -0
  85. package/dist/api/core/io/underlay/index.d.ts +805 -0
  86. package/dist/api/core/io/underlay/index.d.ts.map +1 -0
  87. package/dist/api/core/layers.d.ts +402 -0
  88. package/dist/api/core/layers.d.ts.map +1 -0
  89. package/dist/api/core/math/index.d.ts +18 -0
  90. package/dist/api/core/math/index.d.ts.map +1 -0
  91. package/dist/api/core/math/quat.d.ts +170 -0
  92. package/dist/api/core/math/quat.d.ts.map +1 -0
  93. package/dist/api/core/math/vec3.d.ts +174 -0
  94. package/dist/api/core/math/vec3.d.ts.map +1 -0
  95. package/dist/api/core/mode/index.d.ts +111 -0
  96. package/dist/api/core/mode/index.d.ts.map +1 -0
  97. package/dist/api/core/project/index.d.ts +466 -0
  98. package/dist/api/core/project/index.d.ts.map +1 -0
  99. package/dist/api/core/proposals/index.d.ts +531 -0
  100. package/dist/api/core/proposals/index.d.ts.map +1 -0
  101. package/dist/api/core/storeys/index.d.ts +265 -0
  102. package/dist/api/core/storeys/index.d.ts.map +1 -0
  103. package/dist/api/core/tags.d.ts +860 -0
  104. package/dist/api/core/tags.d.ts.map +1 -0
  105. package/dist/api/core/units/index.d.ts +175 -0
  106. package/dist/api/core/units/index.d.ts.map +1 -0
  107. package/dist/api/core/user.d.ts +44 -0
  108. package/dist/api/core/user.d.ts.map +1 -0
  109. package/dist/api/core/zoom/index.d.ts +49 -0
  110. package/dist/api/core/zoom/index.d.ts.map +1 -0
  111. package/dist/api/design/boolean/index.d.ts +168 -0
  112. package/dist/api/design/boolean/index.d.ts.map +1 -0
  113. package/dist/api/design/create/bulk-items.d.ts +185 -0
  114. package/dist/api/design/create/bulk-items.d.ts.map +1 -0
  115. package/dist/api/design/create/grids.d.ts +132 -0
  116. package/dist/api/design/create/grids.d.ts.map +1 -0
  117. package/dist/api/design/create/index.d.ts +1747 -0
  118. package/dist/api/design/create/index.d.ts.map +1 -0
  119. package/dist/api/design/create/opening-fields.d.ts +37 -0
  120. package/dist/api/design/create/opening-fields.d.ts.map +1 -0
  121. package/dist/api/design/delete/index.d.ts +70 -0
  122. package/dist/api/design/delete/index.d.ts.map +1 -0
  123. package/dist/api/design/dimensions.d.ts +427 -0
  124. package/dist/api/design/dimensions.d.ts.map +1 -0
  125. package/dist/api/design/doors/index.d.ts +470 -0
  126. package/dist/api/design/doors/index.d.ts.map +1 -0
  127. package/dist/api/design/edit/index.d.ts +49 -0
  128. package/dist/api/design/edit/index.d.ts.map +1 -0
  129. package/dist/api/design/erase/index.d.ts +160 -0
  130. package/dist/api/design/erase/index.d.ts.map +1 -0
  131. package/dist/api/design/family.d.ts +611 -0
  132. package/dist/api/design/family.d.ts.map +1 -0
  133. package/dist/api/design/furniture/index.d.ts +296 -0
  134. package/dist/api/design/furniture/index.d.ts.map +1 -0
  135. package/dist/api/design/grids.d.ts +237 -0
  136. package/dist/api/design/grids.d.ts.map +1 -0
  137. package/dist/api/design/index.d.ts +260 -0
  138. package/dist/api/design/index.d.ts.map +1 -0
  139. package/dist/api/design/lock.d.ts +67 -0
  140. package/dist/api/design/lock.d.ts.map +1 -0
  141. package/dist/api/design/materials/index.d.ts +551 -0
  142. package/dist/api/design/materials/index.d.ts.map +1 -0
  143. package/dist/api/design/query/geometry/index.d.ts +252 -0
  144. package/dist/api/design/query/geometry/index.d.ts.map +1 -0
  145. package/dist/api/design/query/grids.d.ts +287 -0
  146. package/dist/api/design/query/grids.d.ts.map +1 -0
  147. package/dist/api/design/query/index.d.ts +1318 -0
  148. package/dist/api/design/query/index.d.ts.map +1 -0
  149. package/dist/api/design/query/referenceLines.d.ts +45 -0
  150. package/dist/api/design/query/referenceLines.d.ts.map +1 -0
  151. package/dist/api/design/query/spaces.d.ts +394 -0
  152. package/dist/api/design/query/spaces.d.ts.map +1 -0
  153. package/dist/api/design/selection/index.d.ts +282 -0
  154. package/dist/api/design/selection/index.d.ts.map +1 -0
  155. package/dist/api/design/shared.d.ts +38 -0
  156. package/dist/api/design/shared.d.ts.map +1 -0
  157. package/dist/api/design/transform/index.d.ts +249 -0
  158. package/dist/api/design/transform/index.d.ts.map +1 -0
  159. package/dist/api/design/types/index.d.ts +181 -0
  160. package/dist/api/design/types/index.d.ts.map +1 -0
  161. package/dist/api/design/update/index.d.ts +803 -0
  162. package/dist/api/design/update/index.d.ts.map +1 -0
  163. package/dist/api/design/visibility.d.ts +126 -0
  164. package/dist/api/design/visibility.d.ts.map +1 -0
  165. package/dist/api/design/windows/index.d.ts +300 -0
  166. package/dist/api/design/windows/index.d.ts.map +1 -0
  167. package/dist/api/entity/buildableEnvelope.d.ts +265 -0
  168. package/dist/api/entity/buildableEnvelope.d.ts.map +1 -0
  169. package/dist/api/entity/department.d.ts +1 -0
  170. package/dist/api/entity/department.d.ts.map +1 -0
  171. package/dist/api/entity/index.d.ts +28 -0
  172. package/dist/api/entity/index.d.ts.map +1 -0
  173. package/dist/api/entity/referenceLine.d.ts +210 -0
  174. package/dist/api/entity/referenceLine.d.ts.map +1 -0
  175. package/dist/api/entity/space.d.ts +846 -0
  176. package/dist/api/entity/space.d.ts.map +1 -0
  177. package/dist/api/entity/story.d.ts +476 -0
  178. package/dist/api/entity/story.d.ts.map +1 -0
  179. package/dist/api/index.d.ts +45 -0
  180. package/dist/api/index.d.ts.map +1 -0
  181. package/dist/api/presentation/aiInspiration.d.ts +2400 -0
  182. package/dist/api/presentation/aiInspiration.d.ts.map +1 -0
  183. package/dist/api/presentation/annotate.d.ts +483 -0
  184. package/dist/api/presentation/annotate.d.ts.map +1 -0
  185. package/dist/api/presentation/diagrams.d.ts +184 -0
  186. package/dist/api/presentation/diagrams.d.ts.map +1 -0
  187. package/dist/api/presentation/drawings.d.ts +2900 -0
  188. package/dist/api/presentation/drawings.d.ts.map +1 -0
  189. package/dist/api/presentation/export.d.ts +126 -0
  190. package/dist/api/presentation/export.d.ts.map +1 -0
  191. package/dist/api/presentation/import.d.ts +164 -0
  192. package/dist/api/presentation/import.d.ts.map +1 -0
  193. package/dist/api/presentation/index.d.ts +114 -0
  194. package/dist/api/presentation/index.d.ts.map +1 -0
  195. package/dist/api/presentation/placedViews.d.ts +1232 -0
  196. package/dist/api/presentation/placedViews.d.ts.map +1 -0
  197. package/dist/api/presentation/shapes.d.ts +481 -0
  198. package/dist/api/presentation/shapes.d.ts.map +1 -0
  199. package/dist/api/presentation/sheets.d.ts +643 -0
  200. package/dist/api/presentation/sheets.d.ts.map +1 -0
  201. package/dist/api/presentation/slideshow.d.ts +125 -0
  202. package/dist/api/presentation/slideshow.d.ts.map +1 -0
  203. package/dist/api/presentation/tables.d.ts +81 -0
  204. package/dist/api/presentation/tables.d.ts.map +1 -0
  205. package/dist/api/presentation/viewPresets.d.ts +70 -0
  206. package/dist/api/presentation/viewPresets.d.ts.map +1 -0
  207. package/dist/api/presentation/views.d.ts +741 -0
  208. package/dist/api/presentation/views.d.ts.map +1 -0
  209. package/dist/api/program/adjacency.d.ts +155 -0
  210. package/dist/api/program/adjacency.d.ts.map +1 -0
  211. package/dist/api/program/areas.d.ts +450 -0
  212. package/dist/api/program/areas.d.ts.map +1 -0
  213. package/dist/api/program/classification.d.ts +135 -0
  214. package/dist/api/program/classification.d.ts.map +1 -0
  215. package/dist/api/program/cores.d.ts +78 -0
  216. package/dist/api/program/cores.d.ts.map +1 -0
  217. package/dist/api/program/departments.d.ts +487 -0
  218. package/dist/api/program/departments.d.ts.map +1 -0
  219. package/dist/api/program/index.d.ts +71 -0
  220. package/dist/api/program/index.d.ts.map +1 -0
  221. package/dist/api/program/labels.d.ts +355 -0
  222. package/dist/api/program/labels.d.ts.map +1 -0
  223. package/dist/api/program/layout.d.ts +398 -0
  224. package/dist/api/program/layout.d.ts.map +1 -0
  225. package/dist/api/program/metadata.d.ts +328 -0
  226. package/dist/api/program/metadata.d.ts.map +1 -0
  227. package/dist/api/program/metrics.d.ts +108 -0
  228. package/dist/api/program/metrics.d.ts.map +1 -0
  229. package/dist/api/program/site.d.ts +823 -0
  230. package/dist/api/program/site.d.ts.map +1 -0
  231. package/dist/api/program/spreadsheet.d.ts +2628 -0
  232. package/dist/api/program/spreadsheet.d.ts.map +1 -0
  233. package/dist/api/workspace/index.d.ts +552 -0
  234. package/dist/api/workspace/index.d.ts.map +1 -0
  235. package/dist/errors/codes.d.ts +34 -0
  236. package/dist/errors/codes.d.ts.map +1 -0
  237. package/dist/errors/envelope.d.ts +56 -0
  238. package/dist/errors/envelope.d.ts.map +1 -0
  239. package/dist/errors/index.d.ts +6 -0
  240. package/dist/errors/index.d.ts.map +1 -0
  241. package/dist/errors/plugin-error.d.ts +69 -0
  242. package/dist/errors/plugin-error.d.ts.map +1 -0
  243. package/dist/handles.d.ts +229 -0
  244. package/dist/handles.d.ts.map +1 -0
  245. package/dist/host-utils.d.ts +47 -0
  246. package/dist/host-utils.d.ts.map +1 -0
  247. package/dist/index.cjs +8836 -0
  248. package/dist/index.cjs.map +1 -0
  249. package/dist/index.d.ts +6 -0
  250. package/dist/index.d.ts.map +1 -0
  251. package/dist/index.js +7568 -0
  252. package/dist/index.js.map +1 -0
  253. package/dist/types.d.ts +16 -0
  254. package/dist/types.d.ts.map +1 -0
  255. package/package.json +41 -0
  256. package/scripts/generate-manifest.mjs +238 -0
  257. package/scripts/generate-manifest.test.mjs +292 -0
  258. package/src/api/analysis/daylight.ts +470 -0
  259. package/src/api/analysis/heatmaps.ts +683 -0
  260. package/src/api/analysis/illuminance.ts +155 -0
  261. package/src/api/analysis/index.ts +61 -0
  262. package/src/api/analysis/shadows.ts +183 -0
  263. package/src/api/analysis/solar.ts +237 -0
  264. package/src/api/analysis/sunlightHours.ts +211 -0
  265. package/src/api/analysis/sunpath.ts +83 -0
  266. package/src/api/analysis/weather.ts +179 -0
  267. package/src/api/core/buildings.ts +485 -0
  268. package/src/api/core/camera/index.ts +268 -0
  269. package/src/api/core/comment/index.ts +376 -0
  270. package/src/api/core/geom/create/index.ts +1204 -0
  271. package/src/api/core/geom/delete/index.ts +84 -0
  272. package/src/api/core/geom/index.ts +35 -0
  273. package/src/api/core/geom/query/arc.ts +169 -0
  274. package/src/api/core/geom/query/brep.ts +563 -0
  275. package/src/api/core/geom/query/circle.ts +404 -0
  276. package/src/api/core/geom/query/contour.ts +540 -0
  277. package/src/api/core/geom/query/curve.ts +1078 -0
  278. package/src/api/core/geom/query/edge.ts +130 -0
  279. package/src/api/core/geom/query/face.ts +403 -0
  280. package/src/api/core/geom/query/halfedge.ts +210 -0
  281. package/src/api/core/geom/query/index.ts +63 -0
  282. package/src/api/core/geom/query/profile.ts +473 -0
  283. package/src/api/core/geom/query/vertex.ts +205 -0
  284. package/src/api/core/geom/update/contour.ts +315 -0
  285. package/src/api/core/geom/update/curve.ts +209 -0
  286. package/src/api/core/geom/update/index.ts +29 -0
  287. package/src/api/core/geom/update/profile.ts +377 -0
  288. package/src/api/core/groups.ts +521 -0
  289. package/src/api/core/handles/index.ts +233 -0
  290. package/src/api/core/history/index.ts +84 -0
  291. package/src/api/core/index.ts +99 -0
  292. package/src/api/core/io/export/index.ts +126 -0
  293. package/src/api/core/io/import/index.ts +504 -0
  294. package/src/api/core/io/index.ts +42 -0
  295. package/src/api/core/io/job/index.ts +140 -0
  296. package/src/api/core/io/query/index.ts +71 -0
  297. package/src/api/core/io/terrain/index.ts +360 -0
  298. package/src/api/core/io/underlay/index.ts +705 -0
  299. package/src/api/core/layers.ts +333 -0
  300. package/src/api/core/math/index.ts +20 -0
  301. package/src/api/core/math/quat.ts +172 -0
  302. package/src/api/core/math/vec3.ts +179 -0
  303. package/src/api/core/mode/index.ts +108 -0
  304. package/src/api/core/project/index.ts +479 -0
  305. package/src/api/core/proposals/index.ts +569 -0
  306. package/src/api/core/storeys/index.ts +294 -0
  307. package/src/api/core/tags.ts +911 -0
  308. package/src/api/core/units/index.ts +164 -0
  309. package/src/api/core/user.ts +46 -0
  310. package/src/api/core/zoom/index.ts +51 -0
  311. package/src/api/design/boolean/index.ts +179 -0
  312. package/src/api/design/create/bulk-items.ts +186 -0
  313. package/src/api/design/create/grids.ts +137 -0
  314. package/src/api/design/create/index.ts +1954 -0
  315. package/src/api/design/create/opening-fields.ts +37 -0
  316. package/src/api/design/delete/index.ts +74 -0
  317. package/src/api/design/dimensions.ts +453 -0
  318. package/src/api/design/doors/index.ts +500 -0
  319. package/src/api/design/edit/index.ts +54 -0
  320. package/src/api/design/erase/index.ts +151 -0
  321. package/src/api/design/family.ts +646 -0
  322. package/src/api/design/furniture/index.ts +319 -0
  323. package/src/api/design/grids.ts +237 -0
  324. package/src/api/design/index.ts +274 -0
  325. package/src/api/design/lock.ts +69 -0
  326. package/src/api/design/materials/index.ts +608 -0
  327. package/src/api/design/query/geometry/index.ts +288 -0
  328. package/src/api/design/query/grids.ts +197 -0
  329. package/src/api/design/query/index.ts +1176 -0
  330. package/src/api/design/query/referenceLines.ts +52 -0
  331. package/src/api/design/query/spaces.ts +275 -0
  332. package/src/api/design/selection/index.ts +273 -0
  333. package/src/api/design/shared.ts +40 -0
  334. package/src/api/design/transform/index.ts +254 -0
  335. package/src/api/design/types/index.ts +156 -0
  336. package/src/api/design/update/index.ts +798 -0
  337. package/src/api/design/visibility.ts +143 -0
  338. package/src/api/design/windows/index.ts +333 -0
  339. package/src/api/entity/buildableEnvelope.ts +322 -0
  340. package/src/api/entity/department.ts +0 -0
  341. package/src/api/entity/index.ts +30 -0
  342. package/src/api/entity/referenceLine.ts +235 -0
  343. package/src/api/entity/space.ts +612 -0
  344. package/src/api/entity/story.ts +517 -0
  345. package/src/api/index.ts +47 -0
  346. package/src/api/presentation/aiInspiration.ts +1116 -0
  347. package/src/api/presentation/annotate.ts +417 -0
  348. package/src/api/presentation/diagrams.ts +194 -0
  349. package/src/api/presentation/drawings.ts +529 -0
  350. package/src/api/presentation/export.ts +133 -0
  351. package/src/api/presentation/import.ts +159 -0
  352. package/src/api/presentation/index.ts +129 -0
  353. package/src/api/presentation/placedViews.ts +1203 -0
  354. package/src/api/presentation/shapes.ts +274 -0
  355. package/src/api/presentation/sheets.ts +616 -0
  356. package/src/api/presentation/slideshow.ts +134 -0
  357. package/src/api/presentation/tables.ts +84 -0
  358. package/src/api/presentation/viewPresets.ts +83 -0
  359. package/src/api/presentation/views.ts +698 -0
  360. package/src/api/program/adjacency.ts +164 -0
  361. package/src/api/program/areas.ts +408 -0
  362. package/src/api/program/classification.ts +138 -0
  363. package/src/api/program/cores.ts +83 -0
  364. package/src/api/program/departments.ts +517 -0
  365. package/src/api/program/index.ts +73 -0
  366. package/src/api/program/labels.ts +332 -0
  367. package/src/api/program/layout.ts +422 -0
  368. package/src/api/program/metadata.ts +364 -0
  369. package/src/api/program/metrics.ts +120 -0
  370. package/src/api/program/site.ts +748 -0
  371. package/src/api/program/spreadsheet.ts +2698 -0
  372. package/src/api/workspace/index.ts +612 -0
  373. package/src/errors/codes.ts +136 -0
  374. package/src/errors/envelope.ts +75 -0
  375. package/src/errors/index.ts +21 -0
  376. package/src/errors/plugin-error.ts +134 -0
  377. package/src/handles.ts +282 -0
  378. package/src/host-utils.ts +68 -0
  379. package/src/index.ts +5 -0
  380. package/src/types.ts +16 -0
  381. package/test/errors.test.mjs +184 -0
  382. package/tsconfig.json +22 -0
  383. package/tsup.config.ts +12 -0
@@ -0,0 +1,741 @@
1
+ import * as z from "zod";
2
+ import { PluginApiReturn } from "../../types";
3
+ /**
4
+ * Presentation views — read the saved plan, 3D, and elevation views used to prepare presentations.
5
+ *
6
+ * A **view** is a saved camera/plan: a sheet-ready 2D plan or a saved 3D view.
7
+ * A plugin can list and read views, capture them to images, activate one (move
8
+ * the camera to it), save the current camera as a new view, rename or delete a
9
+ * saved view, and read/update a view's display settings (background, color
10
+ * mode, view mode, axis, edges, labels). Each view carries the `storey` it was
11
+ * saved on.
12
+ *
13
+ * `list`/`get`/`getActive`/`capture`/`getSettings` are reads;
14
+ * `setActive`/`create`/`rename`/`delete`/`updateSettings` are writes (a view is
15
+ * a camera bookmark — not geometry).
16
+ *
17
+ * Accessed via `snaptrude.presentation.views`.
18
+ */
19
+ export declare abstract class PluginPresentationViewsApi {
20
+ constructor();
21
+ /**
22
+ * List the saved views in the active project.
23
+ *
24
+ * @returns A {@linkcode PluginPresentationViewsListResult} with a `views` array
25
+ * of plan, 3D, and elevation views (empty when the project has none).
26
+ *
27
+ * @examplePrompt List all the saved views
28
+ * @examplePrompt What plan, 3D, and elevation views are in this project?
29
+ * @examplePrompt Which view is currently active?
30
+ * @examplePrompt Get the names of every presentation view
31
+ * @examplePrompt Show me the 3D views I can put on a sheet
32
+ *
33
+ * # Example
34
+ * ```ts
35
+ * const { views } = await snaptrude.presentation.views.list()
36
+ * const active = views.find((v) => v.isActive)
37
+ * const plans = views.filter((v) => v.type === "2d")
38
+ * ```
39
+ */
40
+ abstract list(): PluginApiReturn<PluginPresentationViewsListResult>;
41
+ /**
42
+ * Get a single saved view by id.
43
+ *
44
+ * @param viewId - The id of the view to read.
45
+ * @returns The matching {@linkcode PluginPresentationView}, or `null` if no view
46
+ * has that id.
47
+ *
48
+ * @examplePrompt Get the view with id view_12345
49
+ * @examplePrompt Find the saved view called Ground Floor Plan
50
+ * @examplePrompt Look up a presentation view by its id
51
+ *
52
+ * # Example
53
+ * ```ts
54
+ * const view = await snaptrude.presentation.views.get("view_123")
55
+ * ```
56
+ */
57
+ abstract get(viewId: string): PluginApiReturn<PluginPresentationViewsGetResult>;
58
+ /**
59
+ * Get the currently active view.
60
+ *
61
+ * @returns The active {@linkcode PluginPresentationView}, or `null` if none is
62
+ * active.
63
+ *
64
+ * @examplePrompt Which view is active right now?
65
+ * @examplePrompt Get the current view
66
+ * @examplePrompt What view am I looking at?
67
+ *
68
+ * # Example
69
+ * ```ts
70
+ * const active = await snaptrude.presentation.views.getActive()
71
+ * ```
72
+ */
73
+ abstract getActive(): PluginApiReturn<PluginPresentationViewsGetResult>;
74
+ /**
75
+ * Capture a screenshot of a view as a base64 image.
76
+ *
77
+ * Captures the **current** viewport by default; pass `viewId` to capture a
78
+ * specific saved view (which briefly applies that view to the scene). Use
79
+ * `format`/`resolution` to control the output.
80
+ *
81
+ * @param options - All optional: `viewId` (capture this saved view; omit for the
82
+ * current viewport), `format` (default `"png"`), `resolution` (e.g. `"1280x720"`).
83
+ * @returns A {@linkcode PluginPresentationViewsCaptureResult} with the base64
84
+ * `image` data URL.
85
+ * @throws If a given `viewId` does not exist.
86
+ *
87
+ * @examplePrompt Take a screenshot of the current view
88
+ * @examplePrompt Capture this view as a PNG
89
+ * @examplePrompt Render the Site Plan view to an image
90
+ * @examplePrompt Export a high-res image of what I'm looking at
91
+ *
92
+ * # Example
93
+ * ```ts
94
+ * const { image } = await snaptrude.presentation.views.capture({ format: "png" })
95
+ * ```
96
+ */
97
+ abstract capture(options?: {
98
+ viewId?: string;
99
+ format?: "png" | "jpeg";
100
+ resolution?: string;
101
+ }): PluginApiReturn<PluginPresentationViewsCaptureResult>;
102
+ /**
103
+ * Activate a saved view — move the camera to it and restore its scene state.
104
+ *
105
+ * Applies the view's camera, visibility, and storey state to the live scene.
106
+ * Paired with {@linkcode PluginPresentationViewsApi.getActive}.
107
+ *
108
+ * @param viewId - The id of the view to activate.
109
+ * @returns The id of the now-active view.
110
+ * @throws If no view has the given id.
111
+ *
112
+ * @examplePrompt Switch to the Ground Floor plan view
113
+ * @examplePrompt Make the 3D view active
114
+ * @examplePrompt Go to the view named Entrance
115
+ * @examplePrompt Load the site plan view
116
+ *
117
+ * # Example
118
+ * ```ts
119
+ * await snaptrude.presentation.views.setActive("view_123")
120
+ * ```
121
+ */
122
+ abstract setActive(viewId: string): PluginApiReturn<PluginPresentationViewsSetActiveResult>;
123
+ /**
124
+ * Save the current camera/scene state as a new named view.
125
+ *
126
+ * Creates a camera bookmark (not geometry) from where the camera is now.
127
+ *
128
+ * @param name - Name for the new view (a default is used when omitted).
129
+ * @param options - Optional `kind` (what kind of view to save, default
130
+ * `"view"`) and `storey` (save the view on a specific storey — the storey is
131
+ * activated first, matching the storey the view is captured on; when omitted
132
+ * the current active storey is used).
133
+ * @returns The newly created {@linkcode PluginPresentationView}.
134
+ * @throws If `storey` is given but no such storey exists, or the view could
135
+ * not be saved.
136
+ *
137
+ * @examplePrompt Save the current view as Lobby Perspective
138
+ * @examplePrompt Create a new saved view from where I'm looking
139
+ * @examplePrompt Bookmark this camera angle
140
+ * @examplePrompt Save the current 2D plan as a view
141
+ * @examplePrompt Save a view on the second storey
142
+ *
143
+ * # Example
144
+ * ```ts
145
+ * const view = await snaptrude.presentation.views.create("Lobby")
146
+ * // …or capture the view on a specific storey
147
+ * const level2 = await snaptrude.presentation.views.create("Level 2", { storey: 2 })
148
+ * ```
149
+ */
150
+ abstract create(name?: string, options?: {
151
+ kind?: "view" | "sitePlan";
152
+ storey?: number;
153
+ }): PluginApiReturn<PluginPresentationViewsCreateResult>;
154
+ /**
155
+ * Read a saved view's display settings (background, color mode, view mode,
156
+ * axis, edges, labels).
157
+ *
158
+ * @param viewId - The id of the view to read settings for.
159
+ * @returns The view's {@linkcode PluginPresentationViewSettings}, or `null` if
160
+ * no view has that id.
161
+ *
162
+ * @examplePrompt What color mode is the Ground Floor view using?
163
+ * @examplePrompt Get the display settings for this view
164
+ * @examplePrompt Does the site plan view show axes and labels?
165
+ * @examplePrompt Read the background color of the active view
166
+ *
167
+ * # Example
168
+ * ```ts
169
+ * const settings = await snaptrude.presentation.views.getSettings("view_123")
170
+ * if (settings) console.log(settings.colorMode, settings.backgroundColor)
171
+ * ```
172
+ */
173
+ abstract getSettings(viewId: string): PluginApiReturn<PluginPresentationViewsGetSettingsResult>;
174
+ /**
175
+ * Update a saved view's display settings (partial patch — only the fields you
176
+ * pass change).
177
+ *
178
+ * Persists and broadcasts the change; if the view is currently active, the
179
+ * scene updates live. **Not Ctrl+Z-undoable** — view-metadata edits publish
180
+ * directly and do not land on the local undo stack; this matches how the
181
+ * product's own view-settings UI behaves.
182
+ *
183
+ * Label patch semantics (mirroring the product, which stores no label
184
+ * selection while labels are off):
185
+ *
186
+ * - `{ showLabels: true }` alone turns labels on; if the view has no stored
187
+ * selection, the product defaults (`objectLabels`, `areas`) are applied —
188
+ * labels are never "on" with an empty selection (the product has no such
189
+ * state; labels render only while the selection is non-empty).
190
+ * - `{ labels: [...] }` alone sets the selection **and turns labels on**.
191
+ * - `{ showLabels: false }` turns labels off and **clears the stored
192
+ * selection** — a later read returns `labels: []`.
193
+ * - `{ showLabels: false, labels: [...] }` with a non-empty list is
194
+ * contradictory and **rejected** (nothing is silently discarded).
195
+ * - `{ showLabels: true, labels: [] }` is likewise contradictory and
196
+ * **rejected** — pass a non-empty list, or omit `labels` to get the
197
+ * defaults.
198
+ *
199
+ * `colorMode` accepts the `tag:<categoryId>` scheme strings returned by
200
+ * {@linkcode PluginPresentationViewsApi.getSettings}, so read-then-write
201
+ * round-trips a tag-based color scheme unchanged.
202
+ *
203
+ * `viewMode` (`"perspective"` | `"isometric"`) applies to **3D views only** —
204
+ * a 2D plan is always orthographic, so a `viewMode: "perspective"` patch on a
205
+ * 2D view is rejected. `"isometric"` on a 2D plan is accepted as a no-op (the
206
+ * plan is already orthographic), so writing back exactly what
207
+ * {@linkcode PluginPresentationViewsApi.getSettings} returned is always a
208
+ * no-op. On the active view the camera switches projection live (the same
209
+ * toggle the view-settings modal runs); on other views the mode is applied
210
+ * the next time the view is activated.
211
+ *
212
+ * @param viewId - The id of the view to update.
213
+ * @param settings - A partial {@linkcode PluginPresentationViewSettings}; any
214
+ * omitted field is left unchanged.
215
+ * @returns The updated view's `id`.
216
+ * @throws If writes are disabled, no view has the given id, the patch is
217
+ * contradictory (`showLabels: false` with a non-empty `labels`, or
218
+ * `showLabels: true` with an explicitly empty `labels` list), or
219
+ * `viewMode: "perspective"` is patched on a 2D plan view.
220
+ *
221
+ * @examplePrompt Switch this view to monochrome color mode
222
+ * @examplePrompt Turn off the axis in the Ground Floor view
223
+ * @examplePrompt Set the background of the active view to white
224
+ * @examplePrompt Show area labels on this view
225
+ * @examplePrompt Enable hidden-line mode for the section view
226
+ * @examplePrompt Make the 3D view orthographic instead of perspective
227
+ *
228
+ * # Example
229
+ * ```ts
230
+ * await snaptrude.presentation.views.updateSettings("view_123", {
231
+ * colorMode: "monochrome",
232
+ * showAxis: false,
233
+ * })
234
+ * // switch a 3D view to an isometric (orthographic) projection
235
+ * await snaptrude.presentation.views.updateSettings("view_123", {
236
+ * viewMode: "isometric",
237
+ * })
238
+ * ```
239
+ */
240
+ abstract updateSettings(viewId: string, settings: Partial<PluginPresentationViewSettings>): PluginApiReturn<PluginPresentationViewsUpdateSettingsResult>;
241
+ /**
242
+ * Rename a saved view.
243
+ *
244
+ * Sets the view's display name — the same label the views panel shows and
245
+ * that `list`/`get` read back. Names must be unique within the proposal and
246
+ * cannot contain the characters `\ : { } [ ] | ; < > ? ~`.
247
+ *
248
+ * @param viewId - The id of the view to rename.
249
+ * @param name - The new display name (non-empty after trimming).
250
+ * @returns The updated {@linkcode PluginPresentationView}.
251
+ * @throws If writes are disabled, no view has the given id, the name is
252
+ * empty/invalid, or another view in the proposal already has that name.
253
+ *
254
+ * @examplePrompt Rename the view Lobby to Entrance Lobby
255
+ * @examplePrompt Call this view Ground Floor Plan
256
+ * @examplePrompt Change the active view's name to Final
257
+ *
258
+ * # Example
259
+ * ```ts
260
+ * const view = await snaptrude.presentation.views.rename("view_123", "Entrance")
261
+ * ```
262
+ */
263
+ abstract rename(viewId: string, name: string): PluginApiReturn<PluginPresentationViewsRenameResult>;
264
+ /**
265
+ * Delete a saved view.
266
+ *
267
+ * Removes the view from the project and the views panel (the panel's own
268
+ * delete action). If the deleted view was active, the product falls back to
269
+ * the default plan/3D view. Default views (the built-in plan/3D/site-plan
270
+ * entries) cannot be deleted.
271
+ *
272
+ * @param viewId - The id of the view to delete.
273
+ * @returns The id of the deleted view
274
+ * (a {@linkcode PluginPresentationViewsDeleteResult}).
275
+ * @throws If writes are disabled, no view has the given id, or the view is a
276
+ * default view.
277
+ *
278
+ * @examplePrompt Delete the view named Old Draft
279
+ * @examplePrompt Remove this saved view
280
+ * @examplePrompt Get rid of the Lobby camera bookmark
281
+ *
282
+ * # Example
283
+ * ```ts
284
+ * const { id } = await snaptrude.presentation.views.delete("view_123")
285
+ * ```
286
+ */
287
+ abstract delete(viewId: string): PluginApiReturn<PluginPresentationViewsDeleteResult>;
288
+ }
289
+ /**
290
+ * The rendering category of a saved view. Existing plan/3D values are preserved;
291
+ * elevations are identified independently of their orthographic 3D camera.
292
+ */
293
+ export declare const PluginPresentationViewType: z.ZodEnum<{
294
+ elevation: "elevation";
295
+ "2d": "2d";
296
+ "3d": "3d";
297
+ }>;
298
+ export type PluginPresentationViewType = z.infer<typeof PluginPresentationViewType>;
299
+ /** The native semantic kind persisted for a saved view. */
300
+ export declare const PluginPresentationViewKind: z.ZodEnum<{
301
+ elevation: "elevation";
302
+ plan: "plan";
303
+ sitePlan: "sitePlan";
304
+ threeD: "threeD";
305
+ }>;
306
+ export type PluginPresentationViewKind = z.infer<typeof PluginPresentationViewKind>;
307
+ /** Cardinal direction for an elevation; non-elevation views return `null`. */
308
+ export declare const PluginPresentationElevationDirection: z.ZodEnum<{
309
+ north: "north";
310
+ south: "south";
311
+ east: "east";
312
+ west: "west";
313
+ }>;
314
+ export type PluginPresentationElevationDirection = z.infer<typeof PluginPresentationElevationDirection>;
315
+ /**
316
+ * A saved presentation view.
317
+ *
318
+ * | Property | Type | Description |
319
+ * |---|---|---|
320
+ * | `id` | `string` | Unique view id |
321
+ * | `name` | `string` | Display name |
322
+ * | `type` | `"2d" \| "3d" \| "elevation"` | Rendering category; elevations are distinct from ordinary 3D views |
323
+ * | `kind` | {@linkcode PluginPresentationViewKind} | Native semantic view kind |
324
+ * | `direction` | {@linkcode PluginPresentationElevationDirection}` \| null` | Cardinal direction for elevations; otherwise `null` |
325
+ * | `isActive` | `boolean` | Whether this view is the currently active view |
326
+ * | `storey` | `number \| null` | The storey this view was saved on (`null` on older views saved without one) |
327
+ */
328
+ export declare const PluginPresentationView: z.ZodObject<{
329
+ id: z.ZodString;
330
+ name: z.ZodString;
331
+ type: z.ZodEnum<{
332
+ elevation: "elevation";
333
+ "2d": "2d";
334
+ "3d": "3d";
335
+ }>;
336
+ kind: z.ZodEnum<{
337
+ elevation: "elevation";
338
+ plan: "plan";
339
+ sitePlan: "sitePlan";
340
+ threeD: "threeD";
341
+ }>;
342
+ direction: z.ZodNullable<z.ZodEnum<{
343
+ north: "north";
344
+ south: "south";
345
+ east: "east";
346
+ west: "west";
347
+ }>>;
348
+ isActive: z.ZodBoolean;
349
+ storey: z.ZodNullable<z.ZodNumber>;
350
+ }, z.core.$strip>;
351
+ export type PluginPresentationView = z.infer<typeof PluginPresentationView>;
352
+ /**
353
+ * Result of {@linkcode PluginPresentationViewsApi.list}.
354
+ *
355
+ * | Property | Type | Description |
356
+ * |---|---|---|
357
+ * | `views` | {@linkcode PluginPresentationView}`[]` | All saved views in the project |
358
+ */
359
+ export declare const PluginPresentationViewsListResult: z.ZodObject<{
360
+ views: z.ZodArray<z.ZodObject<{
361
+ id: z.ZodString;
362
+ name: z.ZodString;
363
+ type: z.ZodEnum<{
364
+ elevation: "elevation";
365
+ "2d": "2d";
366
+ "3d": "3d";
367
+ }>;
368
+ kind: z.ZodEnum<{
369
+ elevation: "elevation";
370
+ plan: "plan";
371
+ sitePlan: "sitePlan";
372
+ threeD: "threeD";
373
+ }>;
374
+ direction: z.ZodNullable<z.ZodEnum<{
375
+ north: "north";
376
+ south: "south";
377
+ east: "east";
378
+ west: "west";
379
+ }>>;
380
+ isActive: z.ZodBoolean;
381
+ storey: z.ZodNullable<z.ZodNumber>;
382
+ }, z.core.$strip>>;
383
+ }, z.core.$strip>;
384
+ export type PluginPresentationViewsListResult = z.infer<typeof PluginPresentationViewsListResult>;
385
+ /**
386
+ * Arguments for {@linkcode PluginPresentationViewsApi.get}.
387
+ *
388
+ * | Property | Type | Description |
389
+ * |---|---|---|
390
+ * | `id` | `string` | The id of the view to read |
391
+ */
392
+ export declare const PluginPresentationViewsGetArgs: z.ZodObject<{
393
+ id: z.ZodString;
394
+ }, z.core.$strip>;
395
+ export type PluginPresentationViewsGetArgs = z.infer<typeof PluginPresentationViewsGetArgs>;
396
+ /**
397
+ * Result of {@linkcode PluginPresentationViewsApi.get} and
398
+ * {@linkcode PluginPresentationViewsApi.getActive} — the view, or `null` when
399
+ * there is no match / no active view.
400
+ */
401
+ export declare const PluginPresentationViewsGetResult: z.ZodNullable<z.ZodObject<{
402
+ id: z.ZodString;
403
+ name: z.ZodString;
404
+ type: z.ZodEnum<{
405
+ elevation: "elevation";
406
+ "2d": "2d";
407
+ "3d": "3d";
408
+ }>;
409
+ kind: z.ZodEnum<{
410
+ elevation: "elevation";
411
+ plan: "plan";
412
+ sitePlan: "sitePlan";
413
+ threeD: "threeD";
414
+ }>;
415
+ direction: z.ZodNullable<z.ZodEnum<{
416
+ north: "north";
417
+ south: "south";
418
+ east: "east";
419
+ west: "west";
420
+ }>>;
421
+ isActive: z.ZodBoolean;
422
+ storey: z.ZodNullable<z.ZodNumber>;
423
+ }, z.core.$strip>>;
424
+ export type PluginPresentationViewsGetResult = z.infer<typeof PluginPresentationViewsGetResult>;
425
+ /** Image format for {@linkcode PluginPresentationViewsApi.capture}. */
426
+ export declare const PluginPresentationImageFormat: z.ZodEnum<{
427
+ png: "png";
428
+ jpeg: "jpeg";
429
+ }>;
430
+ export type PluginPresentationImageFormat = z.infer<typeof PluginPresentationImageFormat>;
431
+ /**
432
+ * Arguments for {@linkcode PluginPresentationViewsApi.capture}. All optional.
433
+ *
434
+ * | Property | Type | Description |
435
+ * |---|---|---|
436
+ * | `viewId` | `string \| undefined` | Capture this saved view; omit to capture the current viewport |
437
+ * | `format` | `"png" \| "jpeg" \| undefined` | Output image format (default `"png"`) |
438
+ * | `resolution` | `string \| undefined` | Optional resolution hint (e.g. `"1280x720"`) |
439
+ */
440
+ export declare const PluginPresentationViewsCaptureArgs: z.ZodObject<{
441
+ viewId: z.ZodOptional<z.ZodString>;
442
+ format: z.ZodOptional<z.ZodEnum<{
443
+ png: "png";
444
+ jpeg: "jpeg";
445
+ }>>;
446
+ resolution: z.ZodOptional<z.ZodString>;
447
+ }, z.core.$strip>;
448
+ export type PluginPresentationViewsCaptureArgs = z.infer<typeof PluginPresentationViewsCaptureArgs>;
449
+ /**
450
+ * Result of {@linkcode PluginPresentationViewsApi.capture}.
451
+ *
452
+ * | Property | Type | Description |
453
+ * |---|---|---|
454
+ * | `image` | `string` | The captured image as a base64 data URL |
455
+ */
456
+ export declare const PluginPresentationViewsCaptureResult: z.ZodObject<{
457
+ image: z.ZodString;
458
+ }, z.core.$strip>;
459
+ export type PluginPresentationViewsCaptureResult = z.infer<typeof PluginPresentationViewsCaptureResult>;
460
+ /**
461
+ * Arguments for {@linkcode PluginPresentationViewsApi.setActive}.
462
+ *
463
+ * | Property | Type | Description |
464
+ * |---|---|---|
465
+ * | `id` | `string` | The id of the view to activate |
466
+ */
467
+ export declare const PluginPresentationViewsSetActiveArgs: z.ZodObject<{
468
+ id: z.ZodString;
469
+ }, z.core.$strip>;
470
+ export type PluginPresentationViewsSetActiveArgs = z.infer<typeof PluginPresentationViewsSetActiveArgs>;
471
+ /** Result of {@linkcode PluginPresentationViewsApi.setActive} — the active view's id. */
472
+ export declare const PluginPresentationViewsSetActiveResult: z.ZodObject<{
473
+ id: z.ZodString;
474
+ }, z.core.$strip>;
475
+ export type PluginPresentationViewsSetActiveResult = z.infer<typeof PluginPresentationViewsSetActiveResult>;
476
+ /**
477
+ * Arguments for {@linkcode PluginPresentationViewsApi.create}. All optional.
478
+ *
479
+ * | Property | Type | Description |
480
+ * |---|---|---|
481
+ * | `name` | `string \| undefined` | Name for the new view (a default is used when omitted) |
482
+ * | `kind` | `"view" \| "sitePlan" \| undefined` | What kind of view to save (default `"view"`). `"plan"` is not offered — the host cannot create a plan view without a `planId` this API does not carry. |
483
+ * | `storey` | `number \| undefined` | Save the view on this storey (activated before capture); defaults to the current active storey |
484
+ */
485
+ export declare const PluginPresentationViewsCreateArgs: z.ZodObject<{
486
+ name: z.ZodOptional<z.ZodString>;
487
+ kind: z.ZodOptional<z.ZodEnum<{
488
+ view: "view";
489
+ sitePlan: "sitePlan";
490
+ }>>;
491
+ storey: z.ZodOptional<z.ZodNumber>;
492
+ }, z.core.$strip>;
493
+ export type PluginPresentationViewsCreateArgs = z.infer<typeof PluginPresentationViewsCreateArgs>;
494
+ /** Result of {@linkcode PluginPresentationViewsApi.create} — the saved view. */
495
+ export declare const PluginPresentationViewsCreateResult: z.ZodObject<{
496
+ id: z.ZodString;
497
+ name: z.ZodString;
498
+ type: z.ZodEnum<{
499
+ elevation: "elevation";
500
+ "2d": "2d";
501
+ "3d": "3d";
502
+ }>;
503
+ kind: z.ZodEnum<{
504
+ elevation: "elevation";
505
+ plan: "plan";
506
+ sitePlan: "sitePlan";
507
+ threeD: "threeD";
508
+ }>;
509
+ direction: z.ZodNullable<z.ZodEnum<{
510
+ north: "north";
511
+ south: "south";
512
+ east: "east";
513
+ west: "west";
514
+ }>>;
515
+ isActive: z.ZodBoolean;
516
+ storey: z.ZodNullable<z.ZodNumber>;
517
+ }, z.core.$strip>;
518
+ export type PluginPresentationViewsCreateResult = z.infer<typeof PluginPresentationViewsCreateResult>;
519
+ /**
520
+ * How the scene is colored in a view.
521
+ *
522
+ * | Value | Meaning |
523
+ * |---|---|
524
+ * | `monochrome` | Flat single-tone shading |
525
+ * | `texture` | Material textures/colors |
526
+ * | `department` | Colored by department |
527
+ * | `tag:<categoryId>` | Colored by a project tag category (e.g. `tag:ZONE`) |
528
+ *
529
+ * The `tag:<categoryId>` form carries the product's tag-based color schemes
530
+ * losslessly — reading a view that uses one returns the `tag:` string as-is,
531
+ * and writing it back preserves the scheme (read-then-write is safe).
532
+ */
533
+ export declare const PluginPresentationViewColorMode: z.ZodUnion<readonly [z.ZodEnum<{
534
+ department: "department";
535
+ monochrome: "monochrome";
536
+ texture: "texture";
537
+ }>, z.ZodTemplateLiteral<`tag:${string}`>]>;
538
+ export type PluginPresentationViewColorMode = z.infer<typeof PluginPresentationViewColorMode>;
539
+ /**
540
+ * A category of on-canvas labels a view can show.
541
+ *
542
+ * | Value | Meaning |
543
+ * |---|---|
544
+ * | `objectLabels` | Per-object name labels |
545
+ * | `areas` | Area/room labels |
546
+ * | `department` | Department labels |
547
+ */
548
+ export declare const PluginPresentationViewLabel: z.ZodEnum<{
549
+ department: "department";
550
+ objectLabels: "objectLabels";
551
+ areas: "areas";
552
+ }>;
553
+ export type PluginPresentationViewLabel = z.infer<typeof PluginPresentationViewLabel>;
554
+ /**
555
+ * A view's camera projection: perspective, or isometric (orthographic).
556
+ *
557
+ * | Value | Meaning |
558
+ * |---|---|
559
+ * | `perspective` | Perspective projection (vanishing points) |
560
+ * | `isometric` | Orthographic projection (no perspective distortion) |
561
+ *
562
+ * Applies to 3D views; a 2D plan view is always orthographic and reads
563
+ * `"isometric"`.
564
+ */
565
+ export declare const PluginPresentationViewMode: z.ZodEnum<{
566
+ perspective: "perspective";
567
+ isometric: "isometric";
568
+ }>;
569
+ export type PluginPresentationViewMode = z.infer<typeof PluginPresentationViewMode>;
570
+ /**
571
+ * A view's display settings.
572
+ *
573
+ * | Property | Type | Description |
574
+ * |---|---|---|
575
+ * | `backgroundColor` | `string` | Canvas background as a hex color (e.g. `#ffffff`) |
576
+ * | `colorMode` | {@linkcode PluginPresentationViewColorMode} | How the scene is colored (including `tag:<categoryId>` schemes) |
577
+ * | `viewMode` | {@linkcode PluginPresentationViewMode} | Camera projection — `"perspective"` or `"isometric"` (orthographic). Writable on 3D views only; a 2D plan always reads `"isometric"` and accepts only `"isometric"` (a no-op) |
578
+ * | `showAxis` | `boolean` | Whether the X/Y/Z axes are shown |
579
+ * | `showEdges` | `boolean` | Whether edges are shown; `false` = hidden-line rendering |
580
+ * | `showLabels` | `boolean` | Master label switch — whether on-canvas labels are shown at all. `true` always pairs with a non-empty `labels` selection (labels render only while the selection is non-empty; there is no labels-on-with-empty-selection state) |
581
+ * | `labels` | {@linkcode PluginPresentationViewLabel}`[]` | Which label categories are selected. When `showLabels` is `false` the view stores no selection and this reads `[]` |
582
+ */
583
+ export declare const PluginPresentationViewSettings: z.ZodObject<{
584
+ backgroundColor: z.ZodString;
585
+ colorMode: z.ZodUnion<readonly [z.ZodEnum<{
586
+ department: "department";
587
+ monochrome: "monochrome";
588
+ texture: "texture";
589
+ }>, z.ZodTemplateLiteral<`tag:${string}`>]>;
590
+ viewMode: z.ZodEnum<{
591
+ perspective: "perspective";
592
+ isometric: "isometric";
593
+ }>;
594
+ showAxis: z.ZodBoolean;
595
+ showEdges: z.ZodBoolean;
596
+ showLabels: z.ZodBoolean;
597
+ labels: z.ZodArray<z.ZodEnum<{
598
+ department: "department";
599
+ objectLabels: "objectLabels";
600
+ areas: "areas";
601
+ }>>;
602
+ }, z.core.$strip>;
603
+ export type PluginPresentationViewSettings = z.infer<typeof PluginPresentationViewSettings>;
604
+ /**
605
+ * Arguments for {@linkcode PluginPresentationViewsApi.getSettings}.
606
+ *
607
+ * | Property | Type | Description |
608
+ * |---|---|---|
609
+ * | `id` | `string` | The id of the view to read settings for |
610
+ */
611
+ export declare const PluginPresentationViewsGetSettingsArgs: z.ZodObject<{
612
+ id: z.ZodString;
613
+ }, z.core.$strip>;
614
+ export type PluginPresentationViewsGetSettingsArgs = z.infer<typeof PluginPresentationViewsGetSettingsArgs>;
615
+ /**
616
+ * Result of {@linkcode PluginPresentationViewsApi.getSettings} — the settings,
617
+ * or `null` when no view has that id.
618
+ */
619
+ export declare const PluginPresentationViewsGetSettingsResult: z.ZodNullable<z.ZodObject<{
620
+ backgroundColor: z.ZodString;
621
+ colorMode: z.ZodUnion<readonly [z.ZodEnum<{
622
+ department: "department";
623
+ monochrome: "monochrome";
624
+ texture: "texture";
625
+ }>, z.ZodTemplateLiteral<`tag:${string}`>]>;
626
+ viewMode: z.ZodEnum<{
627
+ perspective: "perspective";
628
+ isometric: "isometric";
629
+ }>;
630
+ showAxis: z.ZodBoolean;
631
+ showEdges: z.ZodBoolean;
632
+ showLabels: z.ZodBoolean;
633
+ labels: z.ZodArray<z.ZodEnum<{
634
+ department: "department";
635
+ objectLabels: "objectLabels";
636
+ areas: "areas";
637
+ }>>;
638
+ }, z.core.$strip>>;
639
+ export type PluginPresentationViewsGetSettingsResult = z.infer<typeof PluginPresentationViewsGetSettingsResult>;
640
+ /**
641
+ * Arguments for {@linkcode PluginPresentationViewsApi.updateSettings}. The
642
+ * `settings` patch is partial — any omitted field is left unchanged. A patch
643
+ * pairing `showLabels: false` with a non-empty `labels` list, or
644
+ * `showLabels: true` with an explicitly empty `labels` list, is rejected as
645
+ * contradictory (see the method JSDoc for the full label patch semantics).
646
+ *
647
+ * | Property | Type | Description |
648
+ * |---|---|---|
649
+ * | `id` | `string` | The id of the view to update |
650
+ * | `settings` | `Partial<`{@linkcode PluginPresentationViewSettings}`>` | The fields to change |
651
+ */
652
+ export declare const PluginPresentationViewsUpdateSettingsArgs: z.ZodObject<{
653
+ id: z.ZodString;
654
+ settings: z.ZodObject<{
655
+ backgroundColor: z.ZodOptional<z.ZodString>;
656
+ colorMode: z.ZodOptional<z.ZodUnion<readonly [z.ZodEnum<{
657
+ department: "department";
658
+ monochrome: "monochrome";
659
+ texture: "texture";
660
+ }>, z.ZodTemplateLiteral<`tag:${string}`>]>>;
661
+ viewMode: z.ZodOptional<z.ZodEnum<{
662
+ perspective: "perspective";
663
+ isometric: "isometric";
664
+ }>>;
665
+ showAxis: z.ZodOptional<z.ZodBoolean>;
666
+ showEdges: z.ZodOptional<z.ZodBoolean>;
667
+ showLabels: z.ZodOptional<z.ZodBoolean>;
668
+ labels: z.ZodOptional<z.ZodArray<z.ZodEnum<{
669
+ department: "department";
670
+ objectLabels: "objectLabels";
671
+ areas: "areas";
672
+ }>>>;
673
+ }, z.core.$strip>;
674
+ }, z.core.$strip>;
675
+ export type PluginPresentationViewsUpdateSettingsArgs = z.infer<typeof PluginPresentationViewsUpdateSettingsArgs>;
676
+ /** Result of {@linkcode PluginPresentationViewsApi.updateSettings} — the updated view's id. */
677
+ export declare const PluginPresentationViewsUpdateSettingsResult: z.ZodObject<{
678
+ id: z.ZodString;
679
+ }, z.core.$strip>;
680
+ export type PluginPresentationViewsUpdateSettingsResult = z.infer<typeof PluginPresentationViewsUpdateSettingsResult>;
681
+ /**
682
+ * Arguments for {@linkcode PluginPresentationViewsApi.rename}.
683
+ *
684
+ * | Property | Type | Description |
685
+ * |---|---|---|
686
+ * | `id` | `string` | The id of the view to rename |
687
+ * | `name` | `string` | New display name (non-empty after trimming) |
688
+ */
689
+ export declare const PluginPresentationViewsRenameArgs: z.ZodObject<{
690
+ id: z.ZodString;
691
+ name: z.ZodString;
692
+ }, z.core.$strip>;
693
+ export type PluginPresentationViewsRenameArgs = z.infer<typeof PluginPresentationViewsRenameArgs>;
694
+ /** Result of {@linkcode PluginPresentationViewsApi.rename} — the renamed view. */
695
+ export declare const PluginPresentationViewsRenameResult: z.ZodObject<{
696
+ id: z.ZodString;
697
+ name: z.ZodString;
698
+ type: z.ZodEnum<{
699
+ elevation: "elevation";
700
+ "2d": "2d";
701
+ "3d": "3d";
702
+ }>;
703
+ kind: z.ZodEnum<{
704
+ elevation: "elevation";
705
+ plan: "plan";
706
+ sitePlan: "sitePlan";
707
+ threeD: "threeD";
708
+ }>;
709
+ direction: z.ZodNullable<z.ZodEnum<{
710
+ north: "north";
711
+ south: "south";
712
+ east: "east";
713
+ west: "west";
714
+ }>>;
715
+ isActive: z.ZodBoolean;
716
+ storey: z.ZodNullable<z.ZodNumber>;
717
+ }, z.core.$strip>;
718
+ export type PluginPresentationViewsRenameResult = z.infer<typeof PluginPresentationViewsRenameResult>;
719
+ /**
720
+ * Arguments for {@linkcode PluginPresentationViewsApi.delete}.
721
+ *
722
+ * | Property | Type | Description |
723
+ * |---|---|---|
724
+ * | `id` | `string` | The id of the view to delete |
725
+ */
726
+ export declare const PluginPresentationViewsDeleteArgs: z.ZodObject<{
727
+ id: z.ZodString;
728
+ }, z.core.$strip>;
729
+ export type PluginPresentationViewsDeleteArgs = z.infer<typeof PluginPresentationViewsDeleteArgs>;
730
+ /**
731
+ * Result of {@linkcode PluginPresentationViewsApi.delete}.
732
+ *
733
+ * | Property | Type | Description |
734
+ * |---|---|---|
735
+ * | `id` | `string` | Id of the deleted view |
736
+ */
737
+ export declare const PluginPresentationViewsDeleteResult: z.ZodObject<{
738
+ id: z.ZodString;
739
+ }, z.core.$strip>;
740
+ export type PluginPresentationViewsDeleteResult = z.infer<typeof PluginPresentationViewsDeleteResult>;
741
+ //# sourceMappingURL=views.d.ts.map