@snaptrude/plugin-core 0.2.9 → 0.5.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 (269) hide show
  1. package/AGENTS.md +128 -50
  2. package/CHANGELOG.md +52 -6
  3. package/api-manifest.full.json +3999 -0
  4. package/api-manifest.json +3845 -0
  5. package/dist/api/core/buildings.d.ts +427 -0
  6. package/dist/api/core/buildings.d.ts.map +1 -0
  7. package/dist/api/core/comment/index.d.ts +230 -0
  8. package/dist/api/core/comment/index.d.ts.map +1 -0
  9. package/dist/api/core/geom/create/index.d.ts +247 -0
  10. package/dist/api/core/geom/create/index.d.ts.map +1 -0
  11. package/dist/api/core/geom/delete/index.d.ts +72 -0
  12. package/dist/api/core/geom/delete/index.d.ts.map +1 -0
  13. package/dist/api/core/geom/index.d.ts +24 -23
  14. package/dist/api/core/geom/index.d.ts.map +1 -1
  15. package/dist/api/core/geom/query/arc.d.ts +169 -0
  16. package/dist/api/core/geom/query/arc.d.ts.map +1 -0
  17. package/dist/api/core/geom/query/brep.d.ts +402 -0
  18. package/dist/api/core/geom/query/brep.d.ts.map +1 -0
  19. package/dist/api/core/geom/query/circle.d.ts +378 -0
  20. package/dist/api/core/geom/query/circle.d.ts.map +1 -0
  21. package/dist/api/core/geom/query/contour.d.ts +450 -0
  22. package/dist/api/core/geom/query/contour.d.ts.map +1 -0
  23. package/dist/api/core/geom/query/curve.d.ts +918 -0
  24. package/dist/api/core/geom/query/curve.d.ts.map +1 -0
  25. package/dist/api/core/geom/query/edge.d.ts +128 -0
  26. package/dist/api/core/geom/query/edge.d.ts.map +1 -0
  27. package/dist/api/core/geom/query/face.d.ts +363 -0
  28. package/dist/api/core/geom/query/face.d.ts.map +1 -0
  29. package/dist/api/core/geom/query/halfedge.d.ts +206 -0
  30. package/dist/api/core/geom/query/halfedge.d.ts.map +1 -0
  31. package/dist/api/core/geom/query/index.d.ts +61 -0
  32. package/dist/api/core/geom/query/index.d.ts.map +1 -0
  33. package/dist/api/core/geom/query/profile.d.ts +410 -0
  34. package/dist/api/core/geom/query/profile.d.ts.map +1 -0
  35. package/dist/api/core/geom/query/vertex.d.ts +187 -0
  36. package/dist/api/core/geom/query/vertex.d.ts.map +1 -0
  37. package/dist/api/core/geom/update/contour.d.ts +272 -0
  38. package/dist/api/core/geom/update/contour.d.ts.map +1 -0
  39. package/dist/api/core/geom/update/curve.d.ts +180 -0
  40. package/dist/api/core/geom/update/curve.d.ts.map +1 -0
  41. package/dist/api/core/geom/update/index.d.ts +27 -0
  42. package/dist/api/core/geom/update/index.d.ts.map +1 -0
  43. package/dist/api/core/geom/update/profile.d.ts +329 -0
  44. package/dist/api/core/geom/update/profile.d.ts.map +1 -0
  45. package/dist/api/core/groups.d.ts +485 -0
  46. package/dist/api/core/groups.d.ts.map +1 -0
  47. package/dist/api/core/history/index.d.ts +78 -0
  48. package/dist/api/core/history/index.d.ts.map +1 -0
  49. package/dist/api/core/index.d.ts +46 -1
  50. package/dist/api/core/index.d.ts.map +1 -1
  51. package/dist/api/core/layers.d.ts +402 -0
  52. package/dist/api/core/layers.d.ts.map +1 -0
  53. package/dist/api/core/math/quat.d.ts +111 -128
  54. package/dist/api/core/math/quat.d.ts.map +1 -1
  55. package/dist/api/core/math/vec3.d.ts +120 -102
  56. package/dist/api/core/math/vec3.d.ts.map +1 -1
  57. package/dist/api/core/project/index.d.ts +399 -0
  58. package/dist/api/core/project/index.d.ts.map +1 -0
  59. package/dist/api/core/tags.d.ts +755 -0
  60. package/dist/api/core/tags.d.ts.map +1 -0
  61. package/dist/api/core/units/index.d.ts +175 -0
  62. package/dist/api/core/units/index.d.ts.map +1 -0
  63. package/dist/api/core/zoom/index.d.ts +45 -0
  64. package/dist/api/core/zoom/index.d.ts.map +1 -0
  65. package/dist/api/design/boolean/index.d.ts +168 -0
  66. package/dist/api/design/boolean/index.d.ts.map +1 -0
  67. package/dist/api/design/create/index.d.ts +828 -0
  68. package/dist/api/design/create/index.d.ts.map +1 -0
  69. package/dist/api/design/delete/index.d.ts +63 -0
  70. package/dist/api/design/delete/index.d.ts.map +1 -0
  71. package/dist/api/design/doors/index.d.ts +268 -0
  72. package/dist/api/design/doors/index.d.ts.map +1 -0
  73. package/dist/api/design/edit/index.d.ts +49 -0
  74. package/dist/api/design/edit/index.d.ts.map +1 -0
  75. package/dist/api/design/erase/index.d.ts +160 -0
  76. package/dist/api/design/erase/index.d.ts.map +1 -0
  77. package/dist/api/design/furniture/index.d.ts +123 -0
  78. package/dist/api/design/furniture/index.d.ts.map +1 -0
  79. package/dist/api/design/index.d.ts +153 -0
  80. package/dist/api/design/index.d.ts.map +1 -0
  81. package/dist/api/design/lock.d.ts +41 -0
  82. package/dist/api/design/lock.d.ts.map +1 -0
  83. package/dist/api/design/materials/index.d.ts +297 -0
  84. package/dist/api/design/materials/index.d.ts.map +1 -0
  85. package/dist/api/design/query/geometry/index.d.ts +140 -0
  86. package/dist/api/design/query/geometry/index.d.ts.map +1 -0
  87. package/dist/api/design/query/index.d.ts +1011 -0
  88. package/dist/api/design/query/index.d.ts.map +1 -0
  89. package/dist/api/design/query/spaces.d.ts +221 -0
  90. package/dist/api/design/query/spaces.d.ts.map +1 -0
  91. package/dist/api/design/selection/index.d.ts +138 -0
  92. package/dist/api/design/selection/index.d.ts.map +1 -0
  93. package/dist/api/design/shared.d.ts +38 -0
  94. package/dist/api/design/shared.d.ts.map +1 -0
  95. package/dist/api/design/transform/index.d.ts +87 -0
  96. package/dist/api/design/transform/index.d.ts.map +1 -0
  97. package/dist/api/design/update/index.d.ts +178 -0
  98. package/dist/api/design/update/index.d.ts.map +1 -0
  99. package/dist/api/design/windows/index.d.ts +189 -0
  100. package/dist/api/design/windows/index.d.ts.map +1 -0
  101. package/dist/api/entity/buildableEnvelope.d.ts +51 -23
  102. package/dist/api/entity/buildableEnvelope.d.ts.map +1 -1
  103. package/dist/api/entity/department.d.ts +0 -98
  104. package/dist/api/entity/department.d.ts.map +1 -1
  105. package/dist/api/entity/index.d.ts +4 -9
  106. package/dist/api/entity/index.d.ts.map +1 -1
  107. package/dist/api/entity/referenceLine.d.ts +49 -106
  108. package/dist/api/entity/referenceLine.d.ts.map +1 -1
  109. package/dist/api/entity/space.d.ts +76 -828
  110. package/dist/api/entity/space.d.ts.map +1 -1
  111. package/dist/api/entity/story.d.ts +47 -37
  112. package/dist/api/entity/story.d.ts.map +1 -1
  113. package/dist/api/index.d.ts +17 -17
  114. package/dist/api/index.d.ts.map +1 -1
  115. package/dist/api/presentation/aiInspiration.d.ts +440 -0
  116. package/dist/api/presentation/aiInspiration.d.ts.map +1 -0
  117. package/dist/api/presentation/diagrams.d.ts +81 -0
  118. package/dist/api/presentation/diagrams.d.ts.map +1 -0
  119. package/dist/api/presentation/import.d.ts +113 -0
  120. package/dist/api/presentation/import.d.ts.map +1 -0
  121. package/dist/api/presentation/index.d.ts +46 -0
  122. package/dist/api/presentation/index.d.ts.map +1 -0
  123. package/dist/api/presentation/sheets.d.ts +176 -0
  124. package/dist/api/presentation/sheets.d.ts.map +1 -0
  125. package/dist/api/presentation/views.d.ts +296 -0
  126. package/dist/api/presentation/views.d.ts.map +1 -0
  127. package/dist/api/program/adjacency.d.ts +155 -0
  128. package/dist/api/program/adjacency.d.ts.map +1 -0
  129. package/dist/api/program/areas.d.ts +360 -0
  130. package/dist/api/program/areas.d.ts.map +1 -0
  131. package/dist/api/program/classification.d.ts +135 -0
  132. package/dist/api/program/classification.d.ts.map +1 -0
  133. package/dist/api/program/cores.d.ts +174 -0
  134. package/dist/api/program/cores.d.ts.map +1 -0
  135. package/dist/api/program/departments.d.ts +431 -0
  136. package/dist/api/program/departments.d.ts.map +1 -0
  137. package/dist/api/program/index.d.ts +69 -0
  138. package/dist/api/program/index.d.ts.map +1 -0
  139. package/dist/api/program/layout.d.ts +63 -0
  140. package/dist/api/program/layout.d.ts.map +1 -0
  141. package/dist/api/program/metrics.d.ts +108 -0
  142. package/dist/api/program/metrics.d.ts.map +1 -0
  143. package/dist/api/program/site.d.ts +367 -0
  144. package/dist/api/program/site.d.ts.map +1 -0
  145. package/dist/api/program/spreadsheet.d.ts +2041 -0
  146. package/dist/api/program/spreadsheet.d.ts.map +1 -0
  147. package/dist/handles.d.ts +138 -0
  148. package/dist/handles.d.ts.map +1 -0
  149. package/dist/host-utils.d.ts +7 -5
  150. package/dist/host-utils.d.ts.map +1 -1
  151. package/dist/index.cjs +3897 -1542
  152. package/dist/index.cjs.map +1 -1
  153. package/dist/index.d.ts +1 -0
  154. package/dist/index.d.ts.map +1 -1
  155. package/dist/index.js +3326 -1462
  156. package/dist/index.js.map +1 -1
  157. package/package.json +6 -2
  158. package/scripts/generate-manifest.mjs +193 -0
  159. package/scripts/generate-manifest.test.mjs +193 -0
  160. package/src/api/core/buildings.ts +485 -0
  161. package/src/api/core/comment/index.ts +258 -0
  162. package/src/api/core/geom/create/index.ts +293 -0
  163. package/src/api/core/geom/delete/index.ts +78 -0
  164. package/src/api/core/geom/index.ts +24 -23
  165. package/src/api/core/geom/query/arc.ts +169 -0
  166. package/src/api/core/geom/query/brep.ts +444 -0
  167. package/src/api/core/geom/query/circle.ts +404 -0
  168. package/src/api/core/geom/query/contour.ts +540 -0
  169. package/src/api/core/geom/query/curve.ts +1078 -0
  170. package/src/api/core/geom/query/edge.ts +130 -0
  171. package/src/api/core/geom/query/face.ts +403 -0
  172. package/src/api/core/geom/query/halfedge.ts +210 -0
  173. package/src/api/core/geom/query/index.ts +63 -0
  174. package/src/api/core/geom/query/profile.ts +473 -0
  175. package/src/api/core/geom/query/vertex.ts +205 -0
  176. package/src/api/core/geom/update/contour.ts +315 -0
  177. package/src/api/core/geom/update/curve.ts +209 -0
  178. package/src/api/core/geom/update/index.ts +29 -0
  179. package/src/api/core/geom/update/profile.ts +377 -0
  180. package/src/api/core/groups.ts +521 -0
  181. package/src/api/core/history/index.ts +84 -0
  182. package/src/api/core/index.ts +46 -1
  183. package/src/api/core/layers.ts +333 -0
  184. package/src/api/core/math/quat.ts +112 -235
  185. package/src/api/core/math/vec3.ts +124 -159
  186. package/src/api/core/project/index.ts +418 -0
  187. package/src/api/core/tags.ts +808 -0
  188. package/src/api/core/units/index.ts +164 -0
  189. package/src/api/core/zoom/index.ts +47 -0
  190. package/src/api/design/boolean/index.ts +179 -0
  191. package/src/api/design/create/index.ts +886 -0
  192. package/src/api/design/delete/index.ts +67 -0
  193. package/src/api/design/doors/index.ts +285 -0
  194. package/src/api/design/edit/index.ts +54 -0
  195. package/src/api/design/erase/index.ts +151 -0
  196. package/src/api/design/furniture/index.ts +130 -0
  197. package/src/api/design/index.ts +162 -0
  198. package/src/api/design/lock.ts +42 -0
  199. package/src/api/design/materials/index.ts +301 -0
  200. package/src/api/design/query/geometry/index.ts +166 -0
  201. package/src/api/design/query/index.ts +937 -0
  202. package/src/api/design/query/spaces.ts +132 -0
  203. package/src/api/design/selection/index.ts +144 -0
  204. package/src/api/design/shared.ts +40 -0
  205. package/src/api/design/transform/index.ts +93 -0
  206. package/src/api/design/update/index.ts +117 -0
  207. package/src/api/design/windows/index.ts +207 -0
  208. package/src/api/entity/buildableEnvelope.ts +64 -23
  209. package/src/api/entity/department.ts +0 -113
  210. package/src/api/entity/index.ts +4 -9
  211. package/src/api/entity/referenceLine.ts +50 -38
  212. package/src/api/entity/space.ts +84 -440
  213. package/src/api/entity/story.ts +53 -42
  214. package/src/api/index.ts +17 -17
  215. package/src/api/presentation/aiInspiration.ts +362 -0
  216. package/src/api/presentation/diagrams.ts +84 -0
  217. package/src/api/presentation/import.ts +112 -0
  218. package/src/api/presentation/index.ts +48 -0
  219. package/src/api/presentation/sheets.ts +198 -0
  220. package/src/api/presentation/views.ts +303 -0
  221. package/src/api/program/adjacency.ts +164 -0
  222. package/src/api/program/areas.ts +335 -0
  223. package/src/api/program/classification.ts +138 -0
  224. package/src/api/program/cores.ts +171 -0
  225. package/src/api/program/departments.ts +465 -0
  226. package/src/api/program/index.ts +71 -0
  227. package/src/api/program/layout.ts +68 -0
  228. package/src/api/program/metrics.ts +120 -0
  229. package/src/api/program/site.ts +326 -0
  230. package/src/api/program/spreadsheet.ts +2075 -0
  231. package/src/handles.ts +148 -0
  232. package/src/host-utils.ts +10 -6
  233. package/src/index.ts +1 -0
  234. package/dist/api/core/geom/arc.d.ts +0 -81
  235. package/dist/api/core/geom/arc.d.ts.map +0 -1
  236. package/dist/api/core/geom/curve.d.ts +0 -70
  237. package/dist/api/core/geom/curve.d.ts.map +0 -1
  238. package/dist/api/core/geom/line.d.ts +0 -56
  239. package/dist/api/core/geom/line.d.ts.map +0 -1
  240. package/dist/api/core/geom/profile.d.ts +0 -121
  241. package/dist/api/core/geom/profile.d.ts.map +0 -1
  242. package/dist/api/documentation/aiInspiration.d.ts +0 -2155
  243. package/dist/api/documentation/aiInspiration.d.ts.map +0 -1
  244. package/dist/api/documentation/index.d.ts +0 -13
  245. package/dist/api/documentation/index.d.ts.map +0 -1
  246. package/dist/api/tools/copy.d.ts +0 -59
  247. package/dist/api/tools/copy.d.ts.map +0 -1
  248. package/dist/api/tools/index.d.ts +0 -29
  249. package/dist/api/tools/index.d.ts.map +0 -1
  250. package/dist/api/tools/offset.d.ts +0 -43
  251. package/dist/api/tools/offset.d.ts.map +0 -1
  252. package/dist/api/tools/selection.d.ts +0 -48
  253. package/dist/api/tools/selection.d.ts.map +0 -1
  254. package/dist/api/tools/transform.d.ts +0 -114
  255. package/dist/api/tools/transform.d.ts.map +0 -1
  256. package/dist/api/units/index.d.ts +0 -163
  257. package/dist/api/units/index.d.ts.map +0 -1
  258. package/src/api/core/geom/arc.ts +0 -70
  259. package/src/api/core/geom/curve.ts +0 -41
  260. package/src/api/core/geom/line.ts +0 -53
  261. package/src/api/core/geom/profile.ts +0 -94
  262. package/src/api/documentation/aiInspiration.ts +0 -871
  263. package/src/api/documentation/index.ts +0 -15
  264. package/src/api/tools/copy.ts +0 -55
  265. package/src/api/tools/index.ts +0 -35
  266. package/src/api/tools/offset.ts +0 -43
  267. package/src/api/tools/selection.ts +0 -51
  268. package/src/api/tools/transform.ts +0 -117
  269. package/src/api/units/index.ts +0 -163
