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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@3dsource/angular-unreal-module",
3
- "version": "0.0.113-dev.1",
3
+ "version": "0.0.113",
4
4
  "description": "Angular Unreal module for connect with unreal engine stream",
5
5
  "keywords": [
6
6
  "3dsource",
@@ -353,7 +353,7 @@ declare const WS_TIMEOUT = 2000;
353
353
  declare const POLLING_TIME = 4000;
354
354
  declare const WS_OPEN_STATE = 1;
355
355
  declare const DEFAULT_AFK_TIMEOUT_PERIOD = 15;
356
- declare const DEFAULT_AFK_TIMEOUT = 10;
356
+ declare const DEFAULT_AFK_TIMEOUT = 120;
357
357
  declare const DATA_CHANNEL_CONNECTION_TIMEOUT = 8000;
358
358
  declare const SIGNALLING_PERCENT_VALUE = 56;
359
359
  declare const SCREEN_LOCKER_CONTAINER_ID = "3dsource_start_screen";
@@ -606,14 +606,12 @@ declare class AFKService extends SubService {
606
606
  private countdown;
607
607
  private countdownTimer;
608
608
  private readonly warnTimeout;
609
+ private readonly isAfkTimerVisible;
609
610
  private readonly isViewportReady;
610
611
  private readonly unrealConfig;
611
612
  /** Ticks every time warnTimeout changes or resetAfk action fires */
612
613
  private readonly afkResetTrigger;
613
- /** Ticks when cirrus disconnects */
614
614
  private readonly disconnected;
615
- /** Ticks when resetUserInactivityTimeout action fires */
616
- private readonly resetUserInactivityTrigger;
617
615
  constructor();
618
616
  private hideOverlay;
619
617
  /**
@@ -772,6 +770,10 @@ declare class ConsoleExtensionsService extends SubService {
772
770
 
773
771
  declare class DevModeService {
774
772
  get isDevMode(): boolean;
773
+ /**
774
+ * Called from the browser console to toggle dev mode at runtime.
775
+ * @preserve
776
+ */
775
777
  setDevMode(value: boolean): void;
776
778
  static ɵfac: i0.ɵɵFactoryDeclaration<DevModeService, never>;
777
779
  static ɵprov: i0.ɵɵInjectableDeclaration<DevModeService>;
@@ -1093,7 +1095,7 @@ declare class StreamStatusTelemetryService2 {
1093
1095
  /**
1094
1096
  * Whether a session has already started during the current page lifetime.
1095
1097
  * Used to distinguish a fresh page load (bootstrap measurement is
1096
- * meaningful) from a Resume/restart (the document is already loaded,
1098
+ * meaningful) from a Résumé/restart (the document is already loaded,
1097
1099
  * so "bootstrap" is a no-op). Only the first session gets the bootstrap
1098
1100
  * phase anchored at navigation start (perf.now() === 0).
1099
1101
  */
@@ -1102,7 +1104,7 @@ declare class StreamStatusTelemetryService2 {
1102
1104
  * Rolling snapshot of the currently selected WebRTC ICE candidate pair
1103
1105
  * (local/remote type + url). Scanned over `videoStats$` so the stream
1104
1106
  * *keeps* the first non-null pair even if later stats emit null — WebRTC
1105
- * doesn't un-select a pair mid-session, but the source is nullable. The
1107
+ * doesn't unselect a pair mid-session, but the source is nullable. The
1106
1108
  * `startWith(null)` seed makes `withLatestFrom` on this stream safe even
1107
1109
  * before the first video stat arrives (common at data-channel-open).
1108
1110
  */
@@ -1111,7 +1113,7 @@ declare class StreamStatusTelemetryService2 {
1111
1113
  * Correlation-matched Observable: emits once when the first `loopBack`
1112
1114
  * command's corresponding `command completed` action fires. Built from
1113
1115
  * the two related actions — the command-started captures the correlation
1114
- * id, the command-completed with that id emits.
1116
+ * id; the command-completed with that id emits.
1115
1117
  */
1116
1118
  private readonly loopbackReceived$;
1117
1119
  private readonly pollingStartedEntry;
@@ -1122,7 +1124,7 @@ declare class StreamStatusTelemetryService2 {
1122
1124
  /**
1123
1125
  * Unified phase catalog — the single source of truth for everything
1124
1126
  * this service tracks after `session_started`. Each entry is a phase;
1125
- * its `milestones` array is ordered chronologically and the *last*
1127
+ * its `milestones` array is ordered chronologically, and the *last*
1126
1128
  * entry is the phase closer. When that closer's observable fires, the
1127
1129
  * service emits one generic `stream.phase_ended` wire event with every
1128
1130
  * display field the viewer needs.
@@ -1148,7 +1150,7 @@ declare class StreamStatusTelemetryService2 {
1148
1150
  * Emit the unified `stream.phase_ended` wire event for a closer. Packs
1149
1151
  * every display field the viewer consumes — phaseNo (derived from the
1150
1152
  * catalog index), label, color, milestones, params, overlays. Boundary
1151
- * labels aren't on the wire — the viewer derives them from neighbour
1153
+ * labels aren't on the wire — the viewer derives them from neighbor
1152
1154
  * phases' `label` fields.
1153
1155
  */
1154
1156
  private emitPhaseEnded;
@@ -1227,6 +1229,7 @@ declare class UnrealCommunicatorService {
1227
1229
  }
1228
1230
 
1229
1231
  declare class VideoService extends SubService {
1232
+ private readonly isVideoPlaying;
1230
1233
  video: HTMLVideoElement | null;
1231
1234
  audio: HTMLAudioElement | null;
1232
1235
  private container;
@@ -1251,6 +1254,7 @@ declare class VideoService extends SubService {
1251
1254
  private generateAggregatedStatsFunction;
1252
1255
  private onAggregatedStats;
1253
1256
  private destroy;
1257
+ private changeStatusMainVideoOnScene;
1254
1258
  private createWebRtcVideo;
1255
1259
  private createWebRtcAudio;
1256
1260
  private playAudio;
@@ -1443,7 +1447,7 @@ declare class AnalyticsService extends SubService {
1443
1447
  * ## How it works
1444
1448
  *
1445
1449
  * The service subscribes to `VideoService.videoStats$` (emitted every 250 ms)
1446
- * and collects samples of FPS, bitrate, and QP (Quantisation Parameter).
1450
+ * and collects samples of FPS, bitrate, and QP (Quantization Parameter).
1447
1451
  * Every {@link SAMPLE_WINDOW} ticks (~2 s) it averages the collected samples
1448
1452
  * and feeds them into a set of **fuzzy-logic membership functions** that
1449
1453
  * classify each metric into overlapping quality bands.
@@ -1452,28 +1456,28 @@ declare class AnalyticsService extends SubService {
1452
1456
  *
1453
1457
  * **1. FPS ratio** = `actualFPS / currentTargetFPS` (0..1+)
1454
1458
  *
1455
- * | Band | Range | Meaning |
1459
+ * | Band | Range | Meaning |
1456
1460
  * |--------|---------------------|-----------------------------------------------|
1457
- * | low | ratio < 0.7 → 1.0, linear ramp 0.7..0.9 → 0 | Stream cannot keep up with the target |
1458
- * | ok | triangle 0.8..1.0, peak at 0.95 | Stream roughly matches the target |
1459
- * | high | ratio 0.9..1.0 → ramp, >1.0 → 1.0 | Stream meets or exceeds the target |
1461
+ * | low | ratio < 0.7 → 1.0, linear ramp 0.7..0.9 → 0 | Stream cannot keep up with the target |
1462
+ * | okays | triangle 0.8..1.0, peak at 0.95 | Stream roughly matches the target |
1463
+ * | high | ratio 0.9..1.0 → ramp, >1.0 → 1.0 | Stream meets or exceeds the target |
1460
1464
  *
1461
1465
  * **2. Bitrate load** = `currentBitrate / MAX_BITRATE` (0..1+)
1462
1466
  *
1463
1467
  * `MAX_BITRATE` = 20 Mbit/s — the reference ceiling for the encoder.
1464
1468
  *
1465
- * | Band | Range | Meaning |
1469
+ * | Band | Range | Meaning |
1466
1470
  * |--------|-------------------------------------------------|-----------------------------------------------|
1467
- * | high | load 0.5..0.8 → ramp, >0.8 → 1.0 | Encoder is using most of the available bandwidth |
1468
- * | not high | load < 0.5 → 0.0 | Bandwidth headroom is available |
1471
+ * | high | load 0.5..0.8 → ramp, >0.8 → 1.0 | Encoder is using most of the available bandwidth |
1472
+ * | not high | load < 0.5 → 0.0 | Bandwidth headroom is available |
1469
1473
  *
1470
1474
  * **3. Quality** — mapped from QP via `mapQpToQuality()` (see {@link Quality}):
1471
1475
  *
1472
- * | Quality | QP range | Meaning |
1476
+ * | Quality | QP range | Meaning |
1473
1477
  * |----------|-----------|-------------------------------------------------|
1474
- * | `lime` | QP <= 26 | Good — encoder has enough headroom |
1475
- * | `orange` | QP 27..35 | Fair — encoder is under moderate pressure |
1476
- * | `red` | QP > 35 | Poor — heavy compression, visible artefacts |
1478
+ * | `lime` | QP <= 26 | Good — encoder has enough headroom |
1479
+ * | `orange` | QP 27..35 | Fair — encoder is under moderate pressure |
1480
+ * | `red` | QP > 35 | Poor — heavy compression, visible artifacts |
1477
1481
  *
1478
1482
  * ### Decision rules (evaluated in priority order, first match wins)
1479
1483
  *
@@ -1487,17 +1491,17 @@ declare class AnalyticsService extends SubService {
1487
1491
  *
1488
1492
  * ## Cooldown-based throttling
1489
1493
  *
1490
- * The service continuously evaluates fuzzy rules every sample window.
1494
+ * The service continuously evaluates fuzzy rules in every sample window.
1491
1495
  * After each FPS step change it enforces a cooldown before the next
1492
1496
  * change can be applied. The cooldown duration depends on the
1493
1497
  * (previous decision → next decision) pair:
1494
1498
  *
1495
- * | Previous | Next | Cooldown |
1499
+ * | Previous | Next | Cooldown |
1496
1500
  * |-----------|-----------|-----------------------------------------------------|
1497
- * | decrease | decrease | {@link COOLDOWN_DECREASE_AFTER_DECREASE_MS} (2 s) |
1498
- * | decrease | increase | {@link COOLDOWN_INCREASE_AFTER_DECREASE_MS} (10 s) |
1499
- * | increase | decrease | {@link COOLDOWN_AFTER_INCREASE_MS} (2 s) |
1500
- * | increase | increase | {@link COOLDOWN_AFTER_INCREASE_MS} (2 s) |
1501
+ * | decrease | decrease | {@link COOLDOWN_DECREASE_AFTER_DECREASE_MS} (2 s) |
1502
+ * | decrease | increase | {@link COOLDOWN_INCREASE_AFTER_DECREASE_MS} (10 s) |
1503
+ * | increase | decrease | {@link COOLDOWN_AFTER_INCREASE_MS} (2 s) |
1504
+ * | increase | increase | {@link COOLDOWN_AFTER_INCREASE_MS} (2 s) |
1501
1505
  *
1502
1506
  * This means the system reacts quickly after an increase (2 s in any
1503
1507
  * direction) but is cautious about stepping back up after a decrease
@@ -1513,7 +1517,7 @@ declare class FpsMonitorService {
1513
1517
  private videoService;
1514
1518
  private store;
1515
1519
  private readonly unrealConfig;
1516
- /** Discrete FPS targets the controller can switch between (ascending order). Last 0 is unlimited framerate indicator*/
1520
+ /** Discrete FPS targets the controller can switch between (ascending order). Last 0 is an unlimited framerate indicator*/
1517
1521
  private readonly FPS_STEPS;
1518
1522
  /**
1519
1523
  * Reference FPS used to compute the FPS ratio when `currentFpsTarget` is 0
@@ -1534,7 +1538,7 @@ declare class FpsMonitorService {
1534
1538
  private readonly COOLDOWN_DECREASE_AFTER_DECREASE_MS;
1535
1539
  /**
1536
1540
  * Cooldown (ms) for an increase following a previous decrease.
1537
- * The stream needs more time to stabilise before stepping back up.
1541
+ * The stream needs more time to stabilize before stepping back up.
1538
1542
  */
1539
1543
  private readonly COOLDOWN_INCREASE_AFTER_DECREASE_MS;
1540
1544
  /**
@@ -1567,52 +1571,52 @@ declare class FpsMonitorService {
1567
1571
  * Rules are evaluated in priority order — first match wins.
1568
1572
  *
1569
1573
  * Inputs:
1570
- * - `fpsRatio` = avgFPS / currentTargetFPS (e.g. 45/60 = 0.75)
1571
- * - `bitrateLoad` = avgBitrate / 20 Mbit/s (e.g. 12M/20M = 0.6)
1572
- * - `quality` = mapQpToQuality(avgQP) → 'lime' | 'orange' | 'red'
1574
+ * - `fpsRatio` = avgFPS / currentTargetFPS (e.g., 45/60 = 0.75)
1575
+ * - `bitrateLoad` = avgBitrate / 20 Mbit/s (e.g., 12M/20M = 0.6)
1576
+ * - `quality` = mapQpToQuality(avgQP) → 'lime' | 'orange' | 'red'
1573
1577
  */
1574
1578
  private evaluateDecision;
1575
1579
  /**
1576
1580
  * FPS ratio membership "low".
1577
- * Input: ratio = actualFPS / targetFPS (e.g. 42/60 = 0.70).
1581
+ * Input: a ratio = actualFPS / targetFPS (e.g., 42/60 = 0.70).
1578
1582
  *
1579
- * ratio < 0.7 → 1.0 (clearly failing, e.g. 40/60)
1580
- * ratio 0.7..0.9 → linear ramp down (e.g. 0.8 → 0.5)
1581
- * ratio > 0.9 → 0.0 (keeping up)
1583
+ * ratio < 0.7 → 1.0 (clearly failing, e.g., 40/60)
1584
+ * ratio 0.7..0.9 → linear ramp down (e.g., 0.8 → 0.5)
1585
+ * a ratio > 0.9 → 0.0 (keeping up)
1582
1586
  */
1583
1587
  private membershipFpsLow;
1584
1588
  /**
1585
1589
  * FPS ratio membership "ok" — triangle shape.
1586
1590
  * Input: ratio = actualFPS / targetFPS.
1587
1591
  *
1588
- * ratio < 0.8 → 0.0
1589
- * ratio 0.8..0.95 → ramp up, peak at 0.95 (e.g. 57/60)
1592
+ * ratio < 0.8 → 0.0
1593
+ * ratio 0.8..0.95 → ramp up, peak at 0.95 (e.g., 57/60)
1590
1594
  * ratio 0.95..1.0 → ramp down
1591
- * ratio > 1.0 → 0.0
1595
+ * a ratio > 1.0 → 0.0
1592
1596
  */
1593
1597
  private membershipFpsOk;
1594
1598
  /**
1595
1599
  * FPS ratio membership "high".
1596
1600
  * Input: ratio = actualFPS / targetFPS.
1597
1601
  *
1598
- * ratio < 0.9 → 0.0
1599
- * ratio 0.9..1.0 → linear ramp up (e.g. 0.95 → 0.5)
1600
- * ratio >= 1.0 → 1.0 (meeting or exceeding target, e.g. 60/60)
1602
+ * ratio < 0.9 → 0.0
1603
+ * ratio 0.9..1.0 → linear ramp up (e.g., 0.95 → 0.5)
1604
+ * a ratio >= 1.0 → 1.0 (meeting or exceeding target, e.g., 60/60)
1601
1605
  */
1602
1606
  private membershipFpsHigh;
1603
1607
  /**
1604
1608
  * Bitrate load membership "high".
1605
- * Input: load = currentBitrate / MAX_BITRATE (20 Mbit/s).
1609
+ * Input: a load = currentBitrate / MAX_BITRATE (20 Mbit/s).
1606
1610
  *
1607
- * load < 0.5 → 0.0 (below 10 Mbit/s — plenty of headroom)
1608
- * load 0.5..0.8 → linear ramp (e.g. 13M/20M = 0.65 → 0.5)
1609
- * load > 0.8 → 1.0 (above 16 Mbit/s — near capacity)
1611
+ * load < 0.5 → 0.0 (below 10 Mbit/s — plenty of headroom)
1612
+ * load 0.5..0.8 → linear ramp (e.g., 13M/20M = 0.65 → 0.5)
1613
+ * load > 0.8 → 1.0 (above 16 Mbit/s — near capacity)
1610
1614
  */
1611
1615
  private membershipBitrateHigh;
1612
1616
  private upgradeFps;
1613
1617
  /**
1614
- * Get the next FPS target based on current target and decision.
1615
- * Clamps to valid FPS_STEPS range.
1618
+ * Get the next FPS target based on the current target and decision.
1619
+ * Clamps to the valid FPS_STEPS range.
1616
1620
  */
1617
1621
  private getNextFpsTarget;
1618
1622
  /**
@@ -2148,11 +2152,6 @@ interface UnrealCommandsState {
2148
2152
  }
2149
2153
  declare const commandsReducer: _ngrx_store.ActionReducer<UnrealCommandsState, _ngrx_store.Action<string>>;
2150
2154
 
2151
- declare const selectCommandsInProgress: _ngrx_store.MemoizedSelector<Record<string, any>, number, (s1: {
2152
- timeStamp: number;
2153
- command: string;
2154
- id: string;
2155
- }[]) => number>;
2156
2155
  declare const selectCommandProgress: _ngrx_store.MemoizedSelector<Record<string, any>, number, (s1: number, s2: number) => number>;
2157
2156
 
2158
2157
  declare const trackMixpanelEvent: _ngrx_store.ActionCreator<string, (props: {
@@ -2315,9 +2314,9 @@ declare const instanceReady: _ngrx_store.ActionCreator<string, () => _ngrx_store
2315
2314
  declare const regionPingFetchStart: _ngrx_store.ActionCreator<string, () => _ngrx_store.Action<string>>;
2316
2315
  /**
2317
2316
  * Dispatched once `RegionsPingService.getProviders()` returns the region
2318
- * list — i.e. the fetch step is done and the actual per-region ping
2317
+ * list — i.e., the fetch step is done and the actual per-region ping
2319
2318
  * sweep is about to start. Splits the region-discovery waterfall into
2320
- * two legs: config fetch vs ping sweep. Observability-only.
2319
+ * two legs: config fetch vs. ping sweep. Observability-only.
2321
2320
  */
2322
2321
  declare const regionPingFetchEnd: _ngrx_store.ActionCreator<string, () => _ngrx_store.Action<string>>;
2323
2322
  /**
@@ -2335,9 +2334,9 @@ declare const regionResolved: _ngrx_store.ActionCreator<string, (props: {
2335
2334
  pingsMs: number[];
2336
2335
  } & _ngrx_store.Action<string>>;
2337
2336
  /**
2338
- * Dispatched around the HTTP polling roundtrip inside `getAwsInstance`
2337
+ * Dispatched around the HTTP polling roundup inside `getAwsInstance`
2339
2338
  * (old orchestration flow). Only fires when polling is actually used
2340
- * (i.e. signaling URL is not a direct `ws://` / `wss://` endpoint).
2339
+ * (i.e., signaling URL is not a direct `ws://` / `wss://` endpoint).
2341
2340
  * Observability-only — no state change.
2342
2341
  */
2343
2342
  declare const pollingStarted: _ngrx_store.ActionCreator<string, () => _ngrx_store.Action<string>>;
@@ -2480,13 +2479,9 @@ declare class UnrealEffects {
2480
2479
  private dataChannelConnectionTimeout;
2481
2480
  private connectionCompleted$;
2482
2481
  private reconnectConfig;
2483
- disconnectReasonHandling$: rxjs.Observable<{
2484
- reason: _3dsource_angular_unreal_module.DisconnectReasonType;
2485
- } & _ngrx_store.Action<string>> & _ngrx_effects.CreateEffectMetadata;
2486
2482
  destroyConnections$: rxjs.Observable<{
2487
2483
  reason: _3dsource_angular_unreal_module.DisconnectReasonType;
2488
2484
  } & _ngrx_store.Action<string>> & _ngrx_effects.CreateEffectMetadata;
2489
- destroyRemoteConnections$: rxjs.Observable<_ngrx_store.Action<string>> & _ngrx_effects.CreateEffectMetadata;
2490
2485
  changeStreamResolution$: rxjs.Observable<{
2491
2486
  width: number | null;
2492
2487
  height: number | null;
@@ -2504,21 +2499,6 @@ declare class UnrealEffects {
2504
2499
  reason: _3dsource_angular_unreal_module.DisconnectReasonType;
2505
2500
  message: string;
2506
2501
  } & _ngrx_store.Action<string>> & _ngrx_effects.CreateEffectMetadata;
2507
- resetCirrusOnDestroy$: rxjs.Observable<_ngrx_store.Action<string>> & _ngrx_effects.CreateEffectMetadata;
2508
- destroyConnectionAndRestart$: rxjs.Observable<{
2509
- resetDisconnectionReason: any;
2510
- } & _ngrx_store.Action<string>> & _ngrx_effects.CreateEffectMetadata;
2511
- showUnrealError$: rxjs.Observable<{
2512
- code: number | null;
2513
- error?: string;
2514
- } & _ngrx_store.Action<string>> & _ngrx_effects.CreateEffectMetadata;
2515
- unrealReceiverReady$: rxjs.Observable<_ngrx_store.Action<string>> & _ngrx_effects.CreateEffectMetadata;
2516
- initAppByDataChannelReady$: rxjs.Observable<_ngrx_store.Action<string>> & _ngrx_effects.CreateEffectMetadata;
2517
- setViewportReadyBySetLoopBackCommandIsCompleted$: rxjs.Observable<_ngrx_store.Action<string>> & _ngrx_effects.CreateEffectMetadata;
2518
- startStream$: rxjs.Observable<{
2519
- resetDisconnectionReason: any;
2520
- } & _ngrx_store.Action<string>> & _ngrx_effects.CreateEffectMetadata;
2521
- resetAfkOnVideoStart$: rxjs.Observable<_ngrx_store.Action<string>> & _ngrx_effects.CreateEffectMetadata;
2522
2502
  /**
2523
2503
  * Effect: `forceViewportNotReady$`
2524
2504
  *
@@ -2535,6 +2515,22 @@ declare class UnrealEffects {
2535
2515
  * a visible flicker (video flashing to black).
2536
2516
  */
2537
2517
  forceViewportNotReady$: rxjs.Observable<_ngrx_store.Action<string>> & _ngrx_effects.CreateEffectMetadata;
2518
+ resetCirrusOnDestroy$: rxjs.Observable<_ngrx_store.Action<string>> & _ngrx_effects.CreateEffectMetadata;
2519
+ destroyRemoteConnections$: rxjs.Observable<_ngrx_store.Action<string>> & _ngrx_effects.CreateEffectMetadata;
2520
+ destroyConnectionAndRestart$: rxjs.Observable<{
2521
+ resetDisconnectionReason: any;
2522
+ } & _ngrx_store.Action<string>> & _ngrx_effects.CreateEffectMetadata;
2523
+ showUnrealError$: rxjs.Observable<{
2524
+ code: number | null;
2525
+ error?: string;
2526
+ } & _ngrx_store.Action<string>> & _ngrx_effects.CreateEffectMetadata;
2527
+ unrealReceiverReady$: rxjs.Observable<_ngrx_store.Action<string>> & _ngrx_effects.CreateEffectMetadata;
2528
+ initAppByDataChannelReady$: rxjs.Observable<_ngrx_store.Action<string>> & _ngrx_effects.CreateEffectMetadata;
2529
+ setViewportReadyBySetLoopBackCommandIsCompleted$: rxjs.Observable<_ngrx_store.Action<string>> & _ngrx_effects.CreateEffectMetadata;
2530
+ startStream$: rxjs.Observable<{
2531
+ resetDisconnectionReason: any;
2532
+ } & _ngrx_store.Action<string>> & _ngrx_effects.CreateEffectMetadata;
2533
+ resetAfkOnVideoStart$: rxjs.Observable<_ngrx_store.Action<string>> & _ngrx_effects.CreateEffectMetadata;
2538
2534
  /**
2539
2535
  * Effect: `handleDataChannelClosed$`
2540
2536
  *
@@ -2542,11 +2538,15 @@ declare class UnrealEffects {
2542
2538
  * Only triggers if reconnection is enabled, onDataChannelClose is true,
2543
2539
  * and the signaling WebSocket is still connected.
2544
2540
  */
2541
+ disconnectReasonHandling$: rxjs.Observable<{
2542
+ reason: _3dsource_angular_unreal_module.DisconnectReasonType;
2543
+ } & _ngrx_store.Action<string>> & _ngrx_effects.CreateEffectMetadata;
2545
2544
  handleDataChannelClosed$: rxjs.Observable<{
2546
2545
  attempt: number;
2547
2546
  maxAttempts: number;
2548
2547
  delay?: number;
2549
2548
  } & _ngrx_store.Action<string>> & _ngrx_effects.CreateEffectMetadata;
2549
+ webrtcErrorModalComponent$: rxjs.Observable<false> & _ngrx_effects.CreateEffectMetadata;
2550
2550
  /**
2551
2551
  * Effect: `resetStateForPeerReconnect$`
2552
2552
  *
@@ -2579,7 +2579,6 @@ declare class UnrealEffects {
2579
2579
  setMaxFps$: rxjs.Observable<{
2580
2580
  maxFps: number;
2581
2581
  } & _ngrx_store.Action<string>> & _ngrx_effects.CreateEffectMetadata;
2582
- webrtcErrorModalComponent$: rxjs.Observable<false> & _ngrx_effects.CreateEffectMetadata;
2583
2582
  sendStatisticsToUnreal$: rxjs.Observable<Object> & _ngrx_effects.CreateEffectMetadata;
2584
2583
  connectToSignaling$: rxjs.Observable<WebSocket> & _ngrx_effects.CreateEffectMetadata;
2585
2584
  private canPeerReconnect;
@@ -2682,7 +2681,6 @@ declare const selectIsExistMatchUrls: _ngrx_store.MemoizedSelector<Record<string
2682
2681
  declare const selectIsAutostart: _ngrx_store.MemoizedSelector<Record<string, any>, boolean, (s1: _3dsource_angular_unreal_module.StreamConfig) => boolean>;
2683
2682
  declare const selectShowReconnectPopup: _ngrx_store.MemoizedSelector<Record<string, any>, boolean, (s1: boolean, s2: boolean) => boolean>;
2684
2683
  declare const selectShowLoader: _ngrx_store.MemoizedSelector<Record<string, any>, boolean, (s1: boolean, s2: boolean) => boolean>;
2685
- declare const selectIsVideoPlayingAndDataChannelConnected: _ngrx_store.MemoizedSelector<Record<string, any>, boolean, (s1: boolean, s2: boolean) => boolean>;
2686
2684
  declare const selectSignalingParameters: _ngrx_store.MemoizedSelector<Record<string, any>, string, (s1: _3dsource_angular_unreal_module.SignalingData | null, s2: _3dsource_angular_unreal_module.AwsInstance) => string>;
2687
2685
  declare const selectClientAndViewIds: _ngrx_store.MemoizedSelector<Record<string, any>, {
2688
2686
  clientId: string | null;
@@ -2707,5 +2705,5 @@ declare const selectCirrusConnectionId: _ngrx_store.MemoizedSelector<Record<stri
2707
2705
  */
2708
2706
  declare const selectTotalProgress: _ngrx_store.MemoizedSelector<Record<string, any>, number, (s1: number | null, s2: number, s3: _3dsource_angular_unreal_module.AwsInstance, s4: boolean) => number>;
2709
2707
 
2710
- export { AFKService, AfkTimeoutModalComponent, AggregatorService, AnalyticsService, AnswerHandler, CONSOLE_COMMAND_DISABLE_MESSAGES, CONSOLE_COMMAND_ENABLE_MESSAGES, CONSOLE_COMMAND_PIXEL_QUALITY, CommandTelemetryService, CommandsEffects, ConfigHandler, 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, DESTROY_DISCONNECT_REASONS, DataFlowMonitor, DevModeService, DisconnectReason, FULL_HD_HEIGHT, FULL_HD_WIDTH, FileHandlerService, FileReceiverService, FilterSettingsComponent, FpsMonitorService, FreezeFrameComponent, FreezeFrameService, IceCandidateHandler, ImageLoadingSrcComponent, InputOptions, InputService, InstanceReadyHandler, InstanceReservedHandler, IntroSrcComponent, KalmanFilter1D, LatencyTimings, LoadingProgressService, LowBandwidthDetectorComponent, LowBandwidthModalComponent, MINIMAL_FPS, MIN_CONTAINER_SIZE, 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_AUDIO_ID, STREAMING_VIDEO_ID, SafePipe, SignallingService, SpecialKeyCodes, StatGraphComponent, StreamStatusTelemetryService, StreamStatusTelemetryService2, SubService, ToClientMessage, UNREAL_CONFIG, UnrealCallbackService, 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, answerSent, changeStatusMainVideoOnScene, changeStreamResolutionAction, changeStreamResolutionSuccessAction, commandCompleted, commandStarted, commandsFeature, commandsReducer, dataChannelConnected, dataChannelReady, decodeData, destroyRemoteConnections, destroyUnrealScene, disconnectStream, dispatchResize, dropConnection, dropDC, dropPC, floatToSmoothPercents, forceResizeViewport, fromResizeObserver, getActiveUrl, getImageFromVideoStream, getResizeStudioValues, getResizeValuesUniversal, getRtcErrorMessage, iceConnectionFailed, initSignalling, instanceReady, keepMaxUntilReset, makeEven, pollingEnded, pollingStarted, provideUnrealModule, qpToQuality, reconnectPeer, reconnectPeerFailed, reconnectPeerSuccess, regionPingFetchEnd, regionPingFetchStart, regionResolved, resetAfk, resetConfig, resetDataChannelForReconnect, resetIntroSrc, resetUserInactivityTimeout, resetWarnTimeout, saveAnalyticsEvent, selectCirrusConnectionId, selectClientAndViewIds, selectCommandProgress, selectCommandsInProgress, selectFreezeFrameCombinedDataUrl, selectFreezeFrameDataUrl, selectFreezeFrameDataUrlFromVideo, selectFreezeFrameProgressMessageFromVideo, selectIsAutostart, selectIsExistMatchUrls, selectIsFreezeFrameLoading, selectIsFullyConnected, selectIsLoaderScreenVisible, selectIsVideoPlayingAndDataChannelConnected, selectShowLoader, selectShowReconnectPopup, selectSignalingParameters, selectStreamConfig, selectTotalProgress, selectWarnTimeout, setAfkTimerCountdown, setAfkTimerHide, setAfkTimerVisible, setAwsInstance, setCirrusConnected, setCirrusDisconnected, setConfig, setEstablishingConnection, setFreezeFrame, setFreezeFrameFromVideo, setIntroImageSrc, setIntroVideoSrc, setLoadingImageSrc, setLoopBackCommandIsCompleted, setMaxFps, setOrchestrationContext, setOrchestrationMessage, setOrchestrationParameters, setOrchestrationProgress, setSignalingName, setStatusMessage, setStatusPercentSignallingServer, setStreamClientCompanyId, setStreamViewId, setUnrealPlaywrightConfig, setUserInactivityTimeout, setViewportNotReady, setViewportReady, showLoadingProgress, showResumeStreamPopup, showUnrealErrorMessage, showUserInactivityTimeoutPopup, smoothTransition, startStream, trackMixpanelEvent, trackTelemetryData, unrealCommandCallback, unrealFeature, unrealReducer, updateCirrusInfo, videoAdaptedToContainer, videoStreamInitialized };
2708
+ export { AFKService, AfkTimeoutModalComponent, AggregatorService, AnalyticsService, AnswerHandler, CONSOLE_COMMAND_DISABLE_MESSAGES, CONSOLE_COMMAND_ENABLE_MESSAGES, CONSOLE_COMMAND_PIXEL_QUALITY, CommandTelemetryService, CommandsEffects, ConfigHandler, 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, DESTROY_DISCONNECT_REASONS, DataFlowMonitor, DevModeService, DisconnectReason, FULL_HD_HEIGHT, FULL_HD_WIDTH, FileHandlerService, FileReceiverService, FilterSettingsComponent, FpsMonitorService, FreezeFrameComponent, FreezeFrameService, IceCandidateHandler, ImageLoadingSrcComponent, InputOptions, InputService, InstanceReadyHandler, InstanceReservedHandler, IntroSrcComponent, KalmanFilter1D, LatencyTimings, LoadingProgressService, LowBandwidthDetectorComponent, LowBandwidthModalComponent, MINIMAL_FPS, MIN_CONTAINER_SIZE, 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_AUDIO_ID, STREAMING_VIDEO_ID, SafePipe, SignallingService, SpecialKeyCodes, StatGraphComponent, StreamStatusTelemetryService, StreamStatusTelemetryService2, SubService, ToClientMessage, UNREAL_CONFIG, UnrealCallbackService, 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, answerSent, changeStatusMainVideoOnScene, changeStreamResolutionAction, changeStreamResolutionSuccessAction, commandCompleted, commandStarted, commandsFeature, commandsReducer, dataChannelConnected, dataChannelReady, decodeData, destroyRemoteConnections, destroyUnrealScene, disconnectStream, dispatchResize, dropConnection, dropDC, dropPC, floatToSmoothPercents, forceResizeViewport, fromResizeObserver, getActiveUrl, getImageFromVideoStream, getResizeStudioValues, getResizeValuesUniversal, getRtcErrorMessage, iceConnectionFailed, initSignalling, instanceReady, keepMaxUntilReset, makeEven, pollingEnded, pollingStarted, provideUnrealModule, qpToQuality, reconnectPeer, reconnectPeerFailed, reconnectPeerSuccess, regionPingFetchEnd, regionPingFetchStart, regionResolved, resetAfk, resetConfig, resetDataChannelForReconnect, resetIntroSrc, resetUserInactivityTimeout, resetWarnTimeout, saveAnalyticsEvent, selectCirrusConnectionId, selectClientAndViewIds, selectCommandProgress, selectFreezeFrameCombinedDataUrl, selectFreezeFrameDataUrl, selectFreezeFrameDataUrlFromVideo, selectFreezeFrameProgressMessageFromVideo, selectIsAutostart, selectIsExistMatchUrls, selectIsFreezeFrameLoading, selectIsFullyConnected, selectIsLoaderScreenVisible, selectShowLoader, selectShowReconnectPopup, selectSignalingParameters, selectStreamConfig, selectTotalProgress, selectWarnTimeout, setAfkTimerCountdown, setAfkTimerHide, setAfkTimerVisible, setAwsInstance, setCirrusConnected, setCirrusDisconnected, setConfig, setEstablishingConnection, setFreezeFrame, setFreezeFrameFromVideo, setIntroImageSrc, setIntroVideoSrc, setLoadingImageSrc, setLoopBackCommandIsCompleted, setMaxFps, setOrchestrationContext, setOrchestrationMessage, setOrchestrationParameters, setOrchestrationProgress, setSignalingName, setStatusMessage, setStatusPercentSignallingServer, setStreamClientCompanyId, setStreamViewId, setUnrealPlaywrightConfig, setUserInactivityTimeout, setViewportNotReady, setViewportReady, showLoadingProgress, showResumeStreamPopup, showUnrealErrorMessage, showUserInactivityTimeoutPopup, smoothTransition, startStream, trackMixpanelEvent, trackTelemetryData, unrealCommandCallback, unrealFeature, unrealReducer, updateCirrusInfo, videoAdaptedToContainer, videoStreamInitialized };
2711
2709
  export type { AggregatedStat, AnySignalingMessage, AwsInstance, CandidateMessage, CloseReason, ConfigMessage, ConnectionError, ControlSchemeValues, DataFlowCheckResult, DisconnectReasonType, EmittedMilestone, ForceClientDisconnect, FreezeFrameMessage, InboundVideoStats, InputProps, InstanceReady, InstanceReserved, InterruptClientStream, ListStreamersMessage, MessageBase, MessageTypeValues, NormalizeAndQuantizeSignedValue, NormalizeAndQuantizeUnsignedValue, OrchestrationErrorMessage, OrchestrationMessageType, P2PEstablishedMessage, PhaseOverlay, PhaseParam, PingMessage, PlayerCountMessage, PollingOrchestrationMessage, Quality, ReceivedFile, ReconnectConfig, RequestStream, SSInfo, SelectedIceCandidatePair, SignalingData, SignalingMessageHandler, SignalingMessageMap, StreamConfig, StreamRequestContext, StreamResolutionProps, StreamerListMessage, TelemetryType, UnknownFields, UnquantizeAndDenormalizeUnsignedValue, UnrealCallbackDescriptor, UnrealCallbackEventMap, UnrealCallbackJson, UnrealCallbackJsonWrapped, UnrealCommandsState, UnrealInitialConfig, UnrealState, WSCloseCodesValues, streamPreparedForUserInteractionMessage };