@3dsource/angular-unreal-module 0.0.100 → 0.0.101-dev.1

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.
@@ -8,9 +8,9 @@ import * as _ngrx_store from '@ngrx/store';
8
8
  import { Store } from '@ngrx/store';
9
9
  import * as _ngrx_effects from '@ngrx/effects';
10
10
  import { Actions } from '@ngrx/effects';
11
- import { MetaBoxCommandPacket, MetaBoxCommandList } from '@3dsource/types-unreal';
12
11
  import { IKeyCode, ImageOutputValues } from '@3dsource/utils';
13
12
  import { SafeHtml, SafeStyle, SafeScript, SafeUrl, SafeResourceUrl } from '@angular/platform-browser';
13
+ import { MetaBoxCommandPacket, MetaBoxCommandList, FSceneState, FProductPayload, FCameraChangedPayload, FTransformJson } from '@3dsource/types-unreal';
14
14
 
15
15
  declare class AfkTimeoutModalComponent {
16
16
  #private;
@@ -453,6 +453,8 @@ declare class AggregatorService extends SubService {
453
453
  }
454
454
 
455
455
  declare class CommandTelemetryService {
456
+ private actions$;
457
+ private store;
456
458
  private readonly appId;
457
459
  private commandsSent;
458
460
  private exileTimeout;
@@ -1025,9 +1027,7 @@ declare class FileHandlerService {
1025
1027
  private fileService;
1026
1028
  private fileHandlers;
1027
1029
  private handleJsonFile;
1028
- observeFileResponse<K extends keyof MetaBoxCommandList, T extends MetaBoxCommandList[K] = MetaBoxCommandList[K]>(mimetype: ReceivedMimeType, data: T, sender: (data: T) => void, timeOut?: number): Observable<{
1029
- commandCallback: ObservedCallbackResponse<T>;
1030
- } | never>;
1030
+ observeFileResponse<K extends keyof MetaBoxCommandList, T extends MetaBoxCommandList[K] = MetaBoxCommandList[K]>(mimetype: ReceivedMimeType, data: T, sender: (data: T) => void, timeOut?: number): Observable<unknown>;
1031
1031
  static ɵfac: i0.ɵɵFactoryDeclaration<FileHandlerService, never>;
1032
1032
  static ɵprov: i0.ɵɵInjectableDeclaration<FileHandlerService>;
1033
1033
  }
@@ -1111,7 +1111,7 @@ declare class AnalyticsService {
1111
1111
  * ## FPS dispatch
1112
1112
  *
1113
1113
  * FPS changes are dispatched via the NgRx `setMaxFps` action, which triggers
1114
- * the existing `UnrealEffects.setMaxFps$` effect that sends the
1114
+ * the existing `CommandsEffects.setMaxFps$` effect that sends the
1115
1115
  * `t.MaxFPS <value>` console command to Unreal Engine.
1116
1116
  */
1117
1117
  declare class FpsMonitorService {
@@ -1217,6 +1217,93 @@ declare class FpsMonitorService {
1217
1217
  static ɵprov: i0.ɵɵInjectableDeclaration<FpsMonitorService>;
1218
1218
  }
1219
1219
 
1220
+ /**
1221
+ * Custom Unreal callback events that are not part of MetaBoxCommandList.
1222
+ * These events are pushed from Unreal to the frontend via the data channel.
1223
+ */
1224
+ interface UnrealCallbackEventMap {
1225
+ onSceneState: {
1226
+ command: 'onSceneState';
1227
+ payload: FSceneState;
1228
+ };
1229
+ onFocusObject: {
1230
+ command: 'onFocusObject';
1231
+ payload: FProductPayload;
1232
+ };
1233
+ cameraChanged: {
1234
+ command: 'cameraChanged';
1235
+ payload: FCameraChangedPayload;
1236
+ };
1237
+ onObjectTransformChanged: {
1238
+ command: 'onObjectTransformChanged';
1239
+ payload: {
1240
+ objectName: string;
1241
+ transform: FTransformJson;
1242
+ };
1243
+ };
1244
+ onChangeSequence: {
1245
+ command: 'onChangeSequence';
1246
+ payload: unknown;
1247
+ };
1248
+ onFinishedSequence: {
1249
+ command: 'onFinishedSequence';
1250
+ payload: unknown;
1251
+ };
1252
+ }
1253
+ /**
1254
+ * Combined map of all known callback event types:
1255
+ * MetaBoxCommandList (command responses) + UnrealCallbackEventMap (custom events).
1256
+ */
1257
+ type UnrealCallbackDescriptor = MetaBoxCommandList & UnrealCallbackEventMap;
1258
+ declare class UnrealCallbackService {
1259
+ private readonly actions$;
1260
+ /**
1261
+ * Listens for unreal command callbacks matching a specific command or event type.
1262
+ *
1263
+ * Supports both MetaBoxCommand keys (e.g. `MetaBoxCommand.FLoadProductCommand`)
1264
+ * and custom Unreal callback events (e.g. `'cameraChanged'`, `'onSceneState'`).
1265
+ *
1266
+ * @param command - The command or event key to filter callbacks by
1267
+ * @returns Observable that emits matching callback payloads
1268
+ *
1269
+ * @example
1270
+ * ```ts
1271
+ * // Listen for a MetaBox command callback
1272
+ * this.unrealCallbackService
1273
+ * .fromUnrealCallback(MetaBoxCommand.FLoadProductCommand)
1274
+ * .subscribe(data => console.log(data));
1275
+ *
1276
+ * // Listen for a custom Unreal event
1277
+ * this.unrealCallbackService
1278
+ * .fromUnrealCallback('cameraChanged')
1279
+ * .subscribe(data => console.log(data));
1280
+ * ```
1281
+ */
1282
+ fromUnrealCallback<K extends keyof UnrealCallbackDescriptor>(command: K): rxjs.Observable<UnrealCallbackDescriptor[K]>;
1283
+ /**
1284
+ * Sends a command and observes the matching response by correlationId.
1285
+ * Replaces the old `observeCommandResponse` standalone function.
1286
+ *
1287
+ * @param data - The command data to send
1288
+ * @param sender - Function to send the command to Unreal
1289
+ * @param timeOut - Timeout in ms (default 60000)
1290
+ * @param dispatchOnTimeout - Whether to emit on timeout (default true)
1291
+ *
1292
+ * @example
1293
+ * ```ts
1294
+ * this.unrealCallbackService
1295
+ * .observeCommandResponse<FLoopBackCommand['command']>(
1296
+ * { command: MetaBoxCommand.FLoopBackCommand },
1297
+ * (data) => this.communicator.sendCommandToUnreal(data),
1298
+ * )
1299
+ * .subscribe();
1300
+ * ```
1301
+ */
1302
+ observeCommandResponse<K extends keyof MetaBoxCommandList, T extends MetaBoxCommandList[K] = MetaBoxCommandList[K]>(data: T, sender: (data: T) => void, timeOut?: number, dispatchOnTimeout?: boolean): rxjs.Observable<MetaBoxCommandList[K]>;
1303
+ static ɵfac: i0.ɵɵFactoryDeclaration<UnrealCallbackService, never>;
1304
+ static ɵprov: i0.ɵɵInjectableDeclaration<UnrealCallbackService>;
1305
+ }
1306
+
1220
1307
  declare function AnswerHandler(this: SignallingService, msg: RTCSessionDescriptionInit): void;
1221
1308
 
1222
1309
  declare function ConfigHandler(this: SignallingService, msg: ConfigMessage): void;
@@ -1249,34 +1336,12 @@ declare function OnOpenHandler(this: SignallingService): void;
1249
1336
  */
1250
1337
  declare const keepMaxUntilReset: (reset$: Observable<unknown>) => ((source: Observable<number>) => Observable<number>);
1251
1338
 
1252
- declare function observeCommandResponse<K extends keyof MetaBoxCommandList, T extends MetaBoxCommandList[K] = MetaBoxCommandList[K]>(data: T, sender: (data: T) => void, timeOut?: number, dispatchOnTimeout?: boolean): Observable<ObservedCallbackResponse<T> | never>;
1253
- interface ObservedCallbackResponse<T extends MetaBoxCommandPacket> {
1254
- json: {
1255
- commandCallback: T;
1256
- };
1257
- }
1258
-
1259
1339
  declare function decodeData(anyData: ArrayBuffer): string;
1260
1340
 
1261
1341
  declare const dispatchResize: () => void;
1262
1342
 
1263
1343
  declare function getRtcErrorMessage(code: number | null): string | undefined;
1264
1344
 
1265
- type Descriptor = MetaBoxCommandList & SignalDescriptor;
1266
- /**
1267
- * UnrealInternalSignalEvents commands list wrapper listener
1268
- * @param event
1269
- */
1270
- declare function fromSignal<K extends keyof Descriptor>(event: K): Observable<Descriptor[K]>;
1271
- type ArgumentType<K extends keyof Descriptor> = Descriptor[K] extends void ? never : Descriptor[K];
1272
- /**
1273
- * UnrealInternalSignalEvents commands list wrapper sender
1274
- * @param event
1275
- * @param args
1276
- */
1277
- declare function sendSignal<K extends keyof Descriptor>(event: K, ...args: ArgumentType<K> extends never ? [] : [ArgumentType<K>]): void;
1278
- declare function fromUnrealCallBackSignal<K extends keyof Descriptor>(command: K): Observable<Descriptor[K]>;
1279
-
1280
1345
  declare const floatToSmoothPercents: () => ((source: Observable<number>) => Observable<number>);
1281
1346
  /**
1282
1347
  * Creates an observable that emits values transitioning smoothly from the start value to the end value over a specified duration.
@@ -1328,543 +1393,483 @@ declare class LatencyTimings {
1328
1393
 
1329
1394
  declare function qpToQuality(VideoEncoderQP: number): Quality;
1330
1395
 
1331
- declare const trackMixpanelEvent: _ngrx_store.ActionCreator<string, (props: {
1332
- event: string;
1333
- data?: unknown;
1334
- }) => {
1335
- event: string;
1336
- data?: unknown;
1337
- } & _ngrx_store.Action<string>>;
1338
- declare const changeLowBandwidth: _ngrx_store.ActionCreator<string, (props: {
1339
- lowBandwidth: boolean;
1340
- stats?: LBMStats;
1341
- }) => {
1342
- lowBandwidth: boolean;
1343
- stats?: LBMStats;
1344
- } & _ngrx_store.Action<string>>;
1345
- declare const setMaxFps: _ngrx_store.ActionCreator<string, (props: {
1346
- maxFps: number;
1347
- }) => {
1348
- maxFps: number;
1349
- } & _ngrx_store.Action<string>>;
1350
- declare const destroyRemoteConnections: _ngrx_store.ActionCreator<string, (props: {
1351
- reason: DisconnectReasonType;
1352
- }) => {
1353
- reason: DisconnectReasonType;
1354
- } & _ngrx_store.Action<string>>;
1355
- declare const destroyUnrealScene: _ngrx_store.ActionCreator<string, () => _ngrx_store.Action<string>>;
1356
- declare const setCirrusConnected: _ngrx_store.ActionCreator<string, () => _ngrx_store.Action<string>>;
1357
- declare const setCirrusDisconnected: _ngrx_store.ActionCreator<string, () => _ngrx_store.Action<string>>;
1358
- declare const changeStatusMainVideoOnScene: _ngrx_store.ActionCreator<string, (props: {
1359
- isVideoPlaying: boolean;
1360
- }) => {
1361
- isVideoPlaying: boolean;
1362
- } & _ngrx_store.Action<string>>;
1363
- declare const setAwsInstance: _ngrx_store.ActionCreator<string, (props: {
1364
- wsUrl: string | null;
1365
- pollingUrl: string | null;
1366
- instanceName: string | null;
1367
- }) => {
1368
- wsUrl: string | null;
1369
- pollingUrl: string | null;
1370
- instanceName: string | null;
1371
- } & _ngrx_store.Action<string>>;
1372
- declare const setStatusMessage: _ngrx_store.ActionCreator<string, (props: {
1373
- statusMessage: string | null;
1374
- }) => {
1375
- statusMessage: string | null;
1376
- } & _ngrx_store.Action<string>>;
1377
- declare const setStatusPercentSignallingServer: _ngrx_store.ActionCreator<string, (props: {
1378
- percent: number | null;
1379
- }) => {
1380
- percent: number | null;
1381
- } & _ngrx_store.Action<string>>;
1382
- declare const setFreezeFrame: _ngrx_store.ActionCreator<string, (props: {
1383
- dataUrl: string | null;
1384
- progress: number | null;
1385
- }) => {
1386
- dataUrl: string | null;
1387
- progress: number | null;
1388
- } & _ngrx_store.Action<string>>;
1389
- declare const setStreamClientCompanyId: _ngrx_store.ActionCreator<string, (props: {
1390
- id: string;
1391
- }) => {
1392
- id: string;
1393
- } & _ngrx_store.Action<string>>;
1394
- declare const setStreamViewId: _ngrx_store.ActionCreator<string, (props: {
1395
- id: string;
1396
- }) => {
1397
- id: string;
1398
- } & _ngrx_store.Action<string>>;
1399
- declare const setIntroImageSrc: _ngrx_store.ActionCreator<string, (props: {
1400
- src: string;
1401
- }) => {
1402
- src: string;
1403
- } & _ngrx_store.Action<string>>;
1404
- declare const setLoadingImageSrc: _ngrx_store.ActionCreator<string, (props: {
1405
- src: string;
1406
- }) => {
1407
- src: string;
1408
- } & _ngrx_store.Action<string>>;
1409
- declare const setIntroVideoSrc: _ngrx_store.ActionCreator<string, (props: {
1410
- src: string;
1411
- }) => {
1412
- src: string;
1413
- } & _ngrx_store.Action<string>>;
1414
- declare const resetIntroSrc: _ngrx_store.ActionCreator<string, () => _ngrx_store.Action<string>>;
1415
- declare const setFreezeFrameFromVideo: _ngrx_store.ActionCreator<string, (props: {
1416
- dataUrl: string | null;
1417
- progress: number | null;
1418
- }) => {
1419
- dataUrl: string | null;
1420
- progress: number | null;
1421
- } & _ngrx_store.Action<string>>;
1422
- declare const setEstablishingConnection: _ngrx_store.ActionCreator<string, (props: {
1423
- value: boolean;
1424
- }) => {
1425
- value: boolean;
1426
- } & _ngrx_store.Action<string>>;
1427
- /**
1428
- * @deprecated Use `dataChannelReady` instead. Currently, this action is not working.
1429
- */
1430
- declare const setDataChannelConnected: _ngrx_store.ActionCreator<string, (props: {
1431
- statusMessage: string;
1432
- }) => {
1433
- statusMessage: string;
1434
- } & _ngrx_store.Action<string>>;
1435
- declare const dataChannelConnected: _ngrx_store.ActionCreator<string, (props: {
1436
- statusMessage: string;
1437
- }) => {
1438
- statusMessage: string;
1439
- } & _ngrx_store.Action<string>>;
1440
- declare const dataChannelReady: _ngrx_store.ActionCreator<string, () => _ngrx_store.Action<string>>;
1441
- declare const setConfig: _ngrx_store.ActionCreator<string, (props: {
1442
- config: Partial<StreamConfig>;
1443
- }) => {
1444
- config: Partial<StreamConfig>;
1445
- } & _ngrx_store.Action<string>>;
1446
- declare const disconnectStream: _ngrx_store.ActionCreator<string, (props: {
1447
- reason: DisconnectReasonType;
1448
- message: string;
1449
- }) => {
1450
- reason: DisconnectReasonType;
1396
+ declare function fromResizeObserver(elem: HTMLElement): Observable<ResizeObserverEntry[]>;
1397
+
1398
+ interface LBMStats {
1399
+ dataFlowResult: DataFlowCheckResult;
1400
+ reason: string;
1401
+ triggerTime: number;
1402
+ }
1403
+
1404
+ type Quality = 'lime' | 'red' | 'orange';
1405
+
1406
+ interface SignalingData {
1407
+ instanceType: string;
1408
+ branchInfo: string;
1409
+ cirrusVersion: string;
1410
+ streamerVersion: string;
1411
+ streamPath: string;
1412
+ streamApp: string;
1413
+ connectionId: string;
1414
+ }
1415
+
1416
+ declare const OrchestrationMessageTypes: {
1417
+ readonly ping: "ping";
1418
+ readonly error: "error";
1419
+ readonly offer: "offer";
1420
+ readonly answer: "answer";
1421
+ readonly ssInfo: "ssInfo";
1422
+ readonly config: "config";
1423
+ readonly playerCount: "playerCount";
1424
+ readonly iceCandidate: "iceCandidate";
1425
+ readonly streamerList: "streamerList";
1426
+ readonly requestStream: "requestStream";
1427
+ readonly listStreamers: "listStreamers";
1428
+ readonly instanceReady: "instanceReady";
1429
+ readonly p2pEstablished: "p2pEstablished";
1430
+ readonly instanceReserved: "instanceReserved";
1431
+ readonly playerDisconnected: "playerDisconnected";
1432
+ readonly streamPreparedForUserInteraction: "streamPreparedForUserInteraction";
1433
+ readonly streamerDisconnected: "streamerDisconnected";
1434
+ readonly interruptClientStream: "interruptClientStream";
1435
+ };
1436
+ interface InstanceReady extends InstanceMessageBase {
1437
+ type: 'instanceReady';
1438
+ }
1439
+ interface InstanceReserved extends InstanceMessageBase {
1440
+ type: 'instanceReserved';
1441
+ }
1442
+ interface OrchestrationErrorMessage {
1443
+ type: 'error';
1444
+ payload: {
1445
+ code: number;
1446
+ message: string;
1447
+ };
1448
+ }
1449
+ interface InstanceMessageBase extends MessageBase {
1450
+ correlationId: string;
1451
+ payload: {
1452
+ instanceId: string;
1453
+ streamRequestId: string;
1454
+ eta: number;
1455
+ };
1456
+ }
1457
+ interface MessageBase {
1458
+ type: OrchestrationMessageType;
1459
+ }
1460
+ interface SSInfo extends MessageBase {
1461
+ type: 'ssInfo';
1451
1462
  message: string;
1452
- } & _ngrx_store.Action<string>>;
1453
- declare const dropConnection: _ngrx_store.ActionCreator<string, () => _ngrx_store.Action<string>>;
1454
- declare const setViewportReady: _ngrx_store.ActionCreator<string, () => _ngrx_store.Action<string>>;
1455
- declare const setViewportNotReady: _ngrx_store.ActionCreator<string, () => _ngrx_store.Action<string>>;
1456
- declare const changeStreamResolutionAction: _ngrx_store.ActionCreator<string, (props: {
1457
- width: number | null;
1458
- height: number | null;
1459
- }) => {
1460
- width: number | null;
1461
- height: number | null;
1462
- } & _ngrx_store.Action<string>>;
1463
- declare const changeStreamResolutionSuccessAction: _ngrx_store.ActionCreator<string, (props: {
1464
- width: number | null;
1465
- height: number | null;
1466
- }) => {
1467
- width: number | null;
1468
- height: number | null;
1469
- } & _ngrx_store.Action<string>>;
1470
- declare const setSignalingName: _ngrx_store.ActionCreator<string, (props: {
1471
- instanceName: string;
1472
- }) => {
1473
- instanceName: string;
1474
- } & _ngrx_store.Action<string>>;
1475
- declare const setOrchestrationParameters: _ngrx_store.ActionCreator<string, (props: {
1476
- instanceName: string;
1477
- streamRequestId: string;
1478
- eta: number;
1479
- }) => {
1480
- instanceName: string;
1481
- streamRequestId: string;
1482
- eta: number;
1483
- } & _ngrx_store.Action<string>>;
1484
- declare const setOrchestrationMessage: _ngrx_store.ActionCreator<string, (props: {
1485
- message: string;
1486
- }) => {
1487
- message: string;
1488
- } & _ngrx_store.Action<string>>;
1489
- declare const setOrchestrationProgress: _ngrx_store.ActionCreator<string, (props: {
1490
- progressComplete: number;
1491
- }) => {
1492
- progressComplete: number;
1493
- } & _ngrx_store.Action<string>>;
1494
- declare const setOrchestrationContext: _ngrx_store.ActionCreator<string, (props: {
1495
- urls: string[];
1496
- environmentId: string;
1497
- streamRequestContext: StreamRequestContext;
1498
- }) => {
1499
- urls: string[];
1500
- environmentId: string;
1501
- streamRequestContext: StreamRequestContext;
1502
- } & _ngrx_store.Action<string>>;
1503
- declare const updateCirrusInfo: _ngrx_store.ActionCreator<string, (props: {
1504
- ssInfo: string;
1505
- ssData: SignalingData;
1506
- }) => {
1507
- ssInfo: string;
1508
- ssData: SignalingData;
1509
- } & _ngrx_store.Action<string>>;
1510
- declare const commandStarted: _ngrx_store.ActionCreator<string, (props: {
1511
- id: string;
1512
- command: string;
1513
- }) => {
1514
- id: string;
1515
- command: string;
1516
- } & _ngrx_store.Action<string>>;
1517
- declare const commandCompleted: _ngrx_store.ActionCreator<string, (props: {
1518
- id: string;
1519
- }) => {
1520
- id: string;
1521
- } & _ngrx_store.Action<string>>;
1522
- declare const setLoopBackCommandIsCompleted: _ngrx_store.ActionCreator<string, () => _ngrx_store.Action<string>>;
1523
- declare const setAfkTimerVisible: _ngrx_store.ActionCreator<string, () => _ngrx_store.Action<string>>;
1524
- declare const setAfkTimerHide: _ngrx_store.ActionCreator<string, () => _ngrx_store.Action<string>>;
1525
- declare const setAfkTimerCountdown: _ngrx_store.ActionCreator<string, (props: {
1526
- countdown: number;
1527
- }) => {
1528
- countdown: number;
1529
- } & _ngrx_store.Action<string>>;
1530
- declare const showUnrealErrorMessage: _ngrx_store.ActionCreator<string, (props: {
1531
- code: number | null;
1532
- error?: string;
1533
- }) => {
1534
- code: number | null;
1535
- error?: string;
1536
- } & _ngrx_store.Action<string>>;
1537
- declare const initSignalling: _ngrx_store.FunctionWithParametersType<[data?: {
1538
- resetDisconnectionReason: boolean;
1539
- } | undefined], {
1540
- resetDisconnectionReason: boolean;
1541
- } & _ngrx_store.Action<string>> & _ngrx_store.Action<string>;
1542
- declare const startStream: _ngrx_store.ActionCreator<string, (props: {
1543
- config: Partial<StreamConfig>;
1544
- }) => {
1545
- config: Partial<StreamConfig>;
1546
- } & _ngrx_store.Action<string>>;
1547
- declare const resetConfig: _ngrx_store.ActionCreator<string, () => _ngrx_store.Action<string>>;
1548
- declare const resetAfk: _ngrx_store.ActionCreator<string, () => _ngrx_store.Action<string>>;
1549
- declare const resetWarnTimeout: _ngrx_store.ActionCreator<string, () => _ngrx_store.Action<string>>;
1550
- declare const abortEstablishingConnection: _ngrx_store.ActionCreator<string, () => _ngrx_store.Action<string>>;
1551
- declare const setUnrealPlaywrightConfig: _ngrx_store.ActionCreator<string, () => _ngrx_store.Action<string>>;
1552
- declare const saveAnalyticsEvent: _ngrx_store.ActionCreator<string, (props: {
1553
- event: {
1554
- name: string;
1555
- params: Record<string, unknown>;
1463
+ data: SignalingData;
1464
+ }
1465
+ interface PlayerCountMessage extends MessageBase {
1466
+ type: 'playerCount';
1467
+ playerCount: number;
1468
+ }
1469
+ interface StreamerListMessage extends MessageBase {
1470
+ type: 'streamerList';
1471
+ ids: string[];
1472
+ }
1473
+ interface ConfigMessage extends MessageBase, UnknownFields {
1474
+ type: 'config';
1475
+ peerConnectionOptions: RTCConfiguration;
1476
+ }
1477
+ interface CandidateMessage extends MessageBase {
1478
+ type: 'iceCandidate';
1479
+ candidate: RTCIceCandidate;
1480
+ }
1481
+ interface PingMessage extends MessageBase {
1482
+ type: 'ping';
1483
+ playerId: string;
1484
+ appConnectionCounter: number;
1485
+ }
1486
+ type UnknownFields = Record<string, unknown>;
1487
+ interface InterruptClientStream extends MessageBase {
1488
+ type: 'interruptClientStream';
1489
+ correlationId: string;
1490
+ payload: {
1491
+ environmentId: string;
1556
1492
  };
1557
- }) => {
1558
- event: {
1559
- name: string;
1560
- params: Record<string, unknown>;
1493
+ }
1494
+ interface ForceClientDisconnect extends MessageBase {
1495
+ type: 'streamerDisconnected' | 'playerDisconnected';
1496
+ connectionId: string;
1497
+ }
1498
+ interface ListStreamersMessage extends MessageBase {
1499
+ type: 'listStreamers';
1500
+ correlationId: string;
1501
+ }
1502
+ interface P2PEstablishedMessage extends MessageBase {
1503
+ type: 'p2pEstablished';
1504
+ source: string;
1505
+ sessionId: string;
1506
+ }
1507
+ interface streamPreparedForUserInteractionMessage extends MessageBase {
1508
+ type: 'streamPreparedForUserInteraction';
1509
+ correlationId: string;
1510
+ }
1511
+ interface RequestStream extends MessageBase {
1512
+ type: 'requestStream';
1513
+ correlationId: string;
1514
+ payload: {
1515
+ environmentId: string;
1516
+ region?: string;
1517
+ /**
1518
+ * The context field is used for plugins of the external
1519
+ * applications for collecting additional statistics, etc.
1520
+ */
1521
+ context: StreamRequestContext;
1561
1522
  };
1562
- } & _ngrx_store.Action<string>>;
1563
- /** Action to trigger WebRTC peer reconnection (keeps signaling connection) */
1564
- declare const reconnectPeer: _ngrx_store.ActionCreator<string, (props: {
1565
- attempt: number;
1566
- maxAttempts: number;
1567
- delay?: number;
1568
- }) => {
1569
- attempt: number;
1570
- maxAttempts: number;
1571
- delay?: number;
1572
- } & _ngrx_store.Action<string>>;
1573
- /** Action to reset the data channel state before reconnection */
1574
- declare const resetDataChannelForReconnect: _ngrx_store.ActionCreator<string, () => _ngrx_store.Action<string>>;
1575
- /** Action dispatched when peer reconnection succeeds */
1576
- declare const reconnectPeerSuccess: _ngrx_store.ActionCreator<string, () => _ngrx_store.Action<string>>;
1577
- /** Action dispatched when all peer reconnection attempts are exhausted */
1578
- declare const reconnectPeerFailed: _ngrx_store.ActionCreator<string, (props: {
1579
- reason: string;
1580
- }) => {
1581
- reason: string;
1582
- } & _ngrx_store.Action<string>>;
1583
- /** Action dispatched when ICE connection state changes to failed/disconnected */
1584
- declare const iceConnectionFailed: _ngrx_store.ActionCreator<string, (props: {
1585
- state: RTCIceConnectionState;
1586
- }) => {
1587
- state: RTCIceConnectionState;
1588
- } & _ngrx_store.Action<string>>;
1589
- declare const forceResizeViewport: _ngrx_store.ActionCreator<string, () => _ngrx_store.Action<string>>;
1590
- declare const videoAdaptedToContainer: _ngrx_store.ActionCreator<string, () => _ngrx_store.Action<string>>;
1591
- declare const videoStreamInitialized: _ngrx_store.ActionCreator<string, () => _ngrx_store.Action<string>>;
1523
+ }
1524
+ interface MetaboxBasicConfiguratorContext {
1525
+ id: 'metaboxBasicConfigurator';
1526
+ data: {
1527
+ configuratorId: string;
1528
+ };
1529
+ }
1530
+ interface MetaboxModularConfiguratorContext {
1531
+ id: 'metaboxModularConfigurator';
1532
+ data: {
1533
+ configuratorId: string;
1534
+ };
1535
+ }
1536
+ interface MetaboxProductContext {
1537
+ id: 'metaboxProduct';
1538
+ data: {
1539
+ productId: string;
1540
+ };
1541
+ }
1542
+ interface MetaboxEnvironmentContext {
1543
+ id: 'metaboxEnvironment';
1544
+ data: {
1545
+ environmentId: string;
1546
+ };
1547
+ }
1548
+ interface MetaboxStudioContext {
1549
+ id: 'metaboxStudio';
1550
+ data: {
1551
+ userId: string;
1552
+ workspaceId: string;
1553
+ };
1554
+ }
1555
+ interface CustomApplicationContext {
1556
+ id: 'customApplication';
1557
+ data: {
1558
+ clientId: string;
1559
+ applicationId: string;
1560
+ };
1561
+ }
1562
+ type StreamRequestContext = MetaboxStudioContext | MetaboxProductContext | CustomApplicationContext | MetaboxEnvironmentContext | MetaboxBasicConfiguratorContext | MetaboxModularConfiguratorContext;
1563
+ interface SignalingMessageMap {
1564
+ [OrchestrationMessageTypes.ping]: PingMessage;
1565
+ [OrchestrationMessageTypes.offer]: RTCSessionDescriptionInit;
1566
+ [OrchestrationMessageTypes.error]: OrchestrationErrorMessage;
1567
+ [OrchestrationMessageTypes.ssInfo]: SSInfo;
1568
+ [OrchestrationMessageTypes.config]: ConfigMessage;
1569
+ [OrchestrationMessageTypes.answer]: RTCSessionDescriptionInit;
1570
+ [OrchestrationMessageTypes.playerCount]: PlayerCountMessage;
1571
+ [OrchestrationMessageTypes.iceCandidate]: CandidateMessage;
1572
+ [OrchestrationMessageTypes.streamerList]: StreamerListMessage;
1573
+ [OrchestrationMessageTypes.instanceReady]: InstanceReady;
1574
+ [OrchestrationMessageTypes.requestStream]: RequestStream;
1575
+ [OrchestrationMessageTypes.listStreamers]: ListStreamersMessage;
1576
+ [OrchestrationMessageTypes.p2pEstablished]: P2PEstablishedMessage;
1577
+ [OrchestrationMessageTypes.instanceReserved]: InstanceReserved;
1578
+ [OrchestrationMessageTypes.playerDisconnected]: ForceClientDisconnect;
1579
+ [OrchestrationMessageTypes.streamPreparedForUserInteraction]: streamPreparedForUserInteractionMessage;
1580
+ [OrchestrationMessageTypes.streamerDisconnected]: ForceClientDisconnect;
1581
+ [OrchestrationMessageTypes.interruptClientStream]: InterruptClientStream;
1582
+ }
1583
+ type OrchestrationMessageType = keyof SignalingMessageMap;
1584
+ type AnySignalingMessage = SignalingMessageMap[OrchestrationMessageType] | string;
1585
+ type SignalingMessageHandler<T extends keyof SignalingMessageMap> = (msg: SignalingMessageMap[T]) => void;
1586
+ interface PollingOrchestrationMessage {
1587
+ mm_message?: string;
1588
+ signallingServer?: string;
1589
+ error?: string;
1590
+ info?: {
1591
+ age: number | null;
1592
+ left: number | null;
1593
+ percent: number | null;
1594
+ total: number | null;
1595
+ };
1596
+ }
1592
1597
 
1593
- declare class UnrealEffects {
1594
- private actions$;
1595
- private dialog;
1596
- private http;
1597
- private store;
1598
- private isDevMode;
1599
- private scrollStrategy;
1600
- private unrealInitialConfig;
1601
- private webRtcPlayerService;
1602
- private commandsSender;
1603
- private readonly commandTelemetryService;
1604
- private signallingService;
1605
- private videoService;
1606
- private dataChannelConnectionTimeout;
1607
- private connectionCompleted$;
1608
- private reconnectConfig;
1609
- disconnectReasonHandling$: rxjs.Observable<{
1610
- reason: _3dsource_angular_unreal_module.DisconnectReasonType;
1611
- } & _ngrx_store.Action<string>> & _ngrx_effects.CreateEffectMetadata;
1612
- destroyConnections$: rxjs.Observable<{
1613
- reason: _3dsource_angular_unreal_module.DisconnectReasonType;
1614
- } & _ngrx_store.Action<string>> & _ngrx_effects.CreateEffectMetadata;
1615
- destroyRemoteConnections$: rxjs.Observable<_ngrx_store.Action<string>> & _ngrx_effects.CreateEffectMetadata;
1616
- webrtcErrorModalComponent$: rxjs.Observable<false> & _ngrx_effects.CreateEffectMetadata;
1617
- changeStreamResolution$: rxjs.Observable<{
1618
- width: number | null;
1619
- height: number | null;
1620
- } & _ngrx_store.Action<string>> & _ngrx_effects.CreateEffectMetadata;
1621
- forceLBMOff$: rxjs.Observable<{
1622
- lowBandwidth: boolean;
1623
- stats?: _3dsource_angular_unreal_module.LBMStats;
1624
- } & _ngrx_store.Action<string>> & _ngrx_effects.CreateEffectMetadata;
1625
- resetFreezeFrameOnLowBandwidthTriggered$: rxjs.Observable<{
1626
- dataUrl: string | null;
1627
- progress: number | null;
1628
- } & _ngrx_store.Action<string>> & _ngrx_effects.CreateEffectMetadata;
1629
- sendLbmStat$: rxjs.Subscription;
1630
- resetAfk$: rxjs.Observable<_ngrx_store.Action<string>> & _ngrx_effects.CreateEffectMetadata;
1631
- abortEstablishingConnection$: rxjs.Observable<_ngrx_store.Action<string>> & _ngrx_effects.CreateEffectMetadata;
1632
- setMaxFps$: rxjs.Observable<{
1633
- maxFps: number;
1634
- } & _ngrx_store.Action<string>> & _ngrx_effects.CreateEffectMetadata;
1635
- setSignalingTo100$: rxjs.Observable<{
1636
- percent: number | null;
1637
- } & _ngrx_store.Action<string>> & _ngrx_effects.CreateEffectMetadata;
1638
- setOrchestrationParameters$: rxjs.Observable<{
1639
- progressComplete: number;
1640
- } & _ngrx_store.Action<string>> & _ngrx_effects.CreateEffectMetadata;
1641
- setDataChannelTimeoutCheck$: rxjs.Observable<{
1642
- reason: _3dsource_angular_unreal_module.DisconnectReasonType;
1643
- message: string;
1644
- } & _ngrx_store.Action<string>> & _ngrx_effects.CreateEffectMetadata;
1645
- destroyConnectionAndRestart$: rxjs.Observable<{
1646
- resetDisconnectionReason: boolean;
1647
- } & _ngrx_store.Action<string>> & _ngrx_effects.CreateEffectMetadata;
1648
- showUnrealError$: rxjs.Observable<{
1649
- code: number | null;
1650
- error?: string;
1651
- } & _ngrx_store.Action<string>> & _ngrx_effects.CreateEffectMetadata;
1652
- sendStatisticsToUnreal$: rxjs.Observable<Object> & _ngrx_effects.CreateEffectMetadata;
1653
- unrealReceiverReady$: rxjs.Observable<_ngrx_store.Action<string>> & _ngrx_effects.CreateEffectMetadata;
1654
- initAppBySetDataChannelConnected$: rxjs.Observable<_ngrx_store.Action<string>> & _ngrx_effects.CreateEffectMetadata;
1655
- setViewportReadyBySetLoopBackCommandIsCompleted$: rxjs.Observable<_ngrx_store.Action<string>> & _ngrx_effects.CreateEffectMetadata;
1656
- startStream$: rxjs.Observable<{
1657
- resetDisconnectionReason: boolean;
1658
- } & _ngrx_store.Action<string>> & _ngrx_effects.CreateEffectMetadata;
1659
- listenUnrealCallbackByInitSignalling$: rxjs.Observable<{
1660
- id: string;
1661
- } & _ngrx_store.Action<string>> & _ngrx_effects.CreateEffectMetadata;
1662
- connectToSignaling$: rxjs.Observable<WebSocket> & _ngrx_effects.CreateEffectMetadata;
1598
+ interface StreamConfig {
1599
+ autoStart: boolean;
1600
+ warnTimeout: number;
1601
+ }
1602
+
1603
+ interface StreamResolutionProps {
1604
+ width: number | null;
1605
+ height: number | null;
1606
+ }
1607
+
1608
+ type TelemetryType = 'commandSent' | 'commandStop';
1609
+
1610
+ interface AggregatedStat {
1611
+ quality: Quality;
1612
+ aggregatedStats: InboundVideoStats;
1613
+ }
1614
+ interface InboundVideoStats extends RTCInboundRtpStreamStats {
1615
+ VideoEncoderQP: number;
1616
+ runTime: number;
1617
+ pixelRatio: number;
1618
+ bytesReceivedStart: number;
1619
+ framesDecodedStart: number;
1620
+ timestampStart: number;
1621
+ videoCodec: string;
1622
+ avgBitrate: number;
1623
+ avgFrameRate: number;
1624
+ selectedPair: {
1625
+ local: {
1626
+ type: string;
1627
+ url: string;
1628
+ };
1629
+ remote: {
1630
+ type: string;
1631
+ url: string;
1632
+ };
1633
+ } | null;
1634
+ currentRoundTripTime: number;
1635
+ codecs: Record<string, string>;
1636
+ receiveToCompositeMs: number;
1637
+ bitrate: number;
1638
+ kalmanBitrate: number;
1639
+ bitrateDrop: number;
1640
+ dataFlowCheckResult: DataFlowCheckResult;
1641
+ dataFlowBitrate: DataFlowCheckResult;
1642
+ }
1643
+ interface AwsInstance {
1663
1644
  /**
1664
- * Effect: `forceViewportNotReady$`
1665
- *
1666
- * Ensures the viewport is explicitly marked as *not ready* to prevent
1667
- * a temporary black screen flash when disconnecting.
1668
- *
1669
- * ### Why
1670
- * - The video stream is disconnected immediately.
1671
- * - The DataChannel closes slightly later.
1672
- * - Closing the DataChannel resets the Unreal scene,
1673
- * which also sets `viewPortReady` to `false`.
1674
- *
1675
- * Without this effect, the order of these events may cause
1676
- * a visible flicker (video flashing to black).
1645
+ * WebSocket URL for connecting to the Cirrus (polling mode) or Orchestration (direct mode).
1677
1646
  */
1678
- forceViewportNotReady$: rxjs.Observable<_ngrx_store.Action<string>> & _ngrx_effects.CreateEffectMetadata;
1647
+ wsUrl: string | null;
1648
+ pollingUrl: string | null;
1649
+ instanceName: string | null;
1679
1650
  /**
1680
- * Effect: `handleDataChannelClosed$`
1681
- *
1682
- * Triggers peer reconnection when DataChannel closes unexpectedly.
1683
- * Only triggers if reconnection is enabled, onDataChannelClose is true,
1684
- * and the signaling WebSocket is still connected.
1651
+ * Unique identifier for the streaming request.
1652
+ * Coming with a new orchestration message "instanceReserved".
1685
1653
  */
1686
- handleDataChannelClosed$: rxjs.Observable<{
1687
- attempt: number;
1688
- maxAttempts: number;
1689
- delay?: number;
1690
- } & _ngrx_store.Action<string>> & _ngrx_effects.CreateEffectMetadata;
1654
+ streamRequestId?: string;
1691
1655
  /**
1692
- * Effect: `resetStateForPeerReconnect$`
1693
- *
1694
- * Resets the data channel state when peer reconnection starts.
1656
+ * Estimated time of arrival (in seconds) for the instance to be ready.
1657
+ * Coming with a new orchestration message "instanceReserved".
1695
1658
  */
1696
- resetStateForPeerReconnect$: rxjs.Observable<_ngrx_store.Action<string>> & _ngrx_effects.CreateEffectMetadata;
1659
+ eta?: number;
1697
1660
  /**
1698
- * Effect: `executePeerReconnect$`
1699
- *
1700
- * Executes the actual peer reconnection attempt.
1701
- * This only re-establishes the WebRTC connection, not the signaling.
1661
+ * Progress of completion for the instance launch (0-1).
1662
+ * Based on ETA time comes from the backend with new orchestration.
1663
+ * If eta is not provided, this value will be undefined.
1702
1664
  */
1703
- executePeerReconnect$: rxjs.Observable<_ngrx_store.Action<string> | ({
1704
- attempt: number;
1705
- maxAttempts: number;
1706
- delay?: number;
1707
- } & _ngrx_store.Action<string>) | ({
1708
- reason: string;
1709
- } & _ngrx_store.Action<string>)> & _ngrx_effects.CreateEffectMetadata;
1665
+ progressComplete?: number;
1666
+ message?: string;
1667
+ }
1668
+
1669
+ interface DataFlowCheckResult {
1670
+ isDropDetected: boolean;
1671
+ dropPercentage: number;
1672
+ activeMedian: number;
1673
+ quality: Quality;
1674
+ message: string;
1675
+ dataHistory: number[];
1676
+ config: {
1677
+ yellowFlagThresholdPercentage: number;
1678
+ redFlagThresholdPercentage: number;
1679
+ historyBufferLength: number;
1680
+ splitPoint: number;
1681
+ };
1682
+ }
1683
+ declare class DataFlowMonitor {
1684
+ protected yellowFlagThresholdPercentage: number;
1685
+ protected redFlagThresholdPercentage: number;
1686
+ protected historyBufferLength: number;
1687
+ protected splitPoint: number;
1688
+ protected dataHistory: number[];
1710
1689
  /**
1711
- * Effect: `handlePeerReconnectFailed$`
1712
- *
1713
- * Handles the case when all peer reconnection attempts have failed.
1714
- * Falls back to full disconnection which may trigger full reconnection.
1690
+ * Initializes the DataFlowMonitor monitor.
1691
+ * @param yellowFlagThresholdPercentage - The percentage drop to trigger a YELLOW warning (default: 15%).
1692
+ * @param redFlagThresholdPercentage - The percentage drop to trigger a RED warning (default: 30%).
1693
+ * @param historyBufferLength - buffer length (default: 100).
1694
+ * @param splitPoint - The point at which to split the history buffer into two halves (default: 0.5).
1715
1695
  */
1716
- handlePeerReconnectFailed$: rxjs.Observable<{
1717
- reason: _3dsource_angular_unreal_module.DisconnectReasonType;
1718
- message: string;
1719
- } & _ngrx_store.Action<string>> & _ngrx_effects.CreateEffectMetadata;
1696
+ constructor(yellowFlagThresholdPercentage?: number, redFlagThresholdPercentage?: number, historyBufferLength?: number, splitPoint?: number);
1697
+ reset(): void;
1698
+ config(data: FilterSettings): void;
1720
1699
  /**
1721
- * Effect: `logPeerReconnectSuccess$`
1722
- *
1723
- * Logs successful peer reconnection for telemetry.
1700
+ * Adds a new bitrate measurement and checks for significant drops.
1701
+ * @param currentValue - The current bitrate in kbps.
1702
+ * @returns BitrateCheckResult indicating if a drop was detected.
1724
1703
  */
1725
- logPeerReconnectSuccess$: rxjs.Observable<_ngrx_store.Action<string>> & _ngrx_effects.CreateEffectMetadata;
1726
- static ɵfac: i0.ɵɵFactoryDeclaration<UnrealEffects, never>;
1727
- static ɵprov: i0.ɵɵInjectableDeclaration<UnrealEffects>;
1704
+ addValue(currentValue: number): DataFlowCheckResult;
1728
1705
  }
1729
1706
 
1730
- declare const unrealFeature: {
1731
- name: "unrealFeature";
1732
- reducer: _ngrx_store.ActionReducer<_3dsource_angular_unreal_module.UnrealState, _ngrx_store.Action<string>>;
1733
- selectUnrealFeatureState: _ngrx_store.MemoizedSelector<Record<string, any>, _3dsource_angular_unreal_module.UnrealState, (featureState: _3dsource_angular_unreal_module.UnrealState) => _3dsource_angular_unreal_module.UnrealState>;
1734
- selectSsInfo: _ngrx_store.MemoizedSelector<Record<string, any>, string | null, (featureState: _3dsource_angular_unreal_module.UnrealState) => string | null>;
1735
- selectLowBandwidth: _ngrx_store.MemoizedSelector<Record<string, any>, boolean, (featureState: _3dsource_angular_unreal_module.UnrealState) => boolean>;
1736
- selectIsVideoPlaying: _ngrx_store.MemoizedSelector<Record<string, any>, boolean, (featureState: _3dsource_angular_unreal_module.UnrealState) => boolean>;
1737
- selectStatusMessage: _ngrx_store.MemoizedSelector<Record<string, any>, string | null, (featureState: _3dsource_angular_unreal_module.UnrealState) => string | null>;
1738
- selectEnvironmentId: _ngrx_store.MemoizedSelector<Record<string, any>, string | null, (featureState: _3dsource_angular_unreal_module.UnrealState) => string | null>;
1739
- selectStreamRequestContext: _ngrx_store.MemoizedSelector<Record<string, any>, _3dsource_angular_unreal_module.StreamRequestContext | null, (featureState: _3dsource_angular_unreal_module.UnrealState) => _3dsource_angular_unreal_module.StreamRequestContext | null>;
1740
- selectSsData: _ngrx_store.MemoizedSelector<Record<string, any>, _3dsource_angular_unreal_module.SignalingData | null, (featureState: _3dsource_angular_unreal_module.UnrealState) => _3dsource_angular_unreal_module.SignalingData | null>;
1741
- selectLowBandwidthStats: _ngrx_store.MemoizedSelector<Record<string, any>, _3dsource_angular_unreal_module.LBMStats | undefined, (featureState: _3dsource_angular_unreal_module.UnrealState) => _3dsource_angular_unreal_module.LBMStats | undefined>;
1742
- selectStreamConfig: _ngrx_store.MemoizedSelector<Record<string, any>, _3dsource_angular_unreal_module.StreamConfig, (featureState: _3dsource_angular_unreal_module.UnrealState) => _3dsource_angular_unreal_module.StreamConfig>;
1743
- selectAwsInstance: _ngrx_store.MemoizedSelector<Record<string, any>, _3dsource_angular_unreal_module.AwsInstance, (featureState: _3dsource_angular_unreal_module.UnrealState) => _3dsource_angular_unreal_module.AwsInstance>;
1744
- selectWasInitialized: _ngrx_store.MemoizedSelector<Record<string, any>, boolean, (featureState: _3dsource_angular_unreal_module.UnrealState) => boolean>;
1745
- selectIsFirstSuccessLoad: _ngrx_store.MemoizedSelector<Record<string, any>, boolean, (featureState: _3dsource_angular_unreal_module.UnrealState) => boolean>;
1746
- selectIsAfkTimerVisible: _ngrx_store.MemoizedSelector<Record<string, any>, boolean, (featureState: _3dsource_angular_unreal_module.UnrealState) => boolean>;
1747
- selectAfkCountdown: _ngrx_store.MemoizedSelector<Record<string, any>, number, (featureState: _3dsource_angular_unreal_module.UnrealState) => number>;
1748
- selectCirrusConnected: _ngrx_store.MemoizedSelector<Record<string, any>, boolean, (featureState: _3dsource_angular_unreal_module.UnrealState) => boolean>;
1749
- selectViewportReady: _ngrx_store.MemoizedSelector<Record<string, any>, boolean, (featureState: _3dsource_angular_unreal_module.UnrealState) => boolean>;
1750
- selectFreezeFrameFromVideo: _ngrx_store.MemoizedSelector<Record<string, any>, _3dsource_angular_unreal_module.FreezeFrameMessage, (featureState: _3dsource_angular_unreal_module.UnrealState) => _3dsource_angular_unreal_module.FreezeFrameMessage>;
1751
- selectFreezeFrame: _ngrx_store.MemoizedSelector<Record<string, any>, _3dsource_angular_unreal_module.FreezeFrameMessage, (featureState: _3dsource_angular_unreal_module.UnrealState) => _3dsource_angular_unreal_module.FreezeFrameMessage>;
1752
- selectStatusPercentSignallingServer: _ngrx_store.MemoizedSelector<Record<string, any>, number | null, (featureState: _3dsource_angular_unreal_module.UnrealState) => number | null>;
1753
- selectErrorMessage: _ngrx_store.MemoizedSelector<Record<string, any>, _3dsource_angular_unreal_module.ConnectionError | null, (featureState: _3dsource_angular_unreal_module.UnrealState) => _3dsource_angular_unreal_module.ConnectionError | null>;
1754
- selectIsReconnecting: _ngrx_store.MemoizedSelector<Record<string, any>, boolean, (featureState: _3dsource_angular_unreal_module.UnrealState) => boolean>;
1755
- selectDataChannelConnected: _ngrx_store.MemoizedSelector<Record<string, any>, boolean, (featureState: _3dsource_angular_unreal_module.UnrealState) => boolean>;
1756
- selectStreamResolution: _ngrx_store.MemoizedSelector<Record<string, any>, _3dsource_angular_unreal_module.StreamResolutionProps, (featureState: _3dsource_angular_unreal_module.UnrealState) => _3dsource_angular_unreal_module.StreamResolutionProps>;
1757
- selectEstablishingConnection: _ngrx_store.MemoizedSelector<Record<string, any>, boolean, (featureState: _3dsource_angular_unreal_module.UnrealState) => boolean>;
1758
- selectDisconnectReason: _ngrx_store.MemoizedSelector<Record<string, any>, _3dsource_angular_unreal_module.DisconnectReasonType, (featureState: _3dsource_angular_unreal_module.UnrealState) => _3dsource_angular_unreal_module.DisconnectReasonType>;
1759
- selectLoaderCommands: _ngrx_store.MemoizedSelector<Record<string, any>, _3dsource_angular_unreal_module.CommandsLoaderState, (featureState: _3dsource_angular_unreal_module.UnrealState) => _3dsource_angular_unreal_module.CommandsLoaderState>;
1760
- selectMatchUrls: _ngrx_store.MemoizedSelector<Record<string, any>, string[], (featureState: _3dsource_angular_unreal_module.UnrealState) => string[]>;
1761
- selectStreamClientCompanyId: _ngrx_store.MemoizedSelector<Record<string, any>, string | null, (featureState: _3dsource_angular_unreal_module.UnrealState) => string | null>;
1762
- selectStreamViewId: _ngrx_store.MemoizedSelector<Record<string, any>, string | null, (featureState: _3dsource_angular_unreal_module.UnrealState) => string | null>;
1763
- selectVideoIntroSrc: _ngrx_store.MemoizedSelector<Record<string, any>, string | null, (featureState: _3dsource_angular_unreal_module.UnrealState) => string | null>;
1764
- selectImageIntroSrc: _ngrx_store.MemoizedSelector<Record<string, any>, string | null, (featureState: _3dsource_angular_unreal_module.UnrealState) => string | null>;
1765
- selectImageLoadingSrc: _ngrx_store.MemoizedSelector<Record<string, any>, string, (featureState: _3dsource_angular_unreal_module.UnrealState) => string>;
1766
- selectAnalyticsEvent: _ngrx_store.MemoizedSelector<Record<string, any>, {
1767
- name: string;
1768
- params: Record<string, unknown>;
1769
- } | null, (featureState: _3dsource_angular_unreal_module.UnrealState) => {
1770
- name: string;
1771
- params: Record<string, unknown>;
1772
- } | null>;
1773
- };
1774
-
1775
- interface CommandsLoaderState {
1776
- commandsInProgress: {
1777
- timeStamp: number;
1778
- command: string;
1779
- id: string;
1780
- }[];
1781
- totalCommandsStarted: number;
1782
- totalCommandsCompleted: number;
1783
- }
1784
- interface UnrealState {
1785
- lowBandwidthStats: LBMStats | undefined;
1786
- streamConfig: StreamConfig;
1787
- awsInstance: AwsInstance;
1788
- lowBandwidth: boolean;
1789
- wasInitialized: boolean;
1790
- isFirstSuccessLoad: boolean;
1791
- isAfkTimerVisible: boolean;
1792
- afkCountdown: number;
1793
- cirrusConnected: boolean;
1794
- viewportReady: boolean;
1795
- freezeFrameFromVideo: FreezeFrameMessage;
1796
- freezeFrame: FreezeFrameMessage;
1797
- statusMessage: string | null;
1707
+ interface FilterSettings {
1798
1708
  /**
1799
- * @deprecated, use ssData in future
1709
+ * Minimum number of kilobits per second to trigger low bandwidth
1800
1710
  */
1801
- ssInfo: string | null;
1802
- ssData: SignalingData | null;
1803
- statusPercentSignallingServer: number | null;
1804
- errorMessage: ConnectionError | null;
1805
- isReconnecting: boolean;
1806
- dataChannelConnected: boolean;
1807
- streamResolution: StreamResolutionProps;
1808
- isVideoPlaying: boolean;
1809
- establishingConnection: boolean;
1810
- disconnectReason: DisconnectReasonType;
1811
- loaderCommands: CommandsLoaderState;
1812
- matchUrls: string[];
1813
- environmentId: string | null;
1814
- streamClientCompanyId: string | null;
1815
- streamViewId: string | null;
1816
- videoIntroSrc: string | null;
1817
- imageIntroSrc: string | null;
1818
- imageLoadingSrc: string;
1819
- streamRequestContext: StreamRequestContext | null;
1820
- analyticsEvent: {
1821
- name: string;
1822
- params: Record<string, unknown>;
1823
- } | null;
1711
+ minimumBitrate: number;
1712
+ /**
1713
+ * Amount of a percentage drop to trigger a yellow warning
1714
+ */
1715
+ yellowFlag: number;
1716
+ /**
1717
+ * Amount of a percentage drop to trigger a red warning
1718
+ */
1719
+ redFlag: number;
1720
+ /**
1721
+ * Minimum number of frames per second to trigger low bandwidth
1722
+ */
1723
+ minimumFps: number;
1724
+ /**
1725
+ * Time to wait before checking if we can switch to low bandwidth
1726
+ */
1727
+ monitoringDelayTime: number;
1728
+ initialBitrateEstimate: number;
1729
+ initialErrorCovariance: number;
1730
+ processNoise: number;
1731
+ measurementNoise: number;
1732
+ panelOpen: boolean;
1824
1733
  }
1825
- declare const initialState: UnrealState;
1826
- declare const unrealReducer: _ngrx_store.ActionReducer<UnrealState, _ngrx_store.Action<string>>;
1827
1734
 
1828
- declare const selectFreezeFrameDataUrlFromVideo: _ngrx_store.MemoizedSelector<Record<string, any>, string | null, (s1: _3dsource_angular_unreal_module.FreezeFrameMessage, s2: boolean) => string | null>;
1829
- declare const selectFreezeFrameProgressMessageFromVideo: _ngrx_store.MemoizedSelector<Record<string, any>, number | null, (s1: _3dsource_angular_unreal_module.FreezeFrameMessage, s2: boolean) => number | null>;
1830
- declare const selectFreezeFrameDataUrl: _ngrx_store.MemoizedSelector<Record<string, any>, string | null, (s1: _3dsource_angular_unreal_module.FreezeFrameMessage, s2: boolean) => string | null>;
1831
- declare const selectIsFreezeFrameLoading: _ngrx_store.MemoizedSelector<Record<string, any>, boolean, (s1: _3dsource_angular_unreal_module.FreezeFrameMessage) => boolean>;
1832
- declare const selectFreezeFrameCombinedDataUrl: _ngrx_store.MemoizedSelector<Record<string, any>, string | null, (s1: string | null, s2: string | null) => string | null>;
1833
- declare const selectStreamConfig: _ngrx_store.MemoizedSelector<Record<string, any>, _3dsource_angular_unreal_module.StreamConfig, (s1: _3dsource_angular_unreal_module.StreamConfig) => _3dsource_angular_unreal_module.StreamConfig>;
1834
- declare const selectWarnTimeout: _ngrx_store.MemoizedSelector<Record<string, any>, number, (s1: _3dsource_angular_unreal_module.StreamConfig) => number>;
1835
- declare const selectIsExistMatchUrls: _ngrx_store.MemoizedSelector<Record<string, any>, boolean, (s1: string[]) => boolean>;
1836
- declare const selectIsAutostart: _ngrx_store.MemoizedSelector<Record<string, any>, boolean, (s1: _3dsource_angular_unreal_module.StreamConfig) => boolean>;
1837
- declare const selectIsShowPopupWithoutAutoStart: _ngrx_store.MemoizedSelector<Record<string, any>, boolean, (s1: _3dsource_angular_unreal_module.StreamConfig, s2: boolean) => boolean>;
1838
- declare const selectShowReconnectPopup: _ngrx_store.MemoizedSelector<Record<string, any>, boolean, (s1: boolean, s2: boolean) => boolean>;
1839
- declare const selectShowLoader: _ngrx_store.MemoizedSelector<Record<string, any>, boolean, (s1: boolean, s2: boolean) => boolean>;
1840
- declare const selectIsVideoPlayingAndDataChannelConnected: _ngrx_store.MemoizedSelector<Record<string, any>, boolean, (s1: boolean, s2: boolean) => boolean>;
1841
- declare const selectSignalingParameters: _ngrx_store.MemoizedSelector<Record<string, any>, string, (s1: _3dsource_angular_unreal_module.SignalingData | null, s2: _3dsource_angular_unreal_module.AwsInstance, s3: string | null) => string>;
1842
- declare const selectLoaderCommands: _ngrx_store.MemoizedSelector<Record<string, any>, _3dsource_angular_unreal_module.CommandsLoaderState, (s1: _3dsource_angular_unreal_module.CommandsLoaderState) => _3dsource_angular_unreal_module.CommandsLoaderState>;
1843
- declare const selectCommandsInProgress: _ngrx_store.MemoizedSelector<Record<string, any>, number, (s1: _3dsource_angular_unreal_module.CommandsLoaderState) => number>;
1844
- declare const selectCommandProgress: _ngrx_store.MemoizedSelector<Record<string, any>, number, (s1: _3dsource_angular_unreal_module.CommandsLoaderState) => number>;
1845
- declare const selectLastCommandInProgress: _ngrx_store.MemoizedSelector<Record<string, any>, {
1846
- timeStamp: number;
1735
+ declare class FilterSettingsComponent implements OnInit {
1736
+ private store;
1737
+ private readonly storageKey;
1738
+ readonly defaultFilterModel: {
1739
+ minimumBitrate: number;
1740
+ yellowFlag: number;
1741
+ redFlag: number;
1742
+ minimumFps: number;
1743
+ monitoringDelayTime: number;
1744
+ initialBitrateEstimate: number;
1745
+ initialErrorCovariance: number;
1746
+ processNoise: number;
1747
+ measurementNoise: number;
1748
+ panelOpen: boolean;
1749
+ };
1750
+ settings: {
1751
+ minimumBitrate: number;
1752
+ yellowFlag: number;
1753
+ redFlag: number;
1754
+ minimumFps: number;
1755
+ monitoringDelayTime: number;
1756
+ initialBitrateEstimate: number;
1757
+ initialErrorCovariance: number;
1758
+ processNoise: number;
1759
+ measurementNoise: number;
1760
+ panelOpen: boolean;
1761
+ };
1762
+ ngOnInit(): void;
1763
+ togglePanel(): void;
1764
+ saveSettings(): void;
1765
+ dispatch(settings: FilterSettings): void;
1766
+ reset(): void;
1767
+ static ɵfac: i0.ɵɵFactoryDeclaration<FilterSettingsComponent, never>;
1768
+ static ɵcmp: i0.ɵɵComponentDeclaration<FilterSettingsComponent, "app-filter-settings", never, {}, {}, never, never, true, never>;
1769
+ }
1770
+
1771
+ declare class LowBandwidthDetectorComponent implements OnInit {
1772
+ private readonly store;
1773
+ private readonly dialog;
1774
+ private readonly destroyRef;
1775
+ private readonly videoService;
1776
+ readonly isDevMode: boolean;
1777
+ private readonly viewportReady$;
1778
+ private readonly isLowBandwidth$;
1779
+ private readonly lowBandwidthTrigger$;
1780
+ private readonly highBandwidthTrigger$;
1781
+ private readonly viewPortDestroyedTrigger$;
1782
+ private readonly aggregatedStats$;
1783
+ private readonly nativeQuality$;
1784
+ private readonly monitoringTrigger$;
1785
+ private readonly reTrigger$;
1786
+ private readonly canSwitchToLowBand$;
1787
+ private readonly videoQuality$;
1788
+ private readonly fps$;
1789
+ private readonly bitrateDrop$;
1790
+ readonly fps: i0.Signal<number>;
1791
+ readonly nativeQuality: i0.Signal<Quality | undefined>;
1792
+ readonly isLowBandwidth: i0.Signal<boolean | undefined>;
1793
+ readonly aggregatedStats: i0.Signal<_3dsource_angular_unreal_module.InboundVideoStats | undefined>;
1794
+ readonly isReducedQuality: i0.WritableSignal<boolean>;
1795
+ readonly isIndicatorExpanded: i0.WritableSignal<boolean>;
1796
+ readonly isIndicatorExpandedTrigger$: rxjs.Observable<false>;
1797
+ ngOnInit(): void;
1798
+ private trySetLowBandwidth;
1799
+ toggleIndicator(value: boolean): void;
1800
+ hideIndicatorAfterDelay(): void;
1801
+ openLBMDialog(): void;
1802
+ static ɵfac: i0.ɵɵFactoryDeclaration<LowBandwidthDetectorComponent, never>;
1803
+ static ɵcmp: i0.ɵɵComponentDeclaration<LowBandwidthDetectorComponent, "app-low-bandwidth-detector", never, {}, {}, never, never, true, never>;
1804
+ }
1805
+
1806
+ declare class SafePipe implements PipeTransform {
1807
+ private sanitizer;
1808
+ transform(value: string, type: string): SafeHtml | SafeStyle | SafeScript | SafeUrl | SafeResourceUrl;
1809
+ static ɵfac: i0.ɵɵFactoryDeclaration<SafePipe, never>;
1810
+ static ɵpipe: i0.ɵɵPipeDeclaration<SafePipe, "safe", true>;
1811
+ }
1812
+
1813
+ declare function provideAngularUnrealModule(config?: {
1814
+ playwright: boolean;
1815
+ }): i0.EnvironmentProviders;
1816
+
1817
+ /**
1818
+ * Raw JSON from Unreal can either be wrapped in `commandCallback`
1819
+ * (e.g. `{ commandCallback: { command: '...', correlationId: '...' } }`)
1820
+ * or be a direct command/event object (e.g. `{ command: 'cameraChanged', payload: {...} }`).
1821
+ */
1822
+ interface UnrealCallbackJsonWrapped {
1823
+ commandCallback: MetaBoxCommandPacket;
1824
+ timeStamp?: unknown;
1825
+ }
1826
+ type UnrealCallbackJson = UnrealCallbackJsonWrapped | MetaBoxCommandPacket;
1827
+ declare const unrealCommandCallback: _ngrx_store.ActionCreator<string, (props: {
1828
+ json: UnrealCallbackJson;
1829
+ }) => {
1830
+ json: UnrealCallbackJson;
1831
+ } & _ngrx_store.Action<string>>;
1832
+ declare const commandStarted: _ngrx_store.ActionCreator<string, (props: {
1833
+ id: string;
1847
1834
  command: string;
1835
+ }) => {
1848
1836
  id: string;
1849
- } | null, (s1: _3dsource_angular_unreal_module.CommandsLoaderState) => {
1850
- timeStamp: number;
1851
1837
  command: string;
1838
+ } & _ngrx_store.Action<string>>;
1839
+ declare const commandCompleted: _ngrx_store.ActionCreator<string, (props: {
1852
1840
  id: string;
1853
- } | null>;
1854
- /**
1855
- * Returns Scene load progress as a float value in between 0-1
1856
- */
1857
- declare const selectTotalProgress: _ngrx_store.MemoizedSelector<Record<string, any>, number, (s1: number | null, s2: number, s3: _3dsource_angular_unreal_module.AwsInstance, s4: boolean) => number>;
1858
- declare const selectClientAndViewIds: _ngrx_store.MemoizedSelector<Record<string, any>, {
1859
- clientId: string | null;
1860
- viewId: string | null;
1861
- }, (s1: string | null, s2: string | null) => {
1862
- clientId: string | null;
1863
- viewId: string | null;
1864
- }>;
1865
- declare const selectIsLoaderScreenVisible: _ngrx_store.MemoizedSelector<Record<string, any>, boolean, (s1: boolean, s2: boolean, s3: boolean) => boolean>;
1841
+ }) => {
1842
+ id: string;
1843
+ } & _ngrx_store.Action<string>>;
1844
+
1845
+ declare class CommandsEffects {
1846
+ private actions$;
1847
+ private unrealInitialConfig;
1848
+ listenUnrealCallbackByInitSignalling$: rxjs.Observable<{
1849
+ id: string;
1850
+ } & _ngrx_store.Action<string>> & _ngrx_effects.CreateEffectMetadata;
1851
+ static ɵfac: i0.ɵɵFactoryDeclaration<CommandsEffects, never>;
1852
+ static ɵprov: i0.ɵɵInjectableDeclaration<CommandsEffects>;
1853
+ }
1854
+
1855
+ declare const commandsFeature: {
1856
+ name: "commandsFeature";
1857
+ reducer: _ngrx_store.ActionReducer<_3dsource_angular_unreal_module.UnrealCommandsState, _ngrx_store.Action<string>>;
1858
+ selectCommandsFeatureState: _ngrx_store.MemoizedSelector<Record<string, any>, _3dsource_angular_unreal_module.UnrealCommandsState, (featureState: _3dsource_angular_unreal_module.UnrealCommandsState) => _3dsource_angular_unreal_module.UnrealCommandsState>;
1859
+ selectCommandsInProgress: _ngrx_store.MemoizedSelector<Record<string, any>, {
1860
+ timeStamp: number;
1861
+ command: string;
1862
+ id: string;
1863
+ }[], (featureState: _3dsource_angular_unreal_module.UnrealCommandsState) => {
1864
+ timeStamp: number;
1865
+ command: string;
1866
+ id: string;
1867
+ }[]>;
1868
+ selectTotalCommandsStarted: _ngrx_store.MemoizedSelector<Record<string, any>, number, (featureState: _3dsource_angular_unreal_module.UnrealCommandsState) => number>;
1869
+ selectTotalCommandsCompleted: _ngrx_store.MemoizedSelector<Record<string, any>, number, (featureState: _3dsource_angular_unreal_module.UnrealCommandsState) => number>;
1870
+ };
1866
1871
 
1867
- declare const removeExileCommands: (state: CommandsLoaderState, idToRemove: string) => {
1872
+ interface UnrealCommandsState {
1868
1873
  commandsInProgress: {
1869
1874
  timeStamp: number;
1870
1875
  command: string;
@@ -1872,443 +1877,533 @@ declare const removeExileCommands: (state: CommandsLoaderState, idToRemove: stri
1872
1877
  }[];
1873
1878
  totalCommandsStarted: number;
1874
1879
  totalCommandsCompleted: number;
1875
- };
1876
-
1877
- declare function fromResizeObserver(elem: HTMLElement): Observable<ResizeObserverEntry[]>;
1878
-
1879
- interface LBMStats {
1880
- dataFlowResult: DataFlowCheckResult;
1881
- reason: string;
1882
- triggerTime: number;
1883
1880
  }
1881
+ declare const commandsReducer: _ngrx_store.ActionReducer<UnrealCommandsState, _ngrx_store.Action<string>>;
1884
1882
 
1885
- type Quality = 'lime' | 'red' | 'orange';
1886
-
1887
- interface SignalingData {
1888
- instanceType: string;
1889
- branchInfo: string;
1890
- cirrusVersion: string;
1891
- streamerVersion: string;
1892
- streamPath: string;
1893
- streamApp: string;
1894
- connectionId: string;
1895
- }
1883
+ declare const selectCommandsInProgress: _ngrx_store.MemoizedSelector<Record<string, any>, number, (s1: {
1884
+ timeStamp: number;
1885
+ command: string;
1886
+ id: string;
1887
+ }[]) => number>;
1888
+ declare const selectCommandProgress: _ngrx_store.MemoizedSelector<Record<string, any>, number, (s1: number, s2: number) => number>;
1889
+ declare const selectLastCommandInProgress: _ngrx_store.MemoizedSelector<Record<string, any>, {
1890
+ timeStamp: number;
1891
+ command: string;
1892
+ id: string;
1893
+ } | null, (s1: {
1894
+ timeStamp: number;
1895
+ command: string;
1896
+ id: string;
1897
+ }[]) => {
1898
+ timeStamp: number;
1899
+ command: string;
1900
+ id: string;
1901
+ } | null>;
1896
1902
 
1897
- declare const OrchestrationMessageTypes: {
1898
- readonly ping: "ping";
1899
- readonly error: "error";
1900
- readonly offer: "offer";
1901
- readonly answer: "answer";
1902
- readonly ssInfo: "ssInfo";
1903
- readonly config: "config";
1904
- readonly playerCount: "playerCount";
1905
- readonly iceCandidate: "iceCandidate";
1906
- readonly streamerList: "streamerList";
1907
- readonly requestStream: "requestStream";
1908
- readonly listStreamers: "listStreamers";
1909
- readonly instanceReady: "instanceReady";
1910
- readonly p2pEstablished: "p2pEstablished";
1911
- readonly instanceReserved: "instanceReserved";
1912
- readonly playerDisconnected: "playerDisconnected";
1913
- readonly streamPreparedForUserInteraction: "streamPreparedForUserInteraction";
1914
- readonly streamerDisconnected: "streamerDisconnected";
1915
- readonly interruptClientStream: "interruptClientStream";
1916
- };
1917
- interface InstanceReady extends InstanceMessageBase {
1918
- type: 'instanceReady';
1919
- }
1920
- interface InstanceReserved extends InstanceMessageBase {
1921
- type: 'instanceReserved';
1922
- }
1923
- interface OrchestrationErrorMessage {
1924
- type: 'error';
1925
- payload: {
1926
- code: number;
1927
- message: string;
1928
- };
1929
- }
1930
- interface InstanceMessageBase extends MessageBase {
1931
- correlationId: string;
1932
- payload: {
1933
- instanceId: string;
1934
- streamRequestId: string;
1935
- eta: number;
1936
- };
1937
- }
1938
- interface MessageBase {
1939
- type: OrchestrationMessageType;
1940
- }
1941
- interface SSInfo extends MessageBase {
1942
- type: 'ssInfo';
1903
+ declare const trackMixpanelEvent: _ngrx_store.ActionCreator<string, (props: {
1904
+ event: string;
1905
+ data?: unknown;
1906
+ }) => {
1907
+ event: string;
1908
+ data?: unknown;
1909
+ } & _ngrx_store.Action<string>>;
1910
+ declare const changeLowBandwidth: _ngrx_store.ActionCreator<string, (props: {
1911
+ lowBandwidth: boolean;
1912
+ stats?: LBMStats;
1913
+ }) => {
1914
+ lowBandwidth: boolean;
1915
+ stats?: LBMStats;
1916
+ } & _ngrx_store.Action<string>>;
1917
+ declare const setMaxFps: _ngrx_store.ActionCreator<string, (props: {
1918
+ maxFps: number;
1919
+ }) => {
1920
+ maxFps: number;
1921
+ } & _ngrx_store.Action<string>>;
1922
+ declare const destroyRemoteConnections: _ngrx_store.ActionCreator<string, (props: {
1923
+ reason: DisconnectReasonType;
1924
+ }) => {
1925
+ reason: DisconnectReasonType;
1926
+ } & _ngrx_store.Action<string>>;
1927
+ declare const destroyUnrealScene: _ngrx_store.ActionCreator<string, () => _ngrx_store.Action<string>>;
1928
+ declare const setCirrusConnected: _ngrx_store.ActionCreator<string, () => _ngrx_store.Action<string>>;
1929
+ declare const setCirrusDisconnected: _ngrx_store.ActionCreator<string, () => _ngrx_store.Action<string>>;
1930
+ declare const changeStatusMainVideoOnScene: _ngrx_store.ActionCreator<string, (props: {
1931
+ isVideoPlaying: boolean;
1932
+ }) => {
1933
+ isVideoPlaying: boolean;
1934
+ } & _ngrx_store.Action<string>>;
1935
+ declare const setAwsInstance: _ngrx_store.ActionCreator<string, (props: {
1936
+ wsUrl: string | null;
1937
+ pollingUrl: string | null;
1938
+ instanceName: string | null;
1939
+ }) => {
1940
+ wsUrl: string | null;
1941
+ pollingUrl: string | null;
1942
+ instanceName: string | null;
1943
+ } & _ngrx_store.Action<string>>;
1944
+ declare const setStatusMessage: _ngrx_store.ActionCreator<string, (props: {
1945
+ statusMessage: string | null;
1946
+ }) => {
1947
+ statusMessage: string | null;
1948
+ } & _ngrx_store.Action<string>>;
1949
+ declare const setStatusPercentSignallingServer: _ngrx_store.ActionCreator<string, (props: {
1950
+ percent: number | null;
1951
+ }) => {
1952
+ percent: number | null;
1953
+ } & _ngrx_store.Action<string>>;
1954
+ declare const setFreezeFrame: _ngrx_store.ActionCreator<string, (props: {
1955
+ dataUrl: string | null;
1956
+ progress: number | null;
1957
+ }) => {
1958
+ dataUrl: string | null;
1959
+ progress: number | null;
1960
+ } & _ngrx_store.Action<string>>;
1961
+ declare const setStreamClientCompanyId: _ngrx_store.ActionCreator<string, (props: {
1962
+ id: string;
1963
+ }) => {
1964
+ id: string;
1965
+ } & _ngrx_store.Action<string>>;
1966
+ declare const setStreamViewId: _ngrx_store.ActionCreator<string, (props: {
1967
+ id: string;
1968
+ }) => {
1969
+ id: string;
1970
+ } & _ngrx_store.Action<string>>;
1971
+ declare const setIntroImageSrc: _ngrx_store.ActionCreator<string, (props: {
1972
+ src: string;
1973
+ }) => {
1974
+ src: string;
1975
+ } & _ngrx_store.Action<string>>;
1976
+ declare const setLoadingImageSrc: _ngrx_store.ActionCreator<string, (props: {
1977
+ src: string;
1978
+ }) => {
1979
+ src: string;
1980
+ } & _ngrx_store.Action<string>>;
1981
+ declare const setIntroVideoSrc: _ngrx_store.ActionCreator<string, (props: {
1982
+ src: string;
1983
+ }) => {
1984
+ src: string;
1985
+ } & _ngrx_store.Action<string>>;
1986
+ declare const resetIntroSrc: _ngrx_store.ActionCreator<string, () => _ngrx_store.Action<string>>;
1987
+ declare const setFreezeFrameFromVideo: _ngrx_store.ActionCreator<string, (props: {
1988
+ dataUrl: string | null;
1989
+ progress: number | null;
1990
+ }) => {
1991
+ dataUrl: string | null;
1992
+ progress: number | null;
1993
+ } & _ngrx_store.Action<string>>;
1994
+ declare const setEstablishingConnection: _ngrx_store.ActionCreator<string, (props: {
1995
+ value: boolean;
1996
+ }) => {
1997
+ value: boolean;
1998
+ } & _ngrx_store.Action<string>>;
1999
+ /**
2000
+ * @deprecated Use `dataChannelReady` instead. Currently, this action is not working.
2001
+ */
2002
+ declare const setDataChannelConnected: _ngrx_store.ActionCreator<string, (props: {
2003
+ statusMessage: string;
2004
+ }) => {
2005
+ statusMessage: string;
2006
+ } & _ngrx_store.Action<string>>;
2007
+ declare const dataChannelConnected: _ngrx_store.ActionCreator<string, (props: {
2008
+ statusMessage: string;
2009
+ }) => {
2010
+ statusMessage: string;
2011
+ } & _ngrx_store.Action<string>>;
2012
+ declare const dataChannelReady: _ngrx_store.ActionCreator<string, () => _ngrx_store.Action<string>>;
2013
+ declare const setConfig: _ngrx_store.ActionCreator<string, (props: {
2014
+ config: Partial<StreamConfig>;
2015
+ }) => {
2016
+ config: Partial<StreamConfig>;
2017
+ } & _ngrx_store.Action<string>>;
2018
+ declare const disconnectStream: _ngrx_store.ActionCreator<string, (props: {
2019
+ reason: DisconnectReasonType;
1943
2020
  message: string;
1944
- data: SignalingData;
1945
- }
1946
- interface PlayerCountMessage extends MessageBase {
1947
- type: 'playerCount';
1948
- playerCount: number;
1949
- }
1950
- interface StreamerListMessage extends MessageBase {
1951
- type: 'streamerList';
1952
- ids: string[];
1953
- }
1954
- interface ConfigMessage extends MessageBase, UnknownFields {
1955
- type: 'config';
1956
- peerConnectionOptions: RTCConfiguration;
1957
- }
1958
- interface CandidateMessage extends MessageBase {
1959
- type: 'iceCandidate';
1960
- candidate: RTCIceCandidate;
1961
- }
1962
- interface PingMessage extends MessageBase {
1963
- type: 'ping';
1964
- playerId: string;
1965
- appConnectionCounter: number;
1966
- }
1967
- type UnknownFields = Record<string, unknown>;
1968
- interface InterruptClientStream extends MessageBase {
1969
- type: 'interruptClientStream';
1970
- correlationId: string;
1971
- payload: {
1972
- environmentId: string;
1973
- };
1974
- }
1975
- interface ForceClientDisconnect extends MessageBase {
1976
- type: 'streamerDisconnected' | 'playerDisconnected';
1977
- connectionId: string;
1978
- }
1979
- interface ListStreamersMessage extends MessageBase {
1980
- type: 'listStreamers';
1981
- correlationId: string;
1982
- }
1983
- interface P2PEstablishedMessage extends MessageBase {
1984
- type: 'p2pEstablished';
1985
- source: string;
1986
- sessionId: string;
1987
- }
1988
- interface streamPreparedForUserInteractionMessage extends MessageBase {
1989
- type: 'streamPreparedForUserInteraction';
1990
- correlationId: string;
1991
- }
1992
- interface RequestStream extends MessageBase {
1993
- type: 'requestStream';
1994
- correlationId: string;
1995
- payload: {
1996
- environmentId: string;
1997
- region?: string;
1998
- /**
1999
- * The context field is used for plugins of the external
2000
- * applications for collecting additional statistics, etc.
2001
- */
2002
- context: StreamRequestContext;
2003
- };
2004
- }
2005
- interface MetaboxBasicConfiguratorContext {
2006
- id: 'metaboxBasicConfigurator';
2007
- data: {
2008
- configuratorId: string;
2009
- };
2010
- }
2011
- interface MetaboxModularConfiguratorContext {
2012
- id: 'metaboxModularConfigurator';
2013
- data: {
2014
- configuratorId: string;
2015
- };
2016
- }
2017
- interface MetaboxProductContext {
2018
- id: 'metaboxProduct';
2019
- data: {
2020
- productId: string;
2021
- };
2022
- }
2023
- interface MetaboxEnvironmentContext {
2024
- id: 'metaboxEnvironment';
2025
- data: {
2026
- environmentId: string;
2027
- };
2028
- }
2029
- interface MetaboxStudioContext {
2030
- id: 'metaboxStudio';
2031
- data: {
2032
- userId: string;
2033
- workspaceId: string;
2034
- };
2035
- }
2036
- interface CustomApplicationContext {
2037
- id: 'customApplication';
2038
- data: {
2039
- clientId: string;
2040
- applicationId: string;
2041
- };
2042
- }
2043
- type StreamRequestContext = MetaboxStudioContext | MetaboxProductContext | CustomApplicationContext | MetaboxEnvironmentContext | MetaboxBasicConfiguratorContext | MetaboxModularConfiguratorContext;
2044
- interface SignalingMessageMap {
2045
- [OrchestrationMessageTypes.ping]: PingMessage;
2046
- [OrchestrationMessageTypes.offer]: RTCSessionDescriptionInit;
2047
- [OrchestrationMessageTypes.error]: OrchestrationErrorMessage;
2048
- [OrchestrationMessageTypes.ssInfo]: SSInfo;
2049
- [OrchestrationMessageTypes.config]: ConfigMessage;
2050
- [OrchestrationMessageTypes.answer]: RTCSessionDescriptionInit;
2051
- [OrchestrationMessageTypes.playerCount]: PlayerCountMessage;
2052
- [OrchestrationMessageTypes.iceCandidate]: CandidateMessage;
2053
- [OrchestrationMessageTypes.streamerList]: StreamerListMessage;
2054
- [OrchestrationMessageTypes.instanceReady]: InstanceReady;
2055
- [OrchestrationMessageTypes.requestStream]: RequestStream;
2056
- [OrchestrationMessageTypes.listStreamers]: ListStreamersMessage;
2057
- [OrchestrationMessageTypes.p2pEstablished]: P2PEstablishedMessage;
2058
- [OrchestrationMessageTypes.instanceReserved]: InstanceReserved;
2059
- [OrchestrationMessageTypes.playerDisconnected]: ForceClientDisconnect;
2060
- [OrchestrationMessageTypes.streamPreparedForUserInteraction]: streamPreparedForUserInteractionMessage;
2061
- [OrchestrationMessageTypes.streamerDisconnected]: ForceClientDisconnect;
2062
- [OrchestrationMessageTypes.interruptClientStream]: InterruptClientStream;
2063
- }
2064
- type OrchestrationMessageType = keyof SignalingMessageMap;
2065
- type AnySignalingMessage = SignalingMessageMap[OrchestrationMessageType] | string;
2066
- type SignalingMessageHandler<T extends keyof SignalingMessageMap> = (msg: SignalingMessageMap[T]) => void;
2067
- interface PollingOrchestrationMessage {
2068
- mm_message?: string;
2069
- signallingServer?: string;
2021
+ }) => {
2022
+ reason: DisconnectReasonType;
2023
+ message: string;
2024
+ } & _ngrx_store.Action<string>>;
2025
+ declare const dropConnection: _ngrx_store.ActionCreator<string, () => _ngrx_store.Action<string>>;
2026
+ declare const setViewportReady: _ngrx_store.ActionCreator<string, () => _ngrx_store.Action<string>>;
2027
+ declare const setViewportNotReady: _ngrx_store.ActionCreator<string, () => _ngrx_store.Action<string>>;
2028
+ declare const changeStreamResolutionAction: _ngrx_store.ActionCreator<string, (props: {
2029
+ width: number | null;
2030
+ height: number | null;
2031
+ }) => {
2032
+ width: number | null;
2033
+ height: number | null;
2034
+ } & _ngrx_store.Action<string>>;
2035
+ declare const changeStreamResolutionSuccessAction: _ngrx_store.ActionCreator<string, (props: {
2036
+ width: number | null;
2037
+ height: number | null;
2038
+ }) => {
2039
+ width: number | null;
2040
+ height: number | null;
2041
+ } & _ngrx_store.Action<string>>;
2042
+ declare const setSignalingName: _ngrx_store.ActionCreator<string, (props: {
2043
+ instanceName: string;
2044
+ }) => {
2045
+ instanceName: string;
2046
+ } & _ngrx_store.Action<string>>;
2047
+ declare const setOrchestrationParameters: _ngrx_store.ActionCreator<string, (props: {
2048
+ instanceName: string;
2049
+ streamRequestId: string;
2050
+ eta: number;
2051
+ }) => {
2052
+ instanceName: string;
2053
+ streamRequestId: string;
2054
+ eta: number;
2055
+ } & _ngrx_store.Action<string>>;
2056
+ declare const setOrchestrationMessage: _ngrx_store.ActionCreator<string, (props: {
2057
+ message: string;
2058
+ }) => {
2059
+ message: string;
2060
+ } & _ngrx_store.Action<string>>;
2061
+ declare const setOrchestrationProgress: _ngrx_store.ActionCreator<string, (props: {
2062
+ progressComplete: number;
2063
+ }) => {
2064
+ progressComplete: number;
2065
+ } & _ngrx_store.Action<string>>;
2066
+ declare const setOrchestrationContext: _ngrx_store.ActionCreator<string, (props: {
2067
+ urls: string[];
2068
+ environmentId: string;
2069
+ streamRequestContext: StreamRequestContext;
2070
+ }) => {
2071
+ urls: string[];
2072
+ environmentId: string;
2073
+ streamRequestContext: StreamRequestContext;
2074
+ } & _ngrx_store.Action<string>>;
2075
+ declare const updateCirrusInfo: _ngrx_store.ActionCreator<string, (props: {
2076
+ ssInfo: string;
2077
+ ssData: SignalingData;
2078
+ }) => {
2079
+ ssInfo: string;
2080
+ ssData: SignalingData;
2081
+ } & _ngrx_store.Action<string>>;
2082
+ declare const setLoopBackCommandIsCompleted: _ngrx_store.ActionCreator<string, () => _ngrx_store.Action<string>>;
2083
+ declare const setAfkTimerVisible: _ngrx_store.ActionCreator<string, () => _ngrx_store.Action<string>>;
2084
+ declare const setAfkTimerHide: _ngrx_store.ActionCreator<string, () => _ngrx_store.Action<string>>;
2085
+ declare const setAfkTimerCountdown: _ngrx_store.ActionCreator<string, (props: {
2086
+ countdown: number;
2087
+ }) => {
2088
+ countdown: number;
2089
+ } & _ngrx_store.Action<string>>;
2090
+ declare const showUnrealErrorMessage: _ngrx_store.ActionCreator<string, (props: {
2091
+ code: number | null;
2070
2092
  error?: string;
2071
- info?: {
2072
- age: number | null;
2073
- left: number | null;
2074
- percent: number | null;
2075
- total: number | null;
2093
+ }) => {
2094
+ code: number | null;
2095
+ error?: string;
2096
+ } & _ngrx_store.Action<string>>;
2097
+ declare const initSignalling: _ngrx_store.FunctionWithParametersType<[data?: {
2098
+ resetDisconnectionReason: boolean;
2099
+ } | undefined], {
2100
+ resetDisconnectionReason: boolean;
2101
+ } & _ngrx_store.Action<string>> & _ngrx_store.Action<string>;
2102
+ declare const startStream: _ngrx_store.ActionCreator<string, (props: {
2103
+ config: Partial<StreamConfig>;
2104
+ }) => {
2105
+ config: Partial<StreamConfig>;
2106
+ } & _ngrx_store.Action<string>>;
2107
+ declare const resetConfig: _ngrx_store.ActionCreator<string, () => _ngrx_store.Action<string>>;
2108
+ declare const resetAfk: _ngrx_store.ActionCreator<string, () => _ngrx_store.Action<string>>;
2109
+ declare const resetWarnTimeout: _ngrx_store.ActionCreator<string, () => _ngrx_store.Action<string>>;
2110
+ declare const abortEstablishingConnection: _ngrx_store.ActionCreator<string, () => _ngrx_store.Action<string>>;
2111
+ declare const setUnrealPlaywrightConfig: _ngrx_store.ActionCreator<string, () => _ngrx_store.Action<string>>;
2112
+ declare const saveAnalyticsEvent: _ngrx_store.ActionCreator<string, (props: {
2113
+ event: {
2114
+ name: string;
2115
+ params: Record<string, unknown>;
2076
2116
  };
2077
- }
2078
-
2079
- interface StreamConfig {
2080
- autoStart: boolean;
2081
- warnTimeout: number;
2082
- }
2083
-
2084
- interface StreamResolutionProps {
2085
- width: number | null;
2086
- height: number | null;
2087
- }
2088
-
2089
- type TelemetryType = 'commandSent' | 'commandStop';
2090
-
2091
- declare const UnrealInternalSignalEvents: {
2092
- readonly UnrealCallback: "UnrealCallback";
2093
- };
2094
- interface SignalDescriptor {
2095
- [UnrealInternalSignalEvents.UnrealCallback]: {
2096
- json: UnrealCallBackJson;
2117
+ }) => {
2118
+ event: {
2119
+ name: string;
2120
+ params: Record<string, unknown>;
2097
2121
  };
2098
- }
2099
- type UnrealCallBackJson = MetaBoxCommandPacket | WrappedMetaBoxCommandPacket;
2100
- interface WrappedMetaBoxCommandPacket {
2101
- commandCallback: MetaBoxCommandPacket;
2102
- }
2103
- interface AggregatedStat {
2104
- quality: Quality;
2105
- aggregatedStats: InboundVideoStats;
2106
- }
2107
- interface InboundVideoStats extends RTCInboundRtpStreamStats {
2108
- VideoEncoderQP: number;
2109
- runTime: number;
2110
- pixelRatio: number;
2111
- bytesReceivedStart: number;
2112
- framesDecodedStart: number;
2113
- timestampStart: number;
2114
- videoCodec: string;
2115
- avgBitrate: number;
2116
- avgFrameRate: number;
2117
- selectedPair: {
2118
- local: {
2119
- type: string;
2120
- url: string;
2121
- };
2122
- remote: {
2123
- type: string;
2124
- url: string;
2125
- };
2126
- } | null;
2127
- currentRoundTripTime: number;
2128
- codecs: Record<string, string>;
2129
- receiveToCompositeMs: number;
2130
- bitrate: number;
2131
- kalmanBitrate: number;
2132
- bitrateDrop: number;
2133
- dataFlowCheckResult: DataFlowCheckResult;
2134
- dataFlowBitrate: DataFlowCheckResult;
2135
- }
2136
- interface AwsInstance {
2137
- /**
2138
- * WebSocket URL for connecting to the Cirrus (polling mode) or Orchestration (direct mode).
2139
- */
2140
- wsUrl: string | null;
2141
- pollingUrl: string | null;
2142
- instanceName: string | null;
2143
- /**
2144
- * Unique identifier for the streaming request.
2145
- * Coming with a new orchestration message "instanceReserved".
2146
- */
2147
- streamRequestId?: string;
2148
- /**
2149
- * Estimated time of arrival (in seconds) for the instance to be ready.
2150
- * Coming with a new orchestration message "instanceReserved".
2151
- */
2152
- eta?: number;
2153
- /**
2154
- * Progress of completion for the instance launch (0-1).
2155
- * Based on ETA time comes from the backend with new orchestration.
2156
- * If eta is not provided, this value will be undefined.
2157
- */
2158
- progressComplete?: number;
2159
- message?: string;
2160
- }
2122
+ } & _ngrx_store.Action<string>>;
2123
+ /** Action to trigger WebRTC peer reconnection (keeps signaling connection) */
2124
+ declare const reconnectPeer: _ngrx_store.ActionCreator<string, (props: {
2125
+ attempt: number;
2126
+ maxAttempts: number;
2127
+ delay?: number;
2128
+ }) => {
2129
+ attempt: number;
2130
+ maxAttempts: number;
2131
+ delay?: number;
2132
+ } & _ngrx_store.Action<string>>;
2133
+ /** Action to reset the data channel state before reconnection */
2134
+ declare const resetDataChannelForReconnect: _ngrx_store.ActionCreator<string, () => _ngrx_store.Action<string>>;
2135
+ /** Action dispatched when peer reconnection succeeds */
2136
+ declare const reconnectPeerSuccess: _ngrx_store.ActionCreator<string, () => _ngrx_store.Action<string>>;
2137
+ /** Action dispatched when all peer reconnection attempts are exhausted */
2138
+ declare const reconnectPeerFailed: _ngrx_store.ActionCreator<string, (props: {
2139
+ reason: string;
2140
+ }) => {
2141
+ reason: string;
2142
+ } & _ngrx_store.Action<string>>;
2143
+ /** Action dispatched when ICE connection state changes to failed/disconnected */
2144
+ declare const iceConnectionFailed: _ngrx_store.ActionCreator<string, (props: {
2145
+ state: RTCIceConnectionState;
2146
+ }) => {
2147
+ state: RTCIceConnectionState;
2148
+ } & _ngrx_store.Action<string>>;
2149
+ declare const forceResizeViewport: _ngrx_store.ActionCreator<string, () => _ngrx_store.Action<string>>;
2150
+ declare const videoAdaptedToContainer: _ngrx_store.ActionCreator<string, () => _ngrx_store.Action<string>>;
2151
+ declare const videoStreamInitialized: _ngrx_store.ActionCreator<string, () => _ngrx_store.Action<string>>;
2152
+ declare const setKalmanSettings: _ngrx_store.ActionCreator<string, (props: {
2153
+ settings: FilterSettings;
2154
+ }) => {
2155
+ settings: FilterSettings;
2156
+ } & _ngrx_store.Action<string>>;
2157
+ declare const dropDC: _ngrx_store.ActionCreator<string, () => _ngrx_store.Action<string>>;
2158
+ declare const dropPC: _ngrx_store.ActionCreator<string, () => _ngrx_store.Action<string>>;
2161
2159
 
2162
- interface DataFlowCheckResult {
2163
- isDropDetected: boolean;
2164
- dropPercentage: number;
2165
- activeMedian: number;
2166
- quality: Quality;
2167
- message: string;
2168
- dataHistory: number[];
2169
- config: {
2170
- yellowFlagThresholdPercentage: number;
2171
- redFlagThresholdPercentage: number;
2172
- historyBufferLength: number;
2173
- splitPoint: number;
2174
- };
2175
- }
2176
- declare class DataFlowMonitor {
2177
- protected yellowFlagThresholdPercentage: number;
2178
- protected redFlagThresholdPercentage: number;
2179
- protected historyBufferLength: number;
2180
- protected splitPoint: number;
2181
- protected dataHistory: number[];
2182
- /**
2183
- * Initializes the DataFlowMonitor monitor.
2184
- * @param yellowFlagThresholdPercentage - The percentage drop to trigger a YELLOW warning (default: 15%).
2185
- * @param redFlagThresholdPercentage - The percentage drop to trigger a RED warning (default: 30%).
2186
- * @param historyBufferLength - buffer length (default: 100).
2187
- * @param splitPoint - The point at which to split the history buffer into two halves (default: 0.5).
2188
- */
2189
- constructor(yellowFlagThresholdPercentage?: number, redFlagThresholdPercentage?: number, historyBufferLength?: number, splitPoint?: number);
2190
- reset(): void;
2191
- config(data: FilterSettings): void;
2160
+ declare class UnrealEffects {
2161
+ private actions$;
2162
+ private dialog;
2163
+ private http;
2164
+ private store;
2165
+ private isDevMode;
2166
+ private scrollStrategy;
2167
+ private unrealInitialConfig;
2168
+ private webRtcPlayerService;
2169
+ private commandsSender;
2170
+ private readonly commandTelemetryService;
2171
+ private signallingService;
2172
+ private videoService;
2173
+ private unrealCallbackService;
2174
+ private dataChannelConnectionTimeout;
2175
+ private connectionCompleted$;
2176
+ private reconnectConfig;
2177
+ disconnectReasonHandling$: rxjs.Observable<{
2178
+ reason: _3dsource_angular_unreal_module.DisconnectReasonType;
2179
+ } & _ngrx_store.Action<string>> & _ngrx_effects.CreateEffectMetadata;
2180
+ destroyConnections$: rxjs.Observable<{
2181
+ reason: _3dsource_angular_unreal_module.DisconnectReasonType;
2182
+ } & _ngrx_store.Action<string>> & _ngrx_effects.CreateEffectMetadata;
2183
+ destroyRemoteConnections$: rxjs.Observable<_ngrx_store.Action<string>> & _ngrx_effects.CreateEffectMetadata;
2184
+ webrtcErrorModalComponent$: rxjs.Observable<false> & _ngrx_effects.CreateEffectMetadata;
2185
+ changeStreamResolution$: rxjs.Observable<{
2186
+ width: number | null;
2187
+ height: number | null;
2188
+ } & _ngrx_store.Action<string>> & _ngrx_effects.CreateEffectMetadata;
2189
+ forceLBMOff$: rxjs.Observable<{
2190
+ lowBandwidth: boolean;
2191
+ stats?: _3dsource_angular_unreal_module.LBMStats;
2192
+ } & _ngrx_store.Action<string>> & _ngrx_effects.CreateEffectMetadata;
2193
+ resetFreezeFrameOnLowBandwidthTriggered$: rxjs.Observable<{
2194
+ dataUrl: string | null;
2195
+ progress: number | null;
2196
+ } & _ngrx_store.Action<string>> & _ngrx_effects.CreateEffectMetadata;
2197
+ sendLbmStat$: rxjs.Subscription;
2198
+ resetAfk$: rxjs.Observable<_ngrx_store.Action<string>> & _ngrx_effects.CreateEffectMetadata;
2199
+ abortEstablishingConnection$: rxjs.Observable<_ngrx_store.Action<string>> & _ngrx_effects.CreateEffectMetadata;
2200
+ setMaxFps$: rxjs.Observable<{
2201
+ maxFps: number;
2202
+ } & _ngrx_store.Action<string>> & _ngrx_effects.CreateEffectMetadata;
2203
+ setSignalingTo100$: rxjs.Observable<{
2204
+ percent: number | null;
2205
+ } & _ngrx_store.Action<string>> & _ngrx_effects.CreateEffectMetadata;
2206
+ setOrchestrationParameters$: rxjs.Observable<{
2207
+ progressComplete: number;
2208
+ } & _ngrx_store.Action<string>> & _ngrx_effects.CreateEffectMetadata;
2209
+ setDataChannelTimeoutCheck$: rxjs.Observable<{
2210
+ reason: _3dsource_angular_unreal_module.DisconnectReasonType;
2211
+ message: string;
2212
+ } & _ngrx_store.Action<string>> & _ngrx_effects.CreateEffectMetadata;
2213
+ destroyConnectionAndRestart$: rxjs.Observable<{
2214
+ resetDisconnectionReason: boolean;
2215
+ } & _ngrx_store.Action<string>> & _ngrx_effects.CreateEffectMetadata;
2216
+ showUnrealError$: rxjs.Observable<{
2217
+ code: number | null;
2218
+ error?: string;
2219
+ } & _ngrx_store.Action<string>> & _ngrx_effects.CreateEffectMetadata;
2220
+ sendStatisticsToUnreal$: rxjs.Observable<Object> & _ngrx_effects.CreateEffectMetadata;
2221
+ unrealReceiverReady$: rxjs.Observable<_ngrx_store.Action<string>> & _ngrx_effects.CreateEffectMetadata;
2222
+ initAppBySetDataChannelConnected$: rxjs.Observable<_ngrx_store.Action<string>> & _ngrx_effects.CreateEffectMetadata;
2223
+ setViewportReadyBySetLoopBackCommandIsCompleted$: rxjs.Observable<_ngrx_store.Action<string>> & _ngrx_effects.CreateEffectMetadata;
2224
+ startStream$: rxjs.Observable<{
2225
+ resetDisconnectionReason: boolean;
2226
+ } & _ngrx_store.Action<string>> & _ngrx_effects.CreateEffectMetadata;
2227
+ connectToSignaling$: rxjs.Observable<WebSocket> & _ngrx_effects.CreateEffectMetadata;
2192
2228
  /**
2193
- * Adds a new bitrate measurement and checks for significant drops.
2194
- * @param currentValue - The current bitrate in kbps.
2195
- * @returns BitrateCheckResult indicating if a drop was detected.
2229
+ * Effect: `forceViewportNotReady$`
2230
+ *
2231
+ * Ensures the viewport is explicitly marked as *not ready* to prevent
2232
+ * a temporary black screen flash when disconnecting.
2233
+ *
2234
+ * ### Why
2235
+ * - The video stream is disconnected immediately.
2236
+ * - The DataChannel closes slightly later.
2237
+ * - Closing the DataChannel resets the Unreal scene,
2238
+ * which also sets `viewPortReady` to `false`.
2239
+ *
2240
+ * Without this effect, the order of these events may cause
2241
+ * a visible flicker (video flashing to black).
2196
2242
  */
2197
- addValue(currentValue: number): DataFlowCheckResult;
2198
- }
2199
-
2200
- interface FilterSettings {
2243
+ forceViewportNotReady$: rxjs.Observable<_ngrx_store.Action<string>> & _ngrx_effects.CreateEffectMetadata;
2201
2244
  /**
2202
- * Minimum number of kilobits per second to trigger low bandwidth
2245
+ * Effect: `handleDataChannelClosed$`
2246
+ *
2247
+ * Triggers peer reconnection when DataChannel closes unexpectedly.
2248
+ * Only triggers if reconnection is enabled, onDataChannelClose is true,
2249
+ * and the signaling WebSocket is still connected.
2203
2250
  */
2204
- minimumBitrate: number;
2251
+ handleDataChannelClosed$: rxjs.Observable<{
2252
+ attempt: number;
2253
+ maxAttempts: number;
2254
+ delay?: number;
2255
+ } & _ngrx_store.Action<string>> & _ngrx_effects.CreateEffectMetadata;
2205
2256
  /**
2206
- * Amount of a percentage drop to trigger a yellow warning
2257
+ * Effect: `resetStateForPeerReconnect$`
2258
+ *
2259
+ * Resets the data channel state when peer reconnection starts.
2207
2260
  */
2208
- yellowFlag: number;
2261
+ resetStateForPeerReconnect$: rxjs.Observable<_ngrx_store.Action<string>> & _ngrx_effects.CreateEffectMetadata;
2209
2262
  /**
2210
- * Amount of a percentage drop to trigger a red warning
2263
+ * Effect: `executePeerReconnect$`
2264
+ *
2265
+ * Executes the actual peer reconnection attempt.
2266
+ * This only re-establishes the WebRTC connection, not the signaling.
2211
2267
  */
2212
- redFlag: number;
2268
+ executePeerReconnect$: rxjs.Observable<_ngrx_store.Action<string> | ({
2269
+ attempt: number;
2270
+ maxAttempts: number;
2271
+ delay?: number;
2272
+ } & _ngrx_store.Action<string>) | ({
2273
+ reason: string;
2274
+ } & _ngrx_store.Action<string>)> & _ngrx_effects.CreateEffectMetadata;
2213
2275
  /**
2214
- * Minimum number of frames per second to trigger low bandwidth
2276
+ * Effect: `handlePeerReconnectFailed$`
2277
+ *
2278
+ * Handles the case when all peer reconnection attempts have failed.
2279
+ * Falls back to full disconnection which may trigger full reconnection.
2215
2280
  */
2216
- minimumFps: number;
2281
+ handlePeerReconnectFailed$: rxjs.Observable<{
2282
+ reason: _3dsource_angular_unreal_module.DisconnectReasonType;
2283
+ message: string;
2284
+ } & _ngrx_store.Action<string>> & _ngrx_effects.CreateEffectMetadata;
2217
2285
  /**
2218
- * Time to wait before checking if we can switch to low bandwidth
2286
+ * Effect: `logPeerReconnectSuccess$`
2287
+ *
2288
+ * Logs successful peer reconnection for telemetry.
2219
2289
  */
2220
- monitoringDelayTime: number;
2221
- initialBitrateEstimate: number;
2222
- initialErrorCovariance: number;
2223
- processNoise: number;
2224
- measurementNoise: number;
2225
- panelOpen: boolean;
2226
- }
2227
- /**
2228
- * Default LBM Filter Parameters
2229
- */
2230
- declare const DefaultFilterModel: FilterSettings;
2231
-
2232
- declare class FilterSettingsComponent implements OnInit {
2233
- private readonly storageKey;
2234
- readonly defaultFilterModel: {
2235
- minimumBitrate: number;
2236
- yellowFlag: number;
2237
- redFlag: number;
2238
- minimumFps: number;
2239
- monitoringDelayTime: number;
2240
- initialBitrateEstimate: number;
2241
- initialErrorCovariance: number;
2242
- processNoise: number;
2243
- measurementNoise: number;
2244
- panelOpen: boolean;
2245
- };
2246
- settings: {
2247
- minimumBitrate: number;
2248
- yellowFlag: number;
2249
- redFlag: number;
2250
- minimumFps: number;
2251
- monitoringDelayTime: number;
2252
- initialBitrateEstimate: number;
2253
- initialErrorCovariance: number;
2254
- processNoise: number;
2255
- measurementNoise: number;
2256
- panelOpen: boolean;
2257
- };
2258
- ngOnInit(): void;
2259
- togglePanel(): void;
2260
- saveSettings(): void;
2261
- dispatch(model: typeof DefaultFilterModel): void;
2262
- reset(): void;
2263
- static ɵfac: i0.ɵɵFactoryDeclaration<FilterSettingsComponent, never>;
2264
- static ɵcmp: i0.ɵɵComponentDeclaration<FilterSettingsComponent, "app-filter-settings", never, {}, {}, never, never, true, never>;
2290
+ logPeerReconnectSuccess$: rxjs.Observable<_ngrx_store.Action<string>> & _ngrx_effects.CreateEffectMetadata;
2291
+ static ɵfac: i0.ɵɵFactoryDeclaration<UnrealEffects, never>;
2292
+ static ɵprov: i0.ɵɵInjectableDeclaration<UnrealEffects>;
2265
2293
  }
2266
2294
 
2267
- declare class LowBandwidthDetectorComponent implements OnInit {
2268
- private readonly store;
2269
- private readonly dialog;
2270
- private readonly destroyRef;
2271
- private readonly videoService;
2272
- readonly isDevMode: boolean;
2273
- private readonly viewportReady$;
2274
- private readonly isLowBandwidth$;
2275
- private readonly lowBandwidthTrigger$;
2276
- private readonly highBandwidthTrigger$;
2277
- private readonly viewPortDestroyedTrigger$;
2278
- private readonly aggregatedStats$;
2279
- private readonly nativeQuality$;
2280
- private readonly monitoringTrigger$;
2281
- private readonly reTrigger$;
2282
- private readonly canSwitchToLowBand$;
2283
- private readonly videoQuality$;
2284
- private readonly fps$;
2285
- private readonly bitrateDrop$;
2286
- readonly fps: i0.Signal<number>;
2287
- readonly nativeQuality: i0.Signal<Quality | undefined>;
2288
- readonly isLowBandwidth: i0.Signal<boolean | undefined>;
2289
- readonly aggregatedStats: i0.Signal<_3dsource_angular_unreal_module.InboundVideoStats | undefined>;
2290
- readonly isReducedQuality: i0.WritableSignal<boolean>;
2291
- readonly isIndicatorExpanded: i0.WritableSignal<boolean>;
2292
- readonly isIndicatorExpandedTrigger$: rxjs.Observable<false>;
2293
- ngOnInit(): void;
2294
- private trySetLowBandwidth;
2295
- toggleIndicator(value: boolean): void;
2296
- hideIndicatorAfterDelay(): void;
2297
- openLBMDialog(): void;
2298
- static ɵfac: i0.ɵɵFactoryDeclaration<LowBandwidthDetectorComponent, never>;
2299
- static ɵcmp: i0.ɵɵComponentDeclaration<LowBandwidthDetectorComponent, "app-low-bandwidth-detector", never, {}, {}, never, never, true, never>;
2300
- }
2295
+ declare const unrealFeature: {
2296
+ name: "unrealFeature";
2297
+ reducer: _ngrx_store.ActionReducer<_3dsource_angular_unreal_module.UnrealState, _ngrx_store.Action<string>>;
2298
+ selectUnrealFeatureState: _ngrx_store.MemoizedSelector<Record<string, any>, _3dsource_angular_unreal_module.UnrealState, (featureState: _3dsource_angular_unreal_module.UnrealState) => _3dsource_angular_unreal_module.UnrealState>;
2299
+ selectSsInfo: _ngrx_store.MemoizedSelector<Record<string, any>, string | null, (featureState: _3dsource_angular_unreal_module.UnrealState) => string | null>;
2300
+ selectFreezeFrame: _ngrx_store.MemoizedSelector<Record<string, any>, _3dsource_angular_unreal_module.FreezeFrameMessage, (featureState: _3dsource_angular_unreal_module.UnrealState) => _3dsource_angular_unreal_module.FreezeFrameMessage>;
2301
+ selectLowBandwidth: _ngrx_store.MemoizedSelector<Record<string, any>, boolean, (featureState: _3dsource_angular_unreal_module.UnrealState) => boolean>;
2302
+ selectIsVideoPlaying: _ngrx_store.MemoizedSelector<Record<string, any>, boolean, (featureState: _3dsource_angular_unreal_module.UnrealState) => boolean>;
2303
+ selectStatusMessage: _ngrx_store.MemoizedSelector<Record<string, any>, string | null, (featureState: _3dsource_angular_unreal_module.UnrealState) => string | null>;
2304
+ selectEnvironmentId: _ngrx_store.MemoizedSelector<Record<string, any>, string | null, (featureState: _3dsource_angular_unreal_module.UnrealState) => string | null>;
2305
+ selectStreamRequestContext: _ngrx_store.MemoizedSelector<Record<string, any>, _3dsource_angular_unreal_module.StreamRequestContext | null, (featureState: _3dsource_angular_unreal_module.UnrealState) => _3dsource_angular_unreal_module.StreamRequestContext | null>;
2306
+ selectSsData: _ngrx_store.MemoizedSelector<Record<string, any>, _3dsource_angular_unreal_module.SignalingData | null, (featureState: _3dsource_angular_unreal_module.UnrealState) => _3dsource_angular_unreal_module.SignalingData | null>;
2307
+ selectLowBandwidthStats: _ngrx_store.MemoizedSelector<Record<string, any>, _3dsource_angular_unreal_module.LBMStats | undefined, (featureState: _3dsource_angular_unreal_module.UnrealState) => _3dsource_angular_unreal_module.LBMStats | undefined>;
2308
+ selectStreamConfig: _ngrx_store.MemoizedSelector<Record<string, any>, _3dsource_angular_unreal_module.StreamConfig, (featureState: _3dsource_angular_unreal_module.UnrealState) => _3dsource_angular_unreal_module.StreamConfig>;
2309
+ selectAwsInstance: _ngrx_store.MemoizedSelector<Record<string, any>, _3dsource_angular_unreal_module.AwsInstance, (featureState: _3dsource_angular_unreal_module.UnrealState) => _3dsource_angular_unreal_module.AwsInstance>;
2310
+ selectWasInitialized: _ngrx_store.MemoizedSelector<Record<string, any>, boolean, (featureState: _3dsource_angular_unreal_module.UnrealState) => boolean>;
2311
+ selectIsFirstSuccessLoad: _ngrx_store.MemoizedSelector<Record<string, any>, boolean, (featureState: _3dsource_angular_unreal_module.UnrealState) => boolean>;
2312
+ selectIsAfkTimerVisible: _ngrx_store.MemoizedSelector<Record<string, any>, boolean, (featureState: _3dsource_angular_unreal_module.UnrealState) => boolean>;
2313
+ selectAfkCountdown: _ngrx_store.MemoizedSelector<Record<string, any>, number, (featureState: _3dsource_angular_unreal_module.UnrealState) => number>;
2314
+ selectCirrusConnected: _ngrx_store.MemoizedSelector<Record<string, any>, boolean, (featureState: _3dsource_angular_unreal_module.UnrealState) => boolean>;
2315
+ selectViewportReady: _ngrx_store.MemoizedSelector<Record<string, any>, boolean, (featureState: _3dsource_angular_unreal_module.UnrealState) => boolean>;
2316
+ selectFreezeFrameFromVideo: _ngrx_store.MemoizedSelector<Record<string, any>, _3dsource_angular_unreal_module.FreezeFrameMessage, (featureState: _3dsource_angular_unreal_module.UnrealState) => _3dsource_angular_unreal_module.FreezeFrameMessage>;
2317
+ selectStatusPercentSignallingServer: _ngrx_store.MemoizedSelector<Record<string, any>, number | null, (featureState: _3dsource_angular_unreal_module.UnrealState) => number | null>;
2318
+ selectErrorMessage: _ngrx_store.MemoizedSelector<Record<string, any>, _3dsource_angular_unreal_module.ConnectionError | null, (featureState: _3dsource_angular_unreal_module.UnrealState) => _3dsource_angular_unreal_module.ConnectionError | null>;
2319
+ selectIsReconnecting: _ngrx_store.MemoizedSelector<Record<string, any>, boolean, (featureState: _3dsource_angular_unreal_module.UnrealState) => boolean>;
2320
+ selectDataChannelConnected: _ngrx_store.MemoizedSelector<Record<string, any>, boolean, (featureState: _3dsource_angular_unreal_module.UnrealState) => boolean>;
2321
+ selectStreamResolution: _ngrx_store.MemoizedSelector<Record<string, any>, _3dsource_angular_unreal_module.StreamResolutionProps, (featureState: _3dsource_angular_unreal_module.UnrealState) => _3dsource_angular_unreal_module.StreamResolutionProps>;
2322
+ selectEstablishingConnection: _ngrx_store.MemoizedSelector<Record<string, any>, boolean, (featureState: _3dsource_angular_unreal_module.UnrealState) => boolean>;
2323
+ selectDisconnectReason: _ngrx_store.MemoizedSelector<Record<string, any>, _3dsource_angular_unreal_module.DisconnectReasonType, (featureState: _3dsource_angular_unreal_module.UnrealState) => _3dsource_angular_unreal_module.DisconnectReasonType>;
2324
+ selectMatchUrls: _ngrx_store.MemoizedSelector<Record<string, any>, string[], (featureState: _3dsource_angular_unreal_module.UnrealState) => string[]>;
2325
+ selectStreamClientCompanyId: _ngrx_store.MemoizedSelector<Record<string, any>, string | null, (featureState: _3dsource_angular_unreal_module.UnrealState) => string | null>;
2326
+ selectStreamViewId: _ngrx_store.MemoizedSelector<Record<string, any>, string | null, (featureState: _3dsource_angular_unreal_module.UnrealState) => string | null>;
2327
+ selectVideoIntroSrc: _ngrx_store.MemoizedSelector<Record<string, any>, string | null, (featureState: _3dsource_angular_unreal_module.UnrealState) => string | null>;
2328
+ selectImageIntroSrc: _ngrx_store.MemoizedSelector<Record<string, any>, string | null, (featureState: _3dsource_angular_unreal_module.UnrealState) => string | null>;
2329
+ selectImageLoadingSrc: _ngrx_store.MemoizedSelector<Record<string, any>, string, (featureState: _3dsource_angular_unreal_module.UnrealState) => string>;
2330
+ selectAnalyticsEvent: _ngrx_store.MemoizedSelector<Record<string, any>, {
2331
+ name: string;
2332
+ params: Record<string, unknown>;
2333
+ } | null, (featureState: _3dsource_angular_unreal_module.UnrealState) => {
2334
+ name: string;
2335
+ params: Record<string, unknown>;
2336
+ } | null>;
2337
+ };
2301
2338
 
2302
- declare class SafePipe implements PipeTransform {
2303
- private sanitizer;
2304
- transform(value: string, type: string): SafeHtml | SafeStyle | SafeScript | SafeUrl | SafeResourceUrl;
2305
- static ɵfac: i0.ɵɵFactoryDeclaration<SafePipe, never>;
2306
- static ɵpipe: i0.ɵɵPipeDeclaration<SafePipe, "safe", true>;
2339
+ interface UnrealState {
2340
+ lowBandwidthStats: LBMStats | undefined;
2341
+ streamConfig: StreamConfig;
2342
+ awsInstance: AwsInstance;
2343
+ lowBandwidth: boolean;
2344
+ wasInitialized: boolean;
2345
+ isFirstSuccessLoad: boolean;
2346
+ isAfkTimerVisible: boolean;
2347
+ afkCountdown: number;
2348
+ cirrusConnected: boolean;
2349
+ viewportReady: boolean;
2350
+ freezeFrameFromVideo: FreezeFrameMessage;
2351
+ freezeFrame: FreezeFrameMessage;
2352
+ statusMessage: string | null;
2353
+ /**
2354
+ * @deprecated, use ssData in future
2355
+ */
2356
+ ssInfo: string | null;
2357
+ ssData: SignalingData | null;
2358
+ statusPercentSignallingServer: number | null;
2359
+ errorMessage: ConnectionError | null;
2360
+ isReconnecting: boolean;
2361
+ dataChannelConnected: boolean;
2362
+ streamResolution: StreamResolutionProps;
2363
+ isVideoPlaying: boolean;
2364
+ establishingConnection: boolean;
2365
+ disconnectReason: DisconnectReasonType;
2366
+ matchUrls: string[];
2367
+ environmentId: string | null;
2368
+ streamClientCompanyId: string | null;
2369
+ streamViewId: string | null;
2370
+ videoIntroSrc: string | null;
2371
+ imageIntroSrc: string | null;
2372
+ imageLoadingSrc: string;
2373
+ streamRequestContext: StreamRequestContext | null;
2374
+ analyticsEvent: {
2375
+ name: string;
2376
+ params: Record<string, unknown>;
2377
+ } | null;
2307
2378
  }
2379
+ declare const unrealReducer: _ngrx_store.ActionReducer<UnrealState, _ngrx_store.Action<string>>;
2308
2380
 
2309
- declare function provideAngularUnrealModule(config?: {
2310
- playwright: boolean;
2311
- }): i0.EnvironmentProviders;
2381
+ declare const selectFreezeFrameDataUrlFromVideo: _ngrx_store.MemoizedSelector<Record<string, any>, string | null, (s1: _3dsource_angular_unreal_module.FreezeFrameMessage, s2: boolean) => string | null>;
2382
+ declare const selectFreezeFrameProgressMessageFromVideo: _ngrx_store.MemoizedSelector<Record<string, any>, number | null, (s1: _3dsource_angular_unreal_module.FreezeFrameMessage, s2: boolean) => number | null>;
2383
+ declare const selectFreezeFrameDataUrl: _ngrx_store.MemoizedSelector<Record<string, any>, string | null, (s1: _3dsource_angular_unreal_module.FreezeFrameMessage, s2: boolean) => string | null>;
2384
+ declare const selectIsFreezeFrameLoading: _ngrx_store.MemoizedSelector<Record<string, any>, boolean, (s1: _3dsource_angular_unreal_module.FreezeFrameMessage) => boolean>;
2385
+ declare const selectFreezeFrameCombinedDataUrl: _ngrx_store.MemoizedSelector<Record<string, any>, string | null, (s1: string | null, s2: string | null) => string | null>;
2386
+ declare const selectStreamConfig: _ngrx_store.MemoizedSelector<Record<string, any>, _3dsource_angular_unreal_module.StreamConfig, (s1: _3dsource_angular_unreal_module.StreamConfig) => _3dsource_angular_unreal_module.StreamConfig>;
2387
+ declare const selectWarnTimeout: _ngrx_store.MemoizedSelector<Record<string, any>, number, (s1: _3dsource_angular_unreal_module.StreamConfig) => number>;
2388
+ declare const selectIsExistMatchUrls: _ngrx_store.MemoizedSelector<Record<string, any>, boolean, (s1: string[]) => boolean>;
2389
+ declare const selectIsAutostart: _ngrx_store.MemoizedSelector<Record<string, any>, boolean, (s1: _3dsource_angular_unreal_module.StreamConfig) => boolean>;
2390
+ declare const selectIsShowPopupWithoutAutoStart: _ngrx_store.MemoizedSelector<Record<string, any>, boolean, (s1: _3dsource_angular_unreal_module.StreamConfig, s2: boolean) => boolean>;
2391
+ declare const selectShowReconnectPopup: _ngrx_store.MemoizedSelector<Record<string, any>, boolean, (s1: boolean, s2: boolean) => boolean>;
2392
+ declare const selectShowLoader: _ngrx_store.MemoizedSelector<Record<string, any>, boolean, (s1: boolean, s2: boolean) => boolean>;
2393
+ declare const selectIsVideoPlayingAndDataChannelConnected: _ngrx_store.MemoizedSelector<Record<string, any>, boolean, (s1: boolean, s2: boolean) => boolean>;
2394
+ declare const selectSignalingParameters: _ngrx_store.MemoizedSelector<Record<string, any>, string, (s1: _3dsource_angular_unreal_module.SignalingData | null, s2: _3dsource_angular_unreal_module.AwsInstance, s3: string | null) => string>;
2395
+ /**
2396
+ * Returns Scene load progress as a float value in between 0-1
2397
+ */
2398
+ declare const selectTotalProgress: _ngrx_store.MemoizedSelector<Record<string, any>, number, (s1: number | null, s2: number, s3: _3dsource_angular_unreal_module.AwsInstance, s4: boolean) => number>;
2399
+ declare const selectClientAndViewIds: _ngrx_store.MemoizedSelector<Record<string, any>, {
2400
+ clientId: string | null;
2401
+ viewId: string | null;
2402
+ }, (s1: string | null, s2: string | null) => {
2403
+ clientId: string | null;
2404
+ viewId: string | null;
2405
+ }>;
2406
+ declare const selectIsLoaderScreenVisible: _ngrx_store.MemoizedSelector<Record<string, any>, boolean, (s1: boolean, s2: boolean, s3: boolean) => boolean>;
2312
2407
 
2313
- export { AFKService, AfkPlaywrightService, AfkTimeoutModalComponent, AggregatorPlaywrightService, AggregatorService, AnalyticsService, AnswerHandler, CONSOLE_COMMAND_DISABLE_MESSAGES, CONSOLE_COMMAND_ENABLE_MESSAGES, CONSOLE_COMMAND_PIXEL_QUALITY, CommandTelemetryPlaywrightService, CommandTelemetryService, ConfigHandler, ConsoleExtensionsPlaywrightService, ConsoleExtensionsService, ControlScheme, DATA_CHANNEL_CONNECTION_TIMEOUT, DEBOUNCE_TO_MANY_RESIZE_CALLS, DEFAULT_AFK_TIMEOUT, DEFAULT_AFK_TIMEOUT_PERIOD, DEFAULT_RECONNECT_DELAY_MS, DEFAULT_RECONNECT_ENABLED, DEFAULT_RECONNECT_MAX_ATTEMPTS, DEFAULT_RECONNECT_ON_DATACHANNEL_CLOSE, DEFAULT_RECONNECT_ON_ICE_FAILURE, DataFlowMonitor, DevModeService, DisconnectReason, FULL_HD_HEIGHT, FULL_HD_WIDTH, FileHandlerService, FileReceiverPlaywrightService, FileReceiverService, FilterSettingsComponent, FpsMonitorService, FreezeFrameComponent, FreezeFramePlaywrightService, FreezeFrameService, IceCandidateHandler, ImageLoadingSrcComponent, InputOptions, InputPlaywrightService, InputService, InstanceReadyHandler, InstanceReservedHandler, IntroSrcComponent, KalmanFilter1D, LatencyTimings, LowBandwidthDetectorComponent, LowBandwidthModalComponent, MINIMAL_FPS, MessageType, MouseButton, MouseButtonsMask, OnCloseHandler, OnErrorHandler, OnMessageHandler, OnOpenHandler, OrchestrationMessageTypes, POLLING_TIME, PingHandler, PlayerCountHandler, RegionsPingService, SAME_SIZE_THRESHOLD, SCREEN_LOCKER_CONTAINER_ID, SIGNALLING_PERCENT_VALUE, SSInfoHandler, STREAMING_VIDEO_ID, SafePipe, SignallingPlaywrightService, SignallingService, SpecialKeyCodes, StatGraphComponent, StreamStatusTelemetryPlaywrightService, StreamStatusTelemetryService, SubService, ToClientMessage, UNREAL_CONFIG, UnrealCommunicatorPlaywrightService, UnrealCommunicatorService, UnrealEffects, UnrealInternalSignalEvents, UnrealSceneComponent, UnrealStatusMessage, VideoService, VideoStatsComponent, WSCloseCode_CIRRUS_ABNORMAL_CLOSURE, WSCloseCode_CIRRUS_MAX_PLAYERS_ERROR, WSCloseCode_CIRRUS_PLAYER_DISCONNECTED, WSCloseCode_CIRRUS_STREAMER_KIKED_PLAYER, WSCloseCode_FORCE_CIRRUS_CLOSE, WSCloseCode_NORMAL_AFK_TIMEOUT, WSCloseCode_NORMAL_CLOSURE, WSCloseCode_NORMAL_MANUAL_DISCONNECT, WSCloseCode_UNKNOWN, WSCloseCodes, WS_OPEN_STATE, WS_TIMEOUT, WebRtcPlayerService, WebrtcErrorModalComponent, abortEstablishingConnection, changeLowBandwidth, changeStatusMainVideoOnScene, changeStreamResolutionAction, changeStreamResolutionSuccessAction, commandCompleted, commandStarted, dataChannelConnected, dataChannelReady, decodeData, destroyRemoteConnections, destroyUnrealScene, disconnectStream, dispatchResize, dropConnection, floatToSmoothPercents, forceResizeViewport, fromResizeObserver, fromSignal, fromUnrealCallBackSignal, getActiveUrl, getImageFromVideoStream, getRtcErrorMessage, iceConnectionFailed, initSignalling, initialState, keepMaxUntilReset, observeCommandResponse, provideAngularUnrealModule, qpToQuality, reconnectPeer, reconnectPeerFailed, reconnectPeerSuccess, removeExileCommands, resetAfk, resetConfig, resetDataChannelForReconnect, resetIntroSrc, resetWarnTimeout, saveAnalyticsEvent, selectClientAndViewIds, selectCommandProgress, selectCommandsInProgress, selectFreezeFrameCombinedDataUrl, selectFreezeFrameDataUrl, selectFreezeFrameDataUrlFromVideo, selectFreezeFrameProgressMessageFromVideo, selectIsAutostart, selectIsExistMatchUrls, selectIsFreezeFrameLoading, selectIsLoaderScreenVisible, selectIsShowPopupWithoutAutoStart, selectIsVideoPlayingAndDataChannelConnected, selectLastCommandInProgress, selectLoaderCommands, selectShowLoader, selectShowReconnectPopup, selectSignalingParameters, selectStreamConfig, selectTotalProgress, selectWarnTimeout, sendSignal, setAfkTimerCountdown, setAfkTimerHide, setAfkTimerVisible, setAwsInstance, setCirrusConnected, setCirrusDisconnected, setConfig, setDataChannelConnected, setEstablishingConnection, setFreezeFrame, setFreezeFrameFromVideo, setIntroImageSrc, setIntroVideoSrc, setLoadingImageSrc, setLoopBackCommandIsCompleted, setMaxFps, setOrchestrationContext, setOrchestrationMessage, setOrchestrationParameters, setOrchestrationProgress, setSignalingName, setStatusMessage, setStatusPercentSignallingServer, setStreamClientCompanyId, setStreamViewId, setUnrealPlaywrightConfig, setViewportNotReady, setViewportReady, showUnrealErrorMessage, smoothTransition, startStream, trackMixpanelEvent, unrealFeature, unrealReducer, updateCirrusInfo, videoAdaptedToContainer, videoStreamInitialized };
2314
- export type { AggregatedStat, AnySignalingMessage, AwsInstance, CandidateMessage, CloseReason, CommandsLoaderState, ConfigMessage, ConnectionError, ControlSchemeValues, DataFlowCheckResult, DisconnectReasonType, ForceClientDisconnect, FreezeFrameMessage, InboundVideoStats, InputProps, InstanceReady, InstanceReserved, InterruptClientStream, LBMStats, ListStreamersMessage, MessageBase, MessageTypeValues, NormalizeAndQuantizeSignedValue, NormalizeAndQuantizeUnsignedValue, ObservedCallbackResponse, OrchestrationErrorMessage, OrchestrationMessageType, P2PEstablishedMessage, PingMessage, PlayerCountMessage, PollingOrchestrationMessage, Quality, ReceivedFile, ReconnectConfig, RequestStream, SSInfo, SignalDescriptor, SignalingData, SignalingMessageHandler, SignalingMessageMap, StreamConfig, StreamRequestContext, StreamResolutionProps, StreamerListMessage, TelemetryType, UnknownFields, UnquantizeAndDenormalizeUnsignedValue, UnrealCallBackJson, UnrealInitialConfig, UnrealState, WSCloseCodesValues, WrappedMetaBoxCommandPacket, streamPreparedForUserInteractionMessage };
2408
+ export { AFKService, AfkPlaywrightService, AfkTimeoutModalComponent, AggregatorPlaywrightService, AggregatorService, AnalyticsService, AnswerHandler, CONSOLE_COMMAND_DISABLE_MESSAGES, CONSOLE_COMMAND_ENABLE_MESSAGES, CONSOLE_COMMAND_PIXEL_QUALITY, CommandTelemetryPlaywrightService, CommandTelemetryService, CommandsEffects, ConfigHandler, ConsoleExtensionsPlaywrightService, ConsoleExtensionsService, ControlScheme, DATA_CHANNEL_CONNECTION_TIMEOUT, DEBOUNCE_TO_MANY_RESIZE_CALLS, DEFAULT_AFK_TIMEOUT, DEFAULT_AFK_TIMEOUT_PERIOD, DEFAULT_RECONNECT_DELAY_MS, DEFAULT_RECONNECT_ENABLED, DEFAULT_RECONNECT_MAX_ATTEMPTS, DEFAULT_RECONNECT_ON_DATACHANNEL_CLOSE, DEFAULT_RECONNECT_ON_ICE_FAILURE, DataFlowMonitor, DevModeService, DisconnectReason, FULL_HD_HEIGHT, FULL_HD_WIDTH, FileHandlerService, FileReceiverPlaywrightService, FileReceiverService, FilterSettingsComponent, FpsMonitorService, FreezeFrameComponent, FreezeFramePlaywrightService, FreezeFrameService, IceCandidateHandler, ImageLoadingSrcComponent, InputOptions, InputPlaywrightService, InputService, InstanceReadyHandler, InstanceReservedHandler, IntroSrcComponent, KalmanFilter1D, LatencyTimings, LowBandwidthDetectorComponent, LowBandwidthModalComponent, MINIMAL_FPS, MessageType, MouseButton, MouseButtonsMask, OnCloseHandler, OnErrorHandler, OnMessageHandler, OnOpenHandler, OrchestrationMessageTypes, POLLING_TIME, PingHandler, PlayerCountHandler, RegionsPingService, SAME_SIZE_THRESHOLD, SCREEN_LOCKER_CONTAINER_ID, SIGNALLING_PERCENT_VALUE, SSInfoHandler, STREAMING_VIDEO_ID, SafePipe, SignallingPlaywrightService, SignallingService, SpecialKeyCodes, StatGraphComponent, StreamStatusTelemetryPlaywrightService, StreamStatusTelemetryService, SubService, ToClientMessage, UNREAL_CONFIG, UnrealCallbackService, UnrealCommunicatorPlaywrightService, UnrealCommunicatorService, UnrealEffects, UnrealSceneComponent, UnrealStatusMessage, VideoService, VideoStatsComponent, WSCloseCode_CIRRUS_ABNORMAL_CLOSURE, WSCloseCode_CIRRUS_MAX_PLAYERS_ERROR, WSCloseCode_CIRRUS_PLAYER_DISCONNECTED, WSCloseCode_CIRRUS_STREAMER_KIKED_PLAYER, WSCloseCode_FORCE_CIRRUS_CLOSE, WSCloseCode_NORMAL_AFK_TIMEOUT, WSCloseCode_NORMAL_CLOSURE, WSCloseCode_NORMAL_MANUAL_DISCONNECT, WSCloseCode_UNKNOWN, WSCloseCodes, WS_OPEN_STATE, WS_TIMEOUT, WebRtcPlayerService, WebrtcErrorModalComponent, abortEstablishingConnection, changeLowBandwidth, changeStatusMainVideoOnScene, changeStreamResolutionAction, changeStreamResolutionSuccessAction, commandCompleted, commandStarted, commandsFeature, commandsReducer, dataChannelConnected, dataChannelReady, decodeData, destroyRemoteConnections, destroyUnrealScene, disconnectStream, dispatchResize, dropConnection, dropDC, dropPC, floatToSmoothPercents, forceResizeViewport, fromResizeObserver, getActiveUrl, getImageFromVideoStream, getRtcErrorMessage, iceConnectionFailed, initSignalling, keepMaxUntilReset, provideAngularUnrealModule, qpToQuality, reconnectPeer, reconnectPeerFailed, reconnectPeerSuccess, resetAfk, resetConfig, resetDataChannelForReconnect, resetIntroSrc, resetWarnTimeout, saveAnalyticsEvent, selectClientAndViewIds, selectCommandProgress, selectCommandsInProgress, selectFreezeFrameCombinedDataUrl, selectFreezeFrameDataUrl, selectFreezeFrameDataUrlFromVideo, selectFreezeFrameProgressMessageFromVideo, selectIsAutostart, selectIsExistMatchUrls, selectIsFreezeFrameLoading, selectIsLoaderScreenVisible, selectIsShowPopupWithoutAutoStart, selectIsVideoPlayingAndDataChannelConnected, selectLastCommandInProgress, selectShowLoader, selectShowReconnectPopup, selectSignalingParameters, selectStreamConfig, selectTotalProgress, selectWarnTimeout, setAfkTimerCountdown, setAfkTimerHide, setAfkTimerVisible, setAwsInstance, setCirrusConnected, setCirrusDisconnected, setConfig, setDataChannelConnected, setEstablishingConnection, setFreezeFrame, setFreezeFrameFromVideo, setIntroImageSrc, setIntroVideoSrc, setKalmanSettings, setLoadingImageSrc, setLoopBackCommandIsCompleted, setMaxFps, setOrchestrationContext, setOrchestrationMessage, setOrchestrationParameters, setOrchestrationProgress, setSignalingName, setStatusMessage, setStatusPercentSignallingServer, setStreamClientCompanyId, setStreamViewId, setUnrealPlaywrightConfig, setViewportNotReady, setViewportReady, showUnrealErrorMessage, smoothTransition, startStream, trackMixpanelEvent, unrealCommandCallback, unrealFeature, unrealReducer, updateCirrusInfo, videoAdaptedToContainer, videoStreamInitialized };
2409
+ export type { AggregatedStat, AnySignalingMessage, AwsInstance, CandidateMessage, CloseReason, ConfigMessage, ConnectionError, ControlSchemeValues, DataFlowCheckResult, DisconnectReasonType, ForceClientDisconnect, FreezeFrameMessage, InboundVideoStats, InputProps, InstanceReady, InstanceReserved, InterruptClientStream, LBMStats, ListStreamersMessage, MessageBase, MessageTypeValues, NormalizeAndQuantizeSignedValue, NormalizeAndQuantizeUnsignedValue, OrchestrationErrorMessage, OrchestrationMessageType, P2PEstablishedMessage, PingMessage, PlayerCountMessage, PollingOrchestrationMessage, Quality, ReceivedFile, ReconnectConfig, RequestStream, SSInfo, SignalingData, SignalingMessageHandler, SignalingMessageMap, StreamConfig, StreamRequestContext, StreamResolutionProps, StreamerListMessage, TelemetryType, UnknownFields, UnquantizeAndDenormalizeUnsignedValue, UnrealCallbackDescriptor, UnrealCallbackEventMap, UnrealCallbackJson, UnrealCallbackJsonWrapped, UnrealCommandsState, UnrealInitialConfig, UnrealState, WSCloseCodesValues, streamPreparedForUserInteractionMessage };