@snaptrude/plugin-core 0.9.17 → 0.9.18-voids-20261016.1

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 (103) hide show
  1. package/api-manifest.full.json +10406 -0
  2. package/api-manifest.json +737 -54
  3. package/dist/api/analysis/daylight.d.ts +5 -5
  4. package/dist/api/analysis/solar.d.ts +2 -2
  5. package/dist/api/core/camera/index.d.ts +29 -0
  6. package/dist/api/core/camera/index.d.ts.map +1 -1
  7. package/dist/api/core/geom/create/index.d.ts +7 -1
  8. package/dist/api/core/geom/create/index.d.ts.map +1 -1
  9. package/dist/api/core/geom/update/contour.d.ts +8 -2
  10. package/dist/api/core/geom/update/contour.d.ts.map +1 -1
  11. package/dist/api/core/zoom/index.d.ts +13 -0
  12. package/dist/api/core/zoom/index.d.ts.map +1 -1
  13. package/dist/api/design/bim.d.ts +209 -0
  14. package/dist/api/design/bim.d.ts.map +1 -0
  15. package/dist/api/design/boolean/index.d.ts +2 -0
  16. package/dist/api/design/boolean/index.d.ts.map +1 -1
  17. package/dist/api/design/catalog.d.ts +320 -0
  18. package/dist/api/design/catalog.d.ts.map +1 -0
  19. package/dist/api/design/create/bulk-items.d.ts +65 -25
  20. package/dist/api/design/create/bulk-items.d.ts.map +1 -1
  21. package/dist/api/design/create/index.d.ts +272 -99
  22. package/dist/api/design/create/index.d.ts.map +1 -1
  23. package/dist/api/design/create/opening-fields.d.ts +13 -12
  24. package/dist/api/design/create/opening-fields.d.ts.map +1 -1
  25. package/dist/api/design/delete/index.d.ts +1 -0
  26. package/dist/api/design/delete/index.d.ts.map +1 -1
  27. package/dist/api/design/doors/index.d.ts +18 -24
  28. package/dist/api/design/doors/index.d.ts.map +1 -1
  29. package/dist/api/design/family.d.ts +797 -27
  30. package/dist/api/design/family.d.ts.map +1 -1
  31. package/dist/api/design/index.d.ts +16 -0
  32. package/dist/api/design/index.d.ts.map +1 -1
  33. package/dist/api/design/networks.d.ts +1703 -0
  34. package/dist/api/design/networks.d.ts.map +1 -0
  35. package/dist/api/design/query/index.d.ts +42 -32
  36. package/dist/api/design/query/index.d.ts.map +1 -1
  37. package/dist/api/design/selection/index.d.ts +10 -10
  38. package/dist/api/design/types/index.d.ts +40 -24
  39. package/dist/api/design/types/index.d.ts.map +1 -1
  40. package/dist/api/design/update/index.d.ts +43 -3
  41. package/dist/api/design/update/index.d.ts.map +1 -1
  42. package/dist/api/design/windows/index.d.ts +8 -8
  43. package/dist/api/design/windows/index.d.ts.map +1 -1
  44. package/dist/api/presentation/aiInspiration.d.ts +10 -10
  45. package/dist/api/presentation/annotate.d.ts +38 -22
  46. package/dist/api/presentation/annotate.d.ts.map +1 -1
  47. package/dist/api/presentation/drawingContract.d.ts +32 -0
  48. package/dist/api/presentation/drawingContract.d.ts.map +1 -0
  49. package/dist/api/presentation/drawings.d.ts +3523 -0
  50. package/dist/api/presentation/drawings.d.ts.map +1 -0
  51. package/dist/api/presentation/export.d.ts +23 -5
  52. package/dist/api/presentation/export.d.ts.map +1 -1
  53. package/dist/api/presentation/index.d.ts +32 -12
  54. package/dist/api/presentation/index.d.ts.map +1 -1
  55. package/dist/api/presentation/placedViews.d.ts +106 -6
  56. package/dist/api/presentation/placedViews.d.ts.map +1 -1
  57. package/dist/api/presentation/shapes.d.ts +2 -2
  58. package/dist/api/presentation/sheets.d.ts +175 -19
  59. package/dist/api/presentation/sheets.d.ts.map +1 -1
  60. package/dist/api/presentation/viewPresets.d.ts +222 -0
  61. package/dist/api/presentation/viewPresets.d.ts.map +1 -0
  62. package/dist/api/presentation/views.d.ts +103 -5
  63. package/dist/api/presentation/views.d.ts.map +1 -1
  64. package/dist/api/presentation/walkthroughs.d.ts +6 -6
  65. package/dist/errors/codes.d.ts +3 -1
  66. package/dist/errors/codes.d.ts.map +1 -1
  67. package/dist/index.cjs +3693 -2383
  68. package/dist/index.cjs.map +1 -1
  69. package/dist/index.js +3573 -2383
  70. package/dist/index.js.map +1 -1
  71. package/package.json +1 -1
  72. package/scripts/generate-manifest.mjs +5 -0
  73. package/src/api/core/camera/index.ts +29 -0
  74. package/src/api/core/geom/create/index.ts +7 -1
  75. package/src/api/core/geom/update/contour.ts +8 -2
  76. package/src/api/core/zoom/index.ts +13 -0
  77. package/src/api/design/bim.ts +121 -0
  78. package/src/api/design/boolean/index.ts +2 -0
  79. package/src/api/design/catalog.ts +203 -0
  80. package/src/api/design/create/bulk-items.ts +57 -17
  81. package/src/api/design/create/index.ts +288 -120
  82. package/src/api/design/create/opening-fields.ts +15 -12
  83. package/src/api/design/delete/index.ts +1 -0
  84. package/src/api/design/doors/index.ts +58 -42
  85. package/src/api/design/family.ts +662 -32
  86. package/src/api/design/index.ts +34 -4
  87. package/src/api/design/networks.ts +607 -0
  88. package/src/api/design/query/index.ts +12 -2
  89. package/src/api/design/types/index.ts +31 -24
  90. package/src/api/design/update/index.ts +44 -3
  91. package/src/api/design/windows/index.ts +40 -22
  92. package/src/api/presentation/annotate.ts +90 -58
  93. package/src/api/presentation/drawingContract.ts +70 -0
  94. package/src/api/presentation/drawings.ts +1179 -0
  95. package/src/api/presentation/export.ts +32 -6
  96. package/src/api/presentation/index.ts +39 -14
  97. package/src/api/presentation/placedViews.ts +119 -28
  98. package/src/api/presentation/sheets.ts +181 -20
  99. package/src/api/presentation/viewPresets.ts +241 -0
  100. package/src/api/presentation/views.ts +46 -6
  101. package/src/errors/codes.ts +7 -0
  102. package/test/drawingContract.test.mjs +288 -0
  103. package/test/errors.test.mjs +1 -0