@@ -1,354 +1,14 @@
1
1
  import * as z from "zod";
2
- import { PluginApiReturn } from "../../types";
3
2
  /**
4
- * Space (room/mass) management — create, query, update, and delete spaces.
5
- *
6
- * A **space** is a 3D volume representing a room or mass in the
7
- * Snaptrude scene. Spaces live on a particular story and carry
8
- * properties such as name, area, department, and room type.
9
- *
10
- * All methods are **host API calls** that return Promises and support
11
- * undo/redo via Snaptrude's command system.
12
- *
13
- * Accessed via `snaptrude.entity.space`.
14
- */
15
- export declare abstract class PluginSpaceApi {
16
- constructor();
17
- /**
18
- * Create a rectangular (box) space.
19
- *
20
- * Generates an axis-aligned box with the given dimensions at the
21
- * specified position. The created space is automatically assigned
22
- * to the active story and a default department.
23
- *
24
- * @param args - An object containing:
25
- * - {@linkcode PluginSpaceCreateRectangularArgs.position args.position} — Origin
26
- * position as a {@linkcode PVec3} in Babylon units
27
- * - {@linkcode PluginSpaceCreateRectangularArgs.dimensions args.dimensions} — Box
28
- * dimensions `{ width, height, depth }` in Babylon units
29
- * @returns A {@linkcode PluginSpaceCreateRectangularResult} with the `spaceId`
30
- * of the created space
31
- * @throws If space creation fails
32
- *
33
- * # Example
34
- * ```ts
35
- * const { vec3 } = snaptrude.core.math
36
- *
37
- * const { spaceId } = await snaptrude.entity.space.createRectangular({
38
- * position: vec3.new(0, 0, 0),
39
- * dimensions: { width: 5, height: 3, depth: 4 },
40
- * })
41
- * ```
42
- */
43
- abstract createRectangular({ position, dimensions, }: PluginSpaceCreateRectangularArgs): PluginApiReturn<PluginSpaceCreateRectangularResult>;
44
- /**
45
- * Create a space by extruding a 2D profile.
46
- *
47
- * The {@linkcode PluginSpaceCreateFromProfileArgs.profile profile} is used as
48
- * the outer boundary and extruded upward (along the Y axis) by
49
- * {@linkcode PluginSpaceCreateFromProfileArgs.extrudeHeight extrudeHeight},
50
- * then offset by {@linkcode PluginSpaceCreateFromProfileArgs.position
51
- * position}. Optional {@linkcode PluginSpaceCreateFromProfileArgs.innerProfiles
52
- * innerProfiles} are used as holes inside the outer boundary. The created
53
- * space is automatically assigned to the active story and a default department.
54
- *
55
- * Use {@linkcode PluginProfileApi.fromLinePoints} to quickly build a profile
56
- * from a list of points.
57
- *
58
- * @param args - An object containing:
59
- * - {@linkcode PluginSpaceCreateFromProfileArgs.profile args.profile} — A closed
60
- * {@linkcode PProfile} defining the outer floor shape
61
- * - {@linkcode PluginSpaceCreateFromProfileArgs.innerProfiles args.innerProfiles} —
62
- * Optional closed {@linkcode PProfile}`[]` loops to subtract as holes
63
- * - {@linkcode PluginSpaceCreateFromProfileArgs.extrudeHeight args.extrudeHeight} —
64
- * Extrusion height in Babylon units
65
- * - {@linkcode PluginSpaceCreateFromProfileArgs.position args.position} — Offset
66
- * position as a {@linkcode PVec3} in Babylon units
67
- * @returns A {@linkcode PluginSpaceCreateFromProfileResult} with the `spaceId`
68
- * of the created space
69
- * @throws If the profile is invalid or mesh creation fails
70
- *
71
- * # Example
72
- * ```ts
73
- * const { vec3 } = snaptrude.core.math
74
- *
75
- * const outerProfile = await snaptrude.core.geom.profile.fromLinePoints({
76
- * points: [
77
- * vec3.new(0, 0, 0),
78
- * vec3.new(10, 0, 0),
79
- * vec3.new(10, 0, 8),
80
- * vec3.new(0, 0, 8),
81
- * ],
82
- * })
83
- * const holeProfile = await snaptrude.core.geom.profile.fromLinePoints({
84
- * points: [
85
- * vec3.new(3, 0, 3),
86
- * vec3.new(7, 0, 3),
87
- * vec3.new(7, 0, 5),
88
- * vec3.new(3, 0, 5),
89
- * ],
90
- * })
91
- *
92
- * const { spaceId } = await snaptrude.entity.space.createFromProfile({
93
- * profile: outerProfile,
94
- * innerProfiles: [holeProfile],
95
- * extrudeHeight: 3,
96
- * position: vec3.new(0, 0, 0),
97
- * })
98
- * ```
99
- */
100
- abstract createFromProfile({ profile, innerProfiles, extrudeHeight, position, }: PluginSpaceCreateFromProfileArgs): PluginApiReturn<PluginSpaceCreateFromProfileResult>;
101
- /**
102
- * Update a space's BRep and mesh geometry by extruding a 2D profile.
103
- *
104
- * The {@linkcode PluginSpaceUpdateGeometryFromProfileArgs.profile profile} is
105
- * extruded upward (along the Y axis) by
106
- * {@linkcode PluginSpaceUpdateGeometryFromProfileArgs.extrudeHeight extrudeHeight}
107
- * and applied to the existing space. The space keeps the same `spaceId`,
108
- * metadata, department, and transform; only its geometry is replaced.
109
- *
110
- * Profile points are interpreted in scene coordinates. Profiles returned by
111
- * {@linkcode PluginSpaceApi.get} with `"profile"` can be passed back directly;
112
- * `"planPoints"` can be used to construct line-only profiles in the same X/Z
113
- * plan coordinate space.
114
- *
115
- * Use {@linkcode PluginProfileApi.fromLinePoints} to quickly build a profile
116
- * from a list of points.
117
- *
118
- * @param args - An object containing:
119
- * - {@linkcode PluginSpaceUpdateGeometryFromProfileArgs.spaceId args.spaceId} —
120
- * The unique space ID to update
121
- * - {@linkcode PluginSpaceUpdateGeometryFromProfileArgs.profile args.profile} —
122
- * A closed {@linkcode PProfile} defining the new floor shape
123
- * - {@linkcode PluginSpaceUpdateGeometryFromProfileArgs.extrudeHeight
124
- * args.extrudeHeight} — New extrusion height in Babylon units
125
- * @returns A {@linkcode PluginSpaceUpdateGeometryFromProfileResult} with the
126
- * `spaceId` of the updated space
127
- * @throws If the space does not exist, the component is not a space/mass, the
128
- * height is not positive, or the profile cannot create valid geometry
129
- *
130
- * # Example
131
- * ```ts
132
- * const { vec3 } = snaptrude.core.math
133
- *
134
- * const profile = await snaptrude.core.geom.profile.fromLinePoints({
135
- * points: [
136
- * vec3.new(0, 0, 0),
137
- * vec3.new(12, 0, 0),
138
- * vec3.new(12, 0, 6),
139
- * vec3.new(0, 0, 6),
140
- * ],
141
- * })
142
- *
143
- * const { spaceId } = await snaptrude.entity.space.updateGeometryFromProfile({
144
- * spaceId: "some-space-id",
145
- * profile,
146
- * extrudeHeight: 4,
147
- * })
148
- * ```
149
- */
150
- abstract updateGeometryFromProfile({ spaceId, profile, extrudeHeight, }: PluginSpaceUpdateGeometryFromProfileArgs): PluginApiReturn<PluginSpaceUpdateGeometryFromProfileResult>;
151
- /**
152
- * Get the IDs of all spaces in the current project.
153
- *
154
- * Returns every space (mass that is not a building) across all stories.
155
- * Use the returned IDs with {@linkcode PluginSpaceApi.get} to query
156
- * individual space properties.
157
- *
158
- * @returns A {@linkcode PluginSpaceGetAllResult} with a `spacesIds` array
159
- *
160
- * # Example
161
- * ```ts
162
- * const { spacesIds } = await snaptrude.entity.space.getAll()
163
- * console.log(`Project has ${spacesIds.length} spaces`)
164
- * ```
165
- */
166
- abstract getAll(): PluginApiReturn<PluginSpaceGetAllResult>;
167
- /**
168
- * Get properties of a space by its ID.
169
- *
170
- * Only the properties listed in {@linkcode PluginSpaceGetArgs.properties
171
- * args.properties} are returned — unlisted properties will be `undefined`
172
- * in the result.
173
- *
174
- * @param args - An object containing:
175
- * - {@linkcode PluginSpaceGetArgs.spaceId args.spaceId} — The unique space ID
176
- * (as returned by creation methods or {@linkcode PluginSpaceApi.getAll})
177
- * - {@linkcode PluginSpaceGetArgs.properties args.properties} — Array of property
178
- * names to retrieve. See {@linkcode PluginSpaceGetProperty} for available values.
179
- * @returns A partial {@linkcode PluginSpaceGetResult} containing only the requested
180
- * properties
181
- * @throws If the space does not exist or the component is not a space/mass
182
- *
183
- * # Example
184
- * ```ts
185
- * const info = await snaptrude.entity.space.get({
186
- * spaceId: "some-space-id",
187
- * properties: ["name", "area", "position"],
188
- * })
189
- * console.log(info.name, info.area, info.position)
190
- * ```
191
- */
192
- abstract get({ spaceId, properties, }: PluginSpaceGetArgs): PluginApiReturn<PluginSpaceGetResult>;
193
- /**
194
- * Delete a space by its ID.
195
- *
196
- * Permanently removes the space and its associated mesh from the scene.
197
- * This operation is undoable via Snaptrude's command system.
198
- *
199
- * @param args - An object containing:
200
- * - {@linkcode PluginSpaceDeleteArgs.spaceId args.spaceId} — The unique space ID
201
- * to delete
202
- * @throws If the space does not exist or the component is not a space/mass
203
- *
204
- * # Example
205
- * ```ts
206
- * await snaptrude.entity.space.delete({ spaceId: "some-space-id" })
207
- * ```
208
- */
209
- abstract delete({ spaceId, }: PluginSpaceDeleteArgs): PluginApiReturn<PluginSpaceDeleteResult>;
210
- /**
211
- * Update properties of a space by its ID.
212
- *
213
- * Only the properties provided in {@linkcode PluginSpaceUpdateArgs.properties
214
- * args.properties} will be updated — omitted properties remain unchanged.
215
- * This operation is undoable via Snaptrude's command system.
216
- *
217
- * @param args - An object containing:
218
- * - {@linkcode PluginSpaceUpdateArgs.spaceId args.spaceId} — The unique space ID
219
- * to update
220
- * - {@linkcode PluginSpaceUpdateArgs.properties args.properties} — Key/value pairs
221
- * of properties to update. See {@linkcode PluginSpaceUpdateArgs} for supported fields.
222
- * @returns A {@linkcode PluginSpaceUpdateResult} echoing back the `spaceId` and
223
- * the updated property values
224
- * @throws If the space does not exist or the component is not a space/mass
225
- *
226
- * # Example
227
- * ```ts
228
- * const result = await snaptrude.entity.space.update({
229
- * spaceId: "some-space-id",
230
- * properties: {
231
- * room_type: "Kitchen",
232
- * massType: "Room",
233
- * departmentId: "CORE",
234
- * },
235
- * })
236
- * ```
237
- */
238
- abstract update(args: PluginSpaceUpdateArgs): PluginApiReturn<PluginSpaceUpdateResult>;
239
- /**
240
- * Create many spaces in a single undoable operation.
241
- *
242
- * Each item is either a rectangular box (`kind: "rectangular"`) or an
243
- * extruded profile (`kind: "profile"`), and may optionally set `room_type`,
244
- * `spaceType`, `massType`, and `departmentId`. All creations — and the
245
- * optional property assignments — are batched into **one** command, so the
246
- * entire batch is undone/redone in a single step.
247
- *
248
- * All items are validated first; if any item is invalid the call **throws**
249
- * and no spaces are created (nothing is applied) — consistent with the
250
- * single-item create methods.
251
- *
252
- * @param args - {@linkcode PluginSpaceBulkCreateArgs} with an `items` array
253
- * @returns A {@linkcode PluginSpaceBulkCreateResult} with the `spaceIds` of
254
- * the created spaces, in input order
255
- * @throws If any item has invalid dimensions, height, or profile
256
- *
257
- * # Example
258
- * ```ts
259
- * const { vec3 } = snaptrude.core.math
260
- *
261
- * const { spaceIds } = await snaptrude.entity.space.bulkCreate({
262
- * items: [
263
- * {
264
- * kind: "rectangular",
265
- * position: vec3.new(0, 0, 0),
266
- * dimensions: { width: 5, height: 3, depth: 4 },
267
- * spaceType: "Room",
268
- * departmentId: "CORE",
269
- * },
270
- * {
271
- * kind: "profile",
272
- * profile: await snaptrude.core.geom.profile.fromLinePoints({
273
- * points: [vec3.new(0, 0, 0), vec3.new(8, 0, 0), vec3.new(8, 0, 6), vec3.new(0, 0, 6)],
274
- * }),
275
- * extrudeHeight: 3,
276
- * position: vec3.new(10, 0, 0),
277
- * massType: "Room",
278
- * },
279
- * ],
280
- * })
281
- * ```
282
- */
283
- abstract bulkCreate(args: PluginSpaceBulkCreateArgs): PluginApiReturn<PluginSpaceBulkCreateResult>;
284
- /**
285
- * Update many existing spaces in a single undoable operation.
286
- *
287
- * Each item targets an existing space by `spaceId` and may change its
288
- * geometry (`profile` + `extrudeHeight`, which must be supplied together) and/or
289
- * its `properties` (`room_type`, `massType`, `spaceType`, `areaClass`,
290
- * `departmentId` —
291
- * nested under `properties`, mirroring {@linkcode PluginSpaceApi.update}). All
292
- * changes are batched into **one** command, so the entire batch is
293
- * undone/redone in a single step.
294
- *
295
- * All items are validated first; if any item is invalid — an unknown
296
- * `spaceId`, a non-positive height, or supplying only one of
297
- * `profile`/`extrudeHeight` — the call **throws** and no changes are applied.
298
- *
299
- * @param args - {@linkcode PluginSpaceBulkUpdateArgs} with an `items` array
300
- * @returns A {@linkcode PluginSpaceBulkUpdateResult} echoing one
301
- * {@linkcode PluginSpaceUpdateResult} per item in `spaces`, in input order
302
- * @throws If any item targets an unknown space, has a non-positive height, or
303
- * supplies only one of `profile`/`extrudeHeight`
304
- *
305
- * # Example
306
- * ```ts
307
- * const { spaces } = await snaptrude.entity.space.bulkUpdate({
308
- * items: [
309
- * { spaceId: "space-a", properties: { room_type: "Kitchen", spaceType: "Room" } },
310
- * { spaceId: "space-b", profile, extrudeHeight: 4 },
311
- * ],
312
- * })
313
- * ```
314
- */
315
- abstract bulkUpdate(args: PluginSpaceBulkUpdateArgs): PluginApiReturn<PluginSpaceBulkUpdateResult>;
316
- /**
317
- * Delete many spaces in a single undoable operation.
318
- *
319
- * All deletions are batched into **one** command, so the entire batch is
320
- * undone/redone in a single step.
321
- *
322
- * All IDs are validated first; if any ID is unknown or is not a space the
323
- * call **throws** and no spaces are deleted — consistent with the single-item
324
- * {@linkcode PluginSpaceApi.delete}.
325
- *
326
- * @param args - {@linkcode PluginSpaceBulkDeleteArgs} with a `spaceIds` array
327
- * @returns A {@linkcode PluginSpaceBulkDeleteResult} with `deletedSpaceIds`
328
- * (the removed IDs, in input order)
329
- * @throws If any ID does not resolve to an existing space
330
- *
331
- * # Example
332
- * ```ts
333
- * await snaptrude.entity.space.bulkDelete({ spaceIds: ["space-a", "space-b"] })
334
- * ```
335
- */
336
- abstract bulkDelete(args: PluginSpaceBulkDeleteArgs): PluginApiReturn<PluginSpaceBulkDeleteResult>;
337
- }
338
- /**
339
- * Arguments for {@linkcode PluginSpaceApi.createRectangular}.
3
+ * Arguments for `createRectangular`.
340
4
  *
341
5
  * | Property | Type | Description |
342
6
  * |---|---|---|
343
- * | `position` | {@linkcode PVec3} | Origin position in Babylon units |
7
+ * | `position` | {@linkcode Vec3Handle} | Origin position in Babylon units |
344
8
  * | `dimensions` | `{ width, height, depth }` | Box dimensions in Babylon units |
345
9
  */
