@3dsource/angular-unreal-module
Version:
Angular Unreal module for connect with unreal engine stream
1,032 lines (973 loc) • 77.2 kB
TypeScript
import * as i0 from '@angular/core';
import { InjectionToken, AfterViewInit, OnInit, DestroyRef, ElementRef, OnDestroy, PipeTransform } from '@angular/core';
import { DialogRef } from '@angular/cdk/dialog';
import * as _3dsource_angular_unreal_module from '@3dsource/angular-unreal-module';
import * as _ngrx_store from '@ngrx/store';
import { Store } from '@ngrx/store';
import * as rxjs from 'rxjs';
import { Observable, Subject } from 'rxjs';
import { MetaBoxCommandList, MetaBoxCommandPacket, FResetControlClampsCommand, FCameraRecenterCommand, FUnLoadAllLevelsCommand, FDragCommand, FUnselectAllProductsCommand, FPauseSequenceCommand, FStopSequenceCommand, FUnLoadAllProductsCommand, FRequestCameraPresetCommand, FLoopBackCommand, FExecuteConsoleCommandCommand, FBoolPayload, FFreezeFrameCommand, FFreezeFrameV2Command, FUnfreezeFrameV2Command, FDragSequencePayload, FDragSequenceCommand, FAlignProductsToPlanePayload, FAlignProductsToPlaneCommand, FCameraPresetPayload, FApplyCameraPresetCommand, FLoadSceneStatePayload, FLoadSceneStateCommand, FClickSnapCommand, FControlCameraModePayload, FSetControlCameraModeCommand, FCameraClampsPayload, FSetCameraControlClampsCommand, FSetPawnMovementModePayload, FSetPawnMovementModeCommand, FEnableTeleportCommand, FEnableSceneStateCallbackCommand, FApplyZoomPayload, FApplyZoomCommand, FFVectorPayload, FCameraBoxCommand, FDropPayload, FDropCommand, FSelectProductByObjectNamePayload, FSelectProductByObjectNameCommand, FGizmoTypePayload, FChangeGizmoTypeCommand, FWeatherPayload, FWeatherCommand, FFitToObjectsPayload, FFitToObjectsCommand, FSetProductsLocationPayload, FSetProductsLocationCommand, FResolutionPayload, FChangeResolutionCommand, FEnableSpinnerModeCommand, FControlSensitivityPayload, FControlSensitivityCommand, FCameraSettingsPayload, FCameraSettingsCommand, FDebugModeCommand, FEnableControlsCommand, FFStringPayload, FInitSequenceByObjectNamePayload, FInitSequenceByObjectNameCommand, FPlaySequencePayload, FPlaySequenceCommand, FJumpToSequencePayload, FJumpToSequenceCommand, FMoveSelectedPayload, FMoveSelectedCommand, FRotatePayload, FRotateSelectedCommand, FRenderPayload, FTakeRenderCommand, FTakeSpinnerRenderPreviewCommand, FTakeSpinnerRenderCommand, FSetMaterialPayload, FSetMaterialCommand, FProductPayload, FLoadProductCommand, FUnLoadProductByObjectNameCommand, FLevelPayload, FLoadLevelCommand, FComposurePayload, FEnableComposureCommand, FFStringsPayload, FClampPanToProductsCommand, FSettingsSequencePayload, FSetSettingsSequenceCommand } from '@3dsource/types-unreal';
import { IKeyCode, ImageOutputValues } from '@3dsource/utils';
import { SafeHtml, SafeStyle, SafeScript, SafeUrl, SafeResourceUrl } from '@angular/platform-browser';
import * as _ngrx_effects from '@ngrx/effects';
declare class ClickableOverlayComponent {
state: i0.Signal<{
message: string;
className: string;
isActivityDetected: boolean;
onOverlayClick: () => void;
} | null | undefined>;
static ɵfac: i0.ɵɵFactoryDeclaration<ClickableOverlayComponent, never>;
static ɵcmp: i0.ɵɵComponentDeclaration<ClickableOverlayComponent, "app-clickable-overlay", never, {}, {}, never, never, true, never>;
}
declare class FreezeFrameComponent {
private store;
freezeFrameProgressMessageFromVideo: i0.Signal<number | null | undefined>;
combinedFreeze: i0.Signal<string | null | undefined>;
static ɵfac: i0.ɵɵFactoryDeclaration<FreezeFrameComponent, never>;
static ɵcmp: i0.ɵɵComponentDeclaration<FreezeFrameComponent, "app-freeze-frame", never, {}, {}, never, never, true, never>;
}
declare class LowBandwidthModalComponent {
dialogRef: DialogRef<any, any>;
close(value?: boolean): void;
static ɵfac: i0.ɵɵFactoryDeclaration<LowBandwidthModalComponent, never>;
static ɵcmp: i0.ɵɵComponentDeclaration<LowBandwidthModalComponent, "app-low-bandwidth-modal", never, {}, {}, never, never, true, never>;
}
declare class SubService {
store: Store<any>;
disconnect$: rxjs.Observable<false>;
}
declare class AFKService extends SubService {
private enabled;
private closeTimeout;
private active;
private warnTimer;
private countdown;
private countdownTimer;
private selectWarnTimeout;
constructor();
initAfk(): void;
init(): void;
private hideOverlay;
/**
* Start a timer which when elapsed will warn the user they are inactive.
*/
private startAfkWarningTimer;
/**
* If the user interacts, then reset the warning timer.
*/
private resetAfkWarningTimer;
/**
* Update the count-down spans number for the overlay
* @param countdown the count down number to be inserted into the span for updating
*/
private updateCountDown;
/**
* Update the text overlays inner text
* @param message the update text to be inserted into the overlay
*/
private dispatchMessage;
private stop;
private reset;
private showAfkOverlay;
static ɵfac: i0.ɵɵFactoryDeclaration<AFKService, never>;
static ɵprov: i0.ɵɵInjectableDeclaration<AFKService>;
}
declare class AggregatorService extends SubService {
private readonly selectStreamConfig;
private readonly videoService;
private readonly webrtcPlayer;
private readonly freezeFrame;
private readonly unrealInitialConfig;
private readonly responseEventListeners;
/**
* Never called for now
*/
private readonly destroy$;
constructor();
init(): void;
private initialize;
private addResponseEventListener;
private showOnScreenKeyboard;
private removeLoadScreen;
private startListenCallbacks;
private showMessageFromUnreal;
private resetResponseList;
private listenWebRTC;
private dataChannelMessageHandler;
static ɵfac: i0.ɵɵFactoryDeclaration<AggregatorService, never>;
static ɵprov: i0.ɵɵInjectableDeclaration<AggregatorService>;
}
declare class CommandTelemetryService {
private readonly appId;
private commandsSent;
private exileTimout;
private pollingTime;
private commandSequenceNumber;
/**
* The time the telemetry service was started.
* Initialized at a moment when connectToSignaling() was called.
* @private
*/
private startTime;
private lastTime;
private uuid;
private viewId;
private readonly sessionId;
private readonly userId;
private payloads;
private readonly httpClient;
private readonly unrealInitialConfig;
constructor();
private get timeNow();
private get sessionTime();
private get canSkipSending();
decorate(funcToDecorate: IToBeDecorated): (data: any) => void;
private start;
private reset;
private trackStartCommand;
private trackStopCommand;
private pushStatToBuffer;
private trackTime;
private send;
/**
* Listens for Unreal Engine callbacks.
* Subscribes to the Unreal Engine event loop back and filters out events that do not have a tracking ID.
* When a callback with a tracking ID is received,
* it stops tracking the time for that command and filters out commands
* that have exceeded the timeout limit.
*/
private listenCallbacks;
private pushData;
/**
* Removes commands that have exceeded the timeout limit.
* Iterates over all the commands sent and checks if the difference between the current time
* and the time the command was sent is greater than the timeout limit.
* If it is, the command is marked for deletion.
* After checking all commands, those marked for deletion are removed from the commands sent.
* This method is used to ensure that commands that are not responded to within a certain time frame
* do not remain in the commandsSent object indefinitely, which could lead to memory leaks over time.
*/
private removeExileCommands;
/**
* Wraps the provided function with telemetry tracking.
* Generates a unique tracking ID and adds it to the data object.
* Pushes the command sent to the payloads with the tracking ID.
* Starts tracking the time for the command.
* Finally, calls the provided function with the modified data object.
*
* @param {IToBeDecorated} funcToDecorate - The function to be decorated with telemetry tracking.
* @param {any} data - The data object to be passed to the function. It will be augmented with a unique tracking ID.
*/
private wrapper;
static ɵfac: i0.ɵɵFactoryDeclaration<CommandTelemetryService, never>;
static ɵprov: i0.ɵɵInjectableDeclaration<CommandTelemetryService>;
}
type IToBeDecorated = (data: any) => unknown;
declare function TelemetryStart(externalId: string): void;
declare function TelemetryStop(externalId: string, payload?: any): void;
declare function ResetTelemetry(): void;
declare class ConsoleExtensionsService extends SubService {
private httpClient;
private isDevMode;
init(): void;
private unrealHelp;
static ɵfac: i0.ɵɵFactoryDeclaration<ConsoleExtensionsService, never>;
static ɵprov: i0.ɵɵInjectableDeclaration<ConsoleExtensionsService>;
}
declare class DevModeService {
get isDevMode(): boolean;
setDevMode(value: boolean): void;
static ɵfac: i0.ɵɵFactoryDeclaration<DevModeService, never>;
static ɵprov: i0.ɵɵInjectableDeclaration<DevModeService>;
}
declare class FreezeFrameService extends SubService {
receiving: boolean;
private size;
private jpeg;
private freezeFrameOverlay;
init(): void;
setData(view: Uint8Array): void;
private dispatchInProgress;
start(view: Uint8Array): void;
invalidate(): void;
private showFreezeFrame;
static ɵfac: i0.ɵɵFactoryDeclaration<FreezeFrameService, never>;
static ɵprov: i0.ɵɵInjectableDeclaration<FreezeFrameService>;
}
declare class InputService extends SubService {
private commandsSender;
private isDevMode;
readonly defaultKeys: (17 | 37 | 38 | 39 | 40 | 46 | 65 | 68 | 83 | 87 | 107 | 109 | 187 | 189)[];
private availableKeys;
private options;
private reInit$;
private deactivatedVideoTrigger$;
private normalizeAndQuantizeUnsigned;
private unQuantizeAndDenormalizeUnsigned;
private normalizeAndQuantizeSigned;
video: HTMLVideoElement;
videoBoundingRect: DOMRect;
fingerIds: Map<any, any>;
maxByteValue: number;
fingers: number[];
private offsetParams;
constructor();
useKeyboardKeys(keys: IKeyCode[]): void;
private setup;
/**
* We use `object-fit: cover` on the video element. Since the video can have
* a different aspect ratio from its container (and potentially be larger),
* we need to calculate offsets and scale factors to map container (e.g., mouse)
* coordinates back to the actual video coordinates.
*
* @param videoElement The video element whose scaling and positioning we need
* @returns Object containing offset and scale info for coordinate normalization
* @private
*/
private getObjectFitOffset;
private setupNormalizeAndQuantize;
private sendInputData;
private registerInputs;
private getTouchPositionWithOffset;
private getMousePositionWithOffset;
private registerTouchEvents;
focusWindow(): void;
emitMouseMove(x: number, y: number, deltaX: number, deltaY: number): void;
emitMouseDown(button: number, x: number, y: number): void;
emitMouseUp(button: number, x: number, y: number): void;
emitMouseWheel(delta: number, x: number, y: number): void;
private releaseMouseButtons;
private pressMouseButtons;
private registerHoveringMouseEvents;
private registerMouseEnterAndLeaveEvents;
private isKeyCodeBrowserKey;
private getKeyCode;
private registerKeyboardEvents;
private startListenKeys;
}
declare class RegionsPingService {
private httpClient;
private unrealInitialConfig;
config: {
ping_count: number;
ping_timeout: number;
max_parallel_requests: number;
bust_cache: boolean;
};
constructor();
getFastest(regionListUrl?: string): Observable<string | undefined>;
getPingResult(providers: ProvidersData): Observable<PingResult | null>;
getProviders(regionList?: string): Observable<ProvidersData>;
private startPinging;
private checkLatency;
private fetchWithTimeout;
static ɵfac: i0.ɵɵFactoryDeclaration<RegionsPingService, never>;
static ɵprov: i0.ɵɵInjectableDeclaration<RegionsPingService>;
}
interface ProvidersData {
timeout?: number;
regions: Region[];
}
interface Region {
region_code: string;
url: string;
timeout?: number;
}
interface PingResult {
region_code: string | undefined;
result: number[];
}
declare const WSCloseCode_NORMAL_CLOSURE = 3000;
declare const WSCloseCode_NORMAL_AFK_TIMEOUT = 3001;
declare const WSCloseCode_NORMAL_MANUAL_DISCONNECT = 3002;
declare const WSCloseCode_NORMAL_CIRRUS_CLOSED = 3003;
declare const WSCloseCodes: readonly [3000, 3001, 3002, 3003];
type WSCloseCodesValues = (typeof WSCloseCodes)[number];
interface CloseReason {
code: WSCloseCodesValues;
reason: string;
}
declare const DisconnectReason: {
readonly afk: "afk";
readonly none: "none";
readonly reset: "reset";
readonly wsOnError: "wsOnError";
readonly dataChannelClosed: "dataChannelClosed";
readonly dataChannelTimeout: "dataChannelTimeout";
};
type DisconnectType = (typeof DisconnectReason)[keyof typeof DisconnectReason];
interface UnrealError {
errorType: UnrealErrorType;
message: string;
}
type UnrealErrorType = 'WebRTCError' | 'WebSocketError';
interface FreezeFrameMessage {
dataUrl: string | null;
progress: number | null;
}
interface UnrealInitialConfig {
customErrorsEndpoint?: string;
commandTelemetryReceiver?: string;
regionsPingUrl?: string;
screenLockerContainerId?: string;
dataChannelConnectionTimeout?: number;
}
declare const SpecialKeyCodes: {
BackSpace: number;
Shift: number;
Control: number;
Alt: number;
RightShift: number;
RightControl: number;
RightAlt: number;
};
declare const MouseButton: {
MainButton: number;
AuxiliaryButton: number;
SecondaryButton: number;
FourthButton: number;
FifthButton: number;
};
declare const MouseButtonsMask: {
PrimaryButton: number;
SecondaryButton: number;
AuxiliaryButton: number;
FourthButton: number;
FifthButton: number;
};
declare const EControlSchemeType: {
readonly LockedMouse: 0;
readonly HoveringMouse: 1;
readonly Default: 2;
};
type EControlSchemeTypeValues = (typeof EControlSchemeType)[keyof typeof EControlSchemeType];
declare const EMessageType: {
readonly IFrameRequest: 0;
readonly RequestQualityControl: 1;
readonly MaxFpsRequest: 2;
readonly AverageBitrateRequest: 3;
readonly StartStreaming: 4;
readonly StopStreaming: 5;
readonly LatencyTest: 6;
readonly RequestInitialSettings: 7;
readonly UIInteraction: 50;
readonly Command: 51;
readonly KeyDown: 60;
readonly KeyUp: 61;
readonly KeyPress: 62;
readonly MouseEnter: 70;
readonly MouseLeave: 71;
readonly MouseDown: 72;
readonly MouseUp: 73;
readonly MouseMove: 74;
readonly MouseWheel: 75;
readonly TouchStart: 80;
readonly TouchEnd: 81;
readonly TouchMove: 82;
};
type EMessageTypeValues = (typeof EMessageType)[keyof typeof EMessageType];
declare const EToClientMessageType: {
readonly QualityControlOwnership: 0;
readonly Response: 1;
readonly Command: 2;
readonly FreezeFrame: 3;
readonly UnfreezeFrame: 4;
readonly VideoEncoderAvgQP: 5;
readonly LatencyTest: 6;
readonly InitialSettings: 7;
readonly InputControlOwnership: 12;
readonly Protocol: 255;
};
declare const UNREAL_CONFIG: InjectionToken<UnrealInitialConfig>;
declare const InputOptions: InputProps;
declare const UnrealStatusMessage: {
readonly CONNECTING_TO_SESSION: "Connecting to session.";
readonly STARTING_YOUR_SESSION: "Starting your session";
};
declare const DEBOUNCE_TO_MANY_RESIZE_CALLS = 100;
declare const SAME_SIZE_THRESHOLD = 1.01;
declare const MINIMAL_FPS = 6;
declare const STREAMING_VIDEO_ID = "streamingVideo";
declare const CONSOLE_COMMAND_ENABLE_MESSAGES = "EnableAllScreenMessages";
declare const CONSOLE_COMMAND_DISABLE_MESSAGES = "DisableAllScreenMessages";
declare const CONSOLE_COMMAND_PIXEL_QUALITY = "PixelStreaming.FreezeFrameQuality 95";
declare const FULL_HD_WIDTH = 1920;
declare const FULL_HD_HEIGHT = 1080;
declare const WS_TIMEOUT = 2000;
declare const WS_OPEN_STATE = 1;
declare const DEFAULT_TIMEOUT_PERIOD = 15;
declare const DEFAULT_WARN_TIMEOUT = 120;
declare const DATA_CHANNEL_CONNECTION_TIMEOUT = 8000;
declare const SIGNALLING_PERCENT_VALUE = 56;
declare const SCREEN_LOCKER_CONTAINER_ID = "3dsource_start_screen";
interface NormalizeAndQuantizeUnsignedValue {
inRange: boolean;
x: number;
y: number;
}
interface UnquantizeAndDenormalizeUnsignedValue {
x: number;
y: number;
}
interface NormalizeAndQuantizeSignedValue {
x: number;
y: number;
}
interface InputProps {
controlScheme: EControlSchemeTypeValues;
suppressBrowserKeys: boolean;
fakeMouseWithTouches: boolean;
}
declare function AnswerHandler(this: SignallingService, msg: RTCSessionDescriptionInit): void;
declare function ConfigHandler(this: SignallingService, msg: ConfigMessage): void;
declare function IceCandidateHandler(this: SignallingService, msg: {
candidate: RTCIceCandidate;
}): void;
declare function InstanceReadyHandler(this: SignallingService, _: InstanceReady): void;
declare function InstanceReservedHandler(this: SignallingService, msg: InstanceReserved): void;
declare function PingHandler(this: SignallingService): void;
declare function PlayerCountHandler(this: SignallingService, msg: PlayerCountMessage): void;
declare function SSInfoHandler(this: SignallingService, msg: SSInfo): null;
declare function OnCloseHandler(this: SignallingService, e: CloseEvent): void;
declare function OnErrorHandler(this: SignallingService, e: Event): void;
declare function OnMessageHandler(this: SignallingService, e: MessageEvent<string | Blob>): void;
declare function OnOpenHandler(this: SignallingService): void;
declare const clampAndKeepMaxPercents: () => ((source: Observable<number>) => Observable<number>);
declare function observeCommandResponse<K extends keyof MetaBoxCommandList, T extends MetaBoxCommandList[K] = MetaBoxCommandList[K]>(data: T, sender: (data: T) => void, timeOut?: number, dispatchOnTimeout?: boolean): Observable<ObservedCallbackResponse<T> | never>;
interface ObservedCallbackResponse<T extends MetaBoxCommandPacket> {
json: {
commandCallback: T;
};
}
declare function decodeData(anyData: any): string;
interface FilterSettings {
/**
* Minimum number of kilobits per second to trigger low bandwidth
*/
minimumBitrate: number;
/**
* Amount of a percentage drop to trigger a yellow warning
*/
yellowFlag: number;
/**
* Amount of a percentage drop to trigger a red warning
*/
redFlag: number;
/**
* Minimum number of frames per second to trigger low bandwidth
*/
minimumFps: number;
/**
* Time to wait before checking if we can switch to low bandwidth
*/
monitoringDelayTime: number;
initialBitrateEstimate: number;
initialErrorCovariance: number;
processNoise: number;
measurementNoise: number;
panelOpen: boolean;
}
/**
* Default LBM Filter Parameters
*/
declare const DefaultFilterModel: FilterSettings;
interface DataFlowCheckResult {
isDropDetected: boolean;
dropPercentage: number;
activeMedian: number;
quality: Quality;
message: string;
dataHistory: number[];
config: {
yellowFlagThresholdPercentage: number;
redFlagThresholdPercentage: number;
historyBufferLength: number;
splitPoint: number;
};
}
declare class DataFlowMonitor {
protected yellowFlagThresholdPercentage: number;
protected redFlagThresholdPercentage: number;
protected historyBufferLength: number;
protected splitPoint: number;
protected dataHistory: number[];
/**
* Initializes the DataFlowMonitor monitor.
* @param yellowFlagThresholdPercentage - The percentage drop to trigger a YELLOW warning (default: 15%).
* @param redFlagThresholdPercentage - The percentage drop to trigger a RED warning (default: 30%).
* @param historyBufferLength - buffer length (default: 100).
* @param splitPoint - The point at which to split the history buffer into two halves (default: 0.5).
*/
constructor(yellowFlagThresholdPercentage?: number, redFlagThresholdPercentage?: number, historyBufferLength?: number, splitPoint?: number);
reset(): void;
config(data: FilterSettings): void;
/**
* Adds a new bitrate measurement and checks for significant drops.
* @param currentValue - The current bitrate in kbps.
* @returns BitrateCheckResult indicating if a drop was detected.
*/
addValue(currentValue: number): DataFlowCheckResult;
}
declare const dispatchResize: () => void;
declare const forceResizeUnrealVideo: () => void;
declare function getRtcErrorMessage(code: number | null): string | undefined;
type Descriptor = MetaBoxCommandList & SignalDescriptor;
/**
* UnrealInternalSignalEvents commands list wrapper listener
* @param event
*/
declare function fromSignal<K extends keyof Descriptor>(event: K): Observable<Descriptor[K]>;
type ArgumentType<K extends keyof Descriptor> = Descriptor[K] extends void ? never : Descriptor[K];
/**
* UnrealInternalSignalEvents commands list wrapper sender
* @param event
* @param args
*/
declare function sendSignal<K extends keyof Descriptor>(event: K, ...args: ArgumentType<K> extends never ? [] : [ArgumentType<K>]): void;
declare function fromUnrealCallBackSignal<K extends keyof Descriptor>(command: K): Observable<Descriptor[K]>;
declare const floatToSmoothPercents: () => ((source: Observable<number>) => Observable<number>);
/**
* Creates an observable that emits values transitioning smoothly from the start value to the end value over a specified duration.
* The transition is performed using linear interpolation (lerp) and clamped to the range [0, 1].
*
* @param {number} start - The starting value of the transition.
* @param {number} end - The ending value of the transition.
* @param {number} duration - The duration of the transition in milliseconds.
* @returns {Observable<number>} An observable that emits the interpolated values from start to end over the specified duration.
*/
declare const smoothTransition: (start: number, end: number, duration: number) => Observable<number>;
declare const getImageFromVideoStream: (takeSizeFrom?: "video" | "constant", imageOutput?: ImageOutputValues, sizes?: StreamResolutionProps) => string | null;
declare function getActiveUrl(urls: string[]): Generator<string, void, unknown>;
declare class KalmanFilter1D {
private estimate;
private uncertainty;
private processNoise;
private measurementNoise;
/**
* @param initialEstimate Initial guess of the state.
* @param initialUncertainty Initial uncertainty in the guess.
* @param processNoise Process variance (Q) representing model uncertainty.
* @param measurementNoise Measurement variance (R) representing noise in measurements.
*/
constructor(initialEstimate: number, initialUncertainty: number, processNoise: number, measurementNoise: number);
/**
* Incorporates a new measurement and returns the updated estimate.
* @param measurement The new measurement value.
*/
update(measurement: number): number;
config(data: FilterSettings): void;
}
declare class LatencyTimings {
TestStartTimeMs: number | null;
UEReceiptTimeMs: number | null;
UEEncodeMs: number | null;
UECaptureToSendMs: number | null;
UETransmissionTimeMs: number | null;
BrowserReceiptTimeMs: number | null;
FrameDisplayDeltaTimeMs: number | null;
Reset(): void;
SetUETimings(UETimings: any): void;
SetFrameDisplayDeltaTime(DeltaTimeMs: number): void;
OnAllLatencyTimingsReady(_: any): void;
}
declare function mapQpToQuality(VideoEncoderQP: number): Quality;
declare const getResetControlClampsCommand: () => FResetControlClampsCommand;
declare const getCameraRecenterCommand: () => FCameraRecenterCommand;
declare const unLoadAllLevelsCommand: () => FUnLoadAllLevelsCommand;
declare const getDragCommand: () => FDragCommand;
declare const getUnselectAllProductsCommand: () => FUnselectAllProductsCommand;
declare const getPauseSequenceCommand: () => FPauseSequenceCommand;
declare const getStopSequenceCommand: () => FStopSequenceCommand;
declare const getUnLoadAllProductsCommand: () => FUnLoadAllProductsCommand;
declare const getRequestCameraPresetCommand: () => FRequestCameraPresetCommand;
declare const getLoopBackCommand: () => FLoopBackCommand;
declare const getSetFpsCommand: (fpsRequired: number) => FExecuteConsoleCommandCommand;
declare const getFreezeFrameCommand: (payload: FBoolPayload, source: string) => FFreezeFrameCommand;
declare const getFreezeFrameNative: () => FFreezeFrameV2Command;
declare const getUnfreezeFrameNative: () => FUnfreezeFrameV2Command;
declare const getDragSequenceCommand: (payload: FDragSequencePayload) => FDragSequenceCommand;
declare const alignProductsToPlaneCommand: (payload: FAlignProductsToPlanePayload) => FAlignProductsToPlaneCommand;
declare const getApplyCameraPresetCommand: (payload: FCameraPresetPayload) => FApplyCameraPresetCommand;
declare const getLoadSceneStateCommand: (payload: FLoadSceneStatePayload) => FLoadSceneStateCommand;
declare const getClickSnapCommand: (payload: FBoolPayload) => FClickSnapCommand;
declare const getSetControlCameraModeCommand: (payload: FControlCameraModePayload) => FSetControlCameraModeCommand;
declare const getSetCameraControlClampsCommand: (payload: FCameraClampsPayload) => FSetCameraControlClampsCommand;
declare const getSetPawnMovementModeCommand: (payload: FSetPawnMovementModePayload) => FSetPawnMovementModeCommand;
declare const getEnableTeleportCommand: (payload: FBoolPayload) => FEnableTeleportCommand;
declare const getEnableSceneStateCallbackCommand: (payload: FBoolPayload) => FEnableSceneStateCallbackCommand;
declare const getApplyZoomCommand: (payload: FApplyZoomPayload) => FApplyZoomCommand;
declare const getCameraBoxCommand: (payload: FFVectorPayload) => FCameraBoxCommand;
declare const getDropCommand: (payload?: FDropPayload) => FDropCommand;
declare const getSelectProductByObjectNameCommand: (payload: FSelectProductByObjectNamePayload) => FSelectProductByObjectNameCommand;
declare const getChangeGizmoTypeCommand: (payload: FGizmoTypePayload) => FChangeGizmoTypeCommand;
declare const getWeatherCommand: (payload: FWeatherPayload) => FWeatherCommand;
declare const getFitToObjectsCommand: (payload?: FFitToObjectsPayload) => FFitToObjectsCommand;
declare const setProductsLocationCommand: (payload: FSetProductsLocationPayload) => FSetProductsLocationCommand;
declare const getChangeResolutionCommand: (payload: FResolutionPayload) => FChangeResolutionCommand;
declare const getEnableSpinnerModeCommand: (payload: FBoolPayload) => FEnableSpinnerModeCommand;
declare const getControlSensitivityCommand: (payload: FControlSensitivityPayload) => FControlSensitivityCommand;
declare const getCameraSettingsCommand: (payload: FCameraSettingsPayload) => FCameraSettingsCommand;
declare const getDebugModeCommand: (payload: FBoolPayload) => FDebugModeCommand;
declare const getEnableControlsCommand: (payload: FBoolPayload) => FEnableControlsCommand;
declare const getExecuteConsoleCommand: (payload: FFStringPayload) => FExecuteConsoleCommandCommand;
declare const getInitSequenceByObjectNameCommand: (payload: FInitSequenceByObjectNamePayload) => FInitSequenceByObjectNameCommand;
declare const getPlaySequenceCommand: (payload: FPlaySequencePayload) => FPlaySequenceCommand;
declare const getJumpToSequenceCommand: (payload: FJumpToSequencePayload) => FJumpToSequenceCommand;
declare const getMoveSelectedCommand: (payload: FMoveSelectedPayload) => FMoveSelectedCommand;
declare const getRotateSelectedCommand: (payload: FRotatePayload) => FRotateSelectedCommand;
declare const getTakeRenderCommand: (payload: FRenderPayload) => FTakeRenderCommand;
declare const getTakeSpinnerRenderPreviewCommand: (payload: FRenderPayload) => FTakeSpinnerRenderPreviewCommand;
declare const getTakeSpinnerRenderCommand: (payload: FRenderPayload) => FTakeSpinnerRenderCommand;
declare const getSetMaterialCommand: (payload: FSetMaterialPayload) => FSetMaterialCommand;
declare const getLoadProductCommand: (payload: FProductPayload) => FLoadProductCommand;
declare const getUnLoadProductByObjectNameCommand: (payload: FFStringPayload) => FUnLoadProductByObjectNameCommand;
declare const getLoadLevelCommand: (payload: FLevelPayload) => FLoadLevelCommand;
declare const getEnableComposureCommand: (payload: FComposurePayload) => FEnableComposureCommand;
declare const clampPanToProductsCommand: (payload?: FFStringsPayload) => FClampPanToProductsCommand;
declare const getSetSettingsSequenceCommand: (payload: FSettingsSequencePayload) => FSetSettingsSequenceCommand;
declare const trackMixpanelEvent: _ngrx_store.ActionCreator<string, (props: {
event: string;
data?: unknown;
}) => {
event: string;
data?: unknown;
} & _ngrx_store.Action<string>>;
declare const changeLowBandwidth: _ngrx_store.ActionCreator<string, (props: {
lowBandwidth: boolean;
stats?: LBMStats;
}) => {
lowBandwidth: boolean;
stats?: LBMStats;
} & _ngrx_store.Action<string>>;
declare const setMaxFps: _ngrx_store.ActionCreator<string, (props: {
maxFps: number;
}) => {
maxFps: number;
} & _ngrx_store.Action<string>>;
declare const destroyRemoteConnections: _ngrx_store.ActionCreator<string, (props: {
disconnectReason: DisconnectType;
}) => {
disconnectReason: DisconnectType;
} & _ngrx_store.Action<string>>;
declare const destroyConnectionsAndResetState: _ngrx_store.ActionCreator<string, () => _ngrx_store.Action<string>>;
declare const setCirrusConnected: _ngrx_store.ActionCreator<string, () => _ngrx_store.Action<string>>;
declare const setCirrusDisconnected: _ngrx_store.ActionCreator<string, () => _ngrx_store.Action<string>>;
declare const changeStatusMainVideoOnScene: _ngrx_store.ActionCreator<string, (props: {
isVideoPlaying: boolean;
}) => {
isVideoPlaying: boolean;
} & _ngrx_store.Action<string>>;
declare const setAwsInstance: _ngrx_store.ActionCreator<string, (props: {
wsUrl: string | null;
pollingUrl: string | null;
instanceName: string | null;
}) => {
wsUrl: string | null;
pollingUrl: string | null;
instanceName: string | null;
} & _ngrx_store.Action<string>>;
declare const setStatusMessage: _ngrx_store.ActionCreator<string, (props: {
message: string | null;
}) => {
message: string | null;
} & _ngrx_store.Action<string>>;
declare const setStatusPercentSignallingServer: _ngrx_store.ActionCreator<string, (props: {
percent: number | null;
}) => {
percent: number | null;
} & _ngrx_store.Action<string>>;
declare const setFreezeFrame: _ngrx_store.ActionCreator<string, (props: {
dataUrl: string | null;
progress: number | null;
}) => {
dataUrl: string | null;
progress: number | null;
} & _ngrx_store.Action<string>>;
declare const setMatchUrls: _ngrx_store.ActionCreator<string, (props: {
urls: string[];
}) => {
urls: string[];
} & _ngrx_store.Action<string>>;
declare const setStreamClientCompanyId: _ngrx_store.ActionCreator<string, (props: {
id: string;
}) => {
id: string;
} & _ngrx_store.Action<string>>;
declare const setStreamViewId: _ngrx_store.ActionCreator<string, (props: {
id: string;
}) => {
id: string;
} & _ngrx_store.Action<string>>;
declare const setIntroImageSrc: _ngrx_store.ActionCreator<string, (props: {
src: string;
}) => {
src: string;
} & _ngrx_store.Action<string>>;
declare const setLoadingImageSrc: _ngrx_store.ActionCreator<string, (props: {
src: string;
}) => {
src: string;
} & _ngrx_store.Action<string>>;
declare const setIntroVideoSrc: _ngrx_store.ActionCreator<string, (props: {
src: string;
}) => {
src: string;
} & _ngrx_store.Action<string>>;
declare const resetIntroSrc: _ngrx_store.ActionCreator<string, () => _ngrx_store.Action<string>>;
declare const setFreezeFrameFromVideo: _ngrx_store.ActionCreator<string, (props: {
dataUrl: string | null;
progress: number | null;
}) => {
dataUrl: string | null;
progress: number | null;
} & _ngrx_store.Action<string>>;
declare const setEstablishingConnection: _ngrx_store.ActionCreator<string, (props: {
value: boolean;
}) => {
value: boolean;
} & _ngrx_store.Action<string>>;
declare const setDataChannelConnected: _ngrx_store.ActionCreator<string, (props: {
value: boolean;
}) => {
value: boolean;
} & _ngrx_store.Action<string>>;
declare const setConfig: _ngrx_store.ActionCreator<string, (props: {
config: Partial<StreamConfig>;
}) => {
config: Partial<StreamConfig>;
} & _ngrx_store.Action<string>>;
declare const setErrorMessage: _ngrx_store.ActionCreator<string, (props: {
errorType: UnrealErrorType;
message: string;
}) => {
errorType: UnrealErrorType;
message: string;
} & _ngrx_store.Action<string>>;
declare const setViewportReady: _ngrx_store.ActionCreator<string, (props: {
value: boolean;
}) => {
value: boolean;
} & _ngrx_store.Action<string>>;
declare const changeStreamResolutionAction: _ngrx_store.ActionCreator<string, (props: {
width: number | null;
height: number | null;
}) => {
width: number | null;
height: number | null;
} & _ngrx_store.Action<string>>;
declare const changeStreamResolutionSuccessAction: _ngrx_store.ActionCreator<string, (props: {
width: number | null;
height: number | null;
}) => {
width: number | null;
height: number | null;
} & _ngrx_store.Action<string>>;
declare const setSignalingName: _ngrx_store.ActionCreator<string, (props: {
instanceName: string;
}) => {
instanceName: string;
} & _ngrx_store.Action<string>>;
declare const updateCirrusInfo: _ngrx_store.ActionCreator<string, (props: {
ssInfo: string;
ssData: SignalingData;
}) => {
ssInfo: string;
ssData: SignalingData;
} & _ngrx_store.Action<string>>;
declare const commandStarted: _ngrx_store.ActionCreator<string, (props: {
id: string;
command: string;
}) => {
id: string;
command: string;
} & _ngrx_store.Action<string>>;
declare const commandCompleted: _ngrx_store.ActionCreator<string, (props: {
id: string;
}) => {
id: string;
} & _ngrx_store.Action<string>>;
declare const setLoopBackCommandIsCompleted: _ngrx_store.ActionCreator<string, () => _ngrx_store.Action<string>>;
declare const showUnrealErrorMessage: _ngrx_store.ActionCreator<string, (props: {
code: number | null;
error?: string;
}) => {
code: number | null;
error?: string;
} & _ngrx_store.Action<string>>;
declare const initSignalling: _ngrx_store.ActionCreator<string, () => _ngrx_store.Action<string>>;
declare const resetConfig: _ngrx_store.ActionCreator<string, () => _ngrx_store.Action<string>>;
declare const resetAfkAction: _ngrx_store.ActionCreator<string, () => _ngrx_store.Action<string>>;
declare const resetWarnTimeout: _ngrx_store.ActionCreator<string, () => _ngrx_store.Action<string>>;
declare const resetUnrealStateAction: _ngrx_store.ActionCreator<string, () => _ngrx_store.Action<string>>;
declare const resetUnrealState: _ngrx_store.ActionCreator<string, () => _ngrx_store.Action<string>>;
declare class UnrealEffects {
private dialog;
private http;
private store;
private isDevMode;
private unrealInitialConfig;
private actions$;
private player;
private signallingService;
private scrollStrategy;
private commandsSender;
private videoService;
private dataChannelConnectionTimeout;
cirrusDisconnectEffect$: rxjs.Observable<_ngrx_store.Action<string>> & _ngrx_effects.CreateEffectMetadata;
destroyConnections$: rxjs.Observable<{
disconnectReason: _3dsource_angular_unreal_module.DisconnectType;
} & _ngrx_store.Action<string>> & _ngrx_effects.CreateEffectMetadata;
resetState$: rxjs.Observable<_ngrx_store.Action<string>> & _ngrx_effects.CreateEffectMetadata;
destroyRemoteConnections$: rxjs.Observable<{
disconnectReason: _3dsource_angular_unreal_module.DisconnectType;
} & _ngrx_store.Action<string>> & _ngrx_effects.CreateEffectMetadata;
changeStreamResolution$: rxjs.Observable<{
width: number | null;
height: number | null;
} & _ngrx_store.Action<string>> & _ngrx_effects.CreateEffectMetadata;
forceLBMOff$: rxjs.Observable<{
lowBandwidth: boolean;
stats?: _3dsource_angular_unreal_module.LBMStats;
} & _ngrx_store.Action<string>> & _ngrx_effects.CreateEffectMetadata;
resetFreezeFrameOnLowBandwidthTriggered$: rxjs.Observable<{
dataUrl: string | null;
progress: number | null;
} & _ngrx_store.Action<string>> & _ngrx_effects.CreateEffectMetadata;
sendLbmStat$: rxjs.Subscription;
resetAfk$: rxjs.Observable<_ngrx_store.Action<string>> & _ngrx_effects.CreateEffectMetadata;
resetFreezeFrameOnViewportDestroy$: rxjs.Observable<{
dataUrl: string | null;
progress: number | null;
} & _ngrx_store.Action<string>> & _ngrx_effects.CreateEffectMetadata;
setMaxFps$: rxjs.Observable<{
maxFps: number;
} & _ngrx_store.Action<string>> & _ngrx_effects.CreateEffectMetadata;
webrtcErrorModalComponent$: rxjs.Observable<[arg: {
errorType: _3dsource_angular_unreal_module.UnrealErrorType;
message: string;
} & _ngrx_store.Action<string>, boolean]> & _ngrx_effects.CreateEffectMetadata;
resetAfkAction$: rxjs.Observable<_ngrx_store.Action<string>> & _ngrx_effects.CreateEffectMetadata;
setDataChannelTimeoutCheck$: rxjs.Observable<{
disconnectReason: _3dsource_angular_unreal_module.DisconnectType;
} & _ngrx_store.Action<string>> & _ngrx_effects.CreateEffectMetadata;
destroyConnectionAndRestart$: rxjs.Observable<_ngrx_store.Action<string>> & _ngrx_effects.CreateEffectMetadata;
showUnrealError$: rxjs.Observable<{
code: number | null;
error?: string;
} & _ngrx_store.Action<string>> & _ngrx_effects.CreateEffectMetadata;
sendStatisticsToUnreal$: rxjs.Observable<void> & _ngrx_effects.CreateEffectMetadata;
initAppBySetDataChannelConnected$: rxjs.Observable<_ngrx_store.Action<string>> & _ngrx_effects.CreateEffectMetadata;
setViewportReadyBySetLoopBackCommandIsCompleted$: rxjs.Observable<{
value: boolean;
} & _ngrx_store.Action<string>> & _ngrx_effects.CreateEffectMetadata;
listenUnrealCallbackByInitSignalling$: rxjs.Observable<{
id: string;
} & _ngrx_store.Action<string>> & _ngrx_effects.CreateEffectMetadata;
setConfigByInitSignalling$: rxjs.Observable<{
config: Partial<_3dsource_angular_unreal_module.StreamConfig>;
} & _ngrx_store.Action<string>> & _ngrx_effects.CreateEffectMetadata;
static ɵfac: i0.ɵɵFactoryDeclaration<UnrealEffects, never>;
static ɵprov: i0.ɵɵInjectableDeclaration<UnrealEffects>;
}
declare const unrealFeature: {
name: "unrealFeature";
reducer: _ngrx_store.ActionReducer<_3dsource_angular_unreal_module.UnrealState, _ngrx_store.Action<string>>;
selectUnrealFeatureState: _ngrx_store.MemoizedSelector<Record<string, any>, _3dsource_angular_unreal_module.UnrealState, (featureState: _3dsource_angular_unreal_module.UnrealState) => _3dsource_angular_unreal_module.UnrealState>;
selectLowBandwidth: _ngrx_store.MemoizedSelector<Record<string, any>, boolean, (featureState: _3dsource_angular_unreal_module.UnrealState) => boolean>;
selectDisconnectReason: _ngrx_store.MemoizedSelector<Record<string, any>, _3dsource_angular_unreal_module.DisconnectType, (featureState: _3dsource_angular_unreal_module.UnrealState) => _3dsource_angular_unreal_module.DisconnectType>;
selectIsVideoPlaying: _ngrx_store.MemoizedSelector<Record<string, any>, boolean, (featureState: _3dsource_angular_unreal_module.UnrealState) => boolean>;
selectSsInfo: _ngrx_store.MemoizedSelector<Record<string, any>, string | null, (featureState: _3dsource_angular_unreal_module.UnrealState) => string | null>;
selectSsData: _ngrx_store.MemoizedSelector<Record<string, any>, _3dsource_angular_unreal_module.SignalingData | null, (featureState: _3dsource_angular_unreal_module.UnrealState) => _3dsource_angular_unreal_module.SignalingData | null>;
selectLowBandwidthStats: _ngrx_store.MemoizedSelector<Record<string, any>, _3dsource_angular_unreal_module.LBMStats | undefined, (featureState: _3dsource_angular_unreal_module.UnrealState) => _3dsource_angular_unreal_module.LBMStats | undefined>;
selectStreamConfig: _ngrx_store.MemoizedSelector<Record<string, any>, _3dsource_angular_unreal_module.StreamConfig, (featureState: _3dsource_angular_unreal_module.UnrealState) => _3dsource_angular_unreal_module.StreamConfig>;
selectAwsInstance: _ngrx_store.MemoizedSelector<Record<string, any>, _3dsource_angular_unreal_module.AwsInstance, (featureState: _3dsource_angular_unreal_module.UnrealState) => _3dsource_angular_unreal_module.AwsInstance>;
selectWasInitialized: _ngrx_store.MemoizedSelector<Record<string, any>, boolean, (featureState: _3dsource_angular_unreal_module.UnrealState) => boolean>;
selectIsFirstSuccessLoad: _ngrx_store.MemoizedSelector<Record<string, any>, boolean, (featureState: _3dsource_angular_unreal_module.UnrealState) => boolean>;
selectCirrusConnected: _ngrx_store.MemoizedSelector<Record<string, any>, boolean, (featureState: _3dsource_angular_unreal_module.UnrealState) => boolean>;
selectViewportReady: _ngrx_store.MemoizedSelector<Record<string, any>, boolean, (featureState: _3dsource_angular_unreal_module.UnrealState) => boolean>;
selectFreezeFrameFromVideo: _ngrx_store.MemoizedSelector<Record<string, any>, _3dsource_angular_unreal_module.FreezeFrameMessage, (featureState: _3dsource_angular_unreal_module.UnrealState) => _3dsource_angular_unreal_module.FreezeFrameMessage>;
selectFreezeFrame: _ngrx_store.MemoizedSelector<Record<string, any>, _3dsource_angular_unreal_module.FreezeFrameMessage, (featureState: _3dsource_angular_unreal_module.UnrealState) => _3dsource_angular_unreal_module.FreezeFrameMessage>;
selectStatusMessage: _ngrx_store.MemoizedSelector<Record<string, any>, string | null, (featureState: _3dsource_angular_unreal_module.UnrealState) => string | null>;
selectStatusPercentSignallingServer: _ngrx_store.MemoizedSelector<Record<string, any>, number | null, (featureState: _3dsource_angular_unreal_module.UnrealState) => number | null>;
selectErrorMessage: _ngrx_store.MemoizedSelector<Record<string, any>, _3dsource_angular_unreal_module.UnrealError | null, (featureState: _3dsource_angular_unreal_module.UnrealState) => _3dsource_angular_unreal_module.UnrealError | null>;
selectDataChannelConnected: _ngrx_store.MemoizedSelector<Record<string, any>, boolean, (featureState: _3dsource_angular_unreal_module.UnrealState) => boolean>;
selectStreamResolution: _ngrx_store.MemoizedSelector<Record<string, any>, _3dsource_angular_unreal_module.StreamResolutionProps, (featureState: _3dsource_angular_unreal_module.UnrealState) => _3dsource_angular_unreal_module.StreamResolutionProps>;
selectEstablishingConnection: _ngrx_store.MemoizedSelector<Record<string, any>, boolean, (featureState: _3dsource_angular_unreal_module.UnrealState) => boolean>;
selectLoaderCommands: _ngrx_store.MemoizedSelector<Record<string, any>, _3dsource_angular_unreal_module.CommandsLoaderState, (featureState: _3dsource_angular_unreal_module.UnrealState) => _3dsource_angular_unreal_module.CommandsLoaderState>;
selectMatchUrls: _ngrx_store.MemoizedSelector<Record<string, any>, string[], (featureState: _3dsource_angular_unreal_module.UnrealState) => string[]>;
selectStreamClientCompanyId: _ngrx_store.MemoizedSelector<Record<string, any>, string | null, (featureState: _3dsource_angular_unreal_module.UnrealState) => string | null>;
selectStreamViewId: _ngrx_store.MemoizedSelector<Record<string, any>, string | null, (featureState: _3dsource_angular_unreal_module.UnrealState) => string | null>;
selectVideoIntroSrc: _ngrx_store.MemoizedSelector<Record<string, any>, string | null, (featureState: _3dsource_angular_unreal_module.UnrealState) => string | null>;
selectImageIntroSrc: _ngrx_store.MemoizedSelector<Record<string, any>, string | null, (featureState: _3dsource_angular_unreal_module.UnrealState) => string | null>;
selectImageLoadingSrc: _ngrx_store.MemoizedSelector<Record<string, any>, string, (featureState: _3dsource_angular_unreal_module.UnrealState) => string>;
};
interface CommandsLoaderState {
commandsInProgress: {
timeStamp: number;
command: string;
id: string;
}[];
totalCommandsStarted: number;
totalCommandsCompleted: number;
}
interface UnrealState {
lowBandwidthStats: LBMStats | undefined;
streamConfig: StreamConfig;
awsInstance: AwsInstance;
lowBandwidth: boolean;
wasInitialized: boolean;
isFirstSuccessLoad: boolean;
cirrusConnected: boolean;
viewportReady: boolean;
freezeFrameFromVideo: FreezeFrameMessage;
freezeFrame: FreezeFrameMessage;
statusMessage: string | null;
/**
* @deprecated, use ssData in future
*/
ssInfo: string | null;
ssData: SignalingData | null;
statusPercentSignallingServer: number | null;
errorMessage: UnrealError | null;
dataChannelConnected: boolean;
streamResolution: StreamResolutionProps;
isVideoPlaying: boolean;
establishingConnection: boolean;
disconnectReason: DisconnectType;
loaderCommands: CommandsLoaderState;
matchUrls: string[];
streamClientCompanyId: string | null;
streamViewId: string | null;
videoIntroSrc: string | null;
imageIntroSrc: string | null;
imageLoadingSrc: string;
}
declare const initialState: UnrealState;
declare const unrealReducer: _ngrx_store.ActionReducer<UnrealState, _ngrx_store.Action<string>>;
declare const selectFreezeFrameDataUrlFromVideo: _ngrx_store.MemoizedSelector<Record<string, any>, string | null, (s1: _3dsource_angular_unreal_module.FreezeFrameMessage, s2: boolean) => string | null>;
declare const selectFreezeFrameProgressMessageFromVideo: _ngrx_store.MemoizedSelector<Record<string, any>, number | null, (s1: _3dsource_angular_unreal_module.FreezeFrameMessage, s2: boolean) => number | null>;
declare const selectFreezeFrameDataUrl: _ngrx_store.MemoizedSelector<Record<string, any>, string | null, (s1: _3dsource_angular_unreal_module.FreezeFrameMessage, s2: boolean) => string | null>;
declare const selectIsFreezeFrameLoading: _ngrx_store.MemoizedSelector<Record<string, any>, boolean, (s1: _3dsource_angular_unreal_module.FreezeFrameMessage) => boolean>;
declare const selectFreezeFrameCombinedDataUrl: _ngrx_store.MemoizedSelector<Record<string, any>, string | null, (s1: string | null, s2: string | null) => string | null>;
declare const selectStreamConfig: _ngrx_store.MemoizedSelector<Record<string, any>, _3dsource_angular_unreal_module.StreamConfig, (s1: _3dsource_angular_unreal_module.StreamConfig) => _3dsource_angular_unreal_module.StreamConfig>;
declare const selectWarnTimeout: _ngrx_store.MemoizedSelector<Record<string, any>, number, (s1: _3dsource_angular_unreal_module.StreamConfig) => number>;
declare const selectMatchUrls: _ngrx_store.MemoizedSelector<Record<string, any>, string[], (s1: _3dsource_angular_unreal_module.StreamConfig) => string[]>;
declare const selectIsAutostart: _ngrx_store.MemoizedSelector<Record<string, any>, boolean, (s1: _3dsource_angular_unreal_module.StreamConfig) => boolean>;
declare const selectWsUrl: _ngrx_store.MemoizedSelector<Record<string, any>, string | null, (s1: _3dsource_angular_unreal_module.AwsInstance) => string | null>;
declare const selectShowReconnectPopup: _ngrx_store.MemoizedSelector<Record<string, any>, boolean, (s1: boolean, s2: boolean, s3: boolean, s4: string | null, s5: string | null) => boolean>;
declare const selectShowLoader: _ngrx_store.MemoizedSelector<Record<string, any>, boolean, (s1: boolean, s2: boolean, s3: _3dsource_angular_unreal_module.StreamConfig, s4: boolean) => boolean>;
declare const selectIsVideoPlayingAndDataChannelConnected: _ngrx_store.MemoizedSelector<Record<string, any>, boolean, (s1: boolean, s2: boolean) => boolean>;
declare const selectSignalingParameters: _ngrx_store.MemoizedSelector<Record<string, any>, string, (s1: _3dsource_angular_unreal_module.SignalingData | null, s2: _3dsource_angular_unreal_module.AwsInstance, s3: string | null) => string>;
declare const selectLoaderCommands: _ngrx_store.MemoizedSelector<Record<string, any>, _3dsource_angular_unreal_module.CommandsLoaderState, (s1: _3dsource_angular_unreal_module.CommandsLoaderState) => _3dsource_angular_unreal_module.CommandsLoaderState>;
declare const selectCommandsInProgress: _ngrx_store.MemoizedSelector<Record<string, any>, number, (s1: _3dsource_angular_unreal_module.CommandsLoaderState) => number>;
declare const selectCommandProgress: _ngrx_store.MemoizedSelector<Record<string, any>, number, (s1: _3dsource_angular_unreal_module.CommandsLoaderState) => number>;
declare const selectLastCommandInProgress: _ngrx_store.MemoizedSelector<Record<string, any>, {
timeStamp: number;
command: string;
id: string;
} | null, (s1: _3dsource_angular_unreal_module.CommandsLoaderState) => {
timeStamp: number;
command: string;
id: string;
} | nu