@3dsource/angular-unreal-module 0.0.93 → 0.0.97

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.93",
3
+ "version": "0.0.97",
4
4
  "description": "Angular Unreal module for connect with unreal engine stream",
5
5
  "keywords": [
6
6
  "3dsource",
@@ -361,10 +361,6 @@ declare const DEFAULT_RECONNECT_DELAY_MS = 1000;
361
361
  declare const DEFAULT_RECONNECT_ON_ICE_FAILURE = true;
362
362
  declare const DEFAULT_RECONNECT_ON_DATACHANNEL_CLOSE = true;
363
363
 
364
- declare function provideAngularUnrealModule(config?: {
365
- playwright: boolean;
366
- }): i0.EnvironmentProviders;
367
-
368
364
  interface NormalizeAndQuantizeUnsignedValue {
369
365
  inRange: boolean;
370
366
  x: number;
@@ -1031,6 +1027,182 @@ declare class AnalyticsService {
1031
1027
  static ɵprov: i0.ɵɵInjectableDeclaration<AnalyticsService>;
1032
1028
  }
1033
1029
 
1030
+ /**
1031
+ * Adaptive FPS controller that monitors the incoming WebRTC video stream
1032
+ * quality and dynamically adjusts Unreal Engine's `t.MaxFPS` console variable.
1033
+ *
1034
+ * ## How it works
1035
+ *
1036
+ * The service subscribes to `VideoService.videoStats$` (emitted every 250 ms)
1037
+ * and collects samples of FPS, bitrate, and QP (Quantisation Parameter).
1038
+ * Every {@link SAMPLE_WINDOW} ticks (~2 s) it averages the collected samples
1039
+ * and feeds them into a set of **fuzzy-logic membership functions** that
1040
+ * classify each metric into overlapping quality bands.
1041
+ *
1042
+ * ### Input signals
1043
+ *
1044
+ * **1. FPS ratio** = `actualFPS / currentTargetFPS` (0..1+)
1045
+ *
1046
+ * | Band | Range | Meaning |
1047
+ * |--------|---------------------|-----------------------------------------------|
1048
+ * | low | ratio < 0.7 → 1.0, linear ramp 0.7..0.9 → 0 | Stream cannot keep up with the target |
1049
+ * | ok | triangle 0.8..1.0, peak at 0.95 | Stream roughly matches the target |
1050
+ * | high | ratio 0.9..1.0 → ramp, >1.0 → 1.0 | Stream meets or exceeds the target |
1051
+ *
1052
+ * **2. Bitrate load** = `currentBitrate / MAX_BITRATE` (0..1+)
1053
+ *
1054
+ * `MAX_BITRATE` = 20 Mbit/s — the reference ceiling for the encoder.
1055
+ *
1056
+ * | Band | Range | Meaning |
1057
+ * |--------|-------------------------------------------------|-----------------------------------------------|
1058
+ * | high | load 0.5..0.8 → ramp, >0.8 → 1.0 | Encoder is using most of the available bandwidth |
1059
+ * | not high | load < 0.5 → 0.0 | Bandwidth headroom is available |
1060
+ *
1061
+ * **3. Quality** — mapped from QP via `mapQpToQuality()` (see {@link Quality}):
1062
+ *
1063
+ * | Quality | QP range | Meaning |
1064
+ * |----------|-----------|-------------------------------------------------|
1065
+ * | `lime` | QP <= 26 | Good — encoder has enough headroom |
1066
+ * | `orange` | QP 27..35 | Fair — encoder is under moderate pressure |
1067
+ * | `red` | QP > 35 | Poor — heavy compression, visible artefacts |
1068
+ *
1069
+ * ### Decision rules (evaluated in priority order, first match wins)
1070
+ *
1071
+ * | # | Condition | Decision |
1072
+ * |---|------------------------------------------------------------|--------------|
1073
+ * | 1 | FPS ratio is **low** (membership > 0.5) | **decrease** |
1074
+ * | 2 | FPS ratio is **ok** AND quality is `red` | **decrease** |
1075
+ * | 3 | FPS ratio is **ok** AND bitrate **high** AND quality is `orange` | **hold** |
1076
+ * | 4 | FPS ratio is **high** AND quality is `lime` AND bitrate **not high** | **increase** |
1077
+ * | — | Everything else | **hold** |
1078
+ *
1079
+ * ## Cooldown-based throttling
1080
+ *
1081
+ * The service continuously evaluates fuzzy rules every sample window.
1082
+ * After each FPS step change it enforces a cooldown before the next
1083
+ * change can be applied. The cooldown duration depends on the
1084
+ * (previous decision → next decision) pair:
1085
+ *
1086
+ * | Previous | Next | Cooldown |
1087
+ * |-----------|-----------|-----------------------------------------------------|
1088
+ * | decrease | decrease | {@link COOLDOWN_DECREASE_AFTER_DECREASE_MS} (2 s) |
1089
+ * | decrease | increase | {@link COOLDOWN_INCREASE_AFTER_DECREASE_MS} (10 s) |
1090
+ * | increase | decrease | {@link COOLDOWN_AFTER_INCREASE_MS} (2 s) |
1091
+ * | increase | increase | {@link COOLDOWN_AFTER_INCREASE_MS} (2 s) |
1092
+ *
1093
+ * This means the system reacts quickly after an increase (2 s in any
1094
+ * direction) but is cautious about stepping back up after a decrease
1095
+ * (10 s), while still allowing consecutive decreases at 2 s intervals.
1096
+ *
1097
+ * ## FPS dispatch
1098
+ *
1099
+ * FPS changes are dispatched via the NgRx `setMaxFps` action, which triggers
1100
+ * the existing `UnrealEffects.setMaxFps$` effect that sends the
1101
+ * `t.MaxFPS <value>` console command to Unreal Engine.
1102
+ */
1103
+ declare class FpsMonitorService {
1104
+ private videoService;
1105
+ private store;
1106
+ /** Discrete FPS targets the controller can switch between (ascending order). */
1107
+ private readonly FPS_STEPS;
1108
+ /** Reference ceiling for bitrate (bits/sec) used to normalise bitrate load to 0..1. */
1109
+ private readonly MAX_BITRATE;
1110
+ /**
1111
+ * Cooldown (ms) for any decision (increase or decrease) following an increase.
1112
+ * After an increase the system should react faster.
1113
+ */
1114
+ private readonly COOLDOWN_AFTER_INCREASE_MS;
1115
+ /**
1116
+ * Cooldown (ms) for a decrease following a previous decrease.
1117
+ */
1118
+ private readonly COOLDOWN_DECREASE_AFTER_DECREASE_MS;
1119
+ /**
1120
+ * Cooldown (ms) for an increase following a previous decrease.
1121
+ * The stream needs more time to stabilise before stepping back up.
1122
+ */
1123
+ private readonly COOLDOWN_INCREASE_AFTER_DECREASE_MS;
1124
+ /**
1125
+ * Number of videoStats$ ticks to accumulate before evaluating.
1126
+ * At 250 ms per tick this gives a ~2 s sliding evaluation window,
1127
+ * long enough to smooth out single-frame jitter.
1128
+ */
1129
+ private readonly SAMPLE_WINDOW;
1130
+ /** Current FPS target; starts at max (60 FPS) and adapts downward/upward. */
1131
+ private currentFpsTarget;
1132
+ private samples;
1133
+ private lastDecisionTime;
1134
+ private lastUpgrade;
1135
+ constructor();
1136
+ protected init(): void;
1137
+ /**
1138
+ * Called on every videoStats$ emission (~250 ms).
1139
+ * Accumulates samples and evaluates once per SAMPLE_WINDOW.
1140
+ */
1141
+ private processTick;
1142
+ private handleMonitoring;
1143
+ /**
1144
+ * Combines fuzzy membership values into a single discrete decision.
1145
+ * Rules are evaluated in priority order — first match wins.
1146
+ *
1147
+ * Inputs:
1148
+ * - `fpsRatio` = avgFPS / currentTargetFPS (e.g. 45/60 = 0.75)
1149
+ * - `bitrateLoad` = avgBitrate / 20 Mbit/s (e.g. 12M/20M = 0.6)
1150
+ * - `quality` = mapQpToQuality(avgQP) → 'lime' | 'orange' | 'red'
1151
+ */
1152
+ private evaluateDecision;
1153
+ /**
1154
+ * FPS ratio membership "low".
1155
+ * Input: ratio = actualFPS / targetFPS (e.g. 42/60 = 0.70).
1156
+ *
1157
+ * ratio < 0.7 → 1.0 (clearly failing, e.g. 40/60)
1158
+ * ratio 0.7..0.9 → linear ramp down (e.g. 0.8 → 0.5)
1159
+ * ratio > 0.9 → 0.0 (keeping up)
1160
+ */
1161
+ private membershipFpsLow;
1162
+ /**
1163
+ * FPS ratio membership "ok" — triangle shape.
1164
+ * Input: ratio = actualFPS / targetFPS.
1165
+ *
1166
+ * ratio < 0.8 → 0.0
1167
+ * ratio 0.8..0.95 → ramp up, peak at 0.95 (e.g. 57/60)
1168
+ * ratio 0.95..1.0 → ramp down
1169
+ * ratio > 1.0 → 0.0
1170
+ */
1171
+ private membershipFpsOk;
1172
+ /**
1173
+ * FPS ratio membership "high".
1174
+ * Input: ratio = actualFPS / targetFPS.
1175
+ *
1176
+ * ratio < 0.9 → 0.0
1177
+ * ratio 0.9..1.0 → linear ramp up (e.g. 0.95 → 0.5)
1178
+ * ratio >= 1.0 → 1.0 (meeting or exceeding target, e.g. 60/60)
1179
+ */
1180
+ private membershipFpsHigh;
1181
+ /**
1182
+ * Bitrate load membership "high".
1183
+ * Input: load = currentBitrate / MAX_BITRATE (20 Mbit/s).
1184
+ *
1185
+ * load < 0.5 → 0.0 (below 10 Mbit/s — plenty of headroom)
1186
+ * load 0.5..0.8 → linear ramp (e.g. 13M/20M = 0.65 → 0.5)
1187
+ * load > 0.8 → 1.0 (above 16 Mbit/s — near capacity)
1188
+ */
1189
+ private membershipBitrateHigh;
1190
+ private upgradeFps;
1191
+ /**
1192
+ * Get the next FPS target based on current target and decision.
1193
+ * Clamps to valid FPS_STEPS range.
1194
+ */
1195
+ private getNextFpsTarget;
1196
+ /**
1197
+ * Find the closest FPS step index for a given target value.
1198
+ */
1199
+ private findClosestFpsIndex;
1200
+ /** Average all collected samples for the current evaluation window. */
1201
+ private averageSamples;
1202
+ static ɵfac: i0.ɵɵFactoryDeclaration<FpsMonitorService, never>;
1203
+ static ɵprov: i0.ɵɵInjectableDeclaration<FpsMonitorService>;
1204
+ }
1205
+
1034
1206
  declare function AnswerHandler(this: SignallingService, msg: RTCSessionDescriptionInit): void;
1035
1207
 
1036
1208
  declare function ConfigHandler(this: SignallingService, msg: ConfigMessage): void;
@@ -1142,7 +1314,7 @@ declare class LatencyTimings {
1142
1314
  OnAllLatencyTimingsReady(_: any): void;
1143
1315
  }
1144
1316
 
1145
- declare function mapQpToQuality(VideoEncoderQP: number): Quality;
1317
+ declare const mapQpToQuality: (VideoEncoderQP: number) => Quality;
1146
1318
 
1147
1319
  declare const trackMixpanelEvent: _ngrx_store.ActionCreator<string, (props: {
1148
1320
  event: string;
@@ -2163,5 +2335,9 @@ declare class SafePipe implements PipeTransform {
2163
2335
  static ɵpipe: i0.ɵɵPipeDeclaration<SafePipe, "safe", true>;
2164
2336
  }
2165
2337
 
2166
- export { AFKService, AfkPlaywrightService, AggregatorPlaywrightService, AggregatorService, AnalyticsService, AnswerHandler, CONSOLE_COMMAND_DISABLE_MESSAGES, CONSOLE_COMMAND_ENABLE_MESSAGES, CONSOLE_COMMAND_PIXEL_QUALITY, ClickableOverlayComponent, CommandTelemetryPlaywrightService, CommandTelemetryService, ConfigHandler, ConsoleExtensionsPlaywrightService, ConsoleExtensionsService, 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, EControlSchemeType, EMessageType, EToClientMessageType, FULL_HD_HEIGHT, FULL_HD_WIDTH, FileHandlerService, FileReceiverPlaywrightService, FileReceiverService, FilterSettingsComponent, FreezeFrameComponent, FreezeFramePlaywrightService, FreezeFrameService, IceCandidateHandler, ImageLoadingSrcComponent, InputOptions, InputPlaywrightService, InputService, InstanceReadyHandler, InstanceReservedHandler, IntroSrcComponent, KalmanFilter1D, LatencyTimings, LowBandwidthDetectorComponent, LowBandwidthModalComponent, MINIMAL_FPS, MouseButton, MouseButtonsMask, OnCloseHandler, OnErrorHandler, OnMessageHandler, OnOpenHandler, OrchestrationMessageTypes, POLLING_TIME, PingHandler, PlayerCountHandler, RegionsPingService, ResetTelemetry, SAME_SIZE_THRESHOLD, SCREEN_LOCKER_CONTAINER_ID, SIGNALLING_PERCENT_VALUE, SSInfoHandler, STREAMING_VIDEO_ID, SafePipe, SignallingPlaywrightService, SignallingService, SpecialKeyCodes, StatGraphComponent, StreamStatusTelemetryPlaywrightService, StreamStatusTelemetryService, SubService, TelemetryStart, TelemetryStop, UNREAL_CONFIG, UnrealCommunicatorPlaywrightService, UnrealCommunicatorService, UnrealEffects, UnrealInternalSignalEvents, UnrealSceneComponent, UnrealStatusMessage, VideoRecorder, 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, forceResizeUnrealVideo, fromResizeObserver, fromSignal, fromUnrealCallBackSignal, getActiveUrl, getImageFromVideoStream, getRtcErrorMessage, iceConnectionFailed, initSignalling, initialState, isLoaderScreenVisible, keepMaxUntilReset, mapQpToQuality, observeCommandResponse, provideAngularUnrealModule, reconnectPeer, reconnectPeerFailed, reconnectPeerSuccess, removeExileCommands, resetAfk, resetAfkAction, resetConfig, resetDataChannelForReconnect, resetIntroSrc, resetWarnTimeout, saveAnalyticsEvent, selectClientAndViewIds, selectCommandProgress, selectCommandsInProgress, selectFreezeFrameCombinedDataUrl, selectFreezeFrameDataUrl, selectFreezeFrameDataUrlFromVideo, selectFreezeFrameProgressMessageFromVideo, selectIsAutostart, selectIsExistMatchUrls, selectIsFreezeFrameLoading, selectIsVideoPlayingAndDataChannelConnected, selectLastCommandInProgress, selectLoaderCommands, selectShowLoader, selectShowReconnectPopup, selectSignalingParameters, selectStreamConfig, selectTotalProgress, selectWarnTimeout, sendSignal, 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, showPopupWithoutAutoStart, showUnrealErrorMessage, smoothTransition, startStream, trackMixpanelEvent, unrealFeature, unrealReducer, updateCirrusInfo };
2338
+ declare function provideAngularUnrealModule(config?: {
2339
+ playwright: boolean;
2340
+ }): i0.EnvironmentProviders;
2341
+
2342
+ export { AFKService, AfkPlaywrightService, AggregatorPlaywrightService, AggregatorService, AnalyticsService, AnswerHandler, CONSOLE_COMMAND_DISABLE_MESSAGES, CONSOLE_COMMAND_ENABLE_MESSAGES, CONSOLE_COMMAND_PIXEL_QUALITY, ClickableOverlayComponent, CommandTelemetryPlaywrightService, CommandTelemetryService, ConfigHandler, ConsoleExtensionsPlaywrightService, ConsoleExtensionsService, 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, EControlSchemeType, EMessageType, EToClientMessageType, 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, MouseButton, MouseButtonsMask, OnCloseHandler, OnErrorHandler, OnMessageHandler, OnOpenHandler, OrchestrationMessageTypes, POLLING_TIME, PingHandler, PlayerCountHandler, RegionsPingService, ResetTelemetry, SAME_SIZE_THRESHOLD, SCREEN_LOCKER_CONTAINER_ID, SIGNALLING_PERCENT_VALUE, SSInfoHandler, STREAMING_VIDEO_ID, SafePipe, SignallingPlaywrightService, SignallingService, SpecialKeyCodes, StatGraphComponent, StreamStatusTelemetryPlaywrightService, StreamStatusTelemetryService, SubService, TelemetryStart, TelemetryStop, UNREAL_CONFIG, UnrealCommunicatorPlaywrightService, UnrealCommunicatorService, UnrealEffects, UnrealInternalSignalEvents, UnrealSceneComponent, UnrealStatusMessage, VideoRecorder, 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, forceResizeUnrealVideo, fromResizeObserver, fromSignal, fromUnrealCallBackSignal, getActiveUrl, getImageFromVideoStream, getRtcErrorMessage, iceConnectionFailed, initSignalling, initialState, isLoaderScreenVisible, keepMaxUntilReset, mapQpToQuality, observeCommandResponse, provideAngularUnrealModule, reconnectPeer, reconnectPeerFailed, reconnectPeerSuccess, removeExileCommands, resetAfk, resetAfkAction, resetConfig, resetDataChannelForReconnect, resetIntroSrc, resetWarnTimeout, saveAnalyticsEvent, selectClientAndViewIds, selectCommandProgress, selectCommandsInProgress, selectFreezeFrameCombinedDataUrl, selectFreezeFrameDataUrl, selectFreezeFrameDataUrlFromVideo, selectFreezeFrameProgressMessageFromVideo, selectIsAutostart, selectIsExistMatchUrls, selectIsFreezeFrameLoading, selectIsVideoPlayingAndDataChannelConnected, selectLastCommandInProgress, selectLoaderCommands, selectShowLoader, selectShowReconnectPopup, selectSignalingParameters, selectStreamConfig, selectTotalProgress, selectWarnTimeout, sendSignal, 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, showPopupWithoutAutoStart, showUnrealErrorMessage, smoothTransition, startStream, trackMixpanelEvent, unrealFeature, unrealReducer, updateCirrusInfo };
2167
2343
  export type { AnySignalingMessage, AwsInstance, CandidateMessage, CloseReason, CommandsLoaderState, ConfigMessage, ConnectionError, DataFlowCheckResult, DisconnectReasonType, EControlSchemeTypeValues, EMessageTypeValues, ForceClientDisconnect, FreezeFrameMessage, IAggregatedStat, InboundVideoStats, InputProps, InstanceReady, InstanceReserved, InterruptClientStream, LBMStats, ListStreamersMessage, MessageBase, 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 };