@3dsource/angular-unreal-module 0.0.162 → 0.0.164

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.
@@ -338,11 +338,17 @@ interface ParkedStream {
338
338
  machineId?: string;
339
339
  /** `peerConnectionOptions` the machine sent in its `config` message */
340
340
  config?: RTCConfiguration;
341
- /** ids the script generated; Angular reuses them (no regeneration) */
341
+ /**
342
+ * ids the script generated; Angular reuses them (no regeneration).
343
+ * `streamRequestId` is the exception — it is NOT generated but read from the
344
+ * polling response and passed to Cirrus on the upgrade URL; empty when the
345
+ * backend didn't issue one.
346
+ */
342
347
  ids: {
343
348
  clientId: string;
344
349
  viewId: string;
345
350
  correlationId: string;
351
+ streamRequestId?: string;
346
352
  };
347
353
  /** DataChannel messages received before adoption, replayed on adopt */
348
354
  dcBuffer: ArrayBuffer[];
@@ -374,7 +380,6 @@ interface InputProps {
374
380
  type Quality = 'lime' | 'red' | 'orange';
375
381
 
376
382
  declare const OrchestrationMessageTypes: {
377
- readonly ping: "ping";
378
383
  readonly error: "error";
379
384
  readonly offer: "offer";
380
385
  readonly answer: "answer";
@@ -388,8 +393,6 @@ declare const OrchestrationMessageTypes: {
388
393
  readonly instanceReady: "instanceReady";
389
394
  readonly p2pEstablished: "p2pEstablished";
390
395
  readonly instanceReserved: "instanceReserved";
391
- readonly playerDisconnected: "playerDisconnected";
392
- readonly streamerDisconnected: "streamerDisconnected";
393
396
  readonly interruptClientStream: "interruptClientStream";
394
397
  };
395
398
  interface InstanceReady extends MessageBase {
@@ -445,11 +448,6 @@ interface CandidateMessage extends MessageBase {
445
448
  type: 'iceCandidate';
446
449
  candidate: RTCIceCandidate;
447
450
  }
448
- interface PingMessage extends MessageBase {
449
- type: 'ping';
450
- playerId: string;
451
- appConnectionCounter: number;
452
- }
453
451
  type UnknownFields = Record<string, unknown>;
454
452
  interface InterruptClientStream extends MessageBase {
455
453
  type: 'interruptClientStream';
@@ -458,10 +456,6 @@ interface InterruptClientStream extends MessageBase {
458
456
  environmentId: string;
459
457
  };
460
458
  }
461
- interface ForceClientDisconnect extends MessageBase {
462
- type: 'streamerDisconnected' | 'playerDisconnected';
463
- connectionId: string;
464
- }
465
459
  interface ListStreamersMessage extends MessageBase {
466
460
  type: 'listStreamers';
467
461
  correlationId: string;
@@ -530,7 +524,6 @@ interface MetaboxCustomApplicationContext {
530
524
  }
531
525
  type StreamRequestContext = MetaboxStudioContext | MetaboxProductContext | CustomApplicationContext | MetaboxCustomApplicationContext | MetaboxEnvironmentContext | MetaboxBasicConfiguratorContext | MetaboxModularConfiguratorContext;
532
526
  interface SignalingMessageMap {
533
- [OrchestrationMessageTypes.ping]: PingMessage;
534
527
  [OrchestrationMessageTypes.offer]: RTCSessionDescriptionInit;
535
528
  [OrchestrationMessageTypes.error]: OrchestrationErrorMessage;
536
529
  [OrchestrationMessageTypes.ssInfo]: SSInfo;
@@ -544,8 +537,6 @@ interface SignalingMessageMap {
544
537
  [OrchestrationMessageTypes.listStreamers]: ListStreamersMessage;
545
538
  [OrchestrationMessageTypes.p2pEstablished]: P2PEstablishedMessage;
546
539
  [OrchestrationMessageTypes.instanceReserved]: InstanceReserved;
547
- [OrchestrationMessageTypes.playerDisconnected]: ForceClientDisconnect;
548
- [OrchestrationMessageTypes.streamerDisconnected]: ForceClientDisconnect;
549
540
  [OrchestrationMessageTypes.interruptClientStream]: InterruptClientStream;
550
541
  }
551
542
  type OrchestrationMessageType = keyof SignalingMessageMap;
@@ -554,6 +545,12 @@ type SignalingMessageHandler<T extends keyof SignalingMessageMap> = (msg: Signal
554
545
  interface PollingOrchestrationMessage {
555
546
  mm_message?: string;
556
547
  signallingServer?: string;
548
+ /**
549
+ * Connection id issued by the orchestration for this stream request. Kept
550
+ * internally as `connectionId` and handed to Cirrus on the WS upgrade URL.
551
+ * Absent on older backends — Cirrus then generates one itself.
552
+ */
553
+ streamRequestId?: string;
557
554
  error?: string;
558
555
  info?: {
559
556
  age: number | null;
@@ -877,11 +874,29 @@ interface InboundVideoStats extends RTCInboundRtpStreamStats {
877
874
  receiveToCompositeMs: number;
878
875
  bitrate: number;
879
876
  }
877
+ /**
878
+ * Which orchestration transport was asked for the Cirrus endpoint:
879
+ * - `polling` — HTTP orchestration poll (`requestCirrusViaPolling`)
880
+ * - `socket` — orchestration control socket + `instanceReady`
881
+ * (`requestCirrusViaSocket`)
882
+ *
883
+ * Undefined when nothing was requested at all — a `ws://` URL that already points
884
+ * at Cirrus (`requestCirrusDirect`, dev/playwright) or an adopted prefetched
885
+ * stream. Those are not request kinds, they are the absence of a request.
886
+ *
887
+ * Replaces the previous hostname sniffing (`/^wss:\/\/orchestration-websocket/`)
888
+ * in `selectTotalProgress` — the flow is now stated, not guessed.
889
+ */
890
+ type CirrusRequestKind = 'polling' | 'socket';
880
891
  interface AwsInstance {
881
892
  /**
882
- * WebSocket URL for connecting to the Cirrus (polling mode) or Orchestration (direct mode).
893
+ * WebSocket URL of the CIRRUS the player connects to. In the socket flow
894
+ * this is the stream machine's `originInstanceUri`, NOT the orchestration
895
+ * URL (the control socket is tracked separately by `SignallingService`).
883
896
  */
884
897
  wsUrl: string | null;
898
+ /** See {@link CirrusRequestKind}. */
899
+ kind?: CirrusRequestKind;
885
900
  pollingUrl: string | null;
886
901
  instanceName: string | null;
887
902
  /**
@@ -924,6 +939,7 @@ declare const POLLING_TIME = 4000;
924
939
  declare const INNER_RETRY_LIMIT = 3;
925
940
  declare const OUTER_RETRY_DELAY: number;
926
941
  declare const WS_RETRY_PER_INSTANCE = 1;
942
+ declare const INSTANCE_READY_TIMEOUT = 180000;
927
943
  declare const WS_OPEN_STATE = 1;
928
944
  declare const DEFAULT_AFK_TIMEOUT_PERIOD = 15;
929
945
  declare const DEFAULT_AFK_TIMEOUT = 300;
@@ -1320,13 +1336,18 @@ declare class SignallingService extends SubService {
1320
1336
  onConfig$: Subject<ConfigMessage>;
1321
1337
  onWebRtcIce$: Subject<RTCIceCandidate>;
1322
1338
  onWebRtcAnswer$: Subject<RTCSessionDescriptionInit | null>;
1339
+ onInstanceReady$: Subject<{
1340
+ instanceId: string;
1341
+ originInstanceId: string;
1342
+ ipAddress: string;
1343
+ streamRequestId: string;
1344
+ originInstanceUri: string;
1345
+ }>;
1323
1346
  abort$: Observable<_ngrx_store.Action<string>>;
1324
1347
  private ws;
1325
- private streamWs;
1326
- private streamMachineConnected;
1327
- private streamMachineRetryCount;
1328
- private streamWsSub?;
1348
+ private controlWs;
1329
1349
  orchestrationRetrySub?: Subscription;
1350
+ orchestrationRetryCount: number;
1330
1351
  private wsMsgHandlers;
1331
1352
  protected correlationId: string;
1332
1353
  constructor();
@@ -1334,7 +1355,7 @@ declare class SignallingService extends SubService {
1334
1355
  connectToSignaling(urlList: string[]): Observable<WebSocket>;
1335
1356
  /**
1336
1357
  * One inner cycle: rotate `urlGen` over the pool, resolve via
1337
- * {@link getAwsInstance}, open WS via {@link connectToCirrus},
1358
+ * {@link requestCirrus}, open WS via {@link connectToCirrus},
1338
1359
  * retry up to {@link INNER_RETRY_LIMIT} on any hard failure. The
1339
1360
  * urlGen lives in this closure so retries advance through the
1340
1361
  * pool. Exhaustion bubbles to {@link connectToSignaling}'s outer
@@ -1354,17 +1375,37 @@ declare class SignallingService extends SubService {
1354
1375
  protected startEstablishingConnection(): void;
1355
1376
  private adaptUrlsToRegion;
1356
1377
  /**
1357
- * Resolve one URL to an `AwsInstance`. Dispatches to
1358
- * {@link directWsInstance} for `ws://` / `wss://` URLs, otherwise
1359
- * to {@link pollOrchestration}.
1378
+ * Ask the orchestration for a Cirrus to connect to. All three
1379
+ * implementations answer the same question — "which Cirrus, and with which
1380
+ * `streamRequestId`?" — and emit ONE `AwsInstance` whose `wsUrl` is a Cirrus
1381
+ * address. What differs is only how the answer is obtained and therefore how
1382
+ * it can fail:
1383
+ *
1384
+ * | Method | Transport | Fails on |
1385
+ * | -------------------------- | -------------------- | ------------------------------ |
1386
+ * | {@link requestCirrusViaPolling} | HTTP poll loop | HTTP 4xx (dead URL) |
1387
+ * | {@link requestCirrusViaSocket} | control WS | socket drop / no `instanceReady` in {@link INSTANCE_READY_TIMEOUT} |
1388
+ * | {@link requestCirrusDirect} | none (dev) | never — nothing is requested |
1389
+ *
1390
+ * Whatever they return goes through the SAME downstream in
1391
+ * {@link connectAttempt}: `setAwsInstance` → `connectToCirrus` → the WS-only
1392
+ * and URL-rotating retry tiers. A failure inside any of them is just an
1393
+ * error on this observable, so those tiers handle it uniformly.
1394
+ */
1395
+ private requestCirrus;
1396
+ /** True when `requestStream` can be composed → new orchestration. */
1397
+ private hasOrchestrationContext;
1398
+ /**
1399
+ * Wait until `clientId` and `viewId` are known — every request method needs
1400
+ * them before it may talk to the backend.
1360
1401
  */
1361
- private getAwsInstance;
1402
+ private waitForClientAndViewIds;
1362
1403
  /**
1363
- * Direct `ws://` / `wss://` short-circuit — no HTTP orchestration.
1364
- * Waits for `clientId` and `viewId` to be truthy in the store, then
1365
- * emits a `Direct Connection` `AwsInstance` and completes.
1404
+ * Direct `ws://` / `wss://` short-circuit — no orchestration at all, the URL
1405
+ * already points at Cirrus. Dev/playwright convenience, hence no
1406
+ * `kind`: nothing was requested.
1366
1407
  */
1367
- private directWsInstance;
1408
+ private requestCirrusDirect;
1368
1409
  /**
1369
1410
  * HTTP-orchestration path. Brackets {@link pollLoop} with the
1370
1411
  * `pollingStarted`/`pollingEnded` actions and the `EXT-getSignaling`
@@ -1372,7 +1413,34 @@ declare class SignallingService extends SubService {
1372
1413
  * last response captured in the closure). Maps the final ready
1373
1414
  * response to an `AwsInstance`.
1374
1415
  */
1375
- private pollOrchestration;
1416
+ private requestCirrusViaPolling;
1417
+ /**
1418
+ * WS-orchestration path — the socket-transport twin of
1419
+ * {@link requestCirrusViaPolling}. Opens the control socket, sends
1420
+ * `requestStream` and waits for `instanceReady`, whose `originInstanceUri`
1421
+ * IS the Cirrus address.
1422
+ *
1423
+ * Failure modes are handled here so they surface as a plain error and reach
1424
+ * `connectAttempt`'s retry tiers (previously this branch lived outside them
1425
+ * and a dead control socket silently hung the session):
1426
+ * - control socket closes/errors before `instanceReady` → error
1427
+ * - no `instanceReady` within {@link INSTANCE_READY_TIMEOUT} → error
1428
+ *
1429
+ * The control socket lives exactly as long as this wait — see
1430
+ * {@link awaitInstanceReady}.
1431
+ */
1432
+ private requestCirrusViaSocket;
1433
+ /**
1434
+ * Send `requestStream` on the freshly opened control socket and resolve with
1435
+ * the machine coordinates from `instanceReady`.
1436
+ *
1437
+ * The socket lives exactly as long as this wait: its close/error are HARD
1438
+ * failures of the request, and on resolution it is closed with every handler
1439
+ * detached (the backend does not use it after the handover). So the control
1440
+ * socket has no post-handover state at all — nothing that could report a stale
1441
+ * "disconnect" against a live stream.
1442
+ */
1443
+ private awaitInstanceReady;
1376
1444
  /**
1377
1445
  * Poll the SAME `url` until ready, or until HTTP 4xx says the URL
1378
1446
  * is dead.
@@ -1390,9 +1458,12 @@ declare class SignallingService extends SubService {
1390
1458
  */
1391
1459
  private pollLoop;
1392
1460
  private connectToCirrus;
1461
+ /**
1462
+ * Handlers for the CIRRUS socket — the only long-lived socket. Its close/error
1463
+ * are real stream events (`setCirrusDisconnected` / `dropConnection`), unlike
1464
+ * the control socket's, which never outlives {@link awaitInstanceReady}.
1465
+ */
1393
1466
  private addWsHandlers;
1394
- private onOrchestrationClose;
1395
- private onOrchestrationError;
1396
1467
  /**
1397
1468
  * Adopt a live signalling socket opened by the `stream-prefetch.js`
1398
1469
  * head-script. The socket is already OPEN and `requestStream` was already
@@ -1402,54 +1473,53 @@ declare class SignallingService extends SubService {
1402
1473
  * `correlationId` so subsequent correlated messages line up.
1403
1474
  */
1404
1475
  adoptSocket(ws: WebSocket, correlationId: string): void;
1405
- /**
1406
- * Open the SECOND socket, directly to the stream machine's Cirrus
1407
- * (`originInstanceUri` from `instanceReady`). The whole WebRTC signalling
1408
- * (config/offer/answer/iceCandidate/ping) flows over this socket; the
1409
- * orchestration socket (`this.ws`) stays open for control/lifecycle.
1410
- *
1411
- * "Just connect" — nothing is sent on open (the machine is already reserved
1412
- * for this session): Cirrus pushes `config` and Unreal sends the `offer`.
1413
- */
1414
- connectToStreamMachine(originInstanceUri: string): void;
1415
- /**
1416
- * The stream-machine (Cirrus) connection failed. Re-request a machine over
1417
- * the still-open orchestration socket: orchestration issues a new
1418
- * streamRequestId and a fresh `instanceReady(originInstanceUri)`, which calls
1419
- * {@link connectToStreamMachine} again on a different machine. Bounded by
1420
- * {@link INNER_RETRY_LIMIT}; on exhaustion the stream is dropped.
1421
- */
1422
- private retryStreamMachine;
1423
- private addStreamWsHandlers;
1424
- private teardownStreamWs;
1425
1476
  private showStatusMessage;
1426
1477
  /**
1427
- * Close the connection with the signaling server
1428
- * @param data
1478
+ * Close everything: the Cirrus socket AND the orchestration control socket.
1479
+ * Used on abort/teardown. A new connection attempt inside a live cycle uses
1480
+ * {@link closeCirrus} instead, so it does not kill the control socket that
1481
+ * produced the address it is about to connect to.
1429
1482
  */
1430
1483
  close(data: CloseReason): void;
1484
+ /** Close only the Cirrus signalling socket. */
1485
+ private closeCirrus;
1486
+ private teardownControlWs;
1431
1487
  private teardownSocket;
1432
- send(data: AnySignalingMessage): void;
1433
1488
  /**
1434
- * Send player signalling (offer/answer/iceCandidate/pong/p2pEstablished/
1435
- * subscribe) over the ACTIVE signalling socket: the stream-machine socket in
1436
- * the new flow (once connected), or the orchestration/relay socket in the old
1437
- * polling flow (where there is no separate stream socket).
1489
+ * Player signalling (offer/answer/iceCandidate/pong/p2pEstablished/subscribe)
1490
+ * — always the Cirrus socket, in every flow.
1438
1491
  */
1439
- sendPlayerSignal(data: AnySignalingMessage): void;
1492
+ send(data: AnySignalingMessage): void;
1493
+ /** Orchestration control messages (`requestStream`) — the control socket. */
1494
+ sendToOrchestration(data: AnySignalingMessage): void;
1440
1495
  private sendTo;
1441
1496
  protected handleMessage(msg: MessageBase): void;
1442
- private setHandlersFromStream;
1497
+ /**
1498
+ * One handler map shared by both sockets — `handleMessage` dispatches purely by
1499
+ * message type. Which socket a type can arrive on is fixed, so registration is
1500
+ * split by origin: {@link setOrchestrationHandlers} (control socket) and
1501
+ * {@link setStreamHandlers} (Cirrus).
1502
+ *
1503
+ * Keepalive is deliberately absent: both servers ping at the WS **protocol**
1504
+ * level (`ws.ping()`), which the browser answers on its own — the page never
1505
+ * sees a ping and must never reply with an application-level `pong`. An
1506
+ * unregistered type is dropped silently by `handleMessage`, so a `ping` from a
1507
+ * not-yet-updated backend is simply ignored.
1508
+ */
1509
+ private setMessageHandlers;
1510
+ /**
1511
+ * Messages from the ORCHESTRATION control socket. Only reachable during the
1512
+ * provisioning wait — `requestCirrusViaSocket` closes that socket the moment
1513
+ * `instanceReady` lands.
1514
+ */
1515
+ private setOrchestrationHandlers;
1516
+ /** Messages from the CIRRUS socket — the actual stream signalling. */
1517
+ private setStreamHandlers;
1443
1518
  protected sendRequestStream(): void;
1444
1519
  /**
1445
- * Check if the ACTIVE player-signalling socket is open and ready. Mirrors
1446
- * {@link sendPlayerSignal}'s socket choice so peer-reconnect gating is correct
1447
- * in both flows:
1448
- * - NEW flow (`streamMachineConnected`): the stream-machine socket
1449
- * (`streamWs`). The orchestration socket (`this.ws`) is intentionally
1450
- * closed after occupancy, so checking it would wrongly report "not
1451
- * connected" and block reconnect.
1452
- * - OLD polling flow: the single relay socket (`this.ws`) — unchanged.
1520
+ * Is the player-signalling socket open? Always the Cirrus socket — the
1521
+ * control socket's state is irrelevant to the stream (orchestration closes it
1522
+ * once the instance is occupied), so it must not be part of this gate.
1453
1523
  */
1454
1524
  isConnected(): boolean;
1455
1525
  private getRegion;
@@ -2304,8 +2374,6 @@ declare function InstanceReadyHandler(this: SignallingService, msg: InstanceRead
2304
2374
 
2305
2375
  declare function InstanceReservedHandler(this: SignallingService, msg: InstanceReserved): void;
2306
2376
 
2307
- declare function PingHandler(this: SignallingService): void;
2308
-
2309
2377
  declare function PlayerCountHandler(this: SignallingService, msg: PlayerCountMessage): void;
2310
2378
 
2311
2379
  declare function SSInfoHandler(this: SignallingService, msg: SSInfo): null;
@@ -2316,6 +2384,14 @@ declare function OnErrorHandler(this: SignallingService, e: Event): void;
2316
2384
 
2317
2385
  declare function OnMessageHandler(this: SignallingService, e: MessageEvent<string | Blob>): void;
2318
2386
 
2387
+ /**
2388
+ * Open handler of the CIRRUS socket only (`addWsHandlers`), so
2389
+ * `setCirrusConnected` now means what it says. It used to also send
2390
+ * `requestStream` here, which made the flag fire on the orchestration control
2391
+ * socket — a whole provisioning wait (`eta`, ~150 s) before any Cirrus existed.
2392
+ * `requestStream` belongs to the control socket and is sent by
2393
+ * `requestCirrusViaSocket`.
2394
+ */
2319
2395
  declare function OnOpenHandler(this: SignallingService): void;
2320
2396
 
2321
2397
  /**
@@ -2568,10 +2644,34 @@ declare const setAwsInstance: _ngrx_store.ActionCreator<string, (props: {
2568
2644
  wsUrl: string | null;
2569
2645
  pollingUrl: string | null;
2570
2646
  instanceName: string | null;
2647
+ /**
2648
+ * Connection id issued by the orchestration in the polling response. Kept
2649
+ * internally as `connectionId` (see `selectCirrusConnectionId`). Undefined
2650
+ * in the new-orchestration flow, where it arrives later via
2651
+ * `instanceReserved` → {@link setOrchestrationParameters}.
2652
+ */
2653
+ streamRequestId?: string;
2654
+ /**
2655
+ * Which request method produced this endpoint. Stated by the service instead
2656
+ * of being guessed downstream from the URL's hostname.
2657
+ */
2658
+ kind?: CirrusRequestKind;
2571
2659
  }) => {
2572
2660
  wsUrl: string | null;
2573
2661
  pollingUrl: string | null;
2574
2662
  instanceName: string | null;
2663
+ /**
2664
+ * Connection id issued by the orchestration in the polling response. Kept
2665
+ * internally as `connectionId` (see `selectCirrusConnectionId`). Undefined
2666
+ * in the new-orchestration flow, where it arrives later via
2667
+ * `instanceReserved` → {@link setOrchestrationParameters}.
2668
+ */
2669
+ streamRequestId?: string;
2670
+ /**
2671
+ * Which request method produced this endpoint. Stated by the service instead
2672
+ * of being guessed downstream from the URL's hostname.
2673
+ */
2674
+ kind?: CirrusRequestKind;
2575
2675
  } & _ngrx_store.Action<string>>;
2576
2676
  declare const setStatusMessage: _ngrx_store.ActionCreator<string, (props: {
2577
2677
  statusMessage: string | null;
@@ -2811,6 +2911,12 @@ declare const initSignalling: _ngrx_store.ActionCreator<string, () => _ngrx_stor
2811
2911
  declare const streamAdopted: _ngrx_store.ActionCreator<string, (props: {
2812
2912
  machineId: string | null;
2813
2913
  ssData: SignalingData | null;
2914
+ /**
2915
+ * Orchestration-issued connection id the prefetch script read from the
2916
+ * polling response and already passed to Cirrus. Kept internally as
2917
+ * `connectionId` (see `selectCirrusConnectionId`).
2918
+ */
2919
+ streamRequestId: string | null;
2814
2920
  /**
2815
2921
  * `performance.now()` marks the prefetch script recorded while it
2816
2922
  * established the connection (`prefetch_start` / `ws_open` / `dc_open` /
@@ -2824,6 +2930,12 @@ declare const streamAdopted: _ngrx_store.ActionCreator<string, (props: {
2824
2930
  }) => {
2825
2931
  machineId: string | null;
2826
2932
  ssData: SignalingData | null;
2933
+ /**
2934
+ * Orchestration-issued connection id the prefetch script read from the
2935
+ * polling response and already passed to Cirrus. Kept internally as
2936
+ * `connectionId` (see `selectCirrusConnectionId`).
2937
+ */
2938
+ streamRequestId: string | null;
2827
2939
  /**
2828
2940
  * `performance.now()` marks the prefetch script recorded while it
2829
2941
  * established the connection (`prefetch_start` / `ws_open` / `dc_open` /
@@ -2936,23 +3048,23 @@ declare class UnrealEffects {
2936
3048
  private readonly unrealCallbackService;
2937
3049
  private dataChannelConnectionTimeout;
2938
3050
  private connectionCompleted$;
2939
- destroyConnections$: rxjs.Observable<{
3051
+ destroyConnections$: Observable<{
2940
3052
  reason: _3dsource_angular_unreal_module.DisconnectReasonType;
2941
3053
  } & _ngrx_store.Action<string>> & _ngrx_effects.CreateEffectMetadata;
2942
- refreshRegionCache$: rxjs.Observable<{
3054
+ refreshRegionCache$: Observable<{
2943
3055
  region_code: string;
2944
3056
  result: number[];
2945
3057
  } | null> & _ngrx_effects.CreateEffectMetadata;
2946
- abortEstablishingConnection$: rxjs.Observable<_ngrx_store.Action<string>> & _ngrx_effects.CreateEffectMetadata;
2947
- resetAfk$: rxjs.Observable<_ngrx_store.Action<string>> & _ngrx_effects.CreateEffectMetadata;
2948
- iframeMessaging$: rxjs.Observable<string | null> & _ngrx_effects.CreateEffectMetadata;
2949
- setSignalingTo100$: rxjs.Observable<{
3058
+ abortEstablishingConnection$: Observable<_ngrx_store.Action<string>> & _ngrx_effects.CreateEffectMetadata;
3059
+ resetAfk$: Observable<_ngrx_store.Action<string>> & _ngrx_effects.CreateEffectMetadata;
3060
+ iframeMessaging$: Observable<string | null> & _ngrx_effects.CreateEffectMetadata;
3061
+ setSignalingTo100$: Observable<{
2950
3062
  percent: number | null;
2951
3063
  } & _ngrx_store.Action<string>> & _ngrx_effects.CreateEffectMetadata;
2952
- setOrchestrationParameters$: rxjs.Observable<{
3064
+ setOrchestrationParameters$: Observable<{
2953
3065
  progressComplete: number;
2954
3066
  } & _ngrx_store.Action<string>> & _ngrx_effects.CreateEffectMetadata;
2955
- setDataChannelTimeoutCheck$: rxjs.Observable<{
3067
+ setDataChannelTimeoutCheck$: Observable<{
2956
3068
  reason: _3dsource_angular_unreal_module.DisconnectReasonType;
2957
3069
  message: string;
2958
3070
  } & _ngrx_store.Action<string>> & _ngrx_effects.CreateEffectMetadata;
@@ -2971,11 +3083,11 @@ declare class UnrealEffects {
2971
3083
  * Without this effect, the order of these events may cause
2972
3084
  * a visible flicker (video flashing to black).
2973
3085
  */
2974
- forceViewportNotReady$: rxjs.Observable<_ngrx_store.Action<string>> & _ngrx_effects.CreateEffectMetadata;
2975
- resetCirrusOnDestroy$: rxjs.Observable<_ngrx_store.Action<string>> & _ngrx_effects.CreateEffectMetadata;
2976
- destroyRemoteConnections$: rxjs.Observable<_ngrx_store.Action<string>> & _ngrx_effects.CreateEffectMetadata;
2977
- destroyConnectionAndRestart$: rxjs.Observable<_ngrx_store.Action<string>> & _ngrx_effects.CreateEffectMetadata;
2978
- showUnrealError$: rxjs.Observable<{
3086
+ forceViewportNotReady$: Observable<_ngrx_store.Action<string>> & _ngrx_effects.CreateEffectMetadata;
3087
+ resetCirrusOnDestroy$: Observable<_ngrx_store.Action<string>> & _ngrx_effects.CreateEffectMetadata;
3088
+ destroyRemoteConnections$: Observable<_ngrx_store.Action<string>> & _ngrx_effects.CreateEffectMetadata;
3089
+ destroyConnectionAndRestart$: Observable<_ngrx_store.Action<string>> & _ngrx_effects.CreateEffectMetadata;
3090
+ showUnrealError$: Observable<{
2979
3091
  code: number | null;
2980
3092
  error?: string;
2981
3093
  } & _ngrx_store.Action<string>> & _ngrx_effects.CreateEffectMetadata;
@@ -2995,11 +3107,11 @@ declare class UnrealEffects {
2995
3107
  * cirrus drop, a scene destroy, or the start of a peer reconnect (which is
2996
3108
  * where the pre-existing `isReconnecting` filter hands over).
2997
3109
  */
2998
- unrealReceiverReady$: rxjs.Observable<_ngrx_store.Action<string>> & _ngrx_effects.CreateEffectMetadata;
2999
- initAppByDataChannelReady$: rxjs.Observable<_ngrx_store.Action<string>> & _ngrx_effects.CreateEffectMetadata;
3000
- setViewportReadyBySetLoopBackCommandIsCompleted$: rxjs.Observable<_ngrx_store.Action<string>> & _ngrx_effects.CreateEffectMetadata;
3001
- startStream$: rxjs.Observable<_ngrx_store.Action<string>> & _ngrx_effects.CreateEffectMetadata;
3002
- resetAfkOnPausedVideoInit$: rxjs.Observable<_ngrx_store.Action<string>> & _ngrx_effects.CreateEffectMetadata;
3110
+ unrealReceiverReady$: Observable<_ngrx_store.Action<string>> & _ngrx_effects.CreateEffectMetadata;
3111
+ initAppByDataChannelReady$: Observable<_ngrx_store.Action<string>> & _ngrx_effects.CreateEffectMetadata;
3112
+ setViewportReadyBySetLoopBackCommandIsCompleted$: Observable<_ngrx_store.Action<string>> & _ngrx_effects.CreateEffectMetadata;
3113
+ startStream$: Observable<_ngrx_store.Action<string>> & _ngrx_effects.CreateEffectMetadata;
3114
+ resetAfkOnPausedVideoInit$: Observable<_ngrx_store.Action<string>> & _ngrx_effects.CreateEffectMetadata;
3003
3115
  /**
3004
3116
  * Effect: `disconnectReasonHandling$`
3005
3117
  *
@@ -3012,7 +3124,7 @@ declare class UnrealEffects {
3012
3124
  * Skip `DataChannelClosed` when peer reconnection can handle it — that
3013
3125
  * path is owned by `handleDataChannelClosed$` instead.
3014
3126
  */
3015
- disconnectReasonHandling$: rxjs.Observable<{
3127
+ disconnectReasonHandling$: Observable<{
3016
3128
  reason: _3dsource_angular_unreal_module.DisconnectReasonType;
3017
3129
  } & _ngrx_store.Action<string>> & _ngrx_effects.CreateEffectMetadata;
3018
3130
  /**
@@ -3022,25 +3134,25 @@ declare class UnrealEffects {
3022
3134
  * Only triggers if reconnection is enabled and the signaling WebSocket
3023
3135
  * is still connected.
3024
3136
  */
3025
- handleDataChannelClosed$: rxjs.Observable<{
3137
+ handleDataChannelClosed$: Observable<{
3026
3138
  attempt: number;
3027
3139
  maxAttempts: number;
3028
3140
  delay?: number;
3029
3141
  } & _ngrx_store.Action<string>> & _ngrx_effects.CreateEffectMetadata;
3030
- webrtcErrorModalComponent$: rxjs.Observable<false> & _ngrx_effects.CreateEffectMetadata;
3142
+ webrtcErrorModalComponent$: Observable<false> & _ngrx_effects.CreateEffectMetadata;
3031
3143
  /**
3032
3144
  * Effect: `resetStateForPeerReconnect$`
3033
3145
  *
3034
3146
  * Resets the data channel state when peer reconnection starts.
3035
3147
  */
3036
- resetStateForPeerReconnect$: rxjs.Observable<_ngrx_store.Action<string>> & _ngrx_effects.CreateEffectMetadata;
3148
+ resetStateForPeerReconnect$: Observable<_ngrx_store.Action<string>> & _ngrx_effects.CreateEffectMetadata;
3037
3149
  /**
3038
3150
  * Effect: `executePeerReconnect$`
3039
3151
  *
3040
3152
  * Executes the actual peer reconnection attempt.
3041
3153
  * This only re-establishes the WebRTC connection, not the signaling.
3042
3154
  */
3043
- executePeerReconnect$: rxjs.Observable<_ngrx_store.Action<string> | ({
3155
+ executePeerReconnect$: Observable<_ngrx_store.Action<string> | ({
3044
3156
  attempt: number;
3045
3157
  maxAttempts: number;
3046
3158
  delay?: number;
@@ -3053,19 +3165,19 @@ declare class UnrealEffects {
3053
3165
  * Handles the case when all peer reconnection attempts have failed.
3054
3166
  * Falls back to full disconnection which may trigger full reconnection.
3055
3167
  */
3056
- handlePeerReconnectFailed$: rxjs.Observable<{
3168
+ handlePeerReconnectFailed$: Observable<{
3057
3169
  reason: _3dsource_angular_unreal_module.DisconnectReasonType;
3058
3170
  message: string;
3059
3171
  } & _ngrx_store.Action<string>> & _ngrx_effects.CreateEffectMetadata;
3060
- setMaxFps$: rxjs.Observable<{
3172
+ setMaxFps$: Observable<{
3061
3173
  maxFps: number;
3062
3174
  } & _ngrx_store.Action<string>> & _ngrx_effects.CreateEffectMetadata;
3063
- sendStatisticsToUnreal$: rxjs.Observable<Object> & _ngrx_effects.CreateEffectMetadata;
3064
- listenUnrealCallbackByInitSignalling$: rxjs.Observable<{
3175
+ sendStatisticsToUnreal$: Observable<Object> & _ngrx_effects.CreateEffectMetadata;
3176
+ listenUnrealCallbackByInitSignalling$: Observable<{
3065
3177
  id: string;
3066
3178
  now: number;
3067
3179
  } & _ngrx_store.Action<string>> & _ngrx_effects.CreateEffectMetadata;
3068
- connectToSignaling$: rxjs.Observable<{
3180
+ connectToSignaling$: Observable<{
3069
3181
  value: boolean;
3070
3182
  } & _ngrx_store.Action<string>> & _ngrx_effects.CreateEffectMetadata;
3071
3183
  private canPeerReconnect;
@@ -3220,8 +3332,19 @@ declare const selectIsLoaderScreenVisible: _ngrx_store.MemoizedSelector<Record<s
3220
3332
  * producing a small visual step that indicates the WS handshake succeeded.
3221
3333
  */
3222
3334
  declare const selectTotalProgress: _ngrx_store.MemoizedSelector<Record<string, any>, number, (s1: number | null, s2: number, s3: _3dsource_angular_unreal_module.AwsInstance, s4: boolean) => number>;
3223
- /** Used by external consumers (e.g., metabox). Do not remove. */
3224
- declare const selectCirrusConnectionId: _ngrx_store.MemoizedSelector<Record<string, any>, string | undefined, (s1: _3dsource_angular_unreal_module.SignalingData | null) => string | undefined>;
3335
+ /**
3336
+ * The connection id of the current stream session.
3337
+ *
3338
+ * Primary source is the orchestration, which issues it as `streamRequestId` —
3339
+ * in the polling response (legacy flow) or in `instanceReserved`/`instanceReady`
3340
+ * (new orchestration) — and the browser hands it to Cirrus on the WS upgrade
3341
+ * URL. `ssData.connectionId` (the `ssInfo` message) is the fallback for
3342
+ * backends that don't issue one yet: Cirrus then generates it itself and
3343
+ * reports it back here.
3344
+ *
3345
+ * Used by external consumers (e.g., metabox). Do not remove.
3346
+ */
3347
+ declare const selectCirrusConnectionId: _ngrx_store.MemoizedSelector<Record<string, any>, string | undefined, (s1: _3dsource_angular_unreal_module.AwsInstance, s2: _3dsource_angular_unreal_module.SignalingData | null) => string | undefined>;
3225
3348
  /** Used by external consumers (e.g., metabox). Do not remove. */
3226
3349
  declare const selectUserInactivityDetected: _ngrx_store.MemoizedSelector<Record<string, any>, {
3227
3350
  remainingSecondsToDisconnect: number;
@@ -3233,5 +3356,5 @@ declare const selectUserInactivityDetected: _ngrx_store.MemoizedSelector<Record<
3233
3356
  /** Used by external consumers (e.g., metabox). Do not remove. */
3234
3357
  declare const selectIsVideoPlayingAndDataChannelConnected: _ngrx_store.MemoizedSelector<Record<string, any>, boolean, (s1: boolean, s2: boolean) => boolean>;
3235
3358
 
3236
- export { AFKService, AUTO_HIGH_RESOLUTION_IDLE_MS, AfkTimeoutModalComponent, AggregatorService, AnalyticsService, AnswerHandler, CommandTelemetryService, ConfigHandler, ConsoleExtensionsService, ControlScheme, DATA_CHANNEL_CONNECTION_TIMEOUT, DEBOUNCE_TO_MANY_RESIZE_CALLS, DEFAULT_AFK_TIMEOUT, DEFAULT_AFK_TIMEOUT_PERIOD, DESTROY_DISCONNECT_REASONS, DevModeService, DisconnectReason, FULL_HD_HEIGHT, FULL_HD_WIDTH, FileHandlerService, FileReceiverService, FpsMonitorService, FreezeFrameComponent, FreezeFrameService, INNER_RETRY_LIMIT, IceCandidateHandler, ImageLoadingSrcComponent, InputOptions, InputService, InstanceReadyHandler, InstanceReservedHandler, IntroSrcComponent, LatencyTimings, LoadingProgressService, MINIMAL_FPS, MIN_CONTAINER_SIZE, MessageType, MouseButton, MouseButtonsMask, OUTER_RETRY_DELAY, OnCloseHandler, OnErrorHandler, OnMessageHandler, OnOpenHandler, OrchestrationMessageTypes, POLLING_TIME, PingHandler, PlayerCountHandler, RECONNECT_CONFIG, REGION_PING_ACCURATE_SAMPLES, REGION_PING_BACKGROUND_REFRESH_DELAY_MS, REGION_PING_CACHE_KEY, REGION_PING_CACHE_TTL_MS, REGION_PING_WARMUP_DEADLINE_MS, RegionsPingService, SAME_SIZE_THRESHOLD, SCREEN_LOCKER_CONTAINER_ID, SIGNALLING_PERCENT_VALUE, SSInfoHandler, STREAMING_AUDIO_ID, STREAMING_VIDEO_ID, SafePipe, SignallingService, SpecialKeyCodes, StatGraphComponent, StreamAdoptionService, 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_RETRY_PER_INSTANCE, WS_TIMEOUT, WebRtcPlayerService, WebrtcErrorModalComponent, abortEstablishingConnection, answerSent, changeStatusMainVideoOnScene, changeStreamResolutionAction, commandCompleted, commandStarted, dataChannelConnected, dataChannelReady, decodeData, destroyRemoteConnections, destroyUnrealScene, disconnectStream, dispatchResize, dropConnection, dropDC, dropPC, floatToPercents, floatToSmoothPercents, forceResizeViewport, fromResizeObserver, getActiveUrl, getImageFromVideoStream, getResizeStudioValues, getResizeValuesUniversal, getRtcErrorMessage, iceConnectionFailed, initSignalling, instanceReady, keepMaxUntilReset, makeEven, pollingEnded, pollingStarted, provideUnrealModule, provideUnrealState, 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, selectIsVideoPlayingAndDataChannelConnected, selectShowLoader, selectShowReconnectPopup, selectSignalingParameters, selectStreamConfig, selectTotalProgress, selectUserInactivityDetected, 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, signalingRetryAttempted, smoothTransition, startStream, streamAdopted, trackMixpanelEvent, trackTelemetryData, uint8ToBase64, unrealCommandCallback, unrealFeature, unrealReducer, updateCirrusInfo, videoAdaptedToContainer, videoStreamInitialized };
3237
- export type { AggregatedStat, AnySignalingMessage, AwsInstance, BootstrapInfo, CandidateMessage, CloseReason, CommandInProgress, ConfigMessage, ConnectionError, ControlSchemeValues, DisconnectReasonType, EmittedMilestone, EventId, ForceClientDisconnect, FpsLowData, FreezeFrameMessage, InboundVideoStats, InputProps, InstanceReady, InstanceReserved, InterruptClientStream, ListStreamersMessage, MessageBase, MessageTypeValues, OrchestrationErrorMessage, OrchestrationMessageType, P2PEstablishedMessage, ParkedStream, PhaseEndedData, PhaseOverlay, PhaseParam, PingMessage, PlayerCountMessage, PollingOrchestrationMessage, Quality, QualityAnomalyData, ReceivedFile, RequestStream, ResourceBucket, ResourceTotals, SSInfo, SampleData, SelectedIceCandidatePair, SessionEndReason, SessionEndedData, SessionStartedData, SignalingData, SignalingMessageHandler, SignalingMessageMap, SignalingRetryData, SignalingRetryKind, SlowResource, StreamConfig, StreamRequestContext, StreamResolutionProps, StreamTelemetryEvent, StreamTelemetryEventMap, StreamTelemetryEventName, StreamTelemetryLifecycleData, StreamTelemetryLifecycleEventName, StreamTelemetryTrackData, StreamerListMessage, TelemetryEventEnvelope, TelemetryLifecycleEnvelope, TelemetryType, UnknownFields, UnrealCallbackDescriptor, UnrealCallbackEventMap, UnrealCallbackJson, UnrealCallbackJsonWrapped, UnrealInitialConfig, UnrealState, WSCloseCodesValues, WindowAggregate };
3359
+ export { AFKService, AUTO_HIGH_RESOLUTION_IDLE_MS, AfkTimeoutModalComponent, AggregatorService, AnalyticsService, AnswerHandler, CommandTelemetryService, ConfigHandler, ConsoleExtensionsService, ControlScheme, DATA_CHANNEL_CONNECTION_TIMEOUT, DEBOUNCE_TO_MANY_RESIZE_CALLS, DEFAULT_AFK_TIMEOUT, DEFAULT_AFK_TIMEOUT_PERIOD, DESTROY_DISCONNECT_REASONS, DevModeService, DisconnectReason, FULL_HD_HEIGHT, FULL_HD_WIDTH, FileHandlerService, FileReceiverService, FpsMonitorService, FreezeFrameComponent, FreezeFrameService, INNER_RETRY_LIMIT, INSTANCE_READY_TIMEOUT, IceCandidateHandler, ImageLoadingSrcComponent, InputOptions, InputService, InstanceReadyHandler, InstanceReservedHandler, IntroSrcComponent, LatencyTimings, LoadingProgressService, MINIMAL_FPS, MIN_CONTAINER_SIZE, MessageType, MouseButton, MouseButtonsMask, OUTER_RETRY_DELAY, OnCloseHandler, OnErrorHandler, OnMessageHandler, OnOpenHandler, OrchestrationMessageTypes, POLLING_TIME, PlayerCountHandler, RECONNECT_CONFIG, REGION_PING_ACCURATE_SAMPLES, REGION_PING_BACKGROUND_REFRESH_DELAY_MS, REGION_PING_CACHE_KEY, REGION_PING_CACHE_TTL_MS, REGION_PING_WARMUP_DEADLINE_MS, RegionsPingService, SAME_SIZE_THRESHOLD, SCREEN_LOCKER_CONTAINER_ID, SIGNALLING_PERCENT_VALUE, SSInfoHandler, STREAMING_AUDIO_ID, STREAMING_VIDEO_ID, SafePipe, SignallingService, SpecialKeyCodes, StatGraphComponent, StreamAdoptionService, 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_RETRY_PER_INSTANCE, WS_TIMEOUT, WebRtcPlayerService, WebrtcErrorModalComponent, abortEstablishingConnection, answerSent, changeStatusMainVideoOnScene, changeStreamResolutionAction, commandCompleted, commandStarted, dataChannelConnected, dataChannelReady, decodeData, destroyRemoteConnections, destroyUnrealScene, disconnectStream, dispatchResize, dropConnection, dropDC, dropPC, floatToPercents, floatToSmoothPercents, forceResizeViewport, fromResizeObserver, getActiveUrl, getImageFromVideoStream, getResizeStudioValues, getResizeValuesUniversal, getRtcErrorMessage, iceConnectionFailed, initSignalling, instanceReady, keepMaxUntilReset, makeEven, pollingEnded, pollingStarted, provideUnrealModule, provideUnrealState, 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, selectIsVideoPlayingAndDataChannelConnected, selectShowLoader, selectShowReconnectPopup, selectSignalingParameters, selectStreamConfig, selectTotalProgress, selectUserInactivityDetected, 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, signalingRetryAttempted, smoothTransition, startStream, streamAdopted, trackMixpanelEvent, trackTelemetryData, uint8ToBase64, unrealCommandCallback, unrealFeature, unrealReducer, updateCirrusInfo, videoAdaptedToContainer, videoStreamInitialized };
3360
+ export type { AggregatedStat, AnySignalingMessage, AwsInstance, BootstrapInfo, CandidateMessage, CirrusRequestKind, CloseReason, CommandInProgress, ConfigMessage, ConnectionError, ControlSchemeValues, DisconnectReasonType, EmittedMilestone, EventId, FpsLowData, FreezeFrameMessage, InboundVideoStats, InputProps, InstanceReady, InstanceReserved, InterruptClientStream, ListStreamersMessage, MessageBase, MessageTypeValues, OrchestrationErrorMessage, OrchestrationMessageType, P2PEstablishedMessage, ParkedStream, PhaseEndedData, PhaseOverlay, PhaseParam, PlayerCountMessage, PollingOrchestrationMessage, Quality, QualityAnomalyData, ReceivedFile, RequestStream, ResourceBucket, ResourceTotals, SSInfo, SampleData, SelectedIceCandidatePair, SessionEndReason, SessionEndedData, SessionStartedData, SignalingData, SignalingMessageHandler, SignalingMessageMap, SignalingRetryData, SignalingRetryKind, SlowResource, StreamConfig, StreamRequestContext, StreamResolutionProps, StreamTelemetryEvent, StreamTelemetryEventMap, StreamTelemetryEventName, StreamTelemetryLifecycleData, StreamTelemetryLifecycleEventName, StreamTelemetryTrackData, StreamerListMessage, TelemetryEventEnvelope, TelemetryLifecycleEnvelope, TelemetryType, UnknownFields, UnrealCallbackDescriptor, UnrealCallbackEventMap, UnrealCallbackJson, UnrealCallbackJsonWrapped, UnrealInitialConfig, UnrealState, WSCloseCodesValues, WindowAggregate };