import { Injector, ChangeDetectorRef, OnDestroy, OnInit } from '@angular/core';
import { MediasfuUICustomOverrides } from '../../@types/ui-overrides.types';
import { UIOverrideResolverService } from '../../services/ui-override-resolver.service';
import { BehaviorSubject } from 'rxjs';
import { Socket } from 'socket.io-client';
import { MainAspectComponent } from '../display-components/main-aspect-component/main-aspect-component.component';
import { ControlButtonsComponentTouch } from '../display-components/control-buttons-component-touch/control-buttons-component-touch.component';
import { OtherGridComponent } from '../display-components/other-grid-component/other-grid-component.component';
import { MainScreenComponent } from '../display-components/main-screen-component/main-screen-component.component';
import { MainContainerComponent } from '../display-components/main-container-component/main-container-component.component';
import { ModernAlertComponent } from '../../modern/display-components/modern-alert.component';
import { ModernLoadingModalComponent } from '../../modern/display-components/modern-loading-modal.component';
import { ModernConfirmExitModalComponent } from '../../modern/modal-components/modern-confirm-exit-modal.component';
import { ModernConfirmHereModalComponent } from '../../modern/modal-components/modern-confirm-here-modal.component';
import { ModernMessagesModalComponent } from '../../modern/modal-components/modern-messages-modal.component';
import { ModernShareEventModalComponent } from '../../modern/modal-components/modern-share-event-modal.component';
import { ModernEventSettingsModalComponent } from '../../modern/modal-components/modern-event-settings-modal.component';
import { WelcomePageOptions } from '../misc-components/welcome-page/welcome-page.component';
import { FlexibleGrid } from '../display-components/flexible-grid/flexible-grid.component';
import { AudioGrid } from '../display-components/audio-grid/audio-grid.component';
import { MessageWidget } from '../display-components/control-widgets/message-widget.component';
import { ButtonTouch, ResponseJoinRoom, CoHostResponsibility, EventType, Participant, ConsumeSocket, MeetingRoomParams, VidCons, HParamsType, VParamsType, ScreenParamsType, AParamsType, UserRecordingParams, Stream, AudioDecibels, ScreenState, GridSizes, CustomMediaComponent, Message, WaitingRoomParticipant, ComponentSizes, Transport as TransportType, Shape, Poll, BreakoutParticipant, WhiteboardUser, Request, SeedData, PreJoinPageOptions, CreateMediaSFURoomOptions, JoinMediaSFURoomOptions, JoinRoomOnMediaSFUType, CreateRoomOnMediaSFUType } from '../../@types/types';
import { LaunchMessages } from '../../methods/message-methods/launch-messages.service';
import { LaunchConfirmExit } from '../../methods/exit-methods/launch-confirm-exit.service';
import { SocketManager } from '../../sockets/socket-manager.service';
import { JoinRoomClient } from '../../producer-client/producer-client-emits/join-room-client.service';
import { JoinLocalRoom } from '../../producers/producer-emits/join-local-room.service';
import { UpdateRoomParametersClient } from '../../producer-client/producer-client-emits/update-room-parameters-client.service';
import { CreateDeviceClient } from '../../producer-client/producer-client-emits/create-device-client.service';
import { SwitchVideoAlt } from '../../methods/stream-methods/switch-video-alt.service';
import { ClickVideo } from '../../methods/stream-methods/click-video.service';
import { ClickAudio } from '../../methods/stream-methods/click-audio.service';
import { ClickScreenShare } from '../../methods/stream-methods/click-screen-share.service';
import { StreamSuccessVideo } from '../../consumers/stream-success-video.service';
import { StreamSuccessAudio } from '../../consumers/stream-success-audio.service';
import { StreamSuccessScreen } from '../../consumers/stream-success-screen.service';
import { StreamSuccessAudioSwitch } from '../../consumers/stream-success-audio-switch.service';
import { CheckPermission } from '../../consumers/check-permission.service';
import { UpdateMiniCardsGrid } from '../../consumers/update-mini-cards-grid.service';
import { MixStreams } from '../../consumers/mix-streams.service';
import { DispStreams } from '../../consumers/disp-streams.service';
import { StopShareScreen } from '../../consumers/stop-share-screen.service';
import { CheckScreenShare } from '../../consumers/check-screen-share.service';
import { StartShareScreen } from '../../consumers/start-share-screen.service';
import { RequestScreenShare } from '../../consumers/request-screen-share.service';
import { ReorderStreams } from '../../consumers/reorder-streams.service';
import { PrepopulateUserMedia } from '../../consumers/prepopulate-user-media.service';
import { GetVideos } from '../../consumers/get-videos.service';
import { RePort } from '../../consumers/re-port.service';
import { Trigger } from '../../consumers/trigger.service';
import { ConsumerResume } from '../../consumers/consumer-resume.service';
import { ConnectSendTransportAudio } from '../../consumers/connect-send-transport-audio.service';
import { ConnectSendTransportVideo } from '../../consumers/connect-send-transport-video.service';
import { ConnectSendTransportScreen } from '../../consumers/connect-send-transport-screen.service';
import { ProcessConsumerTransports } from '../../consumers/process-consumer-transports.service';
import { ResumePauseStreams } from '../../consumers/resume-pause-streams.service';
import { Readjust } from '../../consumers/readjust.service';
import { CheckGrid } from '../../consumers/check-grid.service';
import { GetEstimate } from '../../consumers/get-estimate.service';
import { CalculateRowsAndColumns } from '../../consumers/calculate-rows-and-columns.service';
import { AddVideosGrid } from '../../consumers/add-videos-grid.service';
import { OnScreenChanges } from '../../consumers/on-screen-changes.service';
import { ChangeVids } from '../../consumers/change-vids.service';
import { CompareActiveNames } from '../../consumers/compare-active-names.service';
import { CompareScreenStates } from '../../consumers/compare-screen-states.service';
import { CreateSendTransport } from '../../consumers/create-send-transport.service';
import { ResumeSendTransportAudio } from '../../consumers/resume-send-transport-audio.service';
import { ReceiveAllPipedTransports } from '../../consumers/receive-all-piped-transports.service';
import { DisconnectSendTransportVideo } from '../../consumers/disconnect-send-transport-video.service';
import { DisconnectSendTransportAudio } from '../../consumers/disconnect-send-transport-audio.service';
import { DisconnectSendTransportScreen } from '../../consumers/disconnect-send-transport-screen.service';
import { ConnectSendTransport } from '../../consumers/connect-send-transport.service';
import { GetPipedProducersAlt } from '../../consumers/get-piped-producers-alt.service';
import { SignalNewConsumerTransport } from '../../consumers/signal-new-consumer-transport.service';
import { ConnectRecvTransport } from '../../consumers/connect-recv-transport.service';
import { ReUpdateInter } from '../../consumers/re-update-inter.service';
import { UpdateParticipantAudioDecibels } from '../../consumers/update-participant-audio-decibels.service';
import { CloseAndResize } from '../../consumers/close-and-resize.service';
import { AutoAdjust } from '../../consumers/auto-adjust.service';
import { SwitchUserVideoAlt } from '../../consumers/switch-user-video-alt.service';
import { SwitchUserVideo } from '../../consumers/switch-user-video.service';
import { SwitchUserAudio } from '../../consumers/switch-user-audio.service';
import { ReceiveRoomMessages } from '../../consumers/receive-room-messages.service';
import { FormatNumber } from '../../methods/utils/format-number.service';
import { ConnectIps } from '../../consumers/connect-ips.service';
import { ConnectLocalIps } from '../../consumers/connect-local-ips.service';
import { StartMeetingProgressTimer } from '../../methods/utils/meeting-timer/start-meeting-progress-timer.service';
import { ProducerMediaPaused } from '../../producers/socket-receive-methods/producer-media-paused.service';
import { ProducerMediaResumed } from '../../producers/socket-receive-methods/producer-media-resumed.service';
import { ProducerMediaClosed } from '../../producers/socket-receive-methods/producer-media-closed.service';
import { MeetingEnded } from '../../producers/socket-receive-methods/meeting-ended.service';
import { DisconnectUserSelf } from '../../producers/socket-receive-methods/disconnect-user-self.service';
import { ReceiveMessage } from '../../producers/socket-receive-methods/receive-message.service';
import { MeetingTimeRemaining } from '../../producers/socket-receive-methods/meeting-time-remaining.service';
import { MeetingStillThere } from '../../producers/socket-receive-methods/meeting-still-there.service';
import { GetDomains } from '../../producers/socket-receive-methods/get-domains.service';
import { UpdateConsumingDomains } from '../../producers/socket-receive-methods/update-consuming-domains.service';
import { AllMembers } from '../../producers/socket-receive-methods/all-members.service';
import { AllMembersRest } from '../../producers/socket-receive-methods/all-members-rest.service';
import { Disconnect } from '../../producers/socket-receive-methods/disconnect.service';
import { CaptureCanvasStream } from '../../methods/whiteboard-methods/capture-canvas-stream.service';
import { ResumePauseAudioStreams } from '../../consumers/resume-pause-audio-streams.service';
import { ProcessConsumerTransportsAudio } from '../../consumers/process-consumer-transports-audio.service';
import { types } from 'mediasoup-client';
import { SelfieSegmentation } from '@mediapipe/selfie_segmentation';
import * as i0 from "@angular/core";
type Device = types.Device;
type Producer = types.Producer;
type ProducerOptions = types.ProducerOptions;
type RtpCapabilities = types.RtpCapabilities;
type Transport = types.Transport;
export type MediasfuChatOptions = {
PrejoinPage?: (options: PreJoinPageOptions | WelcomePageOptions) => HTMLElement;
localLink?: string;
connectMediaSFU?: boolean;
credentials?: {
apiUserName: string;
apiKey: string;
};
useLocalUIMode?: boolean;
seedData?: SeedData;
useSeed?: boolean;
imgSrc?: string;
sourceParameters?: {
[key: string]: any;
};
updateSourceParameters?: (data: {
[key: string]: any;
}) => void;
returnUI?: boolean;
noUIPreJoinOptions?: CreateMediaSFURoomOptions | JoinMediaSFURoomOptions;
joinMediaSFURoom?: JoinRoomOnMediaSFUType;
createMediaSFURoom?: CreateRoomOnMediaSFUType;
};
/**
* MediasfuChat component provides an interface for chat-based streaming events. It includes a conditional prejoin screen, main content with flexible grids and modals, and supports chat-related settings.
*
* @component
* @selector app-mediasfu-chat
* @standalone true
* @imports [RouterOutlet, CommonModule, AlertComponent, AudioGrid, ControlButtonsComponentTouch, FlexibleGrid, LoadingModal, ConfirmExitModal, MessagesModal, ConfirmHereModal, ShareEventModal, WelcomePage, MainAspectComponent, MainContainerComponent, MainScreenComponent, OtherGridComponent, MessageWidget]
*
* @template
* The template structure:
* - Conditional rendering of a PrejoinPage or WelcomePage for introductory or pre-session screens.
* - Main content area with nested components for grid layouts, flexible video, and audio grids.
* - Modals for user interactions, including participant management, event settings, breakout rooms, whiteboarding, and media settings.
*
* @input {any} PrejoinPage - Component for the prejoin page, defaults to `WelcomePage`.
* @input {MediasfuChatOptions} options - Configuration options for the component.
* @input {boolean} connectMediaSFU - Flag to enable/disable connection to the MediaSFU server.
* @input {string} localLink - Local link for the Community Edition server.
* @input {{ apiUserName: string; apiKey: string }} credentials - API credentials for secure access.
* @input {boolean} useLocalUIMode - Flag to toggle local UI settings.
* @input {SeedData} seedData - Seed data for initializing the component with specific configurations.
* @input {boolean} useSeed - Enable/disable use of seed data.
* @input {string} imgSrc - URL for branding images or logos.
* @input {object} sourceParameters - Additional parameters for the source.
* @input {Function} updateSourceParameters - Function to update the source parameters.
* @input {boolean} returnUI - Flag to return the UI elements.
* @input {CreateMediaSFURoomOptions | JoinMediaSFURoomOptions} noUIPreJoinOptions - Options for the prejoin page without UI.
* @input {JoinRoomOnMediaSFUType} joinMediaSFURoom - Function to join a room on MediaSFU.
* @input {CreateRoomOnMediaSFUType} createMediaSFURoom - Function to create a room on MediaSFU.
* @input {any} customVideoCard - Custom component to replace the default VideoCard component.
* @input {any} customAudioCard - Custom component to replace the default AudioCard component.
* @input {any} customMiniCard - Custom component to replace the default MiniCard component.
* @input {any} customMainComponent - Custom component that provides complete control over the main UI, bypassing default MediaSFU styling.
*
* @property {string} title - The title of the component, defaults to "MediaSFU-Chat".
*
* @styles
* Customizable styles for layout and overflow.
*
* @providers [CookieService] - Service for managing cookies within the component.
*
* @constructor
* @class MediasfuChat
* @implements OnInit, OnDestroy
*
* @method ngOnInit - Initializes configurations and parameters.
* @method ngOnDestroy - Handles cleanup and removal of event listeners or intervals.
*
* @example
* ```html
*
*
* ```
*/
export declare class MediasfuChat implements OnInit, OnDestroy {
private cdr;
private injector;
updateMiniCardsGrid: UpdateMiniCardsGrid;
mixStreams: MixStreams;
dispStreams: DispStreams;
stopShareScreen: StopShareScreen;
checkScreenShare: CheckScreenShare;
startShareScreen: StartShareScreen;
requestScreenShare: RequestScreenShare;
reorderStreams: ReorderStreams;
prepopulateUserMedia: PrepopulateUserMedia;
getVideos: GetVideos;
rePort: RePort;
trigger: Trigger;
consumerResume: ConsumerResume;
connectSendTransport: ConnectSendTransport;
connectSendTransportAudio: ConnectSendTransportAudio;
connectSendTransportVideo: ConnectSendTransportVideo;
connectSendTransportScreen: ConnectSendTransportScreen;
processConsumerTransports: ProcessConsumerTransports;
resumePauseStreams: ResumePauseStreams;
readjust: Readjust;
checkGrid: CheckGrid;
getEstimate: GetEstimate;
calculateRowsAndColumns: CalculateRowsAndColumns;
addVideosGrid: AddVideosGrid;
onScreenChanges: OnScreenChanges;
changeVids: ChangeVids;
compareActiveNames: CompareActiveNames;
compareScreenStates: CompareScreenStates;
createSendTransport: CreateSendTransport;
resumeSendTransportAudio: ResumeSendTransportAudio;
receiveAllPipedTransports: ReceiveAllPipedTransports;
disconnectSendTransportVideo: DisconnectSendTransportVideo;
disconnectSendTransportAudio: DisconnectSendTransportAudio;
disconnectSendTransportScreen: DisconnectSendTransportScreen;
getPipedProducersAlt: GetPipedProducersAlt;
signalNewConsumerTransport: SignalNewConsumerTransport;
connectRecvTransport: ConnectRecvTransport;
reUpdateInter: ReUpdateInter;
updateParticipantAudioDecibels: UpdateParticipantAudioDecibels;
closeAndResize: CloseAndResize;
autoAdjust: AutoAdjust;
switchUserVideoAlt: SwitchUserVideoAlt;
switchUserVideo: SwitchUserVideo;
switchUserAudio: SwitchUserAudio;
getDomains: GetDomains;
formatNumber: FormatNumber;
connectIps: ConnectIps;
connectLocalIps: ConnectLocalIps;
createDeviceClient: CreateDeviceClient;
captureCanvasStream: CaptureCanvasStream;
resumePauseAudioStreams: ResumePauseAudioStreams;
processConsumerTransportsAudio: ProcessConsumerTransportsAudio;
launchMessages: LaunchMessages;
launchConfirmExit: LaunchConfirmExit;
startMeetingProgressTimer: StartMeetingProgressTimer;
producerMediaPaused: ProducerMediaPaused;
producerMediaResumed: ProducerMediaResumed;
producerMediaClosed: ProducerMediaClosed;
meetingEnded: MeetingEnded;
disconnectUserSelf: DisconnectUserSelf;
receiveMessage: ReceiveMessage;
meetingTimeRemaining: MeetingTimeRemaining;
meetingStillThere: MeetingStillThere;
allMembers: AllMembers;
allMembersRest: AllMembersRest;
disconnect: Disconnect;
socketManager: SocketManager;
joinRoomClient: JoinRoomClient;
joinLocalRoom: JoinLocalRoom;
updateRoomParametersClient: UpdateRoomParametersClient;
clickVideo: ClickVideo;
clickAudio: ClickAudio;
clickScreenShare: ClickScreenShare;
switchVideoAlt: SwitchVideoAlt;
streamSuccessVideo: StreamSuccessVideo;
streamSuccessAudio: StreamSuccessAudio;
streamSuccessScreen: StreamSuccessScreen;
streamSuccessAudioSwitch: StreamSuccessAudioSwitch;
checkPermission: CheckPermission;
updateConsumingDomains: UpdateConsumingDomains;
receiveRoomMessages: ReceiveRoomMessages;
private uiOverrideResolver;
PrejoinPage: any;
localLink: string;
connectMediaSFU: boolean;
credentials: {
apiUserName: string;
apiKey: string;
};
useLocalUIMode: boolean;
seedData?: SeedData;
useSeed: boolean;
imgSrc: string;
sourceParameters: {
[key: string]: any;
};
updateSourceParameters?: (data: {
[key: string]: any;
}) => void;
returnUI?: boolean;
noUIPreJoinOptions?: CreateMediaSFURoomOptions | JoinMediaSFURoomOptions;
joinMediaSFURoom?: JoinRoomOnMediaSFUType;
createMediaSFURoom?: CreateRoomOnMediaSFUType;
customVideoCard?: any;
customAudioCard?: any;
customMiniCard?: any;
customMainComponent?: any;
containerStyle?: Record;
uiOverrides?: MediasfuUICustomOverrides;
title: string;
protected readonly MainContainerComponentRef: typeof MainContainerComponent;
protected readonly MainAspectComponentRef: typeof MainAspectComponent;
protected readonly MainScreenComponentRef: typeof MainScreenComponent;
protected readonly OtherGridComponentRef: typeof OtherGridComponent;
protected readonly FlexibleGridRef: typeof FlexibleGrid;
protected readonly ControlButtonsComponentTouchRef: typeof ControlButtonsComponentTouch;
protected readonly AudioGridRef: typeof AudioGrid;
protected readonly AlertComponentRef: typeof ModernAlertComponent;
protected readonly LoadingModalRef: typeof ModernLoadingModalComponent;
protected readonly MessagesModalRef: typeof ModernMessagesModalComponent;
protected readonly ConfirmExitModalRef: typeof ModernConfirmExitModalComponent;
protected readonly ConfirmHereModalRef: typeof ModernConfirmHereModalComponent;
protected readonly ShareEventModalRef: typeof ModernShareEventModalComponent;
protected readonly EventSettingsModalRef: typeof ModernEventSettingsModalComponent;
protected mainContainerOverrideProps: () => {
backgroundColor: string;
children: any[];
};
protected mainAspectOverrideProps: () => {
backgroundColor: string;
defaultFraction: number;
showControls: boolean;
updateIsWideScreen: (value: boolean) => void;
updateIsMediumScreen: (value: boolean) => void;
updateIsSmallScreen: (value: boolean) => void;
};
protected mainScreenOverrideProps: () => {
doStack: boolean;
mainSize: number;
defaultFraction: number;
showControls: boolean;
updateComponentSizes: (sizes: ComponentSizes) => void;
};
protected otherGridOverrideProps: () => {
height: number;
width: number;
backgroundColor: string;
showAspect: boolean;
timeBackgroundColor: string;
showTimer: boolean;
meetingProgressTime: string;
};
protected flexibleGridOverrideProps: () => {
customWidth: number;
customHeight: number;
rows: number;
columns: number;
componentsToRender: CustomMediaComponent[];
backgroundColor: string;
};
protected controlButtonsTouchOverrideProps: () => {
buttons: ButtonTouch[];
position: string;
location: string;
direction: string;
showAspect: boolean;
};
protected audioGridOverrideProps: () => {
componentsToRender: CustomMediaComponent[];
};
protected alertOverrideProps: () => {
visible: boolean;
message: string;
type: "danger" | "success" | "info" | "warning";
position: "center" | "bottom" | "top" | "top-right" | "top-left" | "bottom-right" | "bottom-left";
duration: number;
onHide: () => void;
isDarkMode: boolean;
};
protected loadingModalOverrideProps: () => {
isVisible: boolean;
isDarkMode: boolean;
};
protected messagesModalOverrideProps: () => {
backgroundColor: string;
isMessagesModalVisible: boolean;
onMessagesClose: () => void;
messages: Message[];
eventType: EventType;
member: string;
islevel: string;
coHostResponsibility: CoHostResponsibility[];
coHost: string;
startDirectMessage: boolean;
directMessageDetails: Participant;
updateStartDirectMessage: (value: boolean) => void;
updateDirectMessageDetails: (value: Participant | null) => void;
showAlert: ({ message, type, duration, position, }: {
message: string;
type: "success" | "danger" | "info" | "warning";
duration?: number;
position?: "top" | "bottom" | "top-right" | "top-left" | "bottom-right" | "bottom-left" | "center";
}) => void;
roomName: string;
socket: Socket;
chatSetting: string;
};
protected confirmExitModalOverrideProps: () => {
backgroundColor: string;
isConfirmExitModalVisible: boolean;
onConfirmExitClose: () => void;
position: string;
member: string;
roomName: string;
socket: Socket;
islevel: string;
};
protected confirmHereModalOverrideProps: () => {
backgroundColor: string;
isConfirmHereModalVisible: boolean;
onConfirmHereClose: () => void;
onSuppressConfirmHere: () => void;
member: string;
roomName: string;
socket: Socket;
};
protected shareEventModalOverrideProps: () => {
isShareEventModalVisible: boolean;
isDarkMode: boolean;
onShareEventClose: () => void;
roomName: string;
islevel: string;
adminPasscode: string;
eventType: EventType;
localLink: string;
};
protected eventSettingsModalOverrideProps: () => {
isEventSettingsModalVisible: boolean;
isDarkMode: boolean;
onEventSettingsClose: () => void;
audioSetting: string;
videoSetting: string;
screenshareSetting: string;
chatSetting: string;
updateAudioSetting: (value: string) => void;
updateVideoSetting: (value: string) => void;
updateScreenshareSetting: (value: string) => void;
updateChatSetting: (value: string) => void;
updateIsSettingsModalVisible: (value: boolean) => void;
roomName: string;
socket: Socket;
showAlert: ({ message, type, duration, position, }: {
message: string;
type: "success" | "danger" | "info" | "warning";
duration?: number;
position?: "top" | "bottom" | "top-right" | "top-left" | "bottom-right" | "bottom-left" | "center";
}) => void;
parameters: any;
};
private mainHeightWidthSubscription;
private validatedSubscription;
private islevelSubscription;
private coHostSubscription;
private ScreenboardSubscription;
private recordingSubscription;
constructor(cdr: ChangeDetectorRef, injector: Injector, updateMiniCardsGrid: UpdateMiniCardsGrid, mixStreams: MixStreams, dispStreams: DispStreams, stopShareScreen: StopShareScreen, checkScreenShare: CheckScreenShare, startShareScreen: StartShareScreen, requestScreenShare: RequestScreenShare, reorderStreams: ReorderStreams, prepopulateUserMedia: PrepopulateUserMedia, getVideos: GetVideos, rePort: RePort, trigger: Trigger, consumerResume: ConsumerResume, connectSendTransport: ConnectSendTransport, connectSendTransportAudio: ConnectSendTransportAudio, connectSendTransportVideo: ConnectSendTransportVideo, connectSendTransportScreen: ConnectSendTransportScreen, processConsumerTransports: ProcessConsumerTransports, resumePauseStreams: ResumePauseStreams, readjust: Readjust, checkGrid: CheckGrid, getEstimate: GetEstimate, calculateRowsAndColumns: CalculateRowsAndColumns, addVideosGrid: AddVideosGrid, onScreenChanges: OnScreenChanges, changeVids: ChangeVids, compareActiveNames: CompareActiveNames, compareScreenStates: CompareScreenStates, createSendTransport: CreateSendTransport, resumeSendTransportAudio: ResumeSendTransportAudio, receiveAllPipedTransports: ReceiveAllPipedTransports, disconnectSendTransportVideo: DisconnectSendTransportVideo, disconnectSendTransportAudio: DisconnectSendTransportAudio, disconnectSendTransportScreen: DisconnectSendTransportScreen, getPipedProducersAlt: GetPipedProducersAlt, signalNewConsumerTransport: SignalNewConsumerTransport, connectRecvTransport: ConnectRecvTransport, reUpdateInter: ReUpdateInter, updateParticipantAudioDecibels: UpdateParticipantAudioDecibels, closeAndResize: CloseAndResize, autoAdjust: AutoAdjust, switchUserVideoAlt: SwitchUserVideoAlt, switchUserVideo: SwitchUserVideo, switchUserAudio: SwitchUserAudio, getDomains: GetDomains, formatNumber: FormatNumber, connectIps: ConnectIps, connectLocalIps: ConnectLocalIps, createDeviceClient: CreateDeviceClient, captureCanvasStream: CaptureCanvasStream, resumePauseAudioStreams: ResumePauseAudioStreams, processConsumerTransportsAudio: ProcessConsumerTransportsAudio, launchMessages: LaunchMessages, launchConfirmExit: LaunchConfirmExit, startMeetingProgressTimer: StartMeetingProgressTimer, producerMediaPaused: ProducerMediaPaused, producerMediaResumed: ProducerMediaResumed, producerMediaClosed: ProducerMediaClosed, meetingEnded: MeetingEnded, disconnectUserSelf: DisconnectUserSelf, receiveMessage: ReceiveMessage, meetingTimeRemaining: MeetingTimeRemaining, meetingStillThere: MeetingStillThere, allMembers: AllMembers, allMembersRest: AllMembersRest, disconnect: Disconnect, socketManager: SocketManager, joinRoomClient: JoinRoomClient, joinLocalRoom: JoinLocalRoom, updateRoomParametersClient: UpdateRoomParametersClient, clickVideo: ClickVideo, clickAudio: ClickAudio, clickScreenShare: ClickScreenShare, switchVideoAlt: SwitchVideoAlt, streamSuccessVideo: StreamSuccessVideo, streamSuccessAudio: StreamSuccessAudio, streamSuccessScreen: StreamSuccessScreen, streamSuccessAudioSwitch: StreamSuccessAudioSwitch, checkPermission: CheckPermission, updateConsumingDomains: UpdateConsumingDomains, receiveRoomMessages: ReceiveRoomMessages, uiOverrideResolver: UIOverrideResolverService);
createInjector(inputs: any): Injector;
/**
* Gets a list of media devices filtered by the specified kind.
* @param kind - The kind of media device to filter by ('videoinput' or 'audioinput')
* @returns A promise that resolves to an array of MediaDeviceInfo objects
*/
getMediaDevicesList: (kind: "videoinput" | "audioinput") => Promise;
/**
* Gets the media stream for a participant by their ID or name.
* @param options - Object containing id, name, and kind parameters
* @returns A promise that resolves to the participant's MediaStream or null if not found
*/
getParticipantMedia: (options: {
id?: string;
name?: string;
kind: "video" | "audio";
}) => Promise;
mediaSFUFunctions: () => any;
validated: BehaviorSubject;
localUIMode: BehaviorSubject;
socket: BehaviorSubject>;
localSocket?: BehaviorSubject>;
roomData: BehaviorSubject;
device: BehaviorSubject;
apiKey: BehaviorSubject;
apiUserName: BehaviorSubject;
apiToken: BehaviorSubject;
link: BehaviorSubject;
roomName: BehaviorSubject;
member: BehaviorSubject;
adminPasscode: BehaviorSubject;
islevel: BehaviorSubject;
coHost: BehaviorSubject;
coHostResponsibility: BehaviorSubject;
youAreCoHost: BehaviorSubject;
youAreHost: BehaviorSubject;
confirmedToRecord: BehaviorSubject;
meetingDisplayType: BehaviorSubject;
meetingVideoOptimized: BehaviorSubject;
eventType: BehaviorSubject;
participants: BehaviorSubject;
filteredParticipants: BehaviorSubject;
participantsCounter: BehaviorSubject;
participantsFilter: BehaviorSubject;
consume_sockets: BehaviorSubject;
rtpCapabilities: BehaviorSubject;
roomRecvIPs: BehaviorSubject;
meetingRoomParams: BehaviorSubject;
itemPageLimit: BehaviorSubject;
audioOnlyRoom: BehaviorSubject;
addForBasic: BehaviorSubject;
screenPageLimit: BehaviorSubject;
shareScreenStarted: BehaviorSubject;
shared: BehaviorSubject;
targetOrientation: BehaviorSubject;
targetResolution: BehaviorSubject;
targetResolutionHost: BehaviorSubject;
vidCons: BehaviorSubject;
frameRate: BehaviorSubject;
hParams: BehaviorSubject;
vParams: BehaviorSubject;
screenParams: BehaviorSubject;
aParams: BehaviorSubject;
recordingAudioPausesLimit: BehaviorSubject;
recordingAudioPausesCount: BehaviorSubject;
recordingAudioSupport: BehaviorSubject;
recordingAudioPeopleLimit: BehaviorSubject;
recordingAudioParticipantsTimeLimit: BehaviorSubject;
recordingVideoPausesCount: BehaviorSubject;
recordingVideoPausesLimit: BehaviorSubject;
recordingVideoSupport: BehaviorSubject;
recordingVideoPeopleLimit: BehaviorSubject;
recordingVideoParticipantsTimeLimit: BehaviorSubject;
recordingAllParticipantsSupport: BehaviorSubject;
recordingVideoParticipantsSupport: BehaviorSubject;
recordingAllParticipantsFullRoomSupport: BehaviorSubject;
recordingVideoParticipantsFullRoomSupport: BehaviorSubject;
recordingPreferredOrientation: BehaviorSubject;
recordingSupportForOtherOrientation: BehaviorSubject;
recordingMultiFormatsSupport: BehaviorSubject;
userRecordingParams: BehaviorSubject;
canRecord: BehaviorSubject;
startReport: BehaviorSubject;
endReport: BehaviorSubject;
recordTimerInterval: BehaviorSubject;
recordStartTime: BehaviorSubject;
recordElapsedTime: BehaviorSubject;
isTimerRunning: BehaviorSubject;
canPauseResume: BehaviorSubject;
recordChangeSeconds: BehaviorSubject;
pauseLimit: BehaviorSubject;
pauseRecordCount: BehaviorSubject;
canLaunchRecord: BehaviorSubject;
stopLaunchRecord: BehaviorSubject;
participantsAll: BehaviorSubject;
firstAll: BehaviorSubject;
updateMainWindow: BehaviorSubject;
first_round: BehaviorSubject;
landScaped: BehaviorSubject;
lock_screen: BehaviorSubject;
screenId: BehaviorSubject;
allVideoStreams: BehaviorSubject<(Stream | Participant)[]>;
newLimitedStreams: BehaviorSubject<(Stream | Participant)[]>;
newLimitedStreamsIDs: BehaviorSubject;
activeSounds: BehaviorSubject;
screenShareIDStream: BehaviorSubject;
screenShareNameStream: BehaviorSubject;
adminIDStream: BehaviorSubject;
adminNameStream: BehaviorSubject;
youYouStream: BehaviorSubject<(Stream | Participant)[]>;
youYouStreamIDs: BehaviorSubject;
localStream: BehaviorSubject;
recordStarted: BehaviorSubject;
recordResumed: BehaviorSubject;
recordPaused: BehaviorSubject;
recordStopped: BehaviorSubject;
adminRestrictSetting: BehaviorSubject;
videoRequestState: BehaviorSubject;
videoRequestTime: BehaviorSubject;
videoAction: BehaviorSubject;
localStreamVideo: BehaviorSubject;
userDefaultVideoInputDevice: BehaviorSubject;
currentFacingMode: BehaviorSubject;
prevFacingMode: BehaviorSubject;
defVideoID: BehaviorSubject;
allowed: BehaviorSubject;
dispActiveNames: BehaviorSubject;
p_dispActiveNames: BehaviorSubject;
activeNames: BehaviorSubject;
prevActiveNames: BehaviorSubject;
p_activeNames: BehaviorSubject;
membersReceived: BehaviorSubject;
deferScreenReceived: BehaviorSubject;
hostFirstSwitch: BehaviorSubject;
micAction: BehaviorSubject;
screenAction: BehaviorSubject;
chatAction: BehaviorSubject;
audioRequestState: BehaviorSubject;
screenRequestState: BehaviorSubject;
chatRequestState: BehaviorSubject;
audioRequestTime: BehaviorSubject;
screenRequestTime: BehaviorSubject;
chatRequestTime: BehaviorSubject;
updateRequestIntervalSeconds: BehaviorSubject;
oldSoundIds: BehaviorSubject;
hostLabel: BehaviorSubject;
mainScreenFilled: BehaviorSubject;
localStreamScreen: BehaviorSubject;
screenAlreadyOn: BehaviorSubject;
chatAlreadyOn: BehaviorSubject;
redirectURL: BehaviorSubject;
oldAllStreams: BehaviorSubject<(Stream | Participant)[]>;
adminVidID: BehaviorSubject;
streamNames: BehaviorSubject;
non_alVideoStreams: BehaviorSubject;
sortAudioLoudness: BehaviorSubject;
audioDecibels: BehaviorSubject;
mixed_alVideoStreams: BehaviorSubject<(Stream | Participant)[]>;
non_alVideoStreams_muted: BehaviorSubject;
paginatedStreams: BehaviorSubject<(Stream | Participant)[][]>;
localStreamAudio: BehaviorSubject;
defAudioID: BehaviorSubject;
userDefaultAudioInputDevice: BehaviorSubject;
userDefaultAudioOutputDevice: BehaviorSubject;
prevAudioInputDevice: BehaviorSubject;
prevVideoInputDevice: BehaviorSubject;
audioPaused: BehaviorSubject;
mainScreenPerson: BehaviorSubject;
adminOnMainScreen: BehaviorSubject;
screenStates: BehaviorSubject;
prevScreenStates: BehaviorSubject;
updateDateState: BehaviorSubject;
lastUpdate: BehaviorSubject;
nForReadjustRecord: BehaviorSubject;
fixedPageLimit: BehaviorSubject;
removeAltGrid: BehaviorSubject;
nForReadjust: BehaviorSubject;
reorderInterval: BehaviorSubject;
fastReorderInterval: BehaviorSubject;
lastReorderTime: BehaviorSubject;
audStreamNames: BehaviorSubject;
currentUserPage: BehaviorSubject;
mainHeightWidth: BehaviorSubject;
prevMainHeightWidth: BehaviorSubject;
prevDoPaginate: BehaviorSubject;
doPaginate: BehaviorSubject;
shareEnded: BehaviorSubject;
lStreams: BehaviorSubject<(Stream | Participant)[]>;
chatRefStreams: BehaviorSubject<(Stream | Participant)[]>;
controlHeight: BehaviorSubject;
isWideScreen: BehaviorSubject;
isMediumScreen: BehaviorSubject;
isSmallScreen: BehaviorSubject;
addGrid: BehaviorSubject;
addAltGrid: BehaviorSubject;
gridRows: BehaviorSubject;
gridCols: BehaviorSubject;
altGridRows: BehaviorSubject;
altGridCols: BehaviorSubject;
numberPages: BehaviorSubject;
currentStreams: BehaviorSubject<(Stream | Participant)[]>;
showMiniView: BehaviorSubject;
nStream: BehaviorSubject;
defer_receive: BehaviorSubject;
allAudioStreams: BehaviorSubject<(Stream | Participant)[]>;
remoteScreenStream: BehaviorSubject;
screenProducer: BehaviorSubject;
localScreenProducer: BehaviorSubject;
gotAllVids: BehaviorSubject;
paginationHeightWidth: BehaviorSubject;
paginationDirection: BehaviorSubject<"horizontal" | "vertical">;
gridSizes: BehaviorSubject;
screenForceFullDisplay: BehaviorSubject;
mainGridStream: BehaviorSubject;
otherGridStreams: BehaviorSubject;
audioOnlyStreams: BehaviorSubject;
videoInputs: BehaviorSubject;
audioInputs: BehaviorSubject;
meetingProgressTime: BehaviorSubject;
meetingElapsedTime: BehaviorSubject;
ref_participants: BehaviorSubject;
updateValidated: (value: boolean) => void;
updateSocket: (value: Socket) => void;
updateLocalSocket: (value: Socket | null) => void;
updateDevice: (value: Device | null) => void;
updateRoomData: (value: ResponseJoinRoom | null) => void;
updateApiKey: (value: string) => void;
updateApiUserName: (value: string) => void;
updateApiToken: (value: string) => void;
updateLink: (value: string) => void;
updateRoomName: (value: string) => void;
updateMember: (value: string) => void;
updateAdminPasscode: (value: string) => void;
updateIslevel: (value: string) => void;
updateCoHost: (value: string) => void;
updateCoHostResponsibility: (value: CoHostResponsibility[]) => void;
updateYouAreCoHost: (value: boolean) => void;
updateYouAreHost: (value: boolean) => void;
updateConfirmedToRecord: (value: boolean) => void;
updateMeetingDisplayType: (value: string) => void;
updateMeetingVideoOptimized: (value: boolean) => void;
updateEventType: (value: EventType) => void;
updateParticipants: (value: Participant[]) => void;
updateFilteredParticipants: (value: Participant[]) => void;
updateParticipantsCounter: (value: number) => void;
updateParticipantsFilter: (value: string) => void;
updateConsume_sockets: (value: ConsumeSocket[]) => void;
updateRtpCapabilities: (value: RtpCapabilities | null) => void;
updateRoomRecvIPs: (value: string[]) => void;
updateMeetingRoomParams: (value: MeetingRoomParams | null) => void;
updateItemPageLimit: (value: number) => void;
updateAudioOnlyRoom: (value: boolean) => void;
updateAddForBasic: (value: boolean) => void;
updateScreenPageLimit: (value: number) => void;
updateShareScreenStarted: (value: boolean) => void;
updateShared: (value: boolean) => void;
updateTargetOrientation: (value: string) => void;
updateTargetResolution: (value: string) => void;
updateTargetResolutionHost: (value: string) => void;
updateVidCons: (value: VidCons) => void;
updateFrameRate: (value: number) => void;
updateHParams: (value: HParamsType) => void;
updateVParams: (value: VParamsType) => void;
updateScreenParams: (value: ScreenParamsType) => void;
updateAParams: (value: AParamsType) => void;
updateRecordingAudioPausesLimit: (value: number) => void;
updateRecordingAudioPausesCount: (value: number) => void;
updateRecordingAudioSupport: (value: boolean) => void;
updateRecordingAudioPeopleLimit: (value: number) => void;
updateRecordingAudioParticipantsTimeLimit: (value: number) => void;
updateRecordingVideoPausesCount: (value: number) => void;
updateRecordingVideoPausesLimit: (value: number) => void;
updateRecordingVideoSupport: (value: boolean) => void;
updateRecordingVideoPeopleLimit: (value: number) => void;
updateRecordingVideoParticipantsTimeLimit: (value: number) => void;
updateRecordingAllParticipantsSupport: (value: boolean) => void;
updateRecordingVideoParticipantsSupport: (value: boolean) => void;
updateRecordingAllParticipantsFullRoomSupport: (value: boolean) => void;
updateRecordingVideoParticipantsFullRoomSupport: (value: boolean) => void;
updateRecordingPreferredOrientation: (value: string) => void;
updateRecordingSupportForOtherOrientation: (value: boolean) => void;
updateRecordingMultiFormatsSupport: (value: boolean) => void;
updateUserRecordingParams: (value: UserRecordingParams) => void;
updateCanRecord: (value: boolean) => void;
updateStartReport: (value: boolean) => void;
updateEndReport: (value: boolean) => void;
updateRecordTimerInterval: (value: number | null) => void;
updateRecordStartTime: (value: number) => void;
updateRecordElapsedTime: (value: number) => void;
updateIsTimerRunning: (value: boolean) => void;
updateCanPauseResume: (value: boolean) => void;
updateRecordChangeSeconds: (value: number) => void;
updatePauseLimit: (value: number) => void;
updatePauseRecordCount: (value: number) => void;
updateCanLaunchRecord: (value: boolean) => void;
updateStopLaunchRecord: (value: boolean) => void;
updateParticipantsAll: (value: Participant[]) => void;
updateFirstAll: (value: boolean) => void;
updateUpdateMainWindow: (value: boolean) => void;
updateFirst_round: (value: boolean) => void;
updateLandScaped: (value: boolean) => void;
updateLock_screen: (value: boolean) => void;
updateScreenId: (value: string) => void;
updateAllVideoStreams: (value: (Participant | Stream)[]) => void;
updateNewLimitedStreams: (value: (Participant | Stream)[]) => void;
updateNewLimitedStreamsIDs: (value: string[]) => void;
updateActiveSounds: (value: string[]) => void;
updateScreenShareIDStream: (value: string) => void;
updateScreenShareNameStream: (value: string) => void;
updateAdminIDStream: (value: string) => void;
updateAdminNameStream: (value: string) => void;
updateYouYouStream: (value: (Participant | Stream)[]) => void;
updateYouYouStreamIDs: (value: string[]) => void;
updateLocalStream: (value: MediaStream | null) => void;
updateRecordStarted: (value: boolean) => void;
updateRecordResumed: (value: boolean) => void;
updateRecordPaused: (value: boolean) => void;
updateRecordStopped: (value: boolean) => void;
updateAdminRestrictSetting: (value: boolean) => void;
updateVideoRequestState: (value: string | null) => void;
updateVideoRequestTime: (value: number) => void;
updateVideoAction: (value: boolean) => void;
updateLocalStreamVideo: (value: MediaStream | null) => void;
updateUserDefaultVideoInputDevice: (value: string) => void;
updateCurrentFacingMode: (value: string) => void;
updatePrevFacingMode: (value: string) => void;
updateDefVideoID: (value: string) => void;
updateAllowed: (value: boolean) => void;
updateDispActiveNames: (value: string[]) => void;
updateP_dispActiveNames: (value: string[]) => void;
updateActiveNames: (value: string[]) => void;
updatePrevActiveNames: (value: string[]) => void;
updateP_activeNames: (value: string[]) => void;
updateMembersReceived: (value: boolean) => void;
updateDeferScreenReceived: (value: boolean) => void;
updateHostFirstSwitch: (value: boolean) => void;
updateMicAction: (value: boolean) => void;
updateScreenAction: (value: boolean) => void;
updateChatAction: (value: boolean) => void;
updateAudioRequestState: (value: string | null) => void;
updateScreenRequestState: (value: string | null) => void;
updateChatRequestState: (value: string | null) => void;
updateAudioRequestTime: (value: number) => void;
updateScreenRequestTime: (value: number) => void;
updateChatRequestTime: (value: number) => void;
updateOldSoundIds: (value: string[]) => void;
updateHostLabel: (value: string) => void;
updateMainScreenFilled: (value: boolean) => void;
updateLocalStreamScreen: (value: MediaStream | null) => void;
updateScreenAlreadyOn: (value: boolean) => void;
updateChatAlreadyOn: (value: boolean) => void;
updateRedirectURL: (value: string) => void;
updateOldAllStreams: (value: (Participant | Stream)[]) => void;
updateAdminVidID: (value: string) => void;
updateStreamNames: (value: Stream[]) => void;
updateNon_alVideoStreams: (value: Participant[]) => void;
updateSortAudioLoudness: (value: boolean) => void;
updateAudioDecibels: (value: AudioDecibels[]) => void;
updateMixed_alVideoStreams: (value: (Participant | Stream)[]) => void;
updateNon_alVideoStreams_muted: (value: Participant[]) => void;
updatePaginatedStreams: (value: (Participant | Stream)[][]) => void;
updateLocalStreamAudio: (value: MediaStream | null) => void;
updateDefAudioID: (value: string) => void;
updateUserDefaultAudioInputDevice: (value: string) => void;
updateUserDefaultAudioOutputDevice: (value: string) => void;
updatePrevAudioInputDevice: (value: string) => void;
updatePrevVideoInputDevice: (value: string) => void;
updateAudioPaused: (value: boolean) => void;
updateMainScreenPerson: (value: string) => void;
updateAdminOnMainScreen: (value: boolean) => void;
updateScreenStates: (value: ScreenState[]) => void;
updatePrevScreenStates: (value: ScreenState[]) => void;
updateUpdateDateState: (value: number | null) => void;
updateLastUpdate: (value: number | null) => void;
updateNForReadjustRecord: (value: number) => void;
updateFixedPageLimit: (value: number) => void;
updateRemoveAltGrid: (value: boolean) => void;
updateNForReadjust: (value: number) => void;
updateLastReorderTime: (value: number) => void;
updateAudStreamNames: (value: Stream[]) => void;
updateCurrentUserPage: (value: number) => void;
updateMainHeightWidth: (value: number) => void;
updatePrevMainHeightWidth: (value: number) => void;
updatePrevDoPaginate: (value: boolean) => void;
updateDoPaginate: (value: boolean) => void;
updateShareEnded: (value: boolean) => void;
updateLStreams: (value: (Participant | Stream)[]) => void;
updateChatRefStreams: (value: (Participant | Stream)[]) => void;
updateControlHeight: (value: number) => void;
updateIsWideScreen: (value: boolean) => void;
updateIsMediumScreen: (value: boolean) => void;
updateIsSmallScreen: (value: boolean) => void;
updateAddGrid: (value: boolean) => void;
updateAddAltGrid: (value: boolean) => void;
updateGridRows: (value: number) => void;
updateGridCols: (value: number) => void;
updateAltGridRows: (value: number) => void;
updateAltGridCols: (value: number) => void;
updateNumberPages: (value: number) => void;
updateCurrentStreams: (value: (Participant | Stream)[]) => void;
updateShowMiniView: (value: boolean) => void;
updateNStream: (value: MediaStream | null) => void;
updateDefer_receive: (value: boolean) => void;
updateAllAudioStreams: (value: (Participant | Stream)[]) => void;
updateRemoteScreenStream: (value: Stream[]) => void;
updateScreenProducer: (value: Producer | null) => void;
updateLocalScreenProducer: (value: Producer | null) => void;
updateGotAllVids: (value: boolean) => void;
updatePaginationHeightWidth: (value: number) => void;
updatePaginationDirection: (value: "horizontal" | "vertical") => void;
updateGridSizes: (value: GridSizes) => void;
updateScreenForceFullDisplay: (value: boolean) => void;
updateMainGridStream: (value: CustomMediaComponent[]) => void;
updateOtherGridStreams: (value: CustomMediaComponent[][]) => void;
updateAudioOnlyStreams: (value: CustomMediaComponent[]) => void;
updateVideoInputs: (value: MediaDeviceInfo[]) => void;
updateAudioInputs: (value: MediaDeviceInfo[]) => void;
updateMeetingProgressTime: (value: string) => void;
updateMeetingElapsedTime: (value: number) => void;
updateRef_participants: (value: Participant[]) => void;
messages: BehaviorSubject;
startDirectMessage: BehaviorSubject;
directMessageDetails: BehaviorSubject;
showMessagesBadge: BehaviorSubject;
audioSetting: BehaviorSubject;
videoSetting: BehaviorSubject;
screenshareSetting: BehaviorSubject;
chatSetting: BehaviorSubject;
displayOption: BehaviorSubject;
autoWave: BehaviorSubject;
forceFullDisplay: BehaviorSubject;
prevForceFullDisplay: BehaviorSubject;
prevMeetingDisplayType: BehaviorSubject;
waitingRoomFilter: BehaviorSubject;
waitingRoomList: BehaviorSubject;
waitingRoomCounter: BehaviorSubject;
filteredWaitingRoomList: BehaviorSubject;
requestFilter: BehaviorSubject;
requestList: BehaviorSubject;
requestCounter: BehaviorSubject;
filteredRequestList: BehaviorSubject;
totalReqWait: BehaviorSubject;
alertVisible: BehaviorSubject;
alertMessage: BehaviorSubject;
alertType: BehaviorSubject<"danger" | "success" | "info" | "warning">;
alertPosition: BehaviorSubject<"center" | "bottom" | "top" | "top-right" | "top-left" | "bottom-right" | "bottom-left">;
alertDuration: BehaviorSubject;
progressTimerVisible: BehaviorSubject;
progressTimerValue: BehaviorSubject;
isMenuModalVisible: BehaviorSubject;
isRecordingModalVisible: BehaviorSubject;
isSettingsModalVisible: BehaviorSubject;
isRequestsModalVisible: BehaviorSubject;
isWaitingModalVisible: BehaviorSubject;
isCoHostModalVisible: BehaviorSubject;
isMediaSettingsModalVisible: BehaviorSubject;
isDisplaySettingsModalVisible: BehaviorSubject;
isParticipantsModalVisible: BehaviorSubject;
isMessagesModalVisible: BehaviorSubject;
isConfirmExitModalVisible: BehaviorSubject;
isConfirmHereModalVisible: BehaviorSubject;
private suppressConfirmHereForSession;
isShareEventModalVisible: BehaviorSubject;
isLoadingModalVisible: BehaviorSubject;
modernThemeDarkMode: BehaviorSubject;
resolvePreferredTheme: () => boolean;
updateModernThemeDarkMode: (value: boolean) => void;
recordingMediaOptions: BehaviorSubject;
recordingAudioOptions: BehaviorSubject;
recordingVideoOptions: BehaviorSubject;
recordingVideoType: BehaviorSubject;
recordingVideoOptimized: BehaviorSubject;
recordingDisplayType: BehaviorSubject<"video" | "media" | "all">;
recordingAddHLS: BehaviorSubject;
recordingNameTags: BehaviorSubject;
recordingBackgroundColor: BehaviorSubject;
recordingNameTagsColor: BehaviorSubject;
recordingAddText: BehaviorSubject;
recordingCustomText: BehaviorSubject;
recordingCustomTextPosition: BehaviorSubject;
recordingCustomTextColor: BehaviorSubject;
recordingOrientationVideo: BehaviorSubject