@@ -0,0 +1,3523 @@
1
+ import * as z from "zod";
2
+ import type { PluginApiReturn } from "../../types";
3
+ import { PluginPlacedViewCrop, PluginPlacedViewLabel } from "./placedViews";
4
+ import { PluginSheetPosition } from "./sheets";
5
+ /** Drawing ids are existing Present view-shape ids, stable across reload and undo. */
6
+ export declare const PluginDrawingIdArgs: z.ZodObject<{
7
+ drawingId: z.ZodString;
8
+ }, z.core.$strict>;
9
+ export declare const PluginDrawingNameArgs: z.ZodObject<{
10
+ drawingId: z.ZodString;
11
+ name: z.ZodString;
12
+ }, z.core.$strict>;
13
+ export declare const PluginDrawingIdsArgs: z.ZodObject<{
14
+ drawingIds: z.ZodArray<z.ZodString>;
15
+ }, z.core.$strict>;
16
+ export declare const PluginDrawingCreateOptions: z.ZodObject<{
17
+ position: z.ZodOptional<z.ZodObject<{
18
+ x: z.ZodNumber;
19
+ y: z.ZodNumber;
20
+ }, z.core.$strip>>;
21
+ scale: z.ZodOptional<z.ZodNumber>;
22
+ }, z.core.$strict>;
23
+ export type PluginDrawingCreateOptions = z.infer<typeof PluginDrawingCreateOptions>;
24
+ export declare const PluginDrawingCreateArgs: z.ZodObject<{
25
+ position: z.ZodOptional<z.ZodObject<{
26
+ x: z.ZodNumber;
27
+ y: z.ZodNumber;
28
+ }, z.core.$strip>>;
29
+ scale: z.ZodOptional<z.ZodNumber>;
30
+ viewId: z.ZodString;
31
+ }, z.core.$strict>;
32
+ export type PluginDrawingCreateArgs = z.infer<typeof PluginDrawingCreateArgs>;
33
+ export type PluginDrawingIdArgs = z.infer<typeof PluginDrawingIdArgs>;
34
+ export type PluginDrawingNameArgs = z.infer<typeof PluginDrawingNameArgs>;
35
+ export type PluginDrawingIdsArgs = z.infer<typeof PluginDrawingIdsArgs>;
36
+ export declare const PluginDrawingScaleArgs: z.ZodObject<{
37
+ drawingId: z.ZodString;
38
+ scale: z.ZodNumber;
39
+ }, z.core.$strict>;
40
+ export type PluginDrawingScaleArgs = z.infer<typeof PluginDrawingScaleArgs>;
41
+ export declare const PluginDrawingCropArgs: z.ZodObject<{
42
+ drawingId: z.ZodString;
43
+ crop: z.ZodNullable<z.ZodObject<{
44
+ topLeft: z.ZodObject<{
45
+ x: z.ZodNumber;
46
+ y: z.ZodNumber;
47
+ }, z.core.$strip>;
48
+ bottomRight: z.ZodObject<{
49
+ x: z.ZodNumber;
50
+ y: z.ZodNumber;
51
+ }, z.core.$strip>;
52
+ }, z.core.$strip>>;
53
+ }, z.core.$strict>;
54
+ export type PluginDrawingCropArgs = z.infer<typeof PluginDrawingCropArgs>;
55
+ export declare const PluginDrawingPresetArgs: z.ZodObject<{
56
+ drawingId: z.ZodString;
57
+ presetId: z.ZodString;
58
+ }, z.core.$strict>;
59
+ export type PluginDrawingPresetArgs = z.infer<typeof PluginDrawingPresetArgs>;
60
+ /** Architectural scale is a denominator (100 means 1:100); positions are Present canvas units. */
61
+ export declare const PluginDrawing: z.ZodObject<{
62
+ shapeId: z.ZodString;
63
+ sheetId: z.ZodNullable<z.ZodString>;
64
+ title: z.ZodString;
65
+ viewId: z.ZodString;
66
+ position: z.ZodObject<{
67
+ x: z.ZodNumber;
68
+ y: z.ZodNumber;
69
+ }, z.core.$strip>;
70
+ size: z.ZodObject<{
71
+ width: z.ZodNumber;
72
+ height: z.ZodNumber;
73
+ }, z.core.$strip>;
74
+ scale: z.ZodNullable<z.ZodNumber>;
75
+ is3d: z.ZodBoolean;
76
+ rotation: z.ZodNumber;
77
+ crop: z.ZodNullable<z.ZodObject<{
78
+ topLeft: z.ZodObject<{
79
+ x: z.ZodNumber;
80
+ y: z.ZodNumber;
81
+ }, z.core.$strip>;
82
+ bottomRight: z.ZodObject<{
83
+ x: z.ZodNumber;
84
+ y: z.ZodNumber;
85
+ }, z.core.$strip>;
86
+ }, z.core.$strip>>;
87
+ isUnlinked: z.ZodBoolean;
88
+ id: z.ZodString;
89
+ presetId: z.ZodNullable<z.ZodString>;
90
+ kind: z.ZodEnum<{
91
+ elevation: "elevation";
92
+ plan: "plan";
93
+ sitePlan: "sitePlan";
94
+ threeD: "threeD";
95
+ }>;
96
+ direction: z.ZodNullable<z.ZodEnum<{
97
+ north: "north";
98
+ south: "south";
99
+ east: "east";
100
+ west: "west";
101
+ }>>;
102
+ }, z.core.$strip>;
103
+ export type PluginDrawing = z.infer<typeof PluginDrawing>;
104
+ /**
105
+ * Vector-plan row patch. Only controls returned by getStyles are accepted for that row.
106
+ * Paper weights are mm; opacity is 0–100. Nested values merge, never replace the whole row.
107
+ * Presets apply to kernel plans only; other drawings use the legacy category patch.
108
+ */
109
+ export declare const PluginDrawingVectorStylePatch: z.ZodObject<{
110
+ hide: z.ZodOptional<z.ZodBoolean>;
111
+ lineStyle: z.ZodOptional<z.ZodEnum<{
112
+ center: "center";
113
+ hidden: "hidden";
114
+ solid: "solid";
115
+ dashed: "dashed";
116
+ dashdot: "dashdot";
117
+ phantom: "phantom";
118
+ propertyLine: "propertyLine";
119
+ }>>;
120
+ lineColor: z.ZodOptional<z.ZodString>;
121
+ cutWidth: z.ZodOptional<z.ZodNumber>;
122
+ projectionWidth: z.ZodOptional<z.ZodNumber>;
123
+ weight: z.ZodOptional<z.ZodNumber>;
124
+ fillMode: z.ZodOptional<z.ZodString>;
125
+ fillColor: z.ZodOptional<z.ZodString>;
126
+ opacity: z.ZodOptional<z.ZodNumber>;
127
+ pattern: z.ZodOptional<z.ZodObject<{
128
+ id: z.ZodOptional<z.ZodString>;
129
+ scale: z.ZodOptional<z.ZodNumber>;
130
+ color: z.ZodOptional<z.ZodString>;
131
+ background: z.ZodOptional<z.ZodString>;
132
+ weight: z.ZodOptional<z.ZodNumber>;
133
+ }, z.core.$strict>>;
134
+ mask: z.ZodOptional<z.ZodBoolean>;
135
+ materials: z.ZodOptional<z.ZodObject<{
136
+ brick: z.ZodOptional<z.ZodObject<{
137
+ show: z.ZodOptional<z.ZodBoolean>;
138
+ color: z.ZodOptional<z.ZodString>;
139
+ pattern: z.ZodOptional<z.ZodObject<{
140
+ id: z.ZodOptional<z.ZodString>;
141
+ scale: z.ZodOptional<z.ZodNumber>;
142
+ color: z.ZodOptional<z.ZodString>;
143
+ background: z.ZodOptional<z.ZodString>;
144
+ weight: z.ZodOptional<z.ZodNumber>;
145
+ }, z.core.$strict>>;
146
+ }, z.core.$strict>>;
147
+ glass: z.ZodOptional<z.ZodObject<{
148
+ show: z.ZodOptional<z.ZodBoolean>;
149
+ color: z.ZodOptional<z.ZodString>;
150
+ pattern: z.ZodOptional<z.ZodObject<{
151
+ id: z.ZodOptional<z.ZodString>;
152
+ scale: z.ZodOptional<z.ZodNumber>;
153
+ color: z.ZodOptional<z.ZodString>;
154
+ background: z.ZodOptional<z.ZodString>;
155
+ weight: z.ZodOptional<z.ZodNumber>;
156
+ }, z.core.$strict>>;
157
+ }, z.core.$strict>>;
158
+ concrete: z.ZodOptional<z.ZodObject<{
159
+ show: z.ZodOptional<z.ZodBoolean>;
160
+ color: z.ZodOptional<z.ZodString>;
161
+ pattern: z.ZodOptional<z.ZodObject<{
162
+ id: z.ZodOptional<z.ZodString>;
163
+ scale: z.ZodOptional<z.ZodNumber>;
164
+ color: z.ZodOptional<z.ZodString>;
165
+ background: z.ZodOptional<z.ZodString>;
166
+ weight: z.ZodOptional<z.ZodNumber>;
167
+ }, z.core.$strict>>;
168
+ }, z.core.$strict>>;
169
+ metalFrame: z.ZodOptional<z.ZodObject<{
170
+ show: z.ZodOptional<z.ZodBoolean>;
171
+ color: z.ZodOptional<z.ZodString>;
172
+ pattern: z.ZodOptional<z.ZodObject<{
173
+ id: z.ZodOptional<z.ZodString>;
174
+ scale: z.ZodOptional<z.ZodNumber>;
175
+ color: z.ZodOptional<z.ZodString>;
176
+ background: z.ZodOptional<z.ZodString>;
177
+ weight: z.ZodOptional<z.ZodNumber>;
178
+ }, z.core.$strict>>;
179
+ }, z.core.$strict>>;
180
+ woodFrame: z.ZodOptional<z.ZodObject<{
181
+ show: z.ZodOptional<z.ZodBoolean>;
182
+ color: z.ZodOptional<z.ZodString>;
183
+ pattern: z.ZodOptional<z.ZodObject<{
184
+ id: z.ZodOptional<z.ZodString>;
185
+ scale: z.ZodOptional<z.ZodNumber>;
186
+ color: z.ZodOptional<z.ZodString>;
187
+ background: z.ZodOptional<z.ZodString>;
188
+ weight: z.ZodOptional<z.ZodNumber>;
189
+ }, z.core.$strict>>;
190
+ }, z.core.$strict>>;
191
+ plaster: z.ZodOptional<z.ZodObject<{
192
+ show: z.ZodOptional<z.ZodBoolean>;
193
+ color: z.ZodOptional<z.ZodString>;
194
+ pattern: z.ZodOptional<z.ZodObject<{
195
+ id: z.ZodOptional<z.ZodString>;
196
+ scale: z.ZodOptional<z.ZodNumber>;
197
+ color: z.ZodOptional<z.ZodString>;
198
+ background: z.ZodOptional<z.ZodString>;
199
+ weight: z.ZodOptional<z.ZodNumber>;
200
+ }, z.core.$strict>>;
201
+ }, z.core.$strict>>;
202
+ paint: z.ZodOptional<z.ZodObject<{
203
+ show: z.ZodOptional<z.ZodBoolean>;
204
+ color: z.ZodOptional<z.ZodString>;
205
+ pattern: z.ZodOptional<z.ZodObject<{
206
+ id: z.ZodOptional<z.ZodString>;
207
+ scale: z.ZodOptional<z.ZodNumber>;
208
+ color: z.ZodOptional<z.ZodString>;
209
+ background: z.ZodOptional<z.ZodString>;
210
+ weight: z.ZodOptional<z.ZodNumber>;
211
+ }, z.core.$strict>>;
212
+ }, z.core.$strict>>;
213
+ insulation: z.ZodOptional<z.ZodObject<{
214
+ show: z.ZodOptional<z.ZodBoolean>;
215
+ color: z.ZodOptional<z.ZodString>;
216
+ pattern: z.ZodOptional<z.ZodObject<{
217
+ id: z.ZodOptional<z.ZodString>;
218
+ scale: z.ZodOptional<z.ZodNumber>;
219
+ color: z.ZodOptional<z.ZodString>;
220
+ background: z.ZodOptional<z.ZodString>;
221
+ weight: z.ZodOptional<z.ZodNumber>;
222
+ }, z.core.$strict>>;
223
+ }, z.core.$strict>>;
224
+ }, z.core.$strict>>;
225
+ components: z.ZodOptional<z.ZodObject<{
226
+ frame: z.ZodOptional<z.ZodBoolean>;
227
+ leaf: z.ZodOptional<z.ZodBoolean>;
228
+ jambs: z.ZodOptional<z.ZodBoolean>;
229
+ glazing: z.ZodOptional<z.ZodBoolean>;
230
+ track: z.ZodOptional<z.ZodBoolean>;
231
+ operation: z.ZodOptional<z.ZodBoolean>;
232
+ operationStyle: z.ZodOptional<z.ZodEnum<{
233
+ center: "center";
234
+ hidden: "hidden";
235
+ solid: "solid";
236
+ dashed: "dashed";
237
+ dashdot: "dashdot";
238
+ phantom: "phantom";
239
+ propertyLine: "propertyLine";
240
+ }>>;
241
+ }, z.core.$strict>>;
242
+ tag: z.ZodOptional<z.ZodObject<{
243
+ show: z.ZodOptional<z.ZodBoolean>;
244
+ fontFamily: z.ZodOptional<z.ZodString>;
245
+ fontStyle: z.ZodOptional<z.ZodEnum<{
246
+ italic: "italic";
247
+ 400: "400";
248
+ 500: "500";
249
+ 700: "700";
250
+ }>>;
251
+ fontSize: z.ZodOptional<z.ZodEnum<{
252
+ "12px": "12px";
253
+ "16px": "16px";
254
+ "24px": "24px";
255
+ }>>;
256
+ frame: z.ZodOptional<z.ZodEnum<{
257
+ pill: "pill";
258
+ hexagon: "hexagon";
259
+ }>>;
260
+ color: z.ZodOptional<z.ZodString>;
261
+ opacity: z.ZodOptional<z.ZodNumber>;
262
+ outline: z.ZodOptional<z.ZodNumber>;
263
+ }, z.core.$strict>>;
264
+ text: z.ZodOptional<z.ZodObject<{
265
+ show: z.ZodOptional<z.ZodBoolean>;
266
+ labels: z.ZodOptional<z.ZodBoolean>;
267
+ areas: z.ZodOptional<z.ZodBoolean>;
268
+ department: z.ZodOptional<z.ZodBoolean>;
269
+ fontFamily: z.ZodOptional<z.ZodString>;
270
+ color: z.ZodOptional<z.ZodString>;
271
+ fontSize: z.ZodOptional<z.ZodEnum<{
272
+ "12px": "12px";
273
+ "16px": "16px";
274
+ "24px": "24px";
275
+ }>>;
276
+ label: z.ZodOptional<z.ZodObject<{
277
+ fontStyle: z.ZodOptional<z.ZodEnum<{
278
+ italic: "italic";
279
+ 400: "400";
280
+ 500: "500";
281
+ 700: "700";
282
+ }>>;
283
+ fontSize: z.ZodOptional<z.ZodEnum<{
284
+ 5: "5";
285
+ "12px": "12px";
286
+ "16px": "16px";
287
+ "24px": "24px";
288
+ 2.5: "2.5";
289
+ 3.5: "3.5";
290
+ }>>;
291
+ color: z.ZodOptional<z.ZodString>;
292
+ }, z.core.$strict>>;
293
+ metrics: z.ZodOptional<z.ZodObject<{
294
+ fontStyle: z.ZodOptional<z.ZodEnum<{
295
+ italic: "italic";
296
+ 400: "400";
297
+ 500: "500";
298
+ 700: "700";
299
+ }>>;
300
+ fontSize: z.ZodOptional<z.ZodEnum<{
301
+ 5: "5";
302
+ "12px": "12px";
303
+ "16px": "16px";
304
+ "24px": "24px";
305
+ 2.5: "2.5";
306
+ 3.5: "3.5";
307
+ }>>;
308
+ color: z.ZodOptional<z.ZodString>;
309
+ }, z.core.$strict>>;
310
+ title: z.ZodOptional<z.ZodObject<{
311
+ fontStyle: z.ZodOptional<z.ZodEnum<{
312
+ italic: "italic";
313
+ 400: "400";
314
+ 500: "500";
315
+ 700: "700";
316
+ }>>;
317
+ fontSize: z.ZodOptional<z.ZodEnum<{
318
+ 5: "5";
319
+ "12px": "12px";
320
+ "16px": "16px";
321
+ "24px": "24px";
322
+ 2.5: "2.5";
323
+ 3.5: "3.5";
324
+ }>>;
325
+ color: z.ZodOptional<z.ZodString>;
326
+ }, z.core.$strict>>;
327
+ scale: z.ZodOptional<z.ZodObject<{
328
+ fontStyle: z.ZodOptional<z.ZodEnum<{
329
+ italic: "italic";
330
+ 400: "400";
331
+ 500: "500";
332
+ 700: "700";
333
+ }>>;
334
+ fontSize: z.ZodOptional<z.ZodEnum<{
335
+ 5: "5";
336
+ "12px": "12px";
337
+ "16px": "16px";
338
+ "24px": "24px";
339
+ 2.5: "2.5";
340
+ 3.5: "3.5";
341
+ }>>;
342
+ color: z.ZodOptional<z.ZodString>;
343
+ }, z.core.$strict>>;
344
+ }, z.core.$strict>>;
345
+ detail: z.ZodOptional<z.ZodObject<{
346
+ show: z.ZodOptional<z.ZodBoolean>;
347
+ weight: z.ZodOptional<z.ZodNumber>;
348
+ }, z.core.$strict>>;
349
+ belowCut: z.ZodOptional<z.ZodObject<{
350
+ show: z.ZodOptional<z.ZodBoolean>;
351
+ lineStyle: z.ZodOptional<z.ZodEnum<{
352
+ center: "center";
353
+ hidden: "hidden";
354
+ solid: "solid";
355
+ dashed: "dashed";
356
+ dashdot: "dashdot";
357
+ phantom: "phantom";
358
+ propertyLine: "propertyLine";
359
+ }>>;
360
+ weight: z.ZodOptional<z.ZodNumber>;
361
+ }, z.core.$strict>>;
362
+ aboveCut: z.ZodOptional<z.ZodObject<{
363
+ show: z.ZodOptional<z.ZodBoolean>;
364
+ lineStyle: z.ZodOptional<z.ZodEnum<{
365
+ center: "center";
366
+ hidden: "hidden";
367
+ solid: "solid";
368
+ dashed: "dashed";
369
+ dashdot: "dashdot";
370
+ phantom: "phantom";
371
+ propertyLine: "propertyLine";
372
+ }>>;
373
+ weight: z.ZodOptional<z.ZodNumber>;
374
+ }, z.core.$strict>>;
375
+ underlay: z.ZodOptional<z.ZodObject<{
376
+ show: z.ZodOptional<z.ZodBoolean>;
377
+ lineStyle: z.ZodOptional<z.ZodEnum<{
378
+ center: "center";
379
+ hidden: "hidden";
380
+ solid: "solid";
381
+ dashed: "dashed";
382
+ dashdot: "dashdot";
383
+ phantom: "phantom";
384
+ propertyLine: "propertyLine";
385
+ }>>;
386
+ weight: z.ZodOptional<z.ZodNumber>;
387
+ }, z.core.$strict>>;
388
+ walkLine: z.ZodOptional<z.ZodObject<{
389
+ show: z.ZodOptional<z.ZodBoolean>;
390
+ lineStyle: z.ZodOptional<z.ZodEnum<{
391
+ center: "center";
392
+ hidden: "hidden";
393
+ solid: "solid";
394
+ dashed: "dashed";
395
+ dashdot: "dashdot";
396
+ phantom: "phantom";
397
+ propertyLine: "propertyLine";
398
+ }>>;
399
+ weight: z.ZodOptional<z.ZodNumber>;
400
+ }, z.core.$strict>>;
401
+ breakLine: z.ZodOptional<z.ZodObject<{
402
+ show: z.ZodOptional<z.ZodBoolean>;
403
+ lineStyle: z.ZodOptional<z.ZodEnum<{
404
+ center: "center";
405
+ hidden: "hidden";
406
+ solid: "solid";
407
+ dashed: "dashed";
408
+ dashdot: "dashdot";
409
+ phantom: "phantom";
410
+ propertyLine: "propertyLine";
411
+ }>>;
412
+ weight: z.ZodOptional<z.ZodNumber>;
413
+ }, z.core.$strict>>;
414
+ overlay: z.ZodOptional<z.ZodObject<{
415
+ show: z.ZodOptional<z.ZodBoolean>;
416
+ lineStyle: z.ZodOptional<z.ZodEnum<{
417
+ center: "center";
418
+ hidden: "hidden";
419
+ solid: "solid";
420
+ dashed: "dashed";
421
+ dashdot: "dashdot";
422
+ phantom: "phantom";
423
+ propertyLine: "propertyLine";
424
+ }>>;
425
+ weight: z.ZodOptional<z.ZodNumber>;
426
+ }, z.core.$strict>>;
427
+ title: z.ZodOptional<z.ZodObject<{
428
+ show: z.ZodOptional<z.ZodBoolean>;
429
+ text: z.ZodOptional<z.ZodString>;
430
+ }, z.core.$strict>>;
431
+ proposal: z.ZodOptional<z.ZodObject<{
432
+ show: z.ZodOptional<z.ZodBoolean>;
433
+ text: z.ZodOptional<z.ZodString>;
434
+ }, z.core.$strict>>;
435
+ building: z.ZodOptional<z.ZodObject<{
436
+ show: z.ZodOptional<z.ZodBoolean>;
437
+ text: z.ZodOptional<z.ZodString>;
438
+ }, z.core.$strict>>;
439
+ scale: z.ZodOptional<z.ZodObject<{
440
+ show: z.ZodOptional<z.ZodBoolean>;
441
+ format: z.ZodOptional<z.ZodEnum<{
442
+ text: "text";
443
+ automatic: "automatic";
444
+ ratio: "ratio";
445
+ }>>;
446
+ }, z.core.$strict>>;
447
+ scaleBar: z.ZodOptional<z.ZodObject<{
448
+ show: z.ZodOptional<z.ZodBoolean>;
449
+ format: z.ZodOptional<z.ZodEnum<{
450
+ divided: "divided";
451
+ simple: "simple";
452
+ }>>;
453
+ length: z.ZodOptional<z.ZodEnum<{
454
+ 1: "1";
455
+ 2: "2";
456
+ 5: "5";
457
+ 10: "10";
458
+ }>>;
459
+ }, z.core.$strict>>;
460
+ extension: z.ZodOptional<z.ZodObject<{
461
+ show: z.ZodOptional<z.ZodBoolean>;
462
+ length: z.ZodOptional<z.ZodEnum<{
463
+ underTitle: "underTitle";
464
+ fullWidth: "fullWidth";
465
+ }>>;
466
+ weight: z.ZodOptional<z.ZodNumber>;
467
+ color: z.ZodOptional<z.ZodString>;
468
+ }, z.core.$strict>>;
469
+ position: z.ZodOptional<z.ZodEnum<{
470
+ topLeft: "topLeft";
471
+ bottomLeft: "bottomLeft";
472
+ bottomCentre: "bottomCentre";
473
+ }>>;
474
+ }, z.core.$strict>;
475
+ export declare const PluginDrawingStylePatch: z.ZodUnion<readonly [z.ZodObject<{
476
+ hide: z.ZodOptional<z.ZodBoolean>;
477
+ lineStyle: z.ZodOptional<z.ZodEnum<{
478
+ center: "center";
479
+ hidden: "hidden";
480
+ solid: "solid";
481
+ dashed: "dashed";
482
+ dashdot: "dashdot";
483
+ phantom: "phantom";
484
+ propertyLine: "propertyLine";
485
+ }>>;
486
+ lineColor: z.ZodOptional<z.ZodString>;
487
+ cutWidth: z.ZodOptional<z.ZodNumber>;
488
+ projectionWidth: z.ZodOptional<z.ZodNumber>;
489
+ weight: z.ZodOptional<z.ZodNumber>;
490
+ fillMode: z.ZodOptional<z.ZodString>;
491
+ fillColor: z.ZodOptional<z.ZodString>;
492
+ opacity: z.ZodOptional<z.ZodNumber>;
493
+ pattern: z.ZodOptional<z.ZodObject<{
494
+ id: z.ZodOptional<z.ZodString>;
495
+ scale: z.ZodOptional<z.ZodNumber>;
496
+ color: z.ZodOptional<z.ZodString>;
497
+ background: z.ZodOptional<z.ZodString>;
498
+ weight: z.ZodOptional<z.ZodNumber>;
499
+ }, z.core.$strict>>;
500
+ mask: z.ZodOptional<z.ZodBoolean>;
501
+ materials: z.ZodOptional<z.ZodObject<{
502
+ brick: z.ZodOptional<z.ZodObject<{
503
+ show: z.ZodOptional<z.ZodBoolean>;
504
+ color: z.ZodOptional<z.ZodString>;
505
+ pattern: z.ZodOptional<z.ZodObject<{
506
+ id: z.ZodOptional<z.ZodString>;
507
+ scale: z.ZodOptional<z.ZodNumber>;
508
+ color: z.ZodOptional<z.ZodString>;
509
+ background: z.ZodOptional<z.ZodString>;
510
+ weight: z.ZodOptional<z.ZodNumber>;
511
+ }, z.core.$strict>>;
512
+ }, z.core.$strict>>;
513
+ glass: z.ZodOptional<z.ZodObject<{
514
+ show: z.ZodOptional<z.ZodBoolean>;
515
+ color: z.ZodOptional<z.ZodString>;
516
+ pattern: z.ZodOptional<z.ZodObject<{
517
+ id: z.ZodOptional<z.ZodString>;
518
+ scale: z.ZodOptional<z.ZodNumber>;
519
+ color: z.ZodOptional<z.ZodString>;
520
+ background: z.ZodOptional<z.ZodString>;
521
+ weight: z.ZodOptional<z.ZodNumber>;
522
+ }, z.core.$strict>>;
523
+ }, z.core.$strict>>;
524
+ concrete: z.ZodOptional<z.ZodObject<{
525
+ show: z.ZodOptional<z.ZodBoolean>;
526
+ color: z.ZodOptional<z.ZodString>;
527
+ pattern: z.ZodOptional<z.ZodObject<{
528
+ id: z.ZodOptional<z.ZodString>;
529
+ scale: z.ZodOptional<z.ZodNumber>;
530
+ color: z.ZodOptional<z.ZodString>;
531
+ background: z.ZodOptional<z.ZodString>;
532
+ weight: z.ZodOptional<z.ZodNumber>;
533
+ }, z.core.$strict>>;
534
+ }, z.core.$strict>>;
535
+ metalFrame: z.ZodOptional<z.ZodObject<{
536
+ show: z.ZodOptional<z.ZodBoolean>;
537
+ color: z.ZodOptional<z.ZodString>;
538
+ pattern: z.ZodOptional<z.ZodObject<{
539
+ id: z.ZodOptional<z.ZodString>;
540
+ scale: z.ZodOptional<z.ZodNumber>;
541
+ color: z.ZodOptional<z.ZodString>;
542
+ background: z.ZodOptional<z.ZodString>;
543
+ weight: z.ZodOptional<z.ZodNumber>;
544
+ }, z.core.$strict>>;
545
+ }, z.core.$strict>>;
546
+ woodFrame: z.ZodOptional<z.ZodObject<{
547
+ show: z.ZodOptional<z.ZodBoolean>;
548
+ color: z.ZodOptional<z.ZodString>;
549
+ pattern: z.ZodOptional<z.ZodObject<{
550
+ id: z.ZodOptional<z.ZodString>;
551
+ scale: z.ZodOptional<z.ZodNumber>;
552
+ color: z.ZodOptional<z.ZodString>;
553
+ background: z.ZodOptional<z.ZodString>;
554
+ weight: z.ZodOptional<z.ZodNumber>;
555
+ }, z.core.$strict>>;
556
+ }, z.core.$strict>>;
557
+ plaster: z.ZodOptional<z.ZodObject<{
558
+ show: z.ZodOptional<z.ZodBoolean>;
559
+ color: z.ZodOptional<z.ZodString>;
560
+ pattern: z.ZodOptional<z.ZodObject<{
561
+ id: z.ZodOptional<z.ZodString>;
562
+ scale: z.ZodOptional<z.ZodNumber>;
563
+ color: z.ZodOptional<z.ZodString>;
564
+ background: z.ZodOptional<z.ZodString>;
565
+ weight: z.ZodOptional<z.ZodNumber>;
566
+ }, z.core.$strict>>;
567
+ }, z.core.$strict>>;
568
+ paint: z.ZodOptional<z.ZodObject<{
569
+ show: z.ZodOptional<z.ZodBoolean>;
570
+ color: z.ZodOptional<z.ZodString>;
571
+ pattern: z.ZodOptional<z.ZodObject<{
572
+ id: z.ZodOptional<z.ZodString>;
573
+ scale: z.ZodOptional<z.ZodNumber>;
574
+ color: z.ZodOptional<z.ZodString>;
575
+ background: z.ZodOptional<z.ZodString>;
576
+ weight: z.ZodOptional<z.ZodNumber>;
577
+ }, z.core.$strict>>;
578
+ }, z.core.$strict>>;
579
+ insulation: z.ZodOptional<z.ZodObject<{
580
+ show: z.ZodOptional<z.ZodBoolean>;
581
+ color: z.ZodOptional<z.ZodString>;
582
+ pattern: z.ZodOptional<z.ZodObject<{
583
+ id: z.ZodOptional<z.ZodString>;
584
+ scale: z.ZodOptional<z.ZodNumber>;
585
+ color: z.ZodOptional<z.ZodString>;
586
+ background: z.ZodOptional<z.ZodString>;
587
+ weight: z.ZodOptional<z.ZodNumber>;
588
+ }, z.core.$strict>>;
589
+ }, z.core.$strict>>;
590
+ }, z.core.$strict>>;
591
+ components: z.ZodOptional<z.ZodObject<{
592
+ frame: z.ZodOptional<z.ZodBoolean>;
593
+ leaf: z.ZodOptional<z.ZodBoolean>;
594
+ jambs: z.ZodOptional<z.ZodBoolean>;
595
+ glazing: z.ZodOptional<z.ZodBoolean>;
596
+ track: z.ZodOptional<z.ZodBoolean>;
597
+ operation: z.ZodOptional<z.ZodBoolean>;
598
+ operationStyle: z.ZodOptional<z.ZodEnum<{
599
+ center: "center";
600
+ hidden: "hidden";
601
+ solid: "solid";
602
+ dashed: "dashed";
603
+ dashdot: "dashdot";
604
+ phantom: "phantom";
605
+ propertyLine: "propertyLine";
606
+ }>>;
607
+ }, z.core.$strict>>;
608
+ tag: z.ZodOptional<z.ZodObject<{
609
+ show: z.ZodOptional<z.ZodBoolean>;
610
+ fontFamily: z.ZodOptional<z.ZodString>;
611
+ fontStyle: z.ZodOptional<z.ZodEnum<{
612
+ italic: "italic";
613
+ 400: "400";
614
+ 500: "500";
615
+ 700: "700";
616
+ }>>;
617
+ fontSize: z.ZodOptional<z.ZodEnum<{
618
+ "12px": "12px";
619
+ "16px": "16px";
620
+ "24px": "24px";
621
+ }>>;
622
+ frame: z.ZodOptional<z.ZodEnum<{
623
+ pill: "pill";
624
+ hexagon: "hexagon";
625
+ }>>;
626
+ color: z.ZodOptional<z.ZodString>;
627
+ opacity: z.ZodOptional<z.ZodNumber>;
628
+ outline: z.ZodOptional<z.ZodNumber>;
629
+ }, z.core.$strict>>;
630
+ text: z.ZodOptional<z.ZodObject<{
631
+ show: z.ZodOptional<z.ZodBoolean>;
632
+ labels: z.ZodOptional<z.ZodBoolean>;
633
+ areas: z.ZodOptional<z.ZodBoolean>;
634
+ department: z.ZodOptional<z.ZodBoolean>;
635
+ fontFamily: z.ZodOptional<z.ZodString>;
636
+ color: z.ZodOptional<z.ZodString>;
637
+ fontSize: z.ZodOptional<z.ZodEnum<{
638
+ "12px": "12px";
639
+ "16px": "16px";
640
+ "24px": "24px";
641
+ }>>;
642
+ label: z.ZodOptional<z.ZodObject<{
643
+ fontStyle: z.ZodOptional<z.ZodEnum<{
644
+ italic: "italic";
645
+ 400: "400";
646
+ 500: "500";
647
+ 700: "700";
648
+ }>>;
649
+ fontSize: z.ZodOptional<z.ZodEnum<{
650
+ 5: "5";
651
+ "12px": "12px";
652
+ "16px": "16px";
653
+ "24px": "24px";
654
+ 2.5: "2.5";
655
+ 3.5: "3.5";
656
+ }>>;
657
+ color: z.ZodOptional<z.ZodString>;
658
+ }, z.core.$strict>>;
659
+ metrics: z.ZodOptional<z.ZodObject<{
660
+ fontStyle: z.ZodOptional<z.ZodEnum<{
661
+ italic: "italic";
662
+ 400: "400";
663
+ 500: "500";
664
+ 700: "700";
665
+ }>>;
666
+ fontSize: z.ZodOptional<z.ZodEnum<{
667
+ 5: "5";
668
+ "12px": "12px";
669
+ "16px": "16px";
670
+ "24px": "24px";
671
+ 2.5: "2.5";
672
+ 3.5: "3.5";
673
+ }>>;
674
+ color: z.ZodOptional<z.ZodString>;
675
+ }, z.core.$strict>>;
676
+ title: z.ZodOptional<z.ZodObject<{
677
+ fontStyle: z.ZodOptional<z.ZodEnum<{
678
+ italic: "italic";
679
+ 400: "400";
680
+ 500: "500";
681
+ 700: "700";
682
+ }>>;
683
+ fontSize: z.ZodOptional<z.ZodEnum<{
684
+ 5: "5";
685
+ "12px": "12px";
686
+ "16px": "16px";
687
+ "24px": "24px";
688
+ 2.5: "2.5";
689
+ 3.5: "3.5";
690
+ }>>;
691
+ color: z.ZodOptional<z.ZodString>;
692
+ }, z.core.$strict>>;
693
+ scale: z.ZodOptional<z.ZodObject<{
694
+ fontStyle: z.ZodOptional<z.ZodEnum<{
695
+ italic: "italic";
696
+ 400: "400";
697
+ 500: "500";
698
+ 700: "700";
699
+ }>>;
700
+ fontSize: z.ZodOptional<z.ZodEnum<{
701
+ 5: "5";
702
+ "12px": "12px";
703
+ "16px": "16px";
704
+ "24px": "24px";
705
+ 2.5: "2.5";
706
+ 3.5: "3.5";
707
+ }>>;
708
+ color: z.ZodOptional<z.ZodString>;
709
+ }, z.core.$strict>>;
710
+ }, z.core.$strict>>;
711
+ detail: z.ZodOptional<z.ZodObject<{
712
+ show: z.ZodOptional<z.ZodBoolean>;
713
+ weight: z.ZodOptional<z.ZodNumber>;
714
+ }, z.core.$strict>>;
715
+ belowCut: z.ZodOptional<z.ZodObject<{
716
+ show: z.ZodOptional<z.ZodBoolean>;
717
+ lineStyle: z.ZodOptional<z.ZodEnum<{
718
+ center: "center";
719
+ hidden: "hidden";
720
+ solid: "solid";
721
+ dashed: "dashed";
722
+ dashdot: "dashdot";
723
+ phantom: "phantom";
724
+ propertyLine: "propertyLine";
725
+ }>>;
726
+ weight: z.ZodOptional<z.ZodNumber>;
727
+ }, z.core.$strict>>;
728
+ aboveCut: z.ZodOptional<z.ZodObject<{
729
+ show: z.ZodOptional<z.ZodBoolean>;
730
+ lineStyle: z.ZodOptional<z.ZodEnum<{
731
+ center: "center";
732
+ hidden: "hidden";
733
+ solid: "solid";
734
+ dashed: "dashed";
735
+ dashdot: "dashdot";
736
+ phantom: "phantom";
737
+ propertyLine: "propertyLine";
738
+ }>>;
739
+ weight: z.ZodOptional<z.ZodNumber>;
740
+ }, z.core.$strict>>;
741
+ underlay: z.ZodOptional<z.ZodObject<{
742
+ show: z.ZodOptional<z.ZodBoolean>;
743
+ lineStyle: z.ZodOptional<z.ZodEnum<{
744
+ center: "center";
745
+ hidden: "hidden";
746
+ solid: "solid";
747
+ dashed: "dashed";
748
+ dashdot: "dashdot";
749
+ phantom: "phantom";
750
+ propertyLine: "propertyLine";
751
+ }>>;
752
+ weight: z.ZodOptional<z.ZodNumber>;
753
+ }, z.core.$strict>>;
754
+ walkLine: z.ZodOptional<z.ZodObject<{
755
+ show: z.ZodOptional<z.ZodBoolean>;
756
+ lineStyle: z.ZodOptional<z.ZodEnum<{
757
+ center: "center";
758
+ hidden: "hidden";
759
+ solid: "solid";
760
+ dashed: "dashed";
761
+ dashdot: "dashdot";
762
+ phantom: "phantom";
763
+ propertyLine: "propertyLine";
764
+ }>>;
765
+ weight: z.ZodOptional<z.ZodNumber>;
766
+ }, z.core.$strict>>;
767
+ breakLine: z.ZodOptional<z.ZodObject<{
768
+ show: z.ZodOptional<z.ZodBoolean>;
769
+ lineStyle: z.ZodOptional<z.ZodEnum<{
770
+ center: "center";
771
+ hidden: "hidden";
772
+ solid: "solid";
773
+ dashed: "dashed";
774
+ dashdot: "dashdot";
775
+ phantom: "phantom";
776
+ propertyLine: "propertyLine";
777
+ }>>;
778
+ weight: z.ZodOptional<z.ZodNumber>;
779
+ }, z.core.$strict>>;
780
+ overlay: z.ZodOptional<z.ZodObject<{
781
+ show: z.ZodOptional<z.ZodBoolean>;
782
+ lineStyle: z.ZodOptional<z.ZodEnum<{
783
+ center: "center";
784
+ hidden: "hidden";
785
+ solid: "solid";
786
+ dashed: "dashed";
787
+ dashdot: "dashdot";
788
+ phantom: "phantom";
789
+ propertyLine: "propertyLine";
790
+ }>>;
791
+ weight: z.ZodOptional<z.ZodNumber>;
792
+ }, z.core.$strict>>;
793
+ title: z.ZodOptional<z.ZodObject<{
794
+ show: z.ZodOptional<z.ZodBoolean>;
795
+ text: z.ZodOptional<z.ZodString>;
796
+ }, z.core.$strict>>;
797
+ proposal: z.ZodOptional<z.ZodObject<{
798
+ show: z.ZodOptional<z.ZodBoolean>;
799
+ text: z.ZodOptional<z.ZodString>;
800
+ }, z.core.$strict>>;
801
+ building: z.ZodOptional<z.ZodObject<{
802
+ show: z.ZodOptional<z.ZodBoolean>;
803
+ text: z.ZodOptional<z.ZodString>;
804
+ }, z.core.$strict>>;
805
+ scale: z.ZodOptional<z.ZodObject<{
806
+ show: z.ZodOptional<z.ZodBoolean>;
807
+ format: z.ZodOptional<z.ZodEnum<{
808
+ text: "text";
809
+ automatic: "automatic";
810
+ ratio: "ratio";
811
+ }>>;
812
+ }, z.core.$strict>>;
813
+ scaleBar: z.ZodOptional<z.ZodObject<{
814
+ show: z.ZodOptional<z.ZodBoolean>;
815
+ format: z.ZodOptional<z.ZodEnum<{
816
+ divided: "divided";
817
+ simple: "simple";
818
+ }>>;
819
+ length: z.ZodOptional<z.ZodEnum<{
820
+ 1: "1";
821
+ 2: "2";
822
+ 5: "5";
823
+ 10: "10";
824
+ }>>;
825
+ }, z.core.$strict>>;
826
+ extension: z.ZodOptional<z.ZodObject<{
827
+ show: z.ZodOptional<z.ZodBoolean>;
828
+ length: z.ZodOptional<z.ZodEnum<{
829
+ underTitle: "underTitle";
830
+ fullWidth: "fullWidth";
831
+ }>>;
832
+ weight: z.ZodOptional<z.ZodNumber>;
833
+ color: z.ZodOptional<z.ZodString>;
834
+ }, z.core.$strict>>;
835
+ position: z.ZodOptional<z.ZodEnum<{
836
+ topLeft: "topLeft";
837
+ bottomLeft: "bottomLeft";
838
+ bottomCentre: "bottomCentre";
839
+ }>>;
840
+ }, z.core.$strict>, z.ZodObject<{
841
+ hide: z.ZodOptional<z.ZodBoolean>;
842
+ lineStyle: z.ZodOptional<z.ZodEnum<{
843
+ center: "center";
844
+ hidden: "hidden";
845
+ solid: "solid";
846
+ dashed: "dashed";
847
+ dashdot: "dashdot";
848
+ phantom: "phantom";
849
+ propertyLine: "propertyLine";
850
+ }>>;
851
+ lineColor: z.ZodOptional<z.ZodString>;
852
+ dashLength: z.ZodOptional<z.ZodNumber>;
853
+ lineWidth: z.ZodOptional<z.ZodNumber>;
854
+ cutWidth: z.ZodOptional<z.ZodNumber>;
855
+ projectionWidth: z.ZodOptional<z.ZodNumber>;
856
+ treeLineWidth: z.ZodOptional<z.ZodNumber>;
857
+ parkingLineWidth: z.ZodOptional<z.ZodNumber>;
858
+ colorMode: z.ZodOptional<z.ZodString>;
859
+ opacity: z.ZodOptional<z.ZodNumber>;
860
+ mapOpacity: z.ZodOptional<z.ZodNumber>;
861
+ buildingOpacity: z.ZodOptional<z.ZodNumber>;
862
+ mapHide: z.ZodOptional<z.ZodBoolean>;
863
+ buildingHide: z.ZodOptional<z.ZodBoolean>;
864
+ noBuilding: z.ZodOptional<z.ZodBoolean>;
865
+ viewStyle: z.ZodOptional<z.ZodEnum<{
866
+ NONE: "NONE";
867
+ FILLET: "FILLET";
868
+ BUBBLE: "BUBBLE";
869
+ }>>;
870
+ radius: z.ZodOptional<z.ZodNumber>;
871
+ inset: z.ZodOptional<z.ZodNumber>;
872
+ markerKind: z.ZodOptional<z.ZodEnum<{
873
+ architecturalTick: "architecturalTick";
874
+ openArrow: "openArrow";
875
+ closedArrow: "closedArrow";
876
+ }>>;
877
+ markerSize: z.ZodOptional<z.ZodNumber>;
878
+ extensionLineVisible: z.ZodOptional<z.ZodBoolean>;
879
+ extensionLineStyle: z.ZodOptional<z.ZodEnum<{
880
+ center: "center";
881
+ hidden: "hidden";
882
+ solid: "solid";
883
+ dashed: "dashed";
884
+ dashdot: "dashdot";
885
+ phantom: "phantom";
886
+ propertyLine: "propertyLine";
887
+ }>>;
888
+ extensionGap: z.ZodOptional<z.ZodNumber>;
889
+ extensionOvershoot: z.ZodOptional<z.ZodNumber>;
890
+ textColor: z.ZodOptional<z.ZodString>;
891
+ textGap: z.ZodOptional<z.ZodNumber>;
892
+ textPlacement: z.ZodOptional<z.ZodLiteral<"above">>;
893
+ textMask: z.ZodOptional<z.ZodBoolean>;
894
+ textMaskColor: z.ZodOptional<z.ZodString>;
895
+ textMaskPadding: z.ZodOptional<z.ZodNumber>;
896
+ }, z.core.$strict>]>;
897
+ export type PluginDrawingStylePatch = z.infer<typeof PluginDrawingStylePatch>;
898
+ export declare const PluginDrawingStylesArgs: z.ZodObject<{
899
+ drawingId: z.ZodString;
900
+ category: z.ZodString;
901
+ patch: z.ZodUnion<readonly [z.ZodObject<{
902
+ hide: z.ZodOptional<z.ZodBoolean>;
903
+ lineStyle: z.ZodOptional<z.ZodEnum<{
904
+ center: "center";
905
+ hidden: "hidden";
906
+ solid: "solid";
907
+ dashed: "dashed";
908
+ dashdot: "dashdot";
909
+ phantom: "phantom";
910
+ propertyLine: "propertyLine";
911
+ }>>;
912
+ lineColor: z.ZodOptional<z.ZodString>;
913
+ cutWidth: z.ZodOptional<z.ZodNumber>;
914
+ projectionWidth: z.ZodOptional<z.ZodNumber>;
915
+ weight: z.ZodOptional<z.ZodNumber>;
916
+ fillMode: z.ZodOptional<z.ZodString>;
917
+ fillColor: z.ZodOptional<z.ZodString>;
918
+ opacity: z.ZodOptional<z.ZodNumber>;
919
+ pattern: z.ZodOptional<z.ZodObject<{
920
+ id: z.ZodOptional<z.ZodString>;
921
+ scale: z.ZodOptional<z.ZodNumber>;
922
+ color: z.ZodOptional<z.ZodString>;
923
+ background: z.ZodOptional<z.ZodString>;
924
+ weight: z.ZodOptional<z.ZodNumber>;
925
+ }, z.core.$strict>>;
926
+ mask: z.ZodOptional<z.ZodBoolean>;
927
+ materials: z.ZodOptional<z.ZodObject<{
928
+ brick: z.ZodOptional<z.ZodObject<{
929
+ show: z.ZodOptional<z.ZodBoolean>;
930
+ color: z.ZodOptional<z.ZodString>;
931
+ pattern: z.ZodOptional<z.ZodObject<{
932
+ id: z.ZodOptional<z.ZodString>;
933
+ scale: z.ZodOptional<z.ZodNumber>;
934
+ color: z.ZodOptional<z.ZodString>;
935
+ background: z.ZodOptional<z.ZodString>;
936
+ weight: z.ZodOptional<z.ZodNumber>;
937
+ }, z.core.$strict>>;
938
+ }, z.core.$strict>>;
939
+ glass: z.ZodOptional<z.ZodObject<{
940
+ show: z.ZodOptional<z.ZodBoolean>;
941
+ color: z.ZodOptional<z.ZodString>;
942
+ pattern: z.ZodOptional<z.ZodObject<{
943
+ id: z.ZodOptional<z.ZodString>;
944
+ scale: z.ZodOptional<z.ZodNumber>;
945
+ color: z.ZodOptional<z.ZodString>;
946
+ background: z.ZodOptional<z.ZodString>;
947
+ weight: z.ZodOptional<z.ZodNumber>;
948
+ }, z.core.$strict>>;
949
+ }, z.core.$strict>>;
950
+ concrete: z.ZodOptional<z.ZodObject<{
951
+ show: z.ZodOptional<z.ZodBoolean>;
952
+ color: z.ZodOptional<z.ZodString>;
953
+ pattern: z.ZodOptional<z.ZodObject<{
954
+ id: z.ZodOptional<z.ZodString>;
955
+ scale: z.ZodOptional<z.ZodNumber>;
956
+ color: z.ZodOptional<z.ZodString>;
957
+ background: z.ZodOptional<z.ZodString>;
958
+ weight: z.ZodOptional<z.ZodNumber>;
959
+ }, z.core.$strict>>;
960
+ }, z.core.$strict>>;
961
+ metalFrame: z.ZodOptional<z.ZodObject<{
962
+ show: z.ZodOptional<z.ZodBoolean>;
963
+ color: z.ZodOptional<z.ZodString>;
964
+ pattern: z.ZodOptional<z.ZodObject<{
965
+ id: z.ZodOptional<z.ZodString>;
966
+ scale: z.ZodOptional<z.ZodNumber>;
967
+ color: z.ZodOptional<z.ZodString>;
968
+ background: z.ZodOptional<z.ZodString>;
969
+ weight: z.ZodOptional<z.ZodNumber>;
970
+ }, z.core.$strict>>;
971
+ }, z.core.$strict>>;
972
+ woodFrame: z.ZodOptional<z.ZodObject<{
973
+ show: z.ZodOptional<z.ZodBoolean>;
974
+ color: z.ZodOptional<z.ZodString>;
975
+ pattern: z.ZodOptional<z.ZodObject<{
976
+ id: z.ZodOptional<z.ZodString>;
977
+ scale: z.ZodOptional<z.ZodNumber>;
978
+ color: z.ZodOptional<z.ZodString>;
979
+ background: z.ZodOptional<z.ZodString>;
980
+ weight: z.ZodOptional<z.ZodNumber>;
981
+ }, z.core.$strict>>;
982
+ }, z.core.$strict>>;
983
+ plaster: z.ZodOptional<z.ZodObject<{
984
+ show: z.ZodOptional<z.ZodBoolean>;
985
+ color: z.ZodOptional<z.ZodString>;
986
+ pattern: z.ZodOptional<z.ZodObject<{
987
+ id: z.ZodOptional<z.ZodString>;
988
+ scale: z.ZodOptional<z.ZodNumber>;
989
+ color: z.ZodOptional<z.ZodString>;
990
+ background: z.ZodOptional<z.ZodString>;
991
+ weight: z.ZodOptional<z.ZodNumber>;
992
+ }, z.core.$strict>>;
993
+ }, z.core.$strict>>;
994
+ paint: z.ZodOptional<z.ZodObject<{
995
+ show: z.ZodOptional<z.ZodBoolean>;
996
+ color: z.ZodOptional<z.ZodString>;
997
+ pattern: z.ZodOptional<z.ZodObject<{
998
+ id: z.ZodOptional<z.ZodString>;
999
+ scale: z.ZodOptional<z.ZodNumber>;
1000
+ color: z.ZodOptional<z.ZodString>;
1001
+ background: z.ZodOptional<z.ZodString>;
1002
+ weight: z.ZodOptional<z.ZodNumber>;
1003
+ }, z.core.$strict>>;
1004
+ }, z.core.$strict>>;
1005
+ insulation: z.ZodOptional<z.ZodObject<{
1006
+ show: z.ZodOptional<z.ZodBoolean>;
1007
+ color: z.ZodOptional<z.ZodString>;
1008
+ pattern: z.ZodOptional<z.ZodObject<{
1009
+ id: z.ZodOptional<z.ZodString>;
1010
+ scale: z.ZodOptional<z.ZodNumber>;
1011
+ color: z.ZodOptional<z.ZodString>;
1012
+ background: z.ZodOptional<z.ZodString>;
1013
+ weight: z.ZodOptional<z.ZodNumber>;
1014
+ }, z.core.$strict>>;
1015
+ }, z.core.$strict>>;
1016
+ }, z.core.$strict>>;
1017
+ components: z.ZodOptional<z.ZodObject<{
1018
+ frame: z.ZodOptional<z.ZodBoolean>;
1019
+ leaf: z.ZodOptional<z.ZodBoolean>;
1020
+ jambs: z.ZodOptional<z.ZodBoolean>;
1021
+ glazing: z.ZodOptional<z.ZodBoolean>;
1022
+ track: z.ZodOptional<z.ZodBoolean>;
1023
+ operation: z.ZodOptional<z.ZodBoolean>;
1024
+ operationStyle: z.ZodOptional<z.ZodEnum<{
1025
+ center: "center";
1026
+ hidden: "hidden";
1027
+ solid: "solid";
1028
+ dashed: "dashed";
1029
+ dashdot: "dashdot";
1030
+ phantom: "phantom";
1031
+ propertyLine: "propertyLine";
1032
+ }>>;
1033
+ }, z.core.$strict>>;
1034
+ tag: z.ZodOptional<z.ZodObject<{
1035
+ show: z.ZodOptional<z.ZodBoolean>;
1036
+ fontFamily: z.ZodOptional<z.ZodString>;
1037
+ fontStyle: z.ZodOptional<z.ZodEnum<{
1038
+ italic: "italic";
1039
+ 400: "400";
1040
+ 500: "500";
1041
+ 700: "700";
1042
+ }>>;
1043
+ fontSize: z.ZodOptional<z.ZodEnum<{
1044
+ "12px": "12px";
1045
+ "16px": "16px";
1046
+ "24px": "24px";
1047
+ }>>;
1048
+ frame: z.ZodOptional<z.ZodEnum<{
1049
+ pill: "pill";
1050
+ hexagon: "hexagon";
1051
+ }>>;
1052
+ color: z.ZodOptional<z.ZodString>;
1053
+ opacity: z.ZodOptional<z.ZodNumber>;
1054
+ outline: z.ZodOptional<z.ZodNumber>;
1055
+ }, z.core.$strict>>;
1056
+ text: z.ZodOptional<z.ZodObject<{
1057
+ show: z.ZodOptional<z.ZodBoolean>;
1058
+ labels: z.ZodOptional<z.ZodBoolean>;
1059
+ areas: z.ZodOptional<z.ZodBoolean>;
1060
+ department: z.ZodOptional<z.ZodBoolean>;
1061
+ fontFamily: z.ZodOptional<z.ZodString>;
1062
+ color: z.ZodOptional<z.ZodString>;
1063
+ fontSize: z.ZodOptional<z.ZodEnum<{
1064
+ "12px": "12px";
1065
+ "16px": "16px";
1066
+ "24px": "24px";
1067
+ }>>;
1068
+ label: z.ZodOptional<z.ZodObject<{
1069
+ fontStyle: z.ZodOptional<z.ZodEnum<{
1070
+ italic: "italic";
1071
+ 400: "400";
1072
+ 500: "500";
1073
+ 700: "700";
1074
+ }>>;
1075
+ fontSize: z.ZodOptional<z.ZodEnum<{
1076
+ 5: "5";
1077
+ "12px": "12px";
1078
+ "16px": "16px";
1079
+ "24px": "24px";
1080
+ 2.5: "2.5";
1081
+ 3.5: "3.5";
1082
+ }>>;
1083
+ color: z.ZodOptional<z.ZodString>;
1084
+ }, z.core.$strict>>;
1085
+ metrics: z.ZodOptional<z.ZodObject<{
1086
+ fontStyle: z.ZodOptional<z.ZodEnum<{
1087
+ italic: "italic";
1088
+ 400: "400";
1089
+ 500: "500";
1090
+ 700: "700";
1091
+ }>>;
1092
+ fontSize: z.ZodOptional<z.ZodEnum<{
1093
+ 5: "5";
1094
+ "12px": "12px";
1095
+ "16px": "16px";
1096
+ "24px": "24px";
1097
+ 2.5: "2.5";
1098
+ 3.5: "3.5";
1099
+ }>>;
1100
+ color: z.ZodOptional<z.ZodString>;
1101
+ }, z.core.$strict>>;
1102
+ title: z.ZodOptional<z.ZodObject<{
1103
+ fontStyle: z.ZodOptional<z.ZodEnum<{
1104
+ italic: "italic";
1105
+ 400: "400";
1106
+ 500: "500";
1107
+ 700: "700";
1108
+ }>>;
1109
+ fontSize: z.ZodOptional<z.ZodEnum<{
1110
+ 5: "5";
1111
+ "12px": "12px";
1112
+ "16px": "16px";
1113
+ "24px": "24px";
1114
+ 2.5: "2.5";
1115
+ 3.5: "3.5";
1116
+ }>>;
1117
+ color: z.ZodOptional<z.ZodString>;
1118
+ }, z.core.$strict>>;
1119
+ scale: z.ZodOptional<z.ZodObject<{
1120
+ fontStyle: z.ZodOptional<z.ZodEnum<{
1121
+ italic: "italic";
1122
+ 400: "400";
1123
+ 500: "500";
1124
+ 700: "700";
1125
+ }>>;
1126
+ fontSize: z.ZodOptional<z.ZodEnum<{
1127
+ 5: "5";
1128
+ "12px": "12px";
1129
+ "16px": "16px";
1130
+ "24px": "24px";
1131
+ 2.5: "2.5";
1132
+ 3.5: "3.5";
1133
+ }>>;
1134
+ color: z.ZodOptional<z.ZodString>;
1135
+ }, z.core.$strict>>;
1136
+ }, z.core.$strict>>;
1137
+ detail: z.ZodOptional<z.ZodObject<{
1138
+ show: z.ZodOptional<z.ZodBoolean>;
1139
+ weight: z.ZodOptional<z.ZodNumber>;
1140
+ }, z.core.$strict>>;
1141
+ belowCut: z.ZodOptional<z.ZodObject<{
1142
+ show: z.ZodOptional<z.ZodBoolean>;
1143
+ lineStyle: z.ZodOptional<z.ZodEnum<{
1144
+ center: "center";
1145
+ hidden: "hidden";
1146
+ solid: "solid";
1147
+ dashed: "dashed";
1148
+ dashdot: "dashdot";
1149
+ phantom: "phantom";
1150
+ propertyLine: "propertyLine";
1151
+ }>>;
1152
+ weight: z.ZodOptional<z.ZodNumber>;
1153
+ }, z.core.$strict>>;
1154
+ aboveCut: z.ZodOptional<z.ZodObject<{
1155
+ show: z.ZodOptional<z.ZodBoolean>;
1156
+ lineStyle: z.ZodOptional<z.ZodEnum<{
1157
+ center: "center";
1158
+ hidden: "hidden";
1159
+ solid: "solid";
1160
+ dashed: "dashed";
1161
+ dashdot: "dashdot";
1162
+ phantom: "phantom";
1163
+ propertyLine: "propertyLine";
1164
+ }>>;
1165
+ weight: z.ZodOptional<z.ZodNumber>;
1166
+ }, z.core.$strict>>;
1167
+ underlay: z.ZodOptional<z.ZodObject<{
1168
+ show: z.ZodOptional<z.ZodBoolean>;
1169
+ lineStyle: z.ZodOptional<z.ZodEnum<{
1170
+ center: "center";
1171
+ hidden: "hidden";
1172
+ solid: "solid";
1173
+ dashed: "dashed";
1174
+ dashdot: "dashdot";
1175
+ phantom: "phantom";
1176
+ propertyLine: "propertyLine";
1177
+ }>>;
1178
+ weight: z.ZodOptional<z.ZodNumber>;
1179
+ }, z.core.$strict>>;
1180
+ walkLine: z.ZodOptional<z.ZodObject<{
1181
+ show: z.ZodOptional<z.ZodBoolean>;
1182
+ lineStyle: z.ZodOptional<z.ZodEnum<{
1183
+ center: "center";
1184
+ hidden: "hidden";
1185
+ solid: "solid";
1186
+ dashed: "dashed";
1187
+ dashdot: "dashdot";
1188
+ phantom: "phantom";
1189
+ propertyLine: "propertyLine";
1190
+ }>>;
1191
+ weight: z.ZodOptional<z.ZodNumber>;
1192
+ }, z.core.$strict>>;
1193
+ breakLine: z.ZodOptional<z.ZodObject<{
1194
+ show: z.ZodOptional<z.ZodBoolean>;
1195
+ lineStyle: z.ZodOptional<z.ZodEnum<{
1196
+ center: "center";
1197
+ hidden: "hidden";
1198
+ solid: "solid";
1199
+ dashed: "dashed";
1200
+ dashdot: "dashdot";
1201
+ phantom: "phantom";
1202
+ propertyLine: "propertyLine";
1203
+ }>>;
1204
+ weight: z.ZodOptional<z.ZodNumber>;
1205
+ }, z.core.$strict>>;
1206
+ overlay: z.ZodOptional<z.ZodObject<{
1207
+ show: z.ZodOptional<z.ZodBoolean>;
1208
+ lineStyle: z.ZodOptional<z.ZodEnum<{
1209
+ center: "center";
1210
+ hidden: "hidden";
1211
+ solid: "solid";
1212
+ dashed: "dashed";
1213
+ dashdot: "dashdot";
1214
+ phantom: "phantom";
1215
+ propertyLine: "propertyLine";
1216
+ }>>;
1217
+ weight: z.ZodOptional<z.ZodNumber>;
1218
+ }, z.core.$strict>>;
1219
+ title: z.ZodOptional<z.ZodObject<{
1220
+ show: z.ZodOptional<z.ZodBoolean>;
1221
+ text: z.ZodOptional<z.ZodString>;
1222
+ }, z.core.$strict>>;
1223
+ proposal: z.ZodOptional<z.ZodObject<{
1224
+ show: z.ZodOptional<z.ZodBoolean>;
1225
+ text: z.ZodOptional<z.ZodString>;
1226
+ }, z.core.$strict>>;
1227
+ building: z.ZodOptional<z.ZodObject<{
1228
+ show: z.ZodOptional<z.ZodBoolean>;
1229
+ text: z.ZodOptional<z.ZodString>;
1230
+ }, z.core.$strict>>;
1231
+ scale: z.ZodOptional<z.ZodObject<{
1232
+ show: z.ZodOptional<z.ZodBoolean>;
1233
+ format: z.ZodOptional<z.ZodEnum<{
1234
+ text: "text";
1235
+ automatic: "automatic";
1236
+ ratio: "ratio";
1237
+ }>>;
1238
+ }, z.core.$strict>>;
1239
+ scaleBar: z.ZodOptional<z.ZodObject<{
1240
+ show: z.ZodOptional<z.ZodBoolean>;
1241
+ format: z.ZodOptional<z.ZodEnum<{
1242
+ divided: "divided";
1243
+ simple: "simple";
1244
+ }>>;
1245
+ length: z.ZodOptional<z.ZodEnum<{
1246
+ 1: "1";
1247
+ 2: "2";
1248
+ 5: "5";
1249
+ 10: "10";
1250
+ }>>;
1251
+ }, z.core.$strict>>;
1252
+ extension: z.ZodOptional<z.ZodObject<{
1253
+ show: z.ZodOptional<z.ZodBoolean>;
1254
+ length: z.ZodOptional<z.ZodEnum<{
1255
+ underTitle: "underTitle";
1256
+ fullWidth: "fullWidth";
1257
+ }>>;
1258
+ weight: z.ZodOptional<z.ZodNumber>;
1259
+ color: z.ZodOptional<z.ZodString>;
1260
+ }, z.core.$strict>>;
1261
+ position: z.ZodOptional<z.ZodEnum<{
1262
+ topLeft: "topLeft";
1263
+ bottomLeft: "bottomLeft";
1264
+ bottomCentre: "bottomCentre";
1265
+ }>>;
1266
+ }, z.core.$strict>, z.ZodObject<{
1267
+ hide: z.ZodOptional<z.ZodBoolean>;
1268
+ lineStyle: z.ZodOptional<z.ZodEnum<{
1269
+ center: "center";
1270
+ hidden: "hidden";
1271
+ solid: "solid";
1272
+ dashed: "dashed";
1273
+ dashdot: "dashdot";
1274
+ phantom: "phantom";
1275
+ propertyLine: "propertyLine";
1276
+ }>>;
1277
+ lineColor: z.ZodOptional<z.ZodString>;
1278
+ dashLength: z.ZodOptional<z.ZodNumber>;
1279
+ lineWidth: z.ZodOptional<z.ZodNumber>;
1280
+ cutWidth: z.ZodOptional<z.ZodNumber>;
1281
+ projectionWidth: z.ZodOptional<z.ZodNumber>;
1282
+ treeLineWidth: z.ZodOptional<z.ZodNumber>;
1283
+ parkingLineWidth: z.ZodOptional<z.ZodNumber>;
1284
+ colorMode: z.ZodOptional<z.ZodString>;
1285
+ opacity: z.ZodOptional<z.ZodNumber>;
1286
+ mapOpacity: z.ZodOptional<z.ZodNumber>;
1287
+ buildingOpacity: z.ZodOptional<z.ZodNumber>;
1288
+ mapHide: z.ZodOptional<z.ZodBoolean>;
1289
+ buildingHide: z.ZodOptional<z.ZodBoolean>;
1290
+ noBuilding: z.ZodOptional<z.ZodBoolean>;
1291
+ viewStyle: z.ZodOptional<z.ZodEnum<{
1292
+ NONE: "NONE";
1293
+ FILLET: "FILLET";
1294
+ BUBBLE: "BUBBLE";
1295
+ }>>;
1296
+ radius: z.ZodOptional<z.ZodNumber>;
1297
+ inset: z.ZodOptional<z.ZodNumber>;
1298
+ markerKind: z.ZodOptional<z.ZodEnum<{
1299
+ architecturalTick: "architecturalTick";
1300
+ openArrow: "openArrow";
1301
+ closedArrow: "closedArrow";
1302
+ }>>;
1303
+ markerSize: z.ZodOptional<z.ZodNumber>;
1304
+ extensionLineVisible: z.ZodOptional<z.ZodBoolean>;
1305
+ extensionLineStyle: z.ZodOptional<z.ZodEnum<{
1306
+ center: "center";
1307
+ hidden: "hidden";
1308
+ solid: "solid";
1309
+ dashed: "dashed";
1310
+ dashdot: "dashdot";
1311
+ phantom: "phantom";
1312
+ propertyLine: "propertyLine";
1313
+ }>>;
1314
+ extensionGap: z.ZodOptional<z.ZodNumber>;
1315
+ extensionOvershoot: z.ZodOptional<z.ZodNumber>;
1316
+ textColor: z.ZodOptional<z.ZodString>;
1317
+ textGap: z.ZodOptional<z.ZodNumber>;
1318
+ textPlacement: z.ZodOptional<z.ZodLiteral<"above">>;
1319
+ textMask: z.ZodOptional<z.ZodBoolean>;
1320
+ textMaskColor: z.ZodOptional<z.ZodString>;
1321
+ textMaskPadding: z.ZodOptional<z.ZodNumber>;
1322
+ }, z.core.$strict>]>;
1323
+ }, z.core.$strict>;
1324
+ export type PluginDrawingStylesArgs = z.infer<typeof PluginDrawingStylesArgs>;
1325
+ /** One selectable value exposed by a native drawing style control. */
1326
+ export declare const PluginDrawingStyleControlOption: z.ZodObject<{
1327
+ label: z.ZodString;
1328
+ value: z.ZodString;
1329
+ }, z.core.$strip>;
1330
+ export type PluginDrawingStyleControlOption = z.infer<typeof PluginDrawingStyleControlOption>;
1331
+ /** Numeric bounds exposed by a native drawing style control. */
1332
+ export declare const PluginDrawingStyleControlRange: z.ZodObject<{
1333
+ min: z.ZodNumber;
1334
+ max: z.ZodNumber;
1335
+ step: z.ZodNumber;
1336
+ }, z.core.$strip>;
1337
+ export type PluginDrawingStyleControlRange = z.infer<typeof PluginDrawingStyleControlRange>;
1338
+ /** Description of one editable control returned by `drawings.getStyles`. */
1339
+ export declare const PluginDrawingStyleControl: z.ZodObject<{
1340
+ key: z.ZodString;
1341
+ kind: z.ZodString;
1342
+ options: z.ZodOptional<z.ZodArray<z.ZodObject<{
1343
+ label: z.ZodString;
1344
+ value: z.ZodString;
1345
+ }, z.core.$strip>>>;
1346
+ range: z.ZodOptional<z.ZodObject<{
1347
+ min: z.ZodNumber;
1348
+ max: z.ZodNumber;
1349
+ step: z.ZodNumber;
1350
+ }, z.core.$strip>>;
1351
+ }, z.core.$strip>;
1352
+ export type PluginDrawingStyleControl = z.infer<typeof PluginDrawingStyleControl>;
1353
+ /**
1354
+ * Read values differ from write patches: legacy renderers use -1 for an unset opacity and
1355
+ * include the read-only `disable` flag. These values must not be echoed as an update patch.
1356
+ */
1357
+ export declare const PluginDrawingStyleValues: z.ZodUnion<readonly [z.ZodObject<{
1358
+ hide: z.ZodOptional<z.ZodBoolean>;
1359
+ lineStyle: z.ZodOptional<z.ZodEnum<{
1360
+ center: "center";
1361
+ hidden: "hidden";
1362
+ solid: "solid";
1363
+ dashed: "dashed";
1364
+ dashdot: "dashdot";
1365
+ phantom: "phantom";
1366
+ propertyLine: "propertyLine";
1367
+ }>>;
1368
+ lineColor: z.ZodOptional<z.ZodString>;
1369
+ cutWidth: z.ZodOptional<z.ZodNumber>;
1370
+ projectionWidth: z.ZodOptional<z.ZodNumber>;
1371
+ weight: z.ZodOptional<z.ZodNumber>;
1372
+ fillMode: z.ZodOptional<z.ZodString>;
1373
+ fillColor: z.ZodOptional<z.ZodString>;
1374
+ opacity: z.ZodOptional<z.ZodNumber>;
1375
+ pattern: z.ZodOptional<z.ZodObject<{
1376
+ id: z.ZodOptional<z.ZodString>;
1377
+ scale: z.ZodOptional<z.ZodNumber>;
1378
+ color: z.ZodOptional<z.ZodString>;
1379
+ background: z.ZodOptional<z.ZodString>;
1380
+ weight: z.ZodOptional<z.ZodNumber>;
1381
+ }, z.core.$strict>>;
1382
+ mask: z.ZodOptional<z.ZodBoolean>;
1383
+ materials: z.ZodOptional<z.ZodObject<{
1384
+ brick: z.ZodOptional<z.ZodObject<{
1385
+ show: z.ZodOptional<z.ZodBoolean>;
1386
+ color: z.ZodOptional<z.ZodString>;
1387
+ pattern: z.ZodOptional<z.ZodObject<{
1388
+ id: z.ZodOptional<z.ZodString>;
1389
+ scale: z.ZodOptional<z.ZodNumber>;
1390
+ color: z.ZodOptional<z.ZodString>;
1391
+ background: z.ZodOptional<z.ZodString>;
1392
+ weight: z.ZodOptional<z.ZodNumber>;
1393
+ }, z.core.$strict>>;
1394
+ }, z.core.$strict>>;
1395
+ glass: z.ZodOptional<z.ZodObject<{
1396
+ show: z.ZodOptional<z.ZodBoolean>;
1397
+ color: z.ZodOptional<z.ZodString>;
1398
+ pattern: z.ZodOptional<z.ZodObject<{
1399
+ id: z.ZodOptional<z.ZodString>;
1400
+ scale: z.ZodOptional<z.ZodNumber>;
1401
+ color: z.ZodOptional<z.ZodString>;
1402
+ background: z.ZodOptional<z.ZodString>;
1403
+ weight: z.ZodOptional<z.ZodNumber>;
1404
+ }, z.core.$strict>>;
1405
+ }, z.core.$strict>>;
1406
+ concrete: z.ZodOptional<z.ZodObject<{
1407
+ show: z.ZodOptional<z.ZodBoolean>;
1408
+ color: z.ZodOptional<z.ZodString>;
1409
+ pattern: z.ZodOptional<z.ZodObject<{
1410
+ id: z.ZodOptional<z.ZodString>;
1411
+ scale: z.ZodOptional<z.ZodNumber>;
1412
+ color: z.ZodOptional<z.ZodString>;
1413
+ background: z.ZodOptional<z.ZodString>;
1414
+ weight: z.ZodOptional<z.ZodNumber>;
1415
+ }, z.core.$strict>>;
1416
+ }, z.core.$strict>>;
1417
+ metalFrame: z.ZodOptional<z.ZodObject<{
1418
+ show: z.ZodOptional<z.ZodBoolean>;
1419
+ color: z.ZodOptional<z.ZodString>;
1420
+ pattern: z.ZodOptional<z.ZodObject<{
1421
+ id: z.ZodOptional<z.ZodString>;
1422
+ scale: z.ZodOptional<z.ZodNumber>;
1423
+ color: z.ZodOptional<z.ZodString>;
1424
+ background: z.ZodOptional<z.ZodString>;
1425
+ weight: z.ZodOptional<z.ZodNumber>;
1426
+ }, z.core.$strict>>;
1427
+ }, z.core.$strict>>;
1428
+ woodFrame: z.ZodOptional<z.ZodObject<{
1429
+ show: z.ZodOptional<z.ZodBoolean>;
1430
+ color: z.ZodOptional<z.ZodString>;
1431
+ pattern: z.ZodOptional<z.ZodObject<{
1432
+ id: z.ZodOptional<z.ZodString>;
1433
+ scale: z.ZodOptional<z.ZodNumber>;
1434
+ color: z.ZodOptional<z.ZodString>;
1435
+ background: z.ZodOptional<z.ZodString>;
1436
+ weight: z.ZodOptional<z.ZodNumber>;
1437
+ }, z.core.$strict>>;
1438
+ }, z.core.$strict>>;
1439
+ plaster: z.ZodOptional<z.ZodObject<{
1440
+ show: z.ZodOptional<z.ZodBoolean>;
1441
+ color: z.ZodOptional<z.ZodString>;
1442
+ pattern: z.ZodOptional<z.ZodObject<{
1443
+ id: z.ZodOptional<z.ZodString>;
1444
+ scale: z.ZodOptional<z.ZodNumber>;
1445
+ color: z.ZodOptional<z.ZodString>;
1446
+ background: z.ZodOptional<z.ZodString>;
1447
+ weight: z.ZodOptional<z.ZodNumber>;
1448
+ }, z.core.$strict>>;
1449
+ }, z.core.$strict>>;
1450
+ paint: z.ZodOptional<z.ZodObject<{
1451
+ show: z.ZodOptional<z.ZodBoolean>;
1452
+ color: z.ZodOptional<z.ZodString>;
1453
+ pattern: z.ZodOptional<z.ZodObject<{
1454
+ id: z.ZodOptional<z.ZodString>;
1455
+ scale: z.ZodOptional<z.ZodNumber>;
1456
+ color: z.ZodOptional<z.ZodString>;
1457
+ background: z.ZodOptional<z.ZodString>;
1458
+ weight: z.ZodOptional<z.ZodNumber>;
1459
+ }, z.core.$strict>>;
1460
+ }, z.core.$strict>>;
1461
+ insulation: z.ZodOptional<z.ZodObject<{
1462
+ show: z.ZodOptional<z.ZodBoolean>;
1463
+ color: z.ZodOptional<z.ZodString>;
1464
+ pattern: z.ZodOptional<z.ZodObject<{
1465
+ id: z.ZodOptional<z.ZodString>;
1466
+ scale: z.ZodOptional<z.ZodNumber>;
1467
+ color: z.ZodOptional<z.ZodString>;
1468
+ background: z.ZodOptional<z.ZodString>;
1469
+ weight: z.ZodOptional<z.ZodNumber>;
1470
+ }, z.core.$strict>>;
1471
+ }, z.core.$strict>>;
1472
+ }, z.core.$strict>>;
1473
+ components: z.ZodOptional<z.ZodObject<{
1474
+ frame: z.ZodOptional<z.ZodBoolean>;
1475
+ leaf: z.ZodOptional<z.ZodBoolean>;
1476
+ jambs: z.ZodOptional<z.ZodBoolean>;
1477
+ glazing: z.ZodOptional<z.ZodBoolean>;
1478
+ track: z.ZodOptional<z.ZodBoolean>;
1479
+ operation: z.ZodOptional<z.ZodBoolean>;
1480
+ operationStyle: z.ZodOptional<z.ZodEnum<{
1481
+ center: "center";
1482
+ hidden: "hidden";
1483
+ solid: "solid";
1484
+ dashed: "dashed";
1485
+ dashdot: "dashdot";
1486
+ phantom: "phantom";
1487
+ propertyLine: "propertyLine";
1488
+ }>>;
1489
+ }, z.core.$strict>>;
1490
+ tag: z.ZodOptional<z.ZodObject<{
1491
+ show: z.ZodOptional<z.ZodBoolean>;
1492
+ fontFamily: z.ZodOptional<z.ZodString>;
1493
+ fontStyle: z.ZodOptional<z.ZodEnum<{
1494
+ italic: "italic";
1495
+ 400: "400";
1496
+ 500: "500";
1497
+ 700: "700";
1498
+ }>>;
1499
+ fontSize: z.ZodOptional<z.ZodEnum<{
1500
+ "12px": "12px";
1501
+ "16px": "16px";
1502
+ "24px": "24px";
1503
+ }>>;
1504
+ frame: z.ZodOptional<z.ZodEnum<{
1505
+ pill: "pill";
1506
+ hexagon: "hexagon";
1507
+ }>>;
1508
+ color: z.ZodOptional<z.ZodString>;
1509
+ opacity: z.ZodOptional<z.ZodNumber>;
1510
+ outline: z.ZodOptional<z.ZodNumber>;
1511
+ }, z.core.$strict>>;
1512
+ text: z.ZodOptional<z.ZodObject<{
1513
+ show: z.ZodOptional<z.ZodBoolean>;
1514
+ labels: z.ZodOptional<z.ZodBoolean>;
1515
+ areas: z.ZodOptional<z.ZodBoolean>;
1516
+ department: z.ZodOptional<z.ZodBoolean>;
1517
+ fontFamily: z.ZodOptional<z.ZodString>;
1518
+ color: z.ZodOptional<z.ZodString>;
1519
+ fontSize: z.ZodOptional<z.ZodEnum<{
1520
+ "12px": "12px";
1521
+ "16px": "16px";
1522
+ "24px": "24px";
1523
+ }>>;
1524
+ label: z.ZodOptional<z.ZodObject<{
1525
+ fontStyle: z.ZodOptional<z.ZodEnum<{
1526
+ italic: "italic";
1527
+ 400: "400";
1528
+ 500: "500";
1529
+ 700: "700";
1530
+ }>>;
1531
+ fontSize: z.ZodOptional<z.ZodEnum<{
1532
+ 5: "5";
1533
+ "12px": "12px";
1534
+ "16px": "16px";
1535
+ "24px": "24px";
1536
+ 2.5: "2.5";
1537
+ 3.5: "3.5";
1538
+ }>>;
1539
+ color: z.ZodOptional<z.ZodString>;
1540
+ }, z.core.$strict>>;
1541
+ metrics: z.ZodOptional<z.ZodObject<{
1542
+ fontStyle: z.ZodOptional<z.ZodEnum<{
1543
+ italic: "italic";
1544
+ 400: "400";
1545
+ 500: "500";
1546
+ 700: "700";
1547
+ }>>;
1548
+ fontSize: z.ZodOptional<z.ZodEnum<{
1549
+ 5: "5";
1550
+ "12px": "12px";
1551
+ "16px": "16px";
1552
+ "24px": "24px";
1553
+ 2.5: "2.5";
1554
+ 3.5: "3.5";
1555
+ }>>;
1556
+ color: z.ZodOptional<z.ZodString>;
1557
+ }, z.core.$strict>>;
1558
+ title: z.ZodOptional<z.ZodObject<{
1559
+ fontStyle: z.ZodOptional<z.ZodEnum<{
1560
+ italic: "italic";
1561
+ 400: "400";
1562
+ 500: "500";
1563
+ 700: "700";
1564
+ }>>;
1565
+ fontSize: z.ZodOptional<z.ZodEnum<{
1566
+ 5: "5";
1567
+ "12px": "12px";
1568
+ "16px": "16px";
1569
+ "24px": "24px";
1570
+ 2.5: "2.5";
1571
+ 3.5: "3.5";
1572
+ }>>;
1573
+ color: z.ZodOptional<z.ZodString>;
1574
+ }, z.core.$strict>>;
1575
+ scale: z.ZodOptional<z.ZodObject<{
1576
+ fontStyle: z.ZodOptional<z.ZodEnum<{
1577
+ italic: "italic";
1578
+ 400: "400";
1579
+ 500: "500";
1580
+ 700: "700";
1581
+ }>>;
1582
+ fontSize: z.ZodOptional<z.ZodEnum<{
1583
+ 5: "5";
1584
+ "12px": "12px";
1585
+ "16px": "16px";
1586
+ "24px": "24px";
1587
+ 2.5: "2.5";
1588
+ 3.5: "3.5";
1589
+ }>>;
1590
+ color: z.ZodOptional<z.ZodString>;
1591
+ }, z.core.$strict>>;
1592
+ }, z.core.$strict>>;
1593
+ detail: z.ZodOptional<z.ZodObject<{
1594
+ show: z.ZodOptional<z.ZodBoolean>;
1595
+ weight: z.ZodOptional<z.ZodNumber>;
1596
+ }, z.core.$strict>>;
1597
+ belowCut: z.ZodOptional<z.ZodObject<{
1598
+ show: z.ZodOptional<z.ZodBoolean>;
1599
+ lineStyle: z.ZodOptional<z.ZodEnum<{
1600
+ center: "center";
1601
+ hidden: "hidden";
1602
+ solid: "solid";
1603
+ dashed: "dashed";
1604
+ dashdot: "dashdot";
1605
+ phantom: "phantom";
1606
+ propertyLine: "propertyLine";
1607
+ }>>;
1608
+ weight: z.ZodOptional<z.ZodNumber>;
1609
+ }, z.core.$strict>>;
1610
+ aboveCut: z.ZodOptional<z.ZodObject<{
1611
+ show: z.ZodOptional<z.ZodBoolean>;
1612
+ lineStyle: z.ZodOptional<z.ZodEnum<{
1613
+ center: "center";
1614
+ hidden: "hidden";
1615
+ solid: "solid";
1616
+ dashed: "dashed";
1617
+ dashdot: "dashdot";
1618
+ phantom: "phantom";
1619
+ propertyLine: "propertyLine";
1620
+ }>>;
1621
+ weight: z.ZodOptional<z.ZodNumber>;
1622
+ }, z.core.$strict>>;
1623
+ underlay: z.ZodOptional<z.ZodObject<{
1624
+ show: z.ZodOptional<z.ZodBoolean>;
1625
+ lineStyle: z.ZodOptional<z.ZodEnum<{
1626
+ center: "center";
1627
+ hidden: "hidden";
1628
+ solid: "solid";
1629
+ dashed: "dashed";
1630
+ dashdot: "dashdot";
1631
+ phantom: "phantom";
1632
+ propertyLine: "propertyLine";
1633
+ }>>;
1634
+ weight: z.ZodOptional<z.ZodNumber>;
1635
+ }, z.core.$strict>>;
1636
+ walkLine: z.ZodOptional<z.ZodObject<{
1637
+ show: z.ZodOptional<z.ZodBoolean>;
1638
+ lineStyle: z.ZodOptional<z.ZodEnum<{
1639
+ center: "center";
1640
+ hidden: "hidden";
1641
+ solid: "solid";
1642
+ dashed: "dashed";
1643
+ dashdot: "dashdot";
1644
+ phantom: "phantom";
1645
+ propertyLine: "propertyLine";
1646
+ }>>;
1647
+ weight: z.ZodOptional<z.ZodNumber>;
1648
+ }, z.core.$strict>>;
1649
+ breakLine: z.ZodOptional<z.ZodObject<{
1650
+ show: z.ZodOptional<z.ZodBoolean>;
1651
+ lineStyle: z.ZodOptional<z.ZodEnum<{
1652
+ center: "center";
1653
+ hidden: "hidden";
1654
+ solid: "solid";
1655
+ dashed: "dashed";
1656
+ dashdot: "dashdot";
1657
+ phantom: "phantom";
1658
+ propertyLine: "propertyLine";
1659
+ }>>;
1660
+ weight: z.ZodOptional<z.ZodNumber>;
1661
+ }, z.core.$strict>>;
1662
+ overlay: z.ZodOptional<z.ZodObject<{
1663
+ show: z.ZodOptional<z.ZodBoolean>;
1664
+ lineStyle: z.ZodOptional<z.ZodEnum<{
1665
+ center: "center";
1666
+ hidden: "hidden";
1667
+ solid: "solid";
1668
+ dashed: "dashed";
1669
+ dashdot: "dashdot";
1670
+ phantom: "phantom";
1671
+ propertyLine: "propertyLine";
1672
+ }>>;
1673
+ weight: z.ZodOptional<z.ZodNumber>;
1674
+ }, z.core.$strict>>;
1675
+ title: z.ZodOptional<z.ZodObject<{
1676
+ show: z.ZodOptional<z.ZodBoolean>;
1677
+ text: z.ZodOptional<z.ZodString>;
1678
+ }, z.core.$strict>>;
1679
+ proposal: z.ZodOptional<z.ZodObject<{
1680
+ show: z.ZodOptional<z.ZodBoolean>;
1681
+ text: z.ZodOptional<z.ZodString>;
1682
+ }, z.core.$strict>>;
1683
+ building: z.ZodOptional<z.ZodObject<{
1684
+ show: z.ZodOptional<z.ZodBoolean>;
1685
+ text: z.ZodOptional<z.ZodString>;
1686
+ }, z.core.$strict>>;
1687
+ scale: z.ZodOptional<z.ZodObject<{
1688
+ show: z.ZodOptional<z.ZodBoolean>;
1689
+ format: z.ZodOptional<z.ZodEnum<{
1690
+ text: "text";
1691
+ automatic: "automatic";
1692
+ ratio: "ratio";
1693
+ }>>;
1694
+ }, z.core.$strict>>;
1695
+ scaleBar: z.ZodOptional<z.ZodObject<{
1696
+ show: z.ZodOptional<z.ZodBoolean>;
1697
+ format: z.ZodOptional<z.ZodEnum<{
1698
+ divided: "divided";
1699
+ simple: "simple";
1700
+ }>>;
1701
+ length: z.ZodOptional<z.ZodEnum<{
1702
+ 1: "1";
1703
+ 2: "2";
1704
+ 5: "5";
1705
+ 10: "10";
1706
+ }>>;
1707
+ }, z.core.$strict>>;
1708
+ extension: z.ZodOptional<z.ZodObject<{
1709
+ show: z.ZodOptional<z.ZodBoolean>;
1710
+ length: z.ZodOptional<z.ZodEnum<{
1711
+ underTitle: "underTitle";
1712
+ fullWidth: "fullWidth";
1713
+ }>>;
1714
+ weight: z.ZodOptional<z.ZodNumber>;
1715
+ color: z.ZodOptional<z.ZodString>;
1716
+ }, z.core.$strict>>;
1717
+ position: z.ZodOptional<z.ZodEnum<{
1718
+ topLeft: "topLeft";
1719
+ bottomLeft: "bottomLeft";
1720
+ bottomCentre: "bottomCentre";
1721
+ }>>;
1722
+ }, z.core.$strict>, z.ZodObject<{
1723
+ disable: z.ZodOptional<z.ZodBoolean>;
1724
+ opacity: z.ZodOptional<z.ZodNumber>;
1725
+ mapOpacity: z.ZodOptional<z.ZodNumber>;
1726
+ buildingOpacity: z.ZodOptional<z.ZodNumber>;
1727
+ hide: z.ZodOptional<z.ZodBoolean>;
1728
+ lineStyle: z.ZodOptional<z.ZodEnum<{
1729
+ center: "center";
1730
+ hidden: "hidden";
1731
+ solid: "solid";
1732
+ dashed: "dashed";
1733
+ dashdot: "dashdot";
1734
+ phantom: "phantom";
1735
+ propertyLine: "propertyLine";
1736
+ }>>;
1737
+ lineColor: z.ZodOptional<z.ZodString>;
1738
+ dashLength: z.ZodOptional<z.ZodNumber>;
1739
+ lineWidth: z.ZodOptional<z.ZodNumber>;
1740
+ cutWidth: z.ZodOptional<z.ZodNumber>;
1741
+ projectionWidth: z.ZodOptional<z.ZodNumber>;
1742
+ treeLineWidth: z.ZodOptional<z.ZodNumber>;
1743
+ parkingLineWidth: z.ZodOptional<z.ZodNumber>;
1744
+ colorMode: z.ZodOptional<z.ZodString>;
1745
+ mapHide: z.ZodOptional<z.ZodBoolean>;
1746
+ buildingHide: z.ZodOptional<z.ZodBoolean>;
1747
+ noBuilding: z.ZodOptional<z.ZodBoolean>;
1748
+ viewStyle: z.ZodOptional<z.ZodEnum<{
1749
+ NONE: "NONE";
1750
+ FILLET: "FILLET";
1751
+ BUBBLE: "BUBBLE";
1752
+ }>>;
1753
+ radius: z.ZodOptional<z.ZodNumber>;
1754
+ inset: z.ZodOptional<z.ZodNumber>;
1755
+ markerKind: z.ZodOptional<z.ZodEnum<{
1756
+ architecturalTick: "architecturalTick";
1757
+ openArrow: "openArrow";
1758
+ closedArrow: "closedArrow";
1759
+ }>>;
1760
+ markerSize: z.ZodOptional<z.ZodNumber>;
1761
+ extensionLineVisible: z.ZodOptional<z.ZodBoolean>;
1762
+ extensionLineStyle: z.ZodOptional<z.ZodEnum<{
1763
+ center: "center";
1764
+ hidden: "hidden";
1765
+ solid: "solid";
1766
+ dashed: "dashed";
1767
+ dashdot: "dashdot";
1768
+ phantom: "phantom";
1769
+ propertyLine: "propertyLine";
1770
+ }>>;
1771
+ extensionGap: z.ZodOptional<z.ZodNumber>;
1772
+ extensionOvershoot: z.ZodOptional<z.ZodNumber>;
1773
+ textColor: z.ZodOptional<z.ZodString>;
1774
+ textGap: z.ZodOptional<z.ZodNumber>;
1775
+ textPlacement: z.ZodOptional<z.ZodLiteral<"above">>;
1776
+ textMask: z.ZodOptional<z.ZodBoolean>;
1777
+ textMaskColor: z.ZodOptional<z.ZodString>;
1778
+ textMaskPadding: z.ZodOptional<z.ZodNumber>;
1779
+ }, z.core.$strict>]>;
1780
+ export type PluginDrawingStyleValues = z.infer<typeof PluginDrawingStyleValues>;
1781
+ /** Read-only effective settings and editable controls for one drawing category. */
1782
+ export declare const PluginDrawingStyleCategory: z.ZodObject<{
1783
+ category: z.ZodString;
1784
+ absent: z.ZodBoolean;
1785
+ settings: z.ZodUnion<readonly [z.ZodObject<{
1786
+ hide: z.ZodOptional<z.ZodBoolean>;
1787
+ lineStyle: z.ZodOptional<z.ZodEnum<{
1788
+ center: "center";
1789
+ hidden: "hidden";
1790
+ solid: "solid";
1791
+ dashed: "dashed";
1792
+ dashdot: "dashdot";
1793
+ phantom: "phantom";
1794
+ propertyLine: "propertyLine";
1795
+ }>>;
1796
+ lineColor: z.ZodOptional<z.ZodString>;
1797
+ cutWidth: z.ZodOptional<z.ZodNumber>;
1798
+ projectionWidth: z.ZodOptional<z.ZodNumber>;
1799
+ weight: z.ZodOptional<z.ZodNumber>;
1800
+ fillMode: z.ZodOptional<z.ZodString>;
1801
+ fillColor: z.ZodOptional<z.ZodString>;
1802
+ opacity: z.ZodOptional<z.ZodNumber>;
1803
+ pattern: z.ZodOptional<z.ZodObject<{
1804
+ id: z.ZodOptional<z.ZodString>;
1805
+ scale: z.ZodOptional<z.ZodNumber>;
1806
+ color: z.ZodOptional<z.ZodString>;
1807
+ background: z.ZodOptional<z.ZodString>;
1808
+ weight: z.ZodOptional<z.ZodNumber>;
1809
+ }, z.core.$strict>>;
1810
+ mask: z.ZodOptional<z.ZodBoolean>;
1811
+ materials: z.ZodOptional<z.ZodObject<{
1812
+ brick: z.ZodOptional<z.ZodObject<{
1813
+ show: z.ZodOptional<z.ZodBoolean>;
1814
+ color: z.ZodOptional<z.ZodString>;
1815
+ pattern: z.ZodOptional<z.ZodObject<{
1816
+ id: z.ZodOptional<z.ZodString>;
1817
+ scale: z.ZodOptional<z.ZodNumber>;
1818
+ color: z.ZodOptional<z.ZodString>;
1819
+ background: z.ZodOptional<z.ZodString>;
1820
+ weight: z.ZodOptional<z.ZodNumber>;
1821
+ }, z.core.$strict>>;
1822
+ }, z.core.$strict>>;
1823
+ glass: z.ZodOptional<z.ZodObject<{
1824
+ show: z.ZodOptional<z.ZodBoolean>;
1825
+ color: z.ZodOptional<z.ZodString>;
1826
+ pattern: z.ZodOptional<z.ZodObject<{
1827
+ id: z.ZodOptional<z.ZodString>;
1828
+ scale: z.ZodOptional<z.ZodNumber>;
1829
+ color: z.ZodOptional<z.ZodString>;
1830
+ background: z.ZodOptional<z.ZodString>;
1831
+ weight: z.ZodOptional<z.ZodNumber>;
1832
+ }, z.core.$strict>>;
1833
+ }, z.core.$strict>>;
1834
+ concrete: z.ZodOptional<z.ZodObject<{
1835
+ show: z.ZodOptional<z.ZodBoolean>;
1836
+ color: z.ZodOptional<z.ZodString>;
1837
+ pattern: z.ZodOptional<z.ZodObject<{
1838
+ id: z.ZodOptional<z.ZodString>;
1839
+ scale: z.ZodOptional<z.ZodNumber>;
1840
+ color: z.ZodOptional<z.ZodString>;
1841
+ background: z.ZodOptional<z.ZodString>;
1842
+ weight: z.ZodOptional<z.ZodNumber>;
1843
+ }, z.core.$strict>>;
1844
+ }, z.core.$strict>>;
1845
+ metalFrame: z.ZodOptional<z.ZodObject<{
1846
+ show: z.ZodOptional<z.ZodBoolean>;
1847
+ color: z.ZodOptional<z.ZodString>;
1848
+ pattern: z.ZodOptional<z.ZodObject<{
1849
+ id: z.ZodOptional<z.ZodString>;
1850
+ scale: z.ZodOptional<z.ZodNumber>;
1851
+ color: z.ZodOptional<z.ZodString>;
1852
+ background: z.ZodOptional<z.ZodString>;
1853
+ weight: z.ZodOptional<z.ZodNumber>;
1854
+ }, z.core.$strict>>;
1855
+ }, z.core.$strict>>;
1856
+ woodFrame: z.ZodOptional<z.ZodObject<{
1857
+ show: z.ZodOptional<z.ZodBoolean>;
1858
+ color: z.ZodOptional<z.ZodString>;
1859
+ pattern: z.ZodOptional<z.ZodObject<{
1860
+ id: z.ZodOptional<z.ZodString>;
1861
+ scale: z.ZodOptional<z.ZodNumber>;
1862
+ color: z.ZodOptional<z.ZodString>;
1863
+ background: z.ZodOptional<z.ZodString>;
1864
+ weight: z.ZodOptional<z.ZodNumber>;
1865
+ }, z.core.$strict>>;
1866
+ }, z.core.$strict>>;
1867
+ plaster: z.ZodOptional<z.ZodObject<{
1868
+ show: z.ZodOptional<z.ZodBoolean>;
1869
+ color: z.ZodOptional<z.ZodString>;
1870
+ pattern: z.ZodOptional<z.ZodObject<{
1871
+ id: z.ZodOptional<z.ZodString>;
1872
+ scale: z.ZodOptional<z.ZodNumber>;
1873
+ color: z.ZodOptional<z.ZodString>;
1874
+ background: z.ZodOptional<z.ZodString>;
1875
+ weight: z.ZodOptional<z.ZodNumber>;
1876
+ }, z.core.$strict>>;
1877
+ }, z.core.$strict>>;
1878
+ paint: z.ZodOptional<z.ZodObject<{
1879
+ show: z.ZodOptional<z.ZodBoolean>;
1880
+ color: z.ZodOptional<z.ZodString>;
1881
+ pattern: z.ZodOptional<z.ZodObject<{
1882
+ id: z.ZodOptional<z.ZodString>;
1883
+ scale: z.ZodOptional<z.ZodNumber>;
1884
+ color: z.ZodOptional<z.ZodString>;
1885
+ background: z.ZodOptional<z.ZodString>;
1886
+ weight: z.ZodOptional<z.ZodNumber>;
1887
+ }, z.core.$strict>>;
1888
+ }, z.core.$strict>>;
1889
+ insulation: z.ZodOptional<z.ZodObject<{
1890
+ show: z.ZodOptional<z.ZodBoolean>;
1891
+ color: z.ZodOptional<z.ZodString>;
1892
+ pattern: z.ZodOptional<z.ZodObject<{
1893
+ id: z.ZodOptional<z.ZodString>;
1894
+ scale: z.ZodOptional<z.ZodNumber>;
1895
+ color: z.ZodOptional<z.ZodString>;
1896
+ background: z.ZodOptional<z.ZodString>;
1897
+ weight: z.ZodOptional<z.ZodNumber>;
1898
+ }, z.core.$strict>>;
1899
+ }, z.core.$strict>>;
1900
+ }, z.core.$strict>>;
1901
+ components: z.ZodOptional<z.ZodObject<{
1902
+ frame: z.ZodOptional<z.ZodBoolean>;
1903
+ leaf: z.ZodOptional<z.ZodBoolean>;
1904
+ jambs: z.ZodOptional<z.ZodBoolean>;
1905
+ glazing: z.ZodOptional<z.ZodBoolean>;
1906
+ track: z.ZodOptional<z.ZodBoolean>;
1907
+ operation: z.ZodOptional<z.ZodBoolean>;
1908
+ operationStyle: z.ZodOptional<z.ZodEnum<{
1909
+ center: "center";
1910
+ hidden: "hidden";
1911
+ solid: "solid";
1912
+ dashed: "dashed";
1913
+ dashdot: "dashdot";
1914
+ phantom: "phantom";
1915
+ propertyLine: "propertyLine";
1916
+ }>>;
1917
+ }, z.core.$strict>>;
1918
+ tag: z.ZodOptional<z.ZodObject<{
1919
+ show: z.ZodOptional<z.ZodBoolean>;
1920
+ fontFamily: z.ZodOptional<z.ZodString>;
1921
+ fontStyle: z.ZodOptional<z.ZodEnum<{
1922
+ italic: "italic";
1923
+ 400: "400";
1924
+ 500: "500";
1925
+ 700: "700";
1926
+ }>>;
1927
+ fontSize: z.ZodOptional<z.ZodEnum<{
1928
+ "12px": "12px";
1929
+ "16px": "16px";
1930
+ "24px": "24px";
1931
+ }>>;
1932
+ frame: z.ZodOptional<z.ZodEnum<{
1933
+ pill: "pill";
1934
+ hexagon: "hexagon";
1935
+ }>>;
1936
+ color: z.ZodOptional<z.ZodString>;
1937
+ opacity: z.ZodOptional<z.ZodNumber>;
1938
+ outline: z.ZodOptional<z.ZodNumber>;
1939
+ }, z.core.$strict>>;
1940
+ text: z.ZodOptional<z.ZodObject<{
1941
+ show: z.ZodOptional<z.ZodBoolean>;
1942
+ labels: z.ZodOptional<z.ZodBoolean>;
1943
+ areas: z.ZodOptional<z.ZodBoolean>;
1944
+ department: z.ZodOptional<z.ZodBoolean>;
1945
+ fontFamily: z.ZodOptional<z.ZodString>;
1946
+ color: z.ZodOptional<z.ZodString>;
1947
+ fontSize: z.ZodOptional<z.ZodEnum<{
1948
+ "12px": "12px";
1949
+ "16px": "16px";
1950
+ "24px": "24px";
1951
+ }>>;
1952
+ label: z.ZodOptional<z.ZodObject<{
1953
+ fontStyle: z.ZodOptional<z.ZodEnum<{
1954
+ italic: "italic";
1955
+ 400: "400";
1956
+ 500: "500";
1957
+ 700: "700";
1958
+ }>>;
1959
+ fontSize: z.ZodOptional<z.ZodEnum<{
1960
+ 5: "5";
1961
+ "12px": "12px";
1962
+ "16px": "16px";
1963
+ "24px": "24px";
1964
+ 2.5: "2.5";
1965
+ 3.5: "3.5";
1966
+ }>>;
1967
+ color: z.ZodOptional<z.ZodString>;
1968
+ }, z.core.$strict>>;
1969
+ metrics: z.ZodOptional<z.ZodObject<{
1970
+ fontStyle: z.ZodOptional<z.ZodEnum<{
1971
+ italic: "italic";
1972
+ 400: "400";
1973
+ 500: "500";
1974
+ 700: "700";
1975
+ }>>;
1976
+ fontSize: z.ZodOptional<z.ZodEnum<{
1977
+ 5: "5";
1978
+ "12px": "12px";
1979
+ "16px": "16px";
1980
+ "24px": "24px";
1981
+ 2.5: "2.5";
1982
+ 3.5: "3.5";
1983
+ }>>;
1984
+ color: z.ZodOptional<z.ZodString>;
1985
+ }, z.core.$strict>>;
1986
+ title: z.ZodOptional<z.ZodObject<{
1987
+ fontStyle: z.ZodOptional<z.ZodEnum<{
1988
+ italic: "italic";
1989
+ 400: "400";
1990
+ 500: "500";
1991
+ 700: "700";
1992
+ }>>;
1993
+ fontSize: z.ZodOptional<z.ZodEnum<{
1994
+ 5: "5";
1995
+ "12px": "12px";
1996
+ "16px": "16px";
1997
+ "24px": "24px";
1998
+ 2.5: "2.5";
1999
+ 3.5: "3.5";
2000
+ }>>;
2001
+ color: z.ZodOptional<z.ZodString>;
2002
+ }, z.core.$strict>>;
2003
+ scale: z.ZodOptional<z.ZodObject<{
2004
+ fontStyle: z.ZodOptional<z.ZodEnum<{
2005
+ italic: "italic";
2006
+ 400: "400";
2007
+ 500: "500";
2008
+ 700: "700";
2009
+ }>>;
2010
+ fontSize: z.ZodOptional<z.ZodEnum<{
2011
+ 5: "5";
2012
+ "12px": "12px";
2013
+ "16px": "16px";
2014
+ "24px": "24px";
2015
+ 2.5: "2.5";
2016
+ 3.5: "3.5";
2017
+ }>>;
2018
+ color: z.ZodOptional<z.ZodString>;
2019
+ }, z.core.$strict>>;
2020
+ }, z.core.$strict>>;
2021
+ detail: z.ZodOptional<z.ZodObject<{
2022
+ show: z.ZodOptional<z.ZodBoolean>;
2023
+ weight: z.ZodOptional<z.ZodNumber>;
2024
+ }, z.core.$strict>>;
2025
+ belowCut: z.ZodOptional<z.ZodObject<{
2026
+ show: z.ZodOptional<z.ZodBoolean>;
2027
+ lineStyle: z.ZodOptional<z.ZodEnum<{
2028
+ center: "center";
2029
+ hidden: "hidden";
2030
+ solid: "solid";
2031
+ dashed: "dashed";
2032
+ dashdot: "dashdot";
2033
+ phantom: "phantom";
2034
+ propertyLine: "propertyLine";
2035
+ }>>;
2036
+ weight: z.ZodOptional<z.ZodNumber>;
2037
+ }, z.core.$strict>>;
2038
+ aboveCut: z.ZodOptional<z.ZodObject<{
2039
+ show: z.ZodOptional<z.ZodBoolean>;
2040
+ lineStyle: z.ZodOptional<z.ZodEnum<{
2041
+ center: "center";
2042
+ hidden: "hidden";
2043
+ solid: "solid";
2044
+ dashed: "dashed";
2045
+ dashdot: "dashdot";
2046
+ phantom: "phantom";
2047
+ propertyLine: "propertyLine";
2048
+ }>>;
2049
+ weight: z.ZodOptional<z.ZodNumber>;
2050
+ }, z.core.$strict>>;
2051
+ underlay: z.ZodOptional<z.ZodObject<{
2052
+ show: z.ZodOptional<z.ZodBoolean>;
2053
+ lineStyle: z.ZodOptional<z.ZodEnum<{
2054
+ center: "center";
2055
+ hidden: "hidden";
2056
+ solid: "solid";
2057
+ dashed: "dashed";
2058
+ dashdot: "dashdot";
2059
+ phantom: "phantom";
2060
+ propertyLine: "propertyLine";
2061
+ }>>;
2062
+ weight: z.ZodOptional<z.ZodNumber>;
2063
+ }, z.core.$strict>>;
2064
+ walkLine: z.ZodOptional<z.ZodObject<{
2065
+ show: z.ZodOptional<z.ZodBoolean>;
2066
+ lineStyle: z.ZodOptional<z.ZodEnum<{
2067
+ center: "center";
2068
+ hidden: "hidden";
2069
+ solid: "solid";
2070
+ dashed: "dashed";
2071
+ dashdot: "dashdot";
2072
+ phantom: "phantom";
2073
+ propertyLine: "propertyLine";
2074
+ }>>;
2075
+ weight: z.ZodOptional<z.ZodNumber>;
2076
+ }, z.core.$strict>>;
2077
+ breakLine: z.ZodOptional<z.ZodObject<{
2078
+ show: z.ZodOptional<z.ZodBoolean>;
2079
+ lineStyle: z.ZodOptional<z.ZodEnum<{
2080
+ center: "center";
2081
+ hidden: "hidden";
2082
+ solid: "solid";
2083
+ dashed: "dashed";
2084
+ dashdot: "dashdot";
2085
+ phantom: "phantom";
2086
+ propertyLine: "propertyLine";
2087
+ }>>;
2088
+ weight: z.ZodOptional<z.ZodNumber>;
2089
+ }, z.core.$strict>>;
2090
+ overlay: z.ZodOptional<z.ZodObject<{
2091
+ show: z.ZodOptional<z.ZodBoolean>;
2092
+ lineStyle: z.ZodOptional<z.ZodEnum<{
2093
+ center: "center";
2094
+ hidden: "hidden";
2095
+ solid: "solid";
2096
+ dashed: "dashed";
2097
+ dashdot: "dashdot";
2098
+ phantom: "phantom";
2099
+ propertyLine: "propertyLine";
2100
+ }>>;
2101
+ weight: z.ZodOptional<z.ZodNumber>;
2102
+ }, z.core.$strict>>;
2103
+ title: z.ZodOptional<z.ZodObject<{
2104
+ show: z.ZodOptional<z.ZodBoolean>;
2105
+ text: z.ZodOptional<z.ZodString>;
2106
+ }, z.core.$strict>>;
2107
+ proposal: z.ZodOptional<z.ZodObject<{
2108
+ show: z.ZodOptional<z.ZodBoolean>;
2109
+ text: z.ZodOptional<z.ZodString>;
2110
+ }, z.core.$strict>>;
2111
+ building: z.ZodOptional<z.ZodObject<{
2112
+ show: z.ZodOptional<z.ZodBoolean>;
2113
+ text: z.ZodOptional<z.ZodString>;
2114
+ }, z.core.$strict>>;
2115
+ scale: z.ZodOptional<z.ZodObject<{
2116
+ show: z.ZodOptional<z.ZodBoolean>;
2117
+ format: z.ZodOptional<z.ZodEnum<{
2118
+ text: "text";
2119
+ automatic: "automatic";
2120
+ ratio: "ratio";
2121
+ }>>;
2122
+ }, z.core.$strict>>;
2123
+ scaleBar: z.ZodOptional<z.ZodObject<{
2124
+ show: z.ZodOptional<z.ZodBoolean>;
2125
+ format: z.ZodOptional<z.ZodEnum<{
2126
+ divided: "divided";
2127
+ simple: "simple";
2128
+ }>>;
2129
+ length: z.ZodOptional<z.ZodEnum<{
2130
+ 1: "1";
2131
+ 2: "2";
2132
+ 5: "5";
2133
+ 10: "10";
2134
+ }>>;
2135
+ }, z.core.$strict>>;
2136
+ extension: z.ZodOptional<z.ZodObject<{
2137
+ show: z.ZodOptional<z.ZodBoolean>;
2138
+ length: z.ZodOptional<z.ZodEnum<{
2139
+ underTitle: "underTitle";
2140
+ fullWidth: "fullWidth";
2141
+ }>>;
2142
+ weight: z.ZodOptional<z.ZodNumber>;
2143
+ color: z.ZodOptional<z.ZodString>;
2144
+ }, z.core.$strict>>;
2145
+ position: z.ZodOptional<z.ZodEnum<{
2146
+ topLeft: "topLeft";
2147
+ bottomLeft: "bottomLeft";
2148
+ bottomCentre: "bottomCentre";
2149
+ }>>;
2150
+ }, z.core.$strict>, z.ZodObject<{
2151
+ disable: z.ZodOptional<z.ZodBoolean>;
2152
+ opacity: z.ZodOptional<z.ZodNumber>;
2153
+ mapOpacity: z.ZodOptional<z.ZodNumber>;
2154
+ buildingOpacity: z.ZodOptional<z.ZodNumber>;
2155
+ hide: z.ZodOptional<z.ZodBoolean>;
2156
+ lineStyle: z.ZodOptional<z.ZodEnum<{
2157
+ center: "center";
2158
+ hidden: "hidden";
2159
+ solid: "solid";
2160
+ dashed: "dashed";
2161
+ dashdot: "dashdot";
2162
+ phantom: "phantom";
2163
+ propertyLine: "propertyLine";
2164
+ }>>;
2165
+ lineColor: z.ZodOptional<z.ZodString>;
2166
+ dashLength: z.ZodOptional<z.ZodNumber>;
2167
+ lineWidth: z.ZodOptional<z.ZodNumber>;
2168
+ cutWidth: z.ZodOptional<z.ZodNumber>;
2169
+ projectionWidth: z.ZodOptional<z.ZodNumber>;
2170
+ treeLineWidth: z.ZodOptional<z.ZodNumber>;
2171
+ parkingLineWidth: z.ZodOptional<z.ZodNumber>;
2172
+ colorMode: z.ZodOptional<z.ZodString>;
2173
+ mapHide: z.ZodOptional<z.ZodBoolean>;
2174
+ buildingHide: z.ZodOptional<z.ZodBoolean>;
2175
+ noBuilding: z.ZodOptional<z.ZodBoolean>;
2176
+ viewStyle: z.ZodOptional<z.ZodEnum<{
2177
+ NONE: "NONE";
2178
+ FILLET: "FILLET";
2179
+ BUBBLE: "BUBBLE";
2180
+ }>>;
2181
+ radius: z.ZodOptional<z.ZodNumber>;
2182
+ inset: z.ZodOptional<z.ZodNumber>;
2183
+ markerKind: z.ZodOptional<z.ZodEnum<{
2184
+ architecturalTick: "architecturalTick";
2185
+ openArrow: "openArrow";
2186
+ closedArrow: "closedArrow";
2187
+ }>>;
2188
+ markerSize: z.ZodOptional<z.ZodNumber>;
2189
+ extensionLineVisible: z.ZodOptional<z.ZodBoolean>;
2190
+ extensionLineStyle: z.ZodOptional<z.ZodEnum<{
2191
+ center: "center";
2192
+ hidden: "hidden";
2193
+ solid: "solid";
2194
+ dashed: "dashed";
2195
+ dashdot: "dashdot";
2196
+ phantom: "phantom";
2197
+ propertyLine: "propertyLine";
2198
+ }>>;
2199
+ extensionGap: z.ZodOptional<z.ZodNumber>;
2200
+ extensionOvershoot: z.ZodOptional<z.ZodNumber>;
2201
+ textColor: z.ZodOptional<z.ZodString>;
2202
+ textGap: z.ZodOptional<z.ZodNumber>;
2203
+ textPlacement: z.ZodOptional<z.ZodLiteral<"above">>;
2204
+ textMask: z.ZodOptional<z.ZodBoolean>;
2205
+ textMaskColor: z.ZodOptional<z.ZodString>;
2206
+ textMaskPadding: z.ZodOptional<z.ZodNumber>;
2207
+ }, z.core.$strict>]>;
2208
+ controls: z.ZodArray<z.ZodObject<{
2209
+ key: z.ZodString;
2210
+ kind: z.ZodString;
2211
+ options: z.ZodOptional<z.ZodArray<z.ZodObject<{
2212
+ label: z.ZodString;
2213
+ value: z.ZodString;
2214
+ }, z.core.$strip>>>;
2215
+ range: z.ZodOptional<z.ZodObject<{
2216
+ min: z.ZodNumber;
2217
+ max: z.ZodNumber;
2218
+ step: z.ZodNumber;
2219
+ }, z.core.$strip>>;
2220
+ }, z.core.$strip>>;
2221
+ }, z.core.$strip>;
2222
+ export type PluginDrawingStyleCategory = z.infer<typeof PluginDrawingStyleCategory>;
2223
+ /** Effective style categories and their native editing capabilities. */
2224
+ export declare const PluginDrawingStyles: z.ZodObject<{
2225
+ categories: z.ZodArray<z.ZodObject<{
2226
+ category: z.ZodString;
2227
+ absent: z.ZodBoolean;
2228
+ settings: z.ZodUnion<readonly [z.ZodObject<{
2229
+ hide: z.ZodOptional<z.ZodBoolean>;
2230
+ lineStyle: z.ZodOptional<z.ZodEnum<{
2231
+ center: "center";
2232
+ hidden: "hidden";
2233
+ solid: "solid";
2234
+ dashed: "dashed";
2235
+ dashdot: "dashdot";
2236
+ phantom: "phantom";
2237
+ propertyLine: "propertyLine";
2238
+ }>>;
2239
+ lineColor: z.ZodOptional<z.ZodString>;
2240
+ cutWidth: z.ZodOptional<z.ZodNumber>;
2241
+ projectionWidth: z.ZodOptional<z.ZodNumber>;
2242
+ weight: z.ZodOptional<z.ZodNumber>;
2243
+ fillMode: z.ZodOptional<z.ZodString>;
2244
+ fillColor: z.ZodOptional<z.ZodString>;
2245
+ opacity: z.ZodOptional<z.ZodNumber>;
2246
+ pattern: z.ZodOptional<z.ZodObject<{
2247
+ id: z.ZodOptional<z.ZodString>;
2248
+ scale: z.ZodOptional<z.ZodNumber>;
2249
+ color: z.ZodOptional<z.ZodString>;
2250
+ background: z.ZodOptional<z.ZodString>;
2251
+ weight: z.ZodOptional<z.ZodNumber>;
2252
+ }, z.core.$strict>>;
2253
+ mask: z.ZodOptional<z.ZodBoolean>;
2254
+ materials: z.ZodOptional<z.ZodObject<{
2255
+ brick: z.ZodOptional<z.ZodObject<{
2256
+ show: z.ZodOptional<z.ZodBoolean>;
2257
+ color: z.ZodOptional<z.ZodString>;
2258
+ pattern: z.ZodOptional<z.ZodObject<{
2259
+ id: z.ZodOptional<z.ZodString>;
2260
+ scale: z.ZodOptional<z.ZodNumber>;
2261
+ color: z.ZodOptional<z.ZodString>;
2262
+ background: z.ZodOptional<z.ZodString>;
2263
+ weight: z.ZodOptional<z.ZodNumber>;
2264
+ }, z.core.$strict>>;
2265
+ }, z.core.$strict>>;
2266
+ glass: z.ZodOptional<z.ZodObject<{
2267
+ show: z.ZodOptional<z.ZodBoolean>;
2268
+ color: z.ZodOptional<z.ZodString>;
2269
+ pattern: z.ZodOptional<z.ZodObject<{
2270
+ id: z.ZodOptional<z.ZodString>;
2271
+ scale: z.ZodOptional<z.ZodNumber>;
2272
+ color: z.ZodOptional<z.ZodString>;
2273
+ background: z.ZodOptional<z.ZodString>;
2274
+ weight: z.ZodOptional<z.ZodNumber>;
2275
+ }, z.core.$strict>>;
2276
+ }, z.core.$strict>>;
2277
+ concrete: z.ZodOptional<z.ZodObject<{
2278
+ show: z.ZodOptional<z.ZodBoolean>;
2279
+ color: z.ZodOptional<z.ZodString>;
2280
+ pattern: z.ZodOptional<z.ZodObject<{
2281
+ id: z.ZodOptional<z.ZodString>;
2282
+ scale: z.ZodOptional<z.ZodNumber>;
2283
+ color: z.ZodOptional<z.ZodString>;
2284
+ background: z.ZodOptional<z.ZodString>;
2285
+ weight: z.ZodOptional<z.ZodNumber>;
2286
+ }, z.core.$strict>>;
2287
+ }, z.core.$strict>>;
2288
+ metalFrame: z.ZodOptional<z.ZodObject<{
2289
+ show: z.ZodOptional<z.ZodBoolean>;
2290
+ color: z.ZodOptional<z.ZodString>;
2291
+ pattern: z.ZodOptional<z.ZodObject<{
2292
+ id: z.ZodOptional<z.ZodString>;
2293
+ scale: z.ZodOptional<z.ZodNumber>;
2294
+ color: z.ZodOptional<z.ZodString>;
2295
+ background: z.ZodOptional<z.ZodString>;
2296
+ weight: z.ZodOptional<z.ZodNumber>;
2297
+ }, z.core.$strict>>;
2298
+ }, z.core.$strict>>;
2299
+ woodFrame: z.ZodOptional<z.ZodObject<{
2300
+ show: z.ZodOptional<z.ZodBoolean>;
2301
+ color: z.ZodOptional<z.ZodString>;
2302
+ pattern: z.ZodOptional<z.ZodObject<{
2303
+ id: z.ZodOptional<z.ZodString>;
2304
+ scale: z.ZodOptional<z.ZodNumber>;
2305
+ color: z.ZodOptional<z.ZodString>;
2306
+ background: z.ZodOptional<z.ZodString>;
2307
+ weight: z.ZodOptional<z.ZodNumber>;
2308
+ }, z.core.$strict>>;
2309
+ }, z.core.$strict>>;
2310
+ plaster: z.ZodOptional<z.ZodObject<{
2311
+ show: z.ZodOptional<z.ZodBoolean>;
2312
+ color: z.ZodOptional<z.ZodString>;
2313
+ pattern: z.ZodOptional<z.ZodObject<{
2314
+ id: z.ZodOptional<z.ZodString>;
2315
+ scale: z.ZodOptional<z.ZodNumber>;
2316
+ color: z.ZodOptional<z.ZodString>;
2317
+ background: z.ZodOptional<z.ZodString>;
2318
+ weight: z.ZodOptional<z.ZodNumber>;
2319
+ }, z.core.$strict>>;
2320
+ }, z.core.$strict>>;
2321
+ paint: z.ZodOptional<z.ZodObject<{
2322
+ show: z.ZodOptional<z.ZodBoolean>;
2323
+ color: z.ZodOptional<z.ZodString>;
2324
+ pattern: z.ZodOptional<z.ZodObject<{
2325
+ id: z.ZodOptional<z.ZodString>;
2326
+ scale: z.ZodOptional<z.ZodNumber>;
2327
+ color: z.ZodOptional<z.ZodString>;
2328
+ background: z.ZodOptional<z.ZodString>;
2329
+ weight: z.ZodOptional<z.ZodNumber>;
2330
+ }, z.core.$strict>>;
2331
+ }, z.core.$strict>>;
2332
+ insulation: z.ZodOptional<z.ZodObject<{
2333
+ show: z.ZodOptional<z.ZodBoolean>;
2334
+ color: z.ZodOptional<z.ZodString>;
2335
+ pattern: z.ZodOptional<z.ZodObject<{
2336
+ id: z.ZodOptional<z.ZodString>;
2337
+ scale: z.ZodOptional<z.ZodNumber>;
2338
+ color: z.ZodOptional<z.ZodString>;
2339
+ background: z.ZodOptional<z.ZodString>;
2340
+ weight: z.ZodOptional<z.ZodNumber>;
2341
+ }, z.core.$strict>>;
2342
+ }, z.core.$strict>>;
2343
+ }, z.core.$strict>>;
2344
+ components: z.ZodOptional<z.ZodObject<{
2345
+ frame: z.ZodOptional<z.ZodBoolean>;
2346
+ leaf: z.ZodOptional<z.ZodBoolean>;
2347
+ jambs: z.ZodOptional<z.ZodBoolean>;
2348
+ glazing: z.ZodOptional<z.ZodBoolean>;
2349
+ track: z.ZodOptional<z.ZodBoolean>;
2350
+ operation: z.ZodOptional<z.ZodBoolean>;
2351
+ operationStyle: z.ZodOptional<z.ZodEnum<{
2352
+ center: "center";
2353
+ hidden: "hidden";
2354
+ solid: "solid";
2355
+ dashed: "dashed";
2356
+ dashdot: "dashdot";
2357
+ phantom: "phantom";
2358
+ propertyLine: "propertyLine";
2359
+ }>>;
2360
+ }, z.core.$strict>>;
2361
+ tag: z.ZodOptional<z.ZodObject<{
2362
+ show: z.ZodOptional<z.ZodBoolean>;
2363
+ fontFamily: z.ZodOptional<z.ZodString>;
2364
+ fontStyle: z.ZodOptional<z.ZodEnum<{
2365
+ italic: "italic";
2366
+ 400: "400";
2367
+ 500: "500";
2368
+ 700: "700";
2369
+ }>>;
2370
+ fontSize: z.ZodOptional<z.ZodEnum<{
2371
+ "12px": "12px";
2372
+ "16px": "16px";
2373
+ "24px": "24px";
2374
+ }>>;
2375
+ frame: z.ZodOptional<z.ZodEnum<{
2376
+ pill: "pill";
2377
+ hexagon: "hexagon";
2378
+ }>>;
2379
+ color: z.ZodOptional<z.ZodString>;
2380
+ opacity: z.ZodOptional<z.ZodNumber>;
2381
+ outline: z.ZodOptional<z.ZodNumber>;
2382
+ }, z.core.$strict>>;
2383
+ text: z.ZodOptional<z.ZodObject<{
2384
+ show: z.ZodOptional<z.ZodBoolean>;
2385
+ labels: z.ZodOptional<z.ZodBoolean>;
2386
+ areas: z.ZodOptional<z.ZodBoolean>;
2387
+ department: z.ZodOptional<z.ZodBoolean>;
2388
+ fontFamily: z.ZodOptional<z.ZodString>;
2389
+ color: z.ZodOptional<z.ZodString>;
2390
+ fontSize: z.ZodOptional<z.ZodEnum<{
2391
+ "12px": "12px";
2392
+ "16px": "16px";
2393
+ "24px": "24px";
2394
+ }>>;
2395
+ label: z.ZodOptional<z.ZodObject<{
2396
+ fontStyle: z.ZodOptional<z.ZodEnum<{
2397
+ italic: "italic";
2398
+ 400: "400";
2399
+ 500: "500";
2400
+ 700: "700";
2401
+ }>>;
2402
+ fontSize: z.ZodOptional<z.ZodEnum<{
2403
+ 5: "5";
2404
+ "12px": "12px";
2405
+ "16px": "16px";
2406
+ "24px": "24px";
2407
+ 2.5: "2.5";
2408
+ 3.5: "3.5";
2409
+ }>>;
2410
+ color: z.ZodOptional<z.ZodString>;
2411
+ }, z.core.$strict>>;
2412
+ metrics: z.ZodOptional<z.ZodObject<{
2413
+ fontStyle: z.ZodOptional<z.ZodEnum<{
2414
+ italic: "italic";
2415
+ 400: "400";
2416
+ 500: "500";
2417
+ 700: "700";
2418
+ }>>;
2419
+ fontSize: z.ZodOptional<z.ZodEnum<{
2420
+ 5: "5";
2421
+ "12px": "12px";
2422
+ "16px": "16px";
2423
+ "24px": "24px";
2424
+ 2.5: "2.5";
2425
+ 3.5: "3.5";
2426
+ }>>;
2427
+ color: z.ZodOptional<z.ZodString>;
2428
+ }, z.core.$strict>>;
2429
+ title: z.ZodOptional<z.ZodObject<{
2430
+ fontStyle: z.ZodOptional<z.ZodEnum<{
2431
+ italic: "italic";
2432
+ 400: "400";
2433
+ 500: "500";
2434
+ 700: "700";
2435
+ }>>;
2436
+ fontSize: z.ZodOptional<z.ZodEnum<{
2437
+ 5: "5";
2438
+ "12px": "12px";
2439
+ "16px": "16px";
2440
+ "24px": "24px";
2441
+ 2.5: "2.5";
2442
+ 3.5: "3.5";
2443
+ }>>;
2444
+ color: z.ZodOptional<z.ZodString>;
2445
+ }, z.core.$strict>>;
2446
+ scale: z.ZodOptional<z.ZodObject<{
2447
+ fontStyle: z.ZodOptional<z.ZodEnum<{
2448
+ italic: "italic";
2449
+ 400: "400";
2450
+ 500: "500";
2451
+ 700: "700";
2452
+ }>>;
2453
+ fontSize: z.ZodOptional<z.ZodEnum<{
2454
+ 5: "5";
2455
+ "12px": "12px";
2456
+ "16px": "16px";
2457
+ "24px": "24px";
2458
+ 2.5: "2.5";
2459
+ 3.5: "3.5";
2460
+ }>>;
2461
+ color: z.ZodOptional<z.ZodString>;
2462
+ }, z.core.$strict>>;
2463
+ }, z.core.$strict>>;
2464
+ detail: z.ZodOptional<z.ZodObject<{
2465
+ show: z.ZodOptional<z.ZodBoolean>;
2466
+ weight: z.ZodOptional<z.ZodNumber>;
2467
+ }, z.core.$strict>>;
2468
+ belowCut: z.ZodOptional<z.ZodObject<{
2469
+ show: z.ZodOptional<z.ZodBoolean>;
2470
+ lineStyle: z.ZodOptional<z.ZodEnum<{
2471
+ center: "center";
2472
+ hidden: "hidden";
2473
+ solid: "solid";
2474
+ dashed: "dashed";
2475
+ dashdot: "dashdot";
2476
+ phantom: "phantom";
2477
+ propertyLine: "propertyLine";
2478
+ }>>;
2479
+ weight: z.ZodOptional<z.ZodNumber>;
2480
+ }, z.core.$strict>>;
2481
+ aboveCut: z.ZodOptional<z.ZodObject<{
2482
+ show: z.ZodOptional<z.ZodBoolean>;
2483
+ lineStyle: z.ZodOptional<z.ZodEnum<{
2484
+ center: "center";
2485
+ hidden: "hidden";
2486
+ solid: "solid";
2487
+ dashed: "dashed";
2488
+ dashdot: "dashdot";
2489
+ phantom: "phantom";
2490
+ propertyLine: "propertyLine";
2491
+ }>>;
2492
+ weight: z.ZodOptional<z.ZodNumber>;
2493
+ }, z.core.$strict>>;
2494
+ underlay: z.ZodOptional<z.ZodObject<{
2495
+ show: z.ZodOptional<z.ZodBoolean>;
2496
+ lineStyle: z.ZodOptional<z.ZodEnum<{
2497
+ center: "center";
2498
+ hidden: "hidden";
2499
+ solid: "solid";
2500
+ dashed: "dashed";
2501
+ dashdot: "dashdot";
2502
+ phantom: "phantom";
2503
+ propertyLine: "propertyLine";
2504
+ }>>;
2505
+ weight: z.ZodOptional<z.ZodNumber>;
2506
+ }, z.core.$strict>>;
2507
+ walkLine: z.ZodOptional<z.ZodObject<{
2508
+ show: z.ZodOptional<z.ZodBoolean>;
2509
+ lineStyle: z.ZodOptional<z.ZodEnum<{
2510
+ center: "center";
2511
+ hidden: "hidden";
2512
+ solid: "solid";
2513
+ dashed: "dashed";
2514
+ dashdot: "dashdot";
2515
+ phantom: "phantom";
2516
+ propertyLine: "propertyLine";
2517
+ }>>;
2518
+ weight: z.ZodOptional<z.ZodNumber>;
2519
+ }, z.core.$strict>>;
2520
+ breakLine: z.ZodOptional<z.ZodObject<{
2521
+ show: z.ZodOptional<z.ZodBoolean>;
2522
+ lineStyle: z.ZodOptional<z.ZodEnum<{
2523
+ center: "center";
2524
+ hidden: "hidden";
2525
+ solid: "solid";
2526
+ dashed: "dashed";
2527
+ dashdot: "dashdot";
2528
+ phantom: "phantom";
2529
+ propertyLine: "propertyLine";
2530
+ }>>;
2531
+ weight: z.ZodOptional<z.ZodNumber>;
2532
+ }, z.core.$strict>>;
2533
+ overlay: z.ZodOptional<z.ZodObject<{
2534
+ show: z.ZodOptional<z.ZodBoolean>;
2535
+ lineStyle: z.ZodOptional<z.ZodEnum<{
2536
+ center: "center";
2537
+ hidden: "hidden";
2538
+ solid: "solid";
2539
+ dashed: "dashed";
2540
+ dashdot: "dashdot";
2541
+ phantom: "phantom";
2542
+ propertyLine: "propertyLine";
2543
+ }>>;
2544
+ weight: z.ZodOptional<z.ZodNumber>;
2545
+ }, z.core.$strict>>;
2546
+ title: z.ZodOptional<z.ZodObject<{
2547
+ show: z.ZodOptional<z.ZodBoolean>;
2548
+ text: z.ZodOptional<z.ZodString>;
2549
+ }, z.core.$strict>>;
2550
+ proposal: z.ZodOptional<z.ZodObject<{
2551
+ show: z.ZodOptional<z.ZodBoolean>;
2552
+ text: z.ZodOptional<z.ZodString>;
2553
+ }, z.core.$strict>>;
2554
+ building: z.ZodOptional<z.ZodObject<{
2555
+ show: z.ZodOptional<z.ZodBoolean>;
2556
+ text: z.ZodOptional<z.ZodString>;
2557
+ }, z.core.$strict>>;
2558
+ scale: z.ZodOptional<z.ZodObject<{
2559
+ show: z.ZodOptional<z.ZodBoolean>;
2560
+ format: z.ZodOptional<z.ZodEnum<{
2561
+ text: "text";
2562
+ automatic: "automatic";
2563
+ ratio: "ratio";
2564
+ }>>;
2565
+ }, z.core.$strict>>;
2566
+ scaleBar: z.ZodOptional<z.ZodObject<{
2567
+ show: z.ZodOptional<z.ZodBoolean>;
2568
+ format: z.ZodOptional<z.ZodEnum<{
2569
+ divided: "divided";
2570
+ simple: "simple";
2571
+ }>>;
2572
+ length: z.ZodOptional<z.ZodEnum<{
2573
+ 1: "1";
2574
+ 2: "2";
2575
+ 5: "5";
2576
+ 10: "10";
2577
+ }>>;
2578
+ }, z.core.$strict>>;
2579
+ extension: z.ZodOptional<z.ZodObject<{
2580
+ show: z.ZodOptional<z.ZodBoolean>;
2581
+ length: z.ZodOptional<z.ZodEnum<{
2582
+ underTitle: "underTitle";
2583
+ fullWidth: "fullWidth";
2584
+ }>>;
2585
+ weight: z.ZodOptional<z.ZodNumber>;
2586
+ color: z.ZodOptional<z.ZodString>;
2587
+ }, z.core.$strict>>;
2588
+ position: z.ZodOptional<z.ZodEnum<{
2589
+ topLeft: "topLeft";
2590
+ bottomLeft: "bottomLeft";
2591
+ bottomCentre: "bottomCentre";
2592
+ }>>;
2593
+ }, z.core.$strict>, z.ZodObject<{
2594
+ disable: z.ZodOptional<z.ZodBoolean>;
2595
+ opacity: z.ZodOptional<z.ZodNumber>;
2596
+ mapOpacity: z.ZodOptional<z.ZodNumber>;
2597
+ buildingOpacity: z.ZodOptional<z.ZodNumber>;
2598
+ hide: z.ZodOptional<z.ZodBoolean>;
2599
+ lineStyle: z.ZodOptional<z.ZodEnum<{
2600
+ center: "center";
2601
+ hidden: "hidden";
2602
+ solid: "solid";
2603
+ dashed: "dashed";
2604
+ dashdot: "dashdot";
2605
+ phantom: "phantom";
2606
+ propertyLine: "propertyLine";
2607
+ }>>;
2608
+ lineColor: z.ZodOptional<z.ZodString>;
2609
+ dashLength: z.ZodOptional<z.ZodNumber>;
2610
+ lineWidth: z.ZodOptional<z.ZodNumber>;
2611
+ cutWidth: z.ZodOptional<z.ZodNumber>;
2612
+ projectionWidth: z.ZodOptional<z.ZodNumber>;
2613
+ treeLineWidth: z.ZodOptional<z.ZodNumber>;
2614
+ parkingLineWidth: z.ZodOptional<z.ZodNumber>;
2615
+ colorMode: z.ZodOptional<z.ZodString>;
2616
+ mapHide: z.ZodOptional<z.ZodBoolean>;
2617
+ buildingHide: z.ZodOptional<z.ZodBoolean>;
2618
+ noBuilding: z.ZodOptional<z.ZodBoolean>;
2619
+ viewStyle: z.ZodOptional<z.ZodEnum<{
2620
+ NONE: "NONE";
2621
+ FILLET: "FILLET";
2622
+ BUBBLE: "BUBBLE";
2623
+ }>>;
2624
+ radius: z.ZodOptional<z.ZodNumber>;
2625
+ inset: z.ZodOptional<z.ZodNumber>;
2626
+ markerKind: z.ZodOptional<z.ZodEnum<{
2627
+ architecturalTick: "architecturalTick";
2628
+ openArrow: "openArrow";
2629
+ closedArrow: "closedArrow";
2630
+ }>>;
2631
+ markerSize: z.ZodOptional<z.ZodNumber>;
2632
+ extensionLineVisible: z.ZodOptional<z.ZodBoolean>;
2633
+ extensionLineStyle: z.ZodOptional<z.ZodEnum<{
2634
+ center: "center";
2635
+ hidden: "hidden";
2636
+ solid: "solid";
2637
+ dashed: "dashed";
2638
+ dashdot: "dashdot";
2639
+ phantom: "phantom";
2640
+ propertyLine: "propertyLine";
2641
+ }>>;
2642
+ extensionGap: z.ZodOptional<z.ZodNumber>;
2643
+ extensionOvershoot: z.ZodOptional<z.ZodNumber>;
2644
+ textColor: z.ZodOptional<z.ZodString>;
2645
+ textGap: z.ZodOptional<z.ZodNumber>;
2646
+ textPlacement: z.ZodOptional<z.ZodLiteral<"above">>;
2647
+ textMask: z.ZodOptional<z.ZodBoolean>;
2648
+ textMaskColor: z.ZodOptional<z.ZodString>;
2649
+ textMaskPadding: z.ZodOptional<z.ZodNumber>;
2650
+ }, z.core.$strict>]>;
2651
+ controls: z.ZodArray<z.ZodObject<{
2652
+ key: z.ZodString;
2653
+ kind: z.ZodString;
2654
+ options: z.ZodOptional<z.ZodArray<z.ZodObject<{
2655
+ label: z.ZodString;
2656
+ value: z.ZodString;
2657
+ }, z.core.$strip>>>;
2658
+ range: z.ZodOptional<z.ZodObject<{
2659
+ min: z.ZodNumber;
2660
+ max: z.ZodNumber;
2661
+ step: z.ZodNumber;
2662
+ }, z.core.$strip>>;
2663
+ }, z.core.$strip>>;
2664
+ }, z.core.$strip>>;
2665
+ }, z.core.$strip>;
2666
+ export type PluginDrawingStyles = z.infer<typeof PluginDrawingStyles>;
2667
+ export declare const PluginDrawingStatus: z.ZodObject<{
2668
+ drawingId: z.ZodString;
2669
+ generation: z.ZodEnum<{
2670
+ ready: "ready";
2671
+ updating: "updating";
2672
+ missing: "missing";
2673
+ }>;
2674
+ assetSave: z.ZodEnum<{
2675
+ missing: "missing";
2676
+ uploading: "uploading";
2677
+ retrying: "retrying";
2678
+ uploaded: "uploaded";
2679
+ }>;
2680
+ layout: z.ZodEnum<{
2681
+ pending: "pending";
2682
+ ready: "ready";
2683
+ unsupported: "unsupported";
2684
+ }>;
2685
+ exportReady: z.ZodBoolean;
2686
+ warnings: z.ZodArray<z.ZodString>;
2687
+ }, z.core.$strip>;
2688
+ export type PluginDrawingStatus = z.infer<typeof PluginDrawingStatus>;
2689
+ export declare const PluginDrawingStatusArgs: z.ZodObject<{
2690
+ drawingId: z.ZodString;
2691
+ waitMs: z.ZodOptional<z.ZodNumber>;
2692
+ }, z.core.$strict>;
2693
+ export type PluginDrawingStatusArgs = z.infer<typeof PluginDrawingStatusArgs>;
2694
+ export declare const PluginDrawingExportFormat: z.ZodEnum<{
2695
+ pdf: "pdf";
2696
+ png: "png";
2697
+ jpg: "jpg";
2698
+ svg: "svg";
2699
+ }>;
2700
+ export type PluginDrawingExportFormat = z.infer<typeof PluginDrawingExportFormat>;
2701
+ /** Renderer-specific operations and formats supported by a drawing. */
2702
+ export declare const PluginDrawingCapabilities: z.ZodObject<{
2703
+ renderer: z.ZodEnum<{
2704
+ unknown: "unknown";
2705
+ vector: "vector";
2706
+ hybrid: "hybrid";
2707
+ raster: "raster";
2708
+ }>;
2709
+ presets: z.ZodBoolean;
2710
+ labelLayout: z.ZodBoolean;
2711
+ architecturalScale: z.ZodBoolean;
2712
+ standardScales: z.ZodArray<z.ZodObject<{
2713
+ label: z.ZodString;
2714
+ value: z.ZodNumber;
2715
+ }, z.core.$strip>>;
2716
+ exportFormats: z.ZodArray<z.ZodEnum<{
2717
+ pdf: "pdf";
2718
+ png: "png";
2719
+ jpg: "jpg";
2720
+ svg: "svg";
2721
+ }>>;
2722
+ }, z.core.$strip>;
2723
+ export type PluginDrawingCapabilities = z.infer<typeof PluginDrawingCapabilities>;
2724
+ export declare const PluginDrawingExportOptions: z.ZodObject<{
2725
+ fileName: z.ZodOptional<z.ZodString>;
2726
+ resolution: z.ZodOptional<z.ZodObject<{
2727
+ width: z.ZodNumber;
2728
+ height: z.ZodNumber;
2729
+ }, z.core.$strip>>;
2730
+ download: z.ZodOptional<z.ZodBoolean>;
2731
+ }, z.core.$strict>;
2732
+ export type PluginDrawingExportOptions = z.infer<typeof PluginDrawingExportOptions>;
2733
+ export declare const PluginDrawingExportArgs: z.ZodObject<{
2734
+ drawingId: z.ZodString;
2735
+ fileName: z.ZodOptional<z.ZodString>;
2736
+ resolution: z.ZodOptional<z.ZodObject<{
2737
+ width: z.ZodNumber;
2738
+ height: z.ZodNumber;
2739
+ }, z.core.$strip>>;
2740
+ download: z.ZodOptional<z.ZodBoolean>;
2741
+ format: z.ZodEnum<{
2742
+ pdf: "pdf";
2743
+ png: "png";
2744
+ jpg: "jpg";
2745
+ svg: "svg";
2746
+ }>;
2747
+ }, z.core.$strict>;
2748
+ export type PluginDrawingExportArgs = z.infer<typeof PluginDrawingExportArgs>;
2749
+ export declare const PluginDrawingExportResult: z.ZodObject<{
2750
+ files: z.ZodArray<z.ZodObject<{
2751
+ fileName: z.ZodString;
2752
+ mimeType: z.ZodString;
2753
+ byteLength: z.ZodNumber;
2754
+ dataBase64: z.ZodOptional<z.ZodString>;
2755
+ }, z.core.$strip>>;
2756
+ downloadStarted: z.ZodBoolean;
2757
+ warnings: z.ZodArray<z.ZodString>;
2758
+ }, z.core.$strip>;
2759
+ export type PluginDrawingExportResult = z.infer<typeof PluginDrawingExportResult>;
2760
+ export declare const PluginDrawingLabelArgs: z.ZodObject<{
2761
+ labelId: z.ZodString;
2762
+ }, z.core.$strict>;
2763
+ export type PluginDrawingLabelArgs = z.infer<typeof PluginDrawingLabelArgs>;
2764
+ export declare const PluginDrawingLabelMoveArgs: z.ZodObject<{
2765
+ labelId: z.ZodString;
2766
+ position: z.ZodObject<{
2767
+ x: z.ZodNumber;
2768
+ y: z.ZodNumber;
2769
+ }, z.core.$strip>;
2770
+ }, z.core.$strict>;
2771
+ export type PluginDrawingLabelMoveArgs = z.infer<typeof PluginDrawingLabelMoveArgs>;
2772
+ export declare const PluginDrawingLabelHiddenArgs: z.ZodObject<{
2773
+ labelId: z.ZodString;
2774
+ hidden: z.ZodBoolean;
2775
+ }, z.core.$strict>;
2776
+ export type PluginDrawingLabelHiddenArgs = z.infer<typeof PluginDrawingLabelHiddenArgs>;
2777
+ export declare const PluginDrawingLabelResetArgs: z.ZodObject<{
2778
+ drawingId: z.ZodString;
2779
+ scope: z.ZodOptional<z.ZodEnum<{
2780
+ scale: "scale";
2781
+ all: "all";
2782
+ }>>;
2783
+ }, z.core.$strict>;
2784
+ export type PluginDrawingLabelResetArgs = z.infer<typeof PluginDrawingLabelResetArgs>;
2785
+ /**
2786
+ * Collision-layout diagnostics for drawing labels, including actionable scale suggestions.
2787
+ * `suggestedScale` is a larger standard scale (smaller denominator) at which the label would fit.
2788
+ */
2789
+ export declare const PluginDrawingLabelLayout: z.ZodObject<{
2790
+ pending: z.ZodBoolean;
2791
+ pinned: z.ZodNumber;
2792
+ unplaced: z.ZodArray<z.ZodObject<{
2793
+ labelId: z.ZodString;
2794
+ name: z.ZodString;
2795
+ reason: z.ZodString;
2796
+ suggestedScale: z.ZodNullable<z.ZodNumber>;
2797
+ }, z.core.$strip>>;
2798
+ duplicatesMerged: z.ZodNumber;
2799
+ rowsDropped: z.ZodObject<{
2800
+ department: z.ZodNumber;
2801
+ area: z.ZodNumber;
2802
+ wrapped: z.ZodNumber;
2803
+ }, z.core.$strip>;
2804
+ }, z.core.$strip>;
2805
+ export type PluginDrawingLabelLayout = z.infer<typeof PluginDrawingLabelLayout>;
2806
+ /**
2807
+ * The text labels of one drawing — room names, areas, tags — and the native
2808
+ * label layout that fits them.
2809
+ *
2810
+ * Label ids are the text-shape ids {@linkcode PluginDrawingLabelsApi.list}
2811
+ * returns. Positions are drawing-local canvas units. Room-label moves and
2812
+ * pins are stored per architectural scale, so a label moved at 1:100 keeps
2813
+ * its spot at 1:100 and is laid out afresh at 1:50. Every method requires
2814
+ * **Present mode to be open** and throws `PRECONDITION_FAILED` ("Present mode
2815
+ * is not open") when it is closed; writes use native Present undo.
2816
+ *
2817
+ * Accessed via `snaptrude.presentation.drawings.labels`.
2818
+ */
2819
+ export declare abstract class PluginDrawingLabelsApi {
2820
+ /**
2821
+ * List every text label on a drawing, including labels the user or the
2822
+ * layout has hidden. An agent's own annotations under the drawing are not
2823
+ * labels and are not listed.
2824
+ *
2825
+ * @param drawingId - The drawing to read.
2826
+ * @returns The drawing's {@linkcode PluginPlacedViewLabel} rows
2827
+ * (`labelId`, `category`, `text`, `position`, `scale`, `hidden`).
2828
+ * @throws `PRECONDITION_FAILED` if Present mode is not open;
2829
+ * `HANDLE_INVALID` if `drawingId` is not a drawing.
2830
+ *
2831
+ * @examplePrompt List all labels in this drawing
2832
+ * @examplePrompt Which room labels are hidden on the ground floor drawing?
2833
+ * @examplePrompt Show me the text of every label on this plan
2834
+ *
2835
+ * # Example
2836
+ * ```ts
2837
+ * const labels = await snaptrude.presentation.drawings.labels.list(drawing.id)
2838
+ * const hidden = labels.filter((label) => label.hidden)
2839
+ * ```
2840
+ */
2841
+ abstract list(drawingId: string): PluginApiReturn<PluginPlacedViewLabel[]>;
2842
+ /**
2843
+ * Read the label-layout diagnostics of a drawing: labels that could not be
2844
+ * placed cleanly (each with a `suggestedScale` at which it would fit),
2845
+ * pinned labels, merged duplicates and dropped rows. Reading never hides a
2846
+ * label: an unplaced label is still shown at a best-effort position.
2847
+ *
2848
+ * @param drawingId - The drawing to read.
2849
+ * @returns A {@linkcode PluginDrawingLabelLayout}. `pending: true` means
2850
+ * fitting is still running; read again after
2851
+ * {@linkcode PluginPresentationDrawingsApi.getStatus} with a `waitMs`.
2852
+ * @throws `PRECONDITION_FAILED` if Present mode is not open;
2853
+ * `HANDLE_INVALID` if `drawingId` is not a drawing.
2854
+ *
2855
+ * @examplePrompt Check this drawing for overlapping labels
2856
+ * @examplePrompt Do all the room names fit on the ground floor drawing?
2857
+ * @examplePrompt Which scale would make the labels on this plan readable?
2858
+ *
2859
+ * # Example
2860
+ * ```ts
2861
+ * const layout = await snaptrude.presentation.drawings.labels.getLayout(drawing.id)
2862
+ * const suggested = layout.unplaced.find((row) => row.suggestedScale)?.suggestedScale
2863
+ * if (suggested) await snaptrude.presentation.drawings.setScale(drawing.id, suggested)
2864
+ * ```
2865
+ */
2866
+ abstract getLayout(drawingId: string): PluginApiReturn<PluginDrawingLabelLayout>;
2867
+ /**
2868
+ * Move a label within its drawing. A room label keeps the new position as a
2869
+ * native pin at the drawing's current architectural scale; other labels
2870
+ * move as plain text shapes. One Present undo step.
2871
+ *
2872
+ * @param labelId - The label to move (a `labelId` from `labels.list`).
2873
+ * @param position - The new position, drawing-local canvas units.
2874
+ * @returns The moved {@linkcode PluginPlacedViewLabel}.
2875
+ * @throws `VALIDATION` for a malformed position; `PRECONDITION_FAILED` if
2876
+ * Present mode is not open, the document is read-only, the label or its
2877
+ * drawing is locked, or the label has not been laid out yet (each with a
2878
+ * hint); `HANDLE_INVALID` if `labelId` is not a drawing label.
2879
+ *
2880
+ * @examplePrompt Move the Kitchen label up a little
2881
+ * @examplePrompt Put the living room name in the middle of the room
2882
+ * @examplePrompt Nudge this label to the left
2883
+ *
2884
+ * # Example
2885
+ * ```ts
2886
+ * const [label] = await snaptrude.presentation.drawings.labels.list(drawing.id)
2887
+ * await snaptrude.presentation.drawings.labels.move(label.labelId, {
2888
+ * x: label.position.x,
2889
+ * y: label.position.y - 20,
2890
+ * })
2891
+ * ```
2892
+ */
2893
+ abstract move(labelId: string, position: z.infer<typeof PluginSheetPosition>): PluginApiReturn<PluginPlacedViewLabel>;
2894
+ /**
2895
+ * Hide or show a label. This is the user's own visibility, independent of
2896
+ * labels the layout or a crop hides. One Present undo step.
2897
+ *
2898
+ * @param labelId - The label to change (a `labelId` from `labels.list`).
2899
+ * @param hidden - `true` to hide the label, `false` to show it.
2900
+ * @returns The updated {@linkcode PluginPlacedViewLabel}.
2901
+ * @throws `PRECONDITION_FAILED` if Present mode is not open, the document is
2902
+ * read-only, or the label or its drawing is locked (each with a hint);
2903
+ * `HANDLE_INVALID` if `labelId` is not a drawing label.
2904
+ *
2905
+ * @examplePrompt Hide the Store label on this drawing
2906
+ * @examplePrompt Show the corridor label again
2907
+ * @examplePrompt Turn off the label for the plant room
2908
+ *
2909
+ * # Example
2910
+ * ```ts
2911
+ * const labels = await snaptrude.presentation.drawings.labels.list(drawing.id)
2912
+ * const store = labels.find((label) => label.text.startsWith("Store"))
2913
+ * if (store) await snaptrude.presentation.drawings.labels.setHidden(store.labelId, true)
2914
+ * ```
2915
+ */
2916
+ abstract setHidden(labelId: string, hidden: boolean): PluginApiReturn<PluginPlacedViewLabel>;
2917
+ /**
2918
+ * Pin a room label that could not be placed cleanly at the best position
2919
+ * the native layout solver finds, at the current architectural scale. May
2920
+ * wait up to ten seconds for a reloaded drawing's fit data. One Present undo
2921
+ * step.
2922
+ *
2923
+ * @param labelId - An unplaced room label (a `labelId` from
2924
+ * `labels.getLayout(drawingId).unplaced`).
2925
+ * @returns `true` when the label was pinned; `false` when it was already
2926
+ * placed cleanly or the solver found no position (nothing changes).
2927
+ * @throws `PRECONDITION_FAILED` if Present mode is not open, the document is
2928
+ * read-only, or the label or its drawing is locked (each with a hint);
2929
+ * `HANDLE_INVALID` if `labelId` is not a drawing label.
2930
+ *
2931
+ * @examplePrompt Place the labels that do not fit
2932
+ * @examplePrompt Pin the Kitchen label where it fits best
2933
+ * @examplePrompt Fix the overlapping room names on this drawing
2934
+ *
2935
+ * # Example
2936
+ * ```ts
2937
+ * const { unplaced } = await snaptrude.presentation.drawings.labels.getLayout(drawing.id)
2938
+ * for (const row of unplaced) {
2939
+ * await snaptrude.presentation.drawings.labels.place(row.labelId)
2940
+ * }
2941
+ * ```
2942
+ */
2943
+ abstract place(labelId: string): PluginApiReturn<boolean>;
2944
+ /**
2945
+ * Clear room-label pins (from `move`, `place` or the user) so the native
2946
+ * layout places those labels again: at the current architectural scale by
2947
+ * default, or at every scale with `{ scope: "all" }`. One Present undo step.
2948
+ *
2949
+ * @param drawingId - The drawing whose pins to clear.
2950
+ * @param options - Optional `scope`: `"scale"` (default, the current scale)
2951
+ * or `"all"` (every scale).
2952
+ * @returns The number of pins cleared (`0` when there were none; nothing changes).
2953
+ * @throws `PRECONDITION_FAILED` if Present mode is not open, the document is
2954
+ * read-only, or the drawing is locked (each with a hint); `HANDLE_INVALID`
2955
+ * if `drawingId` is not a drawing.
2956
+ *
2957
+ * @examplePrompt Reset the label positions on this drawing
2958
+ * @examplePrompt Undo all my label moves at every scale
2959
+ * @examplePrompt Let the room labels lay themselves out again
2960
+ *
2961
+ * # Example
2962
+ * ```ts
2963
+ * const cleared = await snaptrude.presentation.drawings.labels.reset(drawing.id, {
2964
+ * scope: "all",
2965
+ * })
2966
+ * ```
2967
+ */
2968
+ abstract reset(drawingId: string, options?: {
2969
+ scope?: "scale" | "all";
2970
+ }): PluginApiReturn<number>;
2971
+ }
2972
+ /**
2973
+ * Drawing deliverables on the Present canvas: plans, site plans, elevations
2974
+ * and 3D drawings generated from saved {@linkcode PluginPresentationViewsApi}
2975
+ * views, independent of sheet composition.
2976
+ *
2977
+ * A drawing is the native Present view shape. It needs no sheet: it can stay
2978
+ * loose on the canvas, be exported on its own, or be put on a sheet with
2979
+ * {@linkcode PluginPresentationSheetsApi.placeDrawing} (scaled down to fit).
2980
+ * `create` never puts a drawing on a sheet; to make a drawing of a view on a
2981
+ * sheet in one call use {@linkcode PluginPresentationSheetsApi.place}. Drawing ids are stable
2982
+ * across reload and undo. Native shape history and sync are reused: writes are
2983
+ * gated and use Present undo.
2984
+ *
2985
+ * **Drawings or placed views?** A drawing id is the same shape id
2986
+ * {@linkcode PluginPresentationPlacedViewsApi} addresses, so both namespaces
2987
+ * reach the same view shape. `drawings` is the drawing-deliverable surface:
2988
+ * kernel-plan styles and presets, label layout, status and single-drawing
2989
+ * export. Use it for drawings made with `drawings.create`; keep `placedViews`
2990
+ * for views placed with `sheets.place` and for its generic canvas-shape calls.
2991
+ * Do not mix the two for one shape in the same task: `drawings.setScale` also
2992
+ * moves a drawing clear of a neighbour it grew over, `placedViews.setScale`
2993
+ * does not.
2994
+ *
2995
+ * **Looking at a drawing.** These calls change drawings, not the Present
2996
+ * camera. To see a result, frame it and screenshot the Present canvas:
2997
+ * `presentation.camera.zoomTo(drawing.id)` then
2998
+ * `presentation.camera.capture()`. `presentation.views.capture` and
2999
+ * `core.camera` look at the Design (3D) canvas, not this one.
3000
+ *
3001
+ * Every method, including the catalog reads, requires **Present mode to be
3002
+ * open** and throws `PRECONDITION_FAILED` ("Present mode is not open") when it
3003
+ * is closed or closes during the call; no method switches tabs. Every
3004
+ * `PRECONDITION_FAILED` carries a `hint` saying what to do next. Creating does
3005
+ * not wait for the asset upload: read {@linkcode PluginPresentationDrawingsApi.getStatus}.
3006
+ * `assetSave: "uploaded"` describes the asset, not a server acknowledgement of
3007
+ * document sync.
3008
+ *
3009
+ * Accessed via `snaptrude.presentation.drawings`.
3010
+ */
3011
+ export declare abstract class PluginPresentationDrawingsApi {
3012
+ /** The drawing's text labels and label layout. See {@linkcode PluginDrawingLabelsApi}. */
3013
+ abstract labels: PluginDrawingLabelsApi;
3014
+ /**
3015
+ * Generate a drawing from a saved view. Creates the drawing beside its
3016
+ * source view on the canvas, never on a sheet; to put a drawing on a sheet use
3017
+ * `presentation.sheets.place(sheetId, viewId)` (fits it to the sheet) or
3018
+ * `presentation.sheets.placeDrawing(sheetId, drawingId)` (moves this drawing
3019
+ * onto the sheet, scaled down to fit).
3020
+ * Omit `position` unless the user asked for a specific place: the host puts
3021
+ * the new drawing next to its source view, clear of other drawings. An
3022
+ * explicit `position` (page coordinates, the drawing's centre) is kept and
3023
+ * can land on top of an existing drawing. The user's selection is left as
3024
+ * it was.
3025
+ * Changes the drawing, not the Present camera. The Present view may follow
3026
+ * the drawing as a courtesy to a user watching (never zooming in, not while
3027
+ * the camera is locked); to look at it, call
3028
+ * `presentation.camera.zoomTo(drawing.id)` then
3029
+ * `presentation.camera.capture()`.
3030
+ * `scale` must be a standard architectural scale denominator (100 means 1:100)
3031
+ * in the project's unit system; any other value is rejected. Metric: 10, 20, 50,
3032
+ * 100, 150, 200, 250, 500, 1000. Imperial detail: 12, 16, 24, 32, 48, 64, 96, 128,
3033
+ * 192, 384, 768, 1536 (1" = 1' to 1/128" = 1'; 48 is 1/4" = 1', 96 is 1/8" = 1').
3034
+ * Imperial site: 120, 240, 360, 480, 600, 1200, 2400, 3600, 4800 (1" = 10' to
3035
+ * 1" = 400'). Pick the LARGEST standard scale (smallest denominator) at which the
3036
+ * view still fits its frame or sheet and its room labels stay readable: for a
3037
+ * building floor plan that is usually 1:50 to 1:200 (1/4" = 1' to 1/16" = 1').
3038
+ * Never use a site-sized scale (1:500 and up, 1/64" = 1' (768) and smaller,
3039
+ * 1" = 20' (240) and up) for a single building plan unless the user asked for it.
3040
+ * `scale` applies to plans, site plans and elevations; leave it out for a 3D view.
3041
+ * After creating, read `labels.getLayout(drawingId)`: when labels are unplaced and carry
3042
+ * a `suggestedScale`, move to that larger scale with `setScale`. To apply a
3043
+ * preset, create first and then call `applyPreset`.
3044
+ *
3045
+ * @param viewId - The saved view to draw (an id from `presentation.views.list`).
3046
+ * @param options - Optional `position` (page coordinates) and `scale`
3047
+ * (a standard denominator).
3048
+ * @returns The new {@linkcode PluginDrawing}.
3049
+ * @throws `VALIDATION` for a non-standard `scale` (the message lists the
3050
+ * allowed ones); `PRECONDITION_FAILED` if Present mode is not open, the
3051
+ * document is read-only, or a `scale` is given for a 3D view (each with a
3052
+ * hint); `HANDLE_INVALID` if `viewId` is not a saved view;
3053
+ * `OPERATION_FAILED` if generation produced no drawing.
3054
+ *
3055
+ * @examplePrompt Create a drawing from the ground floor view
3056
+ * @examplePrompt Make a 1:100 plan drawing of level 2
3057
+ * @examplePrompt Draw the north elevation at 1/8" = 1'
3058
+ * @examplePrompt Put the site plan view on the Present canvas as a drawing
3059
+ *
3060
+ * # Example
3061
+ * ```ts
3062
+ * const { views } = await snaptrude.presentation.views.list()
3063
+ * const plan = views.find((view) => view.kind === "plan")!
3064
+ * const drawing = await snaptrude.presentation.drawings.create(plan.id, { scale: 100 })
3065
+ * await snaptrude.presentation.camera.zoomTo(drawing.id)
3066
+ * const { image } = await snaptrude.presentation.camera.capture()
3067
+ * // To put it on a sheet: await snaptrude.presentation.sheets.placeDrawing(sheet.id, drawing.id)
3068
+ * ```
3069
+ */
3070
+ abstract create(viewId: string, options?: PluginDrawingCreateOptions): PluginApiReturn<PluginDrawing>;
3071
+ /**
3072
+ * List the drawings on the current Present page, loose or on sheets.
3073
+ *
3074
+ * @returns Every {@linkcode PluginDrawing} on the page (empty when there are none).
3075
+ * @throws `PRECONDITION_FAILED` if Present mode is not open.
3076
+ *
3077
+ * @examplePrompt List all drawings in this presentation
3078
+ * @examplePrompt Which drawings are not on a sheet yet?
3079
+ * @examplePrompt What scale is each plan drawing at?
3080
+ *
3081
+ * # Example
3082
+ * ```ts
3083
+ * const drawings = await snaptrude.presentation.drawings.list()
3084
+ * const loose = drawings.filter((drawing) => !drawing.sheetId)
3085
+ * ```
3086
+ */
3087
+ abstract list(): PluginApiReturn<PluginDrawing[]>;
3088
+ /**
3089
+ * Read one drawing by its stable id.
3090
+ *
3091
+ * @param drawingId - The drawing to read.
3092
+ * @returns The {@linkcode PluginDrawing}, or `null` if no drawing has that id
3093
+ * (for example, it was deleted).
3094
+ * @throws `PRECONDITION_FAILED` if Present mode is not open.
3095
+ *
3096
+ * @examplePrompt Does the ground floor drawing still exist?
3097
+ * @examplePrompt What preset is this drawing using?
3098
+ * @examplePrompt Read the scale and crop of this drawing
3099
+ *
3100
+ * # Example
3101
+ * ```ts
3102
+ * const current = await snaptrude.presentation.drawings.get(drawing.id)
3103
+ * if (current) console.log(current.scale, current.presetId)
3104
+ * ```
3105
+ */
3106
+ abstract get(drawingId: string): PluginApiReturn<PluginDrawing | null>;
3107
+ /**
3108
+ * Duplicate a drawing with its labels and annotations (native duplication,
3109
+ * offset slightly from the original). One Present undo step. The copy keeps
3110
+ * the original's source view, scale, crop, styles and preset binding.
3111
+ *
3112
+ * @param drawingId - The drawing to copy.
3113
+ * @returns The new {@linkcode PluginDrawing}.
3114
+ * @throws `PRECONDITION_FAILED` if Present mode is not open, the document is
3115
+ * read-only, or the drawing is locked (each with a hint); `HANDLE_INVALID`
3116
+ * if `drawingId` is not a drawing; `OPERATION_FAILED` if the copy failed.
3117
+ *
3118
+ * @examplePrompt Duplicate this drawing
3119
+ * @examplePrompt Make a copy of the ground floor plan drawing
3120
+ * @examplePrompt Copy this drawing so I can try a different style
3121
+ *
3122
+ * # Example
3123
+ * ```ts
3124
+ * const copy = await snaptrude.presentation.drawings.copy(drawing.id)
3125
+ * await snaptrude.presentation.drawings.rename(copy.id, "Ground Floor (option B)")
3126
+ * ```
3127
+ */
3128
+ abstract copy(drawingId: string): PluginApiReturn<PluginDrawing>;
3129
+ /**
3130
+ * Set the drawing's own title text. The source saved view keeps its name.
3131
+ * One Present undo step.
3132
+ *
3133
+ * @param drawingId - The drawing to rename.
3134
+ * @param name - The new title (non-empty after trimming).
3135
+ * @returns The updated {@linkcode PluginDrawing}.
3136
+ * @throws `VALIDATION` for an empty name; `PRECONDITION_FAILED` if Present
3137
+ * mode is not open, the document is read-only, or the drawing is locked
3138
+ * (each with a hint); `HANDLE_INVALID` if `drawingId` is not a drawing.
3139
+ *
3140
+ * @examplePrompt Rename this drawing to Ground Floor Plan
3141
+ * @examplePrompt Change the title of the elevation drawing
3142
+ * @examplePrompt Call this drawing Level 2 General Arrangement
3143
+ *
3144
+ * # Example
3145
+ * ```ts
3146
+ * await snaptrude.presentation.drawings.rename(drawing.id, "Ground Floor Plan")
3147
+ * ```
3148
+ */
3149
+ abstract rename(drawingId: string, name: string): PluginApiReturn<PluginDrawing>;
3150
+ /**
3151
+ * Delete a drawing with its labels and annotations, as one Present undo
3152
+ * step. The source saved view is not deleted.
3153
+ *
3154
+ * @param drawingId - The drawing to delete.
3155
+ * @returns Nothing.
3156
+ * @throws `PRECONDITION_FAILED` if Present mode is not open, the document is
3157
+ * read-only, or the drawing is locked (each with a hint); `HANDLE_INVALID`
3158
+ * if `drawingId` is not a drawing.
3159
+ *
3160
+ * @examplePrompt Delete this drawing
3161
+ * @examplePrompt Remove the old elevation drawing from the canvas
3162
+ * @examplePrompt Get rid of the duplicate plan drawing
3163
+ *
3164
+ * # Example
3165
+ * ```ts
3166
+ * await snaptrude.presentation.drawings.delete(drawing.id)
3167
+ * ```
3168
+ */
3169
+ abstract delete(drawingId: string): PluginApiReturn<void>;
3170
+ /**
3171
+ * Regenerate one to 100 drawings from their source views, after the model
3172
+ * or the view changed. Waits for the update to finish.
3173
+ *
3174
+ * @param drawingIds - The drawings to regenerate (1 to 100 ids).
3175
+ * @returns One `{ drawingId, updated }` row per drawing; `updated` means the
3176
+ * drawing's asset actually changed, not merely that the id was submitted.
3177
+ * @throws `VALIDATION` for an empty list or more than 100 ids;
3178
+ * `PRECONDITION_FAILED` if Present mode is not open, the document is
3179
+ * read-only, a drawing is locked, or another drawing update is running
3180
+ * (each with a hint); `HANDLE_INVALID` if an id is not a drawing.
3181
+ *
3182
+ * @examplePrompt Update this drawing with my latest model changes
3183
+ * @examplePrompt Refresh all the drawings
3184
+ * @examplePrompt Regenerate the ground floor plan drawing
3185
+ *
3186
+ * # Example
3187
+ * ```ts
3188
+ * const drawings = await snaptrude.presentation.drawings.list()
3189
+ * const results = await snaptrude.presentation.drawings.updateContent(
3190
+ * drawings.map((drawing) => drawing.id),
3191
+ * )
3192
+ * ```
3193
+ */
3194
+ abstract updateContent(drawingIds: string[]): PluginApiReturn<{
3195
+ drawingId: string;
3196
+ updated: boolean;
3197
+ }[]>;
3198
+ /**
3199
+ * Read what a drawing supports: its actual renderer, whether it takes
3200
+ * presets (native kernel plans only), label layout and an architectural
3201
+ * scale, the standard scales for this project, and its export formats. Read
3202
+ * this before preset, scale, label-layout, style or export writes instead of
3203
+ * inferring support from the source view.
3204
+ *
3205
+ * @param drawingId - The drawing to read.
3206
+ * @returns A {@linkcode PluginDrawingCapabilities}.
3207
+ * @throws `PRECONDITION_FAILED` if Present mode is not open;
3208
+ * `HANDLE_INVALID` if `drawingId` is not a drawing.
3209
+ *
3210
+ * @examplePrompt What editing capabilities does this drawing support?
3211
+ * @examplePrompt Can I apply a preset to this drawing?
3212
+ * @examplePrompt Which scales can this drawing use?
3213
+ *
3214
+ * # Example
3215
+ * ```ts
3216
+ * const capabilities = await snaptrude.presentation.drawings.getCapabilities(drawing.id)
3217
+ * if (capabilities.presets) {
3218
+ * await snaptrude.presentation.drawings.applyPreset(drawing.id, preset.id)
3219
+ * }
3220
+ * ```
3221
+ */
3222
+ abstract getCapabilities(drawingId: string): PluginApiReturn<PluginDrawingCapabilities>;
3223
+ /**
3224
+ * Read a drawing's generation, label-layout and asset-upload state,
3225
+ * optionally waiting up to `waitMs` (0 by default, at most 30,000) for it
3226
+ * to become export-ready and uploaded. A timeout is not an error: the
3227
+ * current state is returned. Read this before export or before closing
3228
+ * Present mode.
3229
+ *
3230
+ * @param drawingId - The drawing to read.
3231
+ * @param options - Optional `waitMs` (0 to 30,000 ms).
3232
+ * @returns A {@linkcode PluginDrawingStatus}.
3233
+ * @throws `VALIDATION` for a `waitMs` out of range; `PRECONDITION_FAILED` if
3234
+ * Present mode is not open or closes while waiting; `HANDLE_INVALID` if
3235
+ * `drawingId` is not a drawing.
3236
+ *
3237
+ * @examplePrompt Is this drawing ready to export?
3238
+ * @examplePrompt Wait for the new drawing to finish generating
3239
+ * @examplePrompt Has the drawing been uploaded yet?
3240
+ *
3241
+ * # Example
3242
+ * ```ts
3243
+ * const status = await snaptrude.presentation.drawings.getStatus(drawing.id, {
3244
+ * waitMs: 10_000,
3245
+ * })
3246
+ * if (!status.exportReady) console.warn(status.warnings)
3247
+ * ```
3248
+ */
3249
+ abstract getStatus(drawingId: string, options?: {
3250
+ waitMs?: number;
3251
+ }): PluginApiReturn<PluginDrawingStatus>;
3252
+ /**
3253
+ * Set a drawing's architectural scale; perspective/isometric drawings reject this.
3254
+ * `scale` must be a standard architectural scale denominator (100 means 1:100)
3255
+ * in the project's unit system; any other value is rejected. Metric: 10, 20, 50,
3256
+ * 100, 150, 200, 250, 500, 1000. Imperial detail: 12, 16, 24, 32, 48, 64, 96, 128,
3257
+ * 192, 384, 768, 1536 (1" = 1' to 1/128" = 1'; 48 is 1/4" = 1', 96 is 1/8" = 1').
3258
+ * Imperial site: 120, 240, 360, 480, 600, 1200, 2400, 3600, 4800 (1" = 10' to
3259
+ * 1" = 400'). Pick the LARGEST standard scale (smallest denominator) at which the
3260
+ * view still fits its frame or sheet and its room labels stay readable: for a
3261
+ * building floor plan that is usually 1:50 to 1:200 (1/4" = 1' to 1/16" = 1').
3262
+ * Never use a site-sized scale (1:500 and up, 1/64" = 1' (768) and smaller,
3263
+ * 1" = 20' (240) and up) for a single building plan unless the user asked for it.
3264
+ * A loose drawing that grows over a neighbour it did not cover before moves
3265
+ * to the nearest free spot, which `placedViews.setScale` does not do; an
3266
+ * overlap the user made stays, and a drawing on a sheet never moves.
3267
+ * Changes the drawing, not the Present camera. The Present view may follow
3268
+ * the drawing as a courtesy to a user watching (never zooming in, not while
3269
+ * the camera is locked); to look at it, call
3270
+ * `presentation.camera.zoomTo(drawing.id)` then
3271
+ * `presentation.camera.capture()`.
3272
+ *
3273
+ * @param drawingId - The drawing to rescale.
3274
+ * @param scale - A standard architectural scale denominator.
3275
+ * @returns The updated {@linkcode PluginDrawing}.
3276
+ * @throws `VALIDATION` for a non-standard `scale` (the message lists the
3277
+ * allowed ones); `PRECONDITION_FAILED` if Present mode is not open, the
3278
+ * document is read-only, the drawing is locked, or it is a 3D
3279
+ * (perspective/isometric) drawing (each with a hint); `HANDLE_INVALID` if
3280
+ * `drawingId` is not a drawing.
3281
+ *
3282
+ * @examplePrompt Set this drawing to 1:50
3283
+ * @examplePrompt Change the plan drawing scale to 1/4" = 1'
3284
+ * @examplePrompt Make the ground floor drawing bigger so the labels fit
3285
+ *
3286
+ * # Example
3287
+ * ```ts
3288
+ * const layout = await snaptrude.presentation.drawings.labels.getLayout(drawing.id)
3289
+ * const suggested = layout.unplaced.find((row) => row.suggestedScale)?.suggestedScale
3290
+ * await snaptrude.presentation.drawings.setScale(drawing.id, suggested ?? 50)
3291
+ * ```
3292
+ */
3293
+ abstract setScale(drawingId: string, scale: number): PluginApiReturn<PluginDrawing>;
3294
+ /**
3295
+ * Crop a drawing to a window of itself, or pass `null` to remove the crop.
3296
+ * Crop corners are 0–1 fractions of the uncropped drawing and must satisfy
3297
+ * `topLeft < bottomRight` on both axes. One Present undo step.
3298
+ * A loose drawing that grows over a neighbour it did not cover before (for
3299
+ * example when the crop is removed) moves to the nearest free spot, which
3300
+ * `placedViews.setCrop` does not do; an overlap the user made stays, and a
3301
+ * drawing on a sheet never moves.
3302
+ * Changes the drawing, not the Present camera. The Present view may follow
3303
+ * the drawing as a courtesy to a user watching (never zooming in, not while
3304
+ * the camera is locked); to look at it, call
3305
+ * `presentation.camera.zoomTo(drawing.id)` then
3306
+ * `presentation.camera.capture()`.
3307
+ *
3308
+ * @param drawingId - The drawing to crop.
3309
+ * @param crop - `{ topLeft, bottomRight }` normalized corners, or `null` to
3310
+ * remove the crop.
3311
+ * @returns The updated {@linkcode PluginDrawing}.
3312
+ * @throws `VALIDATION` for corners outside 0–1 or out of order;
3313
+ * `PRECONDITION_FAILED` if Present mode is not open, the document is
3314
+ * read-only, or the drawing is locked (each with a hint);
3315
+ * `HANDLE_INVALID` if `drawingId` is not a drawing.
3316
+ *
3317
+ * @examplePrompt Crop this drawing to the left half
3318
+ * @examplePrompt Remove the crop from the site plan drawing
3319
+ * @examplePrompt Show only the top-right corner of this plan
3320
+ *
3321
+ * # Example
3322
+ * ```ts
3323
+ * await snaptrude.presentation.drawings.setCrop(drawing.id, {
3324
+ * topLeft: { x: 0, y: 0 },
3325
+ * bottomRight: { x: 0.5, y: 1 },
3326
+ * })
3327
+ * await snaptrude.presentation.drawings.setCrop(drawing.id, null)
3328
+ * ```
3329
+ */
3330
+ abstract setCrop(drawingId: string, crop: z.infer<typeof PluginPlacedViewCrop> | null): PluginApiReturn<PluginDrawing>;
3331
+ /**
3332
+ * Read a drawing's effective style categories (preset plus its own
3333
+ * overrides) and the controls each category accepts. Always read this
3334
+ * before {@linkcode PluginPresentationDrawingsApi.updateStyles}: accepted
3335
+ * categories and controls depend on the drawing, and an `absent` category
3336
+ * rejects writes. Do not echo a whole `settings` record as a patch (legacy
3337
+ * reads may include the read-only `disable` flag and `-1` for unset opacity).
3338
+ *
3339
+ * @param drawingId - The drawing to read.
3340
+ * @returns A {@linkcode PluginDrawingStyles} with one row per category.
3341
+ * @throws `PRECONDITION_FAILED` if Present mode is not open;
3342
+ * `HANDLE_INVALID` if `drawingId` is not a drawing.
3343
+ *
3344
+ * @examplePrompt Show the editable styles for this drawing
3345
+ * @examplePrompt What line weight are the walls drawn with?
3346
+ * @examplePrompt Which categories can I restyle on this plan?
3347
+ *
3348
+ * # Example
3349
+ * ```ts
3350
+ * const styles = await snaptrude.presentation.drawings.getStyles(drawing.id)
3351
+ * const editable = styles.categories.filter((row) => !row.absent)
3352
+ * ```
3353
+ */
3354
+ abstract getStyles(drawingId: string): PluginApiReturn<PluginDrawingStyles>;
3355
+ /**
3356
+ * Merge a sparse style patch into one category of a drawing, as one Present
3357
+ * undo step. Nested objects merge rather than replace the row. Line and
3358
+ * outline weights are paper millimetres (0–2.11); opacity is 0–100; colours
3359
+ * are `#rrggbb`. On a kernel plan the patch becomes the drawing's own
3360
+ * overrides of its preset; other drawings take the legacy placed-view
3361
+ * category patch. An absent category, an unsupported field or an invalid
3362
+ * value rejects the whole write.
3363
+ *
3364
+ * @param drawingId - The drawing to restyle.
3365
+ * @param category - A category id from `getStyles` whose `absent` is false.
3366
+ * @param patch - A sparse {@linkcode PluginDrawingStylePatch} using only the
3367
+ * controls `getStyles` lists for that category.
3368
+ * @returns The drawing's {@linkcode PluginDrawingStyles} after the write.
3369
+ * @throws `VALIDATION` for an unsupported field or a value outside its
3370
+ * range; `PRECONDITION_FAILED` if Present mode is not open, the document is
3371
+ * read-only, the drawing is locked, or the category is absent on this
3372
+ * drawing (each with a hint); `HANDLE_INVALID` if `drawingId` is not a
3373
+ * drawing.
3374
+ *
3375
+ * @examplePrompt Make the walls on this drawing thicker
3376
+ * @examplePrompt Fill the rooms at 60% opacity with a larger hatch
3377
+ * @examplePrompt Turn off the door tags on this plan
3378
+ *
3379
+ * # Example
3380
+ * ```ts
3381
+ * const styles = await snaptrude.presentation.drawings.getStyles(drawing.id)
3382
+ * const space = styles.categories.find((row) => row.category === "Space")
3383
+ * if (space && !space.absent && space.controls.some((control) => control.key === "opacity")) {
3384
+ * await snaptrude.presentation.drawings.updateStyles(drawing.id, "Space", {
3385
+ * opacity: 60,
3386
+ * pattern: { scale: 1.5 },
3387
+ * })
3388
+ * }
3389
+ * ```
3390
+ */
3391
+ abstract updateStyles(drawingId: string, category: string, patch: PluginDrawingStylePatch): PluginApiReturn<PluginDrawingStyles>;
3392
+ /**
3393
+ * Bind a native kernel plan to a view preset and clear its declared
3394
+ * overrides, so it takes the preset's styles. Local title, proposal and
3395
+ * building text is kept. One Present undo step. Presets apply only to
3396
+ * drawings whose `getCapabilities(drawingId).presets` is `true`.
3397
+ *
3398
+ * @param drawingId - The kernel-plan drawing to bind.
3399
+ * @param presetId - The preset to apply (an id from `viewPresets.list`).
3400
+ * @returns The updated {@linkcode PluginDrawing} (its `presetId` is set).
3401
+ * @throws `PRECONDITION_FAILED` if Present mode is not open, the document is
3402
+ * read-only, the drawing is locked, or it is not a kernel vector plan
3403
+ * (each with a hint); `VALIDATION` if the catalog has no preset
3404
+ * `presetId` (with a hint); `HANDLE_INVALID` if `drawingId` is not a
3405
+ * drawing.
3406
+ *
3407
+ * @examplePrompt Apply the presentation plan preset to this drawing
3408
+ * @examplePrompt Use the Planning Issue style on every plan drawing
3409
+ * @examplePrompt Make this drawing look like the other plans
3410
+ *
3411
+ * # Example
3412
+ * ```ts
3413
+ * const presets = await snaptrude.presentation.viewPresets.list()
3414
+ * const preset = presets.find((each) => each.name === "Planning Issue")
3415
+ * if (preset) await snaptrude.presentation.drawings.applyPreset(drawing.id, preset.id)
3416
+ * ```
3417
+ */
3418
+ abstract applyPreset(drawingId: string, presetId: string): PluginApiReturn<PluginDrawing>;
3419
+ /**
3420
+ * Drop a kernel plan's own style overrides so it matches its bound preset
3421
+ * again. Local title, proposal and building text is kept. One Present undo
3422
+ * step.
3423
+ *
3424
+ * @param drawingId - The kernel-plan drawing to reset.
3425
+ * @returns The updated {@linkcode PluginDrawing}.
3426
+ * @throws `PRECONDITION_FAILED` if Present mode is not open, the document is
3427
+ * read-only, the drawing is locked, or it is not a kernel vector plan
3428
+ * (each with a hint); `HANDLE_INVALID` if `drawingId` is not a drawing.
3429
+ *
3430
+ * @examplePrompt Reset this drawing to its preset styles
3431
+ * @examplePrompt Undo my style changes on the ground floor plan
3432
+ * @examplePrompt Clear the overrides on this drawing
3433
+ *
3434
+ * # Example
3435
+ * ```ts
3436
+ * await snaptrude.presentation.drawings.resetOverrides(drawing.id)
3437
+ * ```
3438
+ */
3439
+ abstract resetOverrides(drawingId: string): PluginApiReturn<PluginDrawing>;
3440
+ /**
3441
+ * List the hatch patterns the native pattern catalog offers. Use these ids
3442
+ * in a style patch's `pattern.id` instead of inventing one.
3443
+ *
3444
+ * @returns `{ id, label, group }` rows, one per pattern.
3445
+ * @throws `PRECONDITION_FAILED` if Present mode is not open.
3446
+ *
3447
+ * @examplePrompt What hatch patterns can I use?
3448
+ * @examplePrompt List the brick and concrete patterns
3449
+ * @examplePrompt Which fill patterns are available for rooms?
3450
+ *
3451
+ * # Example
3452
+ * ```ts
3453
+ * const patterns = await snaptrude.presentation.drawings.listPatterns()
3454
+ * const brick = patterns.find((pattern) => pattern.label.toLowerCase().includes("brick"))
3455
+ * ```
3456
+ */
3457
+ abstract listPatterns(): PluginApiReturn<{
3458
+ id: string;
3459
+ label: string;
3460
+ group: string;
3461
+ }[]>;
3462
+ /**
3463
+ * List the font families drawing text can use, from the native catalog
3464
+ * (`"DEFAULT"` first). Use these names in a style patch's `fontFamily`
3465
+ * instead of inventing one.
3466
+ *
3467
+ * @returns Font family names.
3468
+ * @throws `PRECONDITION_FAILED` if Present mode is not open.
3469
+ *
3470
+ * @examplePrompt Which fonts can I use for drawing labels?
3471
+ * @examplePrompt Is Inter available as a drawing font?
3472
+ * @examplePrompt List the fonts for the title block
3473
+ *
3474
+ * # Example
3475
+ * ```ts
3476
+ * const fonts = await snaptrude.presentation.drawings.listFonts()
3477
+ * const family = fonts.includes("Inter") ? "Inter" : "DEFAULT"
3478
+ * ```
3479
+ */
3480
+ abstract listFonts(): PluginApiReturn<string[]>;
3481
+ /**
3482
+ * Export one drawing, with its labels and annotations, without a sheet.
3483
+ * PDF size follows the drawing's canvas bounds; SVG and PDF keep vector
3484
+ * content, raster fallbacks stay raster. `resolution` applies to raster
3485
+ * formats. It does not wait for the canvas to paint, so it works while the
3486
+ * user is on another browser tab.
3487
+ * `download: true` starts a browser download and returns metadata only
3488
+ * (never send large base64 to an agent); otherwise `files` carry
3489
+ * `dataBase64`. `downloadStarted` means initiated, not proof of an OS-saved
3490
+ * file. Layout warnings are returned.
3491
+ * `fileName` is a base name WITHOUT an extension ("Floor Pattern View", never
3492
+ * "Floor Pattern View.pdf"): the host appends .pdf/.svg/.png/.jpg for the
3493
+ * format, and a name ending in .pdf, .svg, .png, .jpg or .jpeg, a dot or a
3494
+ * space is rejected.
3495
+ *
3496
+ * @param drawingId - The drawing to export.
3497
+ * @param format - `"pdf"`, `"svg"`, `"png"` or `"jpg"`.
3498
+ * @param options - Optional `fileName` (base name, no extension),
3499
+ * `resolution` (raster formats) and `download`.
3500
+ * @returns A {@linkcode PluginDrawingExportResult}: the files, whether a
3501
+ * download started, and layout warnings.
3502
+ * @throws `VALIDATION` for a `fileName` with an extension or ending in a dot
3503
+ * or space, or a bad `resolution`; `PRECONDITION_FAILED` if Present mode is
3504
+ * not open or the drawing's asset is not ready yet (each with a hint);
3505
+ * `HANDLE_INVALID` if `drawingId` is not a drawing; `OPERATION_FAILED` if
3506
+ * the export failed.
3507
+ *
3508
+ * @examplePrompt Export this drawing as a PDF
3509
+ * @examplePrompt Download the ground floor plan drawing as an SVG
3510
+ * @examplePrompt Save this drawing as a high-resolution PNG
3511
+ *
3512
+ * # Example
3513
+ * ```ts
3514
+ * await snaptrude.presentation.drawings.getStatus(drawing.id, { waitMs: 10_000 })
3515
+ * const result = await snaptrude.presentation.drawings.export(drawing.id, "pdf", {
3516
+ * fileName: "Ground Floor Plan",
3517
+ * download: true,
3518
+ * })
3519
+ * ```
3520
+ */
3521
+ abstract export(drawingId: string, format: PluginDrawingExportFormat, options?: PluginDrawingExportOptions): PluginApiReturn<PluginDrawingExportResult>;
3522
+ }
3523
+ //# sourceMappingURL=drawings.d.ts.map