@miris-inc/core 0.0.8-3ee2ddb → 0.0.8-40a84bd

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