@snaptrude/plugin-core 0.3.0 → 0.6.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 (302) hide show
  1. package/AGENTS.md +130 -48
  2. package/CHANGELOG.md +163 -0
  3. package/api-manifest.full.json +5600 -0
  4. package/api-manifest.json +5502 -0
  5. package/dist/api/analysis/heatmaps.d.ts +234 -0
  6. package/dist/api/analysis/heatmaps.d.ts.map +1 -0
  7. package/dist/api/analysis/illuminance.d.ts +145 -0
  8. package/dist/api/analysis/illuminance.d.ts.map +1 -0
  9. package/dist/api/analysis/index.d.ts +44 -0
  10. package/dist/api/analysis/index.d.ts.map +1 -0
  11. package/dist/api/analysis/shadows.d.ts +165 -0
  12. package/dist/api/analysis/shadows.d.ts.map +1 -0
  13. package/dist/api/analysis/sunlightHours.d.ts +208 -0
  14. package/dist/api/analysis/sunlightHours.d.ts.map +1 -0
  15. package/dist/api/analysis/sunpath.d.ts +80 -0
  16. package/dist/api/analysis/sunpath.d.ts.map +1 -0
  17. package/dist/api/core/buildings.d.ts +427 -0
  18. package/dist/api/core/buildings.d.ts.map +1 -0
  19. package/dist/api/core/comment/index.d.ts +230 -0
  20. package/dist/api/core/comment/index.d.ts.map +1 -0
  21. package/dist/api/core/geom/create/index.d.ts +247 -0
  22. package/dist/api/core/geom/create/index.d.ts.map +1 -0
  23. package/dist/api/core/geom/delete/index.d.ts +72 -0
  24. package/dist/api/core/geom/delete/index.d.ts.map +1 -0
  25. package/dist/api/core/geom/index.d.ts +24 -23
  26. package/dist/api/core/geom/index.d.ts.map +1 -1
  27. package/dist/api/core/geom/query/arc.d.ts +169 -0
  28. package/dist/api/core/geom/query/arc.d.ts.map +1 -0
  29. package/dist/api/core/geom/query/brep.d.ts +402 -0
  30. package/dist/api/core/geom/query/brep.d.ts.map +1 -0
  31. package/dist/api/core/geom/query/circle.d.ts +378 -0
  32. package/dist/api/core/geom/query/circle.d.ts.map +1 -0
  33. package/dist/api/core/geom/query/contour.d.ts +450 -0
  34. package/dist/api/core/geom/query/contour.d.ts.map +1 -0
  35. package/dist/api/core/geom/query/curve.d.ts +918 -0
  36. package/dist/api/core/geom/query/curve.d.ts.map +1 -0
  37. package/dist/api/core/geom/query/edge.d.ts +128 -0
  38. package/dist/api/core/geom/query/edge.d.ts.map +1 -0
  39. package/dist/api/core/geom/query/face.d.ts +363 -0
  40. package/dist/api/core/geom/query/face.d.ts.map +1 -0
  41. package/dist/api/core/geom/query/halfedge.d.ts +206 -0
  42. package/dist/api/core/geom/query/halfedge.d.ts.map +1 -0
  43. package/dist/api/core/geom/query/index.d.ts +61 -0
  44. package/dist/api/core/geom/query/index.d.ts.map +1 -0
  45. package/dist/api/core/geom/query/profile.d.ts +410 -0
  46. package/dist/api/core/geom/query/profile.d.ts.map +1 -0
  47. package/dist/api/core/geom/query/vertex.d.ts +187 -0
  48. package/dist/api/core/geom/query/vertex.d.ts.map +1 -0
  49. package/dist/api/core/geom/update/contour.d.ts +272 -0
  50. package/dist/api/core/geom/update/contour.d.ts.map +1 -0
  51. package/dist/api/core/geom/update/curve.d.ts +180 -0
  52. package/dist/api/core/geom/update/curve.d.ts.map +1 -0
  53. package/dist/api/core/geom/update/index.d.ts +27 -0
  54. package/dist/api/core/geom/update/index.d.ts.map +1 -0
  55. package/dist/api/core/geom/update/profile.d.ts +329 -0
  56. package/dist/api/core/geom/update/profile.d.ts.map +1 -0
  57. package/dist/api/core/groups.d.ts +485 -0
  58. package/dist/api/core/groups.d.ts.map +1 -0
  59. package/dist/api/core/history/index.d.ts +78 -0
  60. package/dist/api/core/history/index.d.ts.map +1 -0
  61. package/dist/api/core/index.d.ts +51 -1
  62. package/dist/api/core/index.d.ts.map +1 -1
  63. package/dist/api/core/io/import/index.d.ts +392 -0
  64. package/dist/api/core/io/import/index.d.ts.map +1 -0
  65. package/dist/api/core/io/index.d.ts +35 -0
  66. package/dist/api/core/io/index.d.ts.map +1 -0
  67. package/dist/api/core/io/job/index.d.ts +139 -0
  68. package/dist/api/core/io/job/index.d.ts.map +1 -0
  69. package/dist/api/core/io/query/index.d.ts +74 -0
  70. package/dist/api/core/io/query/index.d.ts.map +1 -0
  71. package/dist/api/core/io/terrain/index.d.ts +206 -0
  72. package/dist/api/core/io/terrain/index.d.ts.map +1 -0
  73. package/dist/api/core/io/underlay/index.d.ts +286 -0
  74. package/dist/api/core/io/underlay/index.d.ts.map +1 -0
  75. package/dist/api/core/layers.d.ts +402 -0
  76. package/dist/api/core/layers.d.ts.map +1 -0
  77. package/dist/api/core/math/quat.d.ts +111 -128
  78. package/dist/api/core/math/quat.d.ts.map +1 -1
  79. package/dist/api/core/math/vec3.d.ts +120 -102
  80. package/dist/api/core/math/vec3.d.ts.map +1 -1
  81. package/dist/api/core/project/index.d.ts +399 -0
  82. package/dist/api/core/project/index.d.ts.map +1 -0
  83. package/dist/api/core/tags.d.ts +755 -0
  84. package/dist/api/core/tags.d.ts.map +1 -0
  85. package/dist/api/core/units/index.d.ts +175 -0
  86. package/dist/api/core/units/index.d.ts.map +1 -0
  87. package/dist/api/core/zoom/index.d.ts +45 -0
  88. package/dist/api/core/zoom/index.d.ts.map +1 -0
  89. package/dist/api/design/boolean/index.d.ts +168 -0
  90. package/dist/api/design/boolean/index.d.ts.map +1 -0
  91. package/dist/api/design/create/index.d.ts +837 -0
  92. package/dist/api/design/create/index.d.ts.map +1 -0
  93. package/dist/api/design/delete/index.d.ts +63 -0
  94. package/dist/api/design/delete/index.d.ts.map +1 -0
  95. package/dist/api/design/doors/index.d.ts +268 -0
  96. package/dist/api/design/doors/index.d.ts.map +1 -0
  97. package/dist/api/design/edit/index.d.ts +49 -0
  98. package/dist/api/design/edit/index.d.ts.map +1 -0
  99. package/dist/api/design/erase/index.d.ts +160 -0
  100. package/dist/api/design/erase/index.d.ts.map +1 -0
  101. package/dist/api/design/furniture/index.d.ts +123 -0
  102. package/dist/api/design/furniture/index.d.ts.map +1 -0
  103. package/dist/api/design/index.d.ts +153 -0
  104. package/dist/api/design/index.d.ts.map +1 -0
  105. package/dist/api/design/lock.d.ts +41 -0
  106. package/dist/api/design/lock.d.ts.map +1 -0
  107. package/dist/api/design/materials/index.d.ts +297 -0
  108. package/dist/api/design/materials/index.d.ts.map +1 -0
  109. package/dist/api/design/query/geometry/index.d.ts +140 -0
  110. package/dist/api/design/query/geometry/index.d.ts.map +1 -0
  111. package/dist/api/design/query/index.d.ts +1011 -0
  112. package/dist/api/design/query/index.d.ts.map +1 -0
  113. package/dist/api/design/query/spaces.d.ts +221 -0
  114. package/dist/api/design/query/spaces.d.ts.map +1 -0
  115. package/dist/api/design/selection/index.d.ts +282 -0
  116. package/dist/api/design/selection/index.d.ts.map +1 -0
  117. package/dist/api/design/shared.d.ts +38 -0
  118. package/dist/api/design/shared.d.ts.map +1 -0
  119. package/dist/api/design/transform/index.d.ts +87 -0
  120. package/dist/api/design/transform/index.d.ts.map +1 -0
  121. package/dist/api/design/update/index.d.ts +178 -0
  122. package/dist/api/design/update/index.d.ts.map +1 -0
  123. package/dist/api/design/windows/index.d.ts +189 -0
  124. package/dist/api/design/windows/index.d.ts.map +1 -0
  125. package/dist/api/entity/buildableEnvelope.d.ts +261 -0
  126. package/dist/api/entity/buildableEnvelope.d.ts.map +1 -0
  127. package/dist/api/entity/department.d.ts +0 -98
  128. package/dist/api/entity/department.d.ts.map +1 -1
  129. package/dist/api/entity/index.d.ts +9 -9
  130. package/dist/api/entity/index.d.ts.map +1 -1
  131. package/dist/api/entity/referenceLine.d.ts +49 -106
  132. package/dist/api/entity/referenceLine.d.ts.map +1 -1
  133. package/dist/api/entity/space.d.ts +484 -251
  134. package/dist/api/entity/space.d.ts.map +1 -1
  135. package/dist/api/entity/story.d.ts +49 -39
  136. package/dist/api/entity/story.d.ts.map +1 -1
  137. package/dist/api/index.d.ts +22 -12
  138. package/dist/api/index.d.ts.map +1 -1
  139. package/dist/api/presentation/aiInspiration.d.ts +440 -0
  140. package/dist/api/presentation/aiInspiration.d.ts.map +1 -0
  141. package/dist/api/presentation/diagrams.d.ts +81 -0
  142. package/dist/api/presentation/diagrams.d.ts.map +1 -0
  143. package/dist/api/presentation/import.d.ts +113 -0
  144. package/dist/api/presentation/import.d.ts.map +1 -0
  145. package/dist/api/presentation/index.d.ts +46 -0
  146. package/dist/api/presentation/index.d.ts.map +1 -0
  147. package/dist/api/presentation/sheets.d.ts +176 -0
  148. package/dist/api/presentation/sheets.d.ts.map +1 -0
  149. package/dist/api/presentation/views.d.ts +296 -0
  150. package/dist/api/presentation/views.d.ts.map +1 -0
  151. package/dist/api/program/adjacency.d.ts +155 -0
  152. package/dist/api/program/adjacency.d.ts.map +1 -0
  153. package/dist/api/program/areas.d.ts +360 -0
  154. package/dist/api/program/areas.d.ts.map +1 -0
  155. package/dist/api/program/classification.d.ts +135 -0
  156. package/dist/api/program/classification.d.ts.map +1 -0
  157. package/dist/api/program/cores.d.ts +174 -0
  158. package/dist/api/program/cores.d.ts.map +1 -0
  159. package/dist/api/program/departments.d.ts +431 -0
  160. package/dist/api/program/departments.d.ts.map +1 -0
  161. package/dist/api/program/index.d.ts +69 -0
  162. package/dist/api/program/index.d.ts.map +1 -0
  163. package/dist/api/program/layout.d.ts +63 -0
  164. package/dist/api/program/layout.d.ts.map +1 -0
  165. package/dist/api/program/metrics.d.ts +108 -0
  166. package/dist/api/program/metrics.d.ts.map +1 -0
  167. package/dist/api/program/site.d.ts +451 -0
  168. package/dist/api/program/site.d.ts.map +1 -0
  169. package/dist/api/program/spreadsheet.d.ts +2041 -0
  170. package/dist/api/program/spreadsheet.d.ts.map +1 -0
  171. package/dist/handles.d.ts +171 -0
  172. package/dist/handles.d.ts.map +1 -0
  173. package/dist/host-utils.d.ts +7 -5
  174. package/dist/host-utils.d.ts.map +1 -1
  175. package/dist/index.cjs +4344 -899
  176. package/dist/index.cjs.map +1 -1
  177. package/dist/index.d.ts +1 -0
  178. package/dist/index.d.ts.map +1 -1
  179. package/dist/index.js +3682 -865
  180. package/dist/index.js.map +1 -1
  181. package/package.json +6 -2
  182. package/scripts/generate-manifest.mjs +193 -0
  183. package/scripts/generate-manifest.test.mjs +215 -0
  184. package/src/api/analysis/heatmaps.ts +256 -0
  185. package/src/api/analysis/illuminance.ts +155 -0
  186. package/src/api/analysis/index.ts +46 -0
  187. package/src/api/analysis/shadows.ts +183 -0
  188. package/src/api/analysis/sunlightHours.ts +211 -0
  189. package/src/api/analysis/sunpath.ts +83 -0
  190. package/src/api/core/buildings.ts +485 -0
  191. package/src/api/core/comment/index.ts +258 -0
  192. package/src/api/core/geom/create/index.ts +293 -0
  193. package/src/api/core/geom/delete/index.ts +78 -0
  194. package/src/api/core/geom/index.ts +24 -23
  195. package/src/api/core/geom/query/arc.ts +169 -0
  196. package/src/api/core/geom/query/brep.ts +444 -0
  197. package/src/api/core/geom/query/circle.ts +404 -0
  198. package/src/api/core/geom/query/contour.ts +540 -0
  199. package/src/api/core/geom/query/curve.ts +1078 -0
  200. package/src/api/core/geom/query/edge.ts +130 -0
  201. package/src/api/core/geom/query/face.ts +403 -0
  202. package/src/api/core/geom/query/halfedge.ts +210 -0
  203. package/src/api/core/geom/query/index.ts +63 -0
  204. package/src/api/core/geom/query/profile.ts +473 -0
  205. package/src/api/core/geom/query/vertex.ts +205 -0
  206. package/src/api/core/geom/update/contour.ts +315 -0
  207. package/src/api/core/geom/update/curve.ts +209 -0
  208. package/src/api/core/geom/update/index.ts +29 -0
  209. package/src/api/core/geom/update/profile.ts +377 -0
  210. package/src/api/core/groups.ts +521 -0
  211. package/src/api/core/history/index.ts +84 -0
  212. package/src/api/core/index.ts +51 -1
  213. package/src/api/core/io/import/index.ts +432 -0
  214. package/src/api/core/io/index.ts +37 -0
  215. package/src/api/core/io/job/index.ts +140 -0
  216. package/src/api/core/io/query/index.ts +71 -0
  217. package/src/api/core/io/terrain/index.ts +214 -0
  218. package/src/api/core/io/underlay/index.ts +295 -0
  219. package/src/api/core/layers.ts +333 -0
  220. package/src/api/core/math/quat.ts +112 -235
  221. package/src/api/core/math/vec3.ts +124 -159
  222. package/src/api/core/project/index.ts +418 -0
  223. package/src/api/core/tags.ts +808 -0
  224. package/src/api/core/units/index.ts +164 -0
  225. package/src/api/core/zoom/index.ts +47 -0
  226. package/src/api/design/boolean/index.ts +179 -0
  227. package/src/api/design/create/index.ts +895 -0
  228. package/src/api/design/delete/index.ts +67 -0
  229. package/src/api/design/doors/index.ts +285 -0
  230. package/src/api/design/edit/index.ts +54 -0
  231. package/src/api/design/erase/index.ts +151 -0
  232. package/src/api/design/furniture/index.ts +130 -0
  233. package/src/api/design/index.ts +162 -0
  234. package/src/api/design/lock.ts +42 -0
  235. package/src/api/design/materials/index.ts +301 -0
  236. package/src/api/design/query/geometry/index.ts +166 -0
  237. package/src/api/design/query/index.ts +937 -0
  238. package/src/api/design/query/spaces.ts +132 -0
  239. package/src/api/design/selection/index.ts +273 -0
  240. package/src/api/design/shared.ts +40 -0
  241. package/src/api/design/transform/index.ts +93 -0
  242. package/src/api/design/update/index.ts +117 -0
  243. package/src/api/design/windows/index.ts +207 -0
  244. package/src/api/entity/buildableEnvelope.ts +318 -0
  245. package/src/api/entity/department.ts +0 -113
  246. package/src/api/entity/index.ts +9 -9
  247. package/src/api/entity/referenceLine.ts +50 -38
  248. package/src/api/entity/space.ts +285 -226
  249. package/src/api/entity/story.ts +53 -42
  250. package/src/api/index.ts +22 -12
  251. package/src/api/presentation/aiInspiration.ts +362 -0
  252. package/src/api/presentation/diagrams.ts +84 -0
  253. package/src/api/presentation/import.ts +112 -0
  254. package/src/api/presentation/index.ts +48 -0
  255. package/src/api/presentation/sheets.ts +198 -0
  256. package/src/api/presentation/views.ts +303 -0
  257. package/src/api/program/adjacency.ts +164 -0
  258. package/src/api/program/areas.ts +335 -0
  259. package/src/api/program/classification.ts +138 -0
  260. package/src/api/program/cores.ts +171 -0
  261. package/src/api/program/departments.ts +465 -0
  262. package/src/api/program/index.ts +71 -0
  263. package/src/api/program/layout.ts +68 -0
  264. package/src/api/program/metrics.ts +120 -0
  265. package/src/api/program/site.ts +419 -0
  266. package/src/api/program/spreadsheet.ts +2075 -0
  267. package/src/handles.ts +194 -0
  268. package/src/host-utils.ts +10 -6
  269. package/src/index.ts +1 -0
  270. package/dist/api/core/geom/arc.d.ts +0 -81
  271. package/dist/api/core/geom/arc.d.ts.map +0 -1
  272. package/dist/api/core/geom/curve.d.ts +0 -70
  273. package/dist/api/core/geom/curve.d.ts.map +0 -1
  274. package/dist/api/core/geom/line.d.ts +0 -56
  275. package/dist/api/core/geom/line.d.ts.map +0 -1
  276. package/dist/api/core/geom/profile.d.ts +0 -121
  277. package/dist/api/core/geom/profile.d.ts.map +0 -1
  278. package/dist/api/tools/copy.d.ts +0 -59
  279. package/dist/api/tools/copy.d.ts.map +0 -1
  280. package/dist/api/tools/index.d.ts +0 -33
  281. package/dist/api/tools/index.d.ts.map +0 -1
  282. package/dist/api/tools/material.d.ts +0 -51
  283. package/dist/api/tools/material.d.ts.map +0 -1
  284. package/dist/api/tools/offset.d.ts +0 -43
  285. package/dist/api/tools/offset.d.ts.map +0 -1
  286. package/dist/api/tools/selection.d.ts +0 -48
  287. package/dist/api/tools/selection.d.ts.map +0 -1
  288. package/dist/api/tools/transform.d.ts +0 -114
  289. package/dist/api/tools/transform.d.ts.map +0 -1
  290. package/dist/api/units/index.d.ts +0 -163
  291. package/dist/api/units/index.d.ts.map +0 -1
  292. package/src/api/core/geom/arc.ts +0 -70
  293. package/src/api/core/geom/curve.ts +0 -41
  294. package/src/api/core/geom/line.ts +0 -53
  295. package/src/api/core/geom/profile.ts +0 -94
  296. package/src/api/tools/copy.ts +0 -55
  297. package/src/api/tools/index.ts +0 -39
  298. package/src/api/tools/material.ts +0 -49
  299. package/src/api/tools/offset.ts +0 -43
  300. package/src/api/tools/selection.ts +0 -51
  301. package/src/api/tools/transform.ts +0 -117
  302. package/src/api/units/index.ts +0 -163
package/dist/index.js CHANGED
@@ -1,984 +1,3731 @@
1
1
  // src/api/core/math/vec3.ts