346
10
  export declare const PluginSpaceCreateRectangularArgs: z.ZodObject<{
347
- position: z.ZodObject<{
348
- x: z.ZodNumber;
349
- y: z.ZodNumber;
350
- z: z.ZodNumber;
351
- }, z.core.$strip>;
11
+ position: z.ZodPipe<z.ZodString, z.ZodTransform<import("../..").Handle<"vec3">, string>>;
352
12
  dimensions: z.ZodObject<{
353
13
  width: z.ZodNumber;
354
14
  height: z.ZodNumber;
@@ -357,7 +17,7 @@ export declare const PluginSpaceCreateRectangularArgs: z.ZodObject<{
357
17
  }, z.core.$strip>;
358
18
  export type PluginSpaceCreateRectangularArgs = z.infer<typeof PluginSpaceCreateRectangularArgs>;
359
19
  /**
360
- * Result of {@linkcode PluginSpaceApi.createRectangular}.
20
+ * Result of `createRectangular`.
361
21
  *
362
22
  * | Property | Type | Description |
363
23
  * |---|---|---|
@@ -368,100 +28,24 @@ export declare const PluginSpaceCreateRectangularResult: z.ZodObject<{
368
28
  }, z.core.$strip>;
369
29
  export type PluginSpaceCreateRectangularResult = z.infer<typeof PluginSpaceCreateRectangularResult>;
370
30
  /**
371
- * Arguments for {@linkcode PluginSpaceApi.createFromProfile}.
31
+ * Arguments for `createFromProfile`.
372
32
  *
373
33
  * | Property | Type | Description |
374
34
  * |---|---|---|
375
- * | `profile` | {@linkcode PProfile} | Closed 2D profile defining the outer floor shape |
376
- * | `innerProfiles` | {@linkcode PProfile}`[]` | Optional closed profiles to subtract as holes |
35
+ * | `profile` | {@linkcode ProfileHandle} | Handle to a closed 2D profile (the outer floor shape) |
36
+ * | `innerProfiles` | {@linkcode ProfileHandle}`[]` | Optional profile handles to subtract as holes |
377
37
  * | `extrudeHeight` | `number` | Extrusion height in Babylon units |
378
- * | `position` | {@linkcode PVec3} | Offset position in Babylon units |
38
+ * | `position` | {@linkcode Vec3Handle} | Offset position in Babylon units |
379
39
  */
380
40
  export declare const PluginSpaceCreateFromProfileArgs: z.ZodObject<{
381
- profile: z.ZodObject<{
382
- curves: z.ZodArray<z.ZodDiscriminatedUnion<[z.ZodObject<{
383
- curveType: z.ZodLiteral<"Line">;
384
- startPoint: z.ZodObject<{
385
- x: z.ZodNumber;
386
- y: z.ZodNumber;
387
- z: z.ZodNumber;
388
- }, z.core.$strip>;
389
- endPoint: z.ZodObject<{
390
- x: z.ZodNumber;
391
- y: z.ZodNumber;
392
- z: z.ZodNumber;
393
- }, z.core.$strip>;
394
- }, z.core.$strip>, z.ZodObject<{
395
- curveType: z.ZodLiteral<"Arc">;
396
- startPoint: z.ZodObject<{
397
- x: z.ZodNumber;
398
- y: z.ZodNumber;
399
- z: z.ZodNumber;
400
- }, z.core.$strip>;
401
- endPoint: z.ZodObject<{
402
- x: z.ZodNumber;
403
- y: z.ZodNumber;
404
- z: z.ZodNumber;
405
- }, z.core.$strip>;
406
- centrePoint: z.ZodObject<{
407
- x: z.ZodNumber;
408
- y: z.ZodNumber;
409
- z: z.ZodNumber;
410
- }, z.core.$strip>;
411
- axis: z.ZodObject<{
412
- x: z.ZodNumber;
413
- y: z.ZodNumber;
414
- z: z.ZodNumber;
415
- }, z.core.$strip>;
416
- }, z.core.$strip>], "curveType">>;
417
- }, z.core.$strip>;
418
- innerProfiles: z.ZodOptional<z.ZodArray<z.ZodObject<{
419
- curves: z.ZodArray<z.ZodDiscriminatedUnion<[z.ZodObject<{
420
- curveType: z.ZodLiteral<"Line">;
421
- startPoint: z.ZodObject<{
422
- x: z.ZodNumber;
423
- y: z.ZodNumber;
424
- z: z.ZodNumber;
425
- }, z.core.$strip>;
426
- endPoint: z.ZodObject<{
427
- x: z.ZodNumber;
428
- y: z.ZodNumber;
429
- z: z.ZodNumber;
430
- }, z.core.$strip>;
431
- }, z.core.$strip>, z.ZodObject<{
432
- curveType: z.ZodLiteral<"Arc">;
433
- startPoint: z.ZodObject<{
434
- x: z.ZodNumber;
435
- y: z.ZodNumber;
436
- z: z.ZodNumber;
437
- }, z.core.$strip>;
438
- endPoint: z.ZodObject<{
439
- x: z.ZodNumber;
440
- y: z.ZodNumber;
441
- z: z.ZodNumber;
442
- }, z.core.$strip>;
443
- centrePoint: z.ZodObject<{
444
- x: z.ZodNumber;
445
- y: z.ZodNumber;
446
- z: z.ZodNumber;
447
- }, z.core.$strip>;
448
- axis: z.ZodObject<{
449
- x: z.ZodNumber;
450
- y: z.ZodNumber;
451
- z: z.ZodNumber;
452
- }, z.core.$strip>;
453
- }, z.core.$strip>], "curveType">>;
454
- }, z.core.$strip>>>;
41
+ profile: z.ZodPipe<z.ZodString, z.ZodTransform<import("../..").Handle<"profile">, string>>;
42
+ innerProfiles: z.ZodOptional<z.ZodArray<z.ZodPipe<z.ZodString, z.ZodTransform<import("../..").Handle<"profile">, string>>>>;
455
43
  extrudeHeight: z.ZodNumber;
456
- position: z.ZodObject<{
457
- x: z.ZodNumber;
458
- y: z.ZodNumber;
459
- z: z.ZodNumber;
460
- }, z.core.$strip>;
44
+ position: z.ZodPipe<z.ZodString, z.ZodTransform<import("../..").Handle<"vec3">, string>>;
461
45
  }, z.core.$strip>;
462
46
  export type PluginSpaceCreateFromProfileArgs = z.infer<typeof PluginSpaceCreateFromProfileArgs>;
463
47
  /**
464
- * Result of {@linkcode PluginSpaceApi.createFromProfile}.
48
+ * Result of `createFromProfile`.
465
49
  *
466
50
  * | Property | Type | Description |
467
51
  * |---|---|---|
@@ -472,58 +56,22 @@ export declare const PluginSpaceCreateFromProfileResult: z.ZodObject<{
472
56
  }, z.core.$strip>;
473
57
  export type PluginSpaceCreateFromProfileResult = z.infer<typeof PluginSpaceCreateFromProfileResult>;
474
58
  /**
475
- * Arguments for {@linkcode PluginSpaceApi.updateGeometryFromProfile}.
59
+ * Arguments for `updateGeometryFromProfile`.
476
60
  *
477
61
  * | Property | Type | Description |
478
62
  * |---|---|---|
479
63
  * | `spaceId` | `string` | Space to update |
480
- * | `profile` | {@linkcode PProfile} | Closed 2D profile defining the new floor shape |
64
+ * | `profile` | {@linkcode ProfileHandle} | Handle to the closed 2D profile defining the new floor shape |
481
65
  * | `extrudeHeight` | `number` | New extrusion height in Babylon units |
482
66
  */
483
67
  export declare const PluginSpaceUpdateGeometryFromProfileArgs: z.ZodObject<{
484
68
  spaceId: z.ZodString;
485
- profile: z.ZodObject<{
486
- curves: z.ZodArray<z.ZodDiscriminatedUnion<[z.ZodObject<{
487
- curveType: z.ZodLiteral<"Line">;
488
- startPoint: z.ZodObject<{
489
- x: z.ZodNumber;
490
- y: z.ZodNumber;
491
- z: z.ZodNumber;
492
- }, z.core.$strip>;
493
- endPoint: z.ZodObject<{
494
- x: z.ZodNumber;
495
- y: z.ZodNumber;
496
- z: z.ZodNumber;
497
- }, z.core.$strip>;
498
- }, z.core.$strip>, z.ZodObject<{
499
- curveType: z.ZodLiteral<"Arc">;
500
- startPoint: z.ZodObject<{
501
- x: z.ZodNumber;
502
- y: z.ZodNumber;
503
- z: z.ZodNumber;
504
- }, z.core.$strip>;
505
- endPoint: z.ZodObject<{
506
- x: z.ZodNumber;
507
- y: z.ZodNumber;
508
- z: z.ZodNumber;
509
- }, z.core.$strip>;
510
- centrePoint: z.ZodObject<{
511
- x: z.ZodNumber;
512
- y: z.ZodNumber;
513
- z: z.ZodNumber;
514
- }, z.core.$strip>;
515
- axis: z.ZodObject<{
516
- x: z.ZodNumber;
517
- y: z.ZodNumber;
518
- z: z.ZodNumber;
519
- }, z.core.$strip>;
520
- }, z.core.$strip>], "curveType">>;
521
- }, z.core.$strip>;
69
+ profile: z.ZodPipe<z.ZodString, z.ZodTransform<import("../..").Handle<"profile">, string>>;
522
70
  extrudeHeight: z.ZodNumber;
523
71
  }, z.core.$strip>;
524
72
  export type PluginSpaceUpdateGeometryFromProfileArgs = z.infer<typeof PluginSpaceUpdateGeometryFromProfileArgs>;
525
73
  /**
526
- * Result of {@linkcode PluginSpaceApi.updateGeometryFromProfile}.
74
+ * Result of `updateGeometryFromProfile`.
527
75
  *
528
76
  * | Property | Type | Description |
529
77
  * |---|---|---|
@@ -553,7 +101,6 @@ export type PluginSpaceUpdateGeometryFromProfileResult = z.infer<typeof PluginSp
553
101
  * | `"height"` | `number` | Height dimension |
554
102
  * | `"massType"` | `string \| null` | Mass type classification |
555
103
  * | `"spaceType"` | `string \| null` | Space type classification (Room, Balcony, etc.) |
556
- * | `"areaClass"` | {@linkcode PluginAreaClass} | Effective area classification (`"NET"`, `"GROSS"`, or `"EXCLUDED"`), resolving any per-space override then the space-type default. Never null. |
557
104
  * | `"storey"` | `number \| null` | Story the space belongs to |
558
105
  * | `"departmentId"` | `string \| null` | Assigned department ID |
559
106
  * | `"departmentName"` | `string` | Assigned department name |
@@ -562,26 +109,30 @@ export type PluginSpaceUpdateGeometryFromProfileResult = z.infer<typeof PluginSp
562
109
  * **Derived from mesh:**
563
110
  * | Value | Return Type | Description |
564
111
  * |---|---|---|
565
- * | `"position"` | {@linkcode PVec3} | Local position relative to parent |
566
- * | `"absolutePosition"` | {@linkcode PVec3} | Absolute position in the scene |
567
- * | `"rotation"` | {@linkcode PVec3} | Euler rotation angles (radians) |
568
- * | `"rotationQuaternion"` | {@linkcode PQuat} \| `null` | Quaternion rotation, or `null` if unset |
112
+ * | `"position"` | {@linkcode Vec3Components} | Local position relative to parent |
113
+ * | `"absolutePosition"` | {@linkcode Vec3Components} | Absolute position in the scene |
114
+ * | `"rotation"` | {@linkcode Vec3Components} | Euler rotation angles (radians) |
115
+ * | `"rotationQuaternion"` | {@linkcode QuatComponents} \| `null` | Quaternion rotation, or `null` if unset |
569
116
  *
570
117
  * **Derived from brep:**
571
118
  * | Value | Return Type | Description |
572
119
  * |---|---|---|
573
- * | `"planPoints"` | {@linkcode PVec3}`[]` | Bottom outer profile points in world space with `y = 0` (2D plan). No closing duplicate point. |
574
- * | `"profile"` | {@linkcode PProfile} | Bottom outer profile in world space, preserving line/arc curve data. |
575
- * | `"innerProfiles"` | {@linkcode PProfile}`[]` | Bottom inner profiles (holes) in world space, preserving line/arc curve data. Empty array when the space has no holes. |
576
- * | `"innerPlanPoints"` | {@linkcode PVec3}`[][]` | One point loop per inner profile (hole) in world space with `y = 0` (2D plan). No closing duplicate point. Empty array when the space has no holes. |
120
+ * | `"planPoints"` | {@linkcode Vec3Components}`[]` | Bottom outer profile points in world space with `y = 0` (2D plan). No closing duplicate point. |
121
+ * | `"profile"` | {@linkcode CurveHandle}`[]` | Bottom outer profile curves in world space, as opaque curve handles. Read coordinates via the `core.geom.curve` read API. |
122
+ * | `"innerProfiles"` | {@linkcode CurveHandle}`[][]` | Inner (hole) profile curve loops in world space one loop per hole, `[]` when the space has none. Each curve is an opaque handle. |
123
+ * | `"innerPlanPoints"` | {@linkcode Vec3Components}`[][]` | Inner (hole) profile points in world space with `y = 0` one loop per hole, no closing duplicate, `[]` when none. |
124
+ *
125
+ * **Derived from adjacency manager:**
126
+ * | Value | Return Type | Description |
127
+ * |---|---|---|
128
+ * | `"adjacency"` | `{ spaceId: string; value: number }[]` | Adjacency relationships to other spaces. `value`: `2` = Direct (required), `1` = Indirect or physical contact, `-1` = Restricted; `0` (no relationship) entries are filtered out. Empty when adjacency has never been computed — see `program.adjacency.compute`. |
577
129
  */
578
130
  export declare const PluginSpaceGetProperty: z.ZodEnum<{
579
- type: "type";
580
- name: "name";
581
- departmentId: "departmentId";
582
- id: "id";
583
131
  profile: "profile";
132
+ type: "type";
584
133
  position: "position";
134
+ id: "id";
135
+ name: "name";
585
136
  height: "height";
586
137
  depth: "depth";
587
138
  innerProfiles: "innerProfiles";
@@ -592,6 +143,7 @@ export declare const PluginSpaceGetProperty: z.ZodEnum<{
592
143
  spaceType: "spaceType";
593
144
  areaClass: "areaClass";
594
145
  storey: "storey";
146
+ departmentId: "departmentId";
595
147
  departmentName: "departmentName";
596
148
  departmentColor: "departmentColor";
597
149
  absolutePosition: "absolutePosition";
@@ -602,7 +154,7 @@ export declare const PluginSpaceGetProperty: z.ZodEnum<{
602
154
  adjacency: "adjacency";
603
155
  }>;
604
156
  /**
605
- * Arguments for {@linkcode PluginSpaceApi.get}.
157
+ * Arguments for `get`.
606
158
  *
607
159
  * | Property | Type | Description |
608
160
  * |---|---|---|
@@ -612,12 +164,11 @@ export declare const PluginSpaceGetProperty: z.ZodEnum<{
612
164
  export declare const PluginSpaceGetArgs: z.ZodObject<{
613
165
  spaceId: z.ZodString;
614
166
  properties: z.ZodArray<z.ZodEnum<{
615
- type: "type";
616
- name: "name";
617
- departmentId: "departmentId";
618
- id: "id";
619
167
  profile: "profile";
168
+ type: "type";
620
169
  position: "position";
170
+ id: "id";
171
+ name: "name";
621
172
  height: "height";
622
173
  depth: "depth";
623
174
  innerProfiles: "innerProfiles";
@@ -628,6 +179,7 @@ export declare const PluginSpaceGetArgs: z.ZodObject<{
628
179
  spaceType: "spaceType";
629
180
  areaClass: "areaClass";
630
181
  storey: "storey";
182
+ departmentId: "departmentId";
631
183
  departmentName: "departmentName";
632
184
  departmentColor: "departmentColor";
633
185
  absolutePosition: "absolutePosition";
@@ -669,18 +221,16 @@ export declare const PluginSpaceType: z.ZodEnum<{
669
221
  Envelope: "Envelope";
670
222
  Parking: "Parking";
671
223
  }>;
224
+ /** The space-type value union (same-name type alias for positional signatures). */
225
+ export type PluginSpaceType = z.infer<typeof PluginSpaceType>;
672
226
  /**
673
- * Area classification for a space controls which area total the space's
674
- * footprint contributes to.
227
+ * Area-class classification of a space (mirrors the internal `AreaClass` enum).
675
228
  *
676
229
  * | Value | Description |
677
230
  * |---|---|
678
- * | `"NET"` | Counted toward the net (carpet) area total |
679
- * | `"GROSS"` | Counted toward the gross (built-up) area total |
680
- * | `"EXCLUDED"` | Counted toward neither total |
681
- *
682
- * The classification does **not** change a space's own footprint area — it
683
- * only decides which project-level total that footprint is summed into.
231
+ * | `"NET"` | Net (usable) area |
232
+ * | `"GROSS"` | Gross area |
233
+ * | `"EXCLUDED"` | Excluded from area totals |
684
234
  */
685
235
  export declare const PluginAreaClass: z.ZodEnum<{
686
236
  NET: "NET";
@@ -688,7 +238,7 @@ export declare const PluginAreaClass: z.ZodEnum<{
688
238
  EXCLUDED: "EXCLUDED";
689
239
  }>;
690
240
  /**
691
- * Result of {@linkcode PluginSpaceApi.get}.
241
+ * Result of `get`.
692
242
  *
693
243
  * A partial object — only the properties that were requested in
694
244
  * {@linkcode PluginSpaceGetArgs.properties} will be present.
@@ -750,80 +300,8 @@ export declare const PluginSpaceGetResult: z.ZodObject<{
750
300
  y: z.ZodNumber;
751
301
  z: z.ZodNumber;
752
302
  }, z.core.$strip>>>;
753
- profile: z.ZodOptional<z.ZodObject<{
754
- curves: z.ZodArray<z.ZodDiscriminatedUnion<[z.ZodObject<{
755
- curveType: z.ZodLiteral<"Line">;
756
- startPoint: z.ZodObject<{
757
- x: z.ZodNumber;
758
- y: z.ZodNumber;
759
- z: z.ZodNumber;
760
- }, z.core.$strip>;
761
- endPoint: z.ZodObject<{
762
- x: z.ZodNumber;
763
- y: z.ZodNumber;
764
- z: z.ZodNumber;
765
- }, z.core.$strip>;
766
- }, z.core.$strip>, z.ZodObject<{
767
- curveType: z.ZodLiteral<"Arc">;
768
- startPoint: z.ZodObject<{
769
- x: z.ZodNumber;
770
- y: z.ZodNumber;
771
- z: z.ZodNumber;
772
- }, z.core.$strip>;
773
- endPoint: z.ZodObject<{
774
- x: z.ZodNumber;
775
- y: z.ZodNumber;
776
- z: z.ZodNumber;
777
- }, z.core.$strip>;
778
- centrePoint: z.ZodObject<{
779
- x: z.ZodNumber;
780
- y: z.ZodNumber;
781
- z: z.ZodNumber;
782
- }, z.core.$strip>;
783
- axis: z.ZodObject<{
784
- x: z.ZodNumber;
785
- y: z.ZodNumber;
786
- z: z.ZodNumber;
787
- }, z.core.$strip>;
788
- }, z.core.$strip>], "curveType">>;
789
- }, z.core.$strip>>;
790
- innerProfiles: z.ZodOptional<z.ZodArray<z.ZodObject<{
791
- curves: z.ZodArray<z.ZodDiscriminatedUnion<[z.ZodObject<{
792
- curveType: z.ZodLiteral<"Line">;
793
- startPoint: z.ZodObject<{
794
- x: z.ZodNumber;
795
- y: z.ZodNumber;
796
- z: z.ZodNumber;
797
- }, z.core.$strip>;
798
- endPoint: z.ZodObject<{
799
- x: z.ZodNumber;
800
- y: z.ZodNumber;
801
- z: z.ZodNumber;
802
- }, z.core.$strip>;
803
- }, z.core.$strip>, z.ZodObject<{
804
- curveType: z.ZodLiteral<"Arc">;
805
- startPoint: z.ZodObject<{
806
- x: z.ZodNumber;
807
- y: z.ZodNumber;
808
- z: z.ZodNumber;
809
- }, z.core.$strip>;
810
- endPoint: z.ZodObject<{
811
- x: z.ZodNumber;
812
- y: z.ZodNumber;
813
- z: z.ZodNumber;
814
- }, z.core.$strip>;
815
- centrePoint: z.ZodObject<{
816
- x: z.ZodNumber;
817
- y: z.ZodNumber;
818
- z: z.ZodNumber;
819
- }, z.core.$strip>;
820
- axis: z.ZodObject<{
821
- x: z.ZodNumber;
822
- y: z.ZodNumber;
823
- z: z.ZodNumber;
824
- }, z.core.$strip>;
825
- }, z.core.$strip>], "curveType">>;
826
- }, z.core.$strip>>>;
303
+ profile: z.ZodOptional<z.ZodArray<z.ZodUnion<readonly [z.ZodPipe<z.ZodString, z.ZodTransform<import("../..").Handle<"line">, string>>, z.ZodPipe<z.ZodString, z.ZodTransform<import("../..").Handle<"arc">, string>>]>>>;
304
+ innerProfiles: z.ZodOptional<z.ZodArray<z.ZodArray<z.ZodUnion<readonly [z.ZodPipe<z.ZodString, z.ZodTransform<import("../..").Handle<"line">, string>>, z.ZodPipe<z.ZodString, z.ZodTransform<import("../..").Handle<"arc">, string>>]>>>>;
827
305
  innerPlanPoints: z.ZodOptional<z.ZodArray<z.ZodArray<z.ZodObject<{
828
306
  x: z.ZodNumber;
829
307
  y: z.ZodNumber;
@@ -836,7 +314,7 @@ export declare const PluginSpaceGetResult: z.ZodObject<{
836
314
  }, z.core.$strip>;
837
315
  export type PluginSpaceGetResult = z.infer<typeof PluginSpaceGetResult>;
838
316
  /**
839
- * Result of {@linkcode PluginSpaceApi.getAll}.
317
+ * Result of `getAll`.
840
318
  *
841
319
  * | Property | Type | Description |
842
320
  * |---|---|---|
@@ -847,7 +325,7 @@ export declare const PluginSpaceGetAllResult: z.ZodObject<{
847
325
  }, z.core.$strip>;
848
326
  export type PluginSpaceGetAllResult = z.infer<typeof PluginSpaceGetAllResult>;
849
327
  /**
850
- * Arguments for {@linkcode PluginSpaceApi.delete}.
328
+ * Arguments for `delete`.
851
329
  *
852
330
  * | Property | Type | Description |
853
331
  * |---|---|---|
@@ -857,7 +335,7 @@ export declare const PluginSpaceDeleteArgs: z.ZodObject<{
857
335
  spaceId: z.ZodString;
858
336
  }, z.core.$strip>;
859
337
  export type PluginSpaceDeleteArgs = z.infer<typeof PluginSpaceDeleteArgs>;
860
- /** Result type for {@linkcode PluginSpaceApi.delete} — returns nothing on success. */
338
+ /** Result type for `delete` — returns nothing on success. */
861
339
  export type PluginSpaceDeleteResult = void;
862
340
  /**
863
341
  * Supported mass type values for {@linkcode PluginSpaceUpdateArgs.properties.massType}.
@@ -893,6 +371,8 @@ export declare const PluginMassType: z.ZodEnum<{
893
371
  Mass: "Mass";
894
372
  Site: "Site";
895
373
  }>;
374
+ /** The mass-type value union (same-name type alias for positional signatures). */
375
+ export type PluginMassType = z.infer<typeof PluginMassType>;
896
376
  /**
897
377
  * Well-known (built-in) department IDs.
898
378
  *
@@ -919,8 +399,10 @@ export declare const PluginDepartmentId: z.ZodUnion<readonly [z.ZodEnum<{
919
399
  ENVELOPE: "ENVELOPE";
920
400
  CORE: "CORE";
921
401
  }>, z.ZodUUID]>;
402
+ /** The department-id value union (same-name type alias for positional signatures). */
403
+ export type PluginDepartmentId = z.infer<typeof PluginDepartmentId>;
922
404
  /**
923
- * Arguments for {@linkcode PluginSpaceApi.update}.
405
+ * Arguments for `update`.
924
406
  *
925
407
  * | Property | Type | Description |
926
408
  * |---|---|---|
@@ -928,7 +410,6 @@ export declare const PluginDepartmentId: z.ZodUnion<readonly [z.ZodEnum<{
928
410
  * | `properties` | `object` | Key/value pairs of properties to update (all optional) |
929
411
  * | `properties.room_type` | `string?` | New room type label |
930
412
  * | `properties.massType` | {@linkcode PluginMassType}`?` | New mass type |
931
- * | `properties.areaClass` | {@linkcode PluginAreaClass}`?` | New area classification. Sets an explicit per-space override (`"NET"`, `"GROSS"`, or `"EXCLUDED"`) that wins over the space-type default. |
932
413
  * | `properties.departmentId` | {@linkcode PluginDepartmentId}`?` | New department ID |
933
414
  */
934
415
  export declare const PluginSpaceUpdateArgs: z.ZodObject<{
@@ -976,7 +457,7 @@ export declare const PluginSpaceUpdateArgs: z.ZodObject<{
976
457
  }, z.core.$strip>;
977
458
  export type PluginSpaceUpdateArgs = z.infer<typeof PluginSpaceUpdateArgs>;
978
459
  /**
979
- * Result of {@linkcode PluginSpaceApi.update}.
460
+ * Result of `update`.
980
461
  *
981
462
  * Echoes back the `spaceId` and the values of properties that were updated.
982
463
  * Properties that were not included in the update request will be `undefined`.
@@ -987,7 +468,6 @@ export type PluginSpaceUpdateArgs = z.infer<typeof PluginSpaceUpdateArgs>;
987
468
  * | `room_type` | `string?` | Updated room type (if changed) |
988
469
  * | `massType` | `string?` | Updated mass type (if changed) |
989
470
  * | `spaceType` | `string?` | Updated space type (if changed) |
990
- * | `areaClass` | {@linkcode PluginAreaClass}`?` | Updated area classification (if changed) |
991
471
  * | `departmentId` | `string \| null?` | Updated department ID (if changed) |
992
472
  */
993
473
  export declare const PluginSpaceUpdateResult: z.ZodObject<{
@@ -1004,7 +484,7 @@ export declare const PluginSpaceUpdateResult: z.ZodObject<{
1004
484
  }, z.core.$strip>;
1005
485
  export type PluginSpaceUpdateResult = z.infer<typeof PluginSpaceUpdateResult>;
1006
486
  /**
1007
- * A single item for {@linkcode PluginSpaceApi.bulkCreate}.
487
+ * A single item for `bulkCreate`.
1008
488
  *
1009
489
  * Discriminated on `kind`:
1010
490
  * - `"rectangular"` — a box defined by `position` + `dimensions` (mirrors
@@ -1018,11 +498,7 @@ export type PluginSpaceUpdateResult = z.infer<typeof PluginSpaceUpdateResult>;
1018
498
  */
1019
499
  export declare const PluginSpaceBulkCreateItem: z.ZodDiscriminatedUnion<[z.ZodObject<{
1020
500
  kind: z.ZodLiteral<"rectangular">;
1021
- position: z.ZodObject<{
1022
- x: z.ZodNumber;
1023
- y: z.ZodNumber;
1024
- z: z.ZodNumber;
1025
- }, z.core.$strip>;
501
+ position: z.ZodPipe<z.ZodString, z.ZodTransform<import("../..").Handle<"vec3">, string>>;
1026
502
  dimensions: z.ZodObject<{
1027
503
  width: z.ZodNumber;
1028
504
  height: z.ZodNumber;
@@ -1063,86 +539,10 @@ export declare const PluginSpaceBulkCreateItem: z.ZodDiscriminatedUnion<[z.ZodOb
1063
539
  }>, z.ZodUUID]>>;
1064
540
  }, z.core.$strip>, z.ZodObject<{
1065
541
  kind: z.ZodLiteral<"profile">;
1066
- profile: z.ZodObject<{
1067
- curves: z.ZodArray<z.ZodDiscriminatedUnion<[z.ZodObject<{
1068
- curveType: z.ZodLiteral<"Line">;
1069
- startPoint: z.ZodObject<{
1070
- x: z.ZodNumber;
1071
- y: z.ZodNumber;
1072
- z: z.ZodNumber;
1073
- }, z.core.$strip>;
1074
- endPoint: z.ZodObject<{
1075
- x: z.ZodNumber;
1076
- y: z.ZodNumber;
1077
- z: z.ZodNumber;
1078
- }, z.core.$strip>;
1079
- }, z.core.$strip>, z.ZodObject<{
1080
- curveType: z.ZodLiteral<"Arc">;
1081
- startPoint: z.ZodObject<{
1082
- x: z.ZodNumber;
1083
- y: z.ZodNumber;
1084
- z: z.ZodNumber;
1085
- }, z.core.$strip>;
1086
- endPoint: z.ZodObject<{
1087
- x: z.ZodNumber;
1088
- y: z.ZodNumber;
1089
- z: z.ZodNumber;
1090
- }, z.core.$strip>;
1091
- centrePoint: z.ZodObject<{
1092
- x: z.ZodNumber;
1093
- y: z.ZodNumber;
1094
- z: z.ZodNumber;
1095
- }, z.core.$strip>;
1096
- axis: z.ZodObject<{
1097
- x: z.ZodNumber;
1098
- y: z.ZodNumber;
1099
- z: z.ZodNumber;
1100
- }, z.core.$strip>;
1101
- }, z.core.$strip>], "curveType">>;
1102
- }, z.core.$strip>;
1103
- innerProfiles: z.ZodOptional<z.ZodArray<z.ZodObject<{
1104
- curves: z.ZodArray<z.ZodDiscriminatedUnion<[z.ZodObject<{
1105
- curveType: z.ZodLiteral<"Line">;
1106
- startPoint: z.ZodObject<{
1107
- x: z.ZodNumber;
1108
- y: z.ZodNumber;
1109
- z: z.ZodNumber;
1110
- }, z.core.$strip>;
1111
- endPoint: z.ZodObject<{
1112
- x: z.ZodNumber;
1113
- y: z.ZodNumber;
1114
- z: z.ZodNumber;
1115
- }, z.core.$strip>;
1116
- }, z.core.$strip>, z.ZodObject<{
1117
- curveType: z.ZodLiteral<"Arc">;
1118
- startPoint: z.ZodObject<{
1119
- x: z.ZodNumber;
1120
- y: z.ZodNumber;
1121
- z: z.ZodNumber;
1122
- }, z.core.$strip>;
1123
- endPoint: z.ZodObject<{
1124
- x: z.ZodNumber;
1125
- y: z.ZodNumber;
1126
- z: z.ZodNumber;
1127
- }, z.core.$strip>;
1128
- centrePoint: z.ZodObject<{
1129
- x: z.ZodNumber;
1130
- y: z.ZodNumber;
1131
- z: z.ZodNumber;
1132
- }, z.core.$strip>;
1133
- axis: z.ZodObject<{
1134
- x: z.ZodNumber;
1135
- y: z.ZodNumber;
1136
- z: z.ZodNumber;
1137
- }, z.core.$strip>;
1138
- }, z.core.$strip>], "curveType">>;
1139
- }, z.core.$strip>>>;
542
+ profile: z.ZodPipe<z.ZodString, z.ZodTransform<import("../..").Handle<"profile">, string>>;
543
+ innerProfiles: z.ZodOptional<z.ZodArray<z.ZodPipe<z.ZodString, z.ZodTransform<import("../..").Handle<"profile">, string>>>>;
1140
544
  extrudeHeight: z.ZodNumber;
1141
- position: z.ZodObject<{
1142
- x: z.ZodNumber;
1143
- y: z.ZodNumber;
1144
- z: z.ZodNumber;
1145
- }, z.core.$strip>;
545
+ position: z.ZodPipe<z.ZodString, z.ZodTransform<import("../..").Handle<"vec3">, string>>;
1146
546
  room_type: z.ZodOptional<z.ZodString>;
1147
547
  spaceType: z.ZodOptional<z.ZodEnum<{
1148
548
  Room: "Room";
@@ -1179,7 +579,7 @@ export declare const PluginSpaceBulkCreateItem: z.ZodDiscriminatedUnion<[z.ZodOb
1179
579
  }, z.core.$strip>], "kind">;
1180
580
  export type PluginSpaceBulkCreateItem = z.infer<typeof PluginSpaceBulkCreateItem>;
1181
581
  /**
1182
- * Arguments for {@linkcode PluginSpaceApi.bulkCreate}.
582
+ * Arguments for `bulkCreate`.
1183
583
  *
1184
584
  * | Property | Type | Description |
1185
585
  * |---|---|---|
@@ -1188,11 +588,7 @@ export type PluginSpaceBulkCreateItem = z.infer<typeof PluginSpaceBulkCreateItem
1188
588
  export declare const PluginSpaceBulkCreateArgs: z.ZodObject<{
1189
589
  items: z.ZodArray<z.ZodDiscriminatedUnion<[z.ZodObject<{
1190
590
  kind: z.ZodLiteral<"rectangular">;
1191
- position: z.ZodObject<{
1192
- x: z.ZodNumber;
1193
- y: z.ZodNumber;
1194
- z: z.ZodNumber;
1195
- }, z.core.$strip>;
591
+ position: z.ZodPipe<z.ZodString, z.ZodTransform<import("../..").Handle<"vec3">, string>>;
1196
592
  dimensions: z.ZodObject<{
1197
593
  width: z.ZodNumber;
1198
594
  height: z.ZodNumber;
@@ -1233,86 +629,10 @@ export declare const PluginSpaceBulkCreateArgs: z.ZodObject<{
1233
629
  }>, z.ZodUUID]>>;
1234
630
  }, z.core.$strip>, z.ZodObject<{
1235
631
  kind: z.ZodLiteral<"profile">;
1236
- profile: z.ZodObject<{
1237
- curves: z.ZodArray<z.ZodDiscriminatedUnion<[z.ZodObject<{
1238
- curveType: z.ZodLiteral<"Line">;
1239
- startPoint: z.ZodObject<{
1240
- x: z.ZodNumber;
1241
- y: z.ZodNumber;
1242
- z: z.ZodNumber;
1243
- }, z.core.$strip>;
1244
- endPoint: z.ZodObject<{
1245
- x: z.ZodNumber;
1246
- y: z.ZodNumber;
1247
- z: z.ZodNumber;
1248
- }, z.core.$strip>;
1249
- }, z.core.$strip>, z.ZodObject<{
1250
- curveType: z.ZodLiteral<"Arc">;
1251
- startPoint: z.ZodObject<{
1252
- x: z.ZodNumber;
1253
- y: z.ZodNumber;
1254
- z: z.ZodNumber;
1255
- }, z.core.$strip>;
1256
- endPoint: z.ZodObject<{
1257
- x: z.ZodNumber;
1258
- y: z.ZodNumber;
1259
- z: z.ZodNumber;
1260
- }, z.core.$strip>;
1261
- centrePoint: z.ZodObject<{
1262
- x: z.ZodNumber;
1263
- y: z.ZodNumber;
1264
- z: z.ZodNumber;
1265
- }, z.core.$strip>;
1266
- axis: z.ZodObject<{
1267
- x: z.ZodNumber;
1268
- y: z.ZodNumber;
1269
- z: z.ZodNumber;
1270
- }, z.core.$strip>;
1271
- }, z.core.$strip>], "curveType">>;
1272
- }, z.core.$strip>;
1273
- innerProfiles: z.ZodOptional<z.ZodArray<z.ZodObject<{
1274
- curves: z.ZodArray<z.ZodDiscriminatedUnion<[z.ZodObject<{
1275
- curveType: z.ZodLiteral<"Line">;
1276
- startPoint: z.ZodObject<{
1277
- x: z.ZodNumber;
1278
- y: z.ZodNumber;
1279
- z: z.ZodNumber;
1280
- }, z.core.$strip>;
1281
- endPoint: z.ZodObject<{
1282
- x: z.ZodNumber;
1283
- y: z.ZodNumber;
1284
- z: z.ZodNumber;
1285
- }, z.core.$strip>;
1286
- }, z.core.$strip>, z.ZodObject<{
1287
- curveType: z.ZodLiteral<"Arc">;
1288
- startPoint: z.ZodObject<{
1289
- x: z.ZodNumber;
1290
- y: z.ZodNumber;
1291
- z: z.ZodNumber;
1292
- }, z.core.$strip>;
1293
- endPoint: z.ZodObject<{
1294
- x: z.ZodNumber;
1295
- y: z.ZodNumber;
1296
- z: z.ZodNumber;
1297
- }, z.core.$strip>;
1298
- centrePoint: z.ZodObject<{
1299
- x: z.ZodNumber;
1300
- y: z.ZodNumber;
1301
- z: z.ZodNumber;
1302
- }, z.core.$strip>;
1303
- axis: z.ZodObject<{
1304
- x: z.ZodNumber;
1305
- y: z.ZodNumber;
1306
- z: z.ZodNumber;
1307
- }, z.core.$strip>;
1308
- }, z.core.$strip>], "curveType">>;
1309
- }, z.core.$strip>>>;
632
+ profile: z.ZodPipe<z.ZodString, z.ZodTransform<import("../..").Handle<"profile">, string>>;
633
+ innerProfiles: z.ZodOptional<z.ZodArray<z.ZodPipe<z.ZodString, z.ZodTransform<import("../..").Handle<"profile">, string>>>>;
1310
634
  extrudeHeight: z.ZodNumber;
1311
- position: z.ZodObject<{
1312
- x: z.ZodNumber;
1313
- y: z.ZodNumber;
1314
- z: z.ZodNumber;
1315
- }, z.core.$strip>;
635
+ position: z.ZodPipe<z.ZodString, z.ZodTransform<import("../..").Handle<"vec3">, string>>;
1316
636
  room_type: z.ZodOptional<z.ZodString>;
1317
637
  spaceType: z.ZodOptional<z.ZodEnum<{
1318
638
  Room: "Room";
@@ -1350,7 +670,7 @@ export declare const PluginSpaceBulkCreateArgs: z.ZodObject<{
1350
670
  }, z.core.$strip>;
1351
671
  export type PluginSpaceBulkCreateArgs = z.infer<typeof PluginSpaceBulkCreateArgs>;
1352
672
  /**
1353
- * Result of {@linkcode PluginSpaceApi.bulkCreate}.
673
+ * Result of `bulkCreate`.
1354
674
  *
1355
675
  * | Property | Type | Description |
1356
676
  * |---|---|---|
@@ -1361,7 +681,7 @@ export declare const PluginSpaceBulkCreateResult: z.ZodObject<{
1361
681
  }, z.core.$strip>;
1362
682
  export type PluginSpaceBulkCreateResult = z.infer<typeof PluginSpaceBulkCreateResult>;
1363
683
  /**
1364
- * A single item for {@linkcode PluginSpaceApi.bulkUpdate}.
684
+ * A single item for `bulkUpdate`.
1365
685
  *
1366
686
  * Targets an existing space by `spaceId`. Geometry fields `profile` and
1367
687
  * `extrudeHeight` must be supplied **together** (mirrors
@@ -1371,49 +691,13 @@ export type PluginSpaceBulkCreateResult = z.infer<typeof PluginSpaceBulkCreateRe
1371
691
  * | Property | Type | Description |
1372
692
  * |---|---|---|
1373
693
  * | `spaceId` | `string` | The space to update |
1374
- * | `profile` | {@linkcode PProfile}`?` | New floor shape (requires `extrudeHeight`) |
694
+ * | `profile` | {@linkcode ProfileHandle}`?` | New floor shape handle (requires `extrudeHeight`) |
1375
695
  * | `extrudeHeight` | `number?` | New extrusion height (requires `profile`) |
1376
696
  * | `properties` | `object?` | Property changes (same shape as {@linkcode PluginSpaceUpdateArgs.properties}) |
1377
697
  */
1378
698
  export declare const PluginSpaceBulkUpdateItem: z.ZodObject<{
1379
699
  spaceId: z.ZodString;
1380
- profile: z.ZodOptional<z.ZodObject<{
1381
- curves: z.ZodArray<z.ZodDiscriminatedUnion<[z.ZodObject<{
1382
- curveType: z.ZodLiteral<"Line">;
1383
- startPoint: z.ZodObject<{
1384
- x: z.ZodNumber;
1385
- y: z.ZodNumber;
1386
- z: z.ZodNumber;
1387
- }, z.core.$strip>;
1388
- endPoint: z.ZodObject<{
1389
- x: z.ZodNumber;
1390
- y: z.ZodNumber;
1391
- z: z.ZodNumber;
1392
- }, z.core.$strip>;
1393
- }, z.core.$strip>, z.ZodObject<{
1394
- curveType: z.ZodLiteral<"Arc">;
1395
- startPoint: z.ZodObject<{
1396
- x: z.ZodNumber;
1397
- y: z.ZodNumber;
1398
- z: z.ZodNumber;
1399
- }, z.core.$strip>;
1400
- endPoint: z.ZodObject<{
1401
- x: z.ZodNumber;
1402
- y: z.ZodNumber;
1403
- z: z.ZodNumber;
1404
- }, z.core.$strip>;
1405
- centrePoint: z.ZodObject<{
1406
- x: z.ZodNumber;
1407
- y: z.ZodNumber;
1408
- z: z.ZodNumber;
1409
- }, z.core.$strip>;
1410
- axis: z.ZodObject<{
1411
- x: z.ZodNumber;
1412
- y: z.ZodNumber;
1413
- z: z.ZodNumber;
1414
- }, z.core.$strip>;
1415
- }, z.core.$strip>], "curveType">>;
1416
- }, z.core.$strip>>;
700
+ profile: z.ZodOptional<z.ZodPipe<z.ZodString, z.ZodTransform<import("../..").Handle<"profile">, string>>>;
1417
701
  extrudeHeight: z.ZodOptional<z.ZodNumber>;
1418
702
  properties: z.ZodOptional<z.ZodObject<{
1419
703
  room_type: z.ZodOptional<z.ZodString>;
@@ -1458,7 +742,7 @@ export declare const PluginSpaceBulkUpdateItem: z.ZodObject<{
1458
742
  }, z.core.$strip>;
1459
743
  export type PluginSpaceBulkUpdateItem = z.infer<typeof PluginSpaceBulkUpdateItem>;
1460
744
  /**
1461
- * Arguments for {@linkcode PluginSpaceApi.bulkUpdate}.
745
+ * Arguments for `bulkUpdate`.
1462
746
  *
1463
747
  * | Property | Type | Description |
1464
748
  * |---|---|---|
@@ -1467,43 +751,7 @@ export type PluginSpaceBulkUpdateItem = z.infer<typeof PluginSpaceBulkUpdateItem
1467
751
  export declare const PluginSpaceBulkUpdateArgs: z.ZodObject<{
1468
752
  items: z.ZodArray<z.ZodObject<{
1469
753
  spaceId: z.ZodString;
1470
- profile: z.ZodOptional<z.ZodObject<{
1471
- curves: z.ZodArray<z.ZodDiscriminatedUnion<[z.ZodObject<{
1472
- curveType: z.ZodLiteral<"Line">;
1473
- startPoint: z.ZodObject<{
1474
- x: z.ZodNumber;
1475
- y: z.ZodNumber;
1476
- z: z.ZodNumber;
1477
- }, z.core.$strip>;
1478
- endPoint: z.ZodObject<{
1479
- x: z.ZodNumber;
1480
- y: z.ZodNumber;
1481
- z: z.ZodNumber;
1482
- }, z.core.$strip>;
1483
- }, z.core.$strip>, z.ZodObject<{
1484
- curveType: z.ZodLiteral<"Arc">;
1485
- startPoint: z.ZodObject<{
1486
- x: z.ZodNumber;
1487
- y: z.ZodNumber;
1488
- z: z.ZodNumber;
1489
- }, z.core.$strip>;
1490
- endPoint: z.ZodObject<{
1491
- x: z.ZodNumber;
1492
- y: z.ZodNumber;
1493
- z: z.ZodNumber;
1494
- }, z.core.$strip>;
1495
- centrePoint: z.ZodObject<{
1496
- x: z.ZodNumber;
1497
- y: z.ZodNumber;
1498
- z: z.ZodNumber;
1499
- }, z.core.$strip>;
1500
- axis: z.ZodObject<{
1501
- x: z.ZodNumber;
1502
- y: z.ZodNumber;
1503
- z: z.ZodNumber;
1504
- }, z.core.$strip>;
1505
- }, z.core.$strip>], "curveType">>;
1506
- }, z.core.$strip>>;
754
+ profile: z.ZodOptional<z.ZodPipe<z.ZodString, z.ZodTransform<import("../..").Handle<"profile">, string>>>;
1507
755
  extrudeHeight: z.ZodOptional<z.ZodNumber>;
1508
756
  properties: z.ZodOptional<z.ZodObject<{
1509
757
  room_type: z.ZodOptional<z.ZodString>;
@@ -1549,10 +797,10 @@ export declare const PluginSpaceBulkUpdateArgs: z.ZodObject<{
1549
797
  }, z.core.$strip>;
1550
798
  export type PluginSpaceBulkUpdateArgs = z.infer<typeof PluginSpaceBulkUpdateArgs>;
1551
799
  /**
1552
- * Result of {@linkcode PluginSpaceApi.bulkUpdate}.
800
+ * Result of `bulkUpdate`.
1553
801
  *
1554
802
  * Echoes one {@linkcode PluginSpaceUpdateResult} per item, in input order —
1555
- * the same per-space shape returned by {@linkcode PluginSpaceApi.update}.
803
+ * the same per-space shape returned by `update`.
1556
804
  *
1557
805
  * | Property | Type | Description |
1558
806
  * |---|---|---|
@@ -1574,7 +822,7 @@ export declare const PluginSpaceBulkUpdateResult: z.ZodObject<{
1574
822
  }, z.core.$strip>;
1575
823
  export type PluginSpaceBulkUpdateResult = z.infer<typeof PluginSpaceBulkUpdateResult>;
1576
824
  /**
1577
- * Arguments for {@linkcode PluginSpaceApi.bulkDelete}.
825
+ * Arguments for `bulkDelete`.
1578
826
  *
1579
827
  * | Property | Type | Description |
1580
828
  * |---|---|---|
@@ -1585,7 +833,7 @@ export declare const PluginSpaceBulkDeleteArgs: z.ZodObject<{
1585
833
  }, z.core.$strip>;
1586
834
  export type PluginSpaceBulkDeleteArgs = z.infer<typeof PluginSpaceBulkDeleteArgs>;
1587
835
  /**
1588
- * Result of {@linkcode PluginSpaceApi.bulkDelete}.
836
+ * Result of `bulkDelete`.
1589
837
  *
1590
838
  * | Property | Type | Description |
1591
839
  * |---|---|---|