@variantic/player 0.0.24 → 0.0.26

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 (36) hide show
  1. package/README.md +35 -3
  2. package/assembly.d.ts +4771 -0
  3. package/index.d.ts +2198 -0
  4. package/package.json +17 -10
  5. package/libs/packages/player/src/index.d.ts +0 -8
  6. package/libs/schemas/engine/src/index.d.ts +0 -4
  7. package/libs/schemas/engine/src/lib/documentation.d.ts +0 -9
  8. package/libs/schemas/engine/src/lib/engine.d.ts +0 -215
  9. package/libs/schemas/engine/src/lib/publication.d.ts +0 -82
  10. package/libs/schemas/engine/src/lib/studio.d.ts +0 -81
  11. package/libs/schemas/file-types/export-configuration/src/index.d.ts +0 -1
  12. package/libs/schemas/file-types/export-configuration/src/lib/export-configuration.d.ts +0 -10
  13. package/libs/schemas/file-types/vas/src/index.d.ts +0 -3
  14. package/libs/schemas/file-types/vas/src/lib/interaction.d.ts +0 -3
  15. package/libs/schemas/file-types/vas/src/lib/object-configuration.d.ts +0 -25
  16. package/libs/schemas/file-types/vas/src/lib/vas.d.ts +0 -612
  17. package/libs/schemas/library-api/src/index.d.ts +0 -1
  18. package/libs/schemas/library-api/src/lib/library-api.d.ts +0 -27
  19. package/libs/schemas/web-component/api/player/ar/src/index.d.ts +0 -1
  20. package/libs/schemas/web-component/api/player/ar/src/lib/ar.d.ts +0 -22
  21. package/libs/schemas/web-component/api/player/configuration/src/index.d.ts +0 -1
  22. package/libs/schemas/web-component/api/player/configuration/src/lib/configuration.d.ts +0 -27
  23. package/libs/schemas/web-component/api/player/documentation/src/index.d.ts +0 -1
  24. package/libs/schemas/web-component/api/player/documentation/src/lib/documentation.d.ts +0 -26
  25. package/libs/schemas/web-component/api/player/events/src/index.d.ts +0 -1
  26. package/libs/schemas/web-component/api/player/events/src/lib/events.d.ts +0 -19
  27. package/libs/schemas/web-component/api/player/integration-connector/src/index.d.ts +0 -1
  28. package/libs/schemas/web-component/api/player/integration-connector/src/lib/integration-connector.d.ts +0 -30
  29. package/libs/schemas/web-component/api/player/layout/src/index.d.ts +0 -1
  30. package/libs/schemas/web-component/api/player/layout/src/lib/layout.d.ts +0 -18
  31. package/libs/schemas/web-component/api/player/player/src/index.d.ts +0 -1
  32. package/libs/schemas/web-component/api/player/player/src/lib/player.d.ts +0 -46
  33. package/libs/schemas/web-component/api/player/snapshot/src/index.d.ts +0 -1
  34. package/libs/schemas/web-component/api/player/snapshot/src/lib/snapshot.d.ts +0 -29
  35. package/libs/schemas/web-component/api/player/viewer/src/index.d.ts +0 -1
  36. package/libs/schemas/web-component/api/player/viewer/src/lib/viewer.d.ts +0 -471