2
- import * as z from "zod";
3
2
  var PluginVec3Api = class {
4
3
  constructor() {
5
4
  }
6
- /**
7
- * Create a new 3D vector.
8
- *
9
- * @param x - The X component
10
- * @param y - The Y component
11
- * @param z - The Z component
12
- * @returns A new {@linkcode PVec3}
13
- *
14
- * # Example
15
- * ```ts
16
- * const position = snaptrude.core.math.vec3.new(1, 2, 3)
17
- * // { x: 1, y: 2, z: 3 }
18
- * ```
19
- */
20
- new(x, y, z17) {
21
- return { x, y, z: z17 };
22
- }
23
- /**
24
- * Add two vectors component-wise.
25
- *
26
- * @param a - First vector
27
- * @param b - Second vector
28
- * @returns A new {@linkcode PVec3} where each component is `a[i] + b[i]`
29
- */
30
- add(a, b) {
31
- return { x: a.x + b.x, y: a.y + b.y, z: a.z + b.z };
32
- }
33
- /**
34
- * Subtract vector {@linkcode b} from vector {@linkcode a} component-wise.
35
- *
36
- * @param a - Vector to subtract from
37
- * @param b - Vector to subtract
38
- * @returns A new {@linkcode PVec3} where each component is `a[i] - b[i]`
39
- */
40
- subtract(a, b) {
41
- return { x: a.x - b.x, y: a.y - b.y, z: a.z - b.z };
42
- }
43
- /**
44
- * Scale a vector by a scalar value.
45
- *
46
- * @param v - The vector to scale
47
- * @param scalar - The scalar multiplier
48
- * @returns A new {@linkcode PVec3} where each component is `v[i] * scalar`
49
- */
50
- scale(v, scalar) {
51
- return { x: v.x * scalar, y: v.y * scalar, z: v.z * scalar };
52
- }
53
- /**
54
- * Compute the dot product of two vectors.
55
- *
56
- * The dot product equals `|a| * |b| * cos(θ)` where `θ` is the angle
57
- * between the vectors. Useful for checking orthogonality (result = 0)
58
- * or projection.
59
- *
60
- * @param a - First vector
61
- * @param b - Second vector
62
- * @returns The scalar dot product
63
- */
64
- dot(a, b) {
65
- return a.x * b.x + a.y * b.y + a.z * b.z;
66
- }
67
- /**
68
- * Compute the cross product of two vectors.
69
- *
70
- * The result is a vector perpendicular to both inputs, with magnitude
71
- * equal to the area of the parallelogram they span. Useful for computing
72
- * surface normals.
73
- *
74
- * @param a - First vector
75
- * @param b - Second vector
76
- * @returns A new {@linkcode PVec3} perpendicular to both {@linkcode a} and {@linkcode b}
77
- */
78
- cross(a, b) {
79
- return {
80
- x: a.y * b.z - a.z * b.y,
81
- y: a.z * b.x - a.x * b.z,
82
- z: a.x * b.y - a.y * b.x
83
- };
84
- }
85
- /**
86
- * Compute the length (magnitude) of a vector.
87
- *
88
- * @param v - The vector
89
- * @returns The Euclidean length `√(x² + y² + z²)`
90
- */
91
- length(v) {
92
- return Math.sqrt(v.x * v.x + v.y * v.y + v.z * v.z);
93
- }
94
- /**
95
- * Compute the squared length of a vector.
96
- *
97
- * Avoids the `sqrt` call — prefer this over {@linkcode PluginVec3Api.length}
98
- * when comparing relative magnitudes.
99
- *
100
- * @param v - The vector
101
- * @returns The squared length `x² + y² + z²`
102
- */
103
- lengthSquared(v) {
104
- return v.x * v.x + v.y * v.y + v.z * v.z;
105
- }
106
- /**
107
- * Normalize a vector to unit length.
108
- *
109
- * @param v - The vector to normalize
110
- * @returns A new unit-length {@linkcode PVec3} in the same direction,
111
- * or a zero vector `(0, 0, 0)` if the input has zero length
112
- */
113
- normalize(v) {
114
- const len = this.length(v);
115
- if (len === 0) return { x: 0, y: 0, z: 0 };
116
- return { x: v.x / len, y: v.y / len, z: v.z / len };
117
- }
118
- /**
119
- * Compute the Euclidean distance between two points.
120
- *
121
- * @param a - First point
122
- * @param b - Second point
123
- * @returns The distance `|a - b|`
124
- */
125
- distance(a, b) {
126
- return this.length(this.subtract(a, b));
127
- }
128
- /**
129
- * Linearly interpolate between two vectors.
130
- *
131
- * @param a - Start vector (returned when `t = 0`)
132
- * @param b - End vector (returned when `t = 1`)
133
- * @param t - Interpolation factor, typically in `[0, 1]`
134
- * @returns A new {@linkcode PVec3} at `a + (b - a) * t`
135
- */
136
- lerp(a, b, t) {
137
- return {
138
- x: a.x + (b.x - a.x) * t,
139
- y: a.y + (b.y - a.y) * t,
140
- z: a.z + (b.z - a.z) * t
141
- };
142
- }
143
- /**
144
- * Negate a vector (reverse its direction).
145
- *
146
- * @param v - The vector to negate
147
- * @returns A new {@linkcode PVec3} with all components negated
148
- */
149
- negate(v) {
150
- return { x: -v.x, y: -v.y, z: -v.z };
151
- }
152
- /**
153
- * Check if two vectors are exactly equal (strict equality per component).
154
- *
155
- * For floating-point comparisons, prefer {@linkcode PluginVec3Api.equalsApprox}.
156
- *
157
- * @param a - First vector
158
- * @param b - Second vector
159
- * @returns `true` if all components match exactly
160
- */
161
- equals(a, b) {
162
- return a.x === b.x && a.y === b.y && a.z === b.z;
163
- }
164
- /**
165
- * Check if two vectors are approximately equal within a tolerance.
166
- *
167
- * @param a - First vector
168
- * @param b - Second vector
169
- * @param epsilon - Maximum allowed difference per component (default `1e-6`)
170
- * @returns `true` if `|a[i] - b[i]| < epsilon` for all components
171
- */
172
- equalsApprox(a, b, epsilon = 1e-6) {
173
- return Math.abs(a.x - b.x) < epsilon && Math.abs(a.y - b.y) < epsilon && Math.abs(a.z - b.z) < epsilon;
174
- }
175
- };
176
- var PVec3 = z.object({
5
+ };
6
+
7
+ // src/api/core/math/quat.ts
8
+ var PluginQuatApi = class {
9
+ constructor() {
10
+ }
11
+ };
12
+
13
+ // src/api/core/math/index.ts
14
+ var PluginMathApi = class {
15
+ constructor() {
16
+ }
17
+ };
18
+
19
+ // src/api/core/geom/create/index.ts
20
+ import * as z2 from "zod";
21
+
22
+ // src/handles.ts
23
+ import * as z from "zod";
24
+ var handleSchema = (kind) => z.string().regex(new RegExp(`^${kind}_[A-Za-z0-9_-]+$`), `expected a "${kind}" handle`).transform((s) => s);
25
+ var ProfileHandle = handleSchema("profile");
26
+ var ContourHandle = handleSchema("contour");
27
+ var MassHandle = handleSchema("mass");
28
+ var ComponentHandle = z.string().min(1).transform((s) => s);
29
+ var MaterialHandle = z.string().min(1).transform((s) => s);
30
+ var UnderlayHandle = z.string().min(1).transform((s) => s);
31
+ var TerrainHandle = z.string().min(1).transform((s) => s);
32
+ var ImportJobHandle = z.string().min(1).transform((s) => s);
33
+ var Vec3Handle = handleSchema("vec3");
34
+ var QuatHandle = handleSchema("quat");
35
+ var LineHandle = handleSchema("line");
36
+ var ArcHandle = handleSchema("arc");
37
+ var CurveHandle = z.union([LineHandle, ArcHandle]);
38
+ var CircleHandle = handleSchema("circle");
39
+ var BrepHandle = handleSchema("brep");
40
+ var FaceHandle = handleSchema("face");
41
+ var EdgeHandle = handleSchema("edge");
42
+ var HalfEdgeHandle = handleSchema("halfedge");
43
+ var VertexHandle = handleSchema("vertex");
44
+ var Vec3Components = z.object({ x: z.number(), y: z.number(), z: z.number() });
45
+ var QuatComponents = z.object({
177
46
  x: z.number(),
178
47
  y: z.number(),
179
- z: z.number()
48
+ z: z.number(),
49
+ w: z.number()
180
50
  });
51
+ var BBoxComponents = z.object({ min: Vec3Components, max: Vec3Components });
181
52
 
182
- // src/api/core/math/quat.ts
183
- import * as z2 from "zod";
184
- var PluginQuatApi = class {
53
+ // src/api/core/geom/create/index.ts
54
+ var PluginGeomCreateApi = class {
185
55
  constructor() {
186
56
  }
187
- /**
188
- * Create a new quaternion from raw components.
189
- *
190
- * For most use cases prefer {@linkcode PluginQuatApi.fromAxisAngle}
191
- * or {@linkcode PluginQuatApi.fromEuler} instead.
192
- *
193
- * @param x - The X component
194
- * @param y - The Y component
195
- * @param z - The Z component
196
- * @param w - The W (scalar) component
197
- * @returns A new {@linkcode PQuat}
198
- */
199
- new(x, y, z17, w) {
200
- return { x, y, z: z17, w };
201
- }
202
- /**
203
- * Create an identity quaternion representing no rotation.
204
- *
205
- * @returns `{ x: 0, y: 0, z: 0, w: 1 }`
206
- */
207
- identity() {
208
- return { x: 0, y: 0, z: 0, w: 1 };
209
- }
210
- /**
211
- * Create a quaternion from an axis and an angle.
212
- *
213
- * @param axis - The rotation axis as a {@linkcode PVec3} (will be normalized internally)
214
- * @param angle - The rotation angle in **radians**
215
- * @returns A new unit {@linkcode PQuat}, or identity if {@linkcode axis} has zero length
216
- *
217
- * # Example
218
- * ```ts
219
- * const { vec3, quat } = snaptrude.core.math
220
- * // 90° rotation around the Y axis
221
- * const rot = quat.fromAxisAngle(vec3.new(0, 1, 0), Math.PI / 2)
222
- * ```
223
- */
224
- fromAxisAngle(axis, angle) {
225
- const halfAngle = angle / 2;
226
- const s = Math.sin(halfAngle);
227
- const len = Math.sqrt(axis.x * axis.x + axis.y * axis.y + axis.z * axis.z);
228
- if (len === 0) return { x: 0, y: 0, z: 0, w: 1 };
229
- return {
230
- x: axis.x / len * s,
231
- y: axis.y / len * s,
232
- z: axis.z / len * s,
233
- w: Math.cos(halfAngle)
234
- };
235
- }
236
- /**
237
- * Create a quaternion from Euler angles in **XYZ** rotation order.
238
- *
239
- * @param x - Rotation around X axis in **radians**
240
- * @param y - Rotation around Y axis in **radians**
241
- * @param z - Rotation around Z axis in **radians**
242
- * @returns A new {@linkcode PQuat}
243
- */
244
- fromEuler(x, y, z17) {
245
- const cx = Math.cos(x / 2);
246
- const sx = Math.sin(x / 2);
247
- const cy = Math.cos(y / 2);
248
- const sy = Math.sin(y / 2);
249
- const cz = Math.cos(z17 / 2);
250
- const sz = Math.sin(z17 / 2);
251
- return {
252
- x: sx * cy * cz + cx * sy * sz,
253
- y: cx * sy * cz - sx * cy * sz,
254
- z: cx * cy * sz + sx * sy * cz,
255
- w: cx * cy * cz - sx * sy * sz
256
- };
257
- }
258
- /**
259
- * Multiply two quaternions, combining their rotations.
260
- *
261
- * Quaternion multiplication is **not commutative**: `a * b ≠ b * a`.
262
- * The result applies rotation {@linkcode b} first, then {@linkcode a}.
263
- *
264
- * @param a - First quaternion (applied second)
265
- * @param b - Second quaternion (applied first)
266
- * @returns A new {@linkcode PQuat} representing the combined rotation
267
- */
268
- multiply(a, b) {
269
- return {
270
- x: a.w * b.x + a.x * b.w + a.y * b.z - a.z * b.y,
271
- y: a.w * b.y - a.x * b.z + a.y * b.w + a.z * b.x,
272
- z: a.w * b.z + a.x * b.y - a.y * b.x + a.z * b.w,
273
- w: a.w * b.w - a.x * b.x - a.y * b.y - a.z * b.z
274
- };
275
- }
276
- /**
277
- * Compute the conjugate of a quaternion.
278
- *
279
- * For unit quaternions the conjugate equals the inverse.
280
- *
281
- * @param q - The quaternion
282
- * @returns A new {@linkcode PQuat} with negated vector part `(-x, -y, -z, w)`
283
- */
284
- conjugate(q) {
285
- return { x: -q.x, y: -q.y, z: -q.z, w: q.w };
286
- }
287
- /**
288
- * Compute the length (magnitude) of a quaternion.
289
- *
290
- * @param q - The quaternion
291
- * @returns The magnitude `√(x² + y² + z² + w²)`
292
- */
293
- length(q) {
294
- return Math.sqrt(q.x * q.x + q.y * q.y + q.z * q.z + q.w * q.w);
295
- }
296
- /**
297
- * Normalize a quaternion to unit length.
298
- *
299
- * @param q - The quaternion to normalize
300
- * @returns A new unit-length {@linkcode PQuat}, or identity if the input has zero length
301
- */
302
- normalize(q) {
303
- const len = this.length(q);
304
- if (len === 0) return { x: 0, y: 0, z: 0, w: 1 };
305
- return { x: q.x / len, y: q.y / len, z: q.z / len, w: q.w / len };
306
- }
307
- /**
308
- * Compute the inverse of a quaternion.
309
- *
310
- * The inverse satisfies `q * inverse(q) = identity`.
311
- *
312
- * @param q - The quaternion to invert
313
- * @returns A new {@linkcode PQuat} that is the multiplicative inverse,
314
- * or identity if the input has zero length
315
- */
316
- inverse(q) {
317
- const lenSq = q.x * q.x + q.y * q.y + q.z * q.z + q.w * q.w;
318
- if (lenSq === 0) return { x: 0, y: 0, z: 0, w: 1 };
319
- return { x: -q.x / lenSq, y: -q.y / lenSq, z: -q.z / lenSq, w: q.w / lenSq };
320
- }
321
- /**
322
- * Rotate a 3D vector by a quaternion.
323
- *
324
- * Computes `q * v * conjugate(q)` using the Hamilton product.
325
- *
326
- * @param q - The rotation quaternion (should be unit-length)
327
- * @param v - The vector to rotate as a {@linkcode PVec3}
328
- * @returns A new rotated {@linkcode PVec3}
329
- *
330
- * # Example
331
- * ```ts
332
- * const { vec3, quat } = snaptrude.core.math
333
- * const rot = quat.fromAxisAngle(vec3.new(0, 1, 0), Math.PI / 2)
334
- * const rotated = quat.rotateVec3(rot, vec3.new(1, 0, 0))
335
- * // { x: 0, y: 0, z: -1 }
336
- * ```
337
- */
338
- rotateVec3(q, v) {
339
- const vq = { x: v.x, y: v.y, z: v.z, w: 0 };
340
- const conj = this.conjugate(q);
341
- const result = this.multiply(this.multiply(q, vq), conj);
342
- return { x: result.x, y: result.y, z: result.z };
343
- }
344
- /**
345
- * Convert a quaternion to axis-angle representation.
346
- *
347
- * @param q - The quaternion to convert
348
- * @returns An object with:
349
- * - `axis` The rotation axis as a unit {@linkcode PVec3}
350
- * (defaults to `(1, 0, 0)` when angle is zero)
351
- * - `angle` — The rotation angle in **radians**
352
- */
353
- toAxisAngle(q) {
354
- const nq = this.normalize(q);
355
- const angle = 2 * Math.acos(Math.min(1, Math.max(-1, nq.w)));
356
- const s = Math.sin(angle / 2);
357
- if (s < 1e-6) {
358
- return { axis: { x: 1, y: 0, z: 0 }, angle: 0 };
359
- }
360
- return {
361
- axis: { x: nq.x / s, y: nq.y / s, z: nq.z / s },
362
- angle
363
- };
364
- }
365
- /**
366
- * Spherical linear interpolation between two quaternions.
367
- *
368
- * Produces smooth constant-speed rotation between {@linkcode a} and {@linkcode b}.
369
- *
370
- * @param a - Start quaternion (returned when `t = 0`)
371
- * @param b - End quaternion (returned when `t = 1`)
372
- * @param t - Interpolation factor, typically in `[0, 1]`
373
- * @returns A new interpolated {@linkcode PQuat}
374
- */
375
- slerp(a, b, t) {
376
- let cosHalf = a.x * b.x + a.y * b.y + a.z * b.z + a.w * b.w;
377
- let bx = b.x, by = b.y, bz = b.z, bw = b.w;
378
- if (cosHalf < 0) {
379
- cosHalf = -cosHalf;
380
- bx = -bx;
381
- by = -by;
382
- bz = -bz;
383
- bw = -bw;
384
- }
385
- if (cosHalf >= 1) {
386
- return { x: a.x, y: a.y, z: a.z, w: a.w };
387
- }
388
- const halfAngle = Math.acos(cosHalf);
389
- const sinHalf = Math.sin(halfAngle);
390
- const ratioA = Math.sin((1 - t) * halfAngle) / sinHalf;
391
- const ratioB = Math.sin(t * halfAngle) / sinHalf;
392
- return {
393
- x: a.x * ratioA + bx * ratioB,
394
- y: a.y * ratioA + by * ratioB,
395
- z: a.z * ratioA + bz * ratioB,
396
- w: a.w * ratioA + bw * ratioB
397
- };
398
- }
399
- /**
400
- * Compute the dot product of two quaternions.
401
- *
402
- * A value close to `1` or `-1` indicates similar orientations;
403
- * a value close to `0` indicates maximally different orientations.
404
- *
405
- * @param a - First quaternion
406
- * @param b - Second quaternion
407
- * @returns The scalar dot product
408
- */
409
- dot(a, b) {
410
- return a.x * b.x + a.y * b.y + a.z * b.z + a.w * b.w;
411
- }
412
- /**
413
- * Check if two quaternions are exactly equal (strict equality per component).
414
- *
415
- * For floating-point comparisons, prefer {@linkcode PluginQuatApi.equalsApprox}.
416
- *
417
- * @param a - First quaternion
418
- * @param b - Second quaternion
419
- * @returns `true` if all components match exactly
420
- */
421
- equals(a, b) {
422
- return a.x === b.x && a.y === b.y && a.z === b.z && a.w === b.w;
423
- }
424
- /**
425
- * Check if two quaternions are approximately equal within a tolerance.
426
- *
427
- * @param a - First quaternion
428
- * @param b - Second quaternion
429
- * @param epsilon - Maximum allowed difference per component (default `1e-6`)
430
- * @returns `true` if `|a[i] - b[i]| < epsilon` for all components
431
- */
432
- equalsApprox(a, b, epsilon = 1e-6) {
433
- return Math.abs(a.x - b.x) < epsilon && Math.abs(a.y - b.y) < epsilon && Math.abs(a.z - b.z) < epsilon && Math.abs(a.w - b.w) < epsilon;
434
- }
435
- };
436
- var PQuat = z2.object({
437
- x: z2.number(),
438
- y: z2.number(),
439
- z: z2.number(),
440
- w: z2.number()
57
+ };
58
+ var PluginGeomCreateLineArgs = z2.object({
59
+ startPoint: Vec3Handle,
60
+ endPoint: Vec3Handle
61
+ });
62
+ var PluginGeomCreateArcArgs = z2.object({
63
+ startPoint: Vec3Handle,
64
+ endPoint: Vec3Handle,
65
+ centrePoint: Vec3Handle,
66
+ axis: Vec3Handle
67
+ });
68
+ var PluginGeomCreateCircleArgs = z2.object({
69
+ centrePoint: Vec3Handle,
70
+ axis: Vec3Handle,
71
+ radius: z2.number()
72
+ });
73
+ var PluginGeomCreateProfileFromLinePointsArgs = z2.object({
74
+ points: z2.array(Vec3Handle)
75
+ });
76
+ var PluginGeomCreateProfileFromCurvesArgs = z2.object({
77
+ curves: z2.array(CurveHandle)
78
+ });
79
+ var PluginGeomCreateContourFromProfileArgs = z2.object({
80
+ outer: ProfileHandle
81
+ });
82
+ var PluginGeomCreateContourFromProfilesArgs = z2.object({
83
+ outer: ProfileHandle,
84
+ holes: z2.array(ProfileHandle).optional()
85
+ });
86
+
87
+ // src/api/core/geom/query/curve.ts
88
+ import * as z3 from "zod";
89
+ var PluginGeomQueryCurveApi = class {
90
+ constructor() {
91
+ }
92
+ };
93
+ var PluginGeomQueryCurveGetStartPointArgs = z3.object({
94
+ curve: CurveHandle
95
+ });
96
+ var PluginGeomQueryCurveGetEndPointArgs = z3.object({
97
+ curve: CurveHandle
98
+ });
99
+ var PluginGeomQueryCurveGetMidPointArgs = z3.object({
100
+ curve: CurveHandle
101
+ });
102
+ var PluginGeomQueryCurveGetLengthArgs = z3.object({
103
+ curve: CurveHandle
104
+ });
105
+ var PluginGeomQueryCurveGetChordLengthArgs = z3.object({
106
+ curve: CurveHandle
107
+ });
108
+ var PluginGeomQueryCurveGetTangentArgs = z3.object({
109
+ curve: CurveHandle,
110
+ point: Vec3Handle
111
+ });
112
+ var PluginGeomQueryCurveGetNormalArgs = z3.object({
113
+ curve: CurveHandle,
114
+ point: Vec3Handle
115
+ });
116
+ var PluginGeomQueryCurveGetNearestPointArgs = z3.object({
117
+ curve: CurveHandle,
118
+ point: Vec3Handle
119
+ });
120
+ var PluginGeomQueryCurveGetProjectionArgs = z3.object({
121
+ curve: CurveHandle,
122
+ point: Vec3Handle
123
+ });
124
+ var PluginGeomQueryCurveGetPointAtDistanceArgs = z3.object({
125
+ curve: CurveHandle,
126
+ referencePoint: Vec3Handle,
127
+ distance: z3.number(),
128
+ forward: z3.boolean().optional()
129
+ });
130
+ var PluginGeomQueryCurveGetParameterAtPointArgs = z3.object({
131
+ curve: CurveHandle,
132
+ point: Vec3Handle
133
+ });
134
+ var PluginGeomQueryCurveGetCurvatureArgs = z3.object({
135
+ curve: CurveHandle,
136
+ point: Vec3Handle
137
+ });
138
+ var PluginGeomQueryCurveGetDistanceToPointArgs = z3.object({
139
+ curve: CurveHandle,
140
+ point: Vec3Handle
141
+ });
142
+ var PluginGeomQueryCurveGetDistanceAlongArgs = z3.object({
143
+ curve: CurveHandle,
144
+ pointA: Vec3Handle,
145
+ pointB: Vec3Handle
146
+ });
147
+ var PluginGeomQueryCurveListPointsArgs = z3.object({
148
+ curve: CurveHandle,
149
+ resolution: z3.number().optional()
150
+ });
151
+ var PluginGeomQueryCurveListSubdivisionsArgs = z3.object({
152
+ curve: CurveHandle,
153
+ segments: z3.number()
154
+ });
155
+ var PluginGeomQueryCurveIsLinearArgs = z3.object({
156
+ curve: CurveHandle
157
+ });
158
+ var PluginGeomQueryCurveIsOnCurveArgs = z3.object({
159
+ curve: CurveHandle,
160
+ point: Vec3Handle,
161
+ threshold: z3.number().optional()
162
+ });
163
+ var PluginGeomQueryCurveHasPointArgs = z3.object({
164
+ curve: CurveHandle,
165
+ point: Vec3Handle,
166
+ includeEndPoints: z3.boolean().optional()
167
+ });
168
+ var PluginGeomQueryCurveIsEqualArgs = z3.object({
169
+ curveA: CurveHandle,
170
+ curveB: CurveHandle
171
+ });
172
+ var PluginGeomQueryCurveIsOverlappingArgs = z3.object({
173
+ curveA: CurveHandle,
174
+ curveB: CurveHandle,
175
+ includeEndPoints: z3.boolean().optional()
176
+ });
177
+ var PluginGeomQueryCurveGetCommonPartArgs = z3.object({
178
+ curveA: CurveHandle,
179
+ curveB: CurveHandle
180
+ });
181
+ var PluginGeomQueryCurveListIntersectionsArgs = z3.object({
182
+ curveA: CurveHandle,
183
+ curveB: CurveHandle,
184
+ boundedA: z3.boolean().optional(),
185
+ boundedB: z3.boolean().optional()
186
+ });
187
+ var PluginGeomQueryCurveGetMergedCurveArgs = z3.object({
188
+ curveA: CurveHandle,
189
+ curveB: CurveHandle
190
+ });
191
+ var PluginGeomQueryCurveIsContinuousArgs = z3.object({
192
+ curveA: CurveHandle,
193
+ curveB: CurveHandle
194
+ });
195
+ var PluginGeomQueryCurveIsParallelArgs = z3.object({
196
+ lineA: LineHandle,
197
+ lineB: LineHandle,
198
+ tolerance: z3.number().optional()
199
+ });
200
+ var PluginGeomQueryCurveGetShortestGapArgs = z3.object({
201
+ curveA: CurveHandle,
202
+ curveB: CurveHandle,
203
+ includeEndPoints: z3.boolean().optional()
204
+ });
205
+ var PluginGeomQueryCurveGetDistanceBetweenArgs = z3.object({
206
+ lineA: LineHandle,
207
+ lineB: LineHandle
208
+ });
209
+
210
+ // src/api/core/geom/query/arc.ts
211
+ import * as z4 from "zod";
212
+ var PluginGeomQueryArcApi = class {
213
+ constructor() {
214
+ }
215
+ };
216
+ var PluginGeomQueryArcGetRadiusArgs = z4.object({ arc: ArcHandle });
217
+ var PluginGeomQueryArcGetCentreArgs = z4.object({ arc: ArcHandle });
218
+ var PluginGeomQueryArcGetAxisArgs = z4.object({ arc: ArcHandle });
219
+ var PluginGeomQueryArcGetSweepAngleArgs = z4.object({ arc: ArcHandle });
220
+ var PluginGeomQueryArcIsValidArgs = z4.object({ arc: ArcHandle });
221
+
222
+ // src/api/core/geom/query/circle.ts
223
+ import * as z5 from "zod";
224
+ var PluginGeomQueryCircleApi = class {
225
+ constructor() {
226
+ }
227
+ };
228
+ var PluginGeomQueryCircleGetRadiusArgs = z5.object({ circle: CircleHandle });
229
+ var PluginGeomQueryCircleGetCentreArgs = z5.object({ circle: CircleHandle });
230
+ var PluginGeomQueryCircleGetAxisArgs = z5.object({ circle: CircleHandle });
231
+ var PluginGeomQueryCircleGetLengthArgs = z5.object({ circle: CircleHandle });
232
+ var PluginGeomQueryCircleIsValidArgs = z5.object({ circle: CircleHandle });
233
+ var PluginGeomQueryCircleGetNearestPointArgs = z5.object({
234
+ circle: CircleHandle,
235
+ point: Vec3Handle
236
+ });
237
+ var PluginGeomQueryCircleHasPointArgs = z5.object({
238
+ circle: CircleHandle,
239
+ point: Vec3Handle
240
+ });
241
+ var PluginGeomQueryCircleGetTangentArgs = z5.object({
242
+ circle: CircleHandle,
243
+ point: Vec3Handle
244
+ });
245
+ var PluginGeomQueryCircleGetNormalArgs = z5.object({
246
+ circle: CircleHandle,
247
+ point: Vec3Handle
248
+ });
249
+ var PluginGeomQueryCircleGetPointAtDistanceArgs = z5.object({
250
+ circle: CircleHandle,
251
+ referencePoint: Vec3Handle,
252
+ distance: z5.number(),
253
+ forward: z5.boolean().optional()
254
+ });
255
+ var PluginGeomQueryCircleIsEqualArgs = z5.object({
256
+ circleA: CircleHandle,
257
+ circleB: CircleHandle
258
+ });
259
+ var PluginGeomQueryCircleListPointsArgs = z5.object({
260
+ circle: CircleHandle,
261
+ resolution: z5.number().optional()
262
+ });
263
+
264
+ // src/api/core/geom/query/profile.ts
265
+ import * as z6 from "zod";
266
+ var PluginGeomQueryProfileApi = class {
267
+ constructor() {
268
+ }
269
+ };
270
+ var PluginGeomQueryProfileListPointsArgs = z6.object({
271
+ profile: ProfileHandle
272
+ });
273
+ var PluginGeomQueryProfileListCurvesArgs = z6.object({
274
+ profile: ProfileHandle
275
+ });
276
+ var PluginGeomQueryProfileGetAreaArgs = z6.object({
277
+ profile: ProfileHandle
278
+ });
279
+ var PluginGeomQueryProfileGetPerimeterArgs = z6.object({
280
+ profile: ProfileHandle
281
+ });
282
+ var PluginGeomQueryProfileGetBoundingBoxArgs = z6.object({
283
+ profile: ProfileHandle
284
+ });
285
+ var PluginGeomQueryProfileGetNormalArgs = z6.object({
286
+ profile: ProfileHandle
287
+ });
288
+ var PluginGeomQueryProfileGetNearestPointArgs = z6.object({
289
+ profile: ProfileHandle,
290
+ point: Vec3Handle
291
+ });
292
+ var PluginGeomQueryProfileHasPointArgs = z6.object({
293
+ profile: ProfileHandle,
294
+ point: Vec3Handle
295
+ });
296
+ var PluginGeomQueryProfileIsOnBoundaryArgs = z6.object({
297
+ profile: ProfileHandle,
298
+ point: Vec3Handle
299
+ });
300
+ var PluginGeomQueryProfileIsClosedArgs = z6.object({
301
+ profile: ProfileHandle
302
+ });
303
+ var PluginGeomQueryProfileIsPlanarArgs = z6.object({
304
+ profile: ProfileHandle
305
+ });
306
+ var PluginGeomQueryProfileIsClockwiseArgs = z6.object({
307
+ profile: ProfileHandle
308
+ });
309
+ var PluginGeomQueryProfileIsSelfIntersectingArgs = z6.object({
310
+ profile: ProfileHandle
311
+ });
312
+ var PluginGeomQueryProfileIsEmptyArgs = z6.object({
313
+ profile: ProfileHandle
314
+ });
315
+ var PluginGeomQueryProfileIsEqualArgs = z6.object({
316
+ profileA: ProfileHandle,
317
+ profileB: ProfileHandle
318
+ });
319
+
320
+ // src/api/core/geom/query/contour.ts
321
+ import * as z7 from "zod";
322
+ var PluginGeomQueryContourApi = class {
323
+ constructor() {
324
+ }
325
+ };
326
+ var PluginGeomQueryContourGetOuterProfileArgs = z7.object({
327
+ contour: ContourHandle
328
+ });
329
+ var PluginGeomQueryContourListHolesArgs = z7.object({
330
+ contour: ContourHandle
331
+ });
332
+ var PluginGeomQueryContourGetHoleCountArgs = z7.object({
333
+ contour: ContourHandle
334
+ });
335
+ var PluginGeomQueryContourGetAreaArgs = z7.object({
336
+ contour: ContourHandle
337
+ });
338
+ var PluginGeomQueryContourGetPerimeterArgs = z7.object({
339
+ contour: ContourHandle
340
+ });
341
+ var PluginGeomQueryContourGetBoundingBoxArgs = z7.object({
342
+ contour: ContourHandle
343
+ });
344
+ var PluginGeomQueryContourGetNormalArgs = z7.object({
345
+ contour: ContourHandle
346
+ });
347
+ var PluginGeomQueryContourGetNearestPointArgs = z7.object({
348
+ contour: ContourHandle,
349
+ point: Vec3Handle
350
+ });
351
+ var PluginGeomQueryContourHasPointArgs = z7.object({
352
+ contour: ContourHandle,
353
+ point: Vec3Handle
354
+ });
355
+ var PluginGeomQueryContourIsOnBoundaryArgs = z7.object({
356
+ contour: ContourHandle,
357
+ point: Vec3Handle
358
+ });
359
+ var PluginGeomQueryContourIsClockwiseArgs = z7.object({
360
+ contour: ContourHandle
361
+ });
362
+ var PluginGeomQueryContourIsPlanarArgs = z7.object({
363
+ contour: ContourHandle
364
+ });
365
+ var PluginGeomQueryContourIsEmptyArgs = z7.object({
366
+ contour: ContourHandle
367
+ });
368
+ var PluginGeomQueryContourIsSelfIntersectingArgs = z7.object({
369
+ contour: ContourHandle
370
+ });
371
+ var PluginGeomQueryContourIsOrientationValidArgs = z7.object({
372
+ contour: ContourHandle
373
+ });
374
+ var PluginGeomQueryContourIsEqualArgs = z7.object({
375
+ contourA: ContourHandle,
376
+ contourB: ContourHandle
377
+ });
378
+
379
+ // src/api/core/geom/query/brep.ts
380
+ import * as z8 from "zod";
381
+ var PluginGeomQueryBrepApi = class {
382
+ constructor() {
383
+ }
384
+ };
385
+ var brepArg = z8.object({ brep: BrepHandle });
386
+ var brepEdgeArg = z8.object({
387
+ brep: BrepHandle,
388
+ vertexIndexA: z8.number(),
389
+ vertexIndexB: z8.number()
390
+ });
391
+ var PluginGeomQueryBrepListFacesArgs = brepArg;
392
+ var PluginGeomQueryBrepListEdgesArgs = brepArg;
393
+ var PluginGeomQueryBrepListVerticesArgs = brepArg;
394
+ var PluginGeomQueryBrepListHalfEdgesArgs = brepArg;
395
+ var PluginGeomQueryBrepGetEdgeArgs = brepEdgeArg;
396
+ var PluginGeomQueryBrepHasEdgeArgs = brepEdgeArg;
397
+ var PluginGeomQueryBrepListEdgesBetweenArgs = brepEdgeArg;
398
+ var PluginGeomQueryBrepGetVertexPositionArgs = z8.object({
399
+ brep: BrepHandle,
400
+ vertex: VertexHandle
401
+ });
402
+ var PluginGeomQueryBrepListVertexPositionsArgs = brepArg;
403
+ var PluginGeomQueryBrepGetCentroidArgs = brepArg;
404
+ var PluginGeomQueryBrepGetFaceCountArgs = brepArg;
405
+ var PluginGeomQueryBrepGetEdgeCountArgs = brepArg;
406
+ var PluginGeomQueryBrepGetVertexCountArgs = brepArg;
407
+ var PluginGeomQueryBrepGetHalfEdgeCountArgs = brepArg;
408
+ var PluginGeomQueryBrepGetBoundingBoxArgs = brepArg;
409
+ var PluginGeomQueryBrepIsEqualArgs = z8.object({
410
+ brepA: BrepHandle,
411
+ brepB: BrepHandle
412
+ });
413
+
414
+ // src/api/core/geom/query/face.ts
415
+ import * as z9 from "zod";
416
+ var PluginGeomQueryFaceApi = class {
417
+ constructor() {
418
+ }
419
+ };
420
+ var faceArg = z9.object({ face: FaceHandle });
421
+ var PluginGeomQueryFaceGetIndexArgs = faceArg;
422
+ var PluginGeomQueryFaceGetMaterialIndexArgs = faceArg;
423
+ var PluginGeomQueryFaceGetHalfEdgeArgs = faceArg;
424
+ var PluginGeomQueryFaceListEdgesArgs = faceArg;
425
+ var PluginGeomQueryFaceListHalfEdgesArgs = faceArg;
426
+ var PluginGeomQueryFaceListVerticesArgs = faceArg;
427
+ var PluginGeomQueryFaceListHolesArgs = faceArg;
428
+ var PluginGeomQueryFaceGetHoleCountArgs = faceArg;
429
+ var PluginGeomQueryFaceListHoleHalfEdgesArgs = z9.object({
430
+ face: FaceHandle,
431
+ holeIndex: z9.number()
432
+ });
433
+ var PluginGeomQueryFaceHasHolesArgs = faceArg;
434
+ var PluginGeomQueryFaceGetHoleContainingHalfEdgeArgs = z9.object({
435
+ face: FaceHandle,
436
+ halfEdge: HalfEdgeHandle
437
+ });
438
+ var PluginGeomQueryFaceListVertexPositionsArgs = z9.object({
439
+ face: FaceHandle,
440
+ brep: BrepHandle
441
+ });
442
+ var PluginGeomQueryFaceListVertexPositionsWithCurvesArgs = faceArg;
443
+ var PluginGeomQueryFaceListAdjacentFacesArgs = faceArg;
444
+
445
+ // src/api/core/geom/query/edge.ts
446
+ import * as z10 from "zod";
447
+ var PluginGeomQueryEdgeApi = class {
448
+ constructor() {
449
+ }
450
+ };
451
+ var edgeArg = z10.object({ edge: EdgeHandle });
452
+ var PluginGeomQueryEdgeGetIndexArgs = edgeArg;
453
+ var PluginGeomQueryEdgeGetHalfEdgeArgs = edgeArg;
454
+ var PluginGeomQueryEdgeListVerticesArgs = edgeArg;
455
+ var PluginGeomQueryEdgeGetCurveArgs = edgeArg;
456
+ var PluginGeomQueryEdgeListFacesArgs = edgeArg;
457
+
458
+ // src/api/core/geom/query/halfedge.ts
459
+ import * as z11 from "zod";
460
+ var PluginGeomQueryHalfEdgeApi = class {
461
+ constructor() {
462
+ }
463
+ };
464
+ var heArg = z11.object({ halfEdge: HalfEdgeHandle });
465
+ var PluginGeomQueryHalfEdgeGetNextArgs = heArg;
466
+ var PluginGeomQueryHalfEdgeGetPrevArgs = heArg;
467
+ var PluginGeomQueryHalfEdgeGetFlipArgs = heArg;
468
+ var PluginGeomQueryHalfEdgeGetVertexArgs = heArg;
469
+ var PluginGeomQueryHalfEdgeGetEdgeArgs = heArg;
470
+ var PluginGeomQueryHalfEdgeGetFaceArgs = heArg;
471
+ var PluginGeomQueryHalfEdgeIsOnBoundaryArgs = heArg;
472
+ var PluginGeomQueryHalfEdgeIsForwardArgs = heArg;
473
+
474
+ // src/api/core/geom/query/vertex.ts
475
+ import * as z12 from "zod";
476
+ var PluginGeomQueryVertexApi = class {
477
+ constructor() {
478
+ }
479
+ };
480
+ var vertexArg = z12.object({ vertex: VertexHandle });
481
+ var PluginGeomQueryVertexGetIndexArgs = vertexArg;
482
+ var PluginGeomQueryVertexGetHalfEdgeArgs = vertexArg;
483
+ var PluginGeomQueryVertexGetPositionArgs = z12.object({
484
+ brep: BrepHandle,
485
+ vertex: VertexHandle
486
+ });
487
+ var PluginGeomQueryVertexListHalfEdgesArgs = vertexArg;
488
+ var PluginGeomQueryVertexListEdgesArgs = vertexArg;
489
+ var PluginGeomQueryVertexListFacesArgs = vertexArg;
490
+ var PluginGeomQueryVertexListNeighborsArgs = vertexArg;
491
+
492
+ // src/api/core/geom/query/index.ts
493
+ var PluginGeomQueryApi = class {
494
+ constructor() {
495
+ }
496
+ };
497
+
498
+ // src/api/core/geom/update/curve.ts
499
+ import * as z13 from "zod";
500
+ var PluginGeomUpdateCurveApi = class {
501
+ constructor() {
502
+ }
503
+ };
504
+ var PluginGeomUpdateCurveExtendArgs = z13.object({
505
+ curve: CurveHandle,
506
+ distance: z13.number(),
507
+ fromStart: z13.boolean()
508
+ });
509
+ var PluginGeomUpdateCurveSplitArgs = z13.object({
510
+ curve: CurveHandle,
511
+ point: Vec3Handle
512
+ });
513
+ var PluginGeomUpdateCurveTrimArgs = z13.object({
514
+ curve: CurveHandle,
515
+ startParam: z13.number(),
516
+ endParam: z13.number()
517
+ });
518
+ var PluginGeomUpdateCurveOffsetArgs = z13.object({
519
+ curve: CurveHandle,
520
+ vector: Vec3Handle
521
+ });
522
+ var PluginGeomUpdateCurveReverseArgs = z13.object({
523
+ curve: CurveHandle
524
+ });
525
+
526
+ // src/api/core/geom/update/profile.ts
527
+ import * as z14 from "zod";
528
+ var PluginGeomUpdateProfileApi = class {
529
+ constructor() {
530
+ }
531
+ };
532
+ var PluginGeomUpdateProfileOffsetArgs = z14.object({
533
+ profile: ProfileHandle,
534
+ distance: z14.number()
535
+ });
536
+ var PluginGeomUpdateProfileMoveArgs = z14.object({
537
+ profile: ProfileHandle,
538
+ translation: Vec3Handle
539
+ });
540
+ var PluginGeomUpdateProfileRotateArgs = z14.object({
541
+ profile: ProfileHandle,
542
+ axis: Vec3Handle,
543
+ angle: z14.number(),
544
+ pivot: Vec3Handle.optional()
545
+ });
546
+ var PluginGeomUpdateProfileScaleArgs = z14.object({
547
+ profile: ProfileHandle,
548
+ factor: z14.union([z14.number(), Vec3Components]),
549
+ pivot: Vec3Handle.optional()
550
+ });
551
+ var PluginGeomUpdateProfileMirrorArgs = z14.object({
552
+ profile: ProfileHandle,
553
+ plane: z14.object({
554
+ point: Vec3Handle,
555
+ normal: Vec3Handle
556
+ })
557
+ });
558
+ var PluginGeomUpdateProfileAddArgs = z14.object({
559
+ profile: ProfileHandle,
560
+ curve: CurveHandle,
561
+ position: z14.enum(["start", "end"]).optional()
562
+ });
563
+ var PluginGeomUpdateProfileRemoveArgs = z14.object({
564
+ profile: ProfileHandle,
565
+ position: z14.enum(["start", "end"]).optional()
566
+ });
567
+ var PluginGeomUpdateProfileReverseArgs = z14.object({
568
+ profile: ProfileHandle
569
+ });
570
+ var PluginGeomUpdateProfileSimplifyArgs = z14.object({
571
+ profile: ProfileHandle
572
+ });
573
+
574
+ // src/api/core/geom/update/contour.ts
575
+ import * as z15 from "zod";
576
+ var PluginGeomUpdateContourApi = class {
577
+ constructor() {
578
+ }
579
+ };
580
+ var PluginGeomUpdateContourOffsetArgs = z15.object({
581
+ contour: ContourHandle,
582
+ distance: z15.number()
583
+ });
584
+ var PluginGeomUpdateContourMoveArgs = z15.object({
585
+ contour: ContourHandle,
586
+ translation: Vec3Handle
587
+ });
588
+ var PluginGeomUpdateContourRotateArgs = z15.object({
589
+ contour: ContourHandle,
590
+ axis: Vec3Handle,
591
+ angle: z15.number(),
592
+ pivot: Vec3Handle.optional()
593
+ });
594
+ var PluginGeomUpdateContourScaleArgs = z15.object({
595
+ contour: ContourHandle,
596
+ factor: z15.union([z15.number(), Vec3Components]),
597
+ pivot: Vec3Handle.optional()
598
+ });
599
+ var PluginGeomUpdateContourMirrorArgs = z15.object({
600
+ contour: ContourHandle,
601
+ plane: z15.object({
602
+ point: Vec3Handle,
603
+ normal: Vec3Handle
604
+ })
605
+ });
606
+ var PluginGeomUpdateContourAddHoleArgs = z15.object({
607
+ contour: ContourHandle,
608
+ hole: ProfileHandle
609
+ });
610
+ var PluginGeomUpdateContourRemoveHoleArgs = z15.object({
611
+ contour: ContourHandle,
612
+ index: z15.number()
613
+ });
614
+
615
+ // src/api/core/geom/update/index.ts
616
+ var PluginGeomUpdateApi = class {
617
+ constructor() {
618
+ }
619
+ };
620
+
621
+ // src/api/core/geom/delete/index.ts
622
+ import * as z16 from "zod";
623
+ var PluginGeomDeleteApi = class {
624
+ constructor() {
625
+ }
626
+ };
627
+ var PluginGeomDeleteProfileArgs = z16.object({
628
+ profile: ProfileHandle
629
+ });
630
+ var PluginGeomDeleteContourArgs = z16.object({
631
+ contour: ContourHandle
632
+ });
633
+
634
+ // src/api/core/geom/index.ts
635
+ var PluginGeomApi = class {
636
+ constructor() {
637
+ }
638
+ };
639
+
640
+ // src/api/core/history/index.ts
641
+ import * as z17 from "zod";
642
+ var PluginHistoryApi = class {
643
+ constructor() {
644
+ }
645
+ };
646
+ var PluginHistoryStepArgs = z17.object({
647
+ steps: z17.number().int().positive().optional()
648
+ });
649
+ var PluginHistoryStepResult = z17.object({
650
+ stepsApplied: z17.number().int().nonnegative()
651
+ });
652
+
653
+ // src/api/core/units/index.ts
654
+ import * as z18 from "zod";
655
+ var PluginUnitsApi = class {
656
+ constructor() {
657
+ }
658
+ };
659
+ var PUnitType = z18.enum([
660
+ "meters",
661
+ "feet-inches",
662
+ "inches",
663
+ "centimeters",
664
+ "millimeters",
665
+ "kilometers",
666
+ "miles",
667
+ "babylon"
668
+ ]);
669
+ var PluginUnitsSetTypeArgs = z18.object({
670
+ type: PUnitType
671
+ });
672
+ var PluginUnitsConvertArgs = z18.object({
673
+ value: z18.number(),
674
+ from: PUnitType,
675
+ to: PUnitType,
676
+ degree: z18.number().int().min(1).max(3).optional()
677
+ });
678
+
679
+ // src/api/core/zoom/index.ts
680
+ var PluginZoomApi = class {
681
+ constructor() {
682
+ }
683
+ };
684
+
685
+ // src/api/core/project/index.ts
686
+ import * as z19 from "zod";
687
+ var PluginProjectApi = class {
688
+ constructor() {
689
+ }
690
+ };
691
+ var PluginProjectSettingsApi = class {
692
+ constructor() {
693
+ }
694
+ };
695
+ var PluginSnapsApi = class {
696
+ constructor() {
697
+ }
698
+ };
699
+ var PluginGridApi = class {
700
+ constructor() {
701
+ }
702
+ };
703
+ var PluginSnapValueArgs = z19.object({
704
+ value: z19.number()
705
+ });
706
+ var PluginGridValueArgs = z19.object({
707
+ value: z19.number()
708
+ });
709
+ var PluginToleranceArgs = z19.object({
710
+ value: z19.number()
711
+ });
712
+
713
+ // src/api/core/comment/index.ts
714
+ import * as z20 from "zod";
715
+ var PluginCommentApi = class {
716
+ constructor() {
717
+ }
718
+ };
719
+ var CommentHandle = z20.string().min(1).transform((s) => s);
720
+ var PluginCommentCreateArgs = z20.object({
721
+ component: ComponentHandle.optional(),
722
+ position: Vec3Handle.optional(),
723
+ message: z20.string(),
724
+ mentions: z20.array(z20.string()).optional()
725
+ });
726
+ var PluginCommentUpdateArgs = z20.object({
727
+ comment: CommentHandle,
728
+ message: z20.string(),
729
+ mentions: z20.array(z20.string()).optional()
730
+ });
731
+ var PluginCommentRefArgs = z20.object({
732
+ comment: CommentHandle
733
+ });
734
+ var PluginCommentTagArgs = z20.object({
735
+ comment: CommentHandle,
736
+ email: z20.string()
737
+ });
738
+
739
+ // src/api/core/groups.ts
740
+ import * as z21 from "zod";
741
+ var PluginCoreGroupsApi = class {
742
+ constructor() {
743
+ }
744
+ };
745
+ var PluginCoreGroupRef = z21.object({
746
+ id: z21.string(),
747
+ name: z21.string(),
748
+ memberCount: z21.number().int(),
749
+ isLocked: z21.boolean(),
750
+ parentId: z21.string().optional()
751
+ });
752
+ var PluginCoreGroupMember = z21.object({
753
+ id: z21.string(),
754
+ type: z21.enum(["component", "group"])
755
+ });
756
+ var PluginCoreGroupsListResult = z21.object({
757
+ groups: z21.array(PluginCoreGroupRef)
758
+ });
759
+ var PluginCoreGroupsGetArgs = z21.object({
760
+ groupId: z21.string()
761
+ });
762
+ var PluginCoreGroupsGetResult = PluginCoreGroupRef.nullable();
763
+ var PluginCoreGroupsGetForComponentArgs = z21.object({
764
+ componentId: ComponentHandle
765
+ });
766
+ var PluginCoreGroupsGetForComponentResult = PluginCoreGroupRef.nullable();
767
+ var PluginCoreGroupsListMembersArgs = z21.object({
768
+ groupId: z21.string()
769
+ });
770
+ var PluginCoreGroupsListMembersResult = z21.object({
771
+ members: z21.array(PluginCoreGroupMember)
772
+ });
773
+ var PluginCoreGroupsIsLockedArgs = z21.object({
774
+ groupId: z21.string()
775
+ });
776
+ var PluginCoreGroupsIsLockedResult = z21.boolean();
777
+ var PluginCoreGroupsGetBoundsArgs = z21.object({
778
+ groupId: z21.string()
779
+ });
780
+ var PluginCoreGroupsGetBoundsResult = z21.object({
781
+ min: Vec3Components,
782
+ max: Vec3Components,
783
+ center: Vec3Components
784
+ }).nullable();
785
+ var PluginCoreGroupsCreateArgs = z21.object({
786
+ componentIds: z21.array(ComponentHandle).min(1),
787
+ name: z21.string().optional()
788
+ });
789
+ var PluginCoreGroupsCreateResult = z21.object({
790
+ groupId: z21.string()
791
+ });
792
+ var PluginCoreGroupsUpdateArgs = z21.object({
793
+ groupId: z21.string(),
794
+ name: z21.string().optional(),
795
+ addComponentIds: z21.array(ComponentHandle).optional(),
796
+ removeComponentIds: z21.array(ComponentHandle).optional()
797
+ });
798
+ var PluginCoreGroupsUpdateResult = PluginCoreGroupRef;
799
+ var PluginCoreGroupsDeleteArgs = z21.object({
800
+ groupId: z21.string()
801
+ });
802
+ var PluginCoreGroupsDeleteResult = z21.object({
803
+ deleted: z21.literal(true)
804
+ });
805
+
806
+ // src/api/core/buildings.ts
807
+ import * as z22 from "zod";
808
+ var PluginCoreBuildingsApi = class {
809
+ constructor() {
810
+ }
811
+ };
812
+ var PluginCoreBuildingRef = z22.object({
813
+ id: z22.string(),
814
+ name: z22.string(),
815
+ baseElevation: z22.number()
816
+ });
817
+ var PluginCoreBuildingsListResult = z22.object({
818
+ buildings: z22.array(PluginCoreBuildingRef)
819
+ });
820
+ var PluginCoreBuildingsGetArgs = z22.object({
821
+ buildingId: z22.string()
822
+ });
823
+ var PluginCoreBuildingsGetResult = PluginCoreBuildingRef.nullable();
824
+ var PluginCoreBuildingsListStoreysArgs = z22.object({
825
+ buildingId: z22.string()
826
+ });
827
+ var PluginCoreBuildingsListStoreysResult = z22.object({
828
+ storeyIds: z22.array(z22.string())
829
+ });
830
+ var PluginCoreBuildingsGetActiveResult = z22.object({
831
+ buildingId: z22.string()
832
+ }).nullable();
833
+ var PluginCoreBuildingsSetActiveArgs = z22.object({
834
+ buildingId: z22.string()
835
+ });
836
+ var PluginCoreBuildingsSetActiveResult = z22.object({
837
+ buildingId: z22.string()
838
+ });
839
+ var PluginCoreBuildingsCreateArgs = z22.object({
840
+ name: z22.string(),
841
+ baseElevation: z22.number().optional()
842
+ });
843
+ var PluginCoreBuildingsCreateResult = z22.object({
844
+ buildingId: z22.string()
845
+ });
846
+ var PluginCoreBuildingsUpdateArgs = z22.object({
847
+ buildingId: z22.string(),
848
+ name: z22.string().optional(),
849
+ baseElevation: z22.number().optional()
850
+ });
851
+ var PluginCoreBuildingsUpdateResult = PluginCoreBuildingRef;
852
+ var PluginCoreBuildingsCopyArgs = z22.object({
853
+ buildingId: z22.string(),
854
+ name: z22.string().optional(),
855
+ baseElevation: z22.number().optional(),
856
+ asInstances: z22.boolean().optional()
857
+ });
858
+ var PluginCoreBuildingsCopyResult = z22.object({
859
+ buildingId: z22.string()
860
+ });
861
+ var PluginCoreBuildingsDeleteArgs = z22.object({
862
+ buildingId: z22.string()
863
+ });
864
+ var PluginCoreBuildingsDeleteResult = z22.object({
865
+ deleted: z22.literal(true)
866
+ });
867
+
868
+ // src/api/core/layers.ts
869
+ import * as z23 from "zod";
870
+ var PluginCoreLayersApi = class {
871
+ constructor() {
872
+ }
873
+ };
874
+ var PluginCoreLayerType = z23.enum([
875
+ "floor",
876
+ "wall",
877
+ "ceiling",
878
+ "rough",
879
+ "default",
880
+ "image",
881
+ "cad",
882
+ "pdf",
883
+ "terrain",
884
+ "buildings"
885
+ ]);
886
+ var PluginCoreLayer = z23.object({
887
+ id: z23.string(),
888
+ name: z23.string(),
889
+ layerType: PluginCoreLayerType,
890
+ storeyId: z23.string(),
891
+ buildingId: z23.string(),
892
+ hidden: z23.boolean(),
893
+ locked: z23.boolean(),
894
+ contentSummary: z23.object({
895
+ hasFloorplan: z23.boolean(),
896
+ pdfCount: z23.number().int(),
897
+ hasTerrain: z23.boolean()
898
+ })
899
+ });
900
+ var PluginCoreLayersListArgs = z23.object({
901
+ storeyId: z23.string(),
902
+ layerType: PluginCoreLayerType.optional()
903
+ });
904
+ var PluginCoreLayersListResult = z23.object({
905
+ layers: z23.array(PluginCoreLayer)
906
+ });
907
+ var PluginCoreLayersGetArgs = z23.object({
908
+ layerId: z23.string()
909
+ });
910
+ var PluginCoreLayersGetResult = PluginCoreLayer.nullable();
911
+ var PluginCoreLayersGetActiveArgs = z23.object({
912
+ storeyId: z23.string()
913
+ });
914
+ var PluginCoreLayersGetActiveResult = PluginCoreLayer.nullable();
915
+ var PluginCoreLayersSetActiveArgs = z23.object({
916
+ layerId: z23.string()
917
+ });
918
+ var PluginCoreLayersSetActiveResult = z23.object({
919
+ layerId: z23.string()
920
+ });
921
+ var PluginCoreLayersUpdateArgs = z23.object({
922
+ layerId: z23.string(),
923
+ hidden: z23.boolean().optional()
924
+ });
925
+ var PluginCoreLayersUpdateResult = PluginCoreLayer;
926
+
927
+ // src/api/core/tags.ts
928
+ import * as z24 from "zod";
929
+ var PluginCoreTagsApi = class {
930
+ constructor() {
931
+ }
932
+ };
933
+ var PluginCoreTagCategory = z24.object({
934
+ id: z24.string(),
935
+ name: z24.string(),
936
+ tagIds: z24.array(z24.string())
937
+ });
938
+ var PluginCoreTag = z24.object({
939
+ id: z24.string(),
940
+ categoryId: z24.string(),
941
+ name: z24.string(),
942
+ color: z24.string()
943
+ });
944
+ var PluginCoreComponentTag = z24.object({
945
+ categoryId: z24.string(),
946
+ categoryName: z24.string(),
947
+ tagId: z24.string(),
948
+ tagName: z24.string(),
949
+ color: z24.string()
950
+ });
951
+ var PluginCoreAssignOutcome = z24.object({
952
+ assigned: z24.array(z24.string()),
953
+ skipped: z24.array(
954
+ z24.object({
955
+ id: z24.string(),
956
+ reason: z24.enum(["locked", "not-taggable", "not-found"])
957
+ })
958
+ )
959
+ });
960
+ var PluginCoreTagsListCategoriesResult = z24.object({
961
+ categories: z24.array(PluginCoreTagCategory)
962
+ });
963
+ var PluginCoreTagsGetCategoryArgs = z24.object({
964
+ categoryId: z24.string()
965
+ });
966
+ var PluginCoreTagsGetCategoryResult = PluginCoreTagCategory.nullable();
967
+ var PluginCoreTagsListArgs = z24.object({
968
+ categoryId: z24.string().optional()
969
+ });
970
+ var PluginCoreTagsListResult = z24.object({
971
+ tags: z24.array(PluginCoreTag)
972
+ });
973
+ var PluginCoreTagsGetArgs = z24.object({
974
+ tagId: z24.string()
975
+ });
976
+ var PluginCoreTagsGetResult = PluginCoreTag.nullable();
977
+ var PluginCoreTagsGetTagsForComponentArgs = z24.object({
978
+ componentId: ComponentHandle
979
+ });
980
+ var PluginCoreTagsGetTagsForComponentResult = z24.object({
981
+ tags: z24.array(PluginCoreComponentTag)
982
+ });
983
+ var PluginCoreTagsListComponentsArgs = z24.object({
984
+ tagId: z24.string().optional(),
985
+ categoryId: z24.string().optional(),
986
+ untagged: z24.boolean().optional()
987
+ }).refine((v) => v.tagId == null !== (v.categoryId == null), {
988
+ message: "Provide exactly one of tagId or categoryId"
989
+ }).refine((v) => v.untagged == null || v.categoryId != null, {
990
+ message: "untagged is valid only together with categoryId"
991
+ });
992
+ var PluginCoreTagsListComponentsResult = z24.object({
993
+ componentIds: z24.array(ComponentHandle)
994
+ });
995
+ var PluginCoreTagsCreateCategoryArgs = z24.object({
996
+ name: z24.string()
997
+ });
998
+ var PluginCoreTagsCreateCategoryResult = PluginCoreTagCategory;
999
+ var PluginCoreTagsUpdateCategoryArgs = z24.object({
1000
+ categoryId: z24.string(),
1001
+ name: z24.string()
1002
+ });
1003
+ var PluginCoreTagsUpdateCategoryResult = PluginCoreTagCategory;
1004
+ var PluginCoreTagsDeleteCategoryArgs = z24.object({
1005
+ categoryId: z24.string()
1006
+ });
1007
+ var PluginCoreTagsDeleteCategoryResult = z24.object({
1008
+ deletedTagCount: z24.number().int(),
1009
+ resetComponentCount: z24.number().int()
1010
+ });
1011
+ var PluginCoreTagsCreateArgs = z24.object({
1012
+ categoryId: z24.string(),
1013
+ name: z24.string(),
1014
+ color: z24.string().optional()
1015
+ });
1016
+ var PluginCoreTagsCreateResult = PluginCoreTag;
1017
+ var PluginCoreTagsUpdateArgs = z24.object({
1018
+ tagId: z24.string(),
1019
+ name: z24.string().optional(),
1020
+ color: z24.string().optional()
1021
+ });
1022
+ var PluginCoreTagsUpdateResult = PluginCoreTag;
1023
+ var PluginCoreTagsDeleteArgs = z24.object({
1024
+ tagId: z24.string()
1025
+ });
1026
+ var PluginCoreTagsDeleteResult = z24.object({
1027
+ resetComponentCount: z24.number().int()
1028
+ });
1029
+ var PluginCoreTagsAssignArgs = z24.object({
1030
+ componentIds: z24.array(ComponentHandle).min(1),
1031
+ categoryName: z24.string(),
1032
+ tagName: z24.string()
1033
+ });
1034
+ var PluginCoreTagsAssignResult = PluginCoreAssignOutcome.extend({
1035
+ categoryId: z24.string(),
1036
+ tagId: z24.string(),
1037
+ categoryCreated: z24.boolean(),
1038
+ tagCreated: z24.boolean()
1039
+ });
1040
+ var PluginCoreTagsUnassignArgs = z24.object({
1041
+ categoryId: z24.string(),
1042
+ componentIds: z24.array(ComponentHandle).min(1)
1043
+ });
1044
+ var PluginCoreTagsUnassignResult = PluginCoreAssignOutcome;
1045
+
1046
+ // src/api/core/io/import/index.ts
1047
+ import * as z25 from "zod";
1048
+ var ImportSource = z25.string().min(1).refine((s) => s.startsWith("https://") || s.startsWith("data:"), {
1049
+ message: "source must be an https:// URL or a data: URL"
1050
+ });
1051
+ var PluginCoreIoImportApi = class {
1052
+ constructor() {
1053
+ }
1054
+ };
1055
+ var ModelFormat = z25.enum(["skp", "fbx", "obj", "3ds", "zip"]);
1056
+ var CadJsonInput = z25.object({
1057
+ unit: z25.string().optional(),
1058
+ geometry: z25.array(z25.record(z25.string(), z25.unknown())).optional()
1059
+ }).passthrough();
1060
+ var PluginImportImageArgs = z25.object({
1061
+ source: ImportSource,
1062
+ storey: z25.number().int().optional(),
1063
+ scale: z25.number().positive().optional(),
1064
+ opacity: z25.number().min(0).max(1).optional(),
1065
+ label: z25.string().optional()
1066
+ });
1067
+ var PluginImportPdfArgs = z25.object({
1068
+ source: ImportSource,
1069
+ storey: z25.number().int().optional(),
1070
+ page: z25.number().int().positive().optional(),
1071
+ scale: z25.string().optional(),
1072
+ opacity: z25.number().min(0).max(1).optional()
1073
+ });
1074
+ var PluginImportDwgArgs = z25.object({
1075
+ source: ImportSource,
1076
+ storey: z25.number().int().optional()
1077
+ });
1078
+ var PluginImportCadJsonArgs = z25.object({
1079
+ cad: CadJsonInput,
1080
+ storey: z25.number().int().optional()
1081
+ });
1082
+ var PluginImportModelArgs = z25.object({
1083
+ source: ImportSource,
1084
+ storey: z25.number().int().optional(),
1085
+ format: ModelFormat.optional(),
1086
+ position: Vec3Handle.optional(),
1087
+ label: z25.string().optional()
1088
+ });
1089
+ var PluginImportTerrainArgs = z25.object({
1090
+ lat: z25.number().min(-90).max(90),
1091
+ lng: z25.number().min(-180).max(180),
1092
+ width: z25.number().positive().finite(),
1093
+ length: z25.number().positive().finite(),
1094
+ elevation: z25.boolean().optional(),
1095
+ satellite: z25.boolean().optional(),
1096
+ neighborhood: z25.boolean().optional(),
1097
+ parcels: z25.boolean().optional()
1098
+ });
1099
+
1100
+ // src/api/core/io/job/index.ts
1101
+ import * as z26 from "zod";
1102
+ var PluginCoreIoJobApi = class {
1103
+ constructor() {
1104
+ }
1105
+ };
1106
+ var ImportJobStatus = z26.enum(["pending", "processing", "complete", "failed"]);
1107
+ var PluginImportJobArgs = z26.object({
1108
+ job: ImportJobHandle
1109
+ });
1110
+
1111
+ // src/api/core/io/underlay/index.ts
1112
+ import * as z27 from "zod";
1113
+ var PluginCoreIoUnderlayApi = class {
1114
+ constructor() {
1115
+ }
1116
+ };
1117
+ var PluginUnderlayListArgs = z27.object({
1118
+ storey: z27.number().int().optional()
1119
+ });
1120
+ var PluginUnderlayPlanSize = z27.object({
1121
+ planSize: z27.number().positive()
1122
+ });
1123
+ var PluginUnderlaySetScaleValue = z27.union([
1124
+ z27.number().positive(),
1125
+ PluginUnderlayPlanSize
1126
+ ]);
1127
+ var PluginUnderlaySetScaleArgs = z27.object({
1128
+ underlay: UnderlayHandle,
1129
+ scale: PluginUnderlaySetScaleValue
1130
+ });
1131
+ var PluginUnderlaySetOpacityArgs = z27.object({
1132
+ underlay: UnderlayHandle,
1133
+ opacity: z27.number().min(0).max(1)
1134
+ });
1135
+ var PluginUnderlayRefArgs = z27.object({
1136
+ underlay: UnderlayHandle
1137
+ });
1138
+
1139
+ // src/api/core/io/terrain/index.ts
1140
+ import * as z28 from "zod";
1141
+ var PluginCoreIoTerrainApi = class {
1142
+ constructor() {
1143
+ }
1144
+ };
1145
+ var TerrainReport = z28.object({
1146
+ cutVolume: z28.number(),
1147
+ fillVolume: z28.number(),
1148
+ netVolume: z28.number()
1149
+ });
1150
+ var PluginTerrainSetDatumArgs = z28.object({ offset: z28.number().finite() });
1151
+ var PluginTerrainSetOpacityArgs = z28.object({ opacity: z28.number().min(0).max(1) });
1152
+
1153
+ // src/api/core/io/query/index.ts
1154
+ import * as z29 from "zod";
1155
+ var PluginCoreIoQueryApi = class {
1156
+ constructor() {
1157
+ }
1158
+ };
1159
+ var PluginQueryPdfPageCountArgs = z29.object({ source: z29.string().min(1) });
1160
+ var PluginQueryCadLayersArgs = z29.object({ cad: CadJsonInput });
1161
+
1162
+ // src/api/core/io/index.ts
1163
+ var PluginCoreIoApi = class {
1164
+ constructor() {
1165
+ }
1166
+ };
1167
+
1168
+ // src/api/core/index.ts
1169
+ var PluginCoreApi = class {
1170
+ constructor() {
1171
+ }
1172
+ };
1173
+
1174
+ // src/api/design/create/index.ts
1175
+ import * as z31 from "zod";
1176
+
1177
+ // src/api/entity/space.ts
1178
+ import * as z30 from "zod";
1179
+ var PluginSpaceCreateRectangularArgs = z30.object({
1180
+ position: Vec3Handle,
1181
+ dimensions: z30.object({
1182
+ width: z30.number(),
1183
+ height: z30.number(),
1184
+ depth: z30.number()
1185
+ })
1186
+ });
1187
+ var PluginSpaceCreateRectangularResult = z30.object({
1188
+ spaceId: z30.string()
1189
+ });
1190
+ var PluginSpaceCreateFromProfileArgs = z30.object({
1191
+ profile: ProfileHandle,
1192
+ innerProfiles: z30.array(ProfileHandle).optional(),
1193
+ extrudeHeight: z30.number(),
1194
+ position: Vec3Handle
1195
+ });
1196
+ var PluginSpaceCreateFromProfileResult = z30.object({
1197
+ spaceId: z30.string()
1198
+ });
1199
+ var PluginSpaceUpdateGeometryFromProfileArgs = z30.object({
1200
+ spaceId: z30.string(),
1201
+ profile: ProfileHandle,
1202
+ extrudeHeight: z30.number()
1203
+ });
1204
+ var PluginSpaceUpdateGeometryFromProfileResult = z30.object({
1205
+ spaceId: z30.string()
1206
+ });
1207
+ var PluginSpaceGetProperty = z30.enum([
1208
+ // Basic
1209
+ "id",
1210
+ "type",
1211
+ "room_type",
1212
+ "name",
1213
+ // Derived from parametric data
1214
+ "area",
1215
+ "breadth",
1216
+ "depth",
1217
+ "height",
1218
+ "massType",
1219
+ "spaceType",
1220
+ "areaClass",
1221
+ "storey",
1222
+ "departmentId",
1223
+ "departmentName",
1224
+ "departmentColor",
1225
+ // Derived from mesh
1226
+ "position",
1227
+ "absolutePosition",
1228
+ "rotation",
1229
+ "rotationQuaternion",
1230
+ // Derived from brep
1231
+ "planPoints",
1232
+ "profile",
1233
+ "innerProfiles",
1234
+ "innerPlanPoints",
1235
+ // Derived from adjacency manager
1236
+ "adjacency"
1237
+ ]);
1238
+ var PluginSpaceGetArgs = z30.object({
1239
+ spaceId: z30.string(),
1240
+ properties: z30.array(PluginSpaceGetProperty)
1241
+ });
1242
+ var PluginSpaceType = z30.enum([
1243
+ "Room",
1244
+ "Program Block",
1245
+ "Balcony",
1246
+ "Road",
1247
+ "Garden",
1248
+ "Deck",
1249
+ "Pool",
1250
+ "Walkway",
1251
+ "Envelope",
1252
+ "Parking"
1253
+ ]);
1254
+ var PluginAreaClass = z30.enum(["NET", "GROSS", "EXCLUDED"]);
1255
+ var PluginSpaceGetResult = z30.object({
1256
+ // Basic
1257
+ id: z30.string(),
1258
+ type: z30.string(),
1259
+ room_type: z30.string(),
1260
+ name: z30.string(),
1261
+ // Derived from parametric data
1262
+ area: z30.number(),
1263
+ breadth: z30.number(),
1264
+ depth: z30.number(),
1265
+ height: z30.number(),
1266
+ massType: z30.string().nullable(),
1267
+ spaceType: PluginSpaceType.nullable(),
1268
+ areaClass: PluginAreaClass,
1269
+ storey: z30.number().nullable(),
1270
+ departmentId: z30.string().nullable(),
1271
+ departmentName: z30.string(),
1272
+ departmentColor: z30.string(),
1273
+ // Derived from mesh
1274
+ position: Vec3Components,
1275
+ absolutePosition: Vec3Components,
1276
+ rotation: Vec3Components,
1277
+ rotationQuaternion: QuatComponents.nullable(),
1278
+ // Derived from brep
1279
+ planPoints: z30.array(Vec3Components),
1280
+ profile: z30.array(CurveHandle),
1281
+ innerProfiles: z30.array(z30.array(CurveHandle)),
1282
+ innerPlanPoints: z30.array(z30.array(Vec3Components)),
1283
+ // Derived from adjacency manager.
1284
+ // value: 2 = Direct (required), 1 = Indirect or physical contact, -1 = Restricted;
1285
+ // 0 (no relationship) entries are filtered out. Empty array when adjacency has
1286
+ // never been computed — run program.adjacency.compute() first for fresh data.
1287
+ adjacency: z30.array(z30.object({
1288
+ spaceId: z30.string(),
1289
+ value: z30.number()
1290
+ }))
1291
+ }).partial();
1292
+ var PluginSpaceGetAllResult = z30.object({
1293
+ spacesIds: z30.array(z30.string())
1294
+ });
1295
+ var PluginSpaceDeleteArgs = z30.object({
1296
+ spaceId: z30.string()
1297
+ });
1298
+ var PluginMassType = z30.enum([
1299
+ "Plinth",
1300
+ "Void",
1301
+ "Pergola",
1302
+ "Furniture",
1303
+ "Facade element",
1304
+ "Generic mass",
1305
+ "Room",
1306
+ "Department",
1307
+ "Building",
1308
+ "Revit Import",
1309
+ "Mass",
1310
+ "Site"
1311
+ ]);
1312
+ var PluginWellKnownDepartmentId = z30.enum([
1313
+ "DEFAULT",
1314
+ "SITE",
1315
+ "ENVELOPE",
1316
+ "CORE"
1317
+ ]);
1318
+ var PluginDepartmentId = z30.union([
1319
+ PluginWellKnownDepartmentId,
1320
+ z30.uuid()
1321
+ ]);
1322
+ var PluginSpaceUpdateArgs = z30.object({
1323
+ spaceId: z30.string(),
1324
+ properties: z30.object({
1325
+ room_type: z30.string().optional(),
1326
+ massType: PluginMassType.optional(),
1327
+ spaceType: PluginSpaceType.optional(),
1328
+ areaClass: PluginAreaClass.optional(),
1329
+ departmentId: PluginDepartmentId.optional()
1330
+ })
1331
+ });
1332
+ var PluginSpaceUpdateResult = z30.object({
1333
+ spaceId: z30.string(),
1334
+ room_type: z30.string().optional(),
1335
+ massType: z30.string().optional(),
1336
+ spaceType: z30.string().optional(),
1337
+ areaClass: PluginAreaClass.optional(),
1338
+ departmentId: z30.string().nullable().optional()
1339
+ });
1340
+ var PluginSpaceBulkCreateItem = z30.discriminatedUnion("kind", [
1341
+ z30.object({
1342
+ kind: z30.literal("rectangular"),
1343
+ position: Vec3Handle,
1344
+ dimensions: z30.object({
1345
+ width: z30.number(),
1346
+ height: z30.number(),
1347
+ depth: z30.number()
1348
+ }),
1349
+ room_type: z30.string().optional(),
1350
+ spaceType: PluginSpaceType.optional(),
1351
+ massType: PluginMassType.optional(),
1352
+ departmentId: PluginDepartmentId.optional()
1353
+ }),
1354
+ z30.object({
1355
+ kind: z30.literal("profile"),
1356
+ profile: ProfileHandle,
1357
+ innerProfiles: z30.array(ProfileHandle).optional(),
1358
+ extrudeHeight: z30.number(),
1359
+ position: Vec3Handle,
1360
+ room_type: z30.string().optional(),
1361
+ spaceType: PluginSpaceType.optional(),
1362
+ massType: PluginMassType.optional(),
1363
+ departmentId: PluginDepartmentId.optional()
1364
+ })
1365
+ ]);
1366
+ var PluginSpaceBulkCreateArgs = z30.object({
1367
+ items: z30.array(PluginSpaceBulkCreateItem)
1368
+ });
1369
+ var PluginSpaceBulkCreateResult = z30.object({
1370
+ spaceIds: z30.array(z30.string())
1371
+ });
1372
+ var PluginSpaceBulkUpdateItem = z30.object({
1373
+ spaceId: z30.string(),
1374
+ profile: ProfileHandle.optional(),
1375
+ extrudeHeight: z30.number().optional(),
1376
+ properties: z30.object({
1377
+ room_type: z30.string().optional(),
1378
+ massType: PluginMassType.optional(),
1379
+ spaceType: PluginSpaceType.optional(),
1380
+ areaClass: PluginAreaClass.optional(),
1381
+ departmentId: PluginDepartmentId.optional()
1382
+ }).optional()
1383
+ });
1384
+ var PluginSpaceBulkUpdateArgs = z30.object({
1385
+ items: z30.array(PluginSpaceBulkUpdateItem)
1386
+ });
1387
+ var PluginSpaceBulkUpdateResult = z30.object({
1388
+ spaces: z30.array(PluginSpaceUpdateResult)
1389
+ });
1390
+ var PluginSpaceBulkDeleteArgs = z30.object({
1391
+ spaceIds: z30.array(z30.string())
1392
+ });
1393
+ var PluginSpaceBulkDeleteResult = z30.object({
1394
+ deletedSpaceIds: z30.array(z30.string())
1395
+ });
1396
+
1397
+ // src/api/design/create/index.ts
1398
+ var PluginDesignCreateApi = class {
1399
+ constructor() {
1400
+ }
1401
+ };
1402
+ var PluginReferenceLineStyle = z31.enum(["SOLID", "DASHED", "DOT_DASH"]);
1403
+ var PluginSlabType = z31.enum([
1404
+ "Intermediate Slab",
1405
+ "Basement Slab",
1406
+ "Plinth",
1407
+ "Roof"
1408
+ ]);
1409
+ var PluginStaircasePreset = z31.enum([
1410
+ "straight",
1411
+ "straightWoLanding",
1412
+ "straightFlightWoMidLanding",
1413
+ "dogLegged",
1414
+ "openWell",
1415
+ "lShaped",
1416
+ "3StepLShaped",
1417
+ "square",
1418
+ "singleStep",
1419
+ "plinthLevel",
1420
+ "amphitheatre",
1421
+ "connectingStepsToAmphitheatre",
1422
+ "mezzanineFloorStraight",
1423
+ "mezzanineFloorDogLegged",
1424
+ "mezzanineFloorLShaped",
1425
+ "custom"
1426
+ ]);
1427
+ var PluginDesignCreateSpaceArgs = z31.object({
1428
+ contour: ContourHandle,
1429
+ height: z31.number(),
1430
+ label: z31.string().optional(),
1431
+ position: Vec3Handle.optional(),
1432
+ spaceType: PluginSpaceType.optional(),
1433
+ massType: PluginMassType.optional(),
1434
+ departmentId: PluginDepartmentId.optional()
1435
+ });
1436
+ var PluginDesignCreateMassArgs = z31.object({
1437
+ contour: ContourHandle,
1438
+ height: z31.number(),
1439
+ label: z31.string().optional(),
1440
+ position: Vec3Handle.optional(),
1441
+ massType: PluginMassType.optional()
1442
+ });
1443
+ var PluginDesignCreateSlabArgs = z31.object({
1444
+ contour: ContourHandle,
1445
+ thickness: z31.number(),
1446
+ direction: z31.enum(["up", "down"]).optional(),
1447
+ slabType: PluginSlabType.optional()
1448
+ });
1449
+ var PluginDesignCreateFloorArgs = z31.object({
1450
+ contour: ContourHandle,
1451
+ thickness: z31.number(),
1452
+ position: Vec3Handle.optional()
1453
+ });
1454
+ var PluginDesignCreateRoofArgs = z31.object({
1455
+ contour: ContourHandle,
1456
+ thickness: z31.number()
1457
+ });
1458
+ var PluginDesignCreateCeilingArgs = z31.object({
1459
+ contour: ContourHandle,
1460
+ thickness: z31.number(),
1461
+ heightFromFloor: z31.number().optional()
1462
+ });
1463
+ var PluginDesignCreateColumnArgs = z31.object({
1464
+ position: Vec3Handle,
1465
+ crossSection: ContourHandle,
1466
+ height: z31.number(),
1467
+ directionUp: Vec3Handle.optional()
1468
+ });
1469
+ var PluginDesignCreateBeamArgs = z31.object({
1470
+ section: ContourHandle,
1471
+ length: z31.number(),
1472
+ direction: Vec3Handle.optional()
1473
+ });
1474
+ var PluginDesignCreateWallsArgs = z31.object({
1475
+ profile: ProfileHandle,
1476
+ height: z31.number().optional(),
1477
+ thickness: z31.number().optional()
1478
+ });
1479
+ var PluginDesignCreateStaircaseArgs = z31.object({
1480
+ preset: PluginStaircasePreset,
1481
+ position: Vec3Handle,
1482
+ label: z31.string().optional(),
1483
+ structureId: z31.string().optional(),
1484
+ level: z31.string().optional()
1485
+ });
1486
+ var PluginDesignCreateFurnitureArgs = z31.object({
1487
+ catalogId: z31.string().min(1),
1488
+ position: Vec3Handle,
1489
+ label: z31.string().optional(),
1490
+ createNewSourceMesh: z31.boolean().optional()
1491
+ });
1492
+ var PluginDesignCreateReferenceLinesArgs = z31.object({
1493
+ profile: ProfileHandle,
1494
+ color: z31.string().optional(),
1495
+ thickness: z31.number().optional(),
1496
+ style: PluginReferenceLineStyle.optional(),
1497
+ gridTag: z31.string().optional()
1498
+ });
1499
+ var PluginCopyMode = z31.enum(["instance", "unique"]);
1500
+ var PluginDesignCreateCopyArgs = z31.object({
1501
+ components: z31.array(ComponentHandle).min(1),
1502
+ displacement: Vec3Handle,
1503
+ count: z31.number().int().positive().optional(),
1504
+ mode: PluginCopyMode.optional()
1505
+ });
1506
+ var PluginCreateSpaceItem = z31.object({
1507
+ contour: ContourHandle,
1508
+ height: z31.number(),
1509
+ label: z31.string().optional(),
1510
+ position: Vec3Handle.optional(),
1511
+ spaceType: PluginSpaceType.optional(),
1512
+ massType: PluginMassType.optional(),
1513
+ departmentId: PluginDepartmentId.optional()
1514
+ });
1515
+
1516
+ // src/api/design/query/index.ts
1517
+ import * as z34 from "zod";
1518
+
1519
+ // src/api/design/query/geometry/index.ts
1520
+ import * as z32 from "zod";
1521
+ var PluginDesignQueryGeometryApi = class {
1522
+ constructor() {
1523
+ }
1524
+ };
1525
+ var PluginDesignQueryGeometryGetBrepArgs = z32.object({
1526
+ component: ComponentHandle
1527
+ });
1528
+ var PluginDesignQueryGeometryGetBottomContourArgs = z32.object({
1529
+ component: ComponentHandle
1530
+ });
1531
+ var PluginDesignQueryGeometryGetCenterlineArgs = z32.object({
1532
+ component: ComponentHandle
1533
+ });
1534
+
1535
+ // src/api/design/query/spaces.ts
1536
+ import * as z33 from "zod";
1537
+ var PluginDesignQuerySpacesApi = class {
1538
+ constructor() {
1539
+ }
1540
+ };
1541
+ var PluginDesignQueryGetFootprintArgs = z33.object({
1542
+ space: ComponentHandle
1543
+ });
1544
+ var PluginDesignQuerySpacesGetProperty = PluginSpaceGetProperty.exclude(["adjacency"]);
1545
+ var PluginDesignQuerySpacesGetArgs = z33.object({
1546
+ space: ComponentHandle,
1547
+ properties: z33.array(PluginDesignQuerySpacesGetProperty)
1548
+ });
1549
+ var PluginDesignQuerySpacesGetResult = PluginSpaceGetResult.omit({
1550
+ adjacency: true
1551
+ });
1552
+
1553
+ // src/api/design/query/index.ts
1554
+ var PluginEntityType = z34.enum([
1555
+ "wall",
1556
+ "space",
1557
+ "mass",
1558
+ "door",
1559
+ "window",
1560
+ "floor",
1561
+ "slab",
1562
+ "roof",
1563
+ "column",
1564
+ "beam",
1565
+ "ceiling",
1566
+ "staircase",
1567
+ "furniture",
1568
+ "referenceLine",
1569
+ "curtainWall",
1570
+ "mullion",
1571
+ "panel"
1572
+ ]);
1573
+ var PluginEntityFilter = z34.object({
1574
+ types: z34.array(PluginEntityType).optional(),
1575
+ storeys: z34.array(z34.number()).optional(),
1576
+ buildingIds: z34.array(z34.string()).optional(),
1577
+ structureIds: z34.array(z34.string()).optional(),
1578
+ label: z34.string().optional(),
1579
+ massTypes: z34.array(PluginMassType).optional(),
1580
+ spaceTypes: z34.array(PluginSpaceType).optional(),
1581
+ departmentId: PluginDepartmentId.optional(),
1582
+ isSelected: z34.boolean().optional(),
1583
+ isLocked: z34.boolean().optional(),
1584
+ isHidden: z34.boolean().optional(),
1585
+ within: BBoxComponents.optional(),
1586
+ overlaps: ComponentHandle.optional(),
1587
+ ids: z34.array(ComponentHandle).optional()
1588
+ });
1589
+ var PluginDesignQueryListByTypeArgs = PluginEntityFilter.extend({
1590
+ type: PluginEntityType
1591
+ });
1592
+ var PluginDesignQueryComponentArgs = z34.object({
1593
+ component: ComponentHandle
1594
+ });
1595
+ var PluginDesignQueryIdArgs = z34.object({
1596
+ id: ComponentHandle
1597
+ });
1598
+ var PluginDesignQueryComponentsArgs = z34.object({
1599
+ components: z34.array(ComponentHandle)
1600
+ });
1601
+ var PluginEntityProperties = z34.object({
1602
+ id: z34.string(),
1603
+ type: PluginEntityType,
1604
+ label: z34.string(),
1605
+ storey: z34.number(),
1606
+ buildingId: z34.string(),
1607
+ structureId: z34.string(),
1608
+ massType: z34.string(),
1609
+ spaceType: PluginSpaceType,
1610
+ areaClass: PluginAreaClass,
1611
+ departmentId: z34.string(),
1612
+ isLocked: z34.boolean(),
1613
+ isHidden: z34.boolean(),
1614
+ isSelected: z34.boolean(),
1615
+ boundingBox: BBoxComponents,
1616
+ adjacency: z34.array(z34.object({ spaceId: z34.string(), value: z34.number() }))
1617
+ }).partial();
1618
+ var PluginEntityMeasurements = z34.object({
1619
+ area: z34.number().optional(),
1620
+ volume: z34.number().optional(),
1621
+ length: z34.number().optional(),
1622
+ boundingBox: BBoxComponents
1623
+ });
1624
+ var PluginDesignQueryApi = class {
1625
+ constructor() {
1626
+ }
1627
+ };
1628
+
1629
+ // src/api/design/selection/index.ts
1630
+ import * as z35 from "zod";
1631
+ var PluginSelectionEntityType = z35.enum([
1632
+ "wall",
1633
+ "slab",
1634
+ "floor",
1635
+ "door",
1636
+ "window",
1637
+ "beam",
1638
+ "column",
1639
+ "ceiling",
1640
+ "roof",
1641
+ "staircase",
1642
+ "furniture",
1643
+ "pergola",
1644
+ "sunshade",
1645
+ "referenceLine",
1646
+ "space",
1647
+ "site",
1648
+ "terrain",
1649
+ "cad",
1650
+ "pdf",
1651
+ "image",
1652
+ "dimensionLine",
1653
+ "model3d",
1654
+ "neighborhoodBuilding",
1655
+ "programBlock"
1656
+ ]);
1657
+ var PluginSelectionFilter = z35.object({
1658
+ storeys: z35.array(z35.number()).optional(),
1659
+ types: z35.array(PluginSelectionEntityType).optional()
1660
+ }).refine((f) => (f.storeys?.length ?? 0) + (f.types?.length ?? 0) > 0, {
1661
+ message: "PluginSelectionFilter requires at least one non-empty field (storeys or types); use design.selection.clear() to deselect everything"
1662
+ });
1663
+ var PluginDesignSelectionApi = class {
1664
+ constructor() {
1665
+ }
1666
+ };
1667
+ var PluginDesignSelectionSetArgs = z35.object({
1668
+ components: z35.array(ComponentHandle)
1669
+ });
1670
+ var PluginDesignSelectionAddArgs = PluginDesignSelectionSetArgs;
1671
+ var PluginDesignSelectionRemoveArgs = PluginDesignSelectionSetArgs;
1672
+
1673
+ // src/api/design/doors/index.ts
1674
+ import * as z36 from "zod";
1675
+ var PluginDesignDoorsApi = class {
1676
+ constructor() {
1677
+ }
1678
+ };
1679
+ var PluginDesignDoorArgs = z36.object({
1680
+ door: ComponentHandle
1681
+ });
1682
+ var PluginMirrorAxis = z36.enum(["x", "y", "z"]);
1683
+ var PluginDesignDoorMirrorArgs = z36.object({
1684
+ door: ComponentHandle,
1685
+ axis: PluginMirrorAxis.optional()
1686
+ });
1687
+ var PluginDesignDoorSetWidthArgs = z36.object({
1688
+ doors: z36.array(ComponentHandle),
1689
+ width: z36.number()
1690
+ });
1691
+ var PluginDesignDoorSetHeightArgs = z36.object({
1692
+ doors: z36.array(ComponentHandle),
1693
+ height: z36.number()
1694
+ });
1695
+
1696
+ // src/api/design/windows/index.ts
1697
+ import * as z37 from "zod";
1698
+ var PluginDesignWindowsApi = class {
1699
+ constructor() {
1700
+ }
1701
+ };
1702
+ var PluginDesignWindowArgs = z37.object({
1703
+ window: ComponentHandle
1704
+ });
1705
+ var PluginWindowDimensions = z37.object({
1706
+ width: z37.number(),
1707
+ height: z37.number(),
1708
+ thickness: z37.number()
1709
+ });
1710
+ var PluginDesignWindowSetWidthArgs = z37.object({
1711
+ window: ComponentHandle,
1712
+ width: z37.number()
1713
+ });
1714
+ var PluginDesignWindowSetHeightArgs = z37.object({
1715
+ window: ComponentHandle,
1716
+ height: z37.number()
1717
+ });
1718
+
1719
+ // src/api/design/furniture/index.ts
1720
+ import * as z38 from "zod";
1721
+ var PluginDesignFurnitureApi = class {
1722
+ constructor() {
1723
+ }
1724
+ };
1725
+ var PluginFurnitureCatalogItem = z38.object({
1726
+ id: z38.string(),
1727
+ name: z38.string(),
1728
+ source: z38.enum(["team", "general"]),
1729
+ subType: z38.string().optional(),
1730
+ cost: z38.number().optional(),
1731
+ familyName: z38.string().optional()
1732
+ });
1733
+ var PluginDesignFurnitureListCatalogArgs = z38.object({
1734
+ source: z38.enum(["team", "general"]).optional()
1735
+ });
1736
+ var PluginDesignFurnitureGetCatalogItemArgs = z38.object({
1737
+ id: z38.string()
1738
+ });
1739
+ var PluginDesignFurnitureExistsArgs = PluginDesignFurnitureGetCatalogItemArgs;
1740
+
1741
+ // src/api/design/materials/index.ts
1742
+ import * as z39 from "zod";
1743
+ var PluginDesignMaterialsApi = class {
1744
+ constructor() {
1745
+ }
1746
+ };
1747
+ var PluginMaterialInfo = z39.object({
1748
+ name: z39.string(),
1749
+ id: z39.string(),
1750
+ colorHex: z39.string(),
1751
+ alpha: z39.number(),
1752
+ materialType: z39.string().optional(),
1753
+ textureUrl: z39.string().optional()
1754
+ });
1755
+ var PluginMaterialSpec = z39.object({
1756
+ name: z39.string().optional(),
1757
+ color: z39.string().optional(),
1758
+ textureUrl: z39.string().optional(),
1759
+ alpha: z39.number().optional(),
1760
+ materialType: z39.string().optional()
1761
+ });
1762
+ var PluginMaterialResult = z39.object({ count: z39.number() });
1763
+ var PluginDesignMaterialsListArgs = z39.object({
1764
+ scope: z39.enum(["project", "preset"]).optional()
1765
+ });
1766
+ var PluginDesignMaterialsGetInfoArgs = z39.object({ material: MaterialHandle });
1767
+ var PluginDesignMaterialsComponentArgs = z39.object({ component: ComponentHandle });
1768
+ var PluginDesignMaterialsApplyArgs = z39.object({
1769
+ targets: z39.array(ComponentHandle),
1770
+ material: z39.union([MaterialHandle, PluginMaterialSpec]),
1771
+ save: z39.boolean().optional()
1772
+ });
1773
+ var PluginDesignMaterialsResetArgs = z39.object({
1774
+ components: z39.array(ComponentHandle),
1775
+ save: z39.boolean().optional()
1776
+ });
1777
+ var PluginDesignMaterialsCreateArgs = z39.object({ spec: PluginMaterialSpec });
1778
+
1779
+ // src/api/design/lock.ts
1780
+ import * as z40 from "zod";
1781
+ var PluginDesignChangeResult = z40.object({
1782
+ affected: z40.array(ComponentHandle)
1783
+ });
1784
+ var PluginDesignLockArgs = z40.object({
1785
+ components: z40.array(ComponentHandle)
1786
+ });
1787
+ var PluginDesignUnlockArgs = PluginDesignLockArgs;
1788
+ var PluginDesignIsLockedArgs = z40.object({
1789
+ component: ComponentHandle,
1790
+ includeInherited: z40.boolean().optional()
1791
+ });
1792
+
1793
+ // src/api/design/erase/index.ts
1794
+ import * as z41 from "zod";
1795
+ var EraseStrategy = z41.enum(["DirectDelete", "DirectUnion", "SplitAndUnion"]);
1796
+ var DEFAULT_ERASE_STRATEGIES = ["DirectDelete", "DirectUnion"];
1797
+ var ErasableEdgeRef = z41.object({
1798
+ /** Opaque bottom-graph edge id (engine form `"e-<n>"`). Do not mutate. Pass verbatim to {@linkcode PluginDesignEraseApi.edge}. */
1799
+ id: z41.string().min(1),
1800
+ /** What erasing this edge would do: `DirectDelete` drops a mass; `DirectUnion` merges two adjacent masses. */
1801
+ strategy: EraseStrategy,
1802
+ /** Bottom-graph edge weight: `1` = external boundary edge, `>=2` = internal edge shared between components. */
1803
+ edgeWeight: z41.number(),
1804
+ /** The components this edge is incident to — one for external (DirectDelete); two or more for internal (DirectUnion; 3+ at T-junctions where several masses share the edge). */
1805
+ components: z41.array(ComponentHandle),
1806
+ /** A representative point on the edge (its head endpoint). Diagnostic only. */
1807
+ snapPoint: Vec3Handle
1808
+ });
1809
+ var PluginDesignListErasableEdgesArgs = z41.object({
1810
+ components: z41.array(ComponentHandle).optional(),
1811
+ strategies: z41.array(EraseStrategy).optional()
1812
+ });
1813
+ var PluginDesignEraseEdgeArgs = z41.object({
1814
+ edge: ErasableEdgeRef
1815
+ });
1816
+ var PluginDesignEraseEdgeResult = z41.object({ ok: z41.literal(true) });
1817
+ var PluginDesignEraseApi = class {
1818
+ constructor() {
1819
+ }
1820
+ };
1821
+
1822
+ // src/api/design/delete/index.ts
1823
+ import * as z42 from "zod";
1824
+ var PluginDesignDeleteEntitiesArgs = z42.object({
1825
+ components: z42.array(ComponentHandle).min(1)
1826
+ });
1827
+ var PluginDesignDeleteApi = class {
1828
+ constructor() {
1829
+ }
1830
+ };
1831
+
1832
+ // src/api/design/shared.ts
1833
+ import * as z43 from "zod";
1834
+ var BooleanOutcome = z43.object({
1835
+ created: z43.array(ComponentHandle),
1836
+ deleted: z43.array(ComponentHandle)
1837
+ });
1838
+ var OffsetSplitOutcome = z43.object({
1839
+ createdIds: z43.array(ComponentHandle),
1840
+ deletedIds: z43.array(ComponentHandle),
1841
+ offsetValue: z43.number()
1842
+ });
1843
+
1844
+ // src/api/design/boolean/index.ts
1845
+ import * as z44 from "zod";
1846
+ var PluginDesignBooleanApi = class {
1847
+ constructor() {
1848
+ }
1849
+ };
1850
+ var BooleanOptions = z44.object({
1851
+ offset: Vec3Handle.optional()
1852
+ });
1853
+ var PluginDesignBooleanUnionArgs = z44.object({
1854
+ components: z44.array(ComponentHandle).min(2),
1855
+ options: BooleanOptions.optional()
1856
+ });
1857
+ var PluginDesignBooleanSubtractArgs = z44.object({
1858
+ target: ComponentHandle,
1859
+ tools: z44.array(ComponentHandle).min(1),
1860
+ options: BooleanOptions.optional()
1861
+ });
1862
+ var PluginDesignBooleanIntersectArgs = z44.object({
1863
+ components: z44.array(ComponentHandle).length(2),
1864
+ options: BooleanOptions.optional()
1865
+ });
1866
+
1867
+ // src/api/design/transform/index.ts
1868
+ import * as z45 from "zod";
1869
+ var PluginDesignTransformApi = class {
1870
+ constructor() {
1871
+ }
1872
+ };
1873
+ var PluginDesignMoveArgs = z45.object({
1874
+ components: z45.array(ComponentHandle).min(1),
1875
+ displacement: Vec3Handle,
1876
+ is2D: z45.boolean().optional(),
1877
+ trackParentChange: z45.boolean().optional()
1878
+ });
1879
+ var PluginDesignRotateArgs = z45.object({
1880
+ components: z45.array(ComponentHandle).min(1),
1881
+ angleInDegrees: z45.number(),
1882
+ axis: Vec3Handle.optional(),
1883
+ is2D: z45.boolean().optional()
1884
+ });
1885
+
1886
+ // src/api/design/edit/index.ts
1887
+ import * as z46 from "zod";
1888
+ var PluginDesignEditApi = class {
1889
+ constructor() {
1890
+ }
1891
+ };
1892
+ var PluginDesignOffsetSplitArgs = z46.object({
1893
+ component: ComponentHandle,
1894
+ offsetDistance: z46.number(),
1895
+ profilePickPoint: Vec3Handle.optional()
1896
+ });
1897
+
1898
+ // src/api/design/update/index.ts
1899
+ import * as z47 from "zod";
1900
+ var PluginSpacePropertyUpdates = z47.object({
1901
+ room_type: z47.string().optional(),
1902
+ massType: PluginMassType.optional(),
1903
+ spaceType: PluginSpaceType.optional(),
1904
+ areaClass: PluginAreaClass.optional(),
1905
+ departmentId: PluginDepartmentId.optional()
1906
+ });
1907
+ var PluginSpaceGeometryUpdate = z47.object({
1908
+ profile: ProfileHandle,
1909
+ extrudeHeight: z47.number()
1910
+ });
1911
+ var PluginUpdateSpaceItem = z47.object({
1912
+ space: ComponentHandle,
1913
+ properties: PluginSpacePropertyUpdates.optional(),
1914
+ geometry: PluginSpaceGeometryUpdate.optional()
1915
+ });
1916
+ var PluginDesignUpdateApi = class {
1917
+ constructor() {
1918
+ }
1919
+ };
1920
+
1921
+ // src/api/design/index.ts
1922
+ var PluginDesignApi = class {
1923
+ constructor() {
1924
+ }
1925
+ };
1926
+
1927
+ // src/api/entity/buildableEnvelope.ts
1928
+ import * as z48 from "zod";
1929
+ var PluginBuildableEnvelopeApi = class {
1930
+ constructor() {
1931
+ }
1932
+ };
1933
+ var PluginBuildableEnvelopePolygonVertex = z48.union([
1934
+ z48.object({ x: z48.number().finite(), z: z48.number().finite() }).strict(),
1935
+ z48.tuple([z48.number().finite(), z48.number().finite()])
1936
+ ]);
1937
+ var PluginBuildableEnvelopeVerticalCap = z48.discriminatedUnion("kind", [
1938
+ z48.object({
1939
+ kind: z48.literal("max_height"),
1940
+ maxHeight: z48.number().finite().positive()
1941
+ }).strict(),
1942
+ z48.object({
1943
+ kind: z48.literal("max_floors"),
1944
+ maxFloors: z48.number().finite().int().positive()
1945
+ }).strict()
1946
+ ]);
1947
+ var PluginBuildableEnvelopeSetbackTier = z48.object({
1948
+ aboveHeight: z48.number().finite().nonnegative(),
1949
+ front: z48.number().finite().nonnegative(),
1950
+ side: z48.number().finite().nonnegative(),
1951
+ rear: z48.number().finite().nonnegative()
1952
+ }).strict();
1953
+ function refineSetbackTiers(args, ctx) {
1954
+ const tiers = args.setbacks;
1955
+ if (tiers.length === 0) return;
1956
+ if (tiers[0].aboveHeight !== 0) {
1957
+ ctx.addIssue({
1958
+ code: z48.ZodIssueCode.custom,
1959
+ path: ["setbacks", 0, "aboveHeight"],
1960
+ message: "Ground tier required: setbacks[0].aboveHeight must be 0."
1961
+ });
1962
+ }
1963
+ for (let i = 1; i < tiers.length; i++) {
1964
+ if (!(tiers[i].aboveHeight > tiers[i - 1].aboveHeight)) {
1965
+ ctx.addIssue({
1966
+ code: z48.ZodIssueCode.custom,
1967
+ path: ["setbacks", i, "aboveHeight"],
1968
+ message: "Setback tiers must be ordered by strictly increasing aboveHeight."
1969
+ });
1970
+ }
1971
+ }
1972
+ }
1973
+ var PluginBuildableEnvelopeCreateArgs = z48.object({
1974
+ sitePolygon: z48.array(PluginBuildableEnvelopePolygonVertex).min(3),
1975
+ lengthUnit: z48.union([z48.literal("ft"), z48.literal("m")]),
1976
+ setbacks: z48.array(PluginBuildableEnvelopeSetbackTier).min(1),
1977
+ verticalCap: PluginBuildableEnvelopeVerticalCap,
1978
+ floorToFloor: z48.number().finite().positive(),
1979
+ farRatio: z48.number().finite().positive().optional(),
1980
+ lotCoverageMaxPct: z48.number().finite().min(0).max(100).optional()
1981
+ }).strict().superRefine(refineSetbackTiers);
1982
+ var PluginBuildableEnvelopeCreateResult = z48.object({
1983
+ buildableEnvelopeId: z48.string().min(1)
1984
+ }).strict();
1985
+ var PluginBuildableEnvelopeUpdateArgs = z48.object({
1986
+ buildableEnvelopeId: z48.string().min(1),
1987
+ sitePolygon: z48.array(PluginBuildableEnvelopePolygonVertex).min(3),
1988
+ lengthUnit: z48.union([z48.literal("ft"), z48.literal("m")]),
1989
+ setbacks: z48.array(PluginBuildableEnvelopeSetbackTier).min(1),
1990
+ verticalCap: PluginBuildableEnvelopeVerticalCap,
1991
+ floorToFloor: z48.number().finite().positive(),
1992
+ farRatio: z48.number().finite().positive().optional(),
1993
+ lotCoverageMaxPct: z48.number().finite().min(0).max(100).optional()
1994
+ }).strict().superRefine(refineSetbackTiers);
1995
+ var PluginBuildableEnvelopeUpdateResult = z48.object({
1996
+ buildableEnvelopeId: z48.string().min(1)
1997
+ }).strict();
1998
+
1999
+ // src/api/entity/referenceLine.ts
2000
+ import * as z49 from "zod";
2001
+ var PluginReferenceLineApi = class {
2002
+ constructor() {
2003
+ }
2004
+ };
2005
+ var PluginReferenceLineCreateMultiArgs = z49.object({
2006
+ profile: ProfileHandle
2007
+ });
2008
+ var PluginReferenceLineCreateMultiResult = z49.object({
2009
+ referenceLineIds: z49.array(z49.string())
2010
+ });
2011
+ var PluginReferenceLineGetProperty = z49.enum([
2012
+ "curve"
2013
+ ]);
2014
+ var PluginReferenceLineGetArgs = z49.object({
2015
+ referenceLineId: z49.string(),
2016
+ properties: z49.array(PluginReferenceLineGetProperty)
2017
+ });
2018
+ var PluginReferenceLineGetResult = z49.object({
2019
+ curve: CurveHandle
2020
+ }).partial();
2021
+ var PluginReferenceLineGetAllResult = z49.object({
2022
+ referenceLineIds: z49.array(z49.string())
2023
+ });
2024
+ var PluginReferenceLineDeleteArgs = z49.object({
2025
+ referenceLineId: z49.string()
2026
+ });
2027
+
2028
+ // src/api/entity/story.ts
2029
+ import * as z50 from "zod";
2030
+ var PluginStoryApi = class {
2031
+ constructor() {
2032
+ }
2033
+ };
2034
+ var PluginStoryGetProperty = z50.enum([
2035
+ "value",
2036
+ "id",
2037
+ "name",
2038
+ "height",
2039
+ "base",
2040
+ "hidden",
2041
+ "spacesCount",
2042
+ "totalArea"
2043
+ ]);
2044
+ var PluginStoryGetArgs = z50.object({
2045
+ storyValue: z50.number().int(),
2046
+ properties: z50.array(PluginStoryGetProperty)
2047
+ });
2048
+ var PluginStoryGetResult = z50.object({
2049
+ value: z50.number(),
2050
+ id: z50.string(),
2051
+ name: z50.string(),
2052
+ height: z50.number(),
2053
+ base: z50.number(),
2054
+ hidden: z50.boolean(),
2055
+ spacesCount: z50.number(),
2056
+ totalArea: z50.number()
2057
+ }).partial();
2058
+ var PluginStoryGetAllResult = z50.object({
2059
+ stories: z50.array(
2060
+ z50.object({
2061
+ value: z50.number(),
2062
+ id: z50.string(),
2063
+ name: z50.string()
2064
+ })
2065
+ )
2066
+ });
2067
+ var PluginStoryCreateArgs = z50.object({
2068
+ storyValue: z50.number().int(),
2069
+ height: z50.number().optional()
2070
+ });
2071
+ var PluginStoryCreateResult = z50.object({
2072
+ storyId: z50.string(),
2073
+ storyValue: z50.number()
2074
+ });
2075
+ var PluginStoryUpdateArgs = z50.object({
2076
+ storyValue: z50.number().int(),
2077
+ height: z50.number()
2078
+ });
2079
+ var PluginStoryUpdateResult = z50.object({
2080
+ storyValue: z50.number(),
2081
+ height: z50.number()
2082
+ });
2083
+
2084
+ // src/api/entity/index.ts
2085
+ var PluginEntityApi = class {
2086
+ constructor() {
2087
+ }
2088
+ };
2089
+
2090
+ // src/api/program/departments.ts
2091
+ import * as z52 from "zod";
2092
+
2093
+ // src/api/program/metrics.ts
2094
+ import * as z51 from "zod";
2095
+ var PluginProgramMetricsApi = class {
2096
+ constructor() {
2097
+ }
2098
+ };
2099
+ var PluginAreaUnit = z51.enum(["ft2", "m2"]);
2100
+ var PluginProgramDepartmentMetric = z51.object({
2101
+ departmentId: z51.string(),
2102
+ name: z51.string(),
2103
+ targetArea: z51.number().nullable(),
2104
+ allocatedArea: z51.number()
2105
+ });
2106
+ var PluginProgramMetricsSummary = z51.object({
2107
+ units: PluginAreaUnit,
2108
+ totalTargetArea: z51.number(),
2109
+ totalAllocatedArea: z51.number(),
2110
+ unassignedArea: z51.number(),
2111
+ departments: z51.array(PluginProgramDepartmentMetric)
2112
+ }).refine(
2113
+ (s) => {
2114
+ const summed = s.unassignedArea + s.departments.reduce((acc, d) => acc + d.allocatedArea, 0);
2115
+ const tolerance = Math.max(0.01, Math.abs(s.totalAllocatedArea) * 1e-4);
2116
+ return Math.abs(s.totalAllocatedArea - summed) <= tolerance;
2117
+ },
2118
+ {
2119
+ message: "totalAllocatedArea must equal unassignedArea + the sum of departments[].allocatedArea"
2120
+ }
2121
+ );
2122
+
2123
+ // src/api/program/departments.ts
2124
+ var PluginProgramDepartmentsApi = class {
2125
+ constructor() {
2126
+ }
2127
+ };
2128
+ var PluginProgramDepartment = z52.object({
2129
+ id: z52.string(),
2130
+ name: z52.string(),
2131
+ color: z52.string(),
2132
+ targetArea: z52.number().nullable()
2133
+ });
2134
+ var PluginProgramDepartmentsListResult = z52.object({
2135
+ units: PluginAreaUnit,
2136
+ departments: z52.array(PluginProgramDepartment)
2137
+ });
2138
+ var PluginProgramDepartmentsGetArgs = z52.object({
2139
+ departmentId: z52.string()
2140
+ });
2141
+ var PluginProgramDepartmentsGetResult = PluginProgramDepartment.extend(
2142
+ {
2143
+ units: PluginAreaUnit
2144
+ }
2145
+ ).nullable();
2146
+ var PluginProgramDepartmentRecord = PluginProgramDepartment.extend({
2147
+ units: PluginAreaUnit
2148
+ });
2149
+ var PluginProgramDepartmentsCreateArgs = z52.object({
2150
+ name: z52.string(),
2151
+ color: z52.string()
2152
+ });
2153
+ var PluginProgramDepartmentsCreateResult = z52.object({
2154
+ departmentId: z52.string()
2155
+ });
2156
+ var PluginProgramDepartmentsUpdateArgs = z52.object({
2157
+ departmentId: z52.string(),
2158
+ name: z52.string().optional(),
2159
+ color: z52.string().optional()
2160
+ });
2161
+ var PluginProgramDepartmentsUpdateResult = PluginProgramDepartmentRecord;
2162
+ var PluginProgramDepartmentsAssignArgs = z52.object({
2163
+ departmentId: z52.string(),
2164
+ spaceIds: z52.array(ComponentHandle).min(1)
2165
+ });
2166
+ var PluginProgramDepartmentsAssignResult = z52.object({
2167
+ departmentId: z52.string(),
2168
+ spaceIds: z52.array(ComponentHandle)
2169
+ });
2170
+ var PluginProgramDepartmentsUnassignArgs = z52.object({
2171
+ spaceIds: z52.array(ComponentHandle).min(1)
2172
+ });
2173
+ var PluginProgramDepartmentsUnassignResult = z52.object({
2174
+ spaceIds: z52.array(ComponentHandle)
2175
+ });
2176
+ var PluginProgramDepartmentsSetTargetAreaArgs = z52.object({
2177
+ departmentId: z52.string(),
2178
+ targetArea: z52.number(),
2179
+ units: PluginAreaUnit.optional()
2180
+ });
2181
+ var PluginProgramDepartmentsSetTargetAreaResult = PluginProgramDepartmentRecord;
2182
+ var PluginProgramDepartmentsDeleteArgs = z52.object({
2183
+ departmentId: z52.string()
2184
+ });
2185
+ var PluginProgramDepartmentsDeleteResult = z52.object({
2186
+ departmentId: z52.string(),
2187
+ reassignedSpaceIds: z52.array(ComponentHandle)
441
2188
  });
442
2189
 
443
- // src/api/core/math/index.ts
444
- var PluginMathApi = class {
2190
+ // src/api/program/adjacency.ts
2191
+ import * as z53 from "zod";
2192
+ var PluginProgramAdjacencyApi = class {
445
2193
  constructor() {
446
2194
  }
447
2195
  };
2196
+ var PluginAdjacencyLevel = z53.enum(["department", "space"]);
2197
+ var PluginProgramAdjacencyGetMatrixArgs = z53.object({
2198
+ level: PluginAdjacencyLevel,
2199
+ ids: z53.array(z53.string()).optional()
2200
+ });
2201
+ var PluginProgramAdjacencyGetMatrixResult = z53.object({
2202
+ ids: z53.array(z53.string()),
2203
+ departmentIds: z53.array(z53.string().nullable()).optional(),
2204
+ matrix: z53.array(z53.array(z53.number()))
2205
+ });
2206
+ var PluginProgramAdjacencyComputeResult = z53.object({
2207
+ success: z53.boolean(),
2208
+ error: z53.string().optional()
2209
+ });
448
2210
 
449
- // src/api/core/geom/line.ts
450
- import * as z3 from "zod";
451
- var PluginLineApi = class {
452
- constructor() {
453
- }
454
- /**
455
- * Create a new line segment between two points.
456
- *
457
- * @param startPoint - The start point as a {@linkcode PVec3}
458
- * @param endPoint - The end point as a {@linkcode PVec3}
459
- * @returns A new {@linkcode PLine}
460
- *
461
- * # Example
462
- * ```ts
463
- * const { vec3 } = snaptrude.core.math
464
- * const { line } = snaptrude.core.geom
465
- *
466
- * const edge = line.new(vec3.new(0, 0, 0), vec3.new(5, 0, 0))
467
- * ```
468
- */
469
- new(startPoint, endPoint) {
470
- return { curveType: "Line", startPoint, endPoint };
471
- }
472
- };
473
- var PLine = z3.object({
474
- curveType: z3.literal("Line"),
475
- startPoint: PVec3,
476
- endPoint: PVec3
477
- });
478
-
479
- // src/api/core/geom/arc.ts
480
- import * as z4 from "zod";
481
- var PluginArcApi = class {
482
- constructor() {
483
- }
484
- /**
485
- * Create a new arc from start, end, centre, and axis.
486
- *
487
- * The arc sweeps from {@linkcode startPoint} to {@linkcode endPoint}
488
- * along the circle centred at {@linkcode centrePoint}, in the
489
- * direction determined by the right-hand rule around {@linkcode axis}.
490
- *
491
- * @param startPoint - The start point as a {@linkcode PVec3}
492
- * @param endPoint - The end point as a {@linkcode PVec3}
493
- * @param centrePoint - The centre of the arc's circle as a {@linkcode PVec3}
494
- * @param axis - The arc's rotation axis as a {@linkcode PVec3}
495
- * (perpendicular to the arc's plane)
496
- * @returns A new {@linkcode PArc}
497
- *
498
- * # Example
499
- * ```ts
500
- * const { vec3 } = snaptrude.core.math
501
- * const { arc } = snaptrude.core.geom
502
- *
503
- * // Quarter-circle arc on the XZ plane
504
- * const a = arc.new(
505
- * vec3.new(1, 0, 0), // start
506
- * vec3.new(0, 0, 1), // end
507
- * vec3.new(0, 0, 0), // centre
508
- * vec3.new(0, 1, 0), // Y-up axis
509
- * )
510
- * ```
511
- */
512
- new(startPoint, endPoint, centrePoint, axis) {
513
- return { curveType: "Arc", startPoint, endPoint, centrePoint, axis };
514
- }
515
- };
516
- var PArc = z4.object({
517
- curveType: z4.literal("Arc"),
518
- startPoint: PVec3,
519
- endPoint: PVec3,
520
- centrePoint: PVec3,
521
- axis: PVec3
522
- });
523
-
524
- // src/api/core/geom/curve.ts
525
- import * as z5 from "zod";
526
- var PluginCurveApi = class {
2211
+ // src/api/program/layout.ts
2212
+ import * as z54 from "zod";
2213
+ var PluginProgramLayoutApi = class {
527
2214
  constructor() {
528
2215
  }
529
- /**
530
- * Wrap a {@linkcode PLine} or {@linkcode PArc} as a {@linkcode PCurve}.
531
- *
532
- * This is an identity operation — it simply returns the input unchanged.
533
- * It exists for type-level clarity when building mixed curve lists.
534
- *
535
- * @param curve - A {@linkcode PLine} or {@linkcode PArc} to wrap
536
- * @returns The same value typed as {@linkcode PCurve}
537
- */
538
- new(curve) {
539
- return curve;
540
- }
541
2216
  };
542
- var PCurve = z5.discriminatedUnion("curveType", [PLine, PArc]);
2217
+ var PluginProgramLayoutRunResult = z54.object({
2218
+ success: z54.boolean(),
2219
+ error: z54.string().optional()
2220
+ });
543
2221
 
544
- // src/api/core/geom/profile.ts
545
- import * as z6 from "zod";
546
- var PluginProfileApi = class {
2222
+ // src/api/program/spreadsheet.ts
2223
+ import * as z55 from "zod";
2224
+ var PluginProgramSpreadsheetApi = class {
2225
+ constructor() {
2226
+ }
2227
+ };
2228
+ var PluginProgramSpreadsheetTemplatesApi = class {
547
2229
  constructor() {
548
2230
  }
549
- /**
550
- * Create a profile from an ordered list of curves.
551
- *
552
- * The curves should form a closed loop — the end point of each curve
553
- * should coincide with the start point of the next.
554
- *
555
- * @param curves - An ordered array of {@linkcode PCurve}s forming a closed loop
556
- * @returns A new {@linkcode PProfile}
557
- */
558
- new(curves) {
559
- return { curves };
2231
+ };
2232
+ var PluginProgramSpreadsheetBindingsApi = class {
2233
+ constructor() {
560
2234
  }
561
2235
  };
562
- var PluginProfileFromLinePointsArgs = z6.object({
563
- points: z6.array(PVec3)
2236
+ var PluginSpreadsheetCell = z55.union([
2237
+ z55.string(),
2238
+ z55.number(),
2239
+ z55.boolean(),
2240
+ z55.null()
2241
+ ]);
2242
+ var PluginSpreadsheetAlign = z55.enum(["left", "center", "right"]);
2243
+ var PluginSpreadsheetColumn = z55.object({
2244
+ key: z55.string(),
2245
+ header: z55.string(),
2246
+ width: z55.number().optional(),
2247
+ format: z55.string().optional(),
2248
+ align: PluginSpreadsheetAlign.optional()
2249
+ });
2250
+ var PluginSpreadsheetTotal = z55.object({
2251
+ column: z55.string(),
2252
+ fn: z55.enum(["sum", "avg", "count", "min", "max"]),
2253
+ label: z55.string().optional()
2254
+ });
2255
+ var PluginProgramSpreadsheetRenderArgs = z55.object({
2256
+ sheetName: z55.string(),
2257
+ columns: z55.array(PluginSpreadsheetColumn),
2258
+ rows: z55.array(z55.record(z55.string(), PluginSpreadsheetCell)),
2259
+ title: z55.string().optional(),
2260
+ startCell: z55.string().optional(),
2261
+ whenExists: z55.enum(["replace", "error"]).optional(),
2262
+ asTable: z55.boolean().optional(),
2263
+ freezeHeader: z55.boolean().optional(),
2264
+ totals: z55.array(PluginSpreadsheetTotal).optional()
2265
+ });
2266
+ var PluginProgramSpreadsheetRenderResult = z55.object({
2267
+ sheetName: z55.string(),
2268
+ range: z55.string(),
2269
+ headerRange: z55.string(),
2270
+ rowCount: z55.number(),
2271
+ colCount: z55.number(),
2272
+ tableName: z55.string().nullable(),
2273
+ replaced: z55.boolean()
2274
+ });
2275
+ var PluginProgramSpreadsheetRenderDatasetArgs = z55.object({
2276
+ sheetName: z55.string().optional(),
2277
+ title: z55.string().optional(),
2278
+ filter: z55.string().optional()
2279
+ });
2280
+ var PluginSpreadsheetExportFormat = z55.enum(["xlsx", "pdf", "csv"]);
2281
+ var PluginProgramSpreadsheetExportArgs = z55.object({
2282
+ format: PluginSpreadsheetExportFormat,
2283
+ fileName: z55.string().optional()
2284
+ });
2285
+ var PluginProgramSpreadsheetExportResult = z55.object({
2286
+ format: PluginSpreadsheetExportFormat,
2287
+ fileName: z55.string(),
2288
+ mimeType: z55.string(),
2289
+ dataBase64: z55.string()
2290
+ });
2291
+ var PluginSpreadsheetSheetInfo = z55.object({
2292
+ name: z55.string(),
2293
+ index: z55.number(),
2294
+ visible: z55.boolean(),
2295
+ rowCount: z55.number(),
2296
+ colCount: z55.number()
2297
+ });
2298
+ var PluginProgramSpreadsheetListSheetsResult = z55.object({
2299
+ sheets: z55.array(PluginSpreadsheetSheetInfo),
2300
+ activeSheet: z55.string().nullable()
2301
+ });
2302
+ var PluginProgramSpreadsheetGetSheetDataArgs = z55.object({
2303
+ sheetName: z55.string(),
2304
+ range: z55.string().optional(),
2305
+ header: z55.boolean().optional()
2306
+ });
2307
+ var PluginProgramSpreadsheetGetSheetDataResult = z55.object({
2308
+ sheetName: z55.string(),
2309
+ range: z55.string(),
2310
+ values: z55.array(z55.array(PluginSpreadsheetCell)),
2311
+ records: z55.array(z55.record(z55.string(), PluginSpreadsheetCell)).optional()
2312
+ });
2313
+ var PluginSpreadsheetChartType = z55.enum([
2314
+ "column",
2315
+ "bar",
2316
+ "line",
2317
+ "pie",
2318
+ "area",
2319
+ "scatter"
2320
+ ]);
2321
+ var PluginProgramSpreadsheetAddChartArgs = z55.object({
2322
+ sheetName: z55.string(),
2323
+ chartType: PluginSpreadsheetChartType,
2324
+ dataRange: z55.string(),
2325
+ title: z55.string().optional(),
2326
+ position: z55.object({ x: z55.number(), y: z55.number() }).optional(),
2327
+ size: z55.object({ width: z55.number(), height: z55.number() }).optional()
2328
+ });
2329
+ var PluginProgramSpreadsheetAddChartResult = z55.object({
2330
+ chartId: z55.string()
2331
+ });
2332
+ var PluginProgramSpreadsheetHighlightCellsArgs = z55.object({
2333
+ sheetName: z55.string(),
2334
+ range: z55.string(),
2335
+ color: z55.string().optional(),
2336
+ bold: z55.boolean().optional()
2337
+ });
2338
+ var PluginProgramSpreadsheetHighlightCellsResult = z55.object({
2339
+ sheetName: z55.string(),
2340
+ range: z55.string()
2341
+ });
2342
+ var PluginSpreadsheetProgramRow = z55.object({
2343
+ departmentId: z55.string(),
2344
+ name: z55.string(),
2345
+ targetArea: z55.number().nullable(),
2346
+ allocatedArea: z55.number(),
2347
+ variance: z55.number().nullable()
2348
+ });
2349
+ var PluginProgramSpreadsheetGetProgramResult = z55.object({
2350
+ units: PluginAreaUnit,
2351
+ rows: z55.array(PluginSpreadsheetProgramRow),
2352
+ totalTargetArea: z55.number(),
2353
+ totalAllocatedArea: z55.number(),
2354
+ generatedAt: z55.string()
2355
+ });
2356
+ var PluginSpreadsheetTakeoffRow = z55.object({
2357
+ objectType: z55.string(),
2358
+ category: z55.string(),
2359
+ family: z55.string(),
2360
+ quantity: z55.number(),
2361
+ unit: z55.string()
2362
+ });
2363
+ var PluginProgramSpreadsheetGetTakeoffResult = z55.object({
2364
+ rows: z55.array(PluginSpreadsheetTakeoffRow),
2365
+ rowCount: z55.number(),
2366
+ generatedAt: z55.string()
2367
+ });
2368
+ var PluginSpreadsheetWhenExists = z55.enum(["reuse", "replace", "error"]);
2369
+ var PluginProgramSpreadsheetCreateSheetArgs = z55.object({
2370
+ name: z55.string(),
2371
+ whenExists: PluginSpreadsheetWhenExists.optional()
2372
+ });
2373
+ var PluginProgramSpreadsheetCreateSheetResult = z55.object({
2374
+ sheetName: z55.string(),
2375
+ replaced: z55.boolean(),
2376
+ sheetIndex: z55.number().nullable()
2377
+ });
2378
+ var PluginProgramSpreadsheetSetValuesArgs = z55.object({
2379
+ sheetName: z55.string(),
2380
+ values: z55.array(z55.array(PluginSpreadsheetCell)),
2381
+ startCell: z55.string().optional()
2382
+ });
2383
+ var PluginProgramSpreadsheetSetValuesResult = z55.object({
2384
+ sheetName: z55.string(),
2385
+ startCell: z55.string(),
2386
+ rowCount: z55.number(),
2387
+ colCount: z55.number()
2388
+ });
2389
+ var PluginSpreadsheetFormula = z55.object({
2390
+ cell: z55.string(),
2391
+ formula: z55.string()
2392
+ });
2393
+ var PluginProgramSpreadsheetSetFormulasArgs = z55.object({
2394
+ sheetName: z55.string(),
2395
+ formulas: z55.array(PluginSpreadsheetFormula)
2396
+ });
2397
+ var PluginProgramSpreadsheetSetFormulasResult = z55.object({
2398
+ sheetName: z55.string(),
2399
+ count: z55.number()
2400
+ });
2401
+ var PluginSpreadsheetFontWeight = z55.enum(["normal", "bold"]);
2402
+ var PluginSpreadsheetFontStyle = z55.enum(["normal", "italic"]);
2403
+ var PluginSpreadsheetHorizontalAlign = z55.enum([
2404
+ "left",
2405
+ "center",
2406
+ "right",
2407
+ "general"
2408
+ ]);
2409
+ var PluginSpreadsheetVerticalAlign = z55.enum([
2410
+ "top",
2411
+ "center",
2412
+ "bottom"
2413
+ ]);
2414
+ var PluginSpreadsheetCellStyle = z55.object({
2415
+ backColor: z55.string().optional(),
2416
+ foreColor: z55.string().optional(),
2417
+ font: z55.string().optional(),
2418
+ fontFamily: z55.string().optional(),
2419
+ fontSize: z55.number().optional(),
2420
+ fontWeight: PluginSpreadsheetFontWeight.optional(),
2421
+ fontStyle: PluginSpreadsheetFontStyle.optional(),
2422
+ formatter: z55.string().optional(),
2423
+ horizontalAlign: PluginSpreadsheetHorizontalAlign.optional(),
2424
+ verticalAlign: PluginSpreadsheetVerticalAlign.optional()
2425
+ });
2426
+ var PluginSpreadsheetRangeStyle = z55.object({
2427
+ range: z55.string(),
2428
+ style: PluginSpreadsheetCellStyle
2429
+ });
2430
+ var PluginProgramSpreadsheetSetStylesArgs = z55.object({
2431
+ sheetName: z55.string(),
2432
+ ranges: z55.array(PluginSpreadsheetRangeStyle)
2433
+ });
2434
+ var PluginProgramSpreadsheetSetStylesResult = z55.object({
2435
+ sheetName: z55.string(),
2436
+ count: z55.number()
2437
+ });
2438
+ var PluginProgramSpreadsheetMergeCellsArgs = z55.object({
2439
+ sheetName: z55.string(),
2440
+ range: z55.string(),
2441
+ value: PluginSpreadsheetCell.optional()
2442
+ });
2443
+ var PluginProgramSpreadsheetMergeCellsResult = z55.object({
2444
+ sheetName: z55.string(),
2445
+ range: z55.string()
2446
+ });
2447
+ var PluginSpreadsheetConditionalRuleType = z55.enum(["dataBar"]);
2448
+ var PluginSpreadsheetConditionalRule = z55.object({
2449
+ type: PluginSpreadsheetConditionalRuleType,
2450
+ color: z55.string().optional()
2451
+ });
2452
+ var PluginProgramSpreadsheetAddConditionalFormattingArgs = z55.object({
2453
+ sheetName: z55.string(),
2454
+ range: z55.string(),
2455
+ rule: PluginSpreadsheetConditionalRule
2456
+ });
2457
+ var PluginProgramSpreadsheetAddConditionalFormattingResult = z55.object({
2458
+ sheetName: z55.string(),
2459
+ range: z55.string(),
2460
+ created: z55.boolean()
2461
+ });
2462
+ var PluginProgramSpreadsheetRecalculateArgs = z55.object({
2463
+ sheetName: z55.string().optional()
2464
+ });
2465
+ var PluginProgramSpreadsheetRecalculateResult = z55.object({
2466
+ scope: z55.enum(["sheet", "workbook"]),
2467
+ sheetName: z55.string().nullable()
2468
+ });
2469
+ var PluginSpreadsheetTransactionMethod = z55.enum([
2470
+ "createSheet",
2471
+ "setValues",
2472
+ "setFormulas",
2473
+ "setStyles",
2474
+ "mergeCells"
2475
+ ]);
2476
+ var PluginSpreadsheetTransactionOp = z55.object({
2477
+ method: PluginSpreadsheetTransactionMethod,
2478
+ args: z55.unknown()
2479
+ });
2480
+ var PluginProgramSpreadsheetTransactionArgs = z55.object({
2481
+ operations: z55.array(PluginSpreadsheetTransactionOp),
2482
+ label: z55.string().optional()
2483
+ });
2484
+ var PluginProgramSpreadsheetTransactionResult = z55.object({
2485
+ label: z55.string(),
2486
+ operationCount: z55.number(),
2487
+ results: z55.array(z55.unknown())
2488
+ });
2489
+ var PluginProgramSpreadsheetRunScriptArgs = z55.object({
2490
+ script: z55.string()
2491
+ });
2492
+ var PluginProgramSpreadsheetRunScriptResult = z55.object({
2493
+ result: z55.unknown()
2494
+ });
2495
+ var PluginSpreadsheetAuditStatus = z55.enum(["success", "error"]);
2496
+ var PluginSpreadsheetAuditEntry = z55.object({
2497
+ id: z55.string(),
2498
+ pluginId: z55.string(),
2499
+ method: z55.string(),
2500
+ label: z55.string().optional(),
2501
+ sheetName: z55.string().optional(),
2502
+ timestamp: z55.string(),
2503
+ status: PluginSpreadsheetAuditStatus,
2504
+ summary: z55.string().optional()
564
2505
  });
565
- var PProfile = z6.object({
566
- curves: z6.array(PCurve)
2506
+ var PluginProgramSpreadsheetGetAuditLogArgs = z55.object({
2507
+ limit: z55.number().optional()
2508
+ });
2509
+ var PluginProgramSpreadsheetGetAuditLogResult = z55.object({
2510
+ entries: z55.array(PluginSpreadsheetAuditEntry)
2511
+ });
2512
+ var PluginProgramSpreadsheetPingResult = z55.object({
2513
+ pong: z55.boolean()
2514
+ });
2515
+ var PluginSpreadsheetTemplateScope = z55.enum(["project", "global"]);
2516
+ var PluginProgramSpreadsheetTemplatesCreateArgs = z55.object({
2517
+ name: z55.string(),
2518
+ sheetName: z55.string(),
2519
+ scope: PluginSpreadsheetTemplateScope.optional()
2520
+ });
2521
+ var PluginProgramSpreadsheetTemplatesCreateResult = z55.object({
2522
+ id: z55.string(),
2523
+ name: z55.string(),
2524
+ scope: PluginSpreadsheetTemplateScope,
2525
+ sheetName: z55.string()
2526
+ });
2527
+ var PluginProgramSpreadsheetTemplatesApplyArgs = z55.object({
2528
+ name: z55.string(),
2529
+ targetSheetName: z55.string()
2530
+ });
2531
+ var PluginProgramSpreadsheetTemplatesApplyResult = z55.object({
2532
+ name: z55.string(),
2533
+ targetSheetName: z55.string()
2534
+ });
2535
+ var PluginSpreadsheetBindingSource = z55.object({
2536
+ dataset: z55.enum(["takeoff"])
2537
+ });
2538
+ var PluginSpreadsheetBindingMode = z55.enum(["replaceRange"]);
2539
+ var PluginSpreadsheetBindingTarget = z55.object({
2540
+ sheetName: z55.string(),
2541
+ startCell: z55.string().optional()
2542
+ });
2543
+ var PluginSpreadsheetBinding = z55.object({
2544
+ id: z55.string(),
2545
+ name: z55.string(),
2546
+ pluginId: z55.string(),
2547
+ source: PluginSpreadsheetBindingSource,
2548
+ target: z55.object({
2549
+ sheetName: z55.string(),
2550
+ startCell: z55.string()
2551
+ }),
2552
+ mode: PluginSpreadsheetBindingMode,
2553
+ createdAt: z55.string(),
2554
+ updatedAt: z55.string()
2555
+ });
2556
+ var PluginSpreadsheetBindingRefresh = z55.object({
2557
+ id: z55.string(),
2558
+ name: z55.string(),
2559
+ sheetName: z55.string(),
2560
+ rowCount: z55.number()
2561
+ });
2562
+ var PluginProgramSpreadsheetBindingsCreateArgs = z55.object({
2563
+ name: z55.string(),
2564
+ source: PluginSpreadsheetBindingSource,
2565
+ target: PluginSpreadsheetBindingTarget,
2566
+ mode: PluginSpreadsheetBindingMode.optional()
2567
+ });
2568
+ var PluginProgramSpreadsheetBindingsCreateResult = PluginSpreadsheetBinding.extend({
2569
+ refresh: PluginSpreadsheetBindingRefresh
2570
+ });
2571
+ var PluginProgramSpreadsheetBindingsRefreshArgs = z55.object({
2572
+ name: z55.string().optional()
2573
+ });
2574
+ var PluginProgramSpreadsheetBindingsRefreshResult = z55.object({
2575
+ refreshed: z55.array(PluginSpreadsheetBindingRefresh)
2576
+ });
2577
+ var PluginProgramSpreadsheetBindingsListResult = z55.object({
2578
+ bindings: z55.array(PluginSpreadsheetBinding)
567
2579
  });
568
2580
 
569
- // src/api/core/geom/index.ts
570
- var PluginGeomApi = class {
2581
+ // src/api/program/site.ts
2582
+ import * as z56 from "zod";
2583
+ var PluginProgramSiteApi = class {
571
2584
  constructor() {
572
2585
  }
573
2586
  };
2587
+ var PluginSiteFootprintPoint = z56.object({
2588
+ x: z56.number(),
2589
+ z: z56.number()
2590
+ });
2591
+ var PluginSiteGeoPoint = z56.object({
2592
+ lat: z56.number(),
2593
+ lng: z56.number(),
2594
+ alt: z56.number()
2595
+ });
2596
+ var PluginSitePolygon = z56.object({
2597
+ id: z56.string(),
2598
+ area: z56.number(),
2599
+ label: z56.string(),
2600
+ footprint: z56.array(PluginSiteFootprintPoint)
2601
+ });
2602
+ var PluginProgramSiteSnapshot = z56.object({
2603
+ units: PluginAreaUnit,
2604
+ totalArea: z56.number(),
2605
+ polygonCount: z56.number(),
2606
+ polygons: z56.array(PluginSitePolygon)
2607
+ });
2608
+ var PluginProgramSiteAreaResult = z56.object({
2609
+ units: PluginAreaUnit,
2610
+ area: z56.number()
2611
+ });
2612
+ var PluginProgramSiteListPolygonsResult = z56.object({
2613
+ units: PluginAreaUnit,
2614
+ polygons: z56.array(PluginSitePolygon)
2615
+ });
2616
+ var PluginProgramSiteListGeoPolygonsResult = z56.object({
2617
+ polygons: z56.array(z56.array(PluginSiteGeoPoint))
2618
+ });
2619
+ var PluginSiteLatLng = z56.object({
2620
+ lat: z56.number(),
2621
+ lng: z56.number()
2622
+ });
2623
+ var PluginSiteBounds = z56.object({
2624
+ north: z56.number(),
2625
+ south: z56.number(),
2626
+ east: z56.number(),
2627
+ west: z56.number()
2628
+ });
2629
+ var PluginSiteContextParcel = z56.object({
2630
+ footprint: z56.array(PluginSiteLatLng),
2631
+ area: z56.number()
2632
+ });
2633
+ var PluginProgramSiteContext = z56.object({
2634
+ center: PluginSiteLatLng,
2635
+ bounds: PluginSiteBounds,
2636
+ widthInM: z56.number(),
2637
+ heightInM: z56.number(),
2638
+ zoom: z56.number(),
2639
+ parcels: z56.array(PluginSiteContextParcel)
2640
+ });
2641
+ var PluginProgramSiteContextResult = PluginProgramSiteContext.nullable();
2642
+ var PluginProgramSiteLocation = z56.object({
2643
+ latitude: z56.number(),
2644
+ longitude: z56.number()
2645
+ });
2646
+ var PluginProgramSiteLocationResult = PluginProgramSiteLocation.nullable();
2647
+ var PluginProgramSiteNorthAngleResult = z56.number().nullable();
574
2648
 
575
- // src/api/core/index.ts
576
- var PluginCoreApi = class {
2649
+ // src/api/program/cores.ts
2650
+ import * as z57 from "zod";
2651
+ var PluginProgramCoresApi = class {
577
2652
  constructor() {
578
2653
  }
579
2654
  };
2655
+ var PluginProgramCore = z57.object({
2656
+ id: z57.string(),
2657
+ groupId: z57.string(),
2658
+ storey: z57.number()
2659
+ });
2660
+ var PluginProgramCoresListResult = z57.object({
2661
+ cores: z57.array(PluginProgramCore)
2662
+ });
2663
+ var PluginProgramCoresIsCoreArgs = z57.object({
2664
+ id: z57.string()
2665
+ });
2666
+ var PluginProgramCoreSpec = z57.object({
2667
+ type: z57.string().optional(),
2668
+ position: z57.object({ x: z57.number(), y: z57.number(), z: z57.number() }),
2669
+ width: z57.number(),
2670
+ depth: z57.number(),
2671
+ fromStorey: z57.number().optional(),
2672
+ toStorey: z57.number().optional()
2673
+ });
2674
+ var PluginProgramCoresCreateArgs = z57.object({
2675
+ cores: z57.array(PluginProgramCoreSpec),
2676
+ lengthUnit: z57.enum(["mm", "m", "ft"]).optional()
2677
+ });
2678
+ var PluginProgramCoresCreateResult = z57.object({
2679
+ createdCount: z57.number()
2680
+ });
580
2681
 
581
- // src/api/entity/department.ts
582
- import * as z7 from "zod";
583
- var PluginDepartmentApi = class {
2682
+ // src/api/program/classification.ts
2683
+ import * as z58 from "zod";
2684
+ var PluginProgramClassificationApi = class {
584
2685
  constructor() {
585
2686
  }
586
2687
  };
587
- var PluginDepartmentCreateArgs = z7.object({
588
- name: z7.string(),
589
- color: z7.string()
2688
+ var PluginClassificationOption = z58.object({
2689
+ value: z58.string(),
2690
+ label: z58.string()
590
2691
  });
591
- var PluginDepartmentCreateResult = z7.object({
592
- departmentId: z7.string()
2692
+ var PluginProgramClassificationTypesResult = z58.object({
2693
+ spaceTypes: z58.array(PluginClassificationOption),
2694
+ areaClasses: z58.array(PluginClassificationOption),
2695
+ massTypes: z58.array(PluginClassificationOption)
593
2696
  });
594
- var PluginDepartmentEntry = z7.object({
595
- id: z7.string(),
596
- name: z7.string(),
597
- color: z7.string()
2697
+ var PluginProgramClassificationListTagsArgs = z58.object({
2698
+ id: z58.string()
598
2699
  });
599
- var PluginDepartmentGetAllResult = z7.object({
600
- departments: z7.array(PluginDepartmentEntry)
2700
+ var PluginSpaceTag = z58.object({
2701
+ tagId: z58.string(),
2702
+ tagName: z58.string(),
2703
+ color: z58.string(),
2704
+ categoryId: z58.string()
2705
+ });
2706
+ var PluginProgramClassificationTagsResult = z58.object({
2707
+ tagIds: z58.array(z58.string()),
2708
+ tagsByCategory: z58.record(z58.string(), PluginSpaceTag)
601
2709
  });
602
2710
 
603
- // src/api/entity/referenceLine.ts
604
- import * as z8 from "zod";
605
- var PluginReferenceLineApi = class {
2711
+ // src/api/program/areas.ts
2712
+ import * as z59 from "zod";
2713
+ var PluginProgramAreasApi = class {
606
2714
  constructor() {
607
2715
  }
608
2716
  };
609
- var PluginReferenceLineCreateMultiArgs = z8.object({
610
- profile: PProfile
2717
+ var PluginProgramAreaSummary = z59.object({
2718
+ count: z59.number().int(),
2719
+ hiddenCount: z59.number().int(),
2720
+ carpet: z59.number(),
2721
+ builtUp: z59.number(),
2722
+ excluded: z59.number(),
2723
+ farBuiltUp: z59.number(),
2724
+ siteArea: z59.number(),
2725
+ achievedFar: z59.number().nullable(),
2726
+ targetFar: z59.number(),
2727
+ deviation: z59.number(),
2728
+ areaUnit: PluginAreaUnit
611
2729
  });
612
- var PluginReferenceLineCreateMultiResult = z8.object({
613
- referenceLineIds: z8.array(z8.string())
2730
+ var PluginProgramAreaGroup = z59.object({
2731
+ groupId: z59.string(),
2732
+ name: z59.string(),
2733
+ color: z59.string(),
2734
+ carpet: z59.number(),
2735
+ builtUp: z59.number(),
2736
+ excluded: z59.number(),
2737
+ count: z59.number().int(),
2738
+ targetArea: z59.number(),
2739
+ targetUnit: PluginAreaUnit
614
2740
  });
615
- var PluginReferenceLineGetProperty = z8.enum([
616
- "curve"
2741
+ var PluginProgramAreaMember = z59.object({
2742
+ id: ComponentHandle,
2743
+ label: z59.string(),
2744
+ carpet: z59.number(),
2745
+ builtUp: z59.number(),
2746
+ excluded: z59.number(),
2747
+ isVisible: z59.boolean()
2748
+ });
2749
+ var PluginProgramAreaGroupBy = z59.enum([
2750
+ "labels",
2751
+ "storeys",
2752
+ "buildings",
2753
+ "departments",
2754
+ "tagCategories"
617
2755
  ]);
618
- var PluginReferenceLineGetArgs = z8.object({
619
- referenceLineId: z8.string(),
620
- properties: z8.array(PluginReferenceLineGetProperty)
2756
+ var PluginProgramAreasGetResult = PluginProgramAreaSummary;
2757
+ var PluginProgramAreasListArgs = z59.object({
2758
+ groupBy: PluginProgramAreaGroupBy,
2759
+ categoryId: z59.string().optional()
2760
+ }).refine((v) => v.groupBy !== "tagCategories" || v.categoryId != null, {
2761
+ message: 'categoryId is required when groupBy is "tagCategories"'
621
2762
  });
622
- var PluginReferenceLineGetResult = z8.object({
623
- curve: PCurve
624
- }).partial();
625
- var PluginReferenceLineGetAllResult = z8.object({
626
- referenceLineIds: z8.array(z8.string())
2763
+ var PluginProgramAreasListResult = z59.object({
2764
+ groups: z59.array(PluginProgramAreaGroup)
2765
+ });
2766
+ var PluginProgramAreasListMembersArgs = z59.object({
2767
+ groupBy: PluginProgramAreaGroupBy,
2768
+ groupId: z59.string(),
2769
+ categoryId: z59.string().optional()
2770
+ }).refine((v) => v.groupBy !== "tagCategories" || v.categoryId != null, {
2771
+ message: 'categoryId is required when groupBy is "tagCategories"'
627
2772
  });
628
- var PluginReferenceLineDeleteArgs = z8.object({
629
- referenceLineId: z8.string()
2773
+ var PluginProgramAreasListMembersResult = z59.object({
2774
+ members: z59.array(PluginProgramAreaMember)
630
2775
  });
2776
+ var PluginProgramAreasUpdateArgs = z59.object({
2777
+ targetFar: z59.number().min(0).optional(),
2778
+ siteArea: z59.number().positive().optional(),
2779
+ deviation: z59.number().min(0).max(100).optional()
2780
+ });
2781
+ var PluginProgramAreasUpdateResult = PluginProgramAreaSummary;
631
2782
 
632
- // src/api/entity/space.ts
633
- import * as z9 from "zod";
634
- var PluginSpaceApi = class {
2783
+ // src/api/program/index.ts
2784
+ var PluginProgramApi = class {
635
2785
  constructor() {
636
2786
  }
637
2787
  };
638
- var PluginSpaceCreateRectangularArgs = z9.object({
639
- position: PVec3,
640
- dimensions: z9.object({
641
- width: z9.number(),
642
- height: z9.number(),
643
- depth: z9.number()
644
- })
645
- });
646
- var PluginSpaceCreateRectangularResult = z9.object({
647
- spaceId: z9.string()
2788
+
2789
+ // src/api/presentation/views.ts
2790
+ import * as z60 from "zod";
2791
+ var PluginPresentationViewsApi = class {
2792
+ constructor() {
2793
+ }
2794
+ };
2795
+ var PluginPresentationViewType = z60.enum(["2d", "3d"]);
2796
+ var PluginPresentationView = z60.object({
2797
+ id: z60.string(),
2798
+ name: z60.string(),
2799
+ type: PluginPresentationViewType,
2800
+ isActive: z60.boolean()
648
2801
  });
649
- var PluginSpaceCreateFromProfileArgs = z9.object({
650
- profile: PProfile,
651
- extrudeHeight: z9.number(),
652
- position: PVec3
2802
+ var PluginPresentationViewsListResult = z60.object({
2803
+ views: z60.array(PluginPresentationView)
653
2804
  });
654
- var PluginSpaceCreateFromProfileResult = z9.object({
655
- spaceId: z9.string()
2805
+ var PluginPresentationViewsGetArgs = z60.object({
2806
+ id: z60.string()
656
2807
  });
657
- var PluginSpaceGetProperty = z9.enum([
658
- // Basic
659
- "id",
660
- "type",
661
- "room_type",
662
- "name",
663
- // Derived from parametric data
664
- "area",
665
- "breadth",
666
- "depth",
667
- "height",
668
- "massType",
669
- "spaceType",
670
- "storey",
671
- "departmentId",
672
- "departmentName",
673
- "departmentColor",
674
- // Derived from mesh
675
- "position",
676
- "absolutePosition",
677
- "rotation",
678
- "rotationQuaternion",
679
- // Derived from brep
680
- "planPoints"
681
- ]);
682
- var PluginSpaceGetArgs = z9.object({
683
- spaceId: z9.string(),
684
- properties: z9.array(PluginSpaceGetProperty)
2808
+ var PluginPresentationViewsGetResult = PluginPresentationView.nullable();
2809
+ var PluginPresentationImageFormat = z60.enum(["png", "jpeg"]);
2810
+ var PluginPresentationViewsCaptureArgs = z60.object({
2811
+ viewId: z60.string().optional(),
2812
+ format: PluginPresentationImageFormat.optional(),
2813
+ resolution: z60.string().optional()
685
2814
  });
686
- var PluginSpaceType = z9.enum([
687
- "Room",
688
- "Program Block",
689
- "Balcony",
690
- "Road",
691
- "Garden",
692
- "Deck",
693
- "Pool",
694
- "Walkway",
695
- "Envelope",
696
- "Parking"
697
- ]);
698
- var PluginSpaceGetResult = z9.object({
699
- // Basic
700
- id: z9.string(),
701
- type: z9.string(),
702
- room_type: z9.string(),
703
- name: z9.string(),
704
- // Derived from parametric data
705
- area: z9.number(),
706
- breadth: z9.number(),
707
- depth: z9.number(),
708
- height: z9.number(),
709
- massType: z9.string().nullable(),
710
- spaceType: PluginSpaceType.nullable(),
711
- storey: z9.number().nullable(),
712
- departmentId: z9.string().nullable(),
713
- departmentName: z9.string(),
714
- departmentColor: z9.string(),
715
- // Derived from mesh
716
- position: PVec3,
717
- absolutePosition: PVec3,
718
- rotation: PVec3,
719
- rotationQuaternion: PQuat.nullable(),
720
- // Derived from brep
721
- planPoints: z9.array(PVec3)
722
- }).partial();
723
- var PluginSpaceGetAllResult = z9.object({
724
- spacesIds: z9.array(z9.string())
2815
+ var PluginPresentationViewsCaptureResult = z60.object({
2816
+ image: z60.string()
725
2817
  });
726
- var PluginSpaceDeleteArgs = z9.object({
727
- spaceId: z9.string()
2818
+ var PluginPresentationViewsSetActiveArgs = z60.object({
2819
+ id: z60.string()
728
2820
  });
729
- var PluginMassType = z9.enum([
730
- "Plinth",
731
- "Void",
732
- "Pergola",
733
- "Furniture",
734
- "Facade element",
735
- "Generic mass",
736
- "Room",
737
- "Department",
738
- "Building",
739
- "Revit Import",
740
- "Mass",
741
- "Site"
742
- ]);
743
- var PluginWellKnownDepartmentId = z9.enum([
744
- "DEFAULT",
745
- "SITE",
746
- "ENVELOPE",
747
- "CORE"
748
- ]);
749
- var PluginDepartmentId = z9.union([
750
- PluginWellKnownDepartmentId,
751
- z9.uuid()
752
- ]);
753
- var PluginSpaceUpdateArgs = z9.object({
754
- spaceId: z9.string(),
755
- properties: z9.object({
756
- room_type: z9.string().optional(),
757
- massType: PluginMassType.optional(),
758
- spaceType: PluginSpaceType.optional(),
759
- departmentId: PluginDepartmentId.optional()
760
- })
2821
+ var PluginPresentationViewsSetActiveResult = z60.object({
2822
+ id: z60.string()
761
2823
  });
762
- var PluginSpaceUpdateResult = z9.object({
763
- spaceId: z9.string(),
764
- room_type: z9.string().optional(),
765
- massType: z9.string().optional(),
766
- spaceType: z9.string().optional(),
767
- departmentId: z9.string().nullable().optional()
2824
+ var PluginPresentationViewsCreateArgs = z60.object({
2825
+ name: z60.string().optional(),
2826
+ kind: z60.enum(["view", "sitePlan"]).optional()
768
2827
  });
2828
+ var PluginPresentationViewsCreateResult = PluginPresentationView;
769
2829
 
770
- // src/api/entity/story.ts
771
- import * as z10 from "zod";
772
- var PluginStoryApi = class {
2830
+ // src/api/presentation/sheets.ts
2831
+ import * as z61 from "zod";
2832
+ var PluginPresentationSheetsApi = class {
773
2833
  constructor() {
774
2834
  }
775
2835
  };
776
- var PluginStoryGetProperty = z10.enum([
777
- "value",
778
- "id",
779
- "name",
780
- "height",
781
- "base",
782
- "hidden",
783
- "spacesCount",
784
- "totalArea"
785
- ]);
786
- var PluginStoryGetArgs = z10.object({
787
- storyValue: z10.number().int(),
788
- properties: z10.array(PluginStoryGetProperty)
789
- });
790
- var PluginStoryGetResult = z10.object({
791
- value: z10.number(),
792
- id: z10.string(),
793
- name: z10.string(),
794
- height: z10.number(),
795
- base: z10.number(),
796
- hidden: z10.boolean(),
797
- spacesCount: z10.number(),
798
- totalArea: z10.number()
799
- }).partial();
800
- var PluginStoryGetAllResult = z10.object({
801
- stories: z10.array(
802
- z10.object({
803
- value: z10.number(),
804
- id: z10.string(),
805
- name: z10.string()
806
- })
807
- )
2836
+ var PluginPresentationSheet = z61.object({
2837
+ id: z61.string(),
2838
+ name: z61.string()
2839
+ });
2840
+ var PluginSheetPosition = z61.object({
2841
+ x: z61.number(),
2842
+ y: z61.number()
2843
+ });
2844
+ var PluginPresentationSheetsListResult = z61.object({
2845
+ sheets: z61.array(PluginPresentationSheet)
808
2846
  });
809
- var PluginStoryCreateArgs = z10.object({
810
- storyValue: z10.number().int(),
811
- height: z10.number().optional()
2847
+ var PluginPresentationSheetsGetArgs = z61.object({
2848
+ id: z61.string()
812
2849
  });
813
- var PluginStoryCreateResult = z10.object({
814
- storyId: z10.string(),
815
- storyValue: z10.number()
2850
+ var PluginPresentationSheetsGetResult = PluginPresentationSheet.nullable();
2851
+ var PluginPresentationSheetsCreateArgs = z61.object({
2852
+ name: z61.string().optional()
816
2853
  });
817
- var PluginStoryUpdateArgs = z10.object({
818
- storyValue: z10.number().int(),
819
- height: z10.number()
2854
+ var PluginPresentationSheetsPlaceArgs = z61.object({
2855
+ sheetId: z61.string(),
2856
+ viewId: z61.string(),
2857
+ position: PluginSheetPosition.optional()
820
2858
  });
821
- var PluginStoryUpdateResult = z10.object({
822
- storyValue: z10.number(),
823
- height: z10.number()
2859
+ var PluginPresentationSheetsPlaceResult = z61.object({
2860
+ shapeId: z61.string()
824
2861
  });
825
2862
 
826
- // src/api/entity/index.ts
827
- var PluginEntityApi = class {
2863
+ // src/api/presentation/diagrams.ts
2864
+ import * as z62 from "zod";
2865
+ var PluginPresentationDiagramsApi = class {
828
2866
  constructor() {
829
2867
  }
830
2868
  };
2869
+ var PluginPresentationDiagramsPlaceArgs = z62.object({
2870
+ sheetId: z62.string(),
2871
+ urls: z62.array(z62.string()),
2872
+ position: z62.object({ x: z62.number(), y: z62.number() }).optional()
2873
+ });
2874
+ var PluginPresentationDiagramsPlaceResult = z62.object({
2875
+ shapeIds: z62.array(z62.string())
2876
+ });
831
2877
 
832
- // src/api/tools/copy.ts
833
- import * as z11 from "zod";
834
- var PluginCopyMode = z11.enum(["instance", "unique"]);
835
- var PluginCopyArgs = z11.object({
836
- componentIds: z11.array(z11.string()).min(1),
837
- displacement: PVec3,
838
- count: z11.number().int().positive().optional(),
839
- copyMode: PluginCopyMode.optional()
2878
+ // src/api/presentation/import.ts
2879
+ import * as z63 from "zod";
2880
+ var PluginPresentationImportApi = class {
2881
+ constructor() {
2882
+ }
2883
+ };
2884
+ var PluginPresentationImportArgs = z63.object({
2885
+ url: z63.string().optional(),
2886
+ dataUrl: z63.string().optional(),
2887
+ position: z63.object({ x: z63.number(), y: z63.number() }).optional()
2888
+ }).refine((a) => Boolean(a.url) || Boolean(a.dataUrl), {
2889
+ message: "Provide a url or a dataUrl"
840
2890
  });
841
- var PluginCopyResult = z11.object({
842
- copiedIds: z11.array(z11.string())
2891
+ var PluginPresentationImportResult = z63.object({
2892
+ shapeIds: z63.array(z63.string())
843
2893
  });
844
2894
 
845
- // src/api/tools/offset.ts
846
- import * as z12 from "zod";
847
- var PluginOffsetArgs = z12.object({
848
- componentId: z12.string().min(1),
849
- distance: z12.number(),
850
- profilePickPoint: PVec3.optional()
2895
+ // src/api/presentation/aiInspiration.ts
2896
+ import * as z64 from "zod";
2897
+ var JsonPrimitive = z64.union([z64.string(), z64.number(), z64.boolean(), z64.null()]);
2898
+ var JsonValue = z64.lazy(
2899
+ () => z64.union([JsonPrimitive, z64.array(JsonValue), z64.record(z64.string(), JsonValue)])
2900
+ );
2901
+ var PluginAIInspirationOutputKind = z64.enum([
2902
+ "source",
2903
+ "image",
2904
+ "video"
2905
+ ]);
2906
+ var PluginAIInspirationModelOutput = z64.enum(["image", "video"]);
2907
+ var PluginAIInspirationShapeKind = z64.enum(["image", "view", "video"]);
2908
+ var PluginAIInspirationVideoMode = z64.enum([
2909
+ "animate",
2910
+ "references",
2911
+ "keyframes"
2912
+ ]);
2913
+ var PluginAIInspirationVideoMotion = z64.enum([
2914
+ "auto",
2915
+ "slow-dolly",
2916
+ "subtle-orbit",
2917
+ "reveal"
2918
+ ]);
2919
+ var PluginAIInspirationVideoDuration = z64.enum(["4s", "6s", "8s"]);
2920
+ var PluginAIInspirationRegionHint = z64.object({
2921
+ x: z64.number().finite(),
2922
+ y: z64.number().finite(),
2923
+ w: z64.number().finite().positive(),
2924
+ h: z64.number().finite().positive()
2925
+ });
2926
+ var PluginAIInspirationPoint = z64.object({
2927
+ x: z64.number().finite(),
2928
+ y: z64.number().finite()
2929
+ });
2930
+ var PluginAIInspirationTextAnnotation = z64.object({
2931
+ text: z64.string().min(1),
2932
+ x: z64.number().finite().optional(),
2933
+ y: z64.number().finite().optional()
2934
+ });
2935
+ var PluginAIInspirationSketchGuidance = z64.object({
2936
+ visualShapeIds: z64.array(z64.string()).optional(),
2937
+ textAnnotations: z64.array(PluginAIInspirationTextAnnotation).optional()
2938
+ });
2939
+ var PluginAIInspirationSiteOptions = z64.object({
2940
+ includeSatellite: z64.boolean().optional(),
2941
+ includeStreetView: z64.boolean().optional(),
2942
+ includeAerial: z64.boolean().optional(),
2943
+ aerialBearing: z64.number().finite().optional(),
2944
+ aerialPitch: z64.number().finite().optional(),
2945
+ selectedDiagramIds: z64.array(z64.string()).optional(),
2946
+ location: z64.object({
2947
+ lat: z64.number().finite(),
2948
+ lng: z64.number().finite()
2949
+ }).optional()
2950
+ });
2951
+ var PluginAIInspirationAppliedPreset = z64.object({
2952
+ source: z64.enum(["curated", "user"]),
2953
+ presetId: z64.string().min(1),
2954
+ name: z64.string().min(1),
2955
+ savedPresetKind: z64.enum(["prompt", "style"]).optional(),
2956
+ stylePrompt: z64.string().optional(),
2957
+ modelId: z64.string().optional(),
2958
+ referenceImages: z64.array(
2959
+ z64.object({
2960
+ url: z64.string().min(1),
2961
+ label: z64.string().optional(),
2962
+ weight: z64.number().finite().optional()
2963
+ })
2964
+ ).optional(),
2965
+ siteDefaults: z64.object({
2966
+ includeSatellite: z64.boolean().optional(),
2967
+ includeStreetView: z64.boolean().optional(),
2968
+ includeAerial: z64.boolean().optional()
2969
+ }).optional()
2970
+ });
2971
+ var PluginAIInspirationVideoOptions = z64.object({
2972
+ mode: PluginAIInspirationVideoMode.optional(),
2973
+ endFrameShapeId: z64.string().optional(),
2974
+ motion: PluginAIInspirationVideoMotion.optional(),
2975
+ duration: PluginAIInspirationVideoDuration.optional()
2976
+ });
2977
+ var PluginAIInspirationModel = z64.object({
2978
+ id: z64.string(),
2979
+ label: z64.string(),
2980
+ supportsMultiImage: z64.boolean(),
2981
+ output: PluginAIInspirationModelOutput,
2982
+ isDefault: z64.boolean().optional()
2983
+ });
2984
+ var PluginAIInspirationListModelsResult = z64.object({
2985
+ defaultModelId: z64.string(),
2986
+ models: z64.array(PluginAIInspirationModel)
2987
+ });
2988
+ var PluginAIInspirationShapeRef = z64.object({
2989
+ shapeId: z64.string(),
2990
+ assetId: z64.string().optional(),
2991
+ kind: PluginAIInspirationShapeKind,
2992
+ name: z64.string().optional(),
2993
+ width: z64.number().finite().optional(),
2994
+ height: z64.number().finite().optional(),
2995
+ outputType: PluginAIInspirationOutputKind.optional(),
2996
+ sourceUrl: z64.string().optional()
2997
+ });
2998
+ var PluginAIInspirationListSourcesArgs = z64.object({
2999
+ includeGenerated: z64.boolean().optional(),
3000
+ includeSourceUrl: z64.boolean().optional()
3001
+ });
3002
+ var PluginAIInspirationListSourcesResult = z64.object({
3003
+ sources: z64.array(PluginAIInspirationShapeRef)
851
3004
  });
852
- var PluginOffsetResult = z12.object({
853
- createdIds: z12.array(z12.string()),
854
- deletedIds: z12.array(z12.string())
3005
+ var PluginAIInspirationOutput = z64.object({
3006
+ outputType: z64.enum(["image", "video"]),
3007
+ shapeId: z64.string(),
3008
+ assetId: z64.string(),
3009
+ outputUrl: z64.string().optional(),
3010
+ position: PluginAIInspirationPoint.optional()
855
3011
  });
3012
+ var PluginAIInspirationDebugSummary = z64.record(z64.string(), JsonValue);
3013
+ var PluginAIInspirationRunMetadata = z64.object({
3014
+ geometryFidelity: z64.string().optional(),
3015
+ debugSummary: PluginAIInspirationDebugSummary.optional(),
3016
+ streetViewComposite: z64.object({
3017
+ used: z64.boolean(),
3018
+ renderMode: z64.enum(["prompt_refs_default", "masked_composite_pilot"]),
3019
+ backgroundLabel: z64.string().optional()
3020
+ }).optional()
3021
+ });
3022
+ var PluginAIInspirationGenerateArgs = z64.object({
3023
+ sourceShapeId: z64.string().min(1),
3024
+ prompt: z64.string().min(1).max(8e3),
3025
+ modelId: z64.string().optional(),
3026
+ referenceShapeIds: z64.array(z64.string()).max(12).optional(),
3027
+ referenceStrength: z64.enum(["low", "medium", "high"]).optional(),
3028
+ appliedPreset: PluginAIInspirationAppliedPreset.optional(),
3029
+ site: PluginAIInspirationSiteOptions.optional(),
3030
+ regionHint: PluginAIInspirationRegionHint.optional(),
3031
+ sketchGuidance: PluginAIInspirationSketchGuidance.optional(),
3032
+ video: PluginAIInspirationVideoOptions.optional()
3033
+ });
3034
+ var PluginAIInspirationRunResult = z64.object({
3035
+ outputs: z64.array(PluginAIInspirationOutput).min(1),
3036
+ metadata: PluginAIInspirationRunMetadata.optional()
3037
+ });
3038
+ var PluginAIInspirationRefineArgs = z64.object({
3039
+ sourceShapeId: z64.string().min(1),
3040
+ upscaleFactor: z64.union([z64.literal(1.5), z64.literal(2), z64.literal(4)]).optional()
3041
+ });
3042
+ var PluginPresentationAIInspirationApi = class {
3043
+ constructor() {
3044
+ }
3045
+ };
856
3046
 
857
- // src/api/tools/selection.ts
858
- import * as z13 from "zod";
859
- var PluginSelectionApi = class {
3047
+ // src/api/presentation/index.ts
3048
+ var PluginPresentationApi = class {
860
3049
  constructor() {
861
3050
  }
862
3051
  };
863
- var PluginSelectionGetResult = z13.object({
864
- selected: z13.array(z13.string())
865
- });
866
3052
 
867
- // src/api/tools/transform.ts
868
- import * as z14 from "zod";
869
- var PluginTransformApi = class {
3053
+ // src/api/analysis/sunpath.ts
3054
+ var PluginAnalysisSunpathApi = class {
3055
+ constructor() {
3056
+ }
3057
+ };
3058
+
3059
+ // src/api/analysis/shadows.ts
3060
+ import * as z65 from "zod";
3061
+ var PluginAnalysisShadowsApi = class {
870
3062
  constructor() {
871
3063
  }
872
3064
  };
873
- var PluginMoveArgs = z14.object({
874
- componentIds: z14.array(z14.string()),
875
- displacement: PVec3
3065
+ var PluginAnalysisShadowsEnableOptions = z65.object({
3066
+ dateTime: z65.string().optional()
876
3067
  });
877
- var PluginRotateArgs = z14.object({
878
- componentIds: z14.array(z14.string()),
879
- angle: z14.number(),
880
- axis: PVec3,
881
- pivot: PVec3
3068
+ var PluginAnalysisShadowsSetDateTimeArgs = z65.object({
3069
+ dateTime: z65.string()
882
3070
  });
3071
+ var PluginAnalysisShadowsDateTimeResult = z65.string();
883
3072
 
884
- // src/api/tools/material.ts
885
- import * as z15 from "zod";
886
- var PluginMaterialApi = class {
3073
+ // src/api/analysis/sunlightHours.ts
3074
+ import * as z66 from "zod";
3075
+ var PluginAnalysisSunlightHoursApi = class {
887
3076
  constructor() {
888
3077
  }
889
3078
  };
890
- var DEFAULT_MATERIALS = /* @__PURE__ */ ((DEFAULT_MATERIALS2) => {
891
- DEFAULT_MATERIALS2["GLASS"] = "glass";
892
- DEFAULT_MATERIALS2["WOOD"] = "wood";
893
- DEFAULT_MATERIALS2["METAL"] = "metal";
894
- DEFAULT_MATERIALS2["STONE"] = "stone";
895
- DEFAULT_MATERIALS2["TILES"] = "tiles";
896
- DEFAULT_MATERIALS2["CONCRETE"] = "concrete";
897
- DEFAULT_MATERIALS2["BRICK"] = "brick";
898
- return DEFAULT_MATERIALS2;
899
- })(DEFAULT_MATERIALS || {});
900
- var PluginMaterialArgs = z15.object({
901
- materialName: z15.enum(Object.values(DEFAULT_MATERIALS)),
902
- componentIds: z15.array(z15.string())
3079
+ var PluginAnalysisComputeResult = z66.object({
3080
+ success: z66.boolean(),
3081
+ error: z66.string().optional()
903
3082
  });
3083
+ var PluginAnalysisJobStatus = z66.enum([
3084
+ "running",
3085
+ "active",
3086
+ "inactive"
3087
+ ]);
3088
+ var PluginAnalysisJobState = z66.object({
3089
+ status: PluginAnalysisJobStatus,
3090
+ startDate: z66.string(),
3091
+ endDate: z66.string()
3092
+ });
3093
+ var PluginAnalysisJobStateResult = PluginAnalysisJobState.nullable();
904
3094
 
905
- // src/api/tools/index.ts
906
- var PluginToolsApi = class {
3095
+ // src/api/analysis/illuminance.ts
3096
+ var PluginAnalysisIlluminanceApi = class {
907
3097
  constructor() {
908
3098
  }
909
3099
  };
910
3100
 
911
- // src/api/units/index.ts
912
- import * as z16 from "zod";
913
- var PluginUnitsApi = class {
3101
+ // src/api/analysis/heatmaps.ts
3102
+ import * as z67 from "zod";
3103
+ var PluginAnalysisHeatmapsApi = class {
914
3104
  constructor() {
915
3105
  }
916
3106
  };
917
- var PUnitType = z16.enum([
918
- "meters",
919
- "feet-inches",
920
- "inches",
921
- "centimeters",
922
- "millimeters",
923
- "kilometers",
924
- "miles"
925
- ]);
926
- var PluginUnitsConvertFromArgs = z16.object({
927
- unit: PUnitType,
928
- value: z16.number(),
929
- degree: z16.number().int().min(1).max(3).optional()
3107
+ var PluginAnalysisHeatmapSpaceEntry = z67.object({
3108
+ space: ComponentHandle,
3109
+ value: z67.number().finite()
930
3110
  });
931
- var PluginUnitsConvertFromResult = z16.object({
932
- value: z16.number()
3111
+ var PluginAnalysisHeatmapGridCell = z67.object({
3112
+ position: Vec3Components,
3113
+ value: z67.number().finite()
933
3114
  });
934
- var PluginUnitsConvertToArgs = z16.object({
935
- unit: PUnitType,
936
- value: z16.number(),
937
- degree: z16.number().int().min(1).max(3).optional()
3115
+ var PluginAnalysisHeatmapOptions = z67.object({
3116
+ title: z67.string().optional(),
3117
+ unit: z67.string().optional(),
3118
+ min: z67.number().finite().optional(),
3119
+ max: z67.number().finite().optional(),
3120
+ colors: z67.array(z67.string().regex(/^#?[0-9a-fA-F]{6}$/, 'expected a 6-digit hex colour like "#0000ff"')).min(1).optional()
938
3121
  });
939
- var PluginUnitsConvertToResult = z16.object({
940
- value: z16.number()
3122
+ var PluginAnalysisHeatmapsRenderResult = z67.object({
3123
+ success: z67.literal(true)
941
3124
  });
942
3125
 
3126
+ // src/api/analysis/index.ts
3127
+ var PluginAnalysisApi = class {
3128
+ constructor() {
3129
+ }
3130
+ };
3131
+
943
3132
  // src/api/index.ts
944
3133
  var PluginApi = class {
945
3134
  constructor() {
946
3135
  }
947
3136
  };
948
3137
  export {
949
- PArc,
950
- PCurve,
951
- PLine,
952
- PProfile,
953
- PQuat,
3138
+ ArcHandle,
3139
+ BBoxComponents,
3140
+ BooleanOptions,
3141
+ BooleanOutcome,
3142
+ BrepHandle,
3143
+ CadJsonInput,
3144
+ CircleHandle,
3145
+ CommentHandle,
3146
+ ComponentHandle,
3147
+ ContourHandle,
3148
+ CurveHandle,
3149
+ DEFAULT_ERASE_STRATEGIES,
3150
+ EdgeHandle,
3151
+ ErasableEdgeRef,
3152
+ EraseStrategy,
3153
+ FaceHandle,
3154
+ HalfEdgeHandle,
3155
+ ImportJobHandle,
3156
+ ImportJobStatus,
3157
+ ImportSource,
3158
+ LineHandle,
3159
+ MassHandle,
3160
+ MaterialHandle,
3161
+ ModelFormat,
3162
+ OffsetSplitOutcome,
954
3163
  PUnitType,
955
- PVec3,
3164
+ PluginAIInspirationAppliedPreset,
3165
+ PluginAIInspirationDebugSummary,
3166
+ PluginAIInspirationGenerateArgs,
3167
+ PluginAIInspirationListModelsResult,
3168
+ PluginAIInspirationListSourcesArgs,
3169
+ PluginAIInspirationListSourcesResult,
3170
+ PluginAIInspirationModel,
3171
+ PluginAIInspirationModelOutput,
3172
+ PluginAIInspirationOutput,
3173
+ PluginAIInspirationOutputKind,
3174
+ PluginAIInspirationPoint,
3175
+ PluginAIInspirationRefineArgs,
3176
+ PluginAIInspirationRegionHint,
3177
+ PluginAIInspirationRunMetadata,
3178
+ PluginAIInspirationRunResult,
3179
+ PluginAIInspirationShapeKind,
3180
+ PluginAIInspirationShapeRef,
3181
+ PluginAIInspirationSiteOptions,
3182
+ PluginAIInspirationSketchGuidance,
3183
+ PluginAIInspirationTextAnnotation,
3184
+ PluginAIInspirationVideoDuration,
3185
+ PluginAIInspirationVideoMode,
3186
+ PluginAIInspirationVideoMotion,
3187
+ PluginAIInspirationVideoOptions,
3188
+ PluginAdjacencyLevel,
3189
+ PluginAnalysisApi,
3190
+ PluginAnalysisComputeResult,
3191
+ PluginAnalysisHeatmapGridCell,
3192
+ PluginAnalysisHeatmapOptions,
3193
+ PluginAnalysisHeatmapSpaceEntry,
3194
+ PluginAnalysisHeatmapsApi,
3195
+ PluginAnalysisHeatmapsRenderResult,
3196
+ PluginAnalysisIlluminanceApi,
3197
+ PluginAnalysisJobState,
3198
+ PluginAnalysisJobStateResult,
3199
+ PluginAnalysisJobStatus,
3200
+ PluginAnalysisShadowsApi,
3201
+ PluginAnalysisShadowsDateTimeResult,
3202
+ PluginAnalysisShadowsEnableOptions,
3203
+ PluginAnalysisShadowsSetDateTimeArgs,
3204
+ PluginAnalysisSunlightHoursApi,
3205
+ PluginAnalysisSunpathApi,
956
3206
  PluginApi,
957
- PluginArcApi,
958
- PluginCopyArgs,
3207
+ PluginAreaClass,
3208
+ PluginAreaUnit,
3209
+ PluginBuildableEnvelopeApi,
3210
+ PluginBuildableEnvelopeCreateArgs,
3211
+ PluginBuildableEnvelopeCreateResult,
3212
+ PluginBuildableEnvelopePolygonVertex,
3213
+ PluginBuildableEnvelopeSetbackTier,
3214
+ PluginBuildableEnvelopeUpdateArgs,
3215
+ PluginBuildableEnvelopeUpdateResult,
3216
+ PluginBuildableEnvelopeVerticalCap,
3217
+ PluginClassificationOption,
3218
+ PluginCommentApi,
3219
+ PluginCommentCreateArgs,
3220
+ PluginCommentRefArgs,
3221
+ PluginCommentTagArgs,
3222
+ PluginCommentUpdateArgs,
959
3223
  PluginCopyMode,
960
- PluginCopyResult,
961
3224
  PluginCoreApi,
962
- PluginCurveApi,
963
- PluginDepartmentApi,
964
- PluginDepartmentCreateArgs,
965
- PluginDepartmentCreateResult,
966
- PluginDepartmentEntry,
967
- PluginDepartmentGetAllResult,
3225
+ PluginCoreAssignOutcome,
3226
+ PluginCoreBuildingRef,
3227
+ PluginCoreBuildingsApi,
3228
+ PluginCoreBuildingsCopyArgs,
3229
+ PluginCoreBuildingsCopyResult,
3230
+ PluginCoreBuildingsCreateArgs,
3231
+ PluginCoreBuildingsCreateResult,
3232
+ PluginCoreBuildingsDeleteArgs,
3233
+ PluginCoreBuildingsDeleteResult,
3234
+ PluginCoreBuildingsGetActiveResult,
3235
+ PluginCoreBuildingsGetArgs,
3236
+ PluginCoreBuildingsGetResult,
3237
+ PluginCoreBuildingsListResult,
3238
+ PluginCoreBuildingsListStoreysArgs,
3239
+ PluginCoreBuildingsListStoreysResult,
3240
+ PluginCoreBuildingsSetActiveArgs,
3241
+ PluginCoreBuildingsSetActiveResult,
3242
+ PluginCoreBuildingsUpdateArgs,
3243
+ PluginCoreBuildingsUpdateResult,
3244
+ PluginCoreComponentTag,
3245
+ PluginCoreGroupMember,
3246
+ PluginCoreGroupRef,
3247
+ PluginCoreGroupsApi,
3248
+ PluginCoreGroupsCreateArgs,
3249
+ PluginCoreGroupsCreateResult,
3250
+ PluginCoreGroupsDeleteArgs,
3251
+ PluginCoreGroupsDeleteResult,
3252
+ PluginCoreGroupsGetArgs,
3253
+ PluginCoreGroupsGetBoundsArgs,
3254
+ PluginCoreGroupsGetBoundsResult,
3255
+ PluginCoreGroupsGetForComponentArgs,
3256
+ PluginCoreGroupsGetForComponentResult,
3257
+ PluginCoreGroupsGetResult,
3258
+ PluginCoreGroupsIsLockedArgs,
3259
+ PluginCoreGroupsIsLockedResult,
3260
+ PluginCoreGroupsListMembersArgs,
3261
+ PluginCoreGroupsListMembersResult,
3262
+ PluginCoreGroupsListResult,
3263
+ PluginCoreGroupsUpdateArgs,
3264
+ PluginCoreGroupsUpdateResult,
3265
+ PluginCoreIoApi,
3266
+ PluginCoreIoImportApi,
3267
+ PluginCoreIoJobApi,
3268
+ PluginCoreIoQueryApi,
3269
+ PluginCoreIoTerrainApi,
3270
+ PluginCoreIoUnderlayApi,
3271
+ PluginCoreLayer,
3272
+ PluginCoreLayerType,
3273
+ PluginCoreLayersApi,
3274
+ PluginCoreLayersGetActiveArgs,
3275
+ PluginCoreLayersGetActiveResult,
3276
+ PluginCoreLayersGetArgs,
3277
+ PluginCoreLayersGetResult,
3278
+ PluginCoreLayersListArgs,
3279
+ PluginCoreLayersListResult,
3280
+ PluginCoreLayersSetActiveArgs,
3281
+ PluginCoreLayersSetActiveResult,
3282
+ PluginCoreLayersUpdateArgs,
3283
+ PluginCoreLayersUpdateResult,
3284
+ PluginCoreTag,
3285
+ PluginCoreTagCategory,
3286
+ PluginCoreTagsApi,
3287
+ PluginCoreTagsAssignArgs,
3288
+ PluginCoreTagsAssignResult,
3289
+ PluginCoreTagsCreateArgs,
3290
+ PluginCoreTagsCreateCategoryArgs,
3291
+ PluginCoreTagsCreateCategoryResult,
3292
+ PluginCoreTagsCreateResult,
3293
+ PluginCoreTagsDeleteArgs,
3294
+ PluginCoreTagsDeleteCategoryArgs,
3295
+ PluginCoreTagsDeleteCategoryResult,
3296
+ PluginCoreTagsDeleteResult,
3297
+ PluginCoreTagsGetArgs,
3298
+ PluginCoreTagsGetCategoryArgs,
3299
+ PluginCoreTagsGetCategoryResult,
3300
+ PluginCoreTagsGetResult,
3301
+ PluginCoreTagsGetTagsForComponentArgs,
3302
+ PluginCoreTagsGetTagsForComponentResult,
3303
+ PluginCoreTagsListArgs,
3304
+ PluginCoreTagsListCategoriesResult,
3305
+ PluginCoreTagsListComponentsArgs,
3306
+ PluginCoreTagsListComponentsResult,
3307
+ PluginCoreTagsListResult,
3308
+ PluginCoreTagsUnassignArgs,
3309
+ PluginCoreTagsUnassignResult,
3310
+ PluginCoreTagsUpdateArgs,
3311
+ PluginCoreTagsUpdateCategoryArgs,
3312
+ PluginCoreTagsUpdateCategoryResult,
3313
+ PluginCoreTagsUpdateResult,
3314
+ PluginCreateSpaceItem,
968
3315
  PluginDepartmentId,
3316
+ PluginDesignApi,
3317
+ PluginDesignBooleanApi,
3318
+ PluginDesignBooleanIntersectArgs,
3319
+ PluginDesignBooleanSubtractArgs,
3320
+ PluginDesignBooleanUnionArgs,
3321
+ PluginDesignChangeResult,
3322
+ PluginDesignCreateApi,
3323
+ PluginDesignCreateBeamArgs,
3324
+ PluginDesignCreateCeilingArgs,
3325
+ PluginDesignCreateColumnArgs,
3326
+ PluginDesignCreateCopyArgs,
3327
+ PluginDesignCreateFloorArgs,
3328
+ PluginDesignCreateFurnitureArgs,
3329
+ PluginDesignCreateMassArgs,
3330
+ PluginDesignCreateReferenceLinesArgs,
3331
+ PluginDesignCreateRoofArgs,
3332
+ PluginDesignCreateSlabArgs,
3333
+ PluginDesignCreateSpaceArgs,
3334
+ PluginDesignCreateStaircaseArgs,
3335
+ PluginDesignCreateWallsArgs,
3336
+ PluginDesignDeleteApi,
3337
+ PluginDesignDeleteEntitiesArgs,
3338
+ PluginDesignDoorArgs,
3339
+ PluginDesignDoorMirrorArgs,
3340
+ PluginDesignDoorSetHeightArgs,
3341
+ PluginDesignDoorSetWidthArgs,
3342
+ PluginDesignDoorsApi,
3343
+ PluginDesignEditApi,
3344
+ PluginDesignEraseApi,
3345
+ PluginDesignEraseEdgeArgs,
3346
+ PluginDesignEraseEdgeResult,
3347
+ PluginDesignFurnitureApi,
3348
+ PluginDesignFurnitureExistsArgs,
3349
+ PluginDesignFurnitureGetCatalogItemArgs,
3350
+ PluginDesignFurnitureListCatalogArgs,
3351
+ PluginDesignIsLockedArgs,
3352
+ PluginDesignListErasableEdgesArgs,
3353
+ PluginDesignLockArgs,
3354
+ PluginDesignMaterialsApi,
3355
+ PluginDesignMaterialsApplyArgs,
3356
+ PluginDesignMaterialsComponentArgs,
3357
+ PluginDesignMaterialsCreateArgs,
3358
+ PluginDesignMaterialsGetInfoArgs,
3359
+ PluginDesignMaterialsListArgs,
3360
+ PluginDesignMaterialsResetArgs,
3361
+ PluginDesignMoveArgs,
3362
+ PluginDesignOffsetSplitArgs,
3363
+ PluginDesignQueryApi,
3364
+ PluginDesignQueryComponentArgs,
3365
+ PluginDesignQueryComponentsArgs,
3366
+ PluginDesignQueryGeometryApi,
3367
+ PluginDesignQueryGeometryGetBottomContourArgs,
3368
+ PluginDesignQueryGeometryGetBrepArgs,
3369
+ PluginDesignQueryGeometryGetCenterlineArgs,
3370
+ PluginDesignQueryGetFootprintArgs,
3371
+ PluginDesignQueryIdArgs,
3372
+ PluginDesignQueryListByTypeArgs,
3373
+ PluginDesignQuerySpacesApi,
3374
+ PluginDesignQuerySpacesGetArgs,
3375
+ PluginDesignQuerySpacesGetProperty,
3376
+ PluginDesignQuerySpacesGetResult,
3377
+ PluginDesignRotateArgs,
3378
+ PluginDesignSelectionAddArgs,
3379
+ PluginDesignSelectionApi,
3380
+ PluginDesignSelectionRemoveArgs,
3381
+ PluginDesignSelectionSetArgs,
3382
+ PluginDesignTransformApi,
3383
+ PluginDesignUnlockArgs,
3384
+ PluginDesignUpdateApi,
3385
+ PluginDesignWindowArgs,
3386
+ PluginDesignWindowSetHeightArgs,
3387
+ PluginDesignWindowSetWidthArgs,
3388
+ PluginDesignWindowsApi,
969
3389
  PluginEntityApi,
3390
+ PluginEntityFilter,
3391
+ PluginEntityMeasurements,
3392
+ PluginEntityProperties,
3393
+ PluginEntityType,
3394
+ PluginFurnitureCatalogItem,
970
3395
  PluginGeomApi,
971
- PluginLineApi,
3396
+ PluginGeomCreateApi,
3397
+ PluginGeomCreateArcArgs,
3398
+ PluginGeomCreateCircleArgs,
3399
+ PluginGeomCreateContourFromProfileArgs,
3400
+ PluginGeomCreateContourFromProfilesArgs,
3401
+ PluginGeomCreateLineArgs,
3402
+ PluginGeomCreateProfileFromCurvesArgs,
3403
+ PluginGeomCreateProfileFromLinePointsArgs,
3404
+ PluginGeomDeleteApi,
3405
+ PluginGeomDeleteContourArgs,
3406
+ PluginGeomDeleteProfileArgs,
3407
+ PluginGeomQueryApi,
3408
+ PluginGeomQueryArcApi,
3409
+ PluginGeomQueryArcGetAxisArgs,
3410
+ PluginGeomQueryArcGetCentreArgs,
3411
+ PluginGeomQueryArcGetRadiusArgs,
3412
+ PluginGeomQueryArcGetSweepAngleArgs,
3413
+ PluginGeomQueryArcIsValidArgs,
3414
+ PluginGeomQueryBrepApi,
3415
+ PluginGeomQueryBrepGetBoundingBoxArgs,
3416
+ PluginGeomQueryBrepGetCentroidArgs,
3417
+ PluginGeomQueryBrepGetEdgeArgs,
3418
+ PluginGeomQueryBrepGetEdgeCountArgs,
3419
+ PluginGeomQueryBrepGetFaceCountArgs,
3420
+ PluginGeomQueryBrepGetHalfEdgeCountArgs,
3421
+ PluginGeomQueryBrepGetVertexCountArgs,
3422
+ PluginGeomQueryBrepGetVertexPositionArgs,
3423
+ PluginGeomQueryBrepHasEdgeArgs,
3424
+ PluginGeomQueryBrepIsEqualArgs,
3425
+ PluginGeomQueryBrepListEdgesArgs,
3426
+ PluginGeomQueryBrepListEdgesBetweenArgs,
3427
+ PluginGeomQueryBrepListFacesArgs,
3428
+ PluginGeomQueryBrepListHalfEdgesArgs,
3429
+ PluginGeomQueryBrepListVertexPositionsArgs,
3430
+ PluginGeomQueryBrepListVerticesArgs,
3431
+ PluginGeomQueryCircleApi,
3432
+ PluginGeomQueryCircleGetAxisArgs,
3433
+ PluginGeomQueryCircleGetCentreArgs,
3434
+ PluginGeomQueryCircleGetLengthArgs,
3435
+ PluginGeomQueryCircleGetNearestPointArgs,
3436
+ PluginGeomQueryCircleGetNormalArgs,
3437
+ PluginGeomQueryCircleGetPointAtDistanceArgs,
3438
+ PluginGeomQueryCircleGetRadiusArgs,
3439
+ PluginGeomQueryCircleGetTangentArgs,
3440
+ PluginGeomQueryCircleHasPointArgs,
3441
+ PluginGeomQueryCircleIsEqualArgs,
3442
+ PluginGeomQueryCircleIsValidArgs,
3443
+ PluginGeomQueryCircleListPointsArgs,
3444
+ PluginGeomQueryContourApi,
3445
+ PluginGeomQueryContourGetAreaArgs,
3446
+ PluginGeomQueryContourGetBoundingBoxArgs,
3447
+ PluginGeomQueryContourGetHoleCountArgs,
3448
+ PluginGeomQueryContourGetNearestPointArgs,
3449
+ PluginGeomQueryContourGetNormalArgs,
3450
+ PluginGeomQueryContourGetOuterProfileArgs,
3451
+ PluginGeomQueryContourGetPerimeterArgs,
3452
+ PluginGeomQueryContourHasPointArgs,
3453
+ PluginGeomQueryContourIsClockwiseArgs,
3454
+ PluginGeomQueryContourIsEmptyArgs,
3455
+ PluginGeomQueryContourIsEqualArgs,
3456
+ PluginGeomQueryContourIsOnBoundaryArgs,
3457
+ PluginGeomQueryContourIsOrientationValidArgs,
3458
+ PluginGeomQueryContourIsPlanarArgs,
3459
+ PluginGeomQueryContourIsSelfIntersectingArgs,
3460
+ PluginGeomQueryContourListHolesArgs,
3461
+ PluginGeomQueryCurveApi,
3462
+ PluginGeomQueryCurveGetChordLengthArgs,
3463
+ PluginGeomQueryCurveGetCommonPartArgs,
3464
+ PluginGeomQueryCurveGetCurvatureArgs,
3465
+ PluginGeomQueryCurveGetDistanceAlongArgs,
3466
+ PluginGeomQueryCurveGetDistanceBetweenArgs,
3467
+ PluginGeomQueryCurveGetDistanceToPointArgs,
3468
+ PluginGeomQueryCurveGetEndPointArgs,
3469
+ PluginGeomQueryCurveGetLengthArgs,
3470
+ PluginGeomQueryCurveGetMergedCurveArgs,
3471
+ PluginGeomQueryCurveGetMidPointArgs,
3472
+ PluginGeomQueryCurveGetNearestPointArgs,
3473
+ PluginGeomQueryCurveGetNormalArgs,
3474
+ PluginGeomQueryCurveGetParameterAtPointArgs,
3475
+ PluginGeomQueryCurveGetPointAtDistanceArgs,
3476
+ PluginGeomQueryCurveGetProjectionArgs,
3477
+ PluginGeomQueryCurveGetShortestGapArgs,
3478
+ PluginGeomQueryCurveGetStartPointArgs,
3479
+ PluginGeomQueryCurveGetTangentArgs,
3480
+ PluginGeomQueryCurveHasPointArgs,
3481
+ PluginGeomQueryCurveIsContinuousArgs,
3482
+ PluginGeomQueryCurveIsEqualArgs,
3483
+ PluginGeomQueryCurveIsLinearArgs,
3484
+ PluginGeomQueryCurveIsOnCurveArgs,
3485
+ PluginGeomQueryCurveIsOverlappingArgs,
3486
+ PluginGeomQueryCurveIsParallelArgs,
3487
+ PluginGeomQueryCurveListIntersectionsArgs,
3488
+ PluginGeomQueryCurveListPointsArgs,
3489
+ PluginGeomQueryCurveListSubdivisionsArgs,
3490
+ PluginGeomQueryEdgeApi,
3491
+ PluginGeomQueryEdgeGetCurveArgs,
3492
+ PluginGeomQueryEdgeGetHalfEdgeArgs,
3493
+ PluginGeomQueryEdgeGetIndexArgs,
3494
+ PluginGeomQueryEdgeListFacesArgs,
3495
+ PluginGeomQueryEdgeListVerticesArgs,
3496
+ PluginGeomQueryFaceApi,
3497
+ PluginGeomQueryFaceGetHalfEdgeArgs,
3498
+ PluginGeomQueryFaceGetHoleContainingHalfEdgeArgs,
3499
+ PluginGeomQueryFaceGetHoleCountArgs,
3500
+ PluginGeomQueryFaceGetIndexArgs,
3501
+ PluginGeomQueryFaceGetMaterialIndexArgs,
3502
+ PluginGeomQueryFaceHasHolesArgs,
3503
+ PluginGeomQueryFaceListAdjacentFacesArgs,
3504
+ PluginGeomQueryFaceListEdgesArgs,
3505
+ PluginGeomQueryFaceListHalfEdgesArgs,
3506
+ PluginGeomQueryFaceListHoleHalfEdgesArgs,
3507
+ PluginGeomQueryFaceListHolesArgs,
3508
+ PluginGeomQueryFaceListVertexPositionsArgs,
3509
+ PluginGeomQueryFaceListVertexPositionsWithCurvesArgs,
3510
+ PluginGeomQueryFaceListVerticesArgs,
3511
+ PluginGeomQueryHalfEdgeApi,
3512
+ PluginGeomQueryHalfEdgeGetEdgeArgs,
3513
+ PluginGeomQueryHalfEdgeGetFaceArgs,
3514
+ PluginGeomQueryHalfEdgeGetFlipArgs,
3515
+ PluginGeomQueryHalfEdgeGetNextArgs,
3516
+ PluginGeomQueryHalfEdgeGetPrevArgs,
3517
+ PluginGeomQueryHalfEdgeGetVertexArgs,
3518
+ PluginGeomQueryHalfEdgeIsForwardArgs,
3519
+ PluginGeomQueryHalfEdgeIsOnBoundaryArgs,
3520
+ PluginGeomQueryProfileApi,
3521
+ PluginGeomQueryProfileGetAreaArgs,
3522
+ PluginGeomQueryProfileGetBoundingBoxArgs,
3523
+ PluginGeomQueryProfileGetNearestPointArgs,
3524
+ PluginGeomQueryProfileGetNormalArgs,
3525
+ PluginGeomQueryProfileGetPerimeterArgs,
3526
+ PluginGeomQueryProfileHasPointArgs,
3527
+ PluginGeomQueryProfileIsClockwiseArgs,
3528
+ PluginGeomQueryProfileIsClosedArgs,
3529
+ PluginGeomQueryProfileIsEmptyArgs,
3530
+ PluginGeomQueryProfileIsEqualArgs,
3531
+ PluginGeomQueryProfileIsOnBoundaryArgs,
3532
+ PluginGeomQueryProfileIsPlanarArgs,
3533
+ PluginGeomQueryProfileIsSelfIntersectingArgs,
3534
+ PluginGeomQueryProfileListCurvesArgs,
3535
+ PluginGeomQueryProfileListPointsArgs,
3536
+ PluginGeomQueryVertexApi,
3537
+ PluginGeomQueryVertexGetHalfEdgeArgs,
3538
+ PluginGeomQueryVertexGetIndexArgs,
3539
+ PluginGeomQueryVertexGetPositionArgs,
3540
+ PluginGeomQueryVertexListEdgesArgs,
3541
+ PluginGeomQueryVertexListFacesArgs,
3542
+ PluginGeomQueryVertexListHalfEdgesArgs,
3543
+ PluginGeomQueryVertexListNeighborsArgs,
3544
+ PluginGeomUpdateApi,
3545
+ PluginGeomUpdateContourAddHoleArgs,
3546
+ PluginGeomUpdateContourApi,
3547
+ PluginGeomUpdateContourMirrorArgs,
3548
+ PluginGeomUpdateContourMoveArgs,
3549
+ PluginGeomUpdateContourOffsetArgs,
3550
+ PluginGeomUpdateContourRemoveHoleArgs,
3551
+ PluginGeomUpdateContourRotateArgs,
3552
+ PluginGeomUpdateContourScaleArgs,
3553
+ PluginGeomUpdateCurveApi,
3554
+ PluginGeomUpdateCurveExtendArgs,
3555
+ PluginGeomUpdateCurveOffsetArgs,
3556
+ PluginGeomUpdateCurveReverseArgs,
3557
+ PluginGeomUpdateCurveSplitArgs,
3558
+ PluginGeomUpdateCurveTrimArgs,
3559
+ PluginGeomUpdateProfileAddArgs,
3560
+ PluginGeomUpdateProfileApi,
3561
+ PluginGeomUpdateProfileMirrorArgs,
3562
+ PluginGeomUpdateProfileMoveArgs,
3563
+ PluginGeomUpdateProfileOffsetArgs,
3564
+ PluginGeomUpdateProfileRemoveArgs,
3565
+ PluginGeomUpdateProfileReverseArgs,
3566
+ PluginGeomUpdateProfileRotateArgs,
3567
+ PluginGeomUpdateProfileScaleArgs,
3568
+ PluginGeomUpdateProfileSimplifyArgs,
3569
+ PluginGridApi,
3570
+ PluginGridValueArgs,
3571
+ PluginHistoryApi,
3572
+ PluginHistoryStepArgs,
3573
+ PluginHistoryStepResult,
3574
+ PluginImportCadJsonArgs,
3575
+ PluginImportDwgArgs,
3576
+ PluginImportImageArgs,
3577
+ PluginImportJobArgs,
3578
+ PluginImportModelArgs,
3579
+ PluginImportPdfArgs,
3580
+ PluginImportTerrainArgs,
972
3581
  PluginMassType,
973
- PluginMaterialApi,
974
- PluginMaterialArgs,
3582
+ PluginMaterialInfo,
3583
+ PluginMaterialResult,
3584
+ PluginMaterialSpec,
975
3585
  PluginMathApi,
976
- PluginMoveArgs,
977
- PluginOffsetArgs,
978
- PluginOffsetResult,
979
- PluginProfileApi,
980
- PluginProfileFromLinePointsArgs,
3586
+ PluginMirrorAxis,
3587
+ PluginPresentationAIInspirationApi,
3588
+ PluginPresentationApi,
3589
+ PluginPresentationDiagramsApi,
3590
+ PluginPresentationDiagramsPlaceArgs,
3591
+ PluginPresentationDiagramsPlaceResult,
3592
+ PluginPresentationImageFormat,
3593
+ PluginPresentationImportApi,
3594
+ PluginPresentationImportArgs,
3595
+ PluginPresentationImportResult,
3596
+ PluginPresentationSheet,
3597
+ PluginPresentationSheetsApi,
3598
+ PluginPresentationSheetsCreateArgs,
3599
+ PluginPresentationSheetsGetArgs,
3600
+ PluginPresentationSheetsGetResult,
3601
+ PluginPresentationSheetsListResult,
3602
+ PluginPresentationSheetsPlaceArgs,
3603
+ PluginPresentationSheetsPlaceResult,
3604
+ PluginPresentationView,
3605
+ PluginPresentationViewType,
3606
+ PluginPresentationViewsApi,
3607
+ PluginPresentationViewsCaptureArgs,
3608
+ PluginPresentationViewsCaptureResult,
3609
+ PluginPresentationViewsCreateArgs,
3610
+ PluginPresentationViewsCreateResult,
3611
+ PluginPresentationViewsGetArgs,
3612
+ PluginPresentationViewsGetResult,
3613
+ PluginPresentationViewsListResult,
3614
+ PluginPresentationViewsSetActiveArgs,
3615
+ PluginPresentationViewsSetActiveResult,
3616
+ PluginProgramAdjacencyApi,
3617
+ PluginProgramAdjacencyComputeResult,
3618
+ PluginProgramAdjacencyGetMatrixArgs,
3619
+ PluginProgramAdjacencyGetMatrixResult,
3620
+ PluginProgramApi,
3621
+ PluginProgramAreaGroup,
3622
+ PluginProgramAreaGroupBy,
3623
+ PluginProgramAreaMember,
3624
+ PluginProgramAreaSummary,
3625
+ PluginProgramAreasApi,
3626
+ PluginProgramAreasGetResult,
3627
+ PluginProgramAreasListArgs,
3628
+ PluginProgramAreasListMembersArgs,
3629
+ PluginProgramAreasListMembersResult,
3630
+ PluginProgramAreasListResult,
3631
+ PluginProgramAreasUpdateArgs,
3632
+ PluginProgramAreasUpdateResult,
3633
+ PluginProgramClassificationApi,
3634
+ PluginProgramClassificationListTagsArgs,
3635
+ PluginProgramClassificationTagsResult,
3636
+ PluginProgramClassificationTypesResult,
3637
+ PluginProgramCore,
3638
+ PluginProgramCoreSpec,
3639
+ PluginProgramCoresApi,
3640
+ PluginProgramCoresCreateArgs,
3641
+ PluginProgramCoresCreateResult,
3642
+ PluginProgramCoresIsCoreArgs,
3643
+ PluginProgramCoresListResult,
3644
+ PluginProgramDepartment,
3645
+ PluginProgramDepartmentMetric,
3646
+ PluginProgramDepartmentRecord,
3647
+ PluginProgramDepartmentsApi,
3648
+ PluginProgramDepartmentsAssignArgs,
3649
+ PluginProgramDepartmentsAssignResult,
3650
+ PluginProgramDepartmentsCreateArgs,
3651
+ PluginProgramDepartmentsCreateResult,
3652
+ PluginProgramDepartmentsDeleteArgs,
3653
+ PluginProgramDepartmentsDeleteResult,
3654
+ PluginProgramDepartmentsGetArgs,
3655
+ PluginProgramDepartmentsGetResult,
3656
+ PluginProgramDepartmentsListResult,
3657
+ PluginProgramDepartmentsSetTargetAreaArgs,
3658
+ PluginProgramDepartmentsSetTargetAreaResult,
3659
+ PluginProgramDepartmentsUnassignArgs,
3660
+ PluginProgramDepartmentsUnassignResult,
3661
+ PluginProgramDepartmentsUpdateArgs,
3662
+ PluginProgramDepartmentsUpdateResult,
3663
+ PluginProgramLayoutApi,
3664
+ PluginProgramLayoutRunResult,
3665
+ PluginProgramMetricsApi,
3666
+ PluginProgramMetricsSummary,
3667
+ PluginProgramSiteApi,
3668
+ PluginProgramSiteAreaResult,
3669
+ PluginProgramSiteContext,
3670
+ PluginProgramSiteContextResult,
3671
+ PluginProgramSiteListGeoPolygonsResult,
3672
+ PluginProgramSiteListPolygonsResult,
3673
+ PluginProgramSiteLocation,
3674
+ PluginProgramSiteLocationResult,
3675
+ PluginProgramSiteNorthAngleResult,
3676
+ PluginProgramSiteSnapshot,
3677
+ PluginProgramSpreadsheetAddChartArgs,
3678
+ PluginProgramSpreadsheetAddChartResult,
3679
+ PluginProgramSpreadsheetAddConditionalFormattingArgs,
3680
+ PluginProgramSpreadsheetAddConditionalFormattingResult,
3681
+ PluginProgramSpreadsheetApi,
3682
+ PluginProgramSpreadsheetBindingsApi,
3683
+ PluginProgramSpreadsheetBindingsCreateArgs,
3684
+ PluginProgramSpreadsheetBindingsCreateResult,
3685
+ PluginProgramSpreadsheetBindingsListResult,
3686
+ PluginProgramSpreadsheetBindingsRefreshArgs,
3687
+ PluginProgramSpreadsheetBindingsRefreshResult,
3688
+ PluginProgramSpreadsheetCreateSheetArgs,
3689
+ PluginProgramSpreadsheetCreateSheetResult,
3690
+ PluginProgramSpreadsheetExportArgs,
3691
+ PluginProgramSpreadsheetExportResult,
3692
+ PluginProgramSpreadsheetGetAuditLogArgs,
3693
+ PluginProgramSpreadsheetGetAuditLogResult,
3694
+ PluginProgramSpreadsheetGetProgramResult,
3695
+ PluginProgramSpreadsheetGetSheetDataArgs,
3696
+ PluginProgramSpreadsheetGetSheetDataResult,
3697
+ PluginProgramSpreadsheetGetTakeoffResult,
3698
+ PluginProgramSpreadsheetHighlightCellsArgs,
3699
+ PluginProgramSpreadsheetHighlightCellsResult,
3700
+ PluginProgramSpreadsheetListSheetsResult,
3701
+ PluginProgramSpreadsheetMergeCellsArgs,
3702
+ PluginProgramSpreadsheetMergeCellsResult,
3703
+ PluginProgramSpreadsheetPingResult,
3704
+ PluginProgramSpreadsheetRecalculateArgs,
3705
+ PluginProgramSpreadsheetRecalculateResult,
3706
+ PluginProgramSpreadsheetRenderArgs,
3707
+ PluginProgramSpreadsheetRenderDatasetArgs,
3708
+ PluginProgramSpreadsheetRenderResult,
3709
+ PluginProgramSpreadsheetRunScriptArgs,
3710
+ PluginProgramSpreadsheetRunScriptResult,
3711
+ PluginProgramSpreadsheetSetFormulasArgs,
3712
+ PluginProgramSpreadsheetSetFormulasResult,
3713
+ PluginProgramSpreadsheetSetStylesArgs,
3714
+ PluginProgramSpreadsheetSetStylesResult,
3715
+ PluginProgramSpreadsheetSetValuesArgs,
3716
+ PluginProgramSpreadsheetSetValuesResult,
3717
+ PluginProgramSpreadsheetTemplatesApi,
3718
+ PluginProgramSpreadsheetTemplatesApplyArgs,
3719
+ PluginProgramSpreadsheetTemplatesApplyResult,
3720
+ PluginProgramSpreadsheetTemplatesCreateArgs,
3721
+ PluginProgramSpreadsheetTemplatesCreateResult,
3722
+ PluginProgramSpreadsheetTransactionArgs,
3723
+ PluginProgramSpreadsheetTransactionResult,
3724
+ PluginProjectApi,
3725
+ PluginProjectSettingsApi,
981
3726
  PluginQuatApi,
3727
+ PluginQueryCadLayersArgs,
3728
+ PluginQueryPdfPageCountArgs,
982
3729
  PluginReferenceLineApi,
983
3730
  PluginReferenceLineCreateMultiArgs,
984
3731
  PluginReferenceLineCreateMultiResult,
@@ -987,22 +3734,74 @@ export {
987
3734
  PluginReferenceLineGetArgs,
988
3735
  PluginReferenceLineGetProperty,
989
3736
  PluginReferenceLineGetResult,
990
- PluginRotateArgs,
991
- PluginSelectionApi,
992
- PluginSelectionGetResult,
993
- PluginSpaceApi,
3737
+ PluginReferenceLineStyle,
3738
+ PluginSelectionEntityType,
3739
+ PluginSelectionFilter,
3740
+ PluginSheetPosition,
3741
+ PluginSiteBounds,
3742
+ PluginSiteContextParcel,
3743
+ PluginSiteFootprintPoint,
3744
+ PluginSiteGeoPoint,
3745
+ PluginSiteLatLng,
3746
+ PluginSitePolygon,
3747
+ PluginSlabType,
3748
+ PluginSnapValueArgs,
3749
+ PluginSnapsApi,
3750
+ PluginSpaceBulkCreateArgs,
3751
+ PluginSpaceBulkCreateItem,
3752
+ PluginSpaceBulkCreateResult,
3753
+ PluginSpaceBulkDeleteArgs,
3754
+ PluginSpaceBulkDeleteResult,
3755
+ PluginSpaceBulkUpdateArgs,
3756
+ PluginSpaceBulkUpdateItem,
3757
+ PluginSpaceBulkUpdateResult,
994
3758
  PluginSpaceCreateFromProfileArgs,
995
3759
  PluginSpaceCreateFromProfileResult,
996
3760
  PluginSpaceCreateRectangularArgs,
997
3761
  PluginSpaceCreateRectangularResult,
998
3762
  PluginSpaceDeleteArgs,
3763
+ PluginSpaceGeometryUpdate,
999
3764
  PluginSpaceGetAllResult,
1000
3765
  PluginSpaceGetArgs,
1001
3766
  PluginSpaceGetProperty,
1002
3767
  PluginSpaceGetResult,
3768
+ PluginSpacePropertyUpdates,
3769
+ PluginSpaceTag,
1003
3770
  PluginSpaceType,
1004
3771
  PluginSpaceUpdateArgs,
3772
+ PluginSpaceUpdateGeometryFromProfileArgs,
3773
+ PluginSpaceUpdateGeometryFromProfileResult,
1005
3774
  PluginSpaceUpdateResult,
3775
+ PluginSpreadsheetAlign,
3776
+ PluginSpreadsheetAuditEntry,
3777
+ PluginSpreadsheetAuditStatus,
3778
+ PluginSpreadsheetBinding,
3779
+ PluginSpreadsheetBindingMode,
3780
+ PluginSpreadsheetBindingRefresh,
3781
+ PluginSpreadsheetBindingSource,
3782
+ PluginSpreadsheetBindingTarget,
3783
+ PluginSpreadsheetCell,
3784
+ PluginSpreadsheetCellStyle,
3785
+ PluginSpreadsheetChartType,
3786
+ PluginSpreadsheetColumn,
3787
+ PluginSpreadsheetConditionalRule,
3788
+ PluginSpreadsheetConditionalRuleType,
3789
+ PluginSpreadsheetExportFormat,
3790
+ PluginSpreadsheetFontStyle,
3791
+ PluginSpreadsheetFontWeight,
3792
+ PluginSpreadsheetFormula,
3793
+ PluginSpreadsheetHorizontalAlign,
3794
+ PluginSpreadsheetProgramRow,
3795
+ PluginSpreadsheetRangeStyle,
3796
+ PluginSpreadsheetSheetInfo,
3797
+ PluginSpreadsheetTakeoffRow,
3798
+ PluginSpreadsheetTemplateScope,
3799
+ PluginSpreadsheetTotal,
3800
+ PluginSpreadsheetTransactionMethod,
3801
+ PluginSpreadsheetTransactionOp,
3802
+ PluginSpreadsheetVerticalAlign,
3803
+ PluginSpreadsheetWhenExists,
3804
+ PluginStaircasePreset,
1006
3805
  PluginStoryApi,
1007
3806
  PluginStoryCreateArgs,
1008
3807
  PluginStoryCreateResult,
@@ -1012,14 +3811,32 @@ export {
1012
3811
  PluginStoryGetResult,
1013
3812
  PluginStoryUpdateArgs,
1014
3813
  PluginStoryUpdateResult,
1015
- PluginToolsApi,
1016
- PluginTransformApi,
3814
+ PluginTerrainSetDatumArgs,
3815
+ PluginTerrainSetOpacityArgs,
3816
+ PluginToleranceArgs,
3817
+ PluginUnderlayListArgs,
3818
+ PluginUnderlayPlanSize,
3819
+ PluginUnderlayRefArgs,
3820
+ PluginUnderlaySetOpacityArgs,
3821
+ PluginUnderlaySetScaleArgs,
3822
+ PluginUnderlaySetScaleValue,
1017
3823
  PluginUnitsApi,
1018
- PluginUnitsConvertFromArgs,
1019
- PluginUnitsConvertFromResult,
1020
- PluginUnitsConvertToArgs,
1021
- PluginUnitsConvertToResult,
3824
+ PluginUnitsConvertArgs,
3825
+ PluginUnitsSetTypeArgs,
3826
+ PluginUpdateSpaceItem,
1022
3827
  PluginVec3Api,
1023
- PluginWellKnownDepartmentId
3828
+ PluginWellKnownDepartmentId,
3829
+ PluginWindowDimensions,
3830
+ PluginZoomApi,
3831
+ ProfileHandle,
3832
+ QuatComponents,
3833
+ QuatHandle,
3834
+ TerrainHandle,
3835
+ TerrainReport,
3836
+ UnderlayHandle,
3837
+ Vec3Components,
3838
+ Vec3Handle,
3839
+ VertexHandle,
3840
+ handleSchema
1024
3841
  };
1025
3842
  //# sourceMappingURL=index.js.map