@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
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/api/design/create/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,63 @@
1
+ import * as z from "zod";
2
+ import { PluginApiReturn } from "../../../types";
3
+ import { ComponentHandle } from "../../../handles";
4
+ import { PluginDesignChangeResult } from "../lock";
5
+ /**
6
+ * Arguments for {@linkcode PluginDesignDeleteApi.entities}.
7
+ *
8
+ * | Property | Type | Description |
9
+ * |---|---|---|
10
+ * | `components` | {@linkcode ComponentHandle}`[]` | Entities to delete. Unknown/forged handles reject the whole call (fail-fast). |
11
+ *
12
+ * `.min(1)` is deliberately stricter than the shipped `PluginDesignLockArgs`
13
+ * (which allows an empty array) — an empty delete is a caller error, not a no-op.
14
+ *
15
+ * TRANSPORT: positional args — validated host-side as `{ components }`.
16
+ */
17
+ export declare const PluginDesignDeleteEntitiesArgs: z.ZodObject<{
18
+ components: z.ZodArray<z.ZodPipe<z.ZodString, z.ZodTransform<ComponentHandle, string>>>;
19
+ }, z.core.$strip>;
20
+ export type PluginDesignDeleteEntitiesArgs = z.infer<typeof PluginDesignDeleteEntitiesArgs>;
21
+ /**
22
+ * `snaptrude.design.delete.*` — **hard removal** of scene BIM entities.
23
+ *
24
+ * This is hard entity delete — distinct from `design.erase.edge` (a plan-level
25
+ * adjacency-edge topology op) and `design.boolean.subtract` (a CSG geometry
26
+ * delete). The constitution forbids `erase`/`clear`/`remove` as synonyms for
27
+ * `delete`; these are three separate operations.
28
+ *
29
+ * TRANSPORT: positional args per method.
30
+ */
31
+ export declare abstract class PluginDesignDeleteApi {
32
+ constructor();
33
+ /**
34
+ * Delete one or more entities. Generic hard delete (backed by the same batched,
35
+ * undoable path as `entity.space.delete`). Cascade is opinionated by the engine:
36
+ * children are removed and linked-list neighbours are fixed up — not caller-tunable
37
+ * in v1. Undoable — commits as a **single** undo entry.
38
+ *
39
+ * @param components - Entities to delete. Unknown/forged handles reject the whole call (fail-fast).
40
+ * @returns The entities that were deleted, as {@linkcode ComponentHandle}`[]`
41
+ * (echoed host-side from the resolved+deleted set — the engine returns no ids).
42
+ * Deleted handles are **stale** afterwards: re-resolving one throws `HANDLE_INVALID`.
43
+ * @throws If any supplied handle is unknown/forged (`HANDLE_INVALID`) — the whole
44
+ * call rejects before anything is deleted (all-or-nothing resolution).
45
+ *
46
+ * @examplePrompt Delete the selected objects
47
+ * @examplePrompt Remove these walls from the model
48
+ * @examplePrompt Get rid of this mass entirely
49
+ * @examplePrompt Delete all the furniture I picked
50
+ * @examplePrompt Remove the door and window I just created
51
+ *
52
+ * # Example
53
+ * ```ts
54
+ * // Hard-delete every furniture item on storey 2 (a single undo entry)
55
+ * const furniture = await snaptrude.design.query.listFurniture({ storeys: [2] })
56
+ * if (furniture.length > 0) {
57
+ * const { affected } = await snaptrude.design.delete.entities(furniture)
58
+ * }
59
+ * ```
60
+ */
61
+ abstract entities(components: ComponentHandle[]): PluginApiReturn<PluginDesignChangeResult>;
62
+ }
63
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/api/design/delete/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,KAAK,CAAA;AACxB,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAA;AAChD,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAA;AAClD,OAAO,EAAE,wBAAwB,EAAE,MAAM,SAAS,CAAA;AAElD;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,8BAA8B;;iBAEzC,CAAA;AACF,MAAM,MAAM,8BAA8B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,8BAA8B,CAAC,CAAA;AAE3F;;;;;;;;;GASG;AACH,8BAAsB,qBAAqB;;IAGzC;;;;;;;;;;;;;;;;;;;;;;;;;;;OA2BG;aACa,QAAQ,CACtB,UAAU,EAAE,eAAe,EAAE,GAC5B,eAAe,CAAC,wBAAwB,CAAC;CAC7C"}
@@ -0,0 +1,268 @@
1
+ import * as z from "zod";
2
+ import { PluginApiReturn } from "../../../types";
3
+ import { ComponentHandle } from "../../../handles";
4
+ import { PluginDesignChangeResult } from "../lock";
5
+ /**
6
+ * `snaptrude.design.doors` — door-specific reads + edits. Creation lives at
7
+ * `design.create.door`; generic reads (`listDoors`/`getHost`/`getProperties`) live at
8
+ * `design.query.*`. Door targets are {@linkcode ComponentHandle}s.
9
+ *
10
+ * `getSwingDirection` is a DERIVED read (no persisted field) — computed from the door
11
+ * mesh reflection state. `mirror` reflects the door across an axis (undoable, one
12
+ * command); `setType` is intentionally absent (the engine has no in-place re-type —
13
+ * it would require delete+recreate).
14
+ */
15
+ export declare abstract class PluginDesignDoorsApi {
16
+ constructor();
17
+ /**
18
+ * Get the type name of a door — the label that identifies which kind of door
19
+ * the instance is, as shown in its properties.
20
+ *
21
+ * @param door The door to query
22
+ * @returns The type as a `string`, or `null`
23
+ *
24
+ * @examplePrompt What type of door is this?
25
+ * @examplePrompt Tell me the door type of the selected door
26
+ * @examplePrompt Is this a single or a double door?
27
+ * @examplePrompt Check what kind of door is on this wall
28
+ *
29
+ * # Example
30
+ * ```ts
31
+ * const [door] = await snaptrude.design.query.listDoors({ isSelected: true })
32
+ * const type = await snaptrude.design.doors.getType(door)
33
+ * if (type) console.log("door type:", type)
34
+ * ```
35
+ */
36
+ abstract getType(door: ComponentHandle): PluginApiReturn<string | null>;
37
+ /**
38
+ * Get the family name of a door — the Revit or native family the door
39
+ * instance comes from.
40
+ *
41
+ * @param door The door to query
42
+ * @returns The family as a `string`, or `null`
43
+ *
44
+ * @examplePrompt Which family does this door belong to?
45
+ * @examplePrompt What's the Revit family of the selected door?
46
+ * @examplePrompt Show the family name for this door
47
+ * @examplePrompt Find out which door family the imported door uses
48
+ *
49
+ * # Example
50
+ * ```ts
51
+ * const [door] = await snaptrude.design.query.listDoors()
52
+ * const family = await snaptrude.design.doors.getFamily(door)
53
+ * if (family) console.log("family:", family)
54
+ * ```
55
+ */
56
+ abstract getFamily(door: ComponentHandle): PluginApiReturn<string | null>;
57
+ /**
58
+ * Get the width of a door — how wide its opening is along the host wall.
59
+ *
60
+ * @param door The door to query
61
+ * @returns The width as a `number`, or `null`
62
+ *
63
+ * @examplePrompt How wide is this door?
64
+ * @examplePrompt What's the width of the selected door?
65
+ * @examplePrompt Measure the width of the entrance door
66
+ * @examplePrompt Check whether this door is 900mm wide
67
+ *
68
+ * # Example
69
+ * ```ts
70
+ * const [door] = await snaptrude.design.query.listDoors({ isSelected: true })
71
+ * const width = await snaptrude.design.doors.getWidth(door)
72
+ * if (width !== null) console.log("door width:", width)
73
+ * ```
74
+ */
75
+ abstract getWidth(door: ComponentHandle): PluginApiReturn<number | null>;
76
+ /**
77
+ * Get the height of a door — how tall its opening is from base to head.
78
+ *
79
+ * @param door The door to query
80
+ * @returns The height as a `number`, or `null`
81
+ *
82
+ * @examplePrompt How tall is this door?
83
+ * @examplePrompt What's the height of the selected door?
84
+ * @examplePrompt Check the door height for this opening
85
+ * @examplePrompt Is the front door 2100mm high?
86
+ *
87
+ * # Example
88
+ * ```ts
89
+ * const [door] = await snaptrude.design.query.listDoors()
90
+ * const height = await snaptrude.design.doors.getHeight(door)
91
+ * if (height !== null) console.log("door height:", height)
92
+ * ```
93
+ */
94
+ abstract getHeight(door: ComponentHandle): PluginApiReturn<number | null>;
95
+ /**
96
+ * Get the floor a door is hosted on — the storey/level component that
97
+ * supports the door.
98
+ *
99
+ * @param door The door to query
100
+ * @returns The support floor {@linkcode ComponentHandle}, or `null`
101
+ *
102
+ * @examplePrompt Which floor is this door on?
103
+ * @examplePrompt What storey does the selected door belong to?
104
+ * @examplePrompt Find the level that hosts this door
105
+ * @examplePrompt Tell me which floor the entrance door sits on
106
+ *
107
+ * # Example
108
+ * ```ts
109
+ * const [door] = await snaptrude.design.query.listDoors({ isSelected: true })
110
+ * const floor = await snaptrude.design.doors.getSupportFloor(door)
111
+ * if (floor) {
112
+ * const props = await snaptrude.design.query.getProperties(floor)
113
+ * console.log("hosted on storey:", props.storey)
114
+ * }
115
+ * ```
116
+ */
117
+ abstract getSupportFloor(door: ComponentHandle): PluginApiReturn<ComponentHandle | null>;
118
+ /**
119
+ * Get a door's swing (hinge) handedness — whether it opens as a left-hand or
120
+ * right-hand door. Derived from the door mesh's reflection state, not a
121
+ * persisted field.
122
+ *
123
+ * @param door The door to query
124
+ * @returns `'left'` / `'right'`, or `null` if indeterminate
125
+ *
126
+ * @examplePrompt Which way does this door swing?
127
+ * @examplePrompt Is the selected door left-handed or right-handed?
128
+ * @examplePrompt Check the hinge side of this door
129
+ * @examplePrompt Does the entrance door open to the left or the right?
130
+ *
131
+ * # Example
132
+ * ```ts
133
+ * const [door] = await snaptrude.design.query.listDoors({ isSelected: true })
134
+ * const swing = await snaptrude.design.doors.getSwingDirection(door)
135
+ * if (swing) console.log("opens as a", swing, "hand door")
136
+ * ```
137
+ */
138
+ abstract getSwingDirection(door: ComponentHandle): PluginApiReturn<"left" | "right" | null>;
139
+ /**
140
+ * Mirror a door across an axis, flipping its swing so it opens from the
141
+ * other side. Undoable as a single command.
142
+ *
143
+ * @param door The door to mirror
144
+ * @param axis Reflection axis (optional; default `'x'` — the swing-flip axis)
145
+ * @returns The affected door(s)
146
+ *
147
+ * @examplePrompt Flip this door's swing
148
+ * @examplePrompt Mirror the selected door
149
+ * @examplePrompt Make this door open the other way
150
+ * @examplePrompt Reverse the hinge side of the entrance door
151
+ * @examplePrompt Change the door to swing from the other side
152
+ *
153
+ * # Example
154
+ * ```ts
155
+ * // Flip the selected door's swing — axis defaults to "x" (the swing-flip
156
+ * // axis); pass "y" or "z" to reflect across a different axis
157
+ * const [door] = await snaptrude.design.query.listDoors({ isSelected: true })
158
+ * const { affected } = await snaptrude.design.doors.mirror(door)
159
+ * ```
160
+ */
161
+ abstract mirror(door: ComponentHandle, axis?: PluginMirrorAxis): PluginApiReturn<PluginDesignChangeResult>;
162
+ /**
163
+ * Set the width of one or more doors, resizing each opening and re-cutting
164
+ * the host wall. Width is in engine units; the change is undoable.
165
+ *
166
+ * @param doors The doors to resize
167
+ * @param width New width (engine units)
168
+ * @returns The affected doors
169
+ *
170
+ * @examplePrompt Make this door 900mm wide
171
+ * @examplePrompt Widen the selected doors to 1 metre
172
+ * @examplePrompt Change the door width to 3 feet
173
+ * @examplePrompt Resize all the bathroom doors to 750 wide
174
+ * @examplePrompt Narrow the entrance door a bit
175
+ *
176
+ * # Example
177
+ * ```ts
178
+ * // Resize every ground-floor door to a common width (engine units)
179
+ * const doors = await snaptrude.design.query.listDoors({ storeys: [1] })
180
+ * const { affected } = await snaptrude.design.doors.setWidth(doors, 900)
181
+ * console.log("resized", affected.length, "doors")
182
+ * ```
183
+ */
184
+ abstract setWidth(doors: ComponentHandle[], width: number): PluginApiReturn<PluginDesignChangeResult>;
185
+ /**
186
+ * Set the height of one or more doors, resizing each opening and re-cutting
187
+ * the host wall. Height is in engine units; the change is undoable.
188
+ *
189
+ * @param doors The doors to resize
190
+ * @param height New height (engine units)
191
+ * @returns The affected doors
192
+ *
193
+ * @examplePrompt Make this door 2100mm tall
194
+ * @examplePrompt Change the door height to 7 feet
195
+ * @examplePrompt Raise the selected doors to 2.4m high
196
+ * @examplePrompt Set all the doors on this storey to 2100 high
197
+ *
198
+ * # Example
199
+ * ```ts
200
+ * // setHeight takes an array — wrap a single door
201
+ * const [door] = await snaptrude.design.query.listDoors({ isSelected: true })
202
+ * await snaptrude.design.doors.setHeight([door], 2100)
203
+ * ```
204
+ */
205
+ abstract setHeight(doors: ComponentHandle[], height: number): PluginApiReturn<PluginDesignChangeResult>;
206
+ }
207
+ /**
208
+ * Arguments for the single-door read methods.
209
+ *
210
+ * | Property | Type | Description |
211
+ * |---|---|---|
212
+ * | `door` | {@linkcode ComponentHandle} | The door to query |
213
+ */
214
+ export declare const PluginDesignDoorArgs: z.ZodObject<{
215
+ door: z.ZodPipe<z.ZodString, z.ZodTransform<ComponentHandle, string>>;
216
+ }, z.core.$strip>;
217
+ export type PluginDesignDoorArgs = z.infer<typeof PluginDesignDoorArgs>;
218
+ /** Mirror axis — tokens mirror the engine `FlipDirection` verbatim (§6.1). */
219
+ export declare const PluginMirrorAxis: z.ZodEnum<{
220
+ x: "x";
221
+ y: "y";
222
+ z: "z";
223
+ }>;
224
+ export type PluginMirrorAxis = z.infer<typeof PluginMirrorAxis>;
225
+ /**
226
+ * Arguments for {@linkcode PluginDesignDoorsApi.mirror}.
227
+ *
228
+ * | Property | Type | Description |
229
+ * |---|---|---|
230
+ * | `door` | {@linkcode ComponentHandle} | The door to mirror |
231
+ * | `axis` | {@linkcode PluginMirrorAxis} | Reflection axis (optional; default `'x'` — the swing-flip axis) |
232
+ */
233
+ export declare const PluginDesignDoorMirrorArgs: z.ZodObject<{
234
+ door: z.ZodPipe<z.ZodString, z.ZodTransform<ComponentHandle, string>>;
235
+ axis: z.ZodOptional<z.ZodEnum<{
236
+ x: "x";
237
+ y: "y";
238
+ z: "z";
239
+ }>>;
240
+ }, z.core.$strip>;
241
+ export type PluginDesignDoorMirrorArgs = z.infer<typeof PluginDesignDoorMirrorArgs>;
242
+ /**
243
+ * Arguments for {@linkcode PluginDesignDoorsApi.setWidth}.
244
+ *
245
+ * | Property | Type | Description |
246
+ * |---|---|---|
247
+ * | `doors` | {@linkcode ComponentHandle}`[]` | The doors to resize |
248
+ * | `width` | `number` | New width (engine units) |
249
+ */
250
+ export declare const PluginDesignDoorSetWidthArgs: z.ZodObject<{
251
+ doors: z.ZodArray<z.ZodPipe<z.ZodString, z.ZodTransform<ComponentHandle, string>>>;
252
+ width: z.ZodNumber;
253
+ }, z.core.$strip>;
254
+ export type PluginDesignDoorSetWidthArgs = z.infer<typeof PluginDesignDoorSetWidthArgs>;
255
+ /**
256
+ * Arguments for {@linkcode PluginDesignDoorsApi.setHeight}.
257
+ *
258
+ * | Property | Type | Description |
259
+ * |---|---|---|
260
+ * | `doors` | {@linkcode ComponentHandle}`[]` | The doors to resize |
261
+ * | `height` | `number` | New height (engine units) |
262
+ */
263
+ export declare const PluginDesignDoorSetHeightArgs: z.ZodObject<{
264
+ doors: z.ZodArray<z.ZodPipe<z.ZodString, z.ZodTransform<ComponentHandle, string>>>;
265
+ height: z.ZodNumber;
266
+ }, z.core.$strip>;
267
+ export type PluginDesignDoorSetHeightArgs = z.infer<typeof PluginDesignDoorSetHeightArgs>;
268
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/api/design/doors/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,KAAK,CAAA;AACxB,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAA;AAChD,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAA;AAClD,OAAO,EAAE,wBAAwB,EAAE,MAAM,SAAS,CAAA;AAElD;;;;;;;;;GASG;AACH,8BAAsB,oBAAoB;;IAGxC;;;;;;;;;;;;;;;;;;OAkBG;aACa,OAAO,CAAC,IAAI,EAAE,eAAe,GAAG,eAAe,CAAC,MAAM,GAAG,IAAI,CAAC;IAE9E;;;;;;;;;;;;;;;;;;OAkBG;aACa,SAAS,CAAC,IAAI,EAAE,eAAe,GAAG,eAAe,CAAC,MAAM,GAAG,IAAI,CAAC;IAEhF;;;;;;;;;;;;;;;;;OAiBG;aACa,QAAQ,CAAC,IAAI,EAAE,eAAe,GAAG,eAAe,CAAC,MAAM,GAAG,IAAI,CAAC;IAE/E;;;;;;;;;;;;;;;;;OAiBG;aACa,SAAS,CAAC,IAAI,EAAE,eAAe,GAAG,eAAe,CAAC,MAAM,GAAG,IAAI,CAAC;IAEhF;;;;;;;;;;;;;;;;;;;;;OAqBG;aACa,eAAe,CAAC,IAAI,EAAE,eAAe,GAAG,eAAe,CAAC,eAAe,GAAG,IAAI,CAAC;IAE/F;;;;;;;;;;;;;;;;;;;OAmBG;aACa,iBAAiB,CAC/B,IAAI,EAAE,eAAe,GACpB,eAAe,CAAC,MAAM,GAAG,OAAO,GAAG,IAAI,CAAC;IAE3C;;;;;;;;;;;;;;;;;;;;;OAqBG;aACa,MAAM,CACpB,IAAI,EAAE,eAAe,EACrB,IAAI,CAAC,EAAE,gBAAgB,GACtB,eAAe,CAAC,wBAAwB,CAAC;IAE5C;;;;;;;;;;;;;;;;;;;;;OAqBG;aACa,QAAQ,CACtB,KAAK,EAAE,eAAe,EAAE,EACxB,KAAK,EAAE,MAAM,GACZ,eAAe,CAAC,wBAAwB,CAAC;IAE5C;;;;;;;;;;;;;;;;;;;OAmBG;aACa,SAAS,CACvB,KAAK,EAAE,eAAe,EAAE,EACxB,MAAM,EAAE,MAAM,GACb,eAAe,CAAC,wBAAwB,CAAC;CAC7C;AAED;;;;;;GAMG;AACH,eAAO,MAAM,oBAAoB;;iBAE/B,CAAA;AACF,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAA;AAEvE,8EAA8E;AAC9E,eAAO,MAAM,gBAAgB;;;;EAA0B,CAAA;AACvD,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAA;AAE/D;;;;;;;GAOG;AACH,eAAO,MAAM,0BAA0B;;;;;;;iBAGrC,CAAA;AACF,MAAM,MAAM,0BAA0B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,0BAA0B,CAAC,CAAA;AAEnF;;;;;;;GAOG;AACH,eAAO,MAAM,4BAA4B;;;iBAGvC,CAAA;AACF,MAAM,MAAM,4BAA4B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,4BAA4B,CAAC,CAAA;AAEvF;;;;;;;GAOG;AACH,eAAO,MAAM,6BAA6B;;;iBAGxC,CAAA;AACF,MAAM,MAAM,6BAA6B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,6BAA6B,CAAC,CAAA"}
@@ -0,0 +1,49 @@
1
+ import * as z from "zod";
2
+ import { PluginApiReturn } from "../../../types";
3
+ import { ComponentHandle, Vec3Handle } from "../../../handles";
4
+ import { OffsetSplitOutcome } from "../shared";
5
+ /**
6
+ * STAGED (LLD Wave 2) — abstract shell only. NOT yet wired into `PluginDesignApi`
7
+ * and has no host implementation. `offsetSplit` migrates off `tools.offset` (adding
8
+ * the previously-dropped `offsetValue` to the result).
9
+ *
10
+ * `snaptrude.design.edit` — non-create geometry edits (offset-split, and later
11
+ * push-pull / topology edits). Undoable.
12
+ *
13
+ * TRANSPORT: positional args per method.
14
+ */
15
+ export declare abstract class PluginDesignEditApi {
16
+ constructor();
17
+ /**
18
+ * Offset the top profile of a component by a distance and split the face along
19
+ * the offset curve. Positive distances offset outward, negative inward.
20
+ * Single-component only (the engine rejects batches).
21
+ * @param component - The component whose top profile is offset-split.
22
+ * @param offsetDistance - Offset distance; positive = outward, negative = inward.
23
+ * @param options - Optional settings: `profilePickPoint` picks the profile when ambiguous.
24
+ * @returns {@linkcode OffsetSplitOutcome} `{ createdIds, deletedIds, offsetValue }`
25
+ *
26
+ * @examplePrompt Offset the top face of this mass inward by 2 metres and split it
27
+ * @examplePrompt Create a 1m setback border on top of the selected mass
28
+ * @examplePrompt Split the roof profile with a 500mm inward offset
29
+ * @examplePrompt Offset-split the slab's top profile outward by 3 feet
30
+ *
31
+ * # Example
32
+ * ```ts
33
+ * // Offset the top profile inward by 2 units and split the face along it
34
+ * const [mass] = await snaptrude.design.query.listMasses()
35
+ * const { createdIds, offsetValue } = await snaptrude.design.edit.offsetSplit(mass, -2)
36
+ * // offsetValue is the post-clamp distance the engine actually applied
37
+ * ```
38
+ */
39
+ abstract offsetSplit(component: ComponentHandle, offsetDistance: number, options?: {
40
+ profilePickPoint?: Vec3Handle;
41
+ }): PluginApiReturn<OffsetSplitOutcome>;
42
+ }
43
+ export declare const PluginDesignOffsetSplitArgs: z.ZodObject<{
44
+ component: z.ZodPipe<z.ZodString, z.ZodTransform<ComponentHandle, string>>;
45
+ offsetDistance: z.ZodNumber;
46
+ profilePickPoint: z.ZodOptional<z.ZodPipe<z.ZodString, z.ZodTransform<import("../../..").Handle<"vec3">, string>>>;
47
+ }, z.core.$strip>;
48
+ export type PluginDesignOffsetSplitArgs = z.infer<typeof PluginDesignOffsetSplitArgs>;
49
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/api/design/edit/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,KAAK,CAAA;AACxB,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAA;AAChD,OAAO,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAC9D,OAAO,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAA;AAE9C;;;;;;;;;GASG;AACH,8BAAsB,mBAAmB;;IAGvC;;;;;;;;;;;;;;;;;;;;;OAqBG;aACa,WAAW,CACzB,SAAS,EAAE,eAAe,EAC1B,cAAc,EAAE,MAAM,EACtB,OAAO,CAAC,EAAE;QAAE,gBAAgB,CAAC,EAAE,UAAU,CAAA;KAAE,GAC1C,eAAe,CAAC,kBAAkB,CAAC;CACvC;AAGD,eAAO,MAAM,2BAA2B;;;;iBAItC,CAAA;AACF,MAAM,MAAM,2BAA2B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,2BAA2B,CAAC,CAAA"}
@@ -0,0 +1,160 @@
1
+ import * as z from "zod";
2
+ import { PluginApiReturn } from "../../../types";
3
+ import { ComponentHandle } from "../../../handles";
4
+ /**
5
+ * The erase strategies exposed to plugins. `SplitAndUnion` is *enumerable* but
6
+ * NOT committable via {@linkcode PluginDesignEraseApi.edge} (it needs an
7
+ * interactive screen-space re-pick); `SplitAndDelete` is reserved in the engine
8
+ * and intentionally omitted. Derived host-side by the engine's `decideStrategy`.
9
+ */
10
+ export declare const EraseStrategy: z.ZodEnum<{
11
+ DirectDelete: "DirectDelete";
12
+ DirectUnion: "DirectUnion";
13
+ SplitAndUnion: "SplitAndUnion";
14
+ }>;
15
+ export type EraseStrategy = z.infer<typeof EraseStrategy>;
16
+ /** Default enumerated strategies — the two the scripted `edge()` can commit. */
17
+ export declare const DEFAULT_ERASE_STRATEGIES: readonly EraseStrategy[];
18
+ /**
19
+ * A **transient** reference to one erasable edge in the current plan's
20
+ * bottom-adjacency graph.
21
+ *
22
+ * ⚠️ **Lifetime**: valid ONLY until the next geometry-modifying operation. Any
23
+ * mutation (erase, boolean, transform, create, delete, …) rebuilds the adjacency
24
+ * graph and invalidates every previously-returned ref. Passing a stale ref to
25
+ * {@linkcode PluginDesignEraseApi.edge} throws `NO_STRATEGY_FOR_PICK_INFO`.
26
+ * Always re-list after a mutation.
27
+ *
28
+ * This is a by-value record (round-trip it back to `edge()` unmodified), NOT a
29
+ * registry handle. `components` and `snapPoint` are the marshalled public forms
30
+ * of the engine's raw `mesh.uniqueId` numbers / by-value point.
31
+ */
32
+ export declare const ErasableEdgeRef: z.ZodObject<{
33
+ id: z.ZodString;
34
+ strategy: z.ZodEnum<{
35
+ DirectDelete: "DirectDelete";
36
+ DirectUnion: "DirectUnion";
37
+ SplitAndUnion: "SplitAndUnion";
38
+ }>;
39
+ edgeWeight: z.ZodNumber;
40
+ components: z.ZodArray<z.ZodPipe<z.ZodString, z.ZodTransform<ComponentHandle, string>>>;
41
+ snapPoint: z.ZodPipe<z.ZodString, z.ZodTransform<import("../../..").Handle<"vec3">, string>>;
42
+ }, z.core.$strip>;
43
+ export type ErasableEdgeRef = z.infer<typeof ErasableEdgeRef>;
44
+ /**
45
+ * Options for {@linkcode PluginDesignEraseApi.listErasableEdges}.
46
+ *
47
+ * | Property | Type | Description |
48
+ * |---|---|---|
49
+ * | `components` | {@linkcode ComponentHandle}`[]?` | Restrict to edges adjacent to at least one of these entities |
50
+ * | `strategies` | {@linkcode EraseStrategy}`[]?` | Restrict to these strategies. Default `["DirectDelete","DirectUnion"]` (hides interactive-only `SplitAndUnion`) |
51
+ *
52
+ * TRANSPORT: positional now — `listErasableEdges(options?)`; this schema is
53
+ * retained for host-side validation.
54
+ */
55
+ export declare const PluginDesignListErasableEdgesArgs: z.ZodObject<{
56
+ components: z.ZodOptional<z.ZodArray<z.ZodPipe<z.ZodString, z.ZodTransform<ComponentHandle, string>>>>;
57
+ strategies: z.ZodOptional<z.ZodArray<z.ZodEnum<{
58
+ DirectDelete: "DirectDelete";
59
+ DirectUnion: "DirectUnion";
60
+ SplitAndUnion: "SplitAndUnion";
61
+ }>>>;
62
+ }, z.core.$strip>;
63
+ export type PluginDesignListErasableEdgesArgs = z.infer<typeof PluginDesignListErasableEdgesArgs>;
64
+ /**
65
+ * Arguments for {@linkcode PluginDesignEraseApi.edge}.
66
+ *
67
+ * TRANSPORT: positional now — `edge(edge: ErasableEdgeRef)`; this schema is
68
+ * retained for host-side validation.
69
+ */
70
+ export declare const PluginDesignEraseEdgeArgs: z.ZodObject<{
71
+ edge: z.ZodObject<{
72
+ id: z.ZodString;
73
+ strategy: z.ZodEnum<{
74
+ DirectDelete: "DirectDelete";
75
+ DirectUnion: "DirectUnion";
76
+ SplitAndUnion: "SplitAndUnion";
77
+ }>;
78
+ edgeWeight: z.ZodNumber;
79
+ components: z.ZodArray<z.ZodPipe<z.ZodString, z.ZodTransform<ComponentHandle, string>>>;
80
+ snapPoint: z.ZodPipe<z.ZodString, z.ZodTransform<import("../../..").Handle<"vec3">, string>>;
81
+ }, z.core.$strip>;
82
+ }, z.core.$strip>;
83
+ export type PluginDesignEraseEdgeArgs = z.infer<typeof PluginDesignEraseEdgeArgs>;
84
+ /** Result of {@linkcode PluginDesignEraseApi.edge} — success sentinel; the engine yields no survivor id. */
85
+ export declare const PluginDesignEraseEdgeResult: z.ZodObject<{
86
+ ok: z.ZodLiteral<true>;
87
+ }, z.core.$strip>;
88
+ export type PluginDesignEraseEdgeResult = z.infer<typeof PluginDesignEraseEdgeResult>;
89
+ /**
90
+ * `snaptrude.design.erase` — **adjacency-edge erase** (plan-level topology op).
91
+ *
92
+ * Erase is NOT delete. The erase tool operates on an **edge**, and the effect is
93
+ * derived from that edge: erasing an internal edge between two masses **unions**
94
+ * them (`DirectUnion`); erasing an external boundary edge of a single mass
95
+ * **drops** it behind the edge (`DirectDelete`). For hard entity removal use
96
+ * `design.delete.entities`; for CSG geometry delete use `design.boolean.subtract`.
97
+ *
98
+ * Two-step: {@linkcode listErasableEdges} to enumerate, then {@linkcode edge} to
99
+ * commit one ref (single undo entry). Scoped to **2D plan adjacency edges** in v1.
100
+ *
101
+ * TRANSPORT: positional args per method.
102
+ */
103
+ export declare abstract class PluginDesignEraseApi {
104
+ constructor();
105
+ /**
106
+ * Enumerate every erasable edge in the current plan's bottom-adjacency graph
107
+ * (one {@linkcode ErasableEdgeRef} per edge). Pure read — no scene mutation, no
108
+ * command, not undoable. Erase-ineligible components (locked, hidden, off-storey)
109
+ * are filtered out.
110
+ *
111
+ * ⚠️ Returned refs are **transient** — see {@linkcode ErasableEdgeRef}. Re-list
112
+ * after any geometry mutation.
113
+ *
114
+ * @param options - {@linkcode PluginDesignListErasableEdgesArgs} — optional filters (`components`, `strategies`)
115
+ * @returns The erasable edges (`[]` when none) — never `null`.
116
+ *
117
+ * @examplePrompt Which edges in my floor plan can be erased?
118
+ * @examplePrompt List the erasable edges on this storey
119
+ * @examplePrompt Show me the shared edges I could erase to merge rooms
120
+ * @examplePrompt What edges between these two spaces can be removed?
121
+ *
122
+ * # Example
123
+ * ```ts
124
+ * const edges = await snaptrude.design.erase.listErasableEdges()
125
+ * const union = edges.find((e) => e.strategy === "DirectUnion")
126
+ * if (union) await snaptrude.design.erase.edge(union)
127
+ * ```
128
+ */
129
+ abstract listErasableEdges(options?: PluginDesignListErasableEdgesArgs): PluginApiReturn<ErasableEdgeRef[]>;
130
+ /**
131
+ * Commit the erase for one edge. `DirectUnion` merges the two adjacent masses;
132
+ * `DirectDelete` drops the single mass behind the boundary edge. Single undo entry.
133
+ *
134
+ * Pass an {@linkcode ErasableEdgeRef} from {@linkcode listErasableEdges}
135
+ * unmodified. A stale ref (graph rebuilt by a prior mutation) or a `SplitAndUnion`
136
+ * edge throws.
137
+ *
138
+ * @param edge - The {@linkcode ErasableEdgeRef} to erase, from {@linkcode listErasableEdges} unmodified
139
+ * @returns `{ ok: true }` on success (the engine yields no survivor id today).
140
+ * @throws when the ref is stale, its components are all erase-ineligible, or the
141
+ * strategy is not committable via the scripted path.
142
+ *
143
+ * @examplePrompt Erase the edge between these two rooms so they merge
144
+ * @examplePrompt Remove the shared boundary between the kitchen and the dining space
145
+ * @examplePrompt Merge the two adjacent rooms by erasing their common edge
146
+ * @examplePrompt Knock through the partition line between these spaces
147
+ * @examplePrompt Erase this boundary edge from the plan
148
+ *
149
+ * # Example
150
+ * ```ts
151
+ * // Merge two adjacent rooms by erasing an internal edge they share
152
+ * const edges = await snaptrude.design.erase.listErasableEdges({ strategies: ["DirectUnion"] })
153
+ * if (edges.length > 0) {
154
+ * const { ok } = await snaptrude.design.erase.edge(edges[0])
155
+ * }
156
+ * ```
157
+ */
158
+ abstract edge(edge: ErasableEdgeRef): PluginApiReturn<PluginDesignEraseEdgeResult>;
159
+ }
160
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/api/design/erase/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,KAAK,CAAA;AACxB,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAA;AAChD,OAAO,EAAE,eAAe,EAAc,MAAM,kBAAkB,CAAA;AAE9D;;;;;GAKG;AACH,eAAO,MAAM,aAAa;;;;EAA2D,CAAA;AACrF,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,aAAa,CAAC,CAAA;AAEzD,gFAAgF;AAChF,eAAO,MAAM,wBAAwB,EAAE,SAAS,aAAa,EAAoC,CAAA;AAEjG;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,eAAe;;;;;;;;;;iBAW1B,CAAA;AACF,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAA;AAE7D;;;;;;;;;;GAUG;AACH,eAAO,MAAM,iCAAiC;;;;;;;iBAG5C,CAAA;AACF,MAAM,MAAM,iCAAiC,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iCAAiC,CAAC,CAAA;AAEjG;;;;;GAKG;AACH,eAAO,MAAM,yBAAyB;;;;;;;;;;;;iBAEpC,CAAA;AACF,MAAM,MAAM,yBAAyB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,CAAA;AAEjF,4GAA4G;AAC5G,eAAO,MAAM,2BAA2B;;iBAAoC,CAAA;AAC5E,MAAM,MAAM,2BAA2B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,2BAA2B,CAAC,CAAA;AAErF;;;;;;;;;;;;;GAaG;AACH,8BAAsB,oBAAoB;;IAGxC;;;;;;;;;;;;;;;;;;;;;;;OAuBG;aACa,iBAAiB,CAC/B,OAAO,CAAC,EAAE,iCAAiC,GAC1C,eAAe,CAAC,eAAe,EAAE,CAAC;IAErC;;;;;;;;;;;;;;;;;;;;;;;;;;;OA2BG;aACa,IAAI,CAAC,IAAI,EAAE,eAAe,GAAG,eAAe,CAAC,2BAA2B,CAAC;CAC1F"}