@react-arch/validation 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,1322 @@
1
+ import { z } from "zod";
2
+ import { BuildingDocument } from "@react-arch/core";
3
+ import { Diagnostic, Diagnostic as Diagnostic$1 } from "@react-arch/shared";
4
+
5
+ //#region src/schema.d.ts
6
+ declare const WallSchema: z.ZodObject<{
7
+ id: z.ZodString;
8
+ floorId: z.ZodString;
9
+ start: z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>;
10
+ end: z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>;
11
+ thickness: z.ZodNumber;
12
+ height: z.ZodNumber;
13
+ materialId: z.ZodOptional<z.ZodString>;
14
+ layerId: z.ZodOptional<z.ZodString>;
15
+ locked: z.ZodOptional<z.ZodBoolean>;
16
+ }, "strip", z.ZodTypeAny, {
17
+ id: string;
18
+ floorId: string;
19
+ start: [number, number];
20
+ end: [number, number];
21
+ thickness: number;
22
+ height: number;
23
+ materialId?: string | undefined;
24
+ layerId?: string | undefined;
25
+ locked?: boolean | undefined;
26
+ }, {
27
+ id: string;
28
+ floorId: string;
29
+ start: [number, number];
30
+ end: [number, number];
31
+ thickness: number;
32
+ height: number;
33
+ materialId?: string | undefined;
34
+ layerId?: string | undefined;
35
+ locked?: boolean | undefined;
36
+ }>;
37
+ declare const OpeningSchema: z.ZodObject<{
38
+ id: z.ZodString;
39
+ floorId: z.ZodString;
40
+ wallId: z.ZodString;
41
+ type: z.ZodEnum<["door", "window", "opening"]>;
42
+ offset: z.ZodNumber;
43
+ width: z.ZodNumber;
44
+ height: z.ZodNumber;
45
+ sillHeight: z.ZodNumber;
46
+ swing: z.ZodOptional<z.ZodEnum<["in", "out"]>>;
47
+ hinge: z.ZodOptional<z.ZodEnum<["left", "right"]>>;
48
+ materialId: z.ZodOptional<z.ZodString>;
49
+ }, "strip", z.ZodTypeAny, {
50
+ id: string;
51
+ floorId: string;
52
+ type: "door" | "window" | "opening";
53
+ height: number;
54
+ wallId: string;
55
+ offset: number;
56
+ width: number;
57
+ sillHeight: number;
58
+ materialId?: string | undefined;
59
+ swing?: "in" | "out" | undefined;
60
+ hinge?: "left" | "right" | undefined;
61
+ }, {
62
+ id: string;
63
+ floorId: string;
64
+ type: "door" | "window" | "opening";
65
+ height: number;
66
+ wallId: string;
67
+ offset: number;
68
+ width: number;
69
+ sillHeight: number;
70
+ materialId?: string | undefined;
71
+ swing?: "in" | "out" | undefined;
72
+ hinge?: "left" | "right" | undefined;
73
+ }>;
74
+ declare const RoomSchema: z.ZodObject<{
75
+ id: z.ZodString;
76
+ floorId: z.ZodString;
77
+ name: z.ZodString;
78
+ polygon: z.ZodArray<z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>, "many">;
79
+ boundaryWallIds: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
80
+ floorMaterialId: z.ZodOptional<z.ZodString>;
81
+ ceilingMaterialId: z.ZodOptional<z.ZodString>;
82
+ usageType: z.ZodOptional<z.ZodString>;
83
+ height: z.ZodOptional<z.ZodNumber>;
84
+ }, "strip", z.ZodTypeAny, {
85
+ id: string;
86
+ floorId: string;
87
+ name: string;
88
+ polygon: [number, number][];
89
+ height?: number | undefined;
90
+ boundaryWallIds?: string[] | undefined;
91
+ floorMaterialId?: string | undefined;
92
+ ceilingMaterialId?: string | undefined;
93
+ usageType?: string | undefined;
94
+ }, {
95
+ id: string;
96
+ floorId: string;
97
+ name: string;
98
+ polygon: [number, number][];
99
+ height?: number | undefined;
100
+ boundaryWallIds?: string[] | undefined;
101
+ floorMaterialId?: string | undefined;
102
+ ceilingMaterialId?: string | undefined;
103
+ usageType?: string | undefined;
104
+ }>;
105
+ declare const BuildingObjectSchema: z.ZodObject<{
106
+ id: z.ZodString;
107
+ floorId: z.ZodString;
108
+ type: z.ZodString;
109
+ position: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
110
+ rotation: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
111
+ scale: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
112
+ assetId: z.ZodOptional<z.ZodString>;
113
+ metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
114
+ }, "strip", z.ZodTypeAny, {
115
+ id: string;
116
+ floorId: string;
117
+ type: string;
118
+ position: [number, number, number];
119
+ rotation: [number, number, number];
120
+ scale: [number, number, number];
121
+ assetId?: string | undefined;
122
+ metadata?: Record<string, unknown> | undefined;
123
+ }, {
124
+ id: string;
125
+ floorId: string;
126
+ type: string;
127
+ position: [number, number, number];
128
+ rotation: [number, number, number];
129
+ scale: [number, number, number];
130
+ assetId?: string | undefined;
131
+ metadata?: Record<string, unknown> | undefined;
132
+ }>;
133
+ declare const FloorSchema: z.ZodObject<{
134
+ id: z.ZodString;
135
+ buildingId: z.ZodString;
136
+ name: z.ZodString;
137
+ elevation: z.ZodNumber;
138
+ height: z.ZodNumber;
139
+ visible: z.ZodBoolean;
140
+ locked: z.ZodBoolean;
141
+ walls: z.ZodArray<z.ZodObject<{
142
+ id: z.ZodString;
143
+ floorId: z.ZodString;
144
+ start: z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>;
145
+ end: z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>;
146
+ thickness: z.ZodNumber;
147
+ height: z.ZodNumber;
148
+ materialId: z.ZodOptional<z.ZodString>;
149
+ layerId: z.ZodOptional<z.ZodString>;
150
+ locked: z.ZodOptional<z.ZodBoolean>;
151
+ }, "strip", z.ZodTypeAny, {
152
+ id: string;
153
+ floorId: string;
154
+ start: [number, number];
155
+ end: [number, number];
156
+ thickness: number;
157
+ height: number;
158
+ materialId?: string | undefined;
159
+ layerId?: string | undefined;
160
+ locked?: boolean | undefined;
161
+ }, {
162
+ id: string;
163
+ floorId: string;
164
+ start: [number, number];
165
+ end: [number, number];
166
+ thickness: number;
167
+ height: number;
168
+ materialId?: string | undefined;
169
+ layerId?: string | undefined;
170
+ locked?: boolean | undefined;
171
+ }>, "many">;
172
+ rooms: z.ZodArray<z.ZodObject<{
173
+ id: z.ZodString;
174
+ floorId: z.ZodString;
175
+ name: z.ZodString;
176
+ polygon: z.ZodArray<z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>, "many">;
177
+ boundaryWallIds: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
178
+ floorMaterialId: z.ZodOptional<z.ZodString>;
179
+ ceilingMaterialId: z.ZodOptional<z.ZodString>;
180
+ usageType: z.ZodOptional<z.ZodString>;
181
+ height: z.ZodOptional<z.ZodNumber>;
182
+ }, "strip", z.ZodTypeAny, {
183
+ id: string;
184
+ floorId: string;
185
+ name: string;
186
+ polygon: [number, number][];
187
+ height?: number | undefined;
188
+ boundaryWallIds?: string[] | undefined;
189
+ floorMaterialId?: string | undefined;
190
+ ceilingMaterialId?: string | undefined;
191
+ usageType?: string | undefined;
192
+ }, {
193
+ id: string;
194
+ floorId: string;
195
+ name: string;
196
+ polygon: [number, number][];
197
+ height?: number | undefined;
198
+ boundaryWallIds?: string[] | undefined;
199
+ floorMaterialId?: string | undefined;
200
+ ceilingMaterialId?: string | undefined;
201
+ usageType?: string | undefined;
202
+ }>, "many">;
203
+ openings: z.ZodArray<z.ZodObject<{
204
+ id: z.ZodString;
205
+ floorId: z.ZodString;
206
+ wallId: z.ZodString;
207
+ type: z.ZodEnum<["door", "window", "opening"]>;
208
+ offset: z.ZodNumber;
209
+ width: z.ZodNumber;
210
+ height: z.ZodNumber;
211
+ sillHeight: z.ZodNumber;
212
+ swing: z.ZodOptional<z.ZodEnum<["in", "out"]>>;
213
+ hinge: z.ZodOptional<z.ZodEnum<["left", "right"]>>;
214
+ materialId: z.ZodOptional<z.ZodString>;
215
+ }, "strip", z.ZodTypeAny, {
216
+ id: string;
217
+ floorId: string;
218
+ type: "door" | "window" | "opening";
219
+ height: number;
220
+ wallId: string;
221
+ offset: number;
222
+ width: number;
223
+ sillHeight: number;
224
+ materialId?: string | undefined;
225
+ swing?: "in" | "out" | undefined;
226
+ hinge?: "left" | "right" | undefined;
227
+ }, {
228
+ id: string;
229
+ floorId: string;
230
+ type: "door" | "window" | "opening";
231
+ height: number;
232
+ wallId: string;
233
+ offset: number;
234
+ width: number;
235
+ sillHeight: number;
236
+ materialId?: string | undefined;
237
+ swing?: "in" | "out" | undefined;
238
+ hinge?: "left" | "right" | undefined;
239
+ }>, "many">;
240
+ objects: z.ZodArray<z.ZodObject<{
241
+ id: z.ZodString;
242
+ floorId: z.ZodString;
243
+ type: z.ZodString;
244
+ position: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
245
+ rotation: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
246
+ scale: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
247
+ assetId: z.ZodOptional<z.ZodString>;
248
+ metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
249
+ }, "strip", z.ZodTypeAny, {
250
+ id: string;
251
+ floorId: string;
252
+ type: string;
253
+ position: [number, number, number];
254
+ rotation: [number, number, number];
255
+ scale: [number, number, number];
256
+ assetId?: string | undefined;
257
+ metadata?: Record<string, unknown> | undefined;
258
+ }, {
259
+ id: string;
260
+ floorId: string;
261
+ type: string;
262
+ position: [number, number, number];
263
+ rotation: [number, number, number];
264
+ scale: [number, number, number];
265
+ assetId?: string | undefined;
266
+ metadata?: Record<string, unknown> | undefined;
267
+ }>, "many">;
268
+ }, "strip", z.ZodTypeAny, {
269
+ id: string;
270
+ height: number;
271
+ locked: boolean;
272
+ name: string;
273
+ buildingId: string;
274
+ elevation: number;
275
+ visible: boolean;
276
+ walls: {
277
+ id: string;
278
+ floorId: string;
279
+ start: [number, number];
280
+ end: [number, number];
281
+ thickness: number;
282
+ height: number;
283
+ materialId?: string | undefined;
284
+ layerId?: string | undefined;
285
+ locked?: boolean | undefined;
286
+ }[];
287
+ rooms: {
288
+ id: string;
289
+ floorId: string;
290
+ name: string;
291
+ polygon: [number, number][];
292
+ height?: number | undefined;
293
+ boundaryWallIds?: string[] | undefined;
294
+ floorMaterialId?: string | undefined;
295
+ ceilingMaterialId?: string | undefined;
296
+ usageType?: string | undefined;
297
+ }[];
298
+ openings: {
299
+ id: string;
300
+ floorId: string;
301
+ type: "door" | "window" | "opening";
302
+ height: number;
303
+ wallId: string;
304
+ offset: number;
305
+ width: number;
306
+ sillHeight: number;
307
+ materialId?: string | undefined;
308
+ swing?: "in" | "out" | undefined;
309
+ hinge?: "left" | "right" | undefined;
310
+ }[];
311
+ objects: {
312
+ id: string;
313
+ floorId: string;
314
+ type: string;
315
+ position: [number, number, number];
316
+ rotation: [number, number, number];
317
+ scale: [number, number, number];
318
+ assetId?: string | undefined;
319
+ metadata?: Record<string, unknown> | undefined;
320
+ }[];
321
+ }, {
322
+ id: string;
323
+ height: number;
324
+ locked: boolean;
325
+ name: string;
326
+ buildingId: string;
327
+ elevation: number;
328
+ visible: boolean;
329
+ walls: {
330
+ id: string;
331
+ floorId: string;
332
+ start: [number, number];
333
+ end: [number, number];
334
+ thickness: number;
335
+ height: number;
336
+ materialId?: string | undefined;
337
+ layerId?: string | undefined;
338
+ locked?: boolean | undefined;
339
+ }[];
340
+ rooms: {
341
+ id: string;
342
+ floorId: string;
343
+ name: string;
344
+ polygon: [number, number][];
345
+ height?: number | undefined;
346
+ boundaryWallIds?: string[] | undefined;
347
+ floorMaterialId?: string | undefined;
348
+ ceilingMaterialId?: string | undefined;
349
+ usageType?: string | undefined;
350
+ }[];
351
+ openings: {
352
+ id: string;
353
+ floorId: string;
354
+ type: "door" | "window" | "opening";
355
+ height: number;
356
+ wallId: string;
357
+ offset: number;
358
+ width: number;
359
+ sillHeight: number;
360
+ materialId?: string | undefined;
361
+ swing?: "in" | "out" | undefined;
362
+ hinge?: "left" | "right" | undefined;
363
+ }[];
364
+ objects: {
365
+ id: string;
366
+ floorId: string;
367
+ type: string;
368
+ position: [number, number, number];
369
+ rotation: [number, number, number];
370
+ scale: [number, number, number];
371
+ assetId?: string | undefined;
372
+ metadata?: Record<string, unknown> | undefined;
373
+ }[];
374
+ }>;
375
+ declare const BuildingSchema: z.ZodObject<{
376
+ id: z.ZodString;
377
+ name: z.ZodString;
378
+ floors: z.ZodArray<z.ZodObject<{
379
+ id: z.ZodString;
380
+ buildingId: z.ZodString;
381
+ name: z.ZodString;
382
+ elevation: z.ZodNumber;
383
+ height: z.ZodNumber;
384
+ visible: z.ZodBoolean;
385
+ locked: z.ZodBoolean;
386
+ walls: z.ZodArray<z.ZodObject<{
387
+ id: z.ZodString;
388
+ floorId: z.ZodString;
389
+ start: z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>;
390
+ end: z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>;
391
+ thickness: z.ZodNumber;
392
+ height: z.ZodNumber;
393
+ materialId: z.ZodOptional<z.ZodString>;
394
+ layerId: z.ZodOptional<z.ZodString>;
395
+ locked: z.ZodOptional<z.ZodBoolean>;
396
+ }, "strip", z.ZodTypeAny, {
397
+ id: string;
398
+ floorId: string;
399
+ start: [number, number];
400
+ end: [number, number];
401
+ thickness: number;
402
+ height: number;
403
+ materialId?: string | undefined;
404
+ layerId?: string | undefined;
405
+ locked?: boolean | undefined;
406
+ }, {
407
+ id: string;
408
+ floorId: string;
409
+ start: [number, number];
410
+ end: [number, number];
411
+ thickness: number;
412
+ height: number;
413
+ materialId?: string | undefined;
414
+ layerId?: string | undefined;
415
+ locked?: boolean | undefined;
416
+ }>, "many">;
417
+ rooms: z.ZodArray<z.ZodObject<{
418
+ id: z.ZodString;
419
+ floorId: z.ZodString;
420
+ name: z.ZodString;
421
+ polygon: z.ZodArray<z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>, "many">;
422
+ boundaryWallIds: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
423
+ floorMaterialId: z.ZodOptional<z.ZodString>;
424
+ ceilingMaterialId: z.ZodOptional<z.ZodString>;
425
+ usageType: z.ZodOptional<z.ZodString>;
426
+ height: z.ZodOptional<z.ZodNumber>;
427
+ }, "strip", z.ZodTypeAny, {
428
+ id: string;
429
+ floorId: string;
430
+ name: string;
431
+ polygon: [number, number][];
432
+ height?: number | undefined;
433
+ boundaryWallIds?: string[] | undefined;
434
+ floorMaterialId?: string | undefined;
435
+ ceilingMaterialId?: string | undefined;
436
+ usageType?: string | undefined;
437
+ }, {
438
+ id: string;
439
+ floorId: string;
440
+ name: string;
441
+ polygon: [number, number][];
442
+ height?: number | undefined;
443
+ boundaryWallIds?: string[] | undefined;
444
+ floorMaterialId?: string | undefined;
445
+ ceilingMaterialId?: string | undefined;
446
+ usageType?: string | undefined;
447
+ }>, "many">;
448
+ openings: z.ZodArray<z.ZodObject<{
449
+ id: z.ZodString;
450
+ floorId: z.ZodString;
451
+ wallId: z.ZodString;
452
+ type: z.ZodEnum<["door", "window", "opening"]>;
453
+ offset: z.ZodNumber;
454
+ width: z.ZodNumber;
455
+ height: z.ZodNumber;
456
+ sillHeight: z.ZodNumber;
457
+ swing: z.ZodOptional<z.ZodEnum<["in", "out"]>>;
458
+ hinge: z.ZodOptional<z.ZodEnum<["left", "right"]>>;
459
+ materialId: z.ZodOptional<z.ZodString>;
460
+ }, "strip", z.ZodTypeAny, {
461
+ id: string;
462
+ floorId: string;
463
+ type: "door" | "window" | "opening";
464
+ height: number;
465
+ wallId: string;
466
+ offset: number;
467
+ width: number;
468
+ sillHeight: number;
469
+ materialId?: string | undefined;
470
+ swing?: "in" | "out" | undefined;
471
+ hinge?: "left" | "right" | undefined;
472
+ }, {
473
+ id: string;
474
+ floorId: string;
475
+ type: "door" | "window" | "opening";
476
+ height: number;
477
+ wallId: string;
478
+ offset: number;
479
+ width: number;
480
+ sillHeight: number;
481
+ materialId?: string | undefined;
482
+ swing?: "in" | "out" | undefined;
483
+ hinge?: "left" | "right" | undefined;
484
+ }>, "many">;
485
+ objects: z.ZodArray<z.ZodObject<{
486
+ id: z.ZodString;
487
+ floorId: z.ZodString;
488
+ type: z.ZodString;
489
+ position: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
490
+ rotation: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
491
+ scale: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
492
+ assetId: z.ZodOptional<z.ZodString>;
493
+ metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
494
+ }, "strip", z.ZodTypeAny, {
495
+ id: string;
496
+ floorId: string;
497
+ type: string;
498
+ position: [number, number, number];
499
+ rotation: [number, number, number];
500
+ scale: [number, number, number];
501
+ assetId?: string | undefined;
502
+ metadata?: Record<string, unknown> | undefined;
503
+ }, {
504
+ id: string;
505
+ floorId: string;
506
+ type: string;
507
+ position: [number, number, number];
508
+ rotation: [number, number, number];
509
+ scale: [number, number, number];
510
+ assetId?: string | undefined;
511
+ metadata?: Record<string, unknown> | undefined;
512
+ }>, "many">;
513
+ }, "strip", z.ZodTypeAny, {
514
+ id: string;
515
+ height: number;
516
+ locked: boolean;
517
+ name: string;
518
+ buildingId: string;
519
+ elevation: number;
520
+ visible: boolean;
521
+ walls: {
522
+ id: string;
523
+ floorId: string;
524
+ start: [number, number];
525
+ end: [number, number];
526
+ thickness: number;
527
+ height: number;
528
+ materialId?: string | undefined;
529
+ layerId?: string | undefined;
530
+ locked?: boolean | undefined;
531
+ }[];
532
+ rooms: {
533
+ id: string;
534
+ floorId: string;
535
+ name: string;
536
+ polygon: [number, number][];
537
+ height?: number | undefined;
538
+ boundaryWallIds?: string[] | undefined;
539
+ floorMaterialId?: string | undefined;
540
+ ceilingMaterialId?: string | undefined;
541
+ usageType?: string | undefined;
542
+ }[];
543
+ openings: {
544
+ id: string;
545
+ floorId: string;
546
+ type: "door" | "window" | "opening";
547
+ height: number;
548
+ wallId: string;
549
+ offset: number;
550
+ width: number;
551
+ sillHeight: number;
552
+ materialId?: string | undefined;
553
+ swing?: "in" | "out" | undefined;
554
+ hinge?: "left" | "right" | undefined;
555
+ }[];
556
+ objects: {
557
+ id: string;
558
+ floorId: string;
559
+ type: string;
560
+ position: [number, number, number];
561
+ rotation: [number, number, number];
562
+ scale: [number, number, number];
563
+ assetId?: string | undefined;
564
+ metadata?: Record<string, unknown> | undefined;
565
+ }[];
566
+ }, {
567
+ id: string;
568
+ height: number;
569
+ locked: boolean;
570
+ name: string;
571
+ buildingId: string;
572
+ elevation: number;
573
+ visible: boolean;
574
+ walls: {
575
+ id: string;
576
+ floorId: string;
577
+ start: [number, number];
578
+ end: [number, number];
579
+ thickness: number;
580
+ height: number;
581
+ materialId?: string | undefined;
582
+ layerId?: string | undefined;
583
+ locked?: boolean | undefined;
584
+ }[];
585
+ rooms: {
586
+ id: string;
587
+ floorId: string;
588
+ name: string;
589
+ polygon: [number, number][];
590
+ height?: number | undefined;
591
+ boundaryWallIds?: string[] | undefined;
592
+ floorMaterialId?: string | undefined;
593
+ ceilingMaterialId?: string | undefined;
594
+ usageType?: string | undefined;
595
+ }[];
596
+ openings: {
597
+ id: string;
598
+ floorId: string;
599
+ type: "door" | "window" | "opening";
600
+ height: number;
601
+ wallId: string;
602
+ offset: number;
603
+ width: number;
604
+ sillHeight: number;
605
+ materialId?: string | undefined;
606
+ swing?: "in" | "out" | undefined;
607
+ hinge?: "left" | "right" | undefined;
608
+ }[];
609
+ objects: {
610
+ id: string;
611
+ floorId: string;
612
+ type: string;
613
+ position: [number, number, number];
614
+ rotation: [number, number, number];
615
+ scale: [number, number, number];
616
+ assetId?: string | undefined;
617
+ metadata?: Record<string, unknown> | undefined;
618
+ }[];
619
+ }>, "many">;
620
+ }, "strip", z.ZodTypeAny, {
621
+ id: string;
622
+ name: string;
623
+ floors: {
624
+ id: string;
625
+ height: number;
626
+ locked: boolean;
627
+ name: string;
628
+ buildingId: string;
629
+ elevation: number;
630
+ visible: boolean;
631
+ walls: {
632
+ id: string;
633
+ floorId: string;
634
+ start: [number, number];
635
+ end: [number, number];
636
+ thickness: number;
637
+ height: number;
638
+ materialId?: string | undefined;
639
+ layerId?: string | undefined;
640
+ locked?: boolean | undefined;
641
+ }[];
642
+ rooms: {
643
+ id: string;
644
+ floorId: string;
645
+ name: string;
646
+ polygon: [number, number][];
647
+ height?: number | undefined;
648
+ boundaryWallIds?: string[] | undefined;
649
+ floorMaterialId?: string | undefined;
650
+ ceilingMaterialId?: string | undefined;
651
+ usageType?: string | undefined;
652
+ }[];
653
+ openings: {
654
+ id: string;
655
+ floorId: string;
656
+ type: "door" | "window" | "opening";
657
+ height: number;
658
+ wallId: string;
659
+ offset: number;
660
+ width: number;
661
+ sillHeight: number;
662
+ materialId?: string | undefined;
663
+ swing?: "in" | "out" | undefined;
664
+ hinge?: "left" | "right" | undefined;
665
+ }[];
666
+ objects: {
667
+ id: string;
668
+ floorId: string;
669
+ type: string;
670
+ position: [number, number, number];
671
+ rotation: [number, number, number];
672
+ scale: [number, number, number];
673
+ assetId?: string | undefined;
674
+ metadata?: Record<string, unknown> | undefined;
675
+ }[];
676
+ }[];
677
+ }, {
678
+ id: string;
679
+ name: string;
680
+ floors: {
681
+ id: string;
682
+ height: number;
683
+ locked: boolean;
684
+ name: string;
685
+ buildingId: string;
686
+ elevation: number;
687
+ visible: boolean;
688
+ walls: {
689
+ id: string;
690
+ floorId: string;
691
+ start: [number, number];
692
+ end: [number, number];
693
+ thickness: number;
694
+ height: number;
695
+ materialId?: string | undefined;
696
+ layerId?: string | undefined;
697
+ locked?: boolean | undefined;
698
+ }[];
699
+ rooms: {
700
+ id: string;
701
+ floorId: string;
702
+ name: string;
703
+ polygon: [number, number][];
704
+ height?: number | undefined;
705
+ boundaryWallIds?: string[] | undefined;
706
+ floorMaterialId?: string | undefined;
707
+ ceilingMaterialId?: string | undefined;
708
+ usageType?: string | undefined;
709
+ }[];
710
+ openings: {
711
+ id: string;
712
+ floorId: string;
713
+ type: "door" | "window" | "opening";
714
+ height: number;
715
+ wallId: string;
716
+ offset: number;
717
+ width: number;
718
+ sillHeight: number;
719
+ materialId?: string | undefined;
720
+ swing?: "in" | "out" | undefined;
721
+ hinge?: "left" | "right" | undefined;
722
+ }[];
723
+ objects: {
724
+ id: string;
725
+ floorId: string;
726
+ type: string;
727
+ position: [number, number, number];
728
+ rotation: [number, number, number];
729
+ scale: [number, number, number];
730
+ assetId?: string | undefined;
731
+ metadata?: Record<string, unknown> | undefined;
732
+ }[];
733
+ }[];
734
+ }>;
735
+ declare const MaterialSchema: z.ZodObject<{
736
+ id: z.ZodString;
737
+ name: z.ZodString;
738
+ category: z.ZodString;
739
+ baseColor: z.ZodString;
740
+ roughness: z.ZodOptional<z.ZodNumber>;
741
+ metalness: z.ZodOptional<z.ZodNumber>;
742
+ opacity: z.ZodOptional<z.ZodNumber>;
743
+ textureUrl: z.ZodOptional<z.ZodString>;
744
+ }, "strip", z.ZodTypeAny, {
745
+ id: string;
746
+ name: string;
747
+ category: string;
748
+ baseColor: string;
749
+ roughness?: number | undefined;
750
+ metalness?: number | undefined;
751
+ opacity?: number | undefined;
752
+ textureUrl?: string | undefined;
753
+ }, {
754
+ id: string;
755
+ name: string;
756
+ category: string;
757
+ baseColor: string;
758
+ roughness?: number | undefined;
759
+ metalness?: number | undefined;
760
+ opacity?: number | undefined;
761
+ textureUrl?: string | undefined;
762
+ }>;
763
+ declare const BuildingDocumentSchema: z.ZodObject<{
764
+ id: z.ZodString;
765
+ version: z.ZodString;
766
+ name: z.ZodString;
767
+ units: z.ZodEnum<["metric", "imperial"]>;
768
+ site: z.ZodOptional<z.ZodUnknown>;
769
+ buildings: z.ZodArray<z.ZodObject<{
770
+ id: z.ZodString;
771
+ name: z.ZodString;
772
+ floors: z.ZodArray<z.ZodObject<{
773
+ id: z.ZodString;
774
+ buildingId: z.ZodString;
775
+ name: z.ZodString;
776
+ elevation: z.ZodNumber;
777
+ height: z.ZodNumber;
778
+ visible: z.ZodBoolean;
779
+ locked: z.ZodBoolean;
780
+ walls: z.ZodArray<z.ZodObject<{
781
+ id: z.ZodString;
782
+ floorId: z.ZodString;
783
+ start: z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>;
784
+ end: z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>;
785
+ thickness: z.ZodNumber;
786
+ height: z.ZodNumber;
787
+ materialId: z.ZodOptional<z.ZodString>;
788
+ layerId: z.ZodOptional<z.ZodString>;
789
+ locked: z.ZodOptional<z.ZodBoolean>;
790
+ }, "strip", z.ZodTypeAny, {
791
+ id: string;
792
+ floorId: string;
793
+ start: [number, number];
794
+ end: [number, number];
795
+ thickness: number;
796
+ height: number;
797
+ materialId?: string | undefined;
798
+ layerId?: string | undefined;
799
+ locked?: boolean | undefined;
800
+ }, {
801
+ id: string;
802
+ floorId: string;
803
+ start: [number, number];
804
+ end: [number, number];
805
+ thickness: number;
806
+ height: number;
807
+ materialId?: string | undefined;
808
+ layerId?: string | undefined;
809
+ locked?: boolean | undefined;
810
+ }>, "many">;
811
+ rooms: z.ZodArray<z.ZodObject<{
812
+ id: z.ZodString;
813
+ floorId: z.ZodString;
814
+ name: z.ZodString;
815
+ polygon: z.ZodArray<z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>, "many">;
816
+ boundaryWallIds: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
817
+ floorMaterialId: z.ZodOptional<z.ZodString>;
818
+ ceilingMaterialId: z.ZodOptional<z.ZodString>;
819
+ usageType: z.ZodOptional<z.ZodString>;
820
+ height: z.ZodOptional<z.ZodNumber>;
821
+ }, "strip", z.ZodTypeAny, {
822
+ id: string;
823
+ floorId: string;
824
+ name: string;
825
+ polygon: [number, number][];
826
+ height?: number | undefined;
827
+ boundaryWallIds?: string[] | undefined;
828
+ floorMaterialId?: string | undefined;
829
+ ceilingMaterialId?: string | undefined;
830
+ usageType?: string | undefined;
831
+ }, {
832
+ id: string;
833
+ floorId: string;
834
+ name: string;
835
+ polygon: [number, number][];
836
+ height?: number | undefined;
837
+ boundaryWallIds?: string[] | undefined;
838
+ floorMaterialId?: string | undefined;
839
+ ceilingMaterialId?: string | undefined;
840
+ usageType?: string | undefined;
841
+ }>, "many">;
842
+ openings: z.ZodArray<z.ZodObject<{
843
+ id: z.ZodString;
844
+ floorId: z.ZodString;
845
+ wallId: z.ZodString;
846
+ type: z.ZodEnum<["door", "window", "opening"]>;
847
+ offset: z.ZodNumber;
848
+ width: z.ZodNumber;
849
+ height: z.ZodNumber;
850
+ sillHeight: z.ZodNumber;
851
+ swing: z.ZodOptional<z.ZodEnum<["in", "out"]>>;
852
+ hinge: z.ZodOptional<z.ZodEnum<["left", "right"]>>;
853
+ materialId: z.ZodOptional<z.ZodString>;
854
+ }, "strip", z.ZodTypeAny, {
855
+ id: string;
856
+ floorId: string;
857
+ type: "door" | "window" | "opening";
858
+ height: number;
859
+ wallId: string;
860
+ offset: number;
861
+ width: number;
862
+ sillHeight: number;
863
+ materialId?: string | undefined;
864
+ swing?: "in" | "out" | undefined;
865
+ hinge?: "left" | "right" | undefined;
866
+ }, {
867
+ id: string;
868
+ floorId: string;
869
+ type: "door" | "window" | "opening";
870
+ height: number;
871
+ wallId: string;
872
+ offset: number;
873
+ width: number;
874
+ sillHeight: number;
875
+ materialId?: string | undefined;
876
+ swing?: "in" | "out" | undefined;
877
+ hinge?: "left" | "right" | undefined;
878
+ }>, "many">;
879
+ objects: z.ZodArray<z.ZodObject<{
880
+ id: z.ZodString;
881
+ floorId: z.ZodString;
882
+ type: z.ZodString;
883
+ position: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
884
+ rotation: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
885
+ scale: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
886
+ assetId: z.ZodOptional<z.ZodString>;
887
+ metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
888
+ }, "strip", z.ZodTypeAny, {
889
+ id: string;
890
+ floorId: string;
891
+ type: string;
892
+ position: [number, number, number];
893
+ rotation: [number, number, number];
894
+ scale: [number, number, number];
895
+ assetId?: string | undefined;
896
+ metadata?: Record<string, unknown> | undefined;
897
+ }, {
898
+ id: string;
899
+ floorId: string;
900
+ type: string;
901
+ position: [number, number, number];
902
+ rotation: [number, number, number];
903
+ scale: [number, number, number];
904
+ assetId?: string | undefined;
905
+ metadata?: Record<string, unknown> | undefined;
906
+ }>, "many">;
907
+ }, "strip", z.ZodTypeAny, {
908
+ id: string;
909
+ height: number;
910
+ locked: boolean;
911
+ name: string;
912
+ buildingId: string;
913
+ elevation: number;
914
+ visible: boolean;
915
+ walls: {
916
+ id: string;
917
+ floorId: string;
918
+ start: [number, number];
919
+ end: [number, number];
920
+ thickness: number;
921
+ height: number;
922
+ materialId?: string | undefined;
923
+ layerId?: string | undefined;
924
+ locked?: boolean | undefined;
925
+ }[];
926
+ rooms: {
927
+ id: string;
928
+ floorId: string;
929
+ name: string;
930
+ polygon: [number, number][];
931
+ height?: number | undefined;
932
+ boundaryWallIds?: string[] | undefined;
933
+ floorMaterialId?: string | undefined;
934
+ ceilingMaterialId?: string | undefined;
935
+ usageType?: string | undefined;
936
+ }[];
937
+ openings: {
938
+ id: string;
939
+ floorId: string;
940
+ type: "door" | "window" | "opening";
941
+ height: number;
942
+ wallId: string;
943
+ offset: number;
944
+ width: number;
945
+ sillHeight: number;
946
+ materialId?: string | undefined;
947
+ swing?: "in" | "out" | undefined;
948
+ hinge?: "left" | "right" | undefined;
949
+ }[];
950
+ objects: {
951
+ id: string;
952
+ floorId: string;
953
+ type: string;
954
+ position: [number, number, number];
955
+ rotation: [number, number, number];
956
+ scale: [number, number, number];
957
+ assetId?: string | undefined;
958
+ metadata?: Record<string, unknown> | undefined;
959
+ }[];
960
+ }, {
961
+ id: string;
962
+ height: number;
963
+ locked: boolean;
964
+ name: string;
965
+ buildingId: string;
966
+ elevation: number;
967
+ visible: boolean;
968
+ walls: {
969
+ id: string;
970
+ floorId: string;
971
+ start: [number, number];
972
+ end: [number, number];
973
+ thickness: number;
974
+ height: number;
975
+ materialId?: string | undefined;
976
+ layerId?: string | undefined;
977
+ locked?: boolean | undefined;
978
+ }[];
979
+ rooms: {
980
+ id: string;
981
+ floorId: string;
982
+ name: string;
983
+ polygon: [number, number][];
984
+ height?: number | undefined;
985
+ boundaryWallIds?: string[] | undefined;
986
+ floorMaterialId?: string | undefined;
987
+ ceilingMaterialId?: string | undefined;
988
+ usageType?: string | undefined;
989
+ }[];
990
+ openings: {
991
+ id: string;
992
+ floorId: string;
993
+ type: "door" | "window" | "opening";
994
+ height: number;
995
+ wallId: string;
996
+ offset: number;
997
+ width: number;
998
+ sillHeight: number;
999
+ materialId?: string | undefined;
1000
+ swing?: "in" | "out" | undefined;
1001
+ hinge?: "left" | "right" | undefined;
1002
+ }[];
1003
+ objects: {
1004
+ id: string;
1005
+ floorId: string;
1006
+ type: string;
1007
+ position: [number, number, number];
1008
+ rotation: [number, number, number];
1009
+ scale: [number, number, number];
1010
+ assetId?: string | undefined;
1011
+ metadata?: Record<string, unknown> | undefined;
1012
+ }[];
1013
+ }>, "many">;
1014
+ }, "strip", z.ZodTypeAny, {
1015
+ id: string;
1016
+ name: string;
1017
+ floors: {
1018
+ id: string;
1019
+ height: number;
1020
+ locked: boolean;
1021
+ name: string;
1022
+ buildingId: string;
1023
+ elevation: number;
1024
+ visible: boolean;
1025
+ walls: {
1026
+ id: string;
1027
+ floorId: string;
1028
+ start: [number, number];
1029
+ end: [number, number];
1030
+ thickness: number;
1031
+ height: number;
1032
+ materialId?: string | undefined;
1033
+ layerId?: string | undefined;
1034
+ locked?: boolean | undefined;
1035
+ }[];
1036
+ rooms: {
1037
+ id: string;
1038
+ floorId: string;
1039
+ name: string;
1040
+ polygon: [number, number][];
1041
+ height?: number | undefined;
1042
+ boundaryWallIds?: string[] | undefined;
1043
+ floorMaterialId?: string | undefined;
1044
+ ceilingMaterialId?: string | undefined;
1045
+ usageType?: string | undefined;
1046
+ }[];
1047
+ openings: {
1048
+ id: string;
1049
+ floorId: string;
1050
+ type: "door" | "window" | "opening";
1051
+ height: number;
1052
+ wallId: string;
1053
+ offset: number;
1054
+ width: number;
1055
+ sillHeight: number;
1056
+ materialId?: string | undefined;
1057
+ swing?: "in" | "out" | undefined;
1058
+ hinge?: "left" | "right" | undefined;
1059
+ }[];
1060
+ objects: {
1061
+ id: string;
1062
+ floorId: string;
1063
+ type: string;
1064
+ position: [number, number, number];
1065
+ rotation: [number, number, number];
1066
+ scale: [number, number, number];
1067
+ assetId?: string | undefined;
1068
+ metadata?: Record<string, unknown> | undefined;
1069
+ }[];
1070
+ }[];
1071
+ }, {
1072
+ id: string;
1073
+ name: string;
1074
+ floors: {
1075
+ id: string;
1076
+ height: number;
1077
+ locked: boolean;
1078
+ name: string;
1079
+ buildingId: string;
1080
+ elevation: number;
1081
+ visible: boolean;
1082
+ walls: {
1083
+ id: string;
1084
+ floorId: string;
1085
+ start: [number, number];
1086
+ end: [number, number];
1087
+ thickness: number;
1088
+ height: number;
1089
+ materialId?: string | undefined;
1090
+ layerId?: string | undefined;
1091
+ locked?: boolean | undefined;
1092
+ }[];
1093
+ rooms: {
1094
+ id: string;
1095
+ floorId: string;
1096
+ name: string;
1097
+ polygon: [number, number][];
1098
+ height?: number | undefined;
1099
+ boundaryWallIds?: string[] | undefined;
1100
+ floorMaterialId?: string | undefined;
1101
+ ceilingMaterialId?: string | undefined;
1102
+ usageType?: string | undefined;
1103
+ }[];
1104
+ openings: {
1105
+ id: string;
1106
+ floorId: string;
1107
+ type: "door" | "window" | "opening";
1108
+ height: number;
1109
+ wallId: string;
1110
+ offset: number;
1111
+ width: number;
1112
+ sillHeight: number;
1113
+ materialId?: string | undefined;
1114
+ swing?: "in" | "out" | undefined;
1115
+ hinge?: "left" | "right" | undefined;
1116
+ }[];
1117
+ objects: {
1118
+ id: string;
1119
+ floorId: string;
1120
+ type: string;
1121
+ position: [number, number, number];
1122
+ rotation: [number, number, number];
1123
+ scale: [number, number, number];
1124
+ assetId?: string | undefined;
1125
+ metadata?: Record<string, unknown> | undefined;
1126
+ }[];
1127
+ }[];
1128
+ }>, "many">;
1129
+ materials: z.ZodArray<z.ZodObject<{
1130
+ id: z.ZodString;
1131
+ name: z.ZodString;
1132
+ category: z.ZodString;
1133
+ baseColor: z.ZodString;
1134
+ roughness: z.ZodOptional<z.ZodNumber>;
1135
+ metalness: z.ZodOptional<z.ZodNumber>;
1136
+ opacity: z.ZodOptional<z.ZodNumber>;
1137
+ textureUrl: z.ZodOptional<z.ZodString>;
1138
+ }, "strip", z.ZodTypeAny, {
1139
+ id: string;
1140
+ name: string;
1141
+ category: string;
1142
+ baseColor: string;
1143
+ roughness?: number | undefined;
1144
+ metalness?: number | undefined;
1145
+ opacity?: number | undefined;
1146
+ textureUrl?: string | undefined;
1147
+ }, {
1148
+ id: string;
1149
+ name: string;
1150
+ category: string;
1151
+ baseColor: string;
1152
+ roughness?: number | undefined;
1153
+ metalness?: number | undefined;
1154
+ opacity?: number | undefined;
1155
+ textureUrl?: string | undefined;
1156
+ }>, "many">;
1157
+ assets: z.ZodArray<z.ZodUnknown, "many">;
1158
+ metadata: z.ZodRecord<z.ZodString, z.ZodUnknown>;
1159
+ }, "strip", z.ZodTypeAny, {
1160
+ id: string;
1161
+ name: string;
1162
+ metadata: Record<string, unknown>;
1163
+ version: string;
1164
+ units: "metric" | "imperial";
1165
+ buildings: {
1166
+ id: string;
1167
+ name: string;
1168
+ floors: {
1169
+ id: string;
1170
+ height: number;
1171
+ locked: boolean;
1172
+ name: string;
1173
+ buildingId: string;
1174
+ elevation: number;
1175
+ visible: boolean;
1176
+ walls: {
1177
+ id: string;
1178
+ floorId: string;
1179
+ start: [number, number];
1180
+ end: [number, number];
1181
+ thickness: number;
1182
+ height: number;
1183
+ materialId?: string | undefined;
1184
+ layerId?: string | undefined;
1185
+ locked?: boolean | undefined;
1186
+ }[];
1187
+ rooms: {
1188
+ id: string;
1189
+ floorId: string;
1190
+ name: string;
1191
+ polygon: [number, number][];
1192
+ height?: number | undefined;
1193
+ boundaryWallIds?: string[] | undefined;
1194
+ floorMaterialId?: string | undefined;
1195
+ ceilingMaterialId?: string | undefined;
1196
+ usageType?: string | undefined;
1197
+ }[];
1198
+ openings: {
1199
+ id: string;
1200
+ floorId: string;
1201
+ type: "door" | "window" | "opening";
1202
+ height: number;
1203
+ wallId: string;
1204
+ offset: number;
1205
+ width: number;
1206
+ sillHeight: number;
1207
+ materialId?: string | undefined;
1208
+ swing?: "in" | "out" | undefined;
1209
+ hinge?: "left" | "right" | undefined;
1210
+ }[];
1211
+ objects: {
1212
+ id: string;
1213
+ floorId: string;
1214
+ type: string;
1215
+ position: [number, number, number];
1216
+ rotation: [number, number, number];
1217
+ scale: [number, number, number];
1218
+ assetId?: string | undefined;
1219
+ metadata?: Record<string, unknown> | undefined;
1220
+ }[];
1221
+ }[];
1222
+ }[];
1223
+ materials: {
1224
+ id: string;
1225
+ name: string;
1226
+ category: string;
1227
+ baseColor: string;
1228
+ roughness?: number | undefined;
1229
+ metalness?: number | undefined;
1230
+ opacity?: number | undefined;
1231
+ textureUrl?: string | undefined;
1232
+ }[];
1233
+ assets: unknown[];
1234
+ site?: unknown;
1235
+ }, {
1236
+ id: string;
1237
+ name: string;
1238
+ metadata: Record<string, unknown>;
1239
+ version: string;
1240
+ units: "metric" | "imperial";
1241
+ buildings: {
1242
+ id: string;
1243
+ name: string;
1244
+ floors: {
1245
+ id: string;
1246
+ height: number;
1247
+ locked: boolean;
1248
+ name: string;
1249
+ buildingId: string;
1250
+ elevation: number;
1251
+ visible: boolean;
1252
+ walls: {
1253
+ id: string;
1254
+ floorId: string;
1255
+ start: [number, number];
1256
+ end: [number, number];
1257
+ thickness: number;
1258
+ height: number;
1259
+ materialId?: string | undefined;
1260
+ layerId?: string | undefined;
1261
+ locked?: boolean | undefined;
1262
+ }[];
1263
+ rooms: {
1264
+ id: string;
1265
+ floorId: string;
1266
+ name: string;
1267
+ polygon: [number, number][];
1268
+ height?: number | undefined;
1269
+ boundaryWallIds?: string[] | undefined;
1270
+ floorMaterialId?: string | undefined;
1271
+ ceilingMaterialId?: string | undefined;
1272
+ usageType?: string | undefined;
1273
+ }[];
1274
+ openings: {
1275
+ id: string;
1276
+ floorId: string;
1277
+ type: "door" | "window" | "opening";
1278
+ height: number;
1279
+ wallId: string;
1280
+ offset: number;
1281
+ width: number;
1282
+ sillHeight: number;
1283
+ materialId?: string | undefined;
1284
+ swing?: "in" | "out" | undefined;
1285
+ hinge?: "left" | "right" | undefined;
1286
+ }[];
1287
+ objects: {
1288
+ id: string;
1289
+ floorId: string;
1290
+ type: string;
1291
+ position: [number, number, number];
1292
+ rotation: [number, number, number];
1293
+ scale: [number, number, number];
1294
+ assetId?: string | undefined;
1295
+ metadata?: Record<string, unknown> | undefined;
1296
+ }[];
1297
+ }[];
1298
+ }[];
1299
+ materials: {
1300
+ id: string;
1301
+ name: string;
1302
+ category: string;
1303
+ baseColor: string;
1304
+ roughness?: number | undefined;
1305
+ metalness?: number | undefined;
1306
+ opacity?: number | undefined;
1307
+ textureUrl?: string | undefined;
1308
+ }[];
1309
+ assets: unknown[];
1310
+ site?: unknown;
1311
+ }>;
1312
+ //#endregion
1313
+ //#region src/validate.d.ts
1314
+ /**
1315
+ * Validate a document and return structured diagnostics. Runs the Zod schema
1316
+ * for shape, then semantic checks (unique ids, references, fit). The studio
1317
+ * shows these in the diagnostics panel; clicking one selects the entity.
1318
+ */
1319
+ declare function validateDocument(doc: BuildingDocument): Diagnostic$1[];
1320
+ //#endregion
1321
+ export { BuildingDocumentSchema, BuildingObjectSchema, BuildingSchema, type Diagnostic, FloorSchema, MaterialSchema, OpeningSchema, RoomSchema, WallSchema, validateDocument };
1322
+ //# sourceMappingURL=index.d.ts.map