@miris-inc/core 0.0.8-bed26f0 → 0.0.8-bf2736d

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.
package/dist/core.d.ts ADDED
@@ -0,0 +1,639 @@
1
+ declare interface AttributeInfo extends EmbindObject {
2
+ readonly dataType: number;
3
+ readonly componentCount: number;
4
+ readonly dataPtr: number;
5
+ readonly dataByteLength: number;
6
+ readonly clientSideId: bigint;
7
+ readonly maxValue: { x: number; y: number; z: number };
8
+ }
9
+
10
+ export declare class Camera {
11
+ #private;
12
+ readonly id: number;
13
+ update(): void;
14
+ get aspect(): number;
15
+ set aspect(aspect: number);
16
+ get fov(): number;
17
+ set fov(fov: number);
18
+ get near(): number;
19
+ set near(near: number);
20
+ get far(): number;
21
+ set far(far: number);
22
+ get matrix(): Matrix4x4Tuple;
23
+ set matrix(matrix: Matrix4x4Tuple);
24
+ readonly engine: Engine;
25
+ readonly miris: Miris;
26
+ readonly scene: Scene;
27
+ constructor({ aspect, fov, near, far, matrix, scene }: CameraInit);
28
+ }
29
+
30
+ export declare type CameraInit = {
31
+ aspect: number;
32
+ fov: number;
33
+ near: number;
34
+ far: number;
35
+ matrix: Matrix4x4Tuple;
36
+ scene: Scene;
37
+ };
38
+
39
+ export declare class Change {
40
+ readonly type: ChangeInit["type"];
41
+ readonly lod: ChangeInit["lod"];
42
+ constructor({ type, lod }: ChangeInit);
43
+ }
44
+
45
+ export declare type ChangeInit = {
46
+ type: "created" | "activated" | "modified" | "deactivated" | "deleted";
47
+ lod: Lod;
48
+ };
49
+
50
+ declare class Client {
51
+ #private;
52
+ readonly engine: Engine;
53
+ readonly handle: AquaClientHandle;
54
+ get viewerKey(): string | null;
55
+ set viewerKey(key: string | null);
56
+ constructor({ engine, context }: ClientInit);
57
+ dispose(): void;
58
+ addStreamById(...args: ClientMethodParameters["addStreamById"]): number;
59
+ addPrefetchStreamById(...args: ClientMethodParameters["addPrefetchStreamById"]): number;
60
+ destroyClient(...args: ClientMethodParameters["destroyClient"]): AquaStatus;
61
+ getAssetsAsync(...args: ClientMethodParameters["getAssetsAsync"]): AssetInfo[];
62
+ getAttribute(...args: ClientMethodParameters["getAttribute"]): AquaStatus;
63
+ getDefaultCameraId(...args: ClientMethodParameters["getDefaultCameraId"]): number;
64
+ getViewingVolumeId(...args: ClientMethodParameters["getViewingVolumeId"]): number;
65
+ getLocalBoundingBox(...args: ClientMethodParameters["getLocalBoundingBox"]): AquaStatus;
66
+ getWorldBoundingBox(...args: ClientMethodParameters["getWorldBoundingBox"]): AquaStatus;
67
+ getLodIndex(...args: ClientMethodParameters["getLodIndex"]): number;
68
+ getSceneChanges(...args: ClientMethodParameters["getSceneChanges"]): void;
69
+ getSceneChangesCounts(...args: ClientMethodParameters["getSceneChangesCounts"]): void;
70
+ getSceneMetadata(...args: ClientMethodParameters["getSceneMetadata"]): number;
71
+ getSceneObjectParent(...args: ClientMethodParameters["getSceneObjectParent"]): number;
72
+ getSceneObjectType(...args: ClientMethodParameters["getSceneObjectType"]): SceneObjectType;
73
+ getLocalTransform(...args: ClientMethodParameters["getLocalTransform"]): AquaStatus;
74
+ getWorldTransform(...args: ClientMethodParameters["getWorldTransform"]): AquaStatus;
75
+ hasAttribute(...args: ClientMethodParameters["hasAttribute"]): boolean;
76
+ isSceneObjectAncestorOf(...args: ClientMethodParameters["isSceneObjectAncestorOf"]): boolean;
77
+ lockScene(...args: ClientMethodParameters["lockScene"]): boolean;
78
+ removeStream(...args: ClientMethodParameters["removeStream"]): boolean;
79
+ setAssetViewerKey(...args: ClientMethodParameters["setAssetViewerKey"]): AquaStatus;
80
+ setClientSpatialFormat(...args: ClientMethodParameters["setClientSpatialFormat"]): AquaStatus;
81
+ setRuntimeSettings(...args: ClientMethodParameters["setRuntimeSettings"]): AquaStatus;
82
+ setMainCameraTransform(...args: ClientMethodParameters["setMainCameraTransform"]): AquaStatus;
83
+ setMainCameraViewFrustum(...args: ClientMethodParameters["setMainCameraViewFrustum"]): AquaStatus;
84
+ setSceneObjectTransform(...args: ClientMethodParameters["setSceneObjectTransform"]): AquaStatus;
85
+ hasFeature(...args: ClientMethodParameters["hasFeature"]): boolean;
86
+ getFeatureVersion(...args: ClientMethodParameters["getFeatureVersion"]): number;
87
+ getFeatureState(...args: ClientMethodParameters["getFeatureState"]): number;
88
+ getName(...args: ClientMethodParameters["getName"]): string;
89
+ setVariantSelection(...args: ClientMethodParameters["setVariantSelection"]): AquaStatus;
90
+ takeAttribute(...args: ClientMethodParameters["takeAttribute"]): AquaStatus;
91
+ takeEvictedClientSideAttributeIds(...args: ClientMethodParameters["takeEvictedClientSideAttributeIds"]): EmbindVector<bigint>;
92
+ takeRenderRequired(...args: ClientMethodParameters["takeRenderRequired"]): boolean;
93
+ unlockScene(...args: ClientMethodParameters["unlockScene"]): boolean;
94
+ updateSceneExecution(...args: ClientMethodParameters["updateSceneExecution"]): AquaStatus;
95
+ recordFrameTime(...args: ClientMethodParameters["recordFrameTime"]): AquaStatus;
96
+ }
97
+
98
+ declare type ClientInit = {
99
+ engine: Engine;
100
+ context?: AquaContextHandle;
101
+ };
102
+
103
+ declare type ClientMethodParameters<Parameters extends EngineMethodParameters = EngineMethodParameters> = {
104
+ [Key in keyof Parameters]: Parameters[Key] extends [any, ...infer Rest] ? Rest : [];
105
+ };
106
+
107
+ declare interface EmbindObject {
108
+ delete(): void;
109
+ }
110
+
111
+ declare interface EmbindVector<T> extends EmbindObject {
112
+ size(): number;
113
+ get(index: number): T;
114
+ push_back(value: T): void;
115
+ }
116
+
117
+ /**
118
+ * The main Aqua wrapper.
119
+ *
120
+ * @remarks
121
+ * The engine is asynchronously initialized, meaning synchronous operations may
122
+ * fail if is not ready. To ensure the engine is ready, await `engine.ready`
123
+ * or check `engine.pending`.
124
+ */
125
+ declare class Engine {
126
+ #private;
127
+ static AquaStatus: {
128
+ readonly Success: 0;
129
+ readonly Failure: 1;
130
+ };
131
+ static SceneObjectType: {
132
+ readonly ModelRoot: 0;
133
+ readonly SceneObject: 1;
134
+ readonly StreamObject: 2;
135
+ readonly GaussianSplats: 3;
136
+ readonly PointsObject: 4;
137
+ readonly Camera: 5;
138
+ readonly LodOctree: 6;
139
+ readonly VariantSetCollection: 7;
140
+ readonly VariantSet: 8;
141
+ readonly VariantSetOption: 9;
142
+ };
143
+ static Feature: {
144
+ readonly DrMap: 0;
145
+ readonly ReflMesh: 1;
146
+ readonly GlassMesh: 2;
147
+ };
148
+ static FeatureState: {
149
+ readonly NotLoaded: 0;
150
+ readonly Pending: 1;
151
+ readonly Loaded: 2;
152
+ readonly Failed: 3;
153
+ };
154
+ readonly ready: Promise<this>;
155
+ readonly pending: boolean;
156
+ get module(): MainModule;
157
+ constructor(moduleOptions?: Record<string, unknown>);
158
+ get AttributeInfo(): new () => AttributeInfo;
159
+ get Handedness(): {
160
+ Right: number;
161
+ Left: number;
162
+ };
163
+ get heapF32(): Float32Array<ArrayBuffer>;
164
+ get heapU8(): Uint8Array<ArrayBuffer>;
165
+ get MatrixOrder(): {
166
+ ColumnMajor: number;
167
+ RowMajor: number;
168
+ };
169
+ get SceneChangeIds(): new () => SceneChangeIds;
170
+ get SceneMetadata(): new () => SceneMetadata;
171
+ get RuntimeSettings(): new () => RuntimeSettings;
172
+ get SpatialFormat(): new () => SpatialFormat;
173
+ get StringVector(): new () => StringVector;
174
+ get UpAxis(): {
175
+ X: number;
176
+ Y: number;
177
+ Z: number;
178
+ };
179
+ activatedObjectIdsView(...args: [sceneChangeIds: SceneChangeIds]): Uint32Array;
180
+ addStreamById(...args: [
181
+ handle: AquaClientHandle,
182
+ streamName: string,
183
+ assetId: string,
184
+ doNotRefine: boolean
185
+ ]): number;
186
+ addPrefetchStreamById(...args: [
187
+ handle: AquaClientHandle,
188
+ streamName: string,
189
+ assetId: string,
190
+ maxPrefetchDepth: number,
191
+ keepPrefetch: boolean
192
+ ]): number;
193
+ allocateSceneChangesArrays(...args: [sceneChangeIds: SceneChangeIds]): void;
194
+ createContext(...args: []): AquaContextHandle;
195
+ destroyContext(...args: [handle: AquaContextHandle]): AquaStatus;
196
+ createClient(context?: AquaContextHandle, ...args: []): AquaClientHandle;
197
+ createdObjectIdsView(...args: [sceneChangeIds: SceneChangeIds]): Uint32Array;
198
+ deletedObjectIdsView(...args: [sceneChangeIds: SceneChangeIds]): Uint32Array;
199
+ dataPtrView(...args: [attributeInfo: AttributeInfo]): Uint32Array;
200
+ deactivatedObjectIdsView(...args: [sceneChangeIds: SceneChangeIds]): Uint32Array;
201
+ destroyClient(...args: [handle: AquaClientHandle]): AquaStatus;
202
+ free(...args: [size: number]): number;
203
+ getAssetsAsync(...args: [handle: AquaClientHandle, tags: StringVector]): AssetInfo[];
204
+ getAttribute(...args: [
205
+ handle: AquaClientHandle,
206
+ sceneObjectId: number,
207
+ attributeName: string,
208
+ attributeInfo: AttributeInfo
209
+ ]): AquaStatus;
210
+ getDefaultCameraId(...args: [handle: AquaClientHandle]): number;
211
+ getViewingVolumeId(...args: [handle: AquaClientHandle]): number;
212
+ getLocalBoundingBox(...args: [handle: AquaClientHandle, sceneObjectId: number, boxData: number]): AquaStatus;
213
+ getWorldBoundingBox(...args: [handle: AquaClientHandle, sceneObjectId: number, boxData: number]): AquaStatus;
214
+ getLodIndex(...args: [handle: AquaClientHandle, sceneObjectId: number]): number;
215
+ getSceneChanges(...args: [handle: AquaClientHandle, sceneChangeIds: SceneChangeIds]): void;
216
+ getSceneChangesCounts(...args: [handle: AquaClientHandle, sceneChangeIds: SceneChangeIds]): void;
217
+ getSceneMetadata(...args: [handle: AquaClientHandle, metadata: SceneMetadata]): number;
218
+ getSceneObjectParent(...args: [handle: AquaClientHandle, sceneObjectId: number]): number;
219
+ getSceneObjectType(...args: [handle: AquaClientHandle, sceneObjectId: number]): SceneObjectType;
220
+ getLocalTransform(...args: [
221
+ handle: AquaClientHandle,
222
+ sceneObjectId: number,
223
+ transform: number
224
+ ]): AquaStatus;
225
+ getWorldTransform(...args: [
226
+ handle: AquaClientHandle,
227
+ sceneObjectId: number,
228
+ transform: number
229
+ ]): AquaStatus;
230
+ hasAttribute(...args: [
231
+ handle: AquaClientHandle,
232
+ sceneObjectId: number,
233
+ attributeName: string
234
+ ]): boolean;
235
+ isSceneObjectAncestorOf(...args: [
236
+ handle: AquaClientHandle,
237
+ sceneObjectId: number,
238
+ descendantObjectId: number
239
+ ]): boolean;
240
+ lockScene(...args: [handle: AquaClientHandle]): boolean;
241
+ malloc(...args: [size: number]): number;
242
+ modifiedObjectIdsView(...args: [sceneChangeIds: SceneChangeIds]): Uint32Array;
243
+ onWorkerResult(...args: [
244
+ requestIdLow: number,
245
+ requestIdHigh: number,
246
+ bufferPtr: number,
247
+ bufferSize: number,
248
+ httpStatus: number,
249
+ duration: number,
250
+ ttfb: number,
251
+ success: boolean,
252
+ dataType: number,
253
+ errorPtr: string,
254
+ responseHeadersJson: string,
255
+ contextPtr: number
256
+ ]): void;
257
+ removeStream(...args: [handle: AquaClientHandle, streamObjectId: number]): boolean;
258
+ setAssetViewerKey(...args: [handle: AquaClientHandle, key: string]): AquaStatus;
259
+ setClientSpatialFormat(...args: [handle: AquaClientHandle, spatialFormat: SpatialFormat]): AquaStatus;
260
+ setRuntimeSettings(...args: [handle: AquaClientHandle, settings: RuntimeSettings]): AquaStatus;
261
+ setMainCameraTransform(...args: [handle: AquaClientHandle, cameraTransform: number]): AquaStatus;
262
+ setMainCameraViewFrustum(...args: [
263
+ handle: AquaClientHandle,
264
+ aspectRatio: number,
265
+ verticalFov: number,
266
+ nearPlane: number,
267
+ farPlane: number
268
+ ]): AquaStatus;
269
+ setMaxCacheSize(...args: [maxSizeBytes: number]): void;
270
+ setSceneObjectTransform(...args: [
271
+ handle: AquaClientHandle,
272
+ sceneObjectId: number,
273
+ transform: number
274
+ ]): AquaStatus;
275
+ hasFeature(...args: [handle: AquaClientHandle, sceneObjectId: number, feature: number]): boolean;
276
+ getFeatureVersion(...args: [handle: AquaClientHandle, sceneObjectId: number, feature: number]): number;
277
+ getFeatureState(...args: [handle: AquaClientHandle, sceneObjectId: number, feature: number]): number;
278
+ getName(...args: [handle: AquaClientHandle, sceneObjectId: number]): string;
279
+ setVariantSelection(...args: [handle: AquaClientHandle, sceneObjectId: number]): AquaStatus;
280
+ takeAttribute(...args: [
281
+ handle: AquaClientHandle,
282
+ sceneObjectId: number,
283
+ attributeName: string,
284
+ clientSideId: bigint
285
+ ]): AquaStatus;
286
+ takeEvictedClientSideAttributeIds(...args: [handle: AquaClientHandle]): EmbindVector<bigint>;
287
+ getActiveClientSideIdsCheckSum(): number;
288
+ unlockScene(...args: [handle: AquaClientHandle]): boolean;
289
+ updateSceneExecution(...args: [handle: AquaClientHandle]): AquaStatus;
290
+ recordFrameTime(...args: [handle: AquaClientHandle, frameTimeMs: number]): AquaStatus;
291
+ takeRenderRequired(...args: [handle: AquaClientHandle]): boolean;
292
+ createDeserializeWorker(_url: string, _workerUrl: string, poolSize: number): boolean;
293
+ cancelRequest(requestIdLow: number, requestIdHigh: number): boolean;
294
+ submitToWorker(requestIdLow: number, requestIdHigh: number, descriptorBuffer: ArrayBuffer, contextPtr: number): boolean;
295
+ terminateWorker(): void;
296
+ requestWorkerHeapSnapshots(topN: number): Promise<(string | null)[]>;
297
+ setWorkerHeapTrackingEnabled(enabled: boolean): Promise<void>;
298
+ resetWorkerHeapTracking(): Promise<void>;
299
+ }
300
+
301
+ declare type EngineMethodParameters<E extends Engine = Engine> = {
302
+ [Key in keyof E]: E[Key] extends (...args: any[]) => any ? Parameters<E[Key]> : never;
303
+ };
304
+
305
+ export declare class Lod {
306
+ #private;
307
+ readonly id: LodInit["id"];
308
+ readonly store: LodStore;
309
+ useExtSplats: boolean;
310
+ splatsExtendedData: Uint32Array<ArrayBuffer> | null;
311
+ sh1Data: Uint32Array<ArrayBuffer> | null;
312
+ sh1Max: number;
313
+ sh2Data: Uint32Array<ArrayBuffer> | null;
314
+ sh2Max: number;
315
+ sh3Data: Uint32Array<ArrayBuffer> | null;
316
+ sh3Max: number;
317
+ sh3ExtendedData: Uint32Array<ArrayBuffer> | null;
318
+ get key(): unknown;
319
+ set key(key: unknown);
320
+ readonly modelRoot: ModelRoot;
321
+ set splats(splats: Uint32Array<ArrayBuffer> | null);
322
+ get splats(): Uint32Array<ArrayBuffer> | null;
323
+ /**
324
+ * Sets the cached world bounds of this object
325
+ *
326
+ * @deprecated set the local bounds and transform as needed
327
+ */
328
+ set bounds(bounds: Float32Array<ArrayBuffer> | null);
329
+ /**
330
+ * Retrieves the cached world bounds of this object
331
+ *
332
+ * @deprecated Retrieve the local bounds and transform as needed
333
+ */
334
+ get bounds(): Float32Array<ArrayBuffer> | null;
335
+ /**
336
+ * Sets the local bounds of this lod
337
+ */
338
+ set localBounds(bounds: Float32Array<ArrayBuffer> | null);
339
+ /**
340
+ * Retrieves the local bounds of this lod
341
+ */
342
+ get localBounds(): Float32Array<ArrayBuffer> | null;
343
+ set lodIndex(index: number);
344
+ get lodIndex(): number | null;
345
+ set paddingCount(count: number);
346
+ get paddingCount(): number;
347
+ set transform(transform: Float32Array<ArrayBuffer> | null);
348
+ get transform(): Float32Array<ArrayBuffer> | null;
349
+ setSh1(sh1Data: Uint32Array<ArrayBuffer>, sh1Max: number): void;
350
+ setSh2(sh2Data: Uint32Array<ArrayBuffer>, sh2Max: number): void;
351
+ setSh3(sh3Data: Uint32Array<ArrayBuffer>, sh3Max: number): void;
352
+ dispose(): void;
353
+ constructor({ id, modelRoot, lodStore }: LodInit);
354
+ }
355
+
356
+ export declare type LodInit = {
357
+ id: number;
358
+ modelRoot: ModelRoot;
359
+ lodStore: LodStore;
360
+ };
361
+
362
+ export declare class LodStore {
363
+ #private;
364
+ forKey(key: unknown): Lod | undefined;
365
+ forId(id: number): Lod | undefined;
366
+ setKey(key: unknown, lod: Lod): void;
367
+ setId(id: number, lod: Lod): Map<number, Lod>;
368
+ delete(lod: Lod): void;
369
+ deleteKey(key: unknown): void;
370
+ deleteId(id: number): void;
371
+ }
372
+
373
+ declare interface MainModule {
374
+ AttributeInfo: new () => AttributeInfo;
375
+ Handedness: { Right: number; Left: number };
376
+ HEAPF32: Float32Array<ArrayBuffer>;
377
+ HEAPU8: Uint8Array<ArrayBuffer>;
378
+ HEAPU32: Uint32Array<ArrayBuffer>;
379
+ MatrixOrder: { ColumnMajor: number; RowMajor: number };
380
+ SceneChangeIds: new () => SceneChangeIds;
381
+ SceneMetadata: new () => SceneMetadata;
382
+ RuntimeSettings: new () => RuntimeSettings;
383
+ SpatialFormat: new () => SpatialFormat;
384
+ StringVector: new () => StringVector;
385
+ UpAxis: { X: number; Y: number; Z: number };
386
+ ENV: Record<string, string>;
387
+
388
+ ccall(
389
+ ident: string,
390
+ returnType: string | null,
391
+ argTypes: string[],
392
+ args: unknown[],
393
+ ): number;
394
+
395
+ activatedObjectIdsView(sceneChangeIds: SceneChangeIds): Uint32Array;
396
+ AllocateSceneChangesArrays(sceneChangeIds: SceneChangeIds): void;
397
+ createdObjectIdsView(sceneChangeIds: SceneChangeIds): Uint32Array;
398
+ dataPtrView(attributeInfo: AttributeInfo): Uint32Array;
399
+ deactivatedObjectIdsView(sceneChangeIds: SceneChangeIds): Uint32Array;
400
+ deletedObjectIdsView(sceneChangeIds: SceneChangeIds): Uint32Array;
401
+ GetAssetsAsync(handle: number, tags: StringVector): unknown[];
402
+ GetSceneChanges(handle: number, sceneChangeIds: SceneChangeIds): void;
403
+ GetSceneChangesCounts(handle: number, sceneChangeIds: SceneChangeIds): void;
404
+ GetSceneMetadata(handle: number, metadata: SceneMetadata): { value: number };
405
+ GetName(handle: number, sceneObjectId: number): string;
406
+ HasFeature(handle: number, sceneObjectId: number, feature: number): boolean;
407
+ GetFeatureVersion(handle: number, sceneObjectId: number, feature: number): number;
408
+ GetFeatureState(handle: number, sceneObjectId: number, feature: number): number;
409
+ SetClientSpatialFormat(handle: number, spatialFormat: SpatialFormat): { value: number };
410
+ SetRuntimeSettings(handle: number, settings: RuntimeSettings): { value: number };
411
+ TakeEvictedClientSideAttributeIds(handle: number): EmbindVector<bigint>;
412
+ GetActiveClientSideIdsCheckSum(): number;
413
+ TakeRenderRequired(handle: number): boolean;
414
+ modifiedObjectIdsView(sceneChangeIds: SceneChangeIds): Uint32Array;
415
+ setMaxCacheSize(maxSizeBytes: number): void;
416
+ }
417
+
418
+ /**
419
+ * The main Miris application.
420
+ *
421
+ * @remarks
422
+ * This class is initialized asynchronously, so synchronous operations may
423
+ * fail if Miris is not ready. To ensure Miris is ready, await `miris.ready`
424
+ * or get `miris.pending`.
425
+ */
426
+ export declare class Miris {
427
+ #private;
428
+ static _instance: Miris;
429
+ static instance<T extends typeof Miris>(this: T): Promise<InstanceType<T>>;
430
+ readonly engine: Engine;
431
+ readonly ready: Promise<this>;
432
+ readonly pending: boolean;
433
+ get sharedContext(): number | undefined;
434
+ get viewerKey(): string | null | undefined;
435
+ set viewerKey(viewerKey: string | null | undefined);
436
+ get scenes(): Set<Scene>;
437
+ get useSphericalHarmonics(): boolean;
438
+ set useSphericalHarmonics(value: boolean);
439
+ constructor();
440
+ dispose(): void;
441
+ updateParentedTransform(_modelTransform: Float32Array<ArrayBuffer>, _parentTransform: Float32Array<ArrayBuffer>): Float32Array<ArrayBuffer> | undefined;
442
+ protected _xrModeActive: boolean;
443
+ protected _xrSession: XRSession | null;
444
+ protected _requestAnimationFrame: RequestAnimationFrameFn | null;
445
+ signalResumeFromIdle(): void;
446
+ /**
447
+ * Why 43? Because the AVP throttles down to 45Hz :(
448
+ */
449
+ static readonly _XR_TARGET_FRAME_RATE = 43;
450
+ /* Excluded from this release type: _setTargetFrameRate */
451
+ /* Excluded from this release type: _setXRModeActive */
452
+ /* Excluded from this release type: _setSplatCountBudgetOverride */
453
+ /* Excluded from this release type: _update */
454
+ getLocalTransform(client: Client, sceneObjectId: number): Float32Array<ArrayBuffer> | undefined;
455
+ getWorldTransform(client: Client, sceneObjectId: number): Float32Array<ArrayBuffer> | undefined;
456
+ update(): boolean;
457
+ applyChanges(_entries: Change[]): void;
458
+ _computeAdditionalRenderNeeded(): boolean;
459
+ onColorSpaceDetected(_isLinear: boolean): void;
460
+ add(scene: Scene): void;
461
+ delete(scene: Scene): void;
462
+ }
463
+
464
+ export declare class ModelRoot {
465
+ #private;
466
+ static forKey(key: unknown): ModelRoot | undefined;
467
+ static forId(id: number): ModelRoot | undefined;
468
+ readonly id: ModelRootInit["id"];
469
+ get key(): unknown;
470
+ set key(key: unknown);
471
+ get lods(): Set<Lod>;
472
+ set transform(transform: Float32Array<ArrayBuffer>);
473
+ get transform(): Float32Array<ArrayBuffer>;
474
+ readonly stream: Stream;
475
+ constructor({ id, stream }: ModelRootInit);
476
+ add(lod: Lod): void;
477
+ dispose(): void;
478
+ }
479
+
480
+ export declare type ModelRootInit = {
481
+ id: number;
482
+ stream: Stream;
483
+ };
484
+
485
+ declare type RequestAnimationFrameFn = ((callback: FrameRequestCallback) => number) | ((callback: XRFrameRequestCallback) => void);
486
+
487
+ declare interface RuntimeSettings extends EmbindObject {
488
+ maxBandwidthBitsPerSecond: number;
489
+ maxConcurrentRequests: number;
490
+ targetFramesPerSecond: number;
491
+ xrModeActive: boolean;
492
+ splatCountBudget: number;
493
+ }
494
+
495
+ export declare class Scene extends EventTarget {
496
+ #private;
497
+ get camera(): Camera | null;
498
+ set camera(camera: Camera | null);
499
+ static forId(id: number): Scene | undefined;
500
+ static forKey(key: unknown): Scene | undefined;
501
+ readonly id: number;
502
+ get key(): unknown;
503
+ set key(key: unknown);
504
+ get viewerKey(): string | null;
505
+ set viewerKey(viewerKey: string | null);
506
+ get streams(): Set<Stream>;
507
+ get lods(): LodStore;
508
+ readonly miris: Miris;
509
+ readonly engine: Engine;
510
+ readonly client: Client;
511
+ readonly handle?: number;
512
+ constructor({ miris, viewerKey }: SceneInit);
513
+ dispose(): void;
514
+ /* Excluded from this release type: _getViewingVolumeBounds */
515
+ fetchAssets(tags?: string | Iterable<string>): Promise<{
516
+ name: string;
517
+ thumbnailUrl: string;
518
+ uuid: string;
519
+ tags: string[];
520
+ }[]>;
521
+ getDefaultCameraTransform(): Float32Array<ArrayBuffer> | null | undefined;
522
+ add(stream: Stream): void;
523
+ getStreamForId(streamObjectId: number): Stream | undefined;
524
+ getStreamForDescendentId(descendentObjectId: number): Stream | null;
525
+ getModelRootForDescendentId(descendentObjectId: number): ModelRoot | null;
526
+ /* Excluded from this release type: _getFeatureMesh */
527
+ /* Excluded from this release type: _getDrMap */
528
+ /* Excluded from this release type: _onFeatureData */
529
+ /* Excluded from this release type: _onSceneLoaded */
530
+ delete(stream: Stream): void;
531
+ close(): void;
532
+ }
533
+
534
+ declare interface SceneChangeIds extends EmbindObject {
535
+ readonly createdObjectsCount: number;
536
+ readonly activatedObjectsCount: number;
537
+ readonly modifiedObjectsCount: number;
538
+ readonly deactivatedObjectsCount: number;
539
+ readonly deletedObjectsCount: number;
540
+ }
541
+
542
+ export declare type SceneInit = {
543
+ miris: Miris;
544
+ viewerKey?: string | null;
545
+ };
546
+
547
+ declare interface SceneMetadata extends EmbindObject {
548
+ readonly inputColorSpace: string;
549
+ }
550
+
551
+ declare interface SpatialFormat extends EmbindObject {
552
+ metersPerUnit: number;
553
+ upAxis: number;
554
+ matrixOrder: number;
555
+ handedness: number;
556
+ }
557
+
558
+ export declare class Stream extends EventTarget {
559
+ #private;
560
+ static readonly _idMap: Map<number, Stream>;
561
+ static readonly _keyMap: Map<unknown, Stream>;
562
+ static forId(id?: number): Stream | undefined;
563
+ static forKey(key: unknown): Stream | undefined;
564
+ readonly id: number;
565
+ readonly scene: Scene;
566
+ readonly miris: Miris;
567
+ readonly client: Client;
568
+ readonly engine: Engine;
569
+ /* Excluded from this release type: _addVariantCollection */
570
+ /* Excluded from this release type: _findAndAddToVariantSet */
571
+ /* Excluded from this release type: _addVariant */
572
+ /* Excluded from this release type: _exportVariantHierarchies */
573
+ /* Excluded from this release type: _setVariantSelection */
574
+ get key(): unknown;
575
+ set key(key: unknown);
576
+ get matrix(): Matrix4x4Tuple;
577
+ set matrix(matrix: Matrix4x4Tuple);
578
+ get boundingBox(): {
579
+ min: {
580
+ x: number;
581
+ y: number;
582
+ z: number;
583
+ };
584
+ max: {
585
+ x: number;
586
+ y: number;
587
+ z: number;
588
+ };
589
+ size: {
590
+ x: number;
591
+ y: number;
592
+ z: number;
593
+ };
594
+ center: {
595
+ x: number;
596
+ y: number;
597
+ z: number;
598
+ };
599
+ } | undefined;
600
+ get modelRoots(): Set<ModelRoot>;
601
+ /**
602
+ * @deprecated Use `modelRoots` instead.
603
+ */
604
+ get chunks(): Set<ModelRoot>;
605
+ constructor(options: StreamInit);
606
+ _initStream({ uuid, prefetch, prefetchMaxDepth, keepPrefetch }: StreamInit): void;
607
+ /* Excluded from this release type: _onStreamLoaded */
608
+ /* Excluded from this release type: _onRootLoaded */
609
+ add(modelRoot: ModelRoot): void;
610
+ end(): void;
611
+ }
612
+
613
+ export declare type StreamInit = {
614
+ uuid: string;
615
+ scene: Scene;
616
+ authToken?: string;
617
+ drmKey?: string;
618
+ /** When true the stream runs in prefetch-only mode: it downloads and caches
619
+ * octree node data up to `prefetchMaxDepth` without rendering anything. */
620
+ prefetch?: boolean;
621
+ /** Maximum octree depth to prefetch. Set to -1 to disable prefetching. If omitted, defaults to 3 */
622
+ prefetchMaxDepth?: number;
623
+ /** Retain all prefetched data by the stream (make it non evictable) */
624
+ keepPrefetch?: boolean;
625
+ };
626
+
627
+ declare type StringVector = EmbindVector<string>;
628
+
629
+ /** Recursive variant tree node from WASM. */
630
+ export declare type VariantNode = {
631
+ id: number;
632
+ name?: string;
633
+ type?: string;
634
+ children?: VariantNode[];
635
+ options?: VariantNode[];
636
+ nestedSets?: VariantNode[];
637
+ };
638
+
639
+ export { }