@miris-inc/core 0.0.8-655ef21 → 0.0.8-6acf41c

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