package/assembly.d.ts ADDED
@@ -0,0 +1,4771 @@
1
+ // Generated by dts-bundle-generator v9.5.1
2
+
3
+ type EventName = PropertyKey;
4
+ type DatalessEventNames<EventData> = {
5
+ [Key in keyof EventData]: EventData[Key] extends undefined ? Key : never;
6
+ }[keyof EventData];
7
+ declare const listenerAdded: unique symbol;
8
+ declare const listenerRemoved: unique symbol;
9
+ type OmnipresentEventData = {
10
+ [listenerAdded]: ListenerChangedData;
11
+ [listenerRemoved]: ListenerChangedData;
12
+ };
13
+ type DebugLogger<EventData, Name extends keyof EventData> = (type: string, debugName: string, eventName?: Name, eventData?: EventData[Name]) => void;
14
+ type DebugOptions<EventData> = {
15
+ /**
16
+ Define a name for the instance of Emittery to use when outputting debug data.
17
+
18
+ @default undefined
19
+
20
+ @example
21
+ ```
22
+ import Emittery from 'emittery';
23
+
24
+ Emittery.isDebugEnabled = true;
25
+
26
+ const emitter = new Emittery({debug: {name: 'myEmitter'}});
27
+
28
+ emitter.on('test', data => {
29
+ // …
30
+ });
31
+
32
+ emitter.emit('test');
33
+ //=> [16:43:20.417][emittery:subscribe][myEmitter] Event Name: test
34
+ // data: undefined
35
+ ```
36
+ */
37
+ readonly name: string;
38
+ /**
39
+ Toggle debug logging just for this instance.
40
+
41
+ @default false
42
+
43
+ @example
44
+ ```
45
+ import Emittery from 'emittery';
46
+
47
+ const emitter1 = new Emittery({debug: {name: 'emitter1', enabled: true}});
48
+ const emitter2 = new Emittery({debug: {name: 'emitter2'}});
49
+
50
+ emitter1.on('test', data => {
51
+ // …
52
+ });
53
+
54
+ emitter2.on('test', data => {
55
+ // …
56
+ });
57
+
58
+ emitter1.emit('test');
59
+ //=> [16:43:20.417][emittery:subscribe][emitter1] Event Name: test
60
+ // data: undefined
61
+
62
+ emitter2.emit('test');
63
+ ```
64
+ */
65
+ readonly enabled?: boolean;
66
+ /**
67
+ Function that handles debug data.
68
+
69
+ @default
70
+ ```
71
+ (type, debugName, eventName, eventData) => {
72
+ eventData = JSON.stringify(eventData);
73
+
74
+ if (typeof eventName === 'symbol' || typeof eventName === 'number') {
75
+ eventName = eventName.toString();
76
+ }
77
+
78
+ const currentTime = new Date();
79
+ const logTime = `${currentTime.getHours()}:${currentTime.getMinutes()}:${currentTime.getSeconds()}.${currentTime.getMilliseconds()}`;
80
+ console.log(`[${logTime}][emittery:${type}][${debugName}] Event Name: ${eventName}\n\tdata: ${eventData}`);
81
+ }
82
+ ```
83
+
84
+ @example
85
+ ```
86
+ import Emittery from 'emittery';
87
+
88
+ const myLogger = (type, debugName, eventName, eventData) => {
89
+ console.log(`[${type}]: ${eventName}`);
90
+ };
91
+
92
+ const emitter = new Emittery({
93
+ debug: {
94
+ name: 'myEmitter',
95
+ enabled: true,
96
+ logger: myLogger
97
+ }
98
+ });
99
+
100
+ emitter.on('test', data => {
101
+ // …
102
+ });
103
+
104
+ emitter.emit('test');
105
+ //=> [subscribe]: test
106
+ ```
107
+ */
108
+ readonly logger?: DebugLogger<EventData, keyof EventData>;
109
+ };
110
+ type Options<EventData> = {
111
+ readonly debug?: DebugOptions<EventData>;
112
+ };
113
+ type EmitteryOncePromise<T> = {
114
+ off(): void;
115
+ } & Promise<T>;
116
+ type UnsubscribeFunction = () => void;
117
+ type ListenerChangedData = {
118
+ /**
119
+ The listener that was added or removed.
120
+ */
121
+ listener: (eventData?: unknown) => (void | Promise<void>);
122
+ /**
123
+ The name of the event that was added or removed if `.on()` or `.off()` was used, or `undefined` if `.onAny()` or `.offAny()` was used.
124
+ */
125
+ eventName?: EventName;
126
+ };
127
+ declare class Emittery<EventData = Record<EventName, any>, // TODO: Use `unknown` instead of `any`.
128
+ AllEventData = EventData & OmnipresentEventData, DatalessEvents = DatalessEventNames<EventData>> {
129
+ /**
130
+ Toggle debug mode for all instances.
131
+
132
+ Default: `true` if the `DEBUG` environment variable is set to `emittery` or `*`, otherwise `false`.
133
+
134
+ @example
135
+ ```
136
+ import Emittery from 'emittery';
137
+
138
+ Emittery.isDebugEnabled = true;
139
+
140
+ const emitter1 = new Emittery({debug: {name: 'myEmitter1'}});
141
+ const emitter2 = new Emittery({debug: {name: 'myEmitter2'}});
142
+
143
+ emitter1.on('test', data => {
144
+ // …
145
+ });
146
+
147
+ emitter2.on('otherTest', data => {
148
+ // …
149
+ });
150
+
151
+ emitter1.emit('test');
152
+ //=> [16:43:20.417][emittery:subscribe][myEmitter1] Event Name: test
153
+ // data: undefined
154
+
155
+ emitter2.emit('otherTest');
156
+ //=> [16:43:20.417][emittery:subscribe][myEmitter2] Event Name: otherTest
157
+ // data: undefined
158
+ ```
159
+ */
160
+ static isDebugEnabled: boolean;
161
+ /**
162
+ Fires when an event listener was added.
163
+
164
+ An object with `listener` and `eventName` (if `on` or `off` was used) is provided as event data.
165
+
166
+ @example
167
+ ```
168
+ import Emittery from 'emittery';
169
+
170
+ const emitter = new Emittery();
171
+
172
+ emitter.on(Emittery.listenerAdded, ({listener, eventName}) => {
173
+ console.log(listener);
174
+ //=> data => {}
175
+
176
+ console.log(eventName);
177
+ //=> '🦄'
178
+ });
179
+
180
+ emitter.on('🦄', data => {
181
+ // Handle data
182
+ });
183
+ ```
184
+ */
185
+ static readonly listenerAdded: typeof listenerAdded;
186
+ /**
187
+ Fires when an event listener was removed.
188
+
189
+ An object with `listener` and `eventName` (if `on` or `off` was used) is provided as event data.
190
+
191
+ @example
192
+ ```
193
+ import Emittery from 'emittery';
194
+
195
+ const emitter = new Emittery();
196
+
197
+ const off = emitter.on('🦄', data => {
198
+ // Handle data
199
+ });
200
+
201
+ emitter.on(Emittery.listenerRemoved, ({listener, eventName}) => {
202
+ console.log(listener);
203
+ //=> data => {}
204
+
205
+ console.log(eventName);
206
+ //=> '🦄'
207
+ });
208
+
209
+ off();
210
+ ```
211
+ */
212
+ static readonly listenerRemoved: typeof listenerRemoved;
213
+ /**
214
+ In TypeScript, it returns a decorator which mixins `Emittery` as property `emitteryPropertyName` and `methodNames`, or all `Emittery` methods if `methodNames` is not defined, into the target class.
215
+
216
+ @example
217
+ ```
218
+ import Emittery from 'emittery';
219
+
220
+ @Emittery.mixin('emittery')
221
+ class MyClass {}
222
+
223
+ const instance = new MyClass();
224
+
225
+ instance.emit('event');
226
+ ```
227
+ */
228
+ static mixin(emitteryPropertyName: string | symbol, methodNames?: readonly string[]): <T extends {
229
+ new (...arguments_: readonly any[]): any;
230
+ }>(klass: T) => T; // eslint-disable-line @typescript-eslint/prefer-function-type
231
+ /**
232
+ Debugging options for the current instance.
233
+ */
234
+ debug: DebugOptions<EventData>;
235
+ /**
236
+ Create a new Emittery instance with the specified options.
237
+
238
+ @returns An instance of Emittery that you can use to listen for and emit events.
239
+ */
240
+ constructor(options?: Options<EventData>);
241
+ /**
242
+ Subscribe to one or more events.
243
+
244
+ Using the same listener multiple times for the same event will result in only one method call per emitted event.
245
+
246
+ @returns An unsubscribe method.
247
+
248
+ @example
249
+ ```
250
+ import Emittery from 'emittery';
251
+
252
+ const emitter = new Emittery();
253
+
254
+ emitter.on('🦄', data => {
255
+ console.log(data);
256
+ });
257
+
258
+ emitter.on(['🦄', '🐶'], data => {
259
+ console.log(data);
260
+ });
261
+
262
+ emitter.emit('🦄', '🌈'); // log => '🌈' x2
263
+ emitter.emit('🐶', '🍖'); // log => '🍖'
264
+ ```
265
+ */
266
+ on<Name extends keyof AllEventData>(eventName: Name | readonly Name[], listener: (eventData: AllEventData[Name]) => void | Promise<void>, options?: {
267
+ signal?: AbortSignal;
268
+ }): UnsubscribeFunction;
269
+ /**
270
+ Get an async iterator which buffers data each time an event is emitted.
271
+
272
+ Call `return()` on the iterator to remove the subscription.
273
+
274
+ @example
275
+ ```
276
+ import Emittery from 'emittery';
277
+
278
+ const emitter = new Emittery();
279
+ const iterator = emitter.events('🦄');
280
+
281
+ emitter.emit('🦄', '🌈1'); // Buffered
282
+ emitter.emit('🦄', '🌈2'); // Buffered
283
+
284
+ iterator
285
+ .next()
286
+ .then(({value, done}) => {
287
+ // done === false
288
+ // value === '🌈1'
289
+ return iterator.next();
290
+ })
291
+ .then(({value, done}) => {
292
+ // done === false
293
+ // value === '🌈2'
294
+ // Revoke subscription
295
+ return iterator.return();
296
+ })
297
+ .then(({done}) => {
298
+ // done === true
299
+ });
300
+ ```
301
+
302
+ In practice you would usually consume the events using the [for await](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/for-await...of) statement. In that case, to revoke the subscription simply break the loop.
303
+
304
+ @example
305
+ ```
306
+ import Emittery from 'emittery';
307
+
308
+ const emitter = new Emittery();
309
+ const iterator = emitter.events('🦄');
310
+
311
+ emitter.emit('🦄', '🌈1'); // Buffered
312
+ emitter.emit('🦄', '🌈2'); // Buffered
313
+
314
+ // In an async context.
315
+ for await (const data of iterator) {
316
+ if (data === '🌈2') {
317
+ break; // Revoke the subscription when we see the value `🌈2`.
318
+ }
319
+ }
320
+ ```
321
+
322
+ It accepts multiple event names.
323
+
324
+ @example
325
+ ```
326
+ import Emittery from 'emittery';
327
+
328
+ const emitter = new Emittery();
329
+ const iterator = emitter.events(['🦄', '🦊']);
330
+
331
+ emitter.emit('🦄', '🌈1'); // Buffered
332
+ emitter.emit('🦊', '🌈2'); // Buffered
333
+
334
+ iterator
335
+ .next()
336
+ .then(({value, done}) => {
337
+ // done === false
338
+ // value === '🌈1'
339
+ return iterator.next();
340
+ })
341
+ .then(({value, done}) => {
342
+ // done === false
343
+ // value === '🌈2'
344
+ // Revoke subscription
345
+ return iterator.return();
346
+ })
347
+ .then(({done}) => {
348
+ // done === true
349
+ });
350
+ ```
351
+ */
352
+ events<Name extends keyof EventData>(eventName: Name | readonly Name[]): AsyncIterableIterator<EventData[Name]>;
353
+ /**
354
+ Remove one or more event subscriptions.
355
+
356
+ @example
357
+ ```
358
+ import Emittery from 'emittery';
359
+
360
+ const emitter = new Emittery();
361
+
362
+ const listener = data => {
363
+ console.log(data);
364
+ };
365
+
366
+ emitter.on(['🦄', '🐶', '🦊'], listener);
367
+ await emitter.emit('🦄', 'a');
368
+ await emitter.emit('🐶', 'b');
369
+ await emitter.emit('🦊', 'c');
370
+ emitter.off('🦄', listener);
371
+ emitter.off(['🐶', '🦊'], listener);
372
+ await emitter.emit('🦄', 'a'); // nothing happens
373
+ await emitter.emit('🐶', 'b'); // nothing happens
374
+ await emitter.emit('🦊', 'c'); // nothing happens
375
+ ```
376
+ */
377
+ off<Name extends keyof AllEventData>(eventName: Name | readonly Name[], listener: (eventData: AllEventData[Name]) => void | Promise<void>): void;
378
+ /**
379
+ Subscribe to one or more events only once. It will be unsubscribed after the first event that matches the predicate (if provided).
380
+
381
+ @param eventName - The event name(s) to subscribe to.
382
+ @param predicate - Optional predicate function to filter event data. The event will only be emitted if the predicate returns true.
383
+
384
+ @returns The promise of event data when `eventName` is emitted and predicate matches (if provided). This promise is extended with an `off` method.
385
+
386
+ @example
387
+ ```
388
+ import Emittery from 'emittery';
389
+
390
+ const emitter = new Emittery();
391
+
392
+ emitter.once('🦄').then(data => {
393
+ console.log(data);
394
+ //=> '🌈'
395
+ });
396
+
397
+ emitter.once(['🦄', '🐶']).then(data => {
398
+ console.log(data);
399
+ });
400
+
401
+ // With predicate
402
+ emitter.once('data', data => data.ok === true).then(data => {
403
+ console.log(data);
404
+ //=> {ok: true, value: 42}
405
+ });
406
+
407
+ emitter.emit('🦄', '🌈'); // Logs `🌈` twice
408
+ emitter.emit('🐶', '🍖'); // Nothing happens
409
+ emitter.emit('data', {ok: false}); // Nothing happens
410
+ emitter.emit('data', {ok: true, value: 42}); // Logs {ok: true, value: 42}
411
+ ```
412
+ */
413
+ once<Name extends keyof AllEventData>(eventName: Name | readonly Name[], predicate?: (eventData: AllEventData[Name]) => boolean): EmitteryOncePromise<AllEventData[Name]>;
414
+ /**
415
+ Trigger an event asynchronously, optionally with some data. Listeners are called in the order they were added, but executed concurrently.
416
+
417
+ @returns A promise that resolves when all the event listeners are done. *Done* meaning executed if synchronous or resolved when an async/promise-returning function. You usually wouldn't want to wait for this, but you could for example catch possible errors. If any of the listeners throw/reject, the returned promise will be rejected with the error, but the other listeners will not be affected.
418
+ */
419
+ emit<Name extends DatalessEvents>(eventName: Name): Promise<void>;
420
+ emit<Name extends keyof EventData>(eventName: Name, eventData: EventData[Name]): Promise<void>;
421
+ /**
422
+ Same as `emit()`, but it waits for each listener to resolve before triggering the next one. This can be useful if your events depend on each other. Although ideally they should not. Prefer `emit()` whenever possible.
423
+
424
+ If any of the listeners throw/reject, the returned promise will be rejected with the error and the remaining listeners will *not* be called.
425
+
426
+ @returns A promise that resolves when all the event listeners are done.
427
+ */
428
+ emitSerial<Name extends DatalessEvents>(eventName: Name): Promise<void>;
429
+ emitSerial<Name extends keyof EventData>(eventName: Name, eventData: EventData[Name]): Promise<void>;
430
+ /**
431
+ Subscribe to be notified about any event.
432
+
433
+ @returns A method to unsubscribe.
434
+ */
435
+ onAny(listener: (eventName: keyof EventData, eventData: EventData[keyof EventData]) => void | Promise<void>, options?: {
436
+ signal?: AbortSignal;
437
+ }): UnsubscribeFunction;
438
+ /**
439
+ Get an async iterator which buffers a tuple of an event name and data each time an event is emitted.
440
+
441
+ Call `return()` on the iterator to remove the subscription.
442
+
443
+ In the same way as for `events`, you can subscribe by using the `for await` statement.
444
+
445
+ @example
446
+ ```
447
+ import Emittery from 'emittery';
448
+
449
+ const emitter = new Emittery();
450
+ const iterator = emitter.anyEvent();
451
+
452
+ emitter.emit('🦄', '🌈1'); // Buffered
453
+ emitter.emit('🌟', '🌈2'); // Buffered
454
+
455
+ iterator.next()
456
+ .then(({value, done}) => {
457
+ // done is false
458
+ // value is ['🦄', '🌈1']
459
+ return iterator.next();
460
+ })
461
+ .then(({value, done}) => {
462
+ // done is false
463
+ // value is ['🌟', '🌈2']
464
+ // revoke subscription
465
+ return iterator.return();
466
+ })
467
+ .then(({done}) => {
468
+ // done is true
469
+ });
470
+ ```
471
+ */
472
+ anyEvent(): AsyncIterableIterator<[
473
+ keyof EventData,
474
+ EventData[keyof EventData]
475
+ ]>;
476
+ /**
477
+ Remove an `onAny` subscription.
478
+ */
479
+ offAny(listener: (eventName: keyof EventData, eventData: EventData[keyof EventData]) => void | Promise<void>): void;
480
+ /**
481
+ Clear all event listeners on the instance.
482
+
483
+ If `eventName` is given, only the listeners for that event are cleared.
484
+ */
485
+ clearListeners<Name extends keyof EventData>(eventName?: Name | readonly Name[]): void;
486
+ /**
487
+ The number of listeners for the `eventName` or all events if not specified.
488
+ */
489
+ listenerCount<Name extends keyof EventData>(eventName?: Name | readonly Name[]): number;
490
+ /**
491
+ Bind the given `methodNames`, or all `Emittery` methods if `methodNames` is not defined, into the `target` object.
492
+
493
+ @example
494
+ ```
495
+ import Emittery from 'emittery';
496
+
497
+ const object = {};
498
+
499
+ new Emittery().bindMethods(object);
500
+
501
+ object.emit('event');
502
+ ```
503
+ */
504
+ bindMethods(target: Record<string, unknown>, methodNames?: readonly string[]): void;
505
+ }
506
+ declare const ReadonlyKind: unique symbol;
507
+ declare const OptionalKind: unique symbol;
508
+ declare const Hint: unique symbol;
509
+ declare const Kind: unique symbol;
510
+ interface TAny extends TSchema {
511
+ [Kind]: "Any";
512
+ static: any;
513
+ }
514
+ type TReadonly<T extends TSchema> = T & {
515
+ [ReadonlyKind]: "Readonly";
516
+ };
517
+ type TLiteralValue = boolean | number | string;
518
+ interface TLiteral<T extends TLiteralValue = TLiteralValue> extends TSchema {
519
+ [Kind]: "Literal";
520
+ static: T;
521
+ const: T;
522
+ }
523
+ type TIntersectStatic<T extends TSchema[], P extends unknown[], Acc extends unknown = unknown> = T extends [
524
+ infer L extends TSchema,
525
+ ...infer R extends TSchema[]
526
+ ] ? TIntersectStatic<R, P, Acc & Static<L, P>> : Acc;
527
+ type TUnevaluatedProperties = undefined | TSchema | boolean;
528
+ interface IntersectOptions extends SchemaOptions {
529
+ unevaluatedProperties?: TUnevaluatedProperties;
530
+ }
531
+ interface TIntersect<T extends TSchema[] = TSchema[]> extends TSchema, IntersectOptions {
532
+ [Kind]: "Intersect";
533
+ static: TIntersectStatic<T, this["params"]>;
534
+ type?: "object";
535
+ allOf: [
536
+ ...T
537
+ ];
538
+ }
539
+ type UnionStatic<T extends TSchema[], P extends unknown[]> = {
540
+ [K in keyof T]: T[K] extends TSchema ? Static<T[K], P> : never;
541
+ }[number];
542
+ interface TUnion<T extends TSchema[] = TSchema[]> extends TSchema {
543
+ [Kind]: "Union";
544
+ static: UnionStatic<T, this["params"]>;
545
+ anyOf: T;
546
+ }
547
+ type StringFormatOption = "date-time" | "time" | "date" | "email" | "idn-email" | "hostname" | "idn-hostname" | "ipv4" | "ipv6" | "uri" | "uri-reference" | "iri" | "uuid" | "iri-reference" | "uri-template" | "json-pointer" | "relative-json-pointer" | "regex" | ({} & string);
548
+ type StringContentEncodingOption = "7bit" | "8bit" | "binary" | "quoted-printable" | "base64" | ({} & string);
549
+ interface StringOptions extends SchemaOptions {
550
+ /** The maximum string length */
551
+ maxLength?: number;
552
+ /** The minimum string length */
553
+ minLength?: number;
554
+ /** A regular expression pattern this string should match */
555
+ pattern?: string;
556
+ /** A format this string should match */
557
+ format?: StringFormatOption;
558
+ /** The content encoding for this string */
559
+ contentEncoding?: StringContentEncodingOption;
560
+ /** The content media type for this string */
561
+ contentMediaType?: string;
562
+ }
563
+ interface TString extends TSchema, StringOptions {
564
+ [Kind]: "String";
565
+ static: string;
566
+ type: "string";
567
+ }
568
+ interface TBoolean extends TSchema {
569
+ [Kind]: "Boolean";
570
+ static: boolean;
571
+ type: "boolean";
572
+ }
573
+ interface NumberOptions extends SchemaOptions {
574
+ exclusiveMaximum?: number;
575
+ exclusiveMinimum?: number;
576
+ maximum?: number;
577
+ minimum?: number;
578
+ multipleOf?: number;
579
+ }
580
+ interface TNumber extends TSchema, NumberOptions {
581
+ [Kind]: "Number";
582
+ static: number;
583
+ type: "number";
584
+ }
585
+ interface IntegerOptions extends SchemaOptions {
586
+ exclusiveMaximum?: number;
587
+ exclusiveMinimum?: number;
588
+ maximum?: number;
589
+ minimum?: number;
590
+ multipleOf?: number;
591
+ }
592
+ interface TInteger extends TSchema, IntegerOptions {
593
+ [Kind]: "Integer";
594
+ static: number;
595
+ type: "integer";
596
+ }
597
+ type TOptional<T extends TSchema> = T & {
598
+ [OptionalKind]: "Optional";
599
+ };
600
+ interface TNull extends TSchema {
601
+ [Kind]: "Null";
602
+ static: null;
603
+ type: "null";
604
+ }
605
+ type RecordStatic<Key extends TSchema, Type extends TSchema, P extends unknown[]> = (Evaluate<{
606
+ [_ in Assert<Static<Key>, PropertyKey>]: Static<Type, P>;
607
+ }>);
608
+ interface TRecord<Key extends TSchema = TSchema, Type extends TSchema = TSchema> extends TSchema {
609
+ [Kind]: "Record";
610
+ static: RecordStatic<Key, Type, this["params"]>;
611
+ type: "object";
612
+ patternProperties: {
613
+ [pattern: string]: Type;
614
+ };
615
+ additionalProperties: TAdditionalProperties;
616
+ }
617
+ type Static<Type extends TSchema, Params extends unknown[] = [
618
+ ], Result = (Type & {
619
+ params: Params;
620
+ })["static"]> = Result;
621
+ type ReadonlyOptionalPropertyKeys<T extends TProperties> = {
622
+ [K in keyof T]: T[K] extends TReadonly<TSchema> ? (T[K] extends TOptional<T[K]> ? K : never) : never;
623
+ }[keyof T];
624
+ type ReadonlyPropertyKeys<T extends TProperties> = {
625
+ [K in keyof T]: T[K] extends TReadonly<TSchema> ? (T[K] extends TOptional<T[K]> ? never : K) : never;
626
+ }[keyof T];
627
+ type OptionalPropertyKeys<T extends TProperties> = {
628
+ [K in keyof T]: T[K] extends TOptional<TSchema> ? (T[K] extends TReadonly<T[K]> ? never : K) : never;
629
+ }[keyof T];
630
+ type RequiredPropertyKeys<T extends TProperties> = keyof Omit<T, ReadonlyOptionalPropertyKeys<T> | ReadonlyPropertyKeys<T> | OptionalPropertyKeys<T>>;
631
+ type ObjectStaticProperties<T extends TProperties, R extends Record<keyof any, unknown>> = Evaluate<(Readonly<Partial<Pick<R, ReadonlyOptionalPropertyKeys<T>>>> & Readonly<Pick<R, ReadonlyPropertyKeys<T>>> & Partial<Pick<R, OptionalPropertyKeys<T>>> & Required<Pick<R, RequiredPropertyKeys<T>>>)>;
632
+ type ObjectStatic<T extends TProperties, P extends unknown[]> = ObjectStaticProperties<T, {
633
+ [K in keyof T]: Static<T[K], P>;
634
+ }>;
635
+ type TPropertyKey = string | number;
636
+ type TProperties = Record<TPropertyKey, TSchema>;
637
+ type TIsLiteralString<Type extends string> = ([
638
+ Type
639
+ ] extends [
640
+ string
641
+ ] ? [
642
+ string
643
+ ] extends [
644
+ Type
645
+ ] ? false : true : false);
646
+ type IsRequiredArrayLiteralConstant<RequiredTuple extends string[]> = (RequiredTuple extends [
647
+ infer Left extends string,
648
+ ...infer _ extends string[]
649
+ ] ? TIsLiteralString<Left> : false);
650
+ type TRequiredArray<Properties extends TProperties, RequiredProperties extends TProperties = {
651
+ [Key in keyof Properties as Properties[Key] extends TOptional<Properties[Key]> ? never : Key]: Properties[Key];
652
+ }, RequiredUnion extends string = Extract<keyof RequiredProperties, string>, RequiredTuple extends string[] = UnionToTuple<RequiredUnion>, Result extends string[] | undefined = (IsRequiredArrayLiteralConstant<RequiredTuple> extends true ? RequiredTuple : string[] | undefined)> = Result;
653
+ type TAdditionalProperties = undefined | TSchema | boolean;
654
+ interface ObjectOptions extends SchemaOptions {
655
+ /** Additional property constraints for this object */
656
+ additionalProperties?: TAdditionalProperties;
657
+ /** The minimum number of properties allowed on this object */
658
+ minProperties?: number;
659
+ /** The maximum number of properties allowed on this object */
660
+ maxProperties?: number;
661
+ }
662
+ interface TObject<T extends TProperties = TProperties> extends TSchema, ObjectOptions {
663
+ [Kind]: "Object";
664
+ static: ObjectStatic<T, this["params"]>;
665
+ additionalProperties?: TAdditionalProperties;
666
+ type: "object";
667
+ properties: T;
668
+ required: TRequiredArray<T>;
669
+ }
670
+ type UnionToIntersect<U> = (U extends unknown ? (arg: U) => 0 : never) extends (arg: infer I) => 0 ? I : never;
671
+ type UnionLast<U> = UnionToIntersect<U extends unknown ? (x: U) => 0 : never> extends (x: infer L) => 0 ? L : never;
672
+ type UnionToTuple<U, Acc extends unknown[] = [
673
+ ], R = UnionLast<U>> = [
674
+ U
675
+ ] extends [
676
+ never
677
+ ] ? Acc : UnionToTuple<Exclude<U, R>, [
678
+ Extract<U, R>,
679
+ ...Acc
680
+ ]>;
681
+ type Assert<T, E> = T extends E ? T : never;
682
+ type Evaluate<T> = T extends infer O ? {
683
+ [K in keyof O]: O[K];
684
+ } : never;
685
+ type Ensure<T> = T extends infer U ? U : never;
686
+ interface ArrayOptions extends SchemaOptions {
687
+ /** The minimum number of items in this array */
688
+ minItems?: number;
689
+ /** The maximum number of items in this array */
690
+ maxItems?: number;
691
+ /** Should this schema contain unique items */
692
+ uniqueItems?: boolean;
693
+ /** A schema for which some elements should match */
694
+ contains?: TSchema;
695
+ /** A minimum number of contains schema matches */
696
+ minContains?: number;
697
+ /** A maximum number of contains schema matches */
698
+ maxContains?: number;
699
+ }
700
+ type ArrayStatic<T extends TSchema, P extends unknown[]> = Ensure<Static<T, P>[]>;
701
+ interface TArray<T extends TSchema = TSchema> extends TSchema, ArrayOptions {
702
+ [Kind]: "Array";
703
+ static: ArrayStatic<T, this["params"]>;
704
+ type: "array";
705
+ items: T;
706
+ }
707
+ interface TUnknown extends TSchema {
708
+ [Kind]: "Unknown";
709
+ static: unknown;
710
+ }
711
+ interface SchemaOptions {
712
+ $schema?: string;
713
+ /** Id for this schema */
714
+ $id?: string;
715
+ /** Title of this schema */
716
+ title?: string;
717
+ /** Description of this schema */
718
+ description?: string;
719
+ /** Default value for this schema */
720
+ default?: any;
721
+ /** Example values matching this schema */
722
+ examples?: any;
723
+ /** Optional annotation for readOnly */
724
+ readOnly?: boolean;
725
+ /** Optional annotation for writeOnly */
726
+ writeOnly?: boolean;
727
+ [prop: string]: any;
728
+ }
729
+ interface TKind {
730
+ [Kind]: string;
731
+ }
732
+ interface TSchema extends TKind, SchemaOptions {
733
+ [ReadonlyKind]?: string;
734
+ [OptionalKind]?: string;
735
+ [Hint]?: string;
736
+ params: unknown[];
737
+ static: unknown;
738
+ }
739
+ declare const vasFileSchema: TObject<{
740
+ id: TString;
741
+ set: TObject<{
742
+ configuration: TObject<{
743
+ settings: TOptional<TObject<{
744
+ general: TOptional<TObject<{
745
+ assemblyMode: TOptional<TUnion<[
746
+ TLiteral<"multi-object">,
747
+ TLiteral<"single-object">
748
+ ]>>;
749
+ editorMode: TOptional<TUnion<[
750
+ TLiteral<"default">,
751
+ TLiteral<"assembly">,
752
+ TNull
753
+ ]>>;
754
+ }>>;
755
+ assetsPalette: TOptional<TObject<{
756
+ nodes: TOptional<TArray<TObject<{
757
+ id: TNumber;
758
+ name: TString;
759
+ tags: TArray<TNumber>;
760
+ icon: TOptional<TUnion<[
761
+ TString,
762
+ TNull
763
+ ]>>;
764
+ }>>>;
765
+ roots: TOptional<TArray<TNumber>>;
766
+ tree: TOptional<TRecord<TNumber, TArray<TNumber>>>;
767
+ linkedProperties: TOptional<TObject<{
768
+ name: TOptional<TNumber>;
769
+ description: TOptional<TNumber>;
770
+ image: TOptional<TNumber>;
771
+ }>>;
772
+ styleSettings: TOptional<TObject<{
773
+ image: TOptional<TObject<{
774
+ size: TUnion<[
775
+ TLiteral<"sm">,
776
+ TLiteral<"md">,
777
+ TLiteral<"lg">
778
+ ]>;
779
+ orientation: TUnion<[
780
+ TLiteral<"square">,
781
+ TLiteral<"portrait">,
782
+ TLiteral<"landscape">
783
+ ]>;
784
+ }>>;
785
+ name: TOptional<TObject<{
786
+ visible: TOptional<TBoolean>;
787
+ }>>;
788
+ description: TOptional<TObject<{
789
+ visible: TOptional<TBoolean>;
790
+ }>>;
791
+ }>>;
792
+ defaultNodeId: TOptional<TNumber>;
793
+ patternType: TOptional<TUnion<[
794
+ TLiteral<"hierarchical">,
795
+ TLiteral<"breadcrumbs">
796
+ ]>>;
797
+ addingAssetsMethod: TOptional<TUnion<[
798
+ TLiteral<"dragAndDrop">,
799
+ TLiteral<"clickToAdd">
800
+ ]>>;
801
+ sortingSettings: TOptional<TObject<{
802
+ field: TUnion<[
803
+ TLiteral<"name">,
804
+ TLiteral<"property">
805
+ ]>;
806
+ order: TUnion<[
807
+ TLiteral<"asc">,
808
+ TLiteral<"desc">
809
+ ]>;
810
+ }>>;
811
+ }>>;
812
+ outline: TOptional<TObject<{
813
+ enabled: TOptional<TBoolean>;
814
+ selected: TOptional<TObject<{
815
+ enabled: TOptional<TBoolean>;
816
+ thicknessPx: TOptional<TNumber>;
817
+ visible: TOptional<TObject<{
818
+ color: TOptional<TNumber>;
819
+ alpha: TOptional<TNumber>;
820
+ }>>;
821
+ hidden: TOptional<TObject<{
822
+ color: TOptional<TNumber>;
823
+ alpha: TOptional<TNumber>;
824
+ }>>;
825
+ }>>;
826
+ hover: TOptional<TObject<{
827
+ enabled: TOptional<TBoolean>;
828
+ thicknessPx: TOptional<TNumber>;
829
+ visible: TOptional<TObject<{
830
+ color: TOptional<TNumber>;
831
+ alpha: TOptional<TNumber>;
832
+ fillAlpha: TOptional<TNumber>;
833
+ }>>;
834
+ hidden: TOptional<TObject<{
835
+ color: TOptional<TNumber>;
836
+ alpha: TOptional<TNumber>;
837
+ fillAlpha: TOptional<TNumber>;
838
+ }>>;
839
+ }>>;
840
+ edgeStrength: TOptional<TNumber>;
841
+ edgeGlow: TOptional<TNumber>;
842
+ edgeThickness: TOptional<TNumber>;
843
+ pulsePeriod: TOptional<TNumber>;
844
+ visibleEdgeColor: TOptional<TNumber>;
845
+ hiddenEdgeColor: TOptional<TNumber>;
846
+ }>>;
847
+ highlight: TOptional<TObject<{
848
+ enabled: TOptional<TBoolean>;
849
+ color: TOptional<TNumber>;
850
+ blinkDurationMs: TOptional<TNumber>;
851
+ pulseCount: TOptional<TNumber>;
852
+ lineOpacityStart: TOptional<TNumber>;
853
+ lineOpacityEnd: TOptional<TNumber>;
854
+ boxOpacityStart: TOptional<TNumber>;
855
+ boxOpacityEnd: TOptional<TNumber>;
856
+ }>>;
857
+ dimensions: TOptional<TObject<{
858
+ offsetX: TOptional<TNumber>;
859
+ offsetY: TOptional<TNumber>;
860
+ offsetZ: TOptional<TNumber>;
861
+ rangefinder: TOptional<TObject<{
862
+ lineColor: TOptional<TString>;
863
+ textColor: TOptional<TString>;
864
+ textBackgroundColor: TOptional<TString>;
865
+ }>>;
866
+ }>>;
867
+ autoSnap: TOptional<TObject<{
868
+ enabled: TOptional<TBoolean>;
869
+ requireConnection: TOptional<TBoolean>;
870
+ showSnapPoints: TOptional<TBoolean>;
871
+ delay: TOptional<TNumber>;
872
+ distance: TOptional<TNumber>;
873
+ distanceTolerance: TOptional<TNumber>;
874
+ lookupRadiusPx: TOptional<TNumber>;
875
+ rotationPreviewRadiusPx: TOptional<TNumber>;
876
+ previewStrategy: TOptional<TUnion<[
877
+ TLiteral<"replace-dragged">,
878
+ TLiteral<"highlight-preview">
879
+ ]>>;
880
+ externalDragMovement: TOptional<TUnion<[
881
+ TLiteral<"camera-plane">,
882
+ TLiteral<"floor-slide">,
883
+ TLiteral<"keep-visible">
884
+ ]>>;
885
+ }>>;
886
+ drag: TOptional<TObject<{
887
+ minimumDropDistance: TOptional<TNumber>;
888
+ showGridHelper: TOptional<TBoolean>;
889
+ interactionStrategy: TOptional<TUnion<[
890
+ TLiteral<"directDrag">,
891
+ TLiteral<"pressMoveThreshold">,
892
+ TLiteral<"holdToDrag">
893
+ ]>>;
894
+ desktopHoldDelayMs: TOptional<TNumber>;
895
+ touchHoldDelayMs: TOptional<TNumber>;
896
+ dragStartThresholdPx: TOptional<TNumber>;
897
+ clickTolerancePx: TOptional<TNumber>;
898
+ selectDraggedObjectOnDrop: TOptional<TBoolean>;
899
+ }>>;
900
+ postprocessing: TOptional<TObject<{
901
+ gtao: TOptional<TObject<{
902
+ enabled: TOptional<TBoolean>;
903
+ blendIntensity: TOptional<TNumber>;
904
+ radius: TOptional<TNumber>;
905
+ samples: TOptional<TNumber>;
906
+ distanceFallOff: TOptional<TNumber>;
907
+ screenSpaceRadius: TOptional<TBoolean>;
908
+ denoiseRadius: TOptional<TNumber>;
909
+ denoiseSamples: TOptional<TNumber>;
910
+ }>>;
911
+ outlineEffect: TOptional<TObject<{
912
+ enabled: TOptional<TBoolean>;
913
+ thickness: TOptional<TNumber>;
914
+ color: TOptional<TNumber>;
915
+ alpha: TOptional<TNumber>;
916
+ }>>;
917
+ }>>;
918
+ materials: TOptional<TObject<{
919
+ linkedProperties: TOptional<TObject<{
920
+ name: TOptional<TNumber>;
921
+ thumbnail: TOptional<TNumber>;
922
+ }>>;
923
+ styleSettings: TOptional<TObject<{
924
+ image: TOptional<TObject<{
925
+ size: TUnion<[
926
+ TLiteral<"sm">,
927
+ TLiteral<"md">,
928
+ TLiteral<"lg">
929
+ ]>;
930
+ orientation: TUnion<[
931
+ TLiteral<"square">,
932
+ TLiteral<"portrait">,
933
+ TLiteral<"landscape">
934
+ ]>;
935
+ }>>;
936
+ name: TOptional<TObject<{
937
+ visible: TOptional<TBoolean>;
938
+ }>>;
939
+ description: TOptional<TObject<{
940
+ visible: TOptional<TBoolean>;
941
+ }>>;
942
+ }>>;
943
+ materialsSortingSettings: TOptional<TObject<{
944
+ field: TUnion<[
945
+ TLiteral<"name">,
946
+ TLiteral<"property">
947
+ ]>;
948
+ order: TUnion<[
949
+ TLiteral<"asc">,
950
+ TLiteral<"desc">
951
+ ]>;
952
+ }>>;
953
+ materialGroupsSortingSettings: TOptional<TObject<{
954
+ field: TUnion<[
955
+ TLiteral<"name">,
956
+ TLiteral<"property">
957
+ ]>;
958
+ order: TUnion<[
959
+ TLiteral<"asc">,
960
+ TLiteral<"desc">
961
+ ]>;
962
+ }>>;
963
+ behavior: TOptional<TObject<{
964
+ onInsert: TOptional<TUnion<[
965
+ TLiteral<"default">,
966
+ TLiteral<"last">
967
+ ]>>;
968
+ applicationStrategy: TOptional<TUnion<[
969
+ TLiteral<"selected">,
970
+ TLiteral<"all">
971
+ ]>>;
972
+ }>>;
973
+ }>>;
974
+ subcomponents: TOptional<TObject<{
975
+ linkedProperties: TOptional<TObject<{
976
+ name: TOptional<TNumber>;
977
+ thumbnail: TOptional<TNumber>;
978
+ }>>;
979
+ styleSettings: TOptional<TObject<{
980
+ image: TOptional<TObject<{
981
+ size: TUnion<[
982
+ TLiteral<"sm">,
983
+ TLiteral<"md">,
984
+ TLiteral<"lg">
985
+ ]>;
986
+ orientation: TUnion<[
987
+ TLiteral<"square">,
988
+ TLiteral<"portrait">,
989
+ TLiteral<"landscape">
990
+ ]>;
991
+ }>>;
992
+ name: TOptional<TObject<{
993
+ visible: TOptional<TBoolean>;
994
+ }>>;
995
+ description: TOptional<TObject<{
996
+ visible: TOptional<TBoolean>;
997
+ }>>;
998
+ }>>;
999
+ subcomponentsSortingSettings: TOptional<TObject<{
1000
+ field: TUnion<[
1001
+ TLiteral<"name">,
1002
+ TLiteral<"property">
1003
+ ]>;
1004
+ order: TUnion<[
1005
+ TLiteral<"asc">,
1006
+ TLiteral<"desc">
1007
+ ]>;
1008
+ }>>;
1009
+ subcomponentGroupsSortingSettings: TOptional<TObject<{
1010
+ field: TUnion<[
1011
+ TLiteral<"name">,
1012
+ TLiteral<"property">
1013
+ ]>;
1014
+ order: TUnion<[
1015
+ TLiteral<"asc">,
1016
+ TLiteral<"desc">
1017
+ ]>;
1018
+ }>>;
1019
+ behavior: TOptional<TObject<{
1020
+ onInsert: TOptional<TUnion<[
1021
+ TLiteral<"default">,
1022
+ TLiteral<"last">
1023
+ ]>>;
1024
+ applicationStrategy: TOptional<TUnion<[
1025
+ TLiteral<"selected">,
1026
+ TLiteral<"all">
1027
+ ]>>;
1028
+ }>>;
1029
+ }>>;
1030
+ }>>;
1031
+ sceneSettings: TOptional<TObject<{
1032
+ studioId: TOptional<TUnion<[
1033
+ TNumber,
1034
+ TNull
1035
+ ]>>;
1036
+ studios: TOptional<TRecord<TString, TObject<{
1037
+ scene: TOptional<TObject<{
1038
+ backgroundColor: TOptional<TUnion<[
1039
+ TString,
1040
+ TNull
1041
+ ]>>;
1042
+ envMap: TOptional<TUnion<[
1043
+ TString,
1044
+ TNull
1045
+ ]>>;
1046
+ backgroundMode: TOptional<TUnion<[
1047
+ TLiteral<"color">,
1048
+ TLiteral<"environment">
1049
+ ]>>;
1050
+ backgroundBlurriness: TOptional<TNumber>;
1051
+ backgroundIntensity: TOptional<TNumber>;
1052
+ environmentIntensity: TOptional<TNumber>;
1053
+ environmentRotationY: TOptional<TNumber>;
1054
+ shadowMap: TOptional<TObject<{
1055
+ type: TOptional<TUnion<[
1056
+ TLiteral<"Basic">,
1057
+ TLiteral<"PCF">,
1058
+ TLiteral<"VSM">
1059
+ ]>>;
1060
+ vsmQuality: TOptional<TUnion<[
1061
+ TLiteral<"Performance">,
1062
+ TLiteral<"Balanced">,
1063
+ TLiteral<"Quality">
1064
+ ]>>;
1065
+ }>>;
1066
+ toneMapping: TOptional<TObject<{
1067
+ mode: TOptional<TUnion<[
1068
+ TLiteral<"None">,
1069
+ TLiteral<"Linear">,
1070
+ TLiteral<"Reinhard">,
1071
+ TLiteral<"Cineon">,
1072
+ TLiteral<"ACESFilmic">,
1073
+ TLiteral<"AgX">,
1074
+ TLiteral<"Neutral">
1075
+ ]>>;
1076
+ exposure: TOptional<TNumber>;
1077
+ }>>;
1078
+ }>>;
1079
+ lights: TOptional<TObject<{
1080
+ preset: TOptional<TUnion<[
1081
+ TLiteral<"directional">,
1082
+ TLiteral<"area">,
1083
+ TLiteral<"environment">
1084
+ ]>>;
1085
+ }>>;
1086
+ floor: TOptional<TObject<{
1087
+ activeFloor: TOptional<TBoolean>;
1088
+ activeFloorShadow: TOptional<TBoolean>;
1089
+ useFloorInAR: TOptional<TBoolean>;
1090
+ reflection: TOptional<TObject<{
1091
+ enabled: TOptional<TBoolean>;
1092
+ opacity: TOptional<TNumber>;
1093
+ fadeDistance: TOptional<TNumber>;
1094
+ }>>;
1095
+ floorSize: TOptional<TObject<{
1096
+ x: TOptional<TNumber>;
1097
+ y: TOptional<TNumber>;
1098
+ }>>;
1099
+ floorSizeType: TOptional<TUnion<[
1100
+ TLiteral<"infinity">,
1101
+ TLiteral<"likeObject">,
1102
+ TLiteral<"custom">
1103
+ ]>>;
1104
+ selectedMaterialGroup: TOptional<TUnion<[
1105
+ TNumber,
1106
+ TNull
1107
+ ]>>;
1108
+ selectedDefaultMaterial: TOptional<TUnion<[
1109
+ TNumber,
1110
+ TNull
1111
+ ]>>;
1112
+ }>>;
1113
+ }>>>;
1114
+ backgroundColor: TOptional<TUnion<[
1115
+ TString,
1116
+ TNull
1117
+ ]>>;
1118
+ envMap: TOptional<TUnion<[
1119
+ TString,
1120
+ TNull
1121
+ ]>>;
1122
+ backgroundMode: TOptional<TUnion<[
1123
+ TLiteral<"color">,
1124
+ TLiteral<"environment">
1125
+ ]>>;
1126
+ backgroundBlurriness: TOptional<TNumber>;
1127
+ backgroundIntensity: TOptional<TNumber>;
1128
+ environmentIntensity: TOptional<TNumber>;
1129
+ environmentRotationY: TOptional<TNumber>;
1130
+ shadowMap: TOptional<TObject<{
1131
+ type: TOptional<TUnion<[
1132
+ TLiteral<"Basic">,
1133
+ TLiteral<"PCF">,
1134
+ TLiteral<"VSM">
1135
+ ]>>;
1136
+ vsmQuality: TOptional<TUnion<[
1137
+ TLiteral<"Performance">,
1138
+ TLiteral<"Balanced">,
1139
+ TLiteral<"Quality">
1140
+ ]>>;
1141
+ }>>;
1142
+ toneMapping: TOptional<TObject<{
1143
+ mode: TOptional<TUnion<[
1144
+ TLiteral<"None">,
1145
+ TLiteral<"Linear">,
1146
+ TLiteral<"Reinhard">,
1147
+ TLiteral<"Cineon">,
1148
+ TLiteral<"ACESFilmic">,
1149
+ TLiteral<"AgX">,
1150
+ TLiteral<"Neutral">
1151
+ ]>>;
1152
+ exposure: TOptional<TNumber>;
1153
+ }>>;
1154
+ floor: TOptional<TObject<{
1155
+ activeFloor: TOptional<TBoolean>;
1156
+ activeFloorShadow: TOptional<TBoolean>;
1157
+ useFloorInAR: TOptional<TBoolean>;
1158
+ reflection: TOptional<TObject<{
1159
+ enabled: TOptional<TBoolean>;
1160
+ opacity: TOptional<TNumber>;
1161
+ fadeDistance: TOptional<TNumber>;
1162
+ }>>;
1163
+ floorSize: TOptional<TObject<{
1164
+ x: TNumber;
1165
+ y: TNumber;
1166
+ }>>;
1167
+ floorSizeType: TOptional<TUnion<[
1168
+ TLiteral<"infinity">,
1169
+ TLiteral<"likeObject">,
1170
+ TLiteral<"custom">
1171
+ ]>>;
1172
+ selectedMaterialGroup: TOptional<TUnion<[
1173
+ TNumber,
1174
+ TNull
1175
+ ]>>;
1176
+ selectedDefaultMaterial: TOptional<TUnion<[
1177
+ TNumber,
1178
+ TNull
1179
+ ]>>;
1180
+ }>>;
1181
+ layout: TOptional<TObject<{
1182
+ colors: TOptional<TObject<{
1183
+ primaryColor: TString;
1184
+ secondaryColor: TString;
1185
+ }>>;
1186
+ defaultLayoutMode: TOptional<TUnion<[
1187
+ TLiteral<"configuration">,
1188
+ TLiteral<"materials">
1189
+ ]>>;
1190
+ layersButtons: TOptional<TArray<TObject<{
1191
+ label: TString;
1192
+ layers: TArray<TInteger>;
1193
+ defaultState: TBoolean;
1194
+ }>>>;
1195
+ }>>;
1196
+ }>>;
1197
+ pricingSettings: TOptional<TObject<{
1198
+ enabled: TOptional<TBoolean>;
1199
+ configId: TOptional<TNumber>;
1200
+ }>>;
1201
+ customRulesSettings: TOptional<TObject<{
1202
+ configIds: TOptional<TArray<TNumber>>;
1203
+ }>>;
1204
+ layoutResult: TOptional<TUnion<[
1205
+ TObject<{
1206
+ type: TLiteral<"none">;
1207
+ }>,
1208
+ TObject<{
1209
+ type: TLiteral<"pricing">;
1210
+ }>,
1211
+ TObject<{
1212
+ type: TLiteral<"custom-rule">;
1213
+ configId: TNumber;
1214
+ }>
1215
+ ]>>;
1216
+ unitsSettings: TOptional<TObject<{
1217
+ price: TOptional<TObject<{
1218
+ roundType: TOptional<TUnion<[
1219
+ TLiteral<"round">,
1220
+ TLiteral<"ceil">,
1221
+ TLiteral<"floor">
1222
+ ]>>;
1223
+ precision: TOptional<TNumber>;
1224
+ step: TOptional<TNumber>;
1225
+ }>>;
1226
+ }>>;
1227
+ documentation: TOptional<TObject<{
1228
+ fileUuid: TOptional<TUnion<[
1229
+ TString,
1230
+ TNull
1231
+ ]>>;
1232
+ parameters: TOptional<TArray<TObject<{
1233
+ name: TString;
1234
+ type: TUnion<[
1235
+ TLiteral<"TEXT">,
1236
+ TLiteral<"PROJECTION">,
1237
+ TLiteral<"BOOL">,
1238
+ TLiteral<"SOURCE_DATA">
1239
+ ]>;
1240
+ uuid: TString;
1241
+ value: TString;
1242
+ }>>>;
1243
+ }>>;
1244
+ presetsSettings: TOptional<TObject<{
1245
+ presets: TOptional<TObject<{
1246
+ enabled: TOptional<TBoolean>;
1247
+ items: TOptional<TArray<TObject<{
1248
+ id: TString;
1249
+ name: TString;
1250
+ description: TOptional<TString>;
1251
+ configuration: TAny;
1252
+ ignore: TOptional<TArray<TString>>;
1253
+ icon: TOptional<TUnion<[
1254
+ TString,
1255
+ TNull
1256
+ ]>>;
1257
+ visible: TOptional<TBoolean>;
1258
+ }>>>;
1259
+ selectedId: TOptional<TString>;
1260
+ styleSettings: TOptional<TObject<{
1261
+ image: TOptional<TObject<{
1262
+ size: TUnion<[
1263
+ TLiteral<"sm">,
1264
+ TLiteral<"md">,
1265
+ TLiteral<"lg">
1266
+ ]>;
1267
+ orientation: TUnion<[
1268
+ TLiteral<"square">,
1269
+ TLiteral<"portrait">,
1270
+ TLiteral<"landscape">
1271
+ ]>;
1272
+ }>>;
1273
+ name: TOptional<TObject<{
1274
+ visible: TOptional<TBoolean>;
1275
+ }>>;
1276
+ description: TOptional<TObject<{
1277
+ visible: TOptional<TBoolean>;
1278
+ }>>;
1279
+ }>>;
1280
+ }>>;
1281
+ assemblyPresets: TOptional<TObject<{
1282
+ enabled: TOptional<TBoolean>;
1283
+ items: TOptional<TArray<TObject<{
1284
+ id: TString;
1285
+ name: TString;
1286
+ description: TOptional<TString>;
1287
+ configuration: TUnion<[
1288
+ TNull,
1289
+ TObject<{
1290
+ roots: TArray<TObject<{
1291
+ id: TString;
1292
+ fileId: TString;
1293
+ name: TOptional<TString>;
1294
+ transform: TArray<TNumber>;
1295
+ interaction: TOptional<TUnion<[
1296
+ TLiteral<"none">,
1297
+ TLiteral<"select-only">,
1298
+ TLiteral<"select-and-drag">
1299
+ ]>>;
1300
+ configuration: TOptional<TRecord<TString, TObject<{
1301
+ transform: TOptional<TArray<TNumber>>;
1302
+ publication: TOptional<TObject<{
1303
+ blocks: TRecord<TString, TAny>;
1304
+ }>>;
1305
+ materials: TOptional<TRecord<TString, TObject<{
1306
+ selected: TString;
1307
+ }>>>;
1308
+ subcomponent: TOptional<TRecord<TString, TObject<{
1309
+ selected: TString;
1310
+ }>>>;
1311
+ interaction: TOptional<TUnion<[
1312
+ TLiteral<"none">,
1313
+ TLiteral<"select-only">,
1314
+ TLiteral<"select-and-drag">
1315
+ ]>>;
1316
+ draggable: TOptional<TBoolean>;
1317
+ movementPlane: TOptional<TArray<TNumber>>;
1318
+ gridPlane: TOptional<TObject<{
1319
+ snaps: TRecord<TString, TObject<{
1320
+ snappedObjects: TArray<TString>;
1321
+ }>>;
1322
+ }>>;
1323
+ keyPoint: TOptional<TObject<{
1324
+ snappedObject: TString;
1325
+ }>>;
1326
+ }>>>;
1327
+ structureConfiguration: TOptional<TObject<{
1328
+ cameraAutoFitOn: TOptional<TBoolean>;
1329
+ showInProductsList: TOptional<TBoolean>;
1330
+ interaction: TOptional<TUnion<[
1331
+ TLiteral<"none">,
1332
+ TLiteral<"select-only">,
1333
+ TLiteral<"select-and-drag">
1334
+ ]>>;
1335
+ }>>;
1336
+ }>>;
1337
+ singleObjectRootId: TOptional<TString>;
1338
+ }>
1339
+ ]>;
1340
+ ignore: TOptional<TArray<TString>>;
1341
+ icon: TOptional<TUnion<[
1342
+ TString,
1343
+ TNull
1344
+ ]>>;
1345
+ visible: TOptional<TBoolean>;
1346
+ }>>>;
1347
+ selectedId: TOptional<TString>;
1348
+ styleSettings: TOptional<TObject<{
1349
+ image: TOptional<TObject<{
1350
+ size: TUnion<[
1351
+ TLiteral<"sm">,
1352
+ TLiteral<"md">,
1353
+ TLiteral<"lg">
1354
+ ]>;
1355
+ orientation: TUnion<[
1356
+ TLiteral<"square">,
1357
+ TLiteral<"portrait">,
1358
+ TLiteral<"landscape">
1359
+ ]>;
1360
+ }>>;
1361
+ name: TOptional<TObject<{
1362
+ visible: TOptional<TBoolean>;
1363
+ }>>;
1364
+ description: TOptional<TObject<{
1365
+ visible: TOptional<TBoolean>;
1366
+ }>>;
1367
+ }>>;
1368
+ }>>;
1369
+ }>>;
1370
+ cameraSettings: TOptional<TObject<{
1371
+ cameraType: TOptional<TUnion<[
1372
+ TLiteral<"perspective">,
1373
+ TLiteral<"orthographic">
1374
+ ]>>;
1375
+ enabledLayers: TOptional<TArray<TInteger>>;
1376
+ enablePan: TOptional<TBoolean>;
1377
+ enableRotate: TOptional<TBoolean>;
1378
+ blockRotationAxes: TOptional<TObject<{
1379
+ x: TOptional<TBoolean>;
1380
+ y: TOptional<TBoolean>;
1381
+ z: TOptional<TBoolean>;
1382
+ }>>;
1383
+ infinityRotationAxes: TOptional<TObject<{
1384
+ x: TOptional<TBoolean>;
1385
+ y: TOptional<TBoolean>;
1386
+ }>>;
1387
+ blockMoveUnderFloor: TOptional<TBoolean>;
1388
+ zoomBoundaries: TOptional<TObject<{
1389
+ min: TOptional<TNumber>;
1390
+ max: TOptional<TNumber>;
1391
+ }>>;
1392
+ rotateBoundaries: TOptional<TObject<{
1393
+ x: TOptional<TObject<{
1394
+ min: TNumber;
1395
+ max: TNumber;
1396
+ }>>;
1397
+ y: TOptional<TObject<{
1398
+ min: TNumber;
1399
+ max: TNumber;
1400
+ }>>;
1401
+ }>>;
1402
+ enableAutoRotate: TOptional<TBoolean>;
1403
+ autoRotateActivationTime: TOptional<TNumber>;
1404
+ autoRotateSpeed: TOptional<TNumber>;
1405
+ cameraProperties: TOptional<TObject<{
1406
+ near: TOptional<TNumber>;
1407
+ far: TOptional<TNumber>;
1408
+ }>>;
1409
+ }>>;
1410
+ flowsSettings: TOptional<TObject<{
1411
+ selectedFlowIds: TOptional<TArray<TString>>;
1412
+ }>>;
1413
+ }>;
1414
+ structure: TArray<TObject<{
1415
+ type: TLiteral<"set-item">;
1416
+ uuid: TString;
1417
+ name: TString;
1418
+ model: TUnion<[
1419
+ TObject<{
1420
+ type: TLiteral<"cabinet">;
1421
+ fileId: TString;
1422
+ configuration: TObject<{
1423
+ cameraAutoFitOn: TOptional<TBoolean>;
1424
+ showInProductsList: TOptional<TBoolean>;
1425
+ draggable: TOptional<TBoolean>;
1426
+ interaction: TOptional<TUnion<[
1427
+ TLiteral<"none">,
1428
+ TLiteral<"select-only">,
1429
+ TLiteral<"select-and-drag">
1430
+ ]>>;
1431
+ transform: TOptional<TArray<TNumber>>;
1432
+ }>;
1433
+ objectsConfiguration: TOptional<TRecord<TString, TObject<{
1434
+ transform: TOptional<TArray<TNumber>>;
1435
+ publication: TOptional<TObject<{
1436
+ blocks: TRecord<TString, TAny>;
1437
+ }>>;
1438
+ materials: TOptional<TRecord<TString, TObject<{
1439
+ selected: TString;
1440
+ }>>>;
1441
+ subcomponent: TOptional<TRecord<TString, TObject<{
1442
+ selected: TString;
1443
+ }>>>;
1444
+ interaction: TOptional<TUnion<[
1445
+ TLiteral<"none">,
1446
+ TLiteral<"select-only">,
1447
+ TLiteral<"select-and-drag">
1448
+ ]>>;
1449
+ draggable: TOptional<TBoolean>;
1450
+ movementPlane: TOptional<TArray<TNumber>>;
1451
+ gridPlane: TOptional<TObject<{
1452
+ snaps: TRecord<TString, TObject<{
1453
+ snappedObjects: TArray<TString>;
1454
+ }>>;
1455
+ }>>;
1456
+ keyPoint: TOptional<TObject<{
1457
+ snappedObject: TString;
1458
+ }>>;
1459
+ }>>>;
1460
+ }>,
1461
+ TObject<{
1462
+ type: TLiteral<"scene">;
1463
+ fileId: TString;
1464
+ }>,
1465
+ TObject<{
1466
+ type: TLiteral<"space-root">;
1467
+ }>
1468
+ ]>;
1469
+ }>>;
1470
+ }>;
1471
+ }>;
1472
+ type TVasFile = Static<typeof vasFileSchema>;
1473
+ declare const objectConfigurationSchema: TObject<{
1474
+ transform: TOptional<TArray<TNumber>>;
1475
+ publication: TOptional<TObject<{
1476
+ blocks: TRecord<TString, TAny>;
1477
+ }>>;
1478
+ materials: TOptional<TRecord<TString, TObject<{
1479
+ selected: TString;
1480
+ }>>>;
1481
+ subcomponent: TOptional<TRecord<TString, TObject<{
1482
+ selected: TString;
1483
+ }>>>;
1484
+ interaction: TOptional<TUnion<[
1485
+ TLiteral<"none">,
1486
+ TLiteral<"select-only">,
1487
+ TLiteral<"select-and-drag">
1488
+ ]>>;
1489
+ draggable: TOptional<TBoolean>;
1490
+ movementPlane: TOptional<TArray<TNumber>>;
1491
+ gridPlane: TOptional<TObject<{
1492
+ snaps: TRecord<TString, TObject<{
1493
+ snappedObjects: TArray<TString>;
1494
+ }>>;
1495
+ }>>;
1496
+ keyPoint: TOptional<TObject<{
1497
+ snappedObject: TString;
1498
+ }>>;
1499
+ }>;
1500
+ type TObjectConfiguration = Static<typeof objectConfigurationSchema>;
1501
+ declare const interactionModeSchema: TUnion<[
1502
+ TLiteral<"none">,
1503
+ TLiteral<"select-only">,
1504
+ TLiteral<"select-and-drag">
1505
+ ]>;
1506
+ type TInteractionMode = Static<typeof interactionModeSchema>;
1507
+ type TPublication = {
1508
+ containers: TPublicationContainer[];
1509
+ };
1510
+ type TPublicationContainer = {
1511
+ id: string;
1512
+ panels: TPublicationPanel[];
1513
+ };
1514
+ type TPublicationPanel = {
1515
+ id: string;
1516
+ label: string;
1517
+ events: TEvents;
1518
+ blocks: TPublicationBlock[];
1519
+ };
1520
+ type TPublicationBlock = {
1521
+ id: string;
1522
+ label: string;
1523
+ events: TEvents;
1524
+ kind: TBlockNumberRange | TBlockNumberPredefined | TBlockText | TBlockTextInput | TBlockBoolean | TBlockList;
1525
+ };
1526
+ type TBlockNumberRange = {
1527
+ type: "number-range";
1528
+ value: number;
1529
+ range: {
1530
+ min: number;
1531
+ max: number;
1532
+ };
1533
+ preferred: number[];
1534
+ step: number;
1535
+ };
1536
+ type TBlockNumberPredefined = {
1537
+ type: "number-predefined";
1538
+ value: number;
1539
+ options: number[];
1540
+ };
1541
+ type TBlockText = {
1542
+ type: "text";
1543
+ value: string;
1544
+ };
1545
+ type TBlockTextInput = {
1546
+ type: "text-input";
1547
+ value: string;
1548
+ maxLength: number;
1549
+ placeholder: string;
1550
+ };
1551
+ type TBlockBoolean = {
1552
+ type: "boolean";
1553
+ value: boolean;
1554
+ };
1555
+ type TBlockList = {
1556
+ type: "list";
1557
+ style: TBlockListDropdownStyle | TBlockListButtonsStyle | TBlockListDropdownImageStyle | TBlockListButtonsImageStyle;
1558
+ selected: string;
1559
+ options: Array<{
1560
+ value: string;
1561
+ label: string;
1562
+ imageId?: string;
1563
+ }>;
1564
+ };
1565
+ type TBlockListDropdownStyle = {
1566
+ type: "dropdown";
1567
+ };
1568
+ type TBlockListButtonsStyle = {
1569
+ type: "buttons";
1570
+ align: "content" | "responsive";
1571
+ };
1572
+ type TBlockListDropdownImageStyle = {
1573
+ type: "dropdownImage";
1574
+ size: "sm" | "md" | "lg";
1575
+ };
1576
+ type TBlockListButtonsImageStyle = {
1577
+ type: "buttonsImage";
1578
+ size: "sm" | "md" | "lg";
1579
+ shape: "square" | "portrait" | "landscape";
1580
+ };
1581
+ type TEvents = {
1582
+ hover?: Array<{
1583
+ type: "layer";
1584
+ layers: number[];
1585
+ } | {
1586
+ type: "dimension";
1587
+ ids: string[];
1588
+ }>;
1589
+ } | undefined;
1590
+ type TDocumentation = {
1591
+ id: string;
1592
+ parameters: {
1593
+ name: string;
1594
+ type: "TEXT" | "PROJECTION" | "BOOL" | "SOURCE_DATA";
1595
+ uuid: string;
1596
+ value: string;
1597
+ }[];
1598
+ };
1599
+ type TStudioId = 0 | 1 | 2;
1600
+ type TStudioToneMappingMode = "None" | "Linear" | "Reinhard" | "Cineon" | "ACESFilmic" | "AgX" | "Neutral";
1601
+ type TStudioShadowMapType = "Basic" | "PCF" | "VSM";
1602
+ type TVsmShadowQuality = "Performance" | "Balanced" | "Quality";
1603
+ type TStudioShadowMapConfig = {
1604
+ type: TStudioShadowMapType;
1605
+ vsmQuality: TVsmShadowQuality;
1606
+ };
1607
+ type TStudioSceneConfig = {
1608
+ backgroundColor: string | null;
1609
+ envMap: string | null;
1610
+ backgroundMode: "color" | "environment";
1611
+ backgroundBlurriness: number;
1612
+ backgroundIntensity: number;
1613
+ environmentIntensity: number;
1614
+ environmentRotationY: number;
1615
+ shadowMap: TStudioShadowMapConfig;
1616
+ toneMapping: {
1617
+ mode: TStudioToneMappingMode;
1618
+ exposure: number;
1619
+ };
1620
+ };
1621
+ type TStudioFloorConfig = {
1622
+ activeFloor: boolean;
1623
+ activeFloorShadow: boolean;
1624
+ useFloorInAR: boolean;
1625
+ reflection: {
1626
+ enabled: boolean;
1627
+ opacity: number;
1628
+ fadeDistance: number;
1629
+ };
1630
+ floorSize: {
1631
+ x: number;
1632
+ y: number;
1633
+ };
1634
+ floorSizeType: "infinity" | "likeObject" | "custom";
1635
+ selectedMaterialGroup: number | null;
1636
+ selectedDefaultMaterial: number | null;
1637
+ };
1638
+ type TStudioSceneSettings = Partial<Omit<TStudioSceneConfig, "toneMapping" | "shadowMap">> & {
1639
+ toneMapping?: Partial<TStudioSceneConfig["toneMapping"]>;
1640
+ shadowMap?: Partial<TStudioSceneConfig["shadowMap"]>;
1641
+ };
1642
+ type TStudioFloorSettings = Partial<Omit<TStudioFloorConfig, "reflection" | "floorSize">> & {
1643
+ reflection?: Partial<TStudioFloorConfig["reflection"]>;
1644
+ floorSize?: Partial<TStudioFloorConfig["floorSize"]>;
1645
+ };
1646
+ type TStudioSettings = {
1647
+ scene?: TStudioSceneSettings;
1648
+ floor?: TStudioFloorSettings;
1649
+ };
1650
+ type TStudioResolvedSettings = {
1651
+ scene: TStudioSceneConfig;
1652
+ floor: TStudioFloorConfig;
1653
+ };
1654
+ type TStudioDefinition<TBuilderContext = unknown, TLightGroup = unknown> = {
1655
+ id: TStudioId;
1656
+ name: string;
1657
+ settings: TStudioSettings;
1658
+ configuration: {
1659
+ createLights: (context: TBuilderContext) => TLightGroup;
1660
+ };
1661
+ };
1662
+ type TStudioLightsSettings = {
1663
+ preset: "directional" | "area" | "environment";
1664
+ };
1665
+ type TStudioOverrides = {
1666
+ scene?: TStudioSceneSettings;
1667
+ lights?: Partial<TStudioLightsSettings>;
1668
+ floor?: TStudioFloorSettings;
1669
+ };
1670
+ type TValue = string | number | boolean;
1671
+ type TSettings = TVasFile["set"]["configuration"]["settings"] & {
1672
+ sceneSettings?: TVasFile["set"]["configuration"]["sceneSettings"] & {
1673
+ backgroundColor?: string | null;
1674
+ studioId?: number | null;
1675
+ envMap?: string | null;
1676
+ toneMapping?: {
1677
+ mode?: "None" | "Linear" | "Reinhard" | "Cineon" | "ACESFilmic" | "AgX" | "Neutral";
1678
+ exposure?: number;
1679
+ };
1680
+ shadowMap?: {
1681
+ type?: TStudioShadowMapType;
1682
+ vsmQuality?: TVsmShadowQuality;
1683
+ };
1684
+ };
1685
+ cameraSettings?: TVasFile["set"]["configuration"]["cameraSettings"];
1686
+ flowsSettings?: TVasFile["set"]["configuration"]["flowsSettings"];
1687
+ };
1688
+ type TRootObjectData = {
1689
+ id: string;
1690
+ fileId: string;
1691
+ transform: number[];
1692
+ showInProductsList?: boolean;
1693
+ singleObjectSelected?: boolean;
1694
+ };
1695
+ type TRootObjectConfiguration = {
1696
+ id: string;
1697
+ fileId: string;
1698
+ name?: string;
1699
+ transform: number[];
1700
+ interaction?: TInteractionMode;
1701
+ configuration?: Record<string, TObjectConfiguration>;
1702
+ };
1703
+ type TObjectDocumentation = {
1704
+ objectId: string;
1705
+ documentation: TDocumentation;
1706
+ };
1707
+ type TRootData = Partial<{
1708
+ publication: TPublication;
1709
+ documentations: TObjectDocumentation[];
1710
+ }>;
1711
+ type TRenderDataObjectTag = `subcomponent:${string}`;
1712
+ type TAnimationRenderData = {
1713
+ key: string;
1714
+ clips: {
1715
+ name: string;
1716
+ duration: number;
1717
+ channels: {
1718
+ target: {
1719
+ path: "translation" | "rotation";
1720
+ };
1721
+ sampler: {
1722
+ start: "current";
1723
+ times: number[];
1724
+ easings: string[];
1725
+ values: TValue[][];
1726
+ };
1727
+ }[];
1728
+ }[];
1729
+ };
1730
+ type TRenderDataObject = Partial<{
1731
+ controlledVisibility: boolean;
1732
+ inAvailableSpace: boolean;
1733
+ count: number;
1734
+ positioning: number[];
1735
+ transform: number[];
1736
+ propagation: number[];
1737
+ geometry: [
1738
+ string,
1739
+ Record<string, TValue>
1740
+ ];
1741
+ dimensionGeometry: [
1742
+ string,
1743
+ Record<string, TValue>
1744
+ ];
1745
+ importedGeometry: [
1746
+ string,
1747
+ Record<string, TValue>
1748
+ ];
1749
+ isGroup: boolean;
1750
+ isImport: boolean;
1751
+ interaction: TInteractionMode;
1752
+ movementPlane: number[];
1753
+ keyPoint: {
1754
+ tags: string[];
1755
+ snappedGridPlaneId?: string;
1756
+ };
1757
+ gridPlane: {
1758
+ mode: "static" | "sticky";
1759
+ priority: TValue;
1760
+ tags: string[];
1761
+ snaps: TSnap[];
1762
+ };
1763
+ boxCollider: {
1764
+ tags: string[];
1765
+ collision: boolean;
1766
+ interact: boolean;
1767
+ occluder: boolean;
1768
+ rangefinder: boolean;
1769
+ };
1770
+ rangefinder: {
1771
+ tags: string[];
1772
+ axis: Array<"x" | "y" | "z">;
1773
+ near: number;
1774
+ far: number;
1775
+ };
1776
+ dynamicConfiguration: Record<string, number>;
1777
+ layers: {
1778
+ ids: number[];
1779
+ descendants: boolean;
1780
+ };
1781
+ dimensioning: Record<string, never>;
1782
+ material: Record<string, {
1783
+ blobUrl: string;
1784
+ overrides?: Record<string, unknown>;
1785
+ }>;
1786
+ modifier: "subtract" | "intersect";
1787
+ textureFit: {
1788
+ offset: {
1789
+ x: number | "random";
1790
+ y: number | "random";
1791
+ };
1792
+ rotation: number | "random";
1793
+ scale: number;
1794
+ flip: {
1795
+ x: boolean;
1796
+ y: boolean;
1797
+ };
1798
+ };
1799
+ rendering: {
1800
+ shadow: [
1801
+ boolean,
1802
+ boolean
1803
+ ];
1804
+ order: number;
1805
+ };
1806
+ animation: TAnimationRenderData;
1807
+ tags: TRenderDataObjectTag[];
1808
+ }>;
1809
+ type TUniqueRenderDataObject = {
1810
+ id: string;
1811
+ ref: string;
1812
+ } & TRenderDataObject;
1813
+ type TRenderData = {
1814
+ entryObjects: number[];
1815
+ tree: Record<string, number[]>;
1816
+ objects: TUniqueRenderDataObject[];
1817
+ activeDrag?: number;
1818
+ };
1819
+ type TPricingSection = {
1820
+ name: string;
1821
+ table: string[][];
1822
+ price: number;
1823
+ priceColumnIndex: number;
1824
+ };
1825
+ type TPricingData = {
1826
+ sections: TPricingSection[];
1827
+ finalPrice: number;
1828
+ status?: "available" | "unavailable";
1829
+ };
1830
+ type TCustomRuleData = TPricingData & {
1831
+ status: "available" | "unavailable";
1832
+ label: string;
1833
+ unit: string;
1834
+ spaceBeforeUnit: boolean;
1835
+ };
1836
+ type TCustomRulesData = Record<string, TCustomRuleData>;
1837
+ type TTreeObjectOverrides = Partial<{
1838
+ transform: number[];
1839
+ movementPlane: number[];
1840
+ interaction: TInteractionMode;
1841
+ }>;
1842
+ type TSnapType = "point" | "grid";
1843
+ type TSnapTypeMaker<T extends TSnapType, U extends Record<string, unknown>> = {
1844
+ id: string;
1845
+ type: T;
1846
+ data: U;
1847
+ snappedKeyPointIds: string[];
1848
+ };
1849
+ type TSnapPoint = TSnapTypeMaker<"point", {
1850
+ x: TValue;
1851
+ y: TValue;
1852
+ }>;
1853
+ type TSnapGrid = TSnapTypeMaker<"grid", {
1854
+ cols: TValue;
1855
+ rows: TValue;
1856
+ }>;
1857
+ type TSnap = TSnapPoint | TSnapGrid;
1858
+ type TSnapIdentifierMaker<T extends TSnapType, U extends Record<string, unknown>> = {
1859
+ id: string;
1860
+ type: T;
1861
+ data: U;
1862
+ };
1863
+ type TSnapPointIdentifier = TSnapIdentifierMaker<"point", {
1864
+ x: number;
1865
+ y: number;
1866
+ }>;
1867
+ type TSnapGridIdentifier = TSnapIdentifierMaker<"grid", {
1868
+ col: number;
1869
+ row: number;
1870
+ }>;
1871
+ type TSnapIdentifier = TSnapPointIdentifier | TSnapGridIdentifier;
1872
+ type TCommonMaterialGroupProperties = {
1873
+ hash: string;
1874
+ selected: string;
1875
+ alias: string;
1876
+ };
1877
+ type TMaterialGroup = ({
1878
+ type: "list";
1879
+ materials: string[];
1880
+ } | {
1881
+ type: "query";
1882
+ query: Record<string, any>;
1883
+ }) & TCommonMaterialGroupProperties;
1884
+ type TCommonSubcomponentGroupProperties = {
1885
+ hash: string;
1886
+ selected: string;
1887
+ alias: string;
1888
+ };
1889
+ type TSubcomponentGroup = ({
1890
+ type: "list";
1891
+ assets: string[];
1892
+ } | {
1893
+ type: "query";
1894
+ query: Record<string, any>;
1895
+ }) & TCommonSubcomponentGroupProperties;
1896
+ declare const exportConfigurationSchema: TObject<{
1897
+ exports: TArray<TObject<{
1898
+ name: TString;
1899
+ bomTemplateId: TNumber;
1900
+ bomFilterId: TNumber;
1901
+ }>>;
1902
+ v: TLiteral<1>;
1903
+ }>;
1904
+ type TExportConfigurationFile = Static<typeof exportConfigurationSchema>;
1905
+ type TCommonWebComponentEvents = {
1906
+ ready: TTimestampEventPayload;
1907
+ scriptsLoaded: TTimestampEventPayload;
1908
+ };
1909
+ type TWebComponentEvents<T extends Record<string, unknown> = TCommonWebComponentEvents> = TCommonWebComponentEvents & T;
1910
+ type TTimestampEventPayload = {
1911
+ timestamp: number;
1912
+ };
1913
+ declare const configurationNgSchema: TObject<{
1914
+ assetId: TString;
1915
+ createdAt: TNumber;
1916
+ libraryVersion: TString;
1917
+ roots: TArray<TObject<{
1918
+ id: TOptional<TString>;
1919
+ fileId: TString;
1920
+ configuration: TOptional<TRecord<TString, TObject<{
1921
+ transform: TOptional<TArray<TNumber>>;
1922
+ publication: TOptional<TObject<{
1923
+ blocks: TRecord<TString, TAny>;
1924
+ }>>;
1925
+ materials: TOptional<TRecord<TString, TObject<{
1926
+ selected: TString;
1927
+ }>>>;
1928
+ subcomponent: TOptional<TRecord<TString, TObject<{
1929
+ selected: TString;
1930
+ }>>>;
1931
+ interaction: TOptional<TUnion<[
1932
+ TLiteral<"none">,
1933
+ TLiteral<"select-only">,
1934
+ TLiteral<"select-and-drag">
1935
+ ]>>;
1936
+ draggable: TOptional<TBoolean>;
1937
+ movementPlane: TOptional<TArray<TNumber>>;
1938
+ gridPlane: TOptional<TObject<{
1939
+ snaps: TRecord<TString, TObject<{
1940
+ snappedObjects: TArray<TString>;
1941
+ }>>;
1942
+ }>>;
1943
+ keyPoint: TOptional<TObject<{
1944
+ snappedObject: TString;
1945
+ }>>;
1946
+ }>>>;
1947
+ }>>;
1948
+ v: TLiteral<1>;
1949
+ }>;
1950
+ type TConfigurationNg = Static<typeof configurationNgSchema>;
1951
+ type TConfigurationBaseNg = Pick<TConfigurationNg, "roots">;
1952
+ declare const configurationExportDataNgSchema: TObject<{
1953
+ creationDate: TString;
1954
+ sourceUrl: TString;
1955
+ roots: TArray<TObject<{
1956
+ id: TString;
1957
+ fileId: TString;
1958
+ name: TOptional<TString>;
1959
+ transform: TArray<TNumber>;
1960
+ info: TOptional<TArray<TObject<{
1961
+ name: TString;
1962
+ value: TUnion<[
1963
+ TString,
1964
+ TNumber,
1965
+ TBoolean,
1966
+ TNull
1967
+ ]>;
1968
+ }>>>;
1969
+ mainParameters: TArray<TObject<{
1970
+ name: TString;
1971
+ value: TUnion<[
1972
+ TString,
1973
+ TNumber,
1974
+ TBoolean,
1975
+ TNull
1976
+ ]>;
1977
+ }>>;
1978
+ customParameters: TArray<TObject<{
1979
+ name: TString;
1980
+ value: TUnion<[
1981
+ TString,
1982
+ TNumber,
1983
+ TBoolean,
1984
+ TNull
1985
+ ]>;
1986
+ }>>;
1987
+ bom: TArray<TObject<{
1988
+ name: TString;
1989
+ head: TArray<TString>;
1990
+ body: TArray<TArray<TUnknown>>;
1991
+ }>>;
1992
+ }>>;
1993
+ }>;
1994
+ type TConfigurationExportDataNg = Static<typeof configurationExportDataNgSchema>;
1995
+ type TRenderStreamStarted = {
1996
+ renderStreamId: number;
1997
+ settings: TSettings;
1998
+ };
1999
+ type TRenderChunk = {
2000
+ renderStreamId: number;
2001
+ data: TRenderData;
2002
+ };
2003
+ type TRenderStreamFailed = {
2004
+ renderStreamId: number;
2005
+ error: string;
2006
+ };
2007
+ type TRenderStreamEvents = {
2008
+ renderStreamStarted: TRenderStreamStarted;
2009
+ renderChunkReady: TRenderChunk;
2010
+ renderStreamFailed: TRenderStreamFailed;
2011
+ };
2012
+ type TPlacementBounds = {
2013
+ size: {
2014
+ x: number;
2015
+ y: number;
2016
+ z: number;
2017
+ };
2018
+ };
2019
+ export type TEngineApi = {
2020
+ /** @ignore */
2021
+ internal: {
2022
+ updateConfiguration(configuration: TVasFile["set"]["configuration"]): Promise<void>;
2023
+ };
2024
+ events: Emittery<TEngineApiEvents>;
2025
+ updateDataById(id: string, data: TTreeObjectOverrides): void;
2026
+ snap(payload: {
2027
+ keyPointId: string;
2028
+ gridPlaneId: string;
2029
+ data: TSnapIdentifier;
2030
+ }): void;
2031
+ addVac(id: string, options?: {
2032
+ startInExternalPlacementDrag?: boolean;
2033
+ inAvailableSpace?: boolean;
2034
+ objectId?: string;
2035
+ }): Promise<void>;
2036
+ preloadVac(id: string): Promise<void>;
2037
+ unsnap(payload: {
2038
+ objectId: string;
2039
+ }): void;
2040
+ getAssetsPaletteConfiguration(): Promise<TAssetsPaletteConfiguration | null>;
2041
+ getDocumentationConfiguration(): Promise<TDocumentation | null>;
2042
+ getCameraConfiguration(): Promise<TCameraConfiguration | null>;
2043
+ getLayoutConfiguration(): Promise<TLayoutSettings | null>;
2044
+ getAssemblyMode(): "multi-object" | "single-object";
2045
+ getLayoutResult(): Promise<TVasFile["set"]["configuration"]["layoutResult"] | undefined>;
2046
+ getPresetsConfiguration(): Promise<TPresetsConfiguration | null>;
2047
+ getRootObjects(): Promise<TRootObjectData[]>;
2048
+ getRootObjectsConfiguration(): Promise<TRootObjectConfiguration[]>;
2049
+ getRootObjectsExportData(exports: TExportConfigurationFile["exports"]): Promise<TConfigurationExportDataNg["roots"]>;
2050
+ deleteRootObject(id: string | string[]): Promise<void>;
2051
+ getMaterialsConfiguration(): Promise<TMaterialsConfiguration | null>;
2052
+ changeMaterial(data: {
2053
+ objectId: string;
2054
+ materialGroupId: string;
2055
+ materialId: string;
2056
+ }): Promise<void>;
2057
+ propagateMaterialGroup(data: {
2058
+ objectId: string;
2059
+ materialGroupId: string;
2060
+ }): Promise<void>;
2061
+ getMaterialGroups(objectId: string): Promise<TMaterialGroup$1[]>;
2062
+ getMaterialGroupMaterials(materialGroupId: string): Promise<TMaterialData[]>;
2063
+ getSubcomponentsConfiguration(): Promise<TSubcomponentsConfiguration | null>;
2064
+ changeSubcomponent(data: {
2065
+ objectId: string;
2066
+ subcomponentGroupId: string;
2067
+ subcomponentId: string;
2068
+ }): Promise<void>;
2069
+ propagateSubcomponentGroup(data: {
2070
+ objectId: string;
2071
+ subcomponentGroupId: string;
2072
+ }): Promise<void>;
2073
+ getSubcomponentGroups(objectId: string): Promise<TSubcomponentGroup$1[]>;
2074
+ getSubcomponentGroupSubcomponents(subcomponentGroupId: string): Promise<TSubcomponentData[]>;
2075
+ generateBom(data: {
2076
+ templateId: number;
2077
+ filterId: number;
2078
+ rootId?: string;
2079
+ }): Promise<{
2080
+ head: string[];
2081
+ body: unknown[][];
2082
+ }>;
2083
+ loadConfiguration(id: string | null): Promise<void>;
2084
+ loadPreset(id: string | TPreset | null): Promise<void>;
2085
+ calculate(props: {
2086
+ overrides: {
2087
+ blocks?: Record<string, Record<string, unknown>>;
2088
+ material?: Record<string, {
2089
+ hash: string;
2090
+ value: string;
2091
+ }>;
2092
+ subcomponent?: Record<string, {
2093
+ hash: string;
2094
+ value: string;
2095
+ }>;
2096
+ };
2097
+ }): Promise<{
2098
+ data: TRenderData;
2099
+ partial?: boolean;
2100
+ }>;
2101
+ };
2102
+ type TCameraConfiguration = {
2103
+ enabledLayers?: number[];
2104
+ };
2105
+ type TAssetsPaletteConfiguration = {
2106
+ linkedProperties?: TAssetsPaletteLinkedPropertiesIds;
2107
+ styleSettings?: TStyleSettings;
2108
+ defaultNodeId?: number;
2109
+ categories: TAssetsPaletteUnparsedCategory[];
2110
+ tagIds: number[];
2111
+ patternType?: TAssetsPalettePatternType;
2112
+ addingAssetsMethod?: TAddingAssetsMethod;
2113
+ sortingSettings?: TSortingSettings;
2114
+ };
2115
+ type TMaterialsConfiguration = {
2116
+ linkedProperties?: TMaterialsLinkedPropertiesIds;
2117
+ styleSettings?: TStyleSettings;
2118
+ materialsSortingSettings?: TSortingSettings;
2119
+ materialGroupsSortingSettings?: TSortingSettings;
2120
+ behavior?: {
2121
+ applicationStrategy?: TApplicationStrategy;
2122
+ };
2123
+ };
2124
+ type TSubcomponentsConfiguration = {
2125
+ linkedProperties?: TSubcomponentsLinkedPropertiesIds;
2126
+ styleSettings?: TStyleSettings;
2127
+ subcomponentsSortingSettings?: TSortingSettings;
2128
+ subcomponentGroupsSortingSettings?: TSortingSettings;
2129
+ behavior?: {
2130
+ applicationStrategy?: TApplicationStrategy;
2131
+ };
2132
+ };
2133
+ type TApplicationStrategy = "selected" | "all";
2134
+ type TEngineApiEvents = TWebComponentEvents<{
2135
+ loading: void;
2136
+ loaded: void;
2137
+ updating: void;
2138
+ updated: TUpdatedPayload;
2139
+ placementBoundsReady: {
2140
+ placementSessionId: string;
2141
+ placementBounds: TPlacementBounds;
2142
+ };
2143
+ pricingUpdated: TPricingData;
2144
+ customRulesUpdated: TCustomRulesData;
2145
+ } & TRenderStreamEvents>;
2146
+ type TRenderUpdate = {
2147
+ type: "render";
2148
+ cause?: "preset";
2149
+ data: TRenderData;
2150
+ dataByRootId?: Record<string, TRootData>;
2151
+ partial?: boolean;
2152
+ settings?: TSettings;
2153
+ renderStreamId?: number;
2154
+ /** Render entry IDs changed after their chunks were emitted; required for stream completion. */
2155
+ dirtyRootIds?: string[];
2156
+ };
2157
+ type TDeleteUpdate = {
2158
+ type: "delete";
2159
+ ids: string[];
2160
+ };
2161
+ type TUpdatedPayload = TRenderUpdate | TDeleteUpdate;
2162
+ type TItemData = {
2163
+ id: string;
2164
+ name: string;
2165
+ properties: TPropertyItem[];
2166
+ };
2167
+ type TMaterialGroup$1 = {
2168
+ id: string;
2169
+ name: string;
2170
+ selectedMaterialId: string;
2171
+ };
2172
+ type TMaterialData = TItemData;
2173
+ type TSubcomponentGroup$1 = {
2174
+ id: string;
2175
+ name: string;
2176
+ selectedSubcomponentId: string;
2177
+ };
2178
+ type TSubcomponentData = TItemData;
2179
+ type TAssetsPaletteUnparsedCategory = {
2180
+ id: number;
2181
+ name: string;
2182
+ tags: number[];
2183
+ children?: TAssetsPaletteUnparsedCategory[];
2184
+ icon?: string | null;
2185
+ };
2186
+ type TAssetsPaletteLinkedPropertiesIds = {
2187
+ name?: number;
2188
+ description?: number;
2189
+ image?: number;
2190
+ };
2191
+ type TMaterialsLinkedPropertiesIds = {
2192
+ name?: number;
2193
+ thumbnail?: number;
2194
+ };
2195
+ type TSubcomponentsLinkedPropertiesIds = {
2196
+ name?: number;
2197
+ thumbnail?: number;
2198
+ };
2199
+ type TLinkedPropertiesIds = TAssetsPaletteLinkedPropertiesIds | TMaterialsLinkedPropertiesIds;
2200
+ type TAssetsPalettePatternType = "hierarchical" | "breadcrumbs";
2201
+ type TAddingAssetsMethod = "dragAndDrop" | "clickToAdd";
2202
+ type TSortingSettings = {
2203
+ field: "name" | "property" | "id";
2204
+ order: "asc" | "desc";
2205
+ };
2206
+ type TImageStyleSettings = {
2207
+ size: "sm" | "md" | "lg";
2208
+ orientation: "square" | "portrait" | "landscape";
2209
+ };
2210
+ type TStyleSettings = {
2211
+ image?: TImageStyleSettings;
2212
+ name?: {
2213
+ visible?: boolean;
2214
+ };
2215
+ description?: {
2216
+ visible?: boolean;
2217
+ };
2218
+ };
2219
+ type TPropertyItem = {
2220
+ id: number;
2221
+ value: string;
2222
+ };
2223
+ type TLayoutSettings = {
2224
+ colors: {
2225
+ primaryColor: string;
2226
+ secondaryColor: string;
2227
+ };
2228
+ defaultLayoutMode?: "configuration" | "materials";
2229
+ layersButtons?: Array<{
2230
+ label: string;
2231
+ layers: number[];
2232
+ defaultState: boolean;
2233
+ }>;
2234
+ presetsEnabled?: boolean;
2235
+ };
2236
+ type TPreset = {
2237
+ id: string;
2238
+ name: string;
2239
+ configuration: TConfigurationBaseNg | null;
2240
+ description?: string;
2241
+ icon?: string | null;
2242
+ visible?: boolean;
2243
+ };
2244
+ type TPresetsConfiguration = {
2245
+ enabled: boolean;
2246
+ selectedId?: string;
2247
+ styleSettings?: TStyleSettings;
2248
+ items: TPreset[];
2249
+ };
2250
+ declare const assetCacheBlobSchema: TObject<{
2251
+ blob: TUnknown;
2252
+ url: TString;
2253
+ }>;
2254
+ type TAssetCacheBlob = Static<typeof assetCacheBlobSchema>;
2255
+ declare const vacFileSchema: TUnion<[
2256
+ TObject<{
2257
+ component: TObject<{
2258
+ version: TString;
2259
+ id: TString;
2260
+ name: TString;
2261
+ }>;
2262
+ extensions: TArray<TString>;
2263
+ tree: TRecord<TNumber, TArray<TNumber>>;
2264
+ scene: TNumber;
2265
+ dataSource: TObject<{
2266
+ headers: TArray<TString>;
2267
+ rowId: TArray<TString>;
2268
+ colOrder: TArray<TString>;
2269
+ rowOrder: TArray<TString>;
2270
+ dataSource: TArray<TRecord<TString, TString>>;
2271
+ links: TOptional<TRecord<TString, TArray<TRecord<TString, TString>>>>;
2272
+ filters: TArray<TObject<{
2273
+ p: TString;
2274
+ f: TString;
2275
+ w: TString;
2276
+ pr: TString;
2277
+ }>>;
2278
+ select: TString;
2279
+ }>;
2280
+ objects: TArray<TObject<{
2281
+ ref: TOptional<TString>;
2282
+ descriptor: TOptional<TObject<{
2283
+ name: TString;
2284
+ code: TOptional<TString>;
2285
+ }>>;
2286
+ transform: TOptional<TNumber>;
2287
+ positioning: TOptional<TNumber>;
2288
+ boxSize: TOptional<TObject<{
2289
+ entities: TArray<TNumber>;
2290
+ values: TArray<TNumber>;
2291
+ }>>;
2292
+ propagation: TOptional<TNumber>;
2293
+ count: TOptional<TObject<{
2294
+ value: TString;
2295
+ }>>;
2296
+ geometry: TOptional<TNumber>;
2297
+ ar: TOptional<TObject<{
2298
+ enabled: TString;
2299
+ }>>;
2300
+ documentation: TOptional<TObject<{
2301
+ enabled: TString;
2302
+ }>>;
2303
+ attributes: TOptional<TArray<TNumber>>;
2304
+ uv: TOptional<TNumber>;
2305
+ structure: TOptional<TArray<TNumber>>;
2306
+ importedGeometry: TOptional<TNumber>;
2307
+ panel: TOptional<TNumber>;
2308
+ dimensionGeometry: TOptional<TNumber>;
2309
+ modifierAction: TOptional<TObject<{
2310
+ type: TString;
2311
+ }>>;
2312
+ id: TOptional<TObject<{
2313
+ value: TUnion<[
2314
+ TString,
2315
+ TNumber
2316
+ ]>;
2317
+ }>>;
2318
+ component: TOptional<TNumber>;
2319
+ leaf: TOptional<TObject<{
2320
+ state: TBoolean;
2321
+ }>>;
2322
+ extensions: TOptional<TRecord<TString, TNumber>>;
2323
+ gridPlane: TOptional<TObject<{
2324
+ mode: TOptional<TUnion<[
2325
+ TLiteral<"static">,
2326
+ TLiteral<"sticky">
2327
+ ]>>;
2328
+ tags: TArray<TNumber>;
2329
+ snaps: TArray<TUnion<[
2330
+ TObject<{
2331
+ type: TNumber;
2332
+ rows: TNumber;
2333
+ cols: TNumber;
2334
+ }>,
2335
+ TObject<{
2336
+ type: TNumber;
2337
+ x: TNumber;
2338
+ y: TNumber;
2339
+ }>
2340
+ ]>>;
2341
+ priority: TOptional<TNumber>;
2342
+ }>>;
2343
+ keyPoint: TOptional<TObject<{
2344
+ tags: TArray<TNumber>;
2345
+ }>>;
2346
+ boxCollider: TOptional<TObject<{
2347
+ tags: TArray<TNumber>;
2348
+ collision: TBoolean;
2349
+ interact: TBoolean;
2350
+ occluder: TOptional<TBoolean>;
2351
+ rangefinder: TOptional<TBoolean>;
2352
+ }>>;
2353
+ dynamicConfiguration: TOptional<TRecord<TString, TNumber>>;
2354
+ layers: TOptional<TObject<{
2355
+ ids: TArray<TNumber>;
2356
+ descendants: TOptional<TBoolean>;
2357
+ }>>;
2358
+ dimensioning: TOptional<TObject<{}>>;
2359
+ material: TOptional<TObject<{
2360
+ id: TNumber;
2361
+ }>>;
2362
+ materials: TOptional<TObject<{
2363
+ groups: TArray<TIntersect<[
2364
+ TObject<{
2365
+ availability: TNumber;
2366
+ alias: TOptional<TNumber>;
2367
+ tag: TNumber;
2368
+ }>,
2369
+ TUnion<[
2370
+ TObject<{
2371
+ type: TLiteral<"list">;
2372
+ materials: TArray<TNumber>;
2373
+ selected: TNumber;
2374
+ }>,
2375
+ TObject<{
2376
+ type: TLiteral<"query">;
2377
+ query: TNumber;
2378
+ selected: TNumber;
2379
+ }>
2380
+ ]>
2381
+ ]>>;
2382
+ }>>;
2383
+ textureFit: TOptional<TObject<{
2384
+ offset: TObject<{
2385
+ x: TNumber;
2386
+ y: TNumber;
2387
+ }>;
2388
+ rotation: TNumber;
2389
+ scale: TNumber;
2390
+ flip: TObject<{
2391
+ x: TBoolean;
2392
+ y: TBoolean;
2393
+ }>;
2394
+ random: TObject<{
2395
+ offsetX: TBoolean;
2396
+ offsetY: TBoolean;
2397
+ rotation: TBoolean;
2398
+ }>;
2399
+ }>>;
2400
+ rendering: TOptional<TObject<{
2401
+ shadow: TObject<{
2402
+ receive: TBoolean;
2403
+ cast: TBoolean;
2404
+ }>;
2405
+ order: TNumber;
2406
+ }>>;
2407
+ subcomponent: TOptional<TObject<{
2408
+ groups: TArray<TIntersect<[
2409
+ TObject<{
2410
+ availability: TNumber;
2411
+ alias: TOptional<TNumber>;
2412
+ tag: TNumber;
2413
+ }>,
2414
+ TUnion<[
2415
+ TObject<{
2416
+ type: TLiteral<"list">;
2417
+ assets: TArray<TNumber>;
2418
+ selected: TNumber;
2419
+ }>,
2420
+ TObject<{
2421
+ type: TLiteral<"query">;
2422
+ query: TNumber;
2423
+ selected: TNumber;
2424
+ }>
2425
+ ]>
2426
+ ]>>;
2427
+ }>>;
2428
+ rangefinder: TOptional<TObject<{
2429
+ tags: TArray<TNumber>;
2430
+ axis: TArray<TUnion<[
2431
+ TLiteral<"x">,
2432
+ TLiteral<"y">,
2433
+ TLiteral<"z">
2434
+ ]>>;
2435
+ near: TOptional<TNumber>;
2436
+ far: TOptional<TNumber>;
2437
+ }>>;
2438
+ animationSet: TOptional<TNumber>;
2439
+ }>>;
2440
+ variables: TObject<{
2441
+ entities: TArray<TNumber>;
2442
+ values: TArray<TUnion<[
2443
+ TNumber,
2444
+ TObject<{
2445
+ lookup: TNumber;
2446
+ }>
2447
+ ]>>;
2448
+ drivers: TArray<TNumber>;
2449
+ designations: TArray<TString>;
2450
+ helpers: TArray<TNumber>;
2451
+ }>;
2452
+ extensionsRequired: TArray<TString>;
2453
+ scenes: TArray<TObject<{
2454
+ objects: TArray<TNumber>;
2455
+ }>>;
2456
+ attributes: TOptional<TArray<TRecord<TString, TString>>>;
2457
+ entities: TOptional<TArray<TString>>;
2458
+ values: TOptional<TArray<TUnion<[
2459
+ TNumber,
2460
+ TString,
2461
+ TBoolean
2462
+ ]>>>;
2463
+ assets: TOptional<TArray<TString>>;
2464
+ $schema: TOptional<TString>;
2465
+ transforms: TOptional<TArray<TArray<TString>>>;
2466
+ positionings: TOptional<TArray<TArray<TNumber>>>;
2467
+ geometryTypes: TOptional<TArray<TUnion<[
2468
+ TLiteral<"ARROW">,
2469
+ TLiteral<"BEZIERT1">,
2470
+ TLiteral<"BEZIERT2">,
2471
+ TLiteral<"BEZIERT3">,
2472
+ TLiteral<"BOX">,
2473
+ TLiteral<"BOX2">,
2474
+ TLiteral<"BOX2X45">,
2475
+ TLiteral<"BOXHOLE">,
2476
+ TLiteral<"CIRCLE">,
2477
+ TLiteral<"CIRCLET1">,
2478
+ TLiteral<"EMPTY">,
2479
+ TLiteral<"FILE">,
2480
+ TLiteral<"K45">,
2481
+ TLiteral<"K90">,
2482
+ TLiteral<"PLANE">,
2483
+ TLiteral<"WDXF">
2484
+ ]>>>;
2485
+ geometries: TOptional<TArray<TObject<{
2486
+ type: TNumber;
2487
+ entities: TArray<TNumber>;
2488
+ values: TArray<TNumber>;
2489
+ }>>>;
2490
+ templates: TOptional<TArray<TUnion<[
2491
+ TLiteral<"ROOT">,
2492
+ TLiteral<"GROUP">,
2493
+ TLiteral<"FILE">,
2494
+ TLiteral<"IMPORT">,
2495
+ TLiteral<"ELEMENT">,
2496
+ TLiteral<"DIMENSIONS">,
2497
+ TLiteral<"MODIFIER">
2498
+ ]>>>;
2499
+ propagations: TOptional<TArray<TArray<TString>>>;
2500
+ uvs: TOptional<TArray<TObject<{
2501
+ result: TObject<{
2502
+ offset: TUnion<[
2503
+ TObject<{
2504
+ type: TString;
2505
+ parameters: TOptional<TRecord<TString, TString>>;
2506
+ }>,
2507
+ TBoolean
2508
+ ]>;
2509
+ rotate: TString;
2510
+ }>;
2511
+ }>>>;
2512
+ structures: TOptional<TArray<TObject<{
2513
+ id: TOptional<TUnion<[
2514
+ TString,
2515
+ TNumber
2516
+ ]>>;
2517
+ filterId: TOptional<TUnion<[
2518
+ TString,
2519
+ TNumber
2520
+ ]>>;
2521
+ valueFx: TOptional<TString>;
2522
+ availabilityFx: TOptional<TString>;
2523
+ }>>>;
2524
+ shadows: TOptional<TArray<TObject<{
2525
+ cast: TBoolean;
2526
+ receive: TBoolean;
2527
+ }>>>;
2528
+ panels: TOptional<TArray<TObject<{
2529
+ materialGroup: TArray<TObject<{
2530
+ id: TOptional<TUnion<[
2531
+ TString,
2532
+ TNumber
2533
+ ]>>;
2534
+ filterId: TOptional<TUnion<[
2535
+ TString,
2536
+ TNumber
2537
+ ]>>;
2538
+ valueFx: TOptional<TString>;
2539
+ availabilityFx: TOptional<TString>;
2540
+ }>>;
2541
+ finish: TArray<TObject<{
2542
+ id: TOptional<TUnion<[
2543
+ TString,
2544
+ TNumber
2545
+ ]>>;
2546
+ filterId: TOptional<TUnion<[
2547
+ TString,
2548
+ TNumber
2549
+ ]>>;
2550
+ valueFx: TOptional<TString>;
2551
+ availabilityFx: TOptional<TString>;
2552
+ matTexture: TBoolean;
2553
+ edgeSide: TArray<TUnion<[
2554
+ TLiteral<"X-">,
2555
+ TLiteral<"X+">,
2556
+ TLiteral<"Y-">,
2557
+ TLiteral<"Y+">
2558
+ ]>>;
2559
+ }>>;
2560
+ services: TArray<TObject<{
2561
+ id: TOptional<TUnion<[
2562
+ TString,
2563
+ TNumber
2564
+ ]>>;
2565
+ filterId: TOptional<TUnion<[
2566
+ TString,
2567
+ TNumber
2568
+ ]>>;
2569
+ valueFx: TOptional<TString>;
2570
+ availabilityFx: TOptional<TString>;
2571
+ }>>;
2572
+ }>>>;
2573
+ components: TOptional<TArray<TObject<{
2574
+ asset: TNumber;
2575
+ entities: TArray<TNumber>;
2576
+ values: TArray<TNumber>;
2577
+ }>>>;
2578
+ maps: TOptional<TArray<TObject<{
2579
+ asset: TNumber;
2580
+ mapType: TString;
2581
+ enabled: TBoolean;
2582
+ }>>>;
2583
+ importedGeometries: TOptional<TArray<TObject<{
2584
+ asset: TNumber;
2585
+ entities: TArray<TNumber>;
2586
+ values: TArray<TNumber>;
2587
+ map: TArray<TNumber>;
2588
+ }>>>;
2589
+ animations: TOptional<TObject<{
2590
+ sets: TArray<TObject<{
2591
+ clips: TArray<TNumber>;
2592
+ }>>;
2593
+ clips: TArray<TObject<{
2594
+ name: TNumber;
2595
+ duration: TNumber;
2596
+ channels: TArray<TNumber>;
2597
+ }>>;
2598
+ channels: TArray<TObject<{
2599
+ target: TObject<{
2600
+ node: TNumber;
2601
+ path: TNumber;
2602
+ }>;
2603
+ sampler: TNumber;
2604
+ }>>;
2605
+ samplers: TArray<TObject<{
2606
+ start: TLiteral<"current">;
2607
+ times: TArray<TNumber>;
2608
+ easings: TArray<TNumber>;
2609
+ values: TArray<TArray<TUnion<[
2610
+ TNumber,
2611
+ TString
2612
+ ]>>>;
2613
+ }>>;
2614
+ names: TArray<TString>;
2615
+ easings: TArray<TString>;
2616
+ paths: TArray<TUnion<[
2617
+ TLiteral<"translation">,
2618
+ TLiteral<"rotation">
2619
+ ]>>;
2620
+ }>>;
2621
+ }>,
2622
+ TObject<{
2623
+ meta: TObject<{
2624
+ version: TLiteral<2>;
2625
+ type: TLiteral<"vac">;
2626
+ date: TString;
2627
+ }>;
2628
+ data: TObject<{
2629
+ tree: TRecord<TNumber, TArray<TNumber>>;
2630
+ scene: TNumber;
2631
+ entities: TOptional<TArray<TString>>;
2632
+ values: TOptional<TArray<TUnion<[
2633
+ TNumber,
2634
+ TString,
2635
+ TBoolean
2636
+ ]>>>;
2637
+ dataSource: TObject<{
2638
+ headers: TArray<TString>;
2639
+ rowId: TArray<TString>;
2640
+ colOrder: TArray<TString>;
2641
+ rowOrder: TArray<TString>;
2642
+ dataSource: TArray<TRecord<TString, TString>>;
2643
+ links: TOptional<TRecord<TString, TArray<TRecord<TString, TString>>>>;
2644
+ filters: TArray<TObject<{
2645
+ p: TString;
2646
+ f: TString;
2647
+ w: TString;
2648
+ pr: TString;
2649
+ }>>;
2650
+ select: TString;
2651
+ }>;
2652
+ objects: TArray<TObject<{
2653
+ ref: TOptional<TString>;
2654
+ descriptor: TOptional<TObject<{
2655
+ name: TString;
2656
+ code: TOptional<TString>;
2657
+ }>>;
2658
+ transform: TOptional<TNumber>;
2659
+ positioning: TOptional<TNumber>;
2660
+ boxSize: TOptional<TObject<{
2661
+ entities: TArray<TNumber>;
2662
+ values: TArray<TNumber>;
2663
+ }>>;
2664
+ propagation: TOptional<TNumber>;
2665
+ count: TOptional<TObject<{
2666
+ value: TString;
2667
+ }>>;
2668
+ geometry: TOptional<TNumber>;
2669
+ ar: TOptional<TObject<{
2670
+ enabled: TString;
2671
+ }>>;
2672
+ documentation: TOptional<TObject<{
2673
+ enabled: TString;
2674
+ }>>;
2675
+ attributes: TOptional<TArray<TNumber>>;
2676
+ uv: TOptional<TNumber>;
2677
+ structure: TOptional<TArray<TNumber>>;
2678
+ importedGeometry: TOptional<TNumber>;
2679
+ panel: TOptional<TNumber>;
2680
+ dimensionGeometry: TOptional<TNumber>;
2681
+ modifierAction: TOptional<TObject<{
2682
+ type: TString;
2683
+ }>>;
2684
+ id: TOptional<TObject<{
2685
+ value: TUnion<[
2686
+ TString,
2687
+ TNumber
2688
+ ]>;
2689
+ }>>;
2690
+ component: TOptional<TNumber>;
2691
+ leaf: TOptional<TObject<{
2692
+ state: TBoolean;
2693
+ }>>;
2694
+ extensions: TOptional<TRecord<TString, TNumber>>;
2695
+ gridPlane: TOptional<TObject<{
2696
+ mode: TOptional<TUnion<[
2697
+ TLiteral<"static">,
2698
+ TLiteral<"sticky">
2699
+ ]>>;
2700
+ tags: TArray<TNumber>;
2701
+ snaps: TArray<TUnion<[
2702
+ TObject<{
2703
+ type: TNumber;
2704
+ rows: TNumber;
2705
+ cols: TNumber;
2706
+ }>,
2707
+ TObject<{
2708
+ type: TNumber;
2709
+ x: TNumber;
2710
+ y: TNumber;
2711
+ }>
2712
+ ]>>;
2713
+ priority: TOptional<TNumber>;
2714
+ }>>;
2715
+ keyPoint: TOptional<TObject<{
2716
+ tags: TArray<TNumber>;
2717
+ }>>;
2718
+ boxCollider: TOptional<TObject<{
2719
+ tags: TArray<TNumber>;
2720
+ collision: TBoolean;
2721
+ interact: TBoolean;
2722
+ occluder: TOptional<TBoolean>;
2723
+ rangefinder: TOptional<TBoolean>;
2724
+ }>>;
2725
+ dynamicConfiguration: TOptional<TRecord<TString, TNumber>>;
2726
+ layers: TOptional<TObject<{
2727
+ ids: TArray<TNumber>;
2728
+ descendants: TOptional<TBoolean>;
2729
+ }>>;
2730
+ dimensioning: TOptional<TObject<{}>>;
2731
+ material: TOptional<TObject<{
2732
+ id: TNumber;
2733
+ }>>;
2734
+ materials: TOptional<TObject<{
2735
+ groups: TArray<TIntersect<[
2736
+ TObject<{
2737
+ availability: TNumber;
2738
+ alias: TOptional<TNumber>;
2739
+ tag: TNumber;
2740
+ }>,
2741
+ TUnion<[
2742
+ TObject<{
2743
+ type: TLiteral<"list">;
2744
+ materials: TArray<TNumber>;
2745
+ selected: TNumber;
2746
+ }>,
2747
+ TObject<{
2748
+ type: TLiteral<"query">;
2749
+ query: TNumber;
2750
+ selected: TNumber;
2751
+ }>
2752
+ ]>
2753
+ ]>>;
2754
+ }>>;
2755
+ textureFit: TOptional<TObject<{
2756
+ offset: TObject<{
2757
+ x: TNumber;
2758
+ y: TNumber;
2759
+ }>;
2760
+ rotation: TNumber;
2761
+ scale: TNumber;
2762
+ flip: TObject<{
2763
+ x: TBoolean;
2764
+ y: TBoolean;
2765
+ }>;
2766
+ random: TObject<{
2767
+ offsetX: TBoolean;
2768
+ offsetY: TBoolean;
2769
+ rotation: TBoolean;
2770
+ }>;
2771
+ }>>;
2772
+ rendering: TOptional<TObject<{
2773
+ shadow: TObject<{
2774
+ receive: TBoolean;
2775
+ cast: TBoolean;
2776
+ }>;
2777
+ order: TNumber;
2778
+ }>>;
2779
+ subcomponent: TOptional<TObject<{
2780
+ groups: TArray<TIntersect<[
2781
+ TObject<{
2782
+ availability: TNumber;
2783
+ alias: TOptional<TNumber>;
2784
+ tag: TNumber;
2785
+ }>,
2786
+ TUnion<[
2787
+ TObject<{
2788
+ type: TLiteral<"list">;
2789
+ assets: TArray<TNumber>;
2790
+ selected: TNumber;
2791
+ }>,
2792
+ TObject<{
2793
+ type: TLiteral<"query">;
2794
+ query: TNumber;
2795
+ selected: TNumber;
2796
+ }>
2797
+ ]>
2798
+ ]>>;
2799
+ }>>;
2800
+ rangefinder: TOptional<TObject<{
2801
+ tags: TArray<TNumber>;
2802
+ axis: TArray<TUnion<[
2803
+ TLiteral<"x">,
2804
+ TLiteral<"y">,
2805
+ TLiteral<"z">
2806
+ ]>>;
2807
+ near: TOptional<TNumber>;
2808
+ far: TOptional<TNumber>;
2809
+ }>>;
2810
+ animationSet: TOptional<TNumber>;
2811
+ }>>;
2812
+ attributes: TOptional<TArray<TRecord<TString, TString>>>;
2813
+ extensions: TArray<TString>;
2814
+ assets: TOptional<TArray<TString>>;
2815
+ variables: TObject<{
2816
+ entities: TArray<TNumber>;
2817
+ values: TArray<TUnion<[
2818
+ TNumber,
2819
+ TObject<{
2820
+ lookup: TNumber;
2821
+ }>
2822
+ ]>>;
2823
+ drivers: TArray<TNumber>;
2824
+ designations: TArray<TString>;
2825
+ helpers: TArray<TNumber>;
2826
+ }>;
2827
+ extensionsRequired: TArray<TString>;
2828
+ scenes: TArray<TObject<{
2829
+ objects: TArray<TNumber>;
2830
+ }>>;
2831
+ $schema: TOptional<TString>;
2832
+ transforms: TOptional<TArray<TArray<TString>>>;
2833
+ positionings: TOptional<TArray<TArray<TNumber>>>;
2834
+ geometryTypes: TOptional<TArray<TUnion<[
2835
+ TLiteral<"ARROW">,
2836
+ TLiteral<"BEZIERT1">,
2837
+ TLiteral<"BEZIERT2">,
2838
+ TLiteral<"BEZIERT3">,
2839
+ TLiteral<"BOX">,
2840
+ TLiteral<"BOX2">,
2841
+ TLiteral<"BOX2X45">,
2842
+ TLiteral<"BOXHOLE">,
2843
+ TLiteral<"CIRCLE">,
2844
+ TLiteral<"CIRCLET1">,
2845
+ TLiteral<"EMPTY">,
2846
+ TLiteral<"FILE">,
2847
+ TLiteral<"K45">,
2848
+ TLiteral<"K90">,
2849
+ TLiteral<"PLANE">,
2850
+ TLiteral<"WDXF">
2851
+ ]>>>;
2852
+ geometries: TOptional<TArray<TObject<{
2853
+ type: TNumber;
2854
+ entities: TArray<TNumber>;
2855
+ values: TArray<TNumber>;
2856
+ }>>>;
2857
+ templates: TOptional<TArray<TUnion<[
2858
+ TLiteral<"ROOT">,
2859
+ TLiteral<"GROUP">,
2860
+ TLiteral<"FILE">,
2861
+ TLiteral<"IMPORT">,
2862
+ TLiteral<"ELEMENT">,
2863
+ TLiteral<"DIMENSIONS">,
2864
+ TLiteral<"MODIFIER">
2865
+ ]>>>;
2866
+ propagations: TOptional<TArray<TArray<TString>>>;
2867
+ uvs: TOptional<TArray<TObject<{
2868
+ result: TObject<{
2869
+ offset: TUnion<[
2870
+ TObject<{
2871
+ type: TString;
2872
+ parameters: TOptional<TRecord<TString, TString>>;
2873
+ }>,
2874
+ TBoolean
2875
+ ]>;
2876
+ rotate: TString;
2877
+ }>;
2878
+ }>>>;
2879
+ structures: TOptional<TArray<TObject<{
2880
+ id: TOptional<TUnion<[
2881
+ TString,
2882
+ TNumber
2883
+ ]>>;
2884
+ filterId: TOptional<TUnion<[
2885
+ TString,
2886
+ TNumber
2887
+ ]>>;
2888
+ valueFx: TOptional<TString>;
2889
+ availabilityFx: TOptional<TString>;
2890
+ }>>>;
2891
+ shadows: TOptional<TArray<TObject<{
2892
+ cast: TBoolean;
2893
+ receive: TBoolean;
2894
+ }>>>;
2895
+ panels: TOptional<TArray<TObject<{
2896
+ materialGroup: TArray<TObject<{
2897
+ id: TOptional<TUnion<[
2898
+ TString,
2899
+ TNumber
2900
+ ]>>;
2901
+ filterId: TOptional<TUnion<[
2902
+ TString,
2903
+ TNumber
2904
+ ]>>;
2905
+ valueFx: TOptional<TString>;
2906
+ availabilityFx: TOptional<TString>;
2907
+ }>>;
2908
+ finish: TArray<TObject<{
2909
+ id: TOptional<TUnion<[
2910
+ TString,
2911
+ TNumber
2912
+ ]>>;
2913
+ filterId: TOptional<TUnion<[
2914
+ TString,
2915
+ TNumber
2916
+ ]>>;
2917
+ valueFx: TOptional<TString>;
2918
+ availabilityFx: TOptional<TString>;
2919
+ matTexture: TBoolean;
2920
+ edgeSide: TArray<TUnion<[
2921
+ TLiteral<"X-">,
2922
+ TLiteral<"X+">,
2923
+ TLiteral<"Y-">,
2924
+ TLiteral<"Y+">
2925
+ ]>>;
2926
+ }>>;
2927
+ services: TArray<TObject<{
2928
+ id: TOptional<TUnion<[
2929
+ TString,
2930
+ TNumber
2931
+ ]>>;
2932
+ filterId: TOptional<TUnion<[
2933
+ TString,
2934
+ TNumber
2935
+ ]>>;
2936
+ valueFx: TOptional<TString>;
2937
+ availabilityFx: TOptional<TString>;
2938
+ }>>;
2939
+ }>>>;
2940
+ components: TOptional<TArray<TObject<{
2941
+ asset: TNumber;
2942
+ entities: TArray<TNumber>;
2943
+ values: TArray<TNumber>;
2944
+ }>>>;
2945
+ maps: TOptional<TArray<TObject<{
2946
+ asset: TNumber;
2947
+ mapType: TString;
2948
+ enabled: TBoolean;
2949
+ }>>>;
2950
+ importedGeometries: TOptional<TArray<TObject<{
2951
+ asset: TNumber;
2952
+ entities: TArray<TNumber>;
2953
+ values: TArray<TNumber>;
2954
+ map: TArray<TNumber>;
2955
+ }>>>;
2956
+ animations: TOptional<TObject<{
2957
+ sets: TArray<TObject<{
2958
+ clips: TArray<TNumber>;
2959
+ }>>;
2960
+ clips: TArray<TObject<{
2961
+ name: TNumber;
2962
+ duration: TNumber;
2963
+ channels: TArray<TNumber>;
2964
+ }>>;
2965
+ channels: TArray<TObject<{
2966
+ target: TObject<{
2967
+ node: TNumber;
2968
+ path: TNumber;
2969
+ }>;
2970
+ sampler: TNumber;
2971
+ }>>;
2972
+ samplers: TArray<TObject<{
2973
+ start: TLiteral<"current">;
2974
+ times: TArray<TNumber>;
2975
+ easings: TArray<TNumber>;
2976
+ values: TArray<TArray<TUnion<[
2977
+ TNumber,
2978
+ TString
2979
+ ]>>>;
2980
+ }>>;
2981
+ names: TArray<TString>;
2982
+ easings: TArray<TString>;
2983
+ paths: TArray<TUnion<[
2984
+ TLiteral<"translation">,
2985
+ TLiteral<"rotation">
2986
+ ]>>;
2987
+ }>>;
2988
+ }>;
2989
+ }>,
2990
+ TObject<{
2991
+ meta: TObject<{
2992
+ version: TLiteral<3>;
2993
+ type: TLiteral<"vac">;
2994
+ date: TString;
2995
+ }>;
2996
+ data: TObject<{
2997
+ attributes: TOptional<TArray<TRecord<TString, TString>>>;
2998
+ extensions: TArray<TString>;
2999
+ tree: TRecord<TNumber, TArray<TNumber>>;
3000
+ scene: TNumber;
3001
+ dataSource: TObject<{
3002
+ headers: TArray<TString>;
3003
+ rowId: TArray<TString>;
3004
+ colOrder: TArray<TString>;
3005
+ rowOrder: TArray<TString>;
3006
+ dataSource: TArray<TRecord<TString, TString>>;
3007
+ links: TOptional<TRecord<TString, TArray<TRecord<TString, TString>>>>;
3008
+ filters: TArray<TObject<{
3009
+ p: TString;
3010
+ f: TString;
3011
+ w: TString;
3012
+ pr: TString;
3013
+ }>>;
3014
+ select: TString;
3015
+ }>;
3016
+ objects: TArray<TObject<{
3017
+ ref: TOptional<TString>;
3018
+ descriptor: TOptional<TObject<{
3019
+ name: TString;
3020
+ code: TOptional<TString>;
3021
+ }>>;
3022
+ transform: TOptional<TNumber>;
3023
+ positioning: TOptional<TNumber>;
3024
+ boxSize: TOptional<TObject<{
3025
+ entities: TArray<TNumber>;
3026
+ values: TArray<TNumber>;
3027
+ }>>;
3028
+ propagation: TOptional<TNumber>;
3029
+ count: TOptional<TObject<{
3030
+ value: TString;
3031
+ }>>;
3032
+ geometry: TOptional<TNumber>;
3033
+ ar: TOptional<TObject<{
3034
+ enabled: TString;
3035
+ }>>;
3036
+ documentation: TOptional<TObject<{
3037
+ enabled: TString;
3038
+ }>>;
3039
+ attributes: TOptional<TArray<TNumber>>;
3040
+ uv: TOptional<TNumber>;
3041
+ structure: TOptional<TArray<TNumber>>;
3042
+ importedGeometry: TOptional<TNumber>;
3043
+ panel: TOptional<TNumber>;
3044
+ dimensionGeometry: TOptional<TNumber>;
3045
+ modifierAction: TOptional<TObject<{
3046
+ type: TString;
3047
+ }>>;
3048
+ id: TOptional<TObject<{
3049
+ value: TUnion<[
3050
+ TString,
3051
+ TNumber
3052
+ ]>;
3053
+ }>>;
3054
+ component: TOptional<TNumber>;
3055
+ leaf: TOptional<TObject<{
3056
+ state: TBoolean;
3057
+ }>>;
3058
+ extensions: TOptional<TRecord<TString, TNumber>>;
3059
+ gridPlane: TOptional<TObject<{
3060
+ mode: TOptional<TUnion<[
3061
+ TLiteral<"static">,
3062
+ TLiteral<"sticky">
3063
+ ]>>;
3064
+ tags: TArray<TNumber>;
3065
+ snaps: TArray<TUnion<[
3066
+ TObject<{
3067
+ type: TNumber;
3068
+ rows: TNumber;
3069
+ cols: TNumber;
3070
+ }>,
3071
+ TObject<{
3072
+ type: TNumber;
3073
+ x: TNumber;
3074
+ y: TNumber;
3075
+ }>
3076
+ ]>>;
3077
+ priority: TOptional<TNumber>;
3078
+ }>>;
3079
+ keyPoint: TOptional<TObject<{
3080
+ tags: TArray<TNumber>;
3081
+ }>>;
3082
+ boxCollider: TOptional<TObject<{
3083
+ tags: TArray<TNumber>;
3084
+ collision: TBoolean;
3085
+ interact: TBoolean;
3086
+ occluder: TOptional<TBoolean>;
3087
+ rangefinder: TOptional<TBoolean>;
3088
+ }>>;
3089
+ dynamicConfiguration: TOptional<TRecord<TString, TNumber>>;
3090
+ layers: TOptional<TObject<{
3091
+ ids: TArray<TNumber>;
3092
+ descendants: TOptional<TBoolean>;
3093
+ }>>;
3094
+ dimensioning: TOptional<TObject<{}>>;
3095
+ material: TOptional<TObject<{
3096
+ id: TNumber;
3097
+ }>>;
3098
+ materials: TOptional<TObject<{
3099
+ groups: TArray<TIntersect<[
3100
+ TObject<{
3101
+ availability: TNumber;
3102
+ alias: TOptional<TNumber>;
3103
+ tag: TNumber;
3104
+ }>,
3105
+ TUnion<[
3106
+ TObject<{
3107
+ type: TLiteral<"list">;
3108
+ materials: TArray<TNumber>;
3109
+ selected: TNumber;
3110
+ }>,
3111
+ TObject<{
3112
+ type: TLiteral<"query">;
3113
+ query: TNumber;
3114
+ selected: TNumber;
3115
+ }>
3116
+ ]>
3117
+ ]>>;
3118
+ }>>;
3119
+ textureFit: TOptional<TObject<{
3120
+ offset: TObject<{
3121
+ x: TNumber;
3122
+ y: TNumber;
3123
+ }>;
3124
+ rotation: TNumber;
3125
+ scale: TNumber;
3126
+ flip: TObject<{
3127
+ x: TBoolean;
3128
+ y: TBoolean;
3129
+ }>;
3130
+ random: TObject<{
3131
+ offsetX: TBoolean;
3132
+ offsetY: TBoolean;
3133
+ rotation: TBoolean;
3134
+ }>;
3135
+ }>>;
3136
+ rendering: TOptional<TObject<{
3137
+ shadow: TObject<{
3138
+ receive: TBoolean;
3139
+ cast: TBoolean;
3140
+ }>;
3141
+ order: TNumber;
3142
+ }>>;
3143
+ subcomponent: TOptional<TObject<{
3144
+ groups: TArray<TIntersect<[
3145
+ TObject<{
3146
+ availability: TNumber;
3147
+ alias: TOptional<TNumber>;
3148
+ tag: TNumber;
3149
+ }>,
3150
+ TUnion<[
3151
+ TObject<{
3152
+ type: TLiteral<"list">;
3153
+ assets: TArray<TNumber>;
3154
+ selected: TNumber;
3155
+ }>,
3156
+ TObject<{
3157
+ type: TLiteral<"query">;
3158
+ query: TNumber;
3159
+ selected: TNumber;
3160
+ }>
3161
+ ]>
3162
+ ]>>;
3163
+ }>>;
3164
+ rangefinder: TOptional<TObject<{
3165
+ tags: TArray<TNumber>;
3166
+ axis: TArray<TUnion<[
3167
+ TLiteral<"x">,
3168
+ TLiteral<"y">,
3169
+ TLiteral<"z">
3170
+ ]>>;
3171
+ near: TOptional<TNumber>;
3172
+ far: TOptional<TNumber>;
3173
+ }>>;
3174
+ animationSet: TOptional<TNumber>;
3175
+ }>>;
3176
+ variables: TObject<{
3177
+ entities: TArray<TNumber>;
3178
+ values: TArray<TUnion<[
3179
+ TNumber,
3180
+ TObject<{
3181
+ lookup: TNumber;
3182
+ }>
3183
+ ]>>;
3184
+ drivers: TArray<TNumber>;
3185
+ designations: TArray<TString>;
3186
+ helpers: TArray<TNumber>;
3187
+ }>;
3188
+ extensionsRequired: TArray<TString>;
3189
+ scenes: TArray<TObject<{
3190
+ objects: TArray<TNumber>;
3191
+ }>>;
3192
+ entities: TOptional<TArray<TString>>;
3193
+ values: TOptional<TArray<TUnion<[
3194
+ TNumber,
3195
+ TString,
3196
+ TBoolean
3197
+ ]>>>;
3198
+ assets: TOptional<TArray<TString>>;
3199
+ $schema: TOptional<TString>;
3200
+ transforms: TOptional<TArray<TArray<TString>>>;
3201
+ positionings: TOptional<TArray<TArray<TNumber>>>;
3202
+ geometryTypes: TOptional<TArray<TUnion<[
3203
+ TLiteral<"ARROW">,
3204
+ TLiteral<"BEZIERT1">,
3205
+ TLiteral<"BEZIERT2">,
3206
+ TLiteral<"BEZIERT3">,
3207
+ TLiteral<"BOX">,
3208
+ TLiteral<"BOX2">,
3209
+ TLiteral<"BOX2X45">,
3210
+ TLiteral<"BOXHOLE">,
3211
+ TLiteral<"CIRCLE">,
3212
+ TLiteral<"CIRCLET1">,
3213
+ TLiteral<"EMPTY">,
3214
+ TLiteral<"FILE">,
3215
+ TLiteral<"K45">,
3216
+ TLiteral<"K90">,
3217
+ TLiteral<"PLANE">,
3218
+ TLiteral<"WDXF">
3219
+ ]>>>;
3220
+ geometries: TOptional<TArray<TObject<{
3221
+ type: TNumber;
3222
+ entities: TArray<TNumber>;
3223
+ values: TArray<TNumber>;
3224
+ }>>>;
3225
+ templates: TOptional<TArray<TUnion<[
3226
+ TLiteral<"ROOT">,
3227
+ TLiteral<"GROUP">,
3228
+ TLiteral<"FILE">,
3229
+ TLiteral<"IMPORT">,
3230
+ TLiteral<"ELEMENT">,
3231
+ TLiteral<"DIMENSIONS">,
3232
+ TLiteral<"MODIFIER">
3233
+ ]>>>;
3234
+ propagations: TOptional<TArray<TArray<TString>>>;
3235
+ uvs: TOptional<TArray<TObject<{
3236
+ result: TObject<{
3237
+ offset: TUnion<[
3238
+ TObject<{
3239
+ type: TString;
3240
+ parameters: TOptional<TRecord<TString, TString>>;
3241
+ }>,
3242
+ TBoolean
3243
+ ]>;
3244
+ rotate: TString;
3245
+ }>;
3246
+ }>>>;
3247
+ structures: TOptional<TArray<TObject<{
3248
+ id: TOptional<TUnion<[
3249
+ TString,
3250
+ TNumber
3251
+ ]>>;
3252
+ filterId: TOptional<TUnion<[
3253
+ TString,
3254
+ TNumber
3255
+ ]>>;
3256
+ valueFx: TOptional<TString>;
3257
+ availabilityFx: TOptional<TString>;
3258
+ }>>>;
3259
+ shadows: TOptional<TArray<TObject<{
3260
+ cast: TBoolean;
3261
+ receive: TBoolean;
3262
+ }>>>;
3263
+ panels: TOptional<TArray<TObject<{
3264
+ materialGroup: TArray<TObject<{
3265
+ id: TOptional<TUnion<[
3266
+ TString,
3267
+ TNumber
3268
+ ]>>;
3269
+ filterId: TOptional<TUnion<[
3270
+ TString,
3271
+ TNumber
3272
+ ]>>;
3273
+ valueFx: TOptional<TString>;
3274
+ availabilityFx: TOptional<TString>;
3275
+ }>>;
3276
+ finish: TArray<TObject<{
3277
+ id: TOptional<TUnion<[
3278
+ TString,
3279
+ TNumber
3280
+ ]>>;
3281
+ filterId: TOptional<TUnion<[
3282
+ TString,
3283
+ TNumber
3284
+ ]>>;
3285
+ valueFx: TOptional<TString>;
3286
+ availabilityFx: TOptional<TString>;
3287
+ matTexture: TBoolean;
3288
+ edgeSide: TArray<TUnion<[
3289
+ TLiteral<"X-">,
3290
+ TLiteral<"X+">,
3291
+ TLiteral<"Y-">,
3292
+ TLiteral<"Y+">
3293
+ ]>>;
3294
+ }>>;
3295
+ services: TArray<TObject<{
3296
+ id: TOptional<TUnion<[
3297
+ TString,
3298
+ TNumber
3299
+ ]>>;
3300
+ filterId: TOptional<TUnion<[
3301
+ TString,
3302
+ TNumber
3303
+ ]>>;
3304
+ valueFx: TOptional<TString>;
3305
+ availabilityFx: TOptional<TString>;
3306
+ }>>;
3307
+ }>>>;
3308
+ components: TOptional<TArray<TObject<{
3309
+ asset: TNumber;
3310
+ entities: TArray<TNumber>;
3311
+ values: TArray<TNumber>;
3312
+ }>>>;
3313
+ maps: TOptional<TArray<TObject<{
3314
+ asset: TNumber;
3315
+ mapType: TString;
3316
+ enabled: TBoolean;
3317
+ }>>>;
3318
+ importedGeometries: TOptional<TArray<TObject<{
3319
+ asset: TNumber;
3320
+ entities: TArray<TNumber>;
3321
+ values: TArray<TNumber>;
3322
+ map: TArray<TNumber>;
3323
+ }>>>;
3324
+ animations: TOptional<TObject<{
3325
+ sets: TArray<TObject<{
3326
+ clips: TArray<TNumber>;
3327
+ }>>;
3328
+ clips: TArray<TObject<{
3329
+ name: TNumber;
3330
+ duration: TNumber;
3331
+ channels: TArray<TNumber>;
3332
+ }>>;
3333
+ channels: TArray<TObject<{
3334
+ target: TObject<{
3335
+ node: TNumber;
3336
+ path: TNumber;
3337
+ }>;
3338
+ sampler: TNumber;
3339
+ }>>;
3340
+ samplers: TArray<TObject<{
3341
+ start: TLiteral<"current">;
3342
+ times: TArray<TNumber>;
3343
+ easings: TArray<TNumber>;
3344
+ values: TArray<TArray<TUnion<[
3345
+ TNumber,
3346
+ TString
3347
+ ]>>>;
3348
+ }>>;
3349
+ names: TArray<TString>;
3350
+ easings: TArray<TString>;
3351
+ paths: TArray<TUnion<[
3352
+ TLiteral<"translation">,
3353
+ TLiteral<"rotation">
3354
+ ]>>;
3355
+ }>>;
3356
+ publication: TOptional<TObject<{
3357
+ id: TString;
3358
+ type: TOptional<TUnion<[
3359
+ TLiteral<"file">,
3360
+ TLiteral<"standard">
3361
+ ]>>;
3362
+ bind: TObject<{
3363
+ parameters: TOptional<TRecord<TString, TUnion<[
3364
+ TNumber,
3365
+ TNull
3366
+ ]>>>;
3367
+ dimensions: TOptional<TRecord<TString, TString>>;
3368
+ }>;
3369
+ }>>;
3370
+ }>;
3371
+ }>,
3372
+ TObject<{
3373
+ meta: TObject<{
3374
+ version: TLiteral<4>;
3375
+ type: TLiteral<"vac">;
3376
+ date: TString;
3377
+ }>;
3378
+ data: TIntersect<[
3379
+ TObject<{
3380
+ attributes: TOptional<TArray<TRecord<TString, TString>>>;
3381
+ extensions: TArray<TString>;
3382
+ tree: TRecord<TNumber, TArray<TNumber>>;
3383
+ scene: TNumber;
3384
+ dataSource: TObject<{
3385
+ headers: TArray<TString>;
3386
+ rowId: TArray<TString>;
3387
+ colOrder: TArray<TString>;
3388
+ rowOrder: TArray<TString>;
3389
+ dataSource: TArray<TRecord<TString, TString>>;
3390
+ links: TOptional<TRecord<TString, TArray<TRecord<TString, TString>>>>;
3391
+ filters: TArray<TObject<{
3392
+ p: TString;
3393
+ f: TString;
3394
+ w: TString;
3395
+ pr: TString;
3396
+ }>>;
3397
+ select: TString;
3398
+ }>;
3399
+ objects: TArray<TObject<{
3400
+ ref: TOptional<TString>;
3401
+ descriptor: TOptional<TObject<{
3402
+ name: TString;
3403
+ code: TOptional<TString>;
3404
+ }>>;
3405
+ transform: TOptional<TNumber>;
3406
+ positioning: TOptional<TNumber>;
3407
+ boxSize: TOptional<TObject<{
3408
+ entities: TArray<TNumber>;
3409
+ values: TArray<TNumber>;
3410
+ }>>;
3411
+ propagation: TOptional<TNumber>;
3412
+ count: TOptional<TObject<{
3413
+ value: TString;
3414
+ }>>;
3415
+ geometry: TOptional<TNumber>;
3416
+ ar: TOptional<TObject<{
3417
+ enabled: TString;
3418
+ }>>;
3419
+ documentation: TOptional<TObject<{
3420
+ enabled: TString;
3421
+ }>>;
3422
+ attributes: TOptional<TArray<TNumber>>;
3423
+ uv: TOptional<TNumber>;
3424
+ structure: TOptional<TArray<TNumber>>;
3425
+ importedGeometry: TOptional<TNumber>;
3426
+ panel: TOptional<TNumber>;
3427
+ dimensionGeometry: TOptional<TNumber>;
3428
+ modifierAction: TOptional<TObject<{
3429
+ type: TString;
3430
+ }>>;
3431
+ id: TOptional<TObject<{
3432
+ value: TUnion<[
3433
+ TString,
3434
+ TNumber
3435
+ ]>;
3436
+ }>>;
3437
+ component: TOptional<TNumber>;
3438
+ leaf: TOptional<TObject<{
3439
+ state: TBoolean;
3440
+ }>>;
3441
+ extensions: TOptional<TRecord<TString, TNumber>>;
3442
+ gridPlane: TOptional<TObject<{
3443
+ mode: TOptional<TUnion<[
3444
+ TLiteral<"static">,
3445
+ TLiteral<"sticky">
3446
+ ]>>;
3447
+ tags: TArray<TNumber>;
3448
+ snaps: TArray<TUnion<[
3449
+ TObject<{
3450
+ type: TNumber;
3451
+ rows: TNumber;
3452
+ cols: TNumber;
3453
+ }>,
3454
+ TObject<{
3455
+ type: TNumber;
3456
+ x: TNumber;
3457
+ y: TNumber;
3458
+ }>
3459
+ ]>>;
3460
+ priority: TOptional<TNumber>;
3461
+ }>>;
3462
+ keyPoint: TOptional<TObject<{
3463
+ tags: TArray<TNumber>;
3464
+ }>>;
3465
+ boxCollider: TOptional<TObject<{
3466
+ tags: TArray<TNumber>;
3467
+ collision: TBoolean;
3468
+ interact: TBoolean;
3469
+ occluder: TOptional<TBoolean>;
3470
+ rangefinder: TOptional<TBoolean>;
3471
+ }>>;
3472
+ dynamicConfiguration: TOptional<TRecord<TString, TNumber>>;
3473
+ layers: TOptional<TObject<{
3474
+ ids: TArray<TNumber>;
3475
+ descendants: TOptional<TBoolean>;
3476
+ }>>;
3477
+ dimensioning: TOptional<TObject<{}>>;
3478
+ material: TOptional<TObject<{
3479
+ id: TNumber;
3480
+ }>>;
3481
+ materials: TOptional<TObject<{
3482
+ groups: TArray<TIntersect<[
3483
+ TObject<{
3484
+ availability: TNumber;
3485
+ alias: TOptional<TNumber>;
3486
+ tag: TNumber;
3487
+ }>,
3488
+ TUnion<[
3489
+ TObject<{
3490
+ type: TLiteral<"list">;
3491
+ materials: TArray<TNumber>;
3492
+ selected: TNumber;
3493
+ }>,
3494
+ TObject<{
3495
+ type: TLiteral<"query">;
3496
+ query: TNumber;
3497
+ selected: TNumber;
3498
+ }>
3499
+ ]>
3500
+ ]>>;
3501
+ }>>;
3502
+ textureFit: TOptional<TObject<{
3503
+ offset: TObject<{
3504
+ x: TNumber;
3505
+ y: TNumber;
3506
+ }>;
3507
+ rotation: TNumber;
3508
+ scale: TNumber;
3509
+ flip: TObject<{
3510
+ x: TBoolean;
3511
+ y: TBoolean;
3512
+ }>;
3513
+ random: TObject<{
3514
+ offsetX: TBoolean;
3515
+ offsetY: TBoolean;
3516
+ rotation: TBoolean;
3517
+ }>;
3518
+ }>>;
3519
+ rendering: TOptional<TObject<{
3520
+ shadow: TObject<{
3521
+ receive: TBoolean;
3522
+ cast: TBoolean;
3523
+ }>;
3524
+ order: TNumber;
3525
+ }>>;
3526
+ subcomponent: TOptional<TObject<{
3527
+ groups: TArray<TIntersect<[
3528
+ TObject<{
3529
+ availability: TNumber;
3530
+ alias: TOptional<TNumber>;
3531
+ tag: TNumber;
3532
+ }>,
3533
+ TUnion<[
3534
+ TObject<{
3535
+ type: TLiteral<"list">;
3536
+ assets: TArray<TNumber>;
3537
+ selected: TNumber;
3538
+ }>,
3539
+ TObject<{
3540
+ type: TLiteral<"query">;
3541
+ query: TNumber;
3542
+ selected: TNumber;
3543
+ }>
3544
+ ]>
3545
+ ]>>;
3546
+ }>>;
3547
+ rangefinder: TOptional<TObject<{
3548
+ tags: TArray<TNumber>;
3549
+ axis: TArray<TUnion<[
3550
+ TLiteral<"x">,
3551
+ TLiteral<"y">,
3552
+ TLiteral<"z">
3553
+ ]>>;
3554
+ near: TOptional<TNumber>;
3555
+ far: TOptional<TNumber>;
3556
+ }>>;
3557
+ animationSet: TOptional<TNumber>;
3558
+ }>>;
3559
+ variables: TObject<{
3560
+ entities: TArray<TNumber>;
3561
+ values: TArray<TUnion<[
3562
+ TNumber,
3563
+ TObject<{
3564
+ lookup: TNumber;
3565
+ }>
3566
+ ]>>;
3567
+ drivers: TArray<TNumber>;
3568
+ designations: TArray<TString>;
3569
+ helpers: TArray<TNumber>;
3570
+ }>;
3571
+ extensionsRequired: TArray<TString>;
3572
+ scenes: TArray<TObject<{
3573
+ objects: TArray<TNumber>;
3574
+ }>>;
3575
+ entities: TOptional<TArray<TString>>;
3576
+ values: TOptional<TArray<TUnion<[
3577
+ TNumber,
3578
+ TString,
3579
+ TBoolean
3580
+ ]>>>;
3581
+ assets: TOptional<TArray<TString>>;
3582
+ $schema: TOptional<TString>;
3583
+ transforms: TOptional<TArray<TArray<TString>>>;
3584
+ positionings: TOptional<TArray<TArray<TNumber>>>;
3585
+ geometryTypes: TOptional<TArray<TUnion<[
3586
+ TLiteral<"ARROW">,
3587
+ TLiteral<"BEZIERT1">,
3588
+ TLiteral<"BEZIERT2">,
3589
+ TLiteral<"BEZIERT3">,
3590
+ TLiteral<"BOX">,
3591
+ TLiteral<"BOX2">,
3592
+ TLiteral<"BOX2X45">,
3593
+ TLiteral<"BOXHOLE">,
3594
+ TLiteral<"CIRCLE">,
3595
+ TLiteral<"CIRCLET1">,
3596
+ TLiteral<"EMPTY">,
3597
+ TLiteral<"FILE">,
3598
+ TLiteral<"K45">,
3599
+ TLiteral<"K90">,
3600
+ TLiteral<"PLANE">,
3601
+ TLiteral<"WDXF">
3602
+ ]>>>;
3603
+ geometries: TOptional<TArray<TObject<{
3604
+ type: TNumber;
3605
+ entities: TArray<TNumber>;
3606
+ values: TArray<TNumber>;
3607
+ }>>>;
3608
+ templates: TOptional<TArray<TUnion<[
3609
+ TLiteral<"ROOT">,
3610
+ TLiteral<"GROUP">,
3611
+ TLiteral<"FILE">,
3612
+ TLiteral<"IMPORT">,
3613
+ TLiteral<"ELEMENT">,
3614
+ TLiteral<"DIMENSIONS">,
3615
+ TLiteral<"MODIFIER">
3616
+ ]>>>;
3617
+ propagations: TOptional<TArray<TArray<TString>>>;
3618
+ uvs: TOptional<TArray<TObject<{
3619
+ result: TObject<{
3620
+ offset: TUnion<[
3621
+ TObject<{
3622
+ type: TString;
3623
+ parameters: TOptional<TRecord<TString, TString>>;
3624
+ }>,
3625
+ TBoolean
3626
+ ]>;
3627
+ rotate: TString;
3628
+ }>;
3629
+ }>>>;
3630
+ structures: TOptional<TArray<TObject<{
3631
+ id: TOptional<TUnion<[
3632
+ TString,
3633
+ TNumber
3634
+ ]>>;
3635
+ filterId: TOptional<TUnion<[
3636
+ TString,
3637
+ TNumber
3638
+ ]>>;
3639
+ valueFx: TOptional<TString>;
3640
+ availabilityFx: TOptional<TString>;
3641
+ }>>>;
3642
+ shadows: TOptional<TArray<TObject<{
3643
+ cast: TBoolean;
3644
+ receive: TBoolean;
3645
+ }>>>;
3646
+ panels: TOptional<TArray<TObject<{
3647
+ materialGroup: TArray<TObject<{
3648
+ id: TOptional<TUnion<[
3649
+ TString,
3650
+ TNumber
3651
+ ]>>;
3652
+ filterId: TOptional<TUnion<[
3653
+ TString,
3654
+ TNumber
3655
+ ]>>;
3656
+ valueFx: TOptional<TString>;
3657
+ availabilityFx: TOptional<TString>;
3658
+ }>>;
3659
+ finish: TArray<TObject<{
3660
+ id: TOptional<TUnion<[
3661
+ TString,
3662
+ TNumber
3663
+ ]>>;
3664
+ filterId: TOptional<TUnion<[
3665
+ TString,
3666
+ TNumber
3667
+ ]>>;
3668
+ valueFx: TOptional<TString>;
3669
+ availabilityFx: TOptional<TString>;
3670
+ matTexture: TBoolean;
3671
+ edgeSide: TArray<TUnion<[
3672
+ TLiteral<"X-">,
3673
+ TLiteral<"X+">,
3674
+ TLiteral<"Y-">,
3675
+ TLiteral<"Y+">
3676
+ ]>>;
3677
+ }>>;
3678
+ services: TArray<TObject<{
3679
+ id: TOptional<TUnion<[
3680
+ TString,
3681
+ TNumber
3682
+ ]>>;
3683
+ filterId: TOptional<TUnion<[
3684
+ TString,
3685
+ TNumber
3686
+ ]>>;
3687
+ valueFx: TOptional<TString>;
3688
+ availabilityFx: TOptional<TString>;
3689
+ }>>;
3690
+ }>>>;
3691
+ components: TOptional<TArray<TObject<{
3692
+ asset: TNumber;
3693
+ entities: TArray<TNumber>;
3694
+ values: TArray<TNumber>;
3695
+ }>>>;
3696
+ maps: TOptional<TArray<TObject<{
3697
+ asset: TNumber;
3698
+ mapType: TString;
3699
+ enabled: TBoolean;
3700
+ }>>>;
3701
+ importedGeometries: TOptional<TArray<TObject<{
3702
+ asset: TNumber;
3703
+ entities: TArray<TNumber>;
3704
+ values: TArray<TNumber>;
3705
+ map: TArray<TNumber>;
3706
+ }>>>;
3707
+ animations: TOptional<TObject<{
3708
+ sets: TArray<TObject<{
3709
+ clips: TArray<TNumber>;
3710
+ }>>;
3711
+ clips: TArray<TObject<{
3712
+ name: TNumber;
3713
+ duration: TNumber;
3714
+ channels: TArray<TNumber>;
3715
+ }>>;
3716
+ channels: TArray<TObject<{
3717
+ target: TObject<{
3718
+ node: TNumber;
3719
+ path: TNumber;
3720
+ }>;
3721
+ sampler: TNumber;
3722
+ }>>;
3723
+ samplers: TArray<TObject<{
3724
+ start: TLiteral<"current">;
3725
+ times: TArray<TNumber>;
3726
+ easings: TArray<TNumber>;
3727
+ values: TArray<TArray<TUnion<[
3728
+ TNumber,
3729
+ TString
3730
+ ]>>>;
3731
+ }>>;
3732
+ names: TArray<TString>;
3733
+ easings: TArray<TString>;
3734
+ paths: TArray<TUnion<[
3735
+ TLiteral<"translation">,
3736
+ TLiteral<"rotation">
3737
+ ]>>;
3738
+ }>>;
3739
+ publication: TOptional<TObject<{
3740
+ id: TString;
3741
+ type: TOptional<TUnion<[
3742
+ TLiteral<"file">,
3743
+ TLiteral<"standard">
3744
+ ]>>;
3745
+ bind: TObject<{
3746
+ parameters: TOptional<TRecord<TString, TUnion<[
3747
+ TNumber,
3748
+ TNull
3749
+ ]>>>;
3750
+ dimensions: TOptional<TRecord<TString, TString>>;
3751
+ }>;
3752
+ }>>;
3753
+ }>,
3754
+ TObject<{
3755
+ documentation: TOptional<TObject<{
3756
+ id: TOptional<TString>;
3757
+ parameters: TOptional<TArray<TObject<{
3758
+ name: TString;
3759
+ type: TUnion<[
3760
+ TLiteral<"TEXT">,
3761
+ TLiteral<"PROJECTION">,
3762
+ TLiteral<"BOOL">,
3763
+ TLiteral<"SOURCE_DATA">
3764
+ ]>;
3765
+ uuid: TString;
3766
+ value: TString;
3767
+ }>>>;
3768
+ }>>;
3769
+ }>
3770
+ ]>;
3771
+ }>,
3772
+ TObject<{
3773
+ meta: TObject<{
3774
+ version: TLiteral<5>;
3775
+ type: TLiteral<"vac">;
3776
+ date: TString;
3777
+ }>;
3778
+ data: TIntersect<[
3779
+ TIntersect<[
3780
+ TObject<{
3781
+ attributes: TOptional<TArray<TRecord<TString, TString>>>;
3782
+ extensions: TArray<TString>;
3783
+ tree: TRecord<TNumber, TArray<TNumber>>;
3784
+ scene: TNumber;
3785
+ dataSource: TObject<{
3786
+ headers: TArray<TString>;
3787
+ rowId: TArray<TString>;
3788
+ colOrder: TArray<TString>;
3789
+ rowOrder: TArray<TString>;
3790
+ dataSource: TArray<TRecord<TString, TString>>;
3791
+ links: TOptional<TRecord<TString, TArray<TRecord<TString, TString>>>>;
3792
+ filters: TArray<TObject<{
3793
+ p: TString;
3794
+ f: TString;
3795
+ w: TString;
3796
+ pr: TString;
3797
+ }>>;
3798
+ select: TString;
3799
+ }>;
3800
+ objects: TArray<TObject<{
3801
+ ref: TOptional<TString>;
3802
+ descriptor: TOptional<TObject<{
3803
+ name: TString;
3804
+ code: TOptional<TString>;
3805
+ }>>;
3806
+ transform: TOptional<TNumber>;
3807
+ positioning: TOptional<TNumber>;
3808
+ boxSize: TOptional<TObject<{
3809
+ entities: TArray<TNumber>;
3810
+ values: TArray<TNumber>;
3811
+ }>>;
3812
+ propagation: TOptional<TNumber>;
3813
+ count: TOptional<TObject<{
3814
+ value: TString;
3815
+ }>>;
3816
+ geometry: TOptional<TNumber>;
3817
+ ar: TOptional<TObject<{
3818
+ enabled: TString;
3819
+ }>>;
3820
+ documentation: TOptional<TObject<{
3821
+ enabled: TString;
3822
+ }>>;
3823
+ attributes: TOptional<TArray<TNumber>>;
3824
+ uv: TOptional<TNumber>;
3825
+ structure: TOptional<TArray<TNumber>>;
3826
+ importedGeometry: TOptional<TNumber>;
3827
+ panel: TOptional<TNumber>;
3828
+ dimensionGeometry: TOptional<TNumber>;
3829
+ modifierAction: TOptional<TObject<{
3830
+ type: TString;
3831
+ }>>;
3832
+ id: TOptional<TObject<{
3833
+ value: TUnion<[
3834
+ TString,
3835
+ TNumber
3836
+ ]>;
3837
+ }>>;
3838
+ component: TOptional<TNumber>;
3839
+ leaf: TOptional<TObject<{
3840
+ state: TBoolean;
3841
+ }>>;
3842
+ extensions: TOptional<TRecord<TString, TNumber>>;
3843
+ gridPlane: TOptional<TObject<{
3844
+ mode: TOptional<TUnion<[
3845
+ TLiteral<"static">,
3846
+ TLiteral<"sticky">
3847
+ ]>>;
3848
+ tags: TArray<TNumber>;
3849
+ snaps: TArray<TUnion<[
3850
+ TObject<{
3851
+ type: TNumber;
3852
+ rows: TNumber;
3853
+ cols: TNumber;
3854
+ }>,
3855
+ TObject<{
3856
+ type: TNumber;
3857
+ x: TNumber;
3858
+ y: TNumber;
3859
+ }>
3860
+ ]>>;
3861
+ priority: TOptional<TNumber>;
3862
+ }>>;
3863
+ keyPoint: TOptional<TObject<{
3864
+ tags: TArray<TNumber>;
3865
+ }>>;
3866
+ boxCollider: TOptional<TObject<{
3867
+ tags: TArray<TNumber>;
3868
+ collision: TBoolean;
3869
+ interact: TBoolean;
3870
+ occluder: TOptional<TBoolean>;
3871
+ rangefinder: TOptional<TBoolean>;
3872
+ }>>;
3873
+ dynamicConfiguration: TOptional<TRecord<TString, TNumber>>;
3874
+ layers: TOptional<TObject<{
3875
+ ids: TArray<TNumber>;
3876
+ descendants: TOptional<TBoolean>;
3877
+ }>>;
3878
+ dimensioning: TOptional<TObject<{}>>;
3879
+ material: TOptional<TObject<{
3880
+ id: TNumber;
3881
+ }>>;
3882
+ materials: TOptional<TObject<{
3883
+ groups: TArray<TIntersect<[
3884
+ TObject<{
3885
+ availability: TNumber;
3886
+ alias: TOptional<TNumber>;
3887
+ tag: TNumber;
3888
+ }>,
3889
+ TUnion<[
3890
+ TObject<{
3891
+ type: TLiteral<"list">;
3892
+ materials: TArray<TNumber>;
3893
+ selected: TNumber;
3894
+ }>,
3895
+ TObject<{
3896
+ type: TLiteral<"query">;
3897
+ query: TNumber;
3898
+ selected: TNumber;
3899
+ }>
3900
+ ]>
3901
+ ]>>;
3902
+ }>>;
3903
+ textureFit: TOptional<TObject<{
3904
+ offset: TObject<{
3905
+ x: TNumber;
3906
+ y: TNumber;
3907
+ }>;
3908
+ rotation: TNumber;
3909
+ scale: TNumber;
3910
+ flip: TObject<{
3911
+ x: TBoolean;
3912
+ y: TBoolean;
3913
+ }>;
3914
+ random: TObject<{
3915
+ offsetX: TBoolean;
3916
+ offsetY: TBoolean;
3917
+ rotation: TBoolean;
3918
+ }>;
3919
+ }>>;
3920
+ rendering: TOptional<TObject<{
3921
+ shadow: TObject<{
3922
+ receive: TBoolean;
3923
+ cast: TBoolean;
3924
+ }>;
3925
+ order: TNumber;
3926
+ }>>;
3927
+ subcomponent: TOptional<TObject<{
3928
+ groups: TArray<TIntersect<[
3929
+ TObject<{
3930
+ availability: TNumber;
3931
+ alias: TOptional<TNumber>;
3932
+ tag: TNumber;
3933
+ }>,
3934
+ TUnion<[
3935
+ TObject<{
3936
+ type: TLiteral<"list">;
3937
+ assets: TArray<TNumber>;
3938
+ selected: TNumber;
3939
+ }>,
3940
+ TObject<{
3941
+ type: TLiteral<"query">;
3942
+ query: TNumber;
3943
+ selected: TNumber;
3944
+ }>
3945
+ ]>
3946
+ ]>>;
3947
+ }>>;
3948
+ rangefinder: TOptional<TObject<{
3949
+ tags: TArray<TNumber>;
3950
+ axis: TArray<TUnion<[
3951
+ TLiteral<"x">,
3952
+ TLiteral<"y">,
3953
+ TLiteral<"z">
3954
+ ]>>;
3955
+ near: TOptional<TNumber>;
3956
+ far: TOptional<TNumber>;
3957
+ }>>;
3958
+ animationSet: TOptional<TNumber>;
3959
+ }>>;
3960
+ variables: TObject<{
3961
+ entities: TArray<TNumber>;
3962
+ values: TArray<TUnion<[
3963
+ TNumber,
3964
+ TObject<{
3965
+ lookup: TNumber;
3966
+ }>
3967
+ ]>>;
3968
+ drivers: TArray<TNumber>;
3969
+ designations: TArray<TString>;
3970
+ helpers: TArray<TNumber>;
3971
+ }>;
3972
+ extensionsRequired: TArray<TString>;
3973
+ scenes: TArray<TObject<{
3974
+ objects: TArray<TNumber>;
3975
+ }>>;
3976
+ entities: TOptional<TArray<TString>>;
3977
+ values: TOptional<TArray<TUnion<[
3978
+ TNumber,
3979
+ TString,
3980
+ TBoolean
3981
+ ]>>>;
3982
+ assets: TOptional<TArray<TString>>;
3983
+ $schema: TOptional<TString>;
3984
+ transforms: TOptional<TArray<TArray<TString>>>;
3985
+ positionings: TOptional<TArray<TArray<TNumber>>>;
3986
+ geometryTypes: TOptional<TArray<TUnion<[
3987
+ TLiteral<"ARROW">,
3988
+ TLiteral<"BEZIERT1">,
3989
+ TLiteral<"BEZIERT2">,
3990
+ TLiteral<"BEZIERT3">,
3991
+ TLiteral<"BOX">,
3992
+ TLiteral<"BOX2">,
3993
+ TLiteral<"BOX2X45">,
3994
+ TLiteral<"BOXHOLE">,
3995
+ TLiteral<"CIRCLE">,
3996
+ TLiteral<"CIRCLET1">,
3997
+ TLiteral<"EMPTY">,
3998
+ TLiteral<"FILE">,
3999
+ TLiteral<"K45">,
4000
+ TLiteral<"K90">,
4001
+ TLiteral<"PLANE">,
4002
+ TLiteral<"WDXF">
4003
+ ]>>>;
4004
+ geometries: TOptional<TArray<TObject<{
4005
+ type: TNumber;
4006
+ entities: TArray<TNumber>;
4007
+ values: TArray<TNumber>;
4008
+ }>>>;
4009
+ templates: TOptional<TArray<TUnion<[
4010
+ TLiteral<"ROOT">,
4011
+ TLiteral<"GROUP">,
4012
+ TLiteral<"FILE">,
4013
+ TLiteral<"IMPORT">,
4014
+ TLiteral<"ELEMENT">,
4015
+ TLiteral<"DIMENSIONS">,
4016
+ TLiteral<"MODIFIER">
4017
+ ]>>>;
4018
+ propagations: TOptional<TArray<TArray<TString>>>;
4019
+ uvs: TOptional<TArray<TObject<{
4020
+ result: TObject<{
4021
+ offset: TUnion<[
4022
+ TObject<{
4023
+ type: TString;
4024
+ parameters: TOptional<TRecord<TString, TString>>;
4025
+ }>,
4026
+ TBoolean
4027
+ ]>;
4028
+ rotate: TString;
4029
+ }>;
4030
+ }>>>;
4031
+ structures: TOptional<TArray<TObject<{
4032
+ id: TOptional<TUnion<[
4033
+ TString,
4034
+ TNumber
4035
+ ]>>;
4036
+ filterId: TOptional<TUnion<[
4037
+ TString,
4038
+ TNumber
4039
+ ]>>;
4040
+ valueFx: TOptional<TString>;
4041
+ availabilityFx: TOptional<TString>;
4042
+ }>>>;
4043
+ shadows: TOptional<TArray<TObject<{
4044
+ cast: TBoolean;
4045
+ receive: TBoolean;
4046
+ }>>>;
4047
+ panels: TOptional<TArray<TObject<{
4048
+ materialGroup: TArray<TObject<{
4049
+ id: TOptional<TUnion<[
4050
+ TString,
4051
+ TNumber
4052
+ ]>>;
4053
+ filterId: TOptional<TUnion<[
4054
+ TString,
4055
+ TNumber
4056
+ ]>>;
4057
+ valueFx: TOptional<TString>;
4058
+ availabilityFx: TOptional<TString>;
4059
+ }>>;
4060
+ finish: TArray<TObject<{
4061
+ id: TOptional<TUnion<[
4062
+ TString,
4063
+ TNumber
4064
+ ]>>;
4065
+ filterId: TOptional<TUnion<[
4066
+ TString,
4067
+ TNumber
4068
+ ]>>;
4069
+ valueFx: TOptional<TString>;
4070
+ availabilityFx: TOptional<TString>;
4071
+ matTexture: TBoolean;
4072
+ edgeSide: TArray<TUnion<[
4073
+ TLiteral<"X-">,
4074
+ TLiteral<"X+">,
4075
+ TLiteral<"Y-">,
4076
+ TLiteral<"Y+">
4077
+ ]>>;
4078
+ }>>;
4079
+ services: TArray<TObject<{
4080
+ id: TOptional<TUnion<[
4081
+ TString,
4082
+ TNumber
4083
+ ]>>;
4084
+ filterId: TOptional<TUnion<[
4085
+ TString,
4086
+ TNumber
4087
+ ]>>;
4088
+ valueFx: TOptional<TString>;
4089
+ availabilityFx: TOptional<TString>;
4090
+ }>>;
4091
+ }>>>;
4092
+ components: TOptional<TArray<TObject<{
4093
+ asset: TNumber;
4094
+ entities: TArray<TNumber>;
4095
+ values: TArray<TNumber>;
4096
+ }>>>;
4097
+ maps: TOptional<TArray<TObject<{
4098
+ asset: TNumber;
4099
+ mapType: TString;
4100
+ enabled: TBoolean;
4101
+ }>>>;
4102
+ importedGeometries: TOptional<TArray<TObject<{
4103
+ asset: TNumber;
4104
+ entities: TArray<TNumber>;
4105
+ values: TArray<TNumber>;
4106
+ map: TArray<TNumber>;
4107
+ }>>>;
4108
+ animations: TOptional<TObject<{
4109
+ sets: TArray<TObject<{
4110
+ clips: TArray<TNumber>;
4111
+ }>>;
4112
+ clips: TArray<TObject<{
4113
+ name: TNumber;
4114
+ duration: TNumber;
4115
+ channels: TArray<TNumber>;
4116
+ }>>;
4117
+ channels: TArray<TObject<{
4118
+ target: TObject<{
4119
+ node: TNumber;
4120
+ path: TNumber;
4121
+ }>;
4122
+ sampler: TNumber;
4123
+ }>>;
4124
+ samplers: TArray<TObject<{
4125
+ start: TLiteral<"current">;
4126
+ times: TArray<TNumber>;
4127
+ easings: TArray<TNumber>;
4128
+ values: TArray<TArray<TUnion<[
4129
+ TNumber,
4130
+ TString
4131
+ ]>>>;
4132
+ }>>;
4133
+ names: TArray<TString>;
4134
+ easings: TArray<TString>;
4135
+ paths: TArray<TUnion<[
4136
+ TLiteral<"translation">,
4137
+ TLiteral<"rotation">
4138
+ ]>>;
4139
+ }>>;
4140
+ publication: TOptional<TObject<{
4141
+ id: TString;
4142
+ type: TOptional<TUnion<[
4143
+ TLiteral<"file">,
4144
+ TLiteral<"standard">
4145
+ ]>>;
4146
+ bind: TObject<{
4147
+ parameters: TOptional<TRecord<TString, TUnion<[
4148
+ TNumber,
4149
+ TNull
4150
+ ]>>>;
4151
+ dimensions: TOptional<TRecord<TString, TString>>;
4152
+ }>;
4153
+ }>>;
4154
+ }>,
4155
+ TObject<{
4156
+ documentation: TOptional<TObject<{
4157
+ id: TOptional<TString>;
4158
+ parameters: TOptional<TArray<TObject<{
4159
+ name: TString;
4160
+ type: TUnion<[
4161
+ TLiteral<"TEXT">,
4162
+ TLiteral<"PROJECTION">,
4163
+ TLiteral<"BOOL">,
4164
+ TLiteral<"SOURCE_DATA">
4165
+ ]>;
4166
+ uuid: TString;
4167
+ value: TString;
4168
+ }>>>;
4169
+ }>>;
4170
+ }>
4171
+ ]>,
4172
+ TObject<{
4173
+ lookups: TOptional<TArray<TObject<{
4174
+ fileId: TNumber;
4175
+ columnId: TNumber;
4176
+ query: TNumber;
4177
+ fallback: TNumber;
4178
+ }>>>;
4179
+ }>
4180
+ ]>;
4181
+ }>
4182
+ ]>;
4183
+ type TVacFile = Static<typeof vacFileSchema>;
4184
+ export type TLoaderApi = {
4185
+ /** @ignore */
4186
+ internal: {
4187
+ saveInAssetMetadataCache(props: Record<string, TAssetMetadata> | Array<TAssetMetadata & {
4188
+ id: string;
4189
+ }>): void;
4190
+ };
4191
+ events: Emittery<TLoaderApiEvents>;
4192
+ getVacModelAssetById(assetId: string, options?: RequestInit): Promise<TVacFile>;
4193
+ getVasModelAssetById(assetId: string, options?: RequestInit): Promise<TVasFile>;
4194
+ getAssetById(assetId: string, options?: RequestInit): Promise<TAssetCacheBlob>;
4195
+ getAssetMetadataById(assetId: string): Promise<TAssetMetadata>;
4196
+ getManyAssetMetadataById(assetIds: string[]): Promise<Record<string, TAssetMetadata>>;
4197
+ getManyAssetMetadataByQuery({ extensions, queries, }: {
4198
+ extensions: string[];
4199
+ queries: Record<string, any>;
4200
+ }): Promise<Record<string, TAssetMetadata>>;
4201
+ getAssetUrl(id: string): string;
4202
+ };
4203
+ type TLoaderApiEvents = TWebComponentEvents;
4204
+ type TAssetMetadata = {
4205
+ name: string;
4206
+ properties: TPropertyItem$1[];
4207
+ };
4208
+ type TPropertyItem$1 = {
4209
+ id: number;
4210
+ value: string;
4211
+ };
4212
+ type TPlacementSessionState = "IDLE" | "DRAGGING_FROM_PALETTE" | "DRAGGING_PLACEMENT_PROXY" | "DRAGGING_OBJECT" | "COMMITTING_PLACEMENT" | "CANCELLED" | "FAILED";
4213
+ type TPlacementLoadStatus = "none" | "loading" | "ready" | "failed";
4214
+ type TPlacementSessionDebug = {
4215
+ sessionId: string;
4216
+ state: TPlacementSessionState;
4217
+ loadStatus: TPlacementLoadStatus;
4218
+ };
4219
+ type TViewerDragUpdateData = {
4220
+ placementSessionId: string;
4221
+ offsetX: number;
4222
+ offsetY: number;
4223
+ label?: string;
4224
+ placementBounds?: TPlacementBounds;
4225
+ placementSessionDebug?: TPlacementSessionDebug;
4226
+ };
4227
+ type TExternalPlacementCommand = {
4228
+ type: "SYNC_PROXY_DRAG" | "HIDE_PROXY_DRAG" | "CLEAR_PROXY_DRAG" | "SYNC_OBJECT_DRAG" | "HIDE_OBJECT_DRAG" | "COMMIT_PLACEMENT" | "CANCEL_PLACEMENT" | "FAIL_PLACEMENT";
4229
+ data: TViewerDragUpdateData;
4230
+ };
4231
+ type TExternalPlacementResult = {
4232
+ type: "COMMIT_FINISHED" | "COMMIT_REJECTED" | "CLEANUP_FINISHED";
4233
+ placementSessionId: string;
4234
+ };
4235
+ type TExternalPlacementReady = {
4236
+ placementSessionId: string;
4237
+ };
4238
+ type TViewerRangefinder = {
4239
+ available: boolean;
4240
+ enabled: boolean;
4241
+ };
4242
+ type TObjectTransformUpdate = {
4243
+ id: string;
4244
+ transform: number[];
4245
+ };
4246
+ type TViewerAnimation = {
4247
+ key: string;
4248
+ };
4249
+ type TScreenRect = {
4250
+ left: number;
4251
+ top: number;
4252
+ right: number;
4253
+ bottom: number;
4254
+ width: number;
4255
+ height: number;
4256
+ };
4257
+ type TSelectionScreenGeometry = {
4258
+ center: {
4259
+ x: number;
4260
+ y: number;
4261
+ };
4262
+ bounds: TScreenRect;
4263
+ viewport: {
4264
+ width: number;
4265
+ height: number;
4266
+ };
4267
+ };
4268
+ type TSelectionScreenGeometrySource = "selection" | "interaction" | "camera" | "layout-transform" | "programmatic";
4269
+ type TSelectionScreenGeometryUpdate = TSelectionScreenGeometry & {
4270
+ source: TSelectionScreenGeometrySource;
4271
+ };
4272
+ export type TViewerNgApi = {
4273
+ /** @ignore */
4274
+ internal: {
4275
+ updatePlacementBounds(objectId: string, placementBounds: TPlacementBounds): void;
4276
+ applyExternalPlacementCommand(command: TExternalPlacementCommand): void;
4277
+ };
4278
+ events: Emittery<TViewerNgApiEvents>;
4279
+ playAnimation(animationKey: string): Promise<void>;
4280
+ getObjectAnimations(objectId: string): TViewerAnimation[];
4281
+ playObjectAnimation(objectId: string, animationKey: string): Promise<void>;
4282
+ setDebug(state: boolean): void;
4283
+ enableRangefinder(): void;
4284
+ disableRangefinder(): void;
4285
+ deleteObjects(ids: string[]): void;
4286
+ getObjectTransform(id: string): number[] | null;
4287
+ getObjectTransformUpdates(id: string): TObjectTransformUpdate[];
4288
+ getRangefinderState(): TViewerRangefinder | null;
4289
+ highlight(id: string | string[]): void;
4290
+ select(id: string | null): void;
4291
+ unhighlight(id?: string | string[]): void;
4292
+ updateObjectTransform(id: string, transform: number[], options?: {
4293
+ screenGeometrySource?: TSelectionScreenGeometrySource;
4294
+ }): void;
4295
+ highlightByTag(rootId: string, tag: TRenderDataObjectTag): void;
4296
+ unhighlightByTag(rootId: string, tag: TRenderDataObjectTag): void;
4297
+ showDimensions(state: boolean): void;
4298
+ getDimensionsState(): boolean;
4299
+ show(id: string | string[]): void;
4300
+ hide(id: string | string[]): void;
4301
+ getObjectStates(): Record<string, TObjectState>;
4302
+ findObjectById(rootId: string, objectId: string): unknown | null;
4303
+ toggleCameraLayers(id: number[]): void;
4304
+ getSnapshotBlob(): Promise<{
4305
+ status: "success";
4306
+ blob: Blob;
4307
+ } | {
4308
+ status: "error";
4309
+ message: string;
4310
+ }>;
4311
+ getModelGLBBlob(): Promise<{
4312
+ status: "success";
4313
+ blob: Blob;
4314
+ } | {
4315
+ status: "error";
4316
+ message: string;
4317
+ }>;
4318
+ generateAndUploadAR(): Promise<{
4319
+ status: "success";
4320
+ qrImage: string;
4321
+ url: string;
4322
+ } | {
4323
+ status: "error";
4324
+ message: string;
4325
+ }>;
4326
+ applySettings(settings: Partial<TSettings>): void;
4327
+ };
4328
+ type TViewerNgApiEvents = TWebComponentEvents<{
4329
+ updating: void;
4330
+ updated: void;
4331
+ loaded: TTimestampEventPayload;
4332
+ externalPlacementReady: TExternalPlacementReady;
4333
+ externalPlacementResult: TExternalPlacementResult;
4334
+ inputStateChanged: TViewerInputState;
4335
+ dimensionsStateChanged: boolean;
4336
+ selectionChanged: {
4337
+ id: string;
4338
+ screenGeometry: TSelectionScreenGeometryUpdate | null;
4339
+ } | null;
4340
+ objectsStateChanged: void;
4341
+ }>;
4342
+ type TObjectState = Partial<{
4343
+ colliding?: boolean;
4344
+ }>;
4345
+ type TViewerInputState = {
4346
+ state: "IDLE" | "ACTIVE";
4347
+ isPointerDown: boolean;
4348
+ isControlsInputActive: boolean;
4349
+ isObjectDragging: boolean;
4350
+ isExternalDragging: boolean;
4351
+ };
4352
+ export type TLayoutNgApi = {
4353
+ events: Emittery<TLayoutNgApiEvents>;
4354
+ applyLayoutSettings(settingsPatch: Partial<TLayoutSettings>): void;
4355
+ };
4356
+ type TLayoutNgApiEvents = TWebComponentEvents;
4357
+ type TPrimitive = bigint | boolean | null | number | string | symbol | undefined;
4358
+ /**
4359
+ * @category Addons API
4360
+ */
4361
+ export type TDocumentationNgApi = {
4362
+ events: Emittery<TDocumentationNgApiEvents>;
4363
+ /**
4364
+ * Checks if documentation generation is available.
4365
+ */
4366
+ getDocumentationAvailability(): boolean;
4367
+ /**
4368
+ * Generates the documentation PDF as a Blob using optional source data.
4369
+ */
4370
+ generate(): Promise<Blob>;
4371
+ /**
4372
+ * Generates and triggers download of the documentation PDF using optional source data.
4373
+ */
4374
+ generateAndDownload(): Promise<void>;
4375
+ };
4376
+ type TDocumentationNgApiEvents = TWebComponentEvents<{
4377
+ availabilityChanged: boolean;
4378
+ generated: Blob;
4379
+ downloaded: Blob;
4380
+ }>;
4381
+ export type TIntegrationConnectorApi = {
4382
+ events: Emittery<TIntegrationConnectorApiEvents>;
4383
+ /**
4384
+ * Executes a flow immediately with the given parameters and returns the response.
4385
+ */
4386
+ execute: (params: TExecuteParams) => Promise<TExecutionResponse>;
4387
+ /**
4388
+ * Hooks specified flows by their IDs to the current project.
4389
+ */
4390
+ hookFlowsByIds: (ids: string[]) => Promise<void>;
4391
+ };
4392
+ type TIntegrationConnectorApiEvents = TWebComponentEvents<{
4393
+ executed: TExecutionResponse & {
4394
+ id: string;
4395
+ name: string;
4396
+ };
4397
+ }>;
4398
+ type TExecuteParams = {
4399
+ id: string;
4400
+ inputData?: unknown;
4401
+ };
4402
+ type TExecutionResponse = {
4403
+ isSuccess: boolean;
4404
+ data: unknown;
4405
+ };
4406
+ export type TPlayerApi = {
4407
+ /** @ignore */
4408
+ internal: {
4409
+ runUpdate<T>(callback: () => Promise<T>): Promise<T>;
4410
+ };
4411
+ /** Initial addons, scene rendering and query hydration. Rejects on startup failure or disposal. */
4412
+ ready: () => Promise<void>;
4413
+ /** The ready event is an early addon API barrier; await ready() for initial scene and query data. */
4414
+ events: Emittery<TPlayerApiEvents>;
4415
+ query: TQuery<TQueryStore>;
4416
+ getSiteId: () => string;
4417
+ isDevelopmentMode: () => boolean;
4418
+ getLibraryVersion: () => string;
4419
+ getTranslations: () => Record<string, any>;
4420
+ translate: (value: string) => string;
4421
+ getConfigurationId: () => string | null;
4422
+ generateConfiguration: () => Promise<{
4423
+ status: "success";
4424
+ id: string;
4425
+ url: string;
4426
+ dataUrl: string;
4427
+ } | {
4428
+ status: "error";
4429
+ message: string;
4430
+ }>;
4431
+ loadConfiguration: (idOrUrl: string | null) => Promise<{
4432
+ status: "success";
4433
+ } | {
4434
+ status: "error";
4435
+ message: string;
4436
+ }>;
4437
+ engine: TEngineApi;
4438
+ loader: TLoaderApi;
4439
+ viewer: TViewerNgApi;
4440
+ layout?: TLayoutNgApi;
4441
+ documentation?: TDocumentationNgApi;
4442
+ ic?: TIntegrationConnectorApi;
4443
+ };
4444
+ export type TPlayerApiEvents = TWebComponentEvents<{
4445
+ loading: void;
4446
+ loaded: void;
4447
+ updating: void;
4448
+ updated: void;
4449
+ }>;
4450
+ export type TAssemblyMode = "multi-object" | "single-object";
4451
+ export type TQueryStore = {
4452
+ status: "updating" | "updated";
4453
+ assemblyMode: TAssemblyMode | null;
4454
+ layoutConfiguration: TLayoutSettings | null;
4455
+ layerButtons: TLayerButtonQueryItem[];
4456
+ presetsConfiguration: TPresetsConfiguration | null;
4457
+ assetsPalette: TAssetsPaletteWithActions;
4458
+ products: TProductItem[];
4459
+ pricing: TPricingData$1;
4460
+ customRules: TCustomRulesData;
4461
+ layoutResult: TVasFile["set"]["configuration"]["layoutResult"] | undefined;
4462
+ documentations: TObjectDocumentation[];
4463
+ /** Viewer dimension visibility and action; null until addons are ready. */
4464
+ dimensions: {
4465
+ enabled: boolean;
4466
+ toggle: () => void;
4467
+ } | null;
4468
+ "viewer:input": TViewerInputState;
4469
+ rangefinder: {
4470
+ enabled: boolean;
4471
+ toggle: () => void;
4472
+ } | null;
4473
+ "selection:info": {
4474
+ id: string;
4475
+ name: string;
4476
+ } | null;
4477
+ "selection:screenGeometry": TSelectionScreenGeometryUpdate | null;
4478
+ "selection:materialGroups": TMaterialGroupWithActions[] | null;
4479
+ "selection:animations": TAnimationWithActions[] | null;
4480
+ "selection:subcomponentGroups": TSubcomponentGroupWithActions[] | null;
4481
+ "selection:transform": TSelectionTransform | null;
4482
+ "selection:actions": {
4483
+ deselect: () => void;
4484
+ delete?: () => Promise<void>;
4485
+ } | null;
4486
+ "selection:configuration": TConfiguration | null;
4487
+ };
4488
+ export type TLayerButtonQueryItem = {
4489
+ name: string;
4490
+ state: boolean;
4491
+ toggle: () => void;
4492
+ };
4493
+ export type TQuery<T extends TQueryStore> = {
4494
+ get<K extends keyof T>(key: K): T[K];
4495
+ subscribe<K extends keyof T>(key: K, callback: (value: T[K]) => void): () => void;
4496
+ reloadLayout(): Promise<void>;
4497
+ };
4498
+ export type TSelectionTransform = {
4499
+ get(): number[] | null;
4500
+ update(transform: number[], options?: {
4501
+ screenGeometrySource?: "layout-transform";
4502
+ }): void;
4503
+ commit(): Promise<void>;
4504
+ };
4505
+ export type TAssetsPaletteLinkedProperties = {
4506
+ name?: string;
4507
+ description?: string;
4508
+ image?: string;
4509
+ };
4510
+ export type TAssetsPalette = {
4511
+ categories?: TAssetsPaletteCategory[];
4512
+ selectedCategoryPath?: number[];
4513
+ styleSettings?: TStyleSettings;
4514
+ patternType?: TAssetsPalettePatternType$1;
4515
+ addingAssetsMethod?: TAddingAssetsMethod$1;
4516
+ sortingSettings?: TSortingSettings$1;
4517
+ };
4518
+ export type TAssetsPaletteWithActions = {
4519
+ categories?: TAssetsPaletteCategory[];
4520
+ selectedCategoryPath?: number[];
4521
+ styleSettings?: TStyleSettings;
4522
+ patternType?: TAssetsPalettePatternType$1;
4523
+ addingAssetsMethod?: TAddingAssetsMethod$1;
4524
+ };
4525
+ export type TAssetsPaletteCategory = {
4526
+ id: number;
4527
+ name: string;
4528
+ items: TAssetsPaletteItem[];
4529
+ children?: TAssetsPaletteCategory[];
4530
+ icon?: string | null;
4531
+ };
4532
+ export type TAssetsPaletteItem = {
4533
+ id: string;
4534
+ name: string;
4535
+ linkedProperties?: TAssetsPaletteLinkedProperties;
4536
+ defaultNodeId?: number;
4537
+ events: TAssetsPaletteItemEvents;
4538
+ styles?: Record<string, unknown>;
4539
+ actions: {
4540
+ add: () => Promise<void>;
4541
+ };
4542
+ };
4543
+ export type TAssetsPaletteItemEventsMap = Pick<GlobalEventHandlersEventMap, "mouseenter" | "pointerdown">;
4544
+ export type TAssetsPaletteItemEvents = {
4545
+ [K in keyof TAssetsPaletteItemEventsMap]: (event: TAssetsPaletteItemEventsMap[K]) => void;
4546
+ };
4547
+ export type TProductItem = {
4548
+ id: string;
4549
+ name: string;
4550
+ actions: {
4551
+ delete: () => Promise<void>;
4552
+ highlight: () => void;
4553
+ select: () => void;
4554
+ unhighlight: () => void;
4555
+ };
4556
+ linkedProperties?: TAssetsPaletteLinkedProperties;
4557
+ state?: Partial<{
4558
+ colliding: boolean;
4559
+ }>;
4560
+ };
4561
+ export type TMaterialsLinkedProperties = {
4562
+ name?: string;
4563
+ thumbnail?: string;
4564
+ };
4565
+ export type TMaterialDataWithActions = TMaterialData & {
4566
+ select: () => Promise<void>;
4567
+ linkedProperties?: TMaterialsLinkedProperties;
4568
+ styleSettings?: TStyleSettings;
4569
+ };
4570
+ export type TMaterialGroupWithActions = TMaterialGroup$1 & {
4571
+ materials: TMaterialDataWithActions[];
4572
+ styleSettings?: TStyleSettings;
4573
+ propagate?: () => Promise<void>;
4574
+ };
4575
+ export type TAnimationWithActions = {
4576
+ key: string;
4577
+ play: () => Promise<void>;
4578
+ };
4579
+ export type TSubcomponentsLinkedProperties = {
4580
+ name?: string;
4581
+ thumbnail?: string;
4582
+ };
4583
+ export type TSubcomponentDataWithActions = TSubcomponentData & {
4584
+ select: () => Promise<void>;
4585
+ linkedProperties?: TSubcomponentsLinkedProperties;
4586
+ styleSettings?: TStyleSettings;
4587
+ };
4588
+ export type TSubcomponentGroupWithActions = TSubcomponentGroup$1 & {
4589
+ subcomponents: TSubcomponentDataWithActions[];
4590
+ styleSettings?: TStyleSettings;
4591
+ propagate?: () => Promise<void>;
4592
+ highlight: () => void;
4593
+ unhighlight: () => void;
4594
+ };
4595
+ export type TAssetItem = {
4596
+ id: string;
4597
+ name: string;
4598
+ properties: TPropertyItem$2[];
4599
+ linkedProperties?: TAssetsPaletteLinkedProperties;
4600
+ };
4601
+ type TPropertyItem$2 = {
4602
+ id: number;
4603
+ value: string;
4604
+ };
4605
+ type TAssetsPalettePatternType$1 = "hierarchical" | "breadcrumbs";
4606
+ type TAddingAssetsMethod$1 = "dragAndDrop" | "clickToAdd";
4607
+ type TSortingSettings$1 = {
4608
+ field: "name" | "property" | "id";
4609
+ order: "asc" | "desc";
4610
+ };
4611
+ export type TConfigurationEvents = {
4612
+ [K in keyof GlobalEventHandlersEventMap]?: (event: GlobalEventHandlersEventMap[K]) => void;
4613
+ } | undefined;
4614
+ export type TConfigurationBlockNumberRange = {
4615
+ type: "number-range";
4616
+ value: number;
4617
+ range: {
4618
+ min: number;
4619
+ max: number;
4620
+ };
4621
+ preferred: number[];
4622
+ step: number;
4623
+ onUpdate(value: number): Promise<void>;
4624
+ };
4625
+ export type TConfigurationBlockNumberPredefined = {
4626
+ type: "number-predefined";
4627
+ value: number;
4628
+ options: Array<{
4629
+ value: number;
4630
+ selected?: boolean;
4631
+ preferred?: boolean;
4632
+ }>;
4633
+ onUpdate(value: number): Promise<void>;
4634
+ };
4635
+ export type TConfigurationBlockText = {
4636
+ type: "text";
4637
+ value: string;
4638
+ };
4639
+ export type TConfigurationBlockTextInput = {
4640
+ type: "text-input";
4641
+ value: string;
4642
+ maxLength: number;
4643
+ placeholder: string;
4644
+ onUpdate(value: string): Promise<void>;
4645
+ };
4646
+ export type TConfigurationBlockBoolean = {
4647
+ type: "boolean";
4648
+ value: boolean;
4649
+ onUpdate(value: boolean): Promise<void>;
4650
+ };
4651
+ export type TConfigurationBlockList = {
4652
+ type: "list";
4653
+ style: TConfigurationBlockListDropdownStyle | TConfigurationBlockListButtonsStyle | TConfigurationBlockListDropdownImageStyle | TConfigurationBlockListButtonsImageStyle;
4654
+ selected: string;
4655
+ options: Array<{
4656
+ value: string;
4657
+ label: string;
4658
+ imageSrc?: string;
4659
+ }>;
4660
+ onUpdate(value: string): Promise<void>;
4661
+ };
4662
+ export type TConfigurationBlockListDropdownStyle = {
4663
+ type: "dropdown";
4664
+ };
4665
+ export type TConfigurationBlockListButtonsStyle = {
4666
+ type: "buttons";
4667
+ align: "content" | "responsive";
4668
+ };
4669
+ export type TConfigurationBlockListDropdownImageStyle = {
4670
+ type: "dropdownImage";
4671
+ size: "sm" | "md" | "lg";
4672
+ };
4673
+ export type TConfigurationBlockListButtonsImageStyle = {
4674
+ type: "buttonsImage";
4675
+ size: "sm" | "md" | "lg";
4676
+ shape: "square" | "portrait" | "landscape";
4677
+ };
4678
+ export type TConfigurationBlock = {
4679
+ id: string;
4680
+ label: string;
4681
+ kind: TConfigurationBlockNumberRange | TConfigurationBlockNumberPredefined | TConfigurationBlockText | TConfigurationBlockTextInput | TConfigurationBlockBoolean | TConfigurationBlockList;
4682
+ events: TConfigurationEvents;
4683
+ };
4684
+ export type TConfigurationPanel = {
4685
+ id: string;
4686
+ label: string;
4687
+ blocks: TConfigurationBlock[];
4688
+ events: TConfigurationEvents;
4689
+ };
4690
+ export type TConfigurationContainer = {
4691
+ id: string;
4692
+ panels: TConfigurationPanel[];
4693
+ };
4694
+ export type TConfiguration = {
4695
+ containers: TConfigurationContainer[];
4696
+ };
4697
+ type TPricingSection$1 = {
4698
+ name: string;
4699
+ table: string[][];
4700
+ price: number;
4701
+ priceColumnIndex: number;
4702
+ };
4703
+ type TPricingData$1 = {
4704
+ finalPrice: number;
4705
+ sections: TPricingSection$1[];
4706
+ status?: "available" | "unavailable";
4707
+ };
4708
+ export type TToolbarNgApi = {
4709
+ events: Emittery<TToolbarNgApiEvents>;
4710
+ };
4711
+ type TToolbarNgApiEvents = TWebComponentEvents;
4712
+ /** The assembly custom element and its public API. */
4713
+ export type TPlayerComponent = HTMLElement & {
4714
+ api: TPlayerApi;
4715
+ };
4716
+
4717
+ declare namespace Configuration {
4718
+ export { TConfigurationBaseNg, TConfigurationExportDataNg, TConfigurationNg, configurationExportDataNgSchema, configurationNgSchema };
4719
+ }
4720
+ declare namespace Player {
4721
+ export { TAddingAssetsMethod$1 as TAddingAssetsMethod, TAnimationWithActions, TAssemblyMode, TAssetItem, TAssetsPalette, TAssetsPaletteCategory, TAssetsPaletteItem, TAssetsPaletteItemEvents, TAssetsPaletteItemEventsMap, TAssetsPaletteLinkedProperties, TAssetsPalettePatternType$1 as TAssetsPalettePatternType, TAssetsPaletteWithActions, TConfiguration, TConfigurationBlock, TConfigurationBlockBoolean, TConfigurationBlockList, TConfigurationBlockListButtonsImageStyle, TConfigurationBlockListButtonsStyle, TConfigurationBlockListDropdownImageStyle, TConfigurationBlockListDropdownStyle, TConfigurationBlockNumberPredefined, TConfigurationBlockNumberRange, TConfigurationBlockText, TConfigurationBlockTextInput, TConfigurationContainer, TConfigurationEvents, TConfigurationPanel, TLayerButtonQueryItem, TMaterialDataWithActions, TMaterialGroupWithActions, TMaterialsLinkedProperties, TPlayerApi, TPlayerApiEvents, TPricingData$1 as TPricingData, TPricingSection$1 as TPricingSection, TProductItem, TPropertyItem$2 as TPropertyItem, TQuery, TQueryStore, TSelectionTransform, TSortingSettings$1 as TSortingSettings, TSubcomponentDataWithActions, TSubcomponentGroupWithActions, TSubcomponentsLinkedProperties };
4722
+ }
4723
+ declare namespace Documentation {
4724
+ export { TDocumentationNgApi, TDocumentationNgApiEvents, TPrimitive };
4725
+ }
4726
+ declare namespace Engine {
4727
+ export { TAddingAssetsMethod, TApplicationStrategy, TAssetsPaletteConfiguration, TAssetsPaletteLinkedPropertiesIds, TAssetsPalettePatternType, TAssetsPaletteUnparsedCategory, TCameraConfiguration, TDeleteUpdate, TEngineApi, TEngineApiEvents, TImageStyleSettings, TItemData, TLayoutSettings, TLinkedPropertiesIds, TMaterialData, TMaterialGroup$1 as TMaterialGroup, TMaterialsConfiguration, TMaterialsLinkedPropertiesIds, TPlacementBounds, TPreset, TPresetsConfiguration, TPropertyItem, TRenderChunk, TRenderStreamEvents, TRenderStreamFailed, TRenderStreamStarted, TRenderUpdate, TSortingSettings, TStyleSettings, TSubcomponentData, TSubcomponentGroup$1 as TSubcomponentGroup, TSubcomponentsConfiguration, TSubcomponentsLinkedPropertiesIds, TUpdatedPayload };
4728
+ }
4729
+ declare namespace Events {
4730
+ export { TCommonWebComponentEvents, TTimestampEventPayload, TWebComponentEvents };
4731
+ }
4732
+ declare namespace IntegrationConnector {
4733
+ export { TExecuteParams, TExecutionResponse, TIntegrationConnectorApi, TIntegrationConnectorApiEvents };
4734
+ }
4735
+ declare namespace Loader {
4736
+ export { TAssetMetadata, TLoaderApi, TLoaderApiEvents, TPropertyItem$1 as TPropertyItem };
4737
+ }
4738
+ declare namespace Layout {
4739
+ export { TLayoutNgApi, TLayoutNgApiEvents };
4740
+ }
4741
+ declare namespace Toolbar {
4742
+ export { TToolbarNgApi, TToolbarNgApiEvents };
4743
+ }
4744
+ declare namespace Viewer {
4745
+ export { TExternalPlacementCommand, TExternalPlacementReady, TExternalPlacementResult, TObjectState, TObjectTransformUpdate, TPlacementLoadStatus, TPlacementSessionDebug, TPlacementSessionState, TScreenRect, TSelectionScreenGeometry, TSelectionScreenGeometrySource, TSelectionScreenGeometryUpdate, TViewerAnimation, TViewerDragUpdateData, TViewerInputState, TViewerNgApi, TViewerNgApiEvents, TViewerRangefinder };
4746
+ }
4747
+ declare namespace EngineTypes {
4748
+ export { TAnimationRenderData, TBlockBoolean, TBlockList, TBlockListButtonsImageStyle, TBlockListButtonsStyle, TBlockListDropdownImageStyle, TBlockListDropdownStyle, TBlockNumberPredefined, TBlockNumberRange, TBlockText, TBlockTextInput, TCommonMaterialGroupProperties, TCommonSubcomponentGroupProperties, TCustomRuleData, TCustomRulesData, TDocumentation, TEvents, TInteractionMode, TMaterialGroup, TObjectDocumentation, TPricingData, TPricingSection, TPublication, TPublicationBlock, TPublicationContainer, TPublicationPanel, TRenderData, TRenderDataObject, TRenderDataObjectTag, TRootData, TRootObjectConfiguration, TRootObjectData, TSettings, TSnap, TSnapGrid, TSnapGridIdentifier, TSnapIdentifier, TSnapIdentifierMaker, TSnapPoint, TSnapPointIdentifier, TSnapType, TSnapTypeMaker, TStudioDefinition, TStudioFloorConfig, TStudioFloorSettings, TStudioId, TStudioLightsSettings, TStudioOverrides, TStudioResolvedSettings, TStudioSceneConfig, TStudioSceneSettings, TStudioSettings, TStudioShadowMapConfig, TStudioShadowMapType, TStudioToneMappingMode, TSubcomponentGroup, TTreeObjectOverrides, TUniqueRenderDataObject, TValue, TVsmShadowQuality };
4749
+ }
4750
+
4751
+ export {
4752
+ Configuration,
4753
+ Documentation,
4754
+ Engine,
4755
+ EngineTypes,
4756
+ Events,
4757
+ IntegrationConnector,
4758
+ Layout,
4759
+ Loader,
4760
+ Player,
4761
+ TAddingAssetsMethod$1 as TAddingAssetsMethod,
4762
+ TAssetsPalettePatternType$1 as TAssetsPalettePatternType,
4763
+ TPricingData$1 as TPricingData,
4764
+ TPricingSection$1 as TPricingSection,
4765
+ TPropertyItem$2 as TPropertyItem,
4766
+ TSortingSettings$1 as TSortingSettings,
4767
+ Toolbar,
4768
+ Viewer,
4769
+ };
4770
+
4771
+ export {};