@snaptrude/plugin-core 0.7.1 → 0.8.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 (130) hide show
  1. package/CHANGELOG.md +14 -0
  2. package/api-manifest.full.json +6442 -0
  3. package/api-manifest.json +2029 -128
  4. package/dist/api/core/camera/index.d.ts +208 -0
  5. package/dist/api/core/camera/index.d.ts.map +1 -0
  6. package/dist/api/core/comment/index.d.ts +105 -2
  7. package/dist/api/core/comment/index.d.ts.map +1 -1
  8. package/dist/api/core/geom/create/index.d.ts +13 -13
  9. package/dist/api/core/geom/delete/index.d.ts +8 -2
  10. package/dist/api/core/geom/delete/index.d.ts.map +1 -1
  11. package/dist/api/core/geom/query/arc.d.ts +5 -5
  12. package/dist/api/core/geom/query/brep.d.ts +18 -18
  13. package/dist/api/core/geom/query/circle.d.ts +18 -18
  14. package/dist/api/core/geom/query/contour.d.ts +20 -20
  15. package/dist/api/core/geom/query/curve.d.ts +49 -49
  16. package/dist/api/core/geom/query/edge.d.ts +5 -5
  17. package/dist/api/core/geom/query/face.d.ts +16 -16
  18. package/dist/api/core/geom/query/halfedge.d.ts +8 -8
  19. package/dist/api/core/geom/query/profile.d.ts +19 -19
  20. package/dist/api/core/geom/query/vertex.d.ts +8 -8
  21. package/dist/api/core/geom/update/contour.d.ts +14 -14
  22. package/dist/api/core/geom/update/curve.d.ts +7 -7
  23. package/dist/api/core/geom/update/profile.d.ts +16 -16
  24. package/dist/api/core/handles/index.d.ts +210 -0
  25. package/dist/api/core/handles/index.d.ts.map +1 -0
  26. package/dist/api/core/index.d.ts +15 -0
  27. package/dist/api/core/index.d.ts.map +1 -1
  28. package/dist/api/core/io/export/index.d.ts +132 -0
  29. package/dist/api/core/io/export/index.d.ts.map +1 -0
  30. package/dist/api/core/io/import/index.d.ts +1 -1
  31. package/dist/api/core/io/index.d.ts +5 -0
  32. package/dist/api/core/io/index.d.ts.map +1 -1
  33. package/dist/api/core/layers.d.ts +7 -7
  34. package/dist/api/core/proposals/index.d.ts +65 -9
  35. package/dist/api/core/proposals/index.d.ts.map +1 -1
  36. package/dist/api/core/user.d.ts +44 -0
  37. package/dist/api/core/user.d.ts.map +1 -0
  38. package/dist/api/design/boolean/index.d.ts +4 -4
  39. package/dist/api/design/create/index.d.ts +139 -44
  40. package/dist/api/design/create/index.d.ts.map +1 -1
  41. package/dist/api/design/doors/index.d.ts +36 -0
  42. package/dist/api/design/doors/index.d.ts.map +1 -1
  43. package/dist/api/design/edit/index.d.ts +1 -1
  44. package/dist/api/design/erase/index.d.ts +2 -2
  45. package/dist/api/design/furniture/index.d.ts +114 -3
  46. package/dist/api/design/furniture/index.d.ts.map +1 -1
  47. package/dist/api/design/index.d.ts +10 -0
  48. package/dist/api/design/index.d.ts.map +1 -1
  49. package/dist/api/design/materials/index.d.ts +111 -14
  50. package/dist/api/design/materials/index.d.ts.map +1 -1
  51. package/dist/api/design/query/index.d.ts +31 -1
  52. package/dist/api/design/query/index.d.ts.map +1 -1
  53. package/dist/api/design/query/spaces.d.ts +5 -5
  54. package/dist/api/design/transform/index.d.ts +83 -14
  55. package/dist/api/design/transform/index.d.ts.map +1 -1
  56. package/dist/api/design/types/index.d.ts +181 -0
  57. package/dist/api/design/types/index.d.ts.map +1 -0
  58. package/dist/api/design/update/index.d.ts +335 -2
  59. package/dist/api/design/update/index.d.ts.map +1 -1
  60. package/dist/api/design/visibility.d.ts +98 -0
  61. package/dist/api/design/visibility.d.ts.map +1 -0
  62. package/dist/api/entity/referenceLine.d.ts +2 -2
  63. package/dist/api/entity/space.d.ts +19 -19
  64. package/dist/api/entity/story.d.ts +128 -15
  65. package/dist/api/entity/story.d.ts.map +1 -1
  66. package/dist/api/presentation/annotate.d.ts +448 -0
  67. package/dist/api/presentation/annotate.d.ts.map +1 -0
  68. package/dist/api/presentation/diagrams.d.ts +49 -8
  69. package/dist/api/presentation/diagrams.d.ts.map +1 -1
  70. package/dist/api/presentation/export.d.ts +104 -0
  71. package/dist/api/presentation/export.d.ts.map +1 -0
  72. package/dist/api/presentation/index.d.ts +38 -0
  73. package/dist/api/presentation/index.d.ts.map +1 -1
  74. package/dist/api/presentation/sheets.d.ts +410 -13
  75. package/dist/api/presentation/sheets.d.ts.map +1 -1
  76. package/dist/api/presentation/views.d.ts +165 -10
  77. package/dist/api/presentation/views.d.ts.map +1 -1
  78. package/dist/api/program/areas.d.ts +63 -3
  79. package/dist/api/program/areas.d.ts.map +1 -1
  80. package/dist/api/program/cores.d.ts +3 -99
  81. package/dist/api/program/cores.d.ts.map +1 -1
  82. package/dist/api/program/index.d.ts +2 -2
  83. package/dist/api/program/index.d.ts.map +1 -1
  84. package/dist/api/program/layout.d.ts +172 -12
  85. package/dist/api/program/layout.d.ts.map +1 -1
  86. package/dist/api/program/site.d.ts +11 -8
  87. package/dist/api/program/site.d.ts.map +1 -1
  88. package/dist/api/program/spreadsheet.d.ts +105 -13
  89. package/dist/api/program/spreadsheet.d.ts.map +1 -1
  90. package/dist/handles.d.ts +64 -25
  91. package/dist/handles.d.ts.map +1 -1
  92. package/dist/index.cjs +2316 -1644
  93. package/dist/index.cjs.map +1 -1
  94. package/dist/index.js +2224 -1639
  95. package/dist/index.js.map +1 -1
  96. package/package.json +1 -1
  97. package/src/api/core/camera/index.ts +212 -0
  98. package/src/api/core/comment/index.ts +120 -2
  99. package/src/api/core/geom/delete/index.ts +6 -0
  100. package/src/api/core/handles/index.ts +233 -0
  101. package/src/api/core/index.ts +15 -0
  102. package/src/api/core/io/export/index.ts +124 -0
  103. package/src/api/core/io/index.ts +5 -0
  104. package/src/api/core/proposals/index.ts +71 -11
  105. package/src/api/core/user.ts +46 -0
  106. package/src/api/design/create/index.ts +166 -36
  107. package/src/api/design/doors/index.ts +40 -0
  108. package/src/api/design/furniture/index.ts +127 -3
  109. package/src/api/design/index.ts +10 -0
  110. package/src/api/design/materials/index.ts +157 -30
  111. package/src/api/design/query/index.ts +33 -7
  112. package/src/api/design/transform/index.ts +89 -12
  113. package/src/api/design/types/index.ts +156 -0
  114. package/src/api/design/update/index.ts +402 -6
  115. package/src/api/design/visibility.ts +109 -0
  116. package/src/api/entity/story.ts +141 -15
  117. package/src/api/presentation/annotate.ts +360 -0
  118. package/src/api/presentation/diagrams.ts +53 -8
  119. package/src/api/presentation/export.ts +104 -0
  120. package/src/api/presentation/index.ts +46 -0
  121. package/src/api/presentation/sheets.ts +346 -13
  122. package/src/api/presentation/views.ts +164 -12
  123. package/src/api/program/areas.ts +57 -6
  124. package/src/api/program/cores.ts +3 -91
  125. package/src/api/program/index.ts +2 -2
  126. package/src/api/program/layout.ts +182 -12
  127. package/src/api/program/site.ts +11 -8
  128. package/src/api/program/spreadsheet.ts +125 -29
  129. package/src/handles.ts +77 -13
  130. package/tsconfig.json +7 -2
@@ -57,7 +57,7 @@ export declare const PluginSpacePropertyUpdates: z.ZodObject<{
57
57
  export type PluginSpacePropertyUpdates = z.infer<typeof PluginSpacePropertyUpdates>;
58
58
  /** Geometry replacement for a space — re-extrude a profile. */
59
59
  export declare const PluginSpaceGeometryUpdate: z.ZodObject<{
60
- profile: z.ZodPipe<z.ZodString, z.ZodTransform<import("../../..").Handle<"profile">, string>>;
60
+ profile: z.ZodPipe<z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodString>, z.ZodTransform<import("../../..").Handle<"profile">, string>>;
61
61
  extrudeHeight: z.ZodNumber;
62
62
  }, z.core.$strip>;
63
63
  export type PluginSpaceGeometryUpdate = z.infer<typeof PluginSpaceGeometryUpdate>;
@@ -105,7 +105,7 @@ export declare const PluginUpdateSpaceItem: z.ZodObject<{
105
105
  }>, z.ZodUUID]>>;
106
106
  }, z.core.$strip>>;
107
107
  geometry: z.ZodOptional<z.ZodObject<{
108
- profile: z.ZodPipe<z.ZodString, z.ZodTransform<import("../../..").Handle<"profile">, string>>;
108
+ profile: z.ZodPipe<z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodString>, z.ZodTransform<import("../../..").Handle<"profile">, string>>;
109
109
  extrudeHeight: z.ZodNumber;
110
110
  }, z.core.$strip>>;
111
111
  }, z.core.$strip>;
@@ -193,6 +193,90 @@ export declare const PluginDesignUpdateStaircaseArgs: z.ZodObject<{
193
193
  }, z.core.$strip>;
194
194
  }, z.core.$strip>;
195
195
  export type PluginDesignUpdateStaircaseArgs = z.infer<typeof PluginDesignUpdateStaircaseArgs>;
196
+ /**
197
+ * Sparse edits for a wall (all optional; at least one required). Only the
198
+ * fields you provide change. Dimensions are in **engine units** (the same
199
+ * convention as `design.doors.setWidth`). Consumed by
200
+ * {@linkcode PluginDesignUpdateApi.wall}.
201
+ *
202
+ * | Property | Type | Description |
203
+ * |---|---|---|
204
+ * | `thickness` | `number`? | Wall thickness, engine units (> 0) |
205
+ * | `height` | `number`? | Wall height, engine units (> 0) |
206
+ * | `type` | `string`? | Convert the wall to another wall type — a name (or `wall:`-prefixed id) from `design.types.list("wall")` |
207
+ */
208
+ export declare const PluginWallUpdates: z.ZodObject<{
209
+ thickness: z.ZodOptional<z.ZodNumber>;
210
+ height: z.ZodOptional<z.ZodNumber>;
211
+ type: z.ZodOptional<z.ZodString>;
212
+ }, z.core.$strip>;
213
+ export type PluginWallUpdates = z.infer<typeof PluginWallUpdates>;
214
+ /**
215
+ * Sparse dimension edits for a slab-family element (slab / floor / roof /
216
+ * ceiling). All values are engine units, the same convention as
217
+ * `design.doors.setWidth`. Consumed by {@linkcode PluginDesignUpdateApi.slab},
218
+ * `floor`, `roof`, and `ceiling`.
219
+ *
220
+ * `overhang` is only available on **slabs and roofs** (the panel's Overhang
221
+ * slider) — floors and ceilings reject it with `PRECONDITION_FAILED`.
222
+ *
223
+ * | Property | Type | Description |
224
+ * |---|---|---|
225
+ * | `thickness` | `number`? | Element thickness, engine units (> 0) |
226
+ * | `overhang` | `number`? | Absolute overhang offset, engine units (slab / roof only) |
227
+ */
228
+ export declare const PluginSlabUpdates: z.ZodObject<{
229
+ thickness: z.ZodOptional<z.ZodNumber>;
230
+ overhang: z.ZodOptional<z.ZodNumber>;
231
+ }, z.core.$strip>;
232
+ export type PluginSlabUpdates = z.infer<typeof PluginSlabUpdates>;
233
+ /** Arguments for {@linkcode PluginDesignUpdateApi.wall}. */
234
+ export declare const PluginDesignUpdateWallArgs: z.ZodObject<{
235
+ component: z.ZodPipe<z.ZodString, z.ZodTransform<ComponentHandle, string>>;
236
+ updates: z.ZodObject<{
237
+ thickness: z.ZodOptional<z.ZodNumber>;
238
+ height: z.ZodOptional<z.ZodNumber>;
239
+ type: z.ZodOptional<z.ZodString>;
240
+ }, z.core.$strip>;
241
+ }, z.core.$strip>;
242
+ export type PluginDesignUpdateWallArgs = z.infer<typeof PluginDesignUpdateWallArgs>;
243
+ /**
244
+ * Arguments for the slab-family updaters —
245
+ * {@linkcode PluginDesignUpdateApi.slab}, `floor`, `roof`, `ceiling`.
246
+ */
247
+ export declare const PluginDesignUpdateSlabArgs: z.ZodObject<{
248
+ component: z.ZodPipe<z.ZodString, z.ZodTransform<ComponentHandle, string>>;
249
+ updates: z.ZodObject<{
250
+ thickness: z.ZodOptional<z.ZodNumber>;
251
+ overhang: z.ZodOptional<z.ZodNumber>;
252
+ }, z.core.$strip>;
253
+ }, z.core.$strip>;
254
+ export type PluginDesignUpdateSlabArgs = z.infer<typeof PluginDesignUpdateSlabArgs>;
255
+ /** Arguments for {@linkcode PluginDesignUpdateApi.setElevation}. */
256
+ export declare const PluginDesignSetElevationArgs: z.ZodObject<{
257
+ component: z.ZodPipe<z.ZodString, z.ZodTransform<ComponentHandle, string>>;
258
+ elevation: z.ZodNumber;
259
+ }, z.core.$strip>;
260
+ export type PluginDesignSetElevationArgs = z.infer<typeof PluginDesignSetElevationArgs>;
261
+ /** Arguments for {@linkcode PluginDesignUpdateApi.setBaseOffset}. */
262
+ export declare const PluginDesignSetBaseOffsetArgs: z.ZodObject<{
263
+ component: z.ZodPipe<z.ZodString, z.ZodTransform<ComponentHandle, string>>;
264
+ offset: z.ZodNumber;
265
+ }, z.core.$strip>;
266
+ export type PluginDesignSetBaseOffsetArgs = z.infer<typeof PluginDesignSetBaseOffsetArgs>;
267
+ /**
268
+ * Arguments for {@linkcode PluginDesignUpdateApi.setStorey}.
269
+ *
270
+ * | Property | Type | Description |
271
+ * |---|---|---|
272
+ * | `components` | {@linkcode ComponentHandle}`[]` | The components to reassign |
273
+ * | `storey` | `number` | Target integer storey number (`entity.story` convention; must exist) |
274
+ */
275
+ export declare const PluginDesignSetStoreyArgs: z.ZodObject<{
276
+ components: z.ZodArray<z.ZodPipe<z.ZodString, z.ZodTransform<ComponentHandle, string>>>;
277
+ storey: z.ZodNumber;
278
+ }, z.core.$strip>;
279
+ export type PluginDesignSetStoreyArgs = z.infer<typeof PluginDesignSetStoreyArgs>;
196
280
  /**
197
281
  * `snaptrude.design.update` — edit existing scene entities (properties + geometry).
198
282
  *
@@ -342,5 +426,254 @@ export declare abstract class PluginDesignUpdateApi {
342
426
  * ```
343
427
  */
344
428
  abstract staircase(staircases: ComponentHandle[], params: PluginStaircaseParamUpdates): PluginApiReturn<PluginDesignChangeResult>;
429
+ /**
430
+ * Edit a **wall** — its thickness and/or height (the same command the
431
+ * properties panel's Thickness/Height fields drive) and/or its **wall type**
432
+ * (the panel's Wall Types dropdown: converts the wall to another type,
433
+ * rebuilding its layer stack and materials). Sparse: only the fields you
434
+ * provide change. Undoable; the geometry rebuilds and any dimension lines
435
+ * refresh. Stacked-wall companions and hosted fenestration are handled
436
+ * exactly as the panel does.
437
+ *
438
+ * Thickness/height are in **engine units** (the same convention as
439
+ * `design.doors.setWidth`) and must be `> 0`. Shrinking a wall past its
440
+ * openings is rejected by the engine (the wall is skipped with no change).
441
+ * `type` accepts a type name from `design.types.list("wall")` (or its
442
+ * `wall:`-prefixed id); when combined with dimensions, the type conversion
443
+ * is applied first so an explicit thickness/height wins over the type's
444
+ * defaults. Re-applying the wall's current type is a no-op.
445
+ *
446
+ * Throws when the handle is not a wall, when the wall is locked, when the
447
+ * handle is gone/forged, when `type` names an unknown wall type, when the
448
+ * engine rejects the conversion (e.g. a curved wall thinner than the new
449
+ * type's minimum thickness), or when no field is provided.
450
+ *
451
+ * A type conversion (and a thickness edit on a parametric wall) REBUILDS the
452
+ * wall, replacing it with a new component: the input handle is then dead
453
+ * (further calls throw HANDLE_INVALID) and `affected[0]` carries the
454
+ * replacement's handle — use it for any follow-up calls.
455
+ *
456
+ * @param component - The wall to edit
457
+ * @param updates - Sparse {@linkcode PluginWallUpdates} (at least one field)
458
+ * @returns the affected wall — after a rebuild, the REPLACEMENT wall's handle
459
+ *
460
+ * @examplePrompt Make this wall 230mm thick
461
+ * @examplePrompt Set the selected wall's height to 3 metres
462
+ * @examplePrompt Thicken every exterior wall to 300
463
+ * @examplePrompt Change this wall to a Glass Wall
464
+ * @examplePrompt Convert all the partitions on this floor to Brick Wall
465
+ *
466
+ * # Example
467
+ * ```ts
468
+ * // Convert every wall on storey 1 to the first listed wall type
469
+ * const [wallType] = await snaptrude.design.types.list("wall")
470
+ * const walls = await snaptrude.design.query.listWalls({ storeys: [1] })
471
+ * for (const wall of walls) {
472
+ * await snaptrude.design.update.wall(wall, { type: wallType.id })
473
+ * }
474
+ * ```
475
+ */
476
+ abstract wall(component: ComponentHandle, updates: PluginWallUpdates): PluginApiReturn<PluginDesignChangeResult>;
477
+ /**
478
+ * Edit a **slab's** thickness and/or overhang — the same commands the
479
+ * properties panel's Thickness field and Overhang slider drive. Sparse: only
480
+ * the fields you provide change. Undoable; the slab rebuilds and dimension
481
+ * lines refresh. Both values are in **engine units** (the same convention as
482
+ * `design.doors.setWidth`); thickness must be `> 0`, overhang is an absolute
483
+ * offset (negative insets the slab) and re-applying the current overhang is
484
+ * a no-op.
485
+ *
486
+ * Throws when the handle is not a slab, when it is locked, when the handle is
487
+ * gone/forged, when `overhang` is set on a slab that has no overhang (plinth /
488
+ * basement slabs, or overhang disabled), or when no field is provided.
489
+ *
490
+ * @param component - The slab to edit
491
+ * @param updates - Sparse {@linkcode PluginSlabUpdates} (at least one field)
492
+ * @returns the affected slab
493
+ *
494
+ * @examplePrompt Set this slab's thickness to 250mm
495
+ * @examplePrompt Make the floor slab 300 thick
496
+ * @examplePrompt Give this slab a 200 overhang
497
+ * @examplePrompt Remove the overhang on every slab on level 2
498
+ *
499
+ * # Example
500
+ * ```ts
501
+ * const [slab] = await snaptrude.design.query.listSlabs()
502
+ * await snaptrude.design.update.slab(slab, { thickness: 250, overhang: 200 })
503
+ * ```
504
+ */
505
+ abstract slab(component: ComponentHandle, updates: PluginSlabUpdates): PluginApiReturn<PluginDesignChangeResult>;
506
+ /**
507
+ * Edit a **floor's** thickness — the slab-family updater for floors (shares
508
+ * the slab thickness command). Undoable. Thickness is in **engine units**
509
+ * (the `design.doors.setWidth` convention) and must be `> 0`. Floors have no
510
+ * Overhang control, so `overhang` is rejected with `PRECONDITION_FAILED`.
511
+ *
512
+ * Throws when the handle is not a floor, when it is locked, when the handle
513
+ * is gone/forged, when `overhang` is provided, or when no field is provided.
514
+ *
515
+ * @param component - The floor to edit
516
+ * @param updates - {@linkcode PluginSlabUpdates} (a `thickness`)
517
+ * @returns the affected floor
518
+ *
519
+ * @examplePrompt Make this floor 200mm thick
520
+ * @examplePrompt Set every floor to a 250 thickness
521
+ * @examplePrompt Thicken the ground floor slab to 300
522
+ *
523
+ * # Example
524
+ * ```ts
525
+ * const [floor] = await snaptrude.design.query.listFloors()
526
+ * await snaptrude.design.update.floor(floor, { thickness: 200 })
527
+ * ```
528
+ */
529
+ abstract floor(component: ComponentHandle, updates: PluginSlabUpdates): PluginApiReturn<PluginDesignChangeResult>;
530
+ /**
531
+ * Edit a **roof's** thickness and/or overhang — the same commands the roof
532
+ * panel's Thickness field and Overhang slider drive (shares the slab-family
533
+ * machinery). Sparse: only the fields you provide change. Undoable. Both
534
+ * values are in **engine units** (the `design.doors.setWidth` convention);
535
+ * thickness must be `> 0`, overhang is an absolute offset (negative insets
536
+ * the roof) and re-applying the current overhang is a no-op.
537
+ *
538
+ * Throws when the handle is not a roof, when it is locked, when the handle is
539
+ * gone/forged, when `overhang` is set on a roof whose overhang is disabled,
540
+ * or when no field is provided.
541
+ *
542
+ * @param component - The roof to edit
543
+ * @param updates - Sparse {@linkcode PluginSlabUpdates} (at least one field)
544
+ * @returns the affected roof
545
+ *
546
+ * @examplePrompt Make this roof 300mm thick
547
+ * @examplePrompt Set the roof slab thickness to 250
548
+ * @examplePrompt Give the roof a 600 overhang
549
+ * @examplePrompt Pull the roof overhang back to 0
550
+ *
551
+ * # Example
552
+ * ```ts
553
+ * const [roof] = await snaptrude.design.query.listRoofs()
554
+ * await snaptrude.design.update.roof(roof, { overhang: 600 })
555
+ * ```
556
+ */
557
+ abstract roof(component: ComponentHandle, updates: PluginSlabUpdates): PluginApiReturn<PluginDesignChangeResult>;
558
+ /**
559
+ * Edit a **ceiling's** thickness — the slab-family updater for ceilings
560
+ * (shares the slab thickness command). Undoable. Thickness is in **engine
561
+ * units** (the `design.doors.setWidth` convention) and must be `> 0`.
562
+ * Ceilings have no Overhang control, so `overhang` is rejected with
563
+ * `PRECONDITION_FAILED`.
564
+ *
565
+ * Throws when the handle is not a ceiling, when it is locked, when the handle
566
+ * is gone/forged, when `overhang` is provided, or when no field is provided.
567
+ *
568
+ * @param component - The ceiling to edit
569
+ * @param updates - {@linkcode PluginSlabUpdates} (a `thickness`)
570
+ * @returns the affected ceiling
571
+ *
572
+ * @examplePrompt Make this ceiling 150mm thick
573
+ * @examplePrompt Set every ceiling to a 100 thickness
574
+ * @examplePrompt Thicken the ceiling to 200
575
+ *
576
+ * # Example
577
+ * ```ts
578
+ * const [ceiling] = await snaptrude.design.query.listCeilings()
579
+ * await snaptrude.design.update.ceiling(ceiling, { thickness: 150 })
580
+ * ```
581
+ */
582
+ abstract ceiling(component: ComponentHandle, updates: PluginSlabUpdates): PluginApiReturn<PluginDesignChangeResult>;
583
+ /**
584
+ * Set a component's **absolute world elevation** — moves it vertically so its
585
+ * base (the bounding-box bottom, world Y) lands at `elevation`. Composed over
586
+ * the canonical command-backed move machinery, so it is undoable and persisted
587
+ * exactly like dragging the element up or down; per-type invariants (e.g. a
588
+ * staircase's base offset) stay in sync. `elevation` is in **engine units**
589
+ * (the `design.doors.setWidth` convention). Re-applying the current elevation
590
+ * is a no-op.
591
+ *
592
+ * Throws when the component is locked or the handle is gone/forged.
593
+ *
594
+ * @param component - The component to move vertically
595
+ * @param elevation - Target world elevation of the component's base (engine units)
596
+ * @returns the affected component
597
+ *
598
+ * @examplePrompt Set this element's elevation to 3000
599
+ * @examplePrompt Raise this mass so its base sits at 3 metres
600
+ * @examplePrompt Drop the selected slab to elevation 0
601
+ * @examplePrompt Put this staircase's base at 3200
602
+ *
603
+ * # Example
604
+ * ```ts
605
+ * // Sit the roof slab exactly at the top of a 3m storey
606
+ * const [roof] = await snaptrude.design.query.listRoofs()
607
+ * await snaptrude.design.update.setElevation(roof, 3000)
608
+ * ```
609
+ */
610
+ abstract setElevation(component: ComponentHandle, elevation: number): PluginApiReturn<PluginDesignChangeResult>;
611
+ /**
612
+ * Set a component's **base offset** — its vertical distance above its own
613
+ * storey's base level. Moves the component so its base lands at
614
+ * `storeyBase + offset`, composed over the same command-backed move machinery
615
+ * as {@linkcode setElevation} (undoable, persisted, per-type invariants kept
616
+ * in sync). Use this instead of {@linkcode setElevation} when you want an
617
+ * offset relative to the storey rather than an absolute world height.
618
+ * `offset` is in **engine units** (the `design.doors.setWidth` convention);
619
+ * `0` sits the base flush with the storey base. Re-applying the current
620
+ * offset is a no-op.
621
+ *
622
+ * Throws when the component is locked, when it has no storey to offset from,
623
+ * or when the handle is gone/forged.
624
+ *
625
+ * @param component - The component to offset
626
+ * @param offset - Distance of the component's base above its storey base (engine units)
627
+ * @returns the affected component
628
+ *
629
+ * @examplePrompt Lift this element 300 above its floor
630
+ * @examplePrompt Set this staircase's base offset to 0
631
+ * @examplePrompt Raise the selected mass 500 off the storey base
632
+ * @examplePrompt Offset this slab 150 above the floor level
633
+ *
634
+ * # Example
635
+ * ```ts
636
+ * const [stair] = await snaptrude.design.query.listStaircases()
637
+ * await snaptrude.design.update.setBaseOffset(stair, 0)
638
+ * ```
639
+ */
640
+ abstract setBaseOffset(component: ComponentHandle, offset: number): PluginApiReturn<PluginDesignChangeResult>;
641
+ /**
642
+ * Reassign one or more components to another **storey** — the same operation
643
+ * as the properties panel's Story dropdown, and it works across element kinds
644
+ * exactly like the panel (walls, slabs, masses, furniture, staircases, ...).
645
+ * Each component is moved vertically to the target storey's level (per-kind
646
+ * placement rules — e.g. a slab sits at the storey base, a wall on it) and
647
+ * its storey assignment, children, and dimension lines update together as
648
+ * **one undoable operation**.
649
+ *
650
+ * `storey` is an integer storey number in the `entity.story` convention
651
+ * (`1` is the ground storey, `-1` the first basement; `0` does not exist)
652
+ * and **must already exist** in each component's building — this call never
653
+ * creates storeys (use `entity.story.create` first). Components already on
654
+ * the target storey are skipped (no-op) and are not echoed in `affected`.
655
+ *
656
+ * Throws when the target storey does not exist, when any component is
657
+ * locked, or when a handle is gone/forged — all before anything moves
658
+ * (all-or-nothing).
659
+ *
660
+ * @param components - The components to reassign
661
+ * @param storey - Target storey number (integer, `entity.story` convention)
662
+ * @returns the components actually reassigned
663
+ *
664
+ * @examplePrompt Move this sofa to storey 2
665
+ * @examplePrompt Put the selected walls on the first basement level
666
+ * @examplePrompt Send everything on this storey up one level
667
+ * @examplePrompt Reassign these slabs to storey 3
668
+ *
669
+ * # Example
670
+ * ```ts
671
+ * // Move the current selection up to storey 2
672
+ * const selection = await snaptrude.design.selection.get()
673
+ * const { affected } = await snaptrude.design.update.setStorey(selection, 2)
674
+ * console.log("moved", affected.length, "components")
675
+ * ```
676
+ */
677
+ abstract setStorey(components: ComponentHandle[], storey: number): PluginApiReturn<PluginDesignChangeResult>;
345
678
  }
346
679
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/api/design/update/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,KAAK,CAAA;AACxB,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAA;AAChD,OAAO,EAAE,eAAe,EAAiB,MAAM,kBAAkB,CAAA;AACjE,OAAO,EAKL,uBAAuB,EACxB,MAAM,oBAAoB,CAAA;AAC3B,OAAO,EAAE,wBAAwB,EAAE,MAAM,SAAS,CAAA;AAElD;;;;;;;;;;GAUG;AACH,eAAO,MAAM,0BAA0B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAMrC,CAAA;AACF,MAAM,MAAM,0BAA0B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,0BAA0B,CAAC,CAAA;AAEnF,+DAA+D;AAC/D,eAAO,MAAM,yBAAyB;;;iBAGpC,CAAA;AACF,MAAM,MAAM,yBAAyB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,CAAA;AAEjF,wEAAwE;AACxE,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAIhC,CAAA;AACF,MAAM,MAAM,qBAAqB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAA;AAEzE;;;;;;;GAOG;AACH,eAAO,MAAM,wBAAwB;;;iBAGnC,CAAA;AACF,MAAM,MAAM,wBAAwB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAA;AAE/E;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,eAAO,MAAM,2BAA2B;;;;;;;;;;;;;;iBAmBpC,CAAA;AACJ,MAAM,MAAM,2BAA2B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,2BAA2B,CAAC,CAAA;AAErF;;;;;;;GAOG;AACH,eAAO,MAAM,+BAA+B;;;;;;;;;;;;;;;;;iBAG1C,CAAA;AACF,MAAM,MAAM,+BAA+B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,+BAA+B,CAAC,CAAA;AAE7F;;;;;GAKG;AACH,8BAAsB,qBAAqB;;IAGzC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAqCG;aACa,QAAQ,CAAC,SAAS,EAAE,eAAe,EAAE,KAAK,EAAE,MAAM,GAAG,eAAe,CAAC,OAAO,CAAC;IAE7F;;;;;;;;;;;;;;;;;;;;OAoBG;aACa,KAAK,CACnB,KAAK,EAAE,eAAe,EACtB,OAAO,EAAE;QACP,UAAU,CAAC,EAAE,0BAA0B,CAAA;QACvC,QAAQ,CAAC,EAAE,yBAAyB,CAAA;KACrC,GACA,eAAe,CAAC,uBAAuB,CAAC;IAE3C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA8BG;aACa,MAAM,CAAC,KAAK,EAAE,qBAAqB,EAAE,GAAG,eAAe,CAAC,uBAAuB,EAAE,CAAC;IAElG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA2CG;aACa,SAAS,CACvB,UAAU,EAAE,eAAe,EAAE,EAC7B,MAAM,EAAE,2BAA2B,GAClC,eAAe,CAAC,wBAAwB,CAAC;CAC7C"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/api/design/update/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,98 @@
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.visibility.*` — hide, isolate, and reveal scene entities.
7
+ *
8
+ * Visibility is a per-component user flag (the same one the "Hide" / "Isolate" /
9
+ * "Show All" toolbar and right-click actions toggle). Every method here commits
10
+ * an undoable command and echoes the affected entities as
11
+ * {@linkcode PluginDesignChangeResult}.
12
+ *
13
+ * Accessed via `snaptrude.design.visibility`.
14
+ */
15
+ export declare abstract class PluginDesignVisibilityApi {
16
+ constructor();
17
+ /**
18
+ * Hide entities from the viewport — the same as the "Hide" action. Undoable.
19
+ * Hosted door/window/void children ride along with their wall. Already-hidden
20
+ * entities stay hidden.
21
+ *
22
+ * @param components Entities to hide
23
+ * @returns The affected entities (echoing the input handles)
24
+ *
25
+ * @examplePrompt Hide the selected walls
26
+ * @examplePrompt Conceal these masses so I can see behind them
27
+ * @examplePrompt Hide every column on this floor
28
+ * @examplePrompt Make this furniture disappear from view
29
+ *
30
+ * # Example
31
+ * ```ts
32
+ * const walls = await snaptrude.design.query.listWalls({ storeys: [1] })
33
+ * const { affected } = await snaptrude.design.visibility.hide(walls)
34
+ * ```
35
+ */
36
+ abstract hide(components: ComponentHandle[]): PluginApiReturn<PluginDesignChangeResult>;
37
+ /**
38
+ * Isolate entities — hide everything else so only the given entities remain
39
+ * visible (the "Isolate" / solo action). Undoable. Reverse it with
40
+ * {@linkcode PluginDesignVisibilityApi.showAll}.
41
+ *
42
+ * @param components Entities to keep visible; everything else is hidden
43
+ * @returns The isolated entities (echoing the input handles)
44
+ *
45
+ * @examplePrompt Isolate the selected room so I can focus on it
46
+ * @examplePrompt Show only these walls and hide the rest
47
+ * @examplePrompt Solo this mass
48
+ * @examplePrompt Hide everything except the staircase
49
+ *
50
+ * # Example
51
+ * ```ts
52
+ * const [room] = await snaptrude.design.selection.get()
53
+ * await snaptrude.design.visibility.isolate([room])
54
+ * ```
55
+ */
56
+ abstract isolate(components: ComponentHandle[]): PluginApiReturn<PluginDesignChangeResult>;
57
+ /**
58
+ * Reveal everything hidden on the active story — the "Show All" action, which
59
+ * also exits an isolate. Undoable.
60
+ *
61
+ * @returns The entities that were made visible
62
+ *
63
+ * @examplePrompt Show everything again
64
+ * @examplePrompt Unhide all the hidden objects
65
+ * @examplePrompt Exit isolate mode
66
+ * @examplePrompt Reveal everything I hid earlier
67
+ *
68
+ * # Example
69
+ * ```ts
70
+ * const { affected } = await snaptrude.design.visibility.showAll()
71
+ * console.log(`Revealed ${affected.length} entities`)
72
+ * ```
73
+ */
74
+ abstract showAll(): PluginApiReturn<PluginDesignChangeResult>;
75
+ }
76
+ /**
77
+ * Arguments for {@linkcode PluginDesignVisibilityApi.hide}.
78
+ *
79
+ * | Property | Type | Description |
80
+ * |---|---|---|
81
+ * | `components` | {@linkcode ComponentHandle}`[]` | Entities to hide |
82
+ */
83
+ export declare const PluginDesignVisibilityHideArgs: z.ZodObject<{
84
+ components: z.ZodArray<z.ZodPipe<z.ZodString, z.ZodTransform<ComponentHandle, string>>>;
85
+ }, z.core.$strip>;
86
+ export type PluginDesignVisibilityHideArgs = z.infer<typeof PluginDesignVisibilityHideArgs>;
87
+ /**
88
+ * Arguments for {@linkcode PluginDesignVisibilityApi.isolate}.
89
+ *
90
+ * | Property | Type | Description |
91
+ * |---|---|---|
92
+ * | `components` | {@linkcode ComponentHandle}`[]` | Entities to keep visible |
93
+ */
94
+ export declare const PluginDesignVisibilityIsolateArgs: z.ZodObject<{
95
+ components: z.ZodArray<z.ZodPipe<z.ZodString, z.ZodTransform<ComponentHandle, string>>>;
96
+ }, z.core.$strip>;
97
+ export type PluginDesignVisibilityIsolateArgs = z.infer<typeof PluginDesignVisibilityIsolateArgs>;
98
+ //# sourceMappingURL=visibility.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"visibility.d.ts","sourceRoot":"","sources":["../../../src/api/design/visibility.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,KAAK,CAAA;AACxB,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AAC7C,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAA;AAC/C,OAAO,EAAE,wBAAwB,EAAE,MAAM,QAAQ,CAAA;AAEjD;;;;;;;;;GASG;AACH,8BAAsB,yBAAyB;;IAG7C;;;;;;;;;;;;;;;;;;OAkBG;aACa,IAAI,CAClB,UAAU,EAAE,eAAe,EAAE,GAC5B,eAAe,CAAC,wBAAwB,CAAC;IAE5C;;;;;;;;;;;;;;;;;;OAkBG;aACa,OAAO,CACrB,UAAU,EAAE,eAAe,EAAE,GAC5B,eAAe,CAAC,wBAAwB,CAAC;IAE5C;;;;;;;;;;;;;;;;OAgBG;aACa,OAAO,IAAI,eAAe,CAAC,wBAAwB,CAAC;CACrE;AAED;;;;;;GAMG;AACH,eAAO,MAAM,8BAA8B;;iBAEzC,CAAA;AACF,MAAM,MAAM,8BAA8B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,8BAA8B,CAAC,CAAA;AAE3F;;;;;;GAMG;AACH,eAAO,MAAM,iCAAiC;;iBAE5C,CAAA;AACF,MAAM,MAAM,iCAAiC,GAAG,CAAC,CAAC,KAAK,CACrD,OAAO,iCAAiC,CACzC,CAAA"}
@@ -126,7 +126,7 @@ export declare abstract class PluginReferenceLineApi {
126
126
  * | `profile` | {@linkcode ProfileHandle} | Profile handle whose curves define reference lines |
127
127
  */
128
128
  export declare const PluginReferenceLineCreateMultiArgs: z.ZodObject<{
129
- profile: z.ZodPipe<z.ZodString, z.ZodTransform<import("../..").Handle<"profile">, string>>;
129
+ profile: z.ZodPipe<z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodString>, z.ZodTransform<import("../..").Handle<"profile">, string>>;
130
130
  }, z.core.$strip>;
131
131
  export type PluginReferenceLineCreateMultiArgs = z.infer<typeof PluginReferenceLineCreateMultiArgs>;
132
132
  /**
@@ -172,7 +172,7 @@ export type PluginReferenceLineGetArgs = z.infer<typeof PluginReferenceLineGetAr
172
172
  * {@linkcode PluginReferenceLineGetArgs.properties} will be present.
173
173
  */
174
174
  export declare const PluginReferenceLineGetResult: z.ZodObject<{
175
- curve: z.ZodOptional<z.ZodUnion<readonly [z.ZodPipe<z.ZodString, z.ZodTransform<import("../..").Handle<"line">, string>>, z.ZodPipe<z.ZodString, z.ZodTransform<import("../..").Handle<"arc">, string>>]>>;
175
+ curve: z.ZodOptional<z.ZodUnion<readonly [z.ZodPipe<z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodString>, z.ZodTransform<import("../..").Handle<"line">, string>>, z.ZodPipe<z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodString>, z.ZodTransform<import("../..").Handle<"arc">, string>>]>>;
176
176
  }, z.core.$strip>;
177
177
  export type PluginReferenceLineGetResult = z.infer<typeof PluginReferenceLineGetResult>;
178
178
  /**
@@ -8,7 +8,7 @@ import * as z from "zod";
8
8
  * | `dimensions` | `{ width, height, depth }` | Box dimensions in Babylon units |
9
9
  */
10
10
  export declare const PluginSpaceCreateRectangularArgs: z.ZodObject<{
11
- position: z.ZodPipe<z.ZodString, z.ZodTransform<import("../..").Handle<"vec3">, string>>;
11
+ position: z.ZodPipe<z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodString>, z.ZodTransform<import("../..").Handle<"vec3">, string>>;
12
12
  dimensions: z.ZodObject<{
13
13
  width: z.ZodNumber;
14
14
  height: z.ZodNumber;
@@ -38,10 +38,10 @@ export type PluginSpaceCreateRectangularResult = z.infer<typeof PluginSpaceCreat
38
38
  * | `position` | {@linkcode Vec3Handle} | Offset position in Babylon units |
39
39
  */
40
40
  export declare const PluginSpaceCreateFromProfileArgs: z.ZodObject<{
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>>>>;
41
+ profile: z.ZodPipe<z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodString>, z.ZodTransform<import("../..").Handle<"profile">, string>>;
42
+ innerProfiles: z.ZodOptional<z.ZodArray<z.ZodPipe<z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodString>, z.ZodTransform<import("../..").Handle<"profile">, string>>>>;
43
43
  extrudeHeight: z.ZodNumber;
44
- position: z.ZodPipe<z.ZodString, z.ZodTransform<import("../..").Handle<"vec3">, string>>;
44
+ position: z.ZodPipe<z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodString>, z.ZodTransform<import("../..").Handle<"vec3">, string>>;
45
45
  }, z.core.$strip>;
46
46
  export type PluginSpaceCreateFromProfileArgs = z.infer<typeof PluginSpaceCreateFromProfileArgs>;
47
47
  /**
@@ -66,7 +66,7 @@ export type PluginSpaceCreateFromProfileResult = z.infer<typeof PluginSpaceCreat
66
66
  */
67
67
  export declare const PluginSpaceUpdateGeometryFromProfileArgs: z.ZodObject<{
68
68
  spaceId: z.ZodString;
69
- profile: z.ZodPipe<z.ZodString, z.ZodTransform<import("../..").Handle<"profile">, string>>;
69
+ profile: z.ZodPipe<z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodString>, z.ZodTransform<import("../..").Handle<"profile">, string>>;
70
70
  extrudeHeight: z.ZodNumber;
71
71
  }, z.core.$strip>;
72
72
  export type PluginSpaceUpdateGeometryFromProfileArgs = z.infer<typeof PluginSpaceUpdateGeometryFromProfileArgs>;
@@ -130,8 +130,8 @@ export type PluginSpaceUpdateGeometryFromProfileResult = z.infer<typeof PluginSp
130
130
  export declare const PluginSpaceGetProperty: z.ZodEnum<{
131
131
  profile: "profile";
132
132
  type: "type";
133
- position: "position";
134
133
  id: "id";
134
+ position: "position";
135
135
  name: "name";
136
136
  storey: "storey";
137
137
  height: "height";
@@ -166,8 +166,8 @@ export declare const PluginSpaceGetArgs: z.ZodObject<{
166
166
  properties: z.ZodArray<z.ZodEnum<{
167
167
  profile: "profile";
168
168
  type: "type";
169
- position: "position";
170
169
  id: "id";
170
+ position: "position";
171
171
  name: "name";
172
172
  storey: "storey";
173
173
  height: "height";
@@ -300,8 +300,8 @@ export declare const PluginSpaceGetResult: z.ZodObject<{
300
300
  y: z.ZodNumber;
301
301
  z: z.ZodNumber;
302
302
  }, 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>>]>>>>;
303
+ profile: z.ZodOptional<z.ZodArray<z.ZodUnion<readonly [z.ZodPipe<z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodString>, z.ZodTransform<import("../..").Handle<"line">, string>>, z.ZodPipe<z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodString>, z.ZodTransform<import("../..").Handle<"arc">, string>>]>>>;
304
+ innerProfiles: z.ZodOptional<z.ZodArray<z.ZodArray<z.ZodUnion<readonly [z.ZodPipe<z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodString>, z.ZodTransform<import("../..").Handle<"line">, string>>, z.ZodPipe<z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodString>, z.ZodTransform<import("../..").Handle<"arc">, string>>]>>>>;
305
305
  innerPlanPoints: z.ZodOptional<z.ZodArray<z.ZodArray<z.ZodObject<{
306
306
  x: z.ZodNumber;
307
307
  y: z.ZodNumber;
@@ -498,7 +498,7 @@ export type PluginSpaceUpdateResult = z.infer<typeof PluginSpaceUpdateResult>;
498
498
  */
499
499
  export declare const PluginSpaceBulkCreateItem: z.ZodDiscriminatedUnion<[z.ZodObject<{
500
500
  kind: z.ZodLiteral<"rectangular">;
501
- position: z.ZodPipe<z.ZodString, z.ZodTransform<import("../..").Handle<"vec3">, string>>;
501
+ position: z.ZodPipe<z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodString>, z.ZodTransform<import("../..").Handle<"vec3">, string>>;
502
502
  dimensions: z.ZodObject<{
503
503
  width: z.ZodNumber;
504
504
  height: z.ZodNumber;
@@ -539,10 +539,10 @@ export declare const PluginSpaceBulkCreateItem: z.ZodDiscriminatedUnion<[z.ZodOb
539
539
  }>, z.ZodUUID]>>;
540
540
  }, z.core.$strip>, z.ZodObject<{
541
541
  kind: z.ZodLiteral<"profile">;
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>>>>;
542
+ profile: z.ZodPipe<z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodString>, z.ZodTransform<import("../..").Handle<"profile">, string>>;
543
+ innerProfiles: z.ZodOptional<z.ZodArray<z.ZodPipe<z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodString>, z.ZodTransform<import("../..").Handle<"profile">, string>>>>;
544
544
  extrudeHeight: z.ZodNumber;
545
- position: z.ZodPipe<z.ZodString, z.ZodTransform<import("../..").Handle<"vec3">, string>>;
545
+ position: z.ZodPipe<z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodString>, z.ZodTransform<import("../..").Handle<"vec3">, string>>;
546
546
  room_type: z.ZodOptional<z.ZodString>;
547
547
  spaceType: z.ZodOptional<z.ZodEnum<{
548
548
  Room: "Room";
@@ -588,7 +588,7 @@ export type PluginSpaceBulkCreateItem = z.infer<typeof PluginSpaceBulkCreateItem
588
588
  export declare const PluginSpaceBulkCreateArgs: z.ZodObject<{
589
589
  items: z.ZodArray<z.ZodDiscriminatedUnion<[z.ZodObject<{
590
590
  kind: z.ZodLiteral<"rectangular">;
591
- position: z.ZodPipe<z.ZodString, z.ZodTransform<import("../..").Handle<"vec3">, string>>;
591
+ position: z.ZodPipe<z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodString>, z.ZodTransform<import("../..").Handle<"vec3">, string>>;
592
592
  dimensions: z.ZodObject<{
593
593
  width: z.ZodNumber;
594
594
  height: z.ZodNumber;
@@ -629,10 +629,10 @@ export declare const PluginSpaceBulkCreateArgs: z.ZodObject<{
629
629
  }>, z.ZodUUID]>>;
630
630
  }, z.core.$strip>, z.ZodObject<{
631
631
  kind: z.ZodLiteral<"profile">;
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>>>>;
632
+ profile: z.ZodPipe<z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodString>, z.ZodTransform<import("../..").Handle<"profile">, string>>;
633
+ innerProfiles: z.ZodOptional<z.ZodArray<z.ZodPipe<z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodString>, z.ZodTransform<import("../..").Handle<"profile">, string>>>>;
634
634
  extrudeHeight: z.ZodNumber;
635
- position: z.ZodPipe<z.ZodString, z.ZodTransform<import("../..").Handle<"vec3">, string>>;
635
+ position: z.ZodPipe<z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodString>, z.ZodTransform<import("../..").Handle<"vec3">, string>>;
636
636
  room_type: z.ZodOptional<z.ZodString>;
637
637
  spaceType: z.ZodOptional<z.ZodEnum<{
638
638
  Room: "Room";
@@ -697,7 +697,7 @@ export type PluginSpaceBulkCreateResult = z.infer<typeof PluginSpaceBulkCreateRe
697
697
  */
698
698
  export declare const PluginSpaceBulkUpdateItem: z.ZodObject<{
699
699
  spaceId: z.ZodString;
700
- profile: z.ZodOptional<z.ZodPipe<z.ZodString, z.ZodTransform<import("../..").Handle<"profile">, string>>>;
700
+ profile: z.ZodOptional<z.ZodPipe<z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodString>, z.ZodTransform<import("../..").Handle<"profile">, string>>>;
701
701
  extrudeHeight: z.ZodOptional<z.ZodNumber>;
702
702
  properties: z.ZodOptional<z.ZodObject<{
703
703
  room_type: z.ZodOptional<z.ZodString>;
@@ -751,7 +751,7 @@ export type PluginSpaceBulkUpdateItem = z.infer<typeof PluginSpaceBulkUpdateItem
751
751
  export declare const PluginSpaceBulkUpdateArgs: z.ZodObject<{
752
752
  items: z.ZodArray<z.ZodObject<{
753
753
  spaceId: z.ZodString;
754
- profile: z.ZodOptional<z.ZodPipe<z.ZodString, z.ZodTransform<import("../..").Handle<"profile">, string>>>;
754
+ profile: z.ZodOptional<z.ZodPipe<z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodString>, z.ZodTransform<import("../..").Handle<"profile">, string>>>;
755
755
  extrudeHeight: z.ZodOptional<z.ZodNumber>;
756
756
  properties: z.ZodOptional<z.ZodObject<{
757
757
  room_type: z.ZodOptional<z.ZodString>;