mediasfu-angular
Version:
mediasfu-angular - Angular 17/18/19 WebRTC SDK for video conferencing, webinars, broadcasts, live streaming, chat, recording, whiteboard, and AI agents. Prebuilt rooms and fully custom UIs.
1,037 lines • 157 kB
TypeScript
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 { MainScreenComponent } from '../display-components/main-screen-component/main-screen-component.component';
import { MainGridComponent } from '../display-components/main-grid-component/main-grid-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 { ModernParticipantsModalComponent } from '../../modern/modal-components/modern-participants-modal.component';
import { ModernRecordingModalComponent } from '../../modern/modal-components/modern-recording-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 { FlexibleVideo } from '../display-components/flexible-video/flexible-video.component';
import { AudioGrid } from '../display-components/audio-grid/audio-grid.component';
import { MessageWidget } from '../display-components/control-widgets/message-widget.component';
import { MenuRecordWidget } from '../display-components/control-widgets/menu-record-widget.component';
import { RecordTimerWidget } from '../display-components/control-widgets/record-timer-widget.component';
import { MenuParticipantsWidget } from '../display-components/control-widgets/menu-participants-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, MainButtonAlt, SeedData, PreJoinPageOptions, CreateMediaSFURoomOptions, JoinMediaSFURoomOptions, JoinRoomOnMediaSFUType, CreateRoomOnMediaSFUType } from '../../@types/types';
import { LaunchRecording } from '../../methods/recording-methods/launch-recording.service';
import { StartRecording } from '../../methods/recording-methods/start-recording.service';
import { ConfirmRecording } from '../../methods/recording-methods/confirm-recording.service';
import { LaunchParticipants } from '../../methods/participants-methods/launch-participants.service';
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 { UpdateRecording } from '../../methods/recording-methods/update-recording.service';
import { StopRecording } from '../../methods/recording-methods/stop-recording.service';
import { PersonJoined } from '../../producers/socket-receive-methods/person-joined.service';
import { RoomRecordParams } from '../../producers/socket-receive-methods/room-record-params.service';
import { BanParticipant } from '../../producers/socket-receive-methods/ban-participant.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 { StartRecords } from '../../producers/socket-receive-methods/start-records.service';
import { ReInitiateRecording } from '../../producers/socket-receive-methods/re-initiate-recording.service';
import { GetDomains } from '../../producers/socket-receive-methods/get-domains.service';
import { UpdateConsumingDomains } from '../../producers/socket-receive-methods/update-consuming-domains.service';
import { RecordingNotice } from '../../producers/socket-receive-methods/recording-notice.service';
import { TimeLeftRecording } from '../../producers/socket-receive-methods/time-left-recording.service';
import { StoppedRecording } from '../../producers/socket-receive-methods/stopped-recording.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 type { 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 MediasfuBroadcastOptions = {
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;
};
/**
* MediasfuBroadcast component provides a streaming broadcast interface with various UI components and settings.
* It handles conditional rendering of a prejoin page or main broadcast content, along with integrated modals and controls.
*
* @component
* @selector app-mediasfu-broadcast
* @standalone true
* @imports [RouterOutlet, CommonModule, AlertComponent, AudioGrid, ControlButtonsComponentTouch, FlexibleVideo, LoadingModal, ConfirmExitModal, MessagesModal, ConfirmHereModal, ShareEventModal, WelcomePage, ParticipantsModal, RecordingModal, MainAspectComponent, MainContainerComponent, MainGridComponent, MainScreenComponent, MessageWidget, MenuRecordWidget, RecordTimerWidget, MenuParticipantsWidget]
*
* @template
* The component's template contains:
* - Conditional rendering of the PrejoinPage component if the user is not validated.
* - The main broadcast content, including video, controls, and optional modals.
* - The `app-main-container-component` manages the main display.
* - Controls for video and audio grid display and interactive modals (Participants, Messages, Recording, etc.)
*
* @input {any} PrejoinPage - Component for the prejoin page, defaults to `WelcomePage`.
* @input {MediasfuBroadcastOptions} 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-Broadcast".
*
* @styles
* Custom styles specific to MediaSFU layout and interactions.
*
* @constructor
* @class MediasfuBroadcast
* @implements OnInit, OnDestroy
*
* @method ngOnInit - Initializes the component, sets up necessary configurations, and event listeners.
* @method ngOnDestroy - Cleanup on component destruction, including removal of event listeners and active intervals.
*
* @example
* ```html
* <app-mediasfu-broadcast
* [PrejoinPage]="CustomPrejoinComponent"
* [localLink]="'https://localhost:3000'"
* [connectMediaSFU]="true"
* [credentials]="{ apiUserName: 'username', apiKey: 'apikey' }"
* [useLocalUIMode]="true"
* [seedData]="seedDataObject"
* [useSeed]="true"
* [imgSrc]="'https://example.com/logo.png'"
* [sourceParameters]="{ source: 'camera', width: 640, height: 480 }"
* [updateSourceParameters]="updateSourceParameters"
* [returnUI]="true"
* [noUIPreJoinOptions]="{ roomName: 'room1', userName: 'user1' }"
* [joinMediaSFURoom]="joinMediaSFURoom"
* [createMediaSFURoom]="createMediaSFURoom"
* [customVideoCard]="CustomVideoCardComponent"
* [customAudioCard]="CustomAudioCardComponent"
* [customMiniCard]="CustomMiniCardComponent"
* [customMainComponent]="CustomMainComponent">
* </app-mediasfu-broadcast>
* ```
*/
export declare class MediasfuBroadcast 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;
launchRecording: LaunchRecording;
startRecording: StartRecording;
confirmRecording: ConfirmRecording;
launchParticipants: LaunchParticipants;
launchMessages: LaunchMessages;
launchConfirmExit: LaunchConfirmExit;
startMeetingProgressTimer: StartMeetingProgressTimer;
updateRecording: UpdateRecording;
stopRecording: StopRecording;
personJoined: PersonJoined;
roomRecordParams: RoomRecordParams;
banParticipant: BanParticipant;
producerMediaPaused: ProducerMediaPaused;
producerMediaResumed: ProducerMediaResumed;
producerMediaClosed: ProducerMediaClosed;
meetingEnded: MeetingEnded;
disconnectUserSelf: DisconnectUserSelf;
receiveMessage: ReceiveMessage;
meetingTimeRemaining: MeetingTimeRemaining;
meetingStillThere: MeetingStillThere;
startRecords: StartRecords;
reInitiateRecording: ReInitiateRecording;
recordingNotice: RecordingNotice;
timeLeftRecording: TimeLeftRecording;
stoppedRecording: StoppedRecording;
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<string, any>;
uiOverrides?: MediasfuUICustomOverrides;
title: string;
protected readonly MainContainerComponentRef: typeof MainContainerComponent;
protected readonly MainAspectComponentRef: typeof MainAspectComponent;
protected readonly MainScreenComponentRef: typeof MainScreenComponent;
protected readonly MainGridComponentRef: typeof MainGridComponent;
protected readonly FlexibleVideoComponentRef: typeof FlexibleVideo;
protected readonly AudioGridComponentRef: typeof AudioGrid;
protected readonly ControlButtonsTouchComponentRef: typeof ControlButtonsComponentTouch;
protected readonly AlertComponentRef: typeof ModernAlertComponent;
protected readonly LoadingModalComponentRef: typeof ModernLoadingModalComponent;
protected readonly ParticipantsModalComponentRef: typeof ModernParticipantsModalComponent;
protected readonly RecordingModalComponentRef: typeof ModernRecordingModalComponent;
protected readonly ConfirmExitModalComponentRef: typeof ModernConfirmExitModalComponent;
protected readonly ConfirmHereModalComponentRef: typeof ModernConfirmHereModalComponent;
protected readonly ShareEventModalComponentRef: typeof ModernShareEventModalComponent;
protected readonly EventSettingsModalComponentRef: typeof ModernEventSettingsModalComponent;
protected readonly MessagesModalComponentRef: typeof ModernMessagesModalComponent;
mainContainerOverrideProps: () => {
containerStyle: Record<string, any>;
parameters: any;
};
mainAspectOverrideProps: () => {
backgroundColor: string;
defaultFraction: number;
showControls: boolean;
updateIsWideScreen: (value: boolean) => void;
updateIsMediumScreen: (value: boolean) => void;
updateIsSmallScreen: (value: boolean) => void;
parameters: any;
};
mainScreenOverrideProps: () => {
doStack: boolean;
mainSize: number;
defaultFraction: number;
showControls: boolean;
updateComponentSizes: (sizes: ComponentSizes) => void;
parameters: any;
};
mainGridOverrideProps: () => {
height: number;
width: number;
backgroundColor: string;
mainSize: number;
showAspect: boolean;
timeBackgroundColor: string;
meetingProgressTime: string;
parameters: any;
};
flexibleVideoOverrideProps: () => {
customWidth: number;
customHeight: number;
rows: number;
columns: number;
componentsToRender: CustomMediaComponent[];
showAspect: boolean;
parameters: any;
customVideoCard: any;
customAudioCard: any;
customMiniCard: any;
};
controlButtonsTouchBroadcastOverrideProps: () => {
buttons: ButtonTouch[];
position: string;
location: string;
direction: string;
showAspect: boolean;
parameters: any;
};
controlButtonsTouchRecordOverrideProps: () => {
buttons: {
icon: import("@fortawesome/fontawesome-common-types").IconDefinition;
text: string;
onPress: () => void;
activeColor: () => string;
inActiveColor: () => string;
show: boolean;
}[];
direction: string;
showAspect: boolean;
location: string;
position: string;
parameters: any;
};
controlButtonsTouchRecordAltOverrideProps: () => {
buttons: MainButtonAlt[];
direction: string;
showAspect: boolean;
location: string;
position: string;
parameters: any;
};
audioGridOverrideProps: () => {
componentsToRender: CustomMediaComponent[];
parameters: any;
};
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;
parameters: any;
};
loadingModalOverrideProps: () => {
isVisible: boolean;
isDarkMode: boolean;
parameters: any;
};
participantsModalOverrideProps: () => {
backgroundColor: string;
isParticipantsModalVisible: boolean;
onParticipantsClose: () => void;
participantsCounter: number;
onParticipantsFilterChange: (value: string) => void;
parameters: {
localUIMode: boolean;
roomName: string;
member: string;
adminPasscode: string;
youAreCoHost: boolean;
youAreHost: boolean;
islevel: string;
confirmedToRecord: boolean;
meetingDisplayType: string;
meetingVideoOptimized: boolean;
eventType: EventType;
participants: Participant[];
filteredParticipants: Participant[];
participantsCounter: number;
participantsFilter: string;
consume_sockets: ConsumeSocket[];
rtpCapabilities: types.RtpCapabilities;
roomRecvIPs: string[];
meetingRoomParams: MeetingRoomParams;
itemPageLimit: number;
audioOnlyRoom: boolean;
addForBasic: boolean;
screenPageLimit: number;
shareScreenStarted: boolean;
shared: boolean;
targetOrientation: string;
targetResolution: string;
targetResolutionHost: string;
vidCons: VidCons;
frameRate: number;
hParams: import("mediasfu-shared").HParamsType;
vParams: import("mediasfu-shared").VParamsType;
screenParams: import("mediasfu-shared").ScreenParamsType;
aParams: import("mediasfu-shared").AParamsType;
recordingAudioPausesLimit: number;
recordingAudioPausesCount: number;
recordingAudioSupport: boolean;
recordingAudioPeopleLimit: number;
recordingAudioParticipantsTimeLimit: number;
recordingVideoPausesCount: number;
recordingVideoPausesLimit: number;
recordingVideoSupport: boolean;
recordingVideoPeopleLimit: number;
recordingVideoParticipantsTimeLimit: number;
recordingAllParticipantsSupport: boolean;
recordingVideoParticipantsSupport: boolean;
recordingAllParticipantsFullRoomSupport: boolean;
recordingVideoParticipantsFullRoomSupport: boolean;
recordingPreferredOrientation: string;
recordingSupportForOtherOrientation: boolean;
recordingMultiFormatsSupport: boolean;
userRecordingParams: UserRecordingParams;
canRecord: boolean;
startReport: boolean;
endReport: boolean;
recordStartTime: number;
recordElapsedTime: number;
isTimerRunning: boolean;
canPauseResume: boolean;
recordChangeSeconds: number;
pauseLimit: number;
pauseRecordCount: number;
canLaunchRecord: boolean;
stopLaunchRecord: boolean;
participantsAll: Participant[];
firstAll: boolean;
updateMainWindow: boolean;
first_round: boolean;
landScaped: boolean;
lock_screen: boolean;
screenId: string;
allVideoStreams: (Stream | Participant)[];
newLimitedStreams: (Stream | Participant)[];
newLimitedStreamsIDs: string[];
activeSounds: string[];
screenShareIDStream: string;
screenShareNameStream: string;
adminIDStream: string;
adminNameStream: string;
youYouStream: (Stream | Participant)[];
youYouStreamIDs: string[];
localStream: MediaStream;
recordStarted: boolean;
recordResumed: boolean;
recordPaused: boolean;
recordStopped: boolean;
adminRestrictSetting: boolean;
videoRequestState: string;
videoRequestTime: number;
videoAction: boolean;
localStreamVideo: MediaStream;
userDefaultVideoInputDevice: string;
currentFacingMode: string;
prevFacingMode: string;
defVideoID: string;
allowed: boolean;
dispActiveNames: string[];
p_dispActiveNames: string[];
activeNames: string[];
prevActiveNames: string[];
p_activeNames: string[];
membersReceived: boolean;
deferScreenReceived: boolean;
hostFirstSwitch: boolean;
micAction: boolean;
screenAction: boolean;
chatAction: boolean;
audioRequestState: string;
screenRequestState: string;
chatRequestState: string;
audioRequestTime: number;
screenRequestTime: number;
chatRequestTime: number;
updateRequestIntervalSeconds: number;
oldSoundIds: string[];
hostLabel: string;
mainScreenFilled: boolean;
localStreamScreen: MediaStream;
screenAlreadyOn: boolean;
chatAlreadyOn: boolean;
redirectURL: string;
oldAllStreams: (Stream | Participant)[];
adminVidID: string;
streamNames: Stream[];
non_alVideoStreams: Participant[];
sortAudioLoudness: boolean;
audioDecibels: AudioDecibels[];
mixed_alVideoStreams: (Stream | Participant)[];
non_alVideoStreams_muted: Participant[];
paginatedStreams: (Stream | Participant)[][];
localStreamAudio: MediaStream;
defAudioID: string;
userDefaultAudioInputDevice: string;
userDefaultAudioOutputDevice: string;
prevAudioInputDevice: string;
prevVideoInputDevice: string;
audioPaused: boolean;
mainScreenPerson: string;
adminOnMainScreen: boolean;
screenStates: ScreenState[];
prevScreenStates: ScreenState[];
updateDateState: number;
lastUpdate: number;
nForReadjustRecord: number;
fixedPageLimit: number;
removeAltGrid: boolean;
nForReadjust: number;
lastReorderTime: number;
reorderInterval: number;
fastReorderInterval: number;
audStreamNames: Stream[];
currentUserPage: number;
mainHeightWidth: number;
prevMainHeightWidth: number;
prevDoPaginate: boolean;
doPaginate: boolean;
shareEnded: boolean;
lStreams: (Stream | Participant)[];
chatRefStreams: (Stream | Participant)[];
controlHeight: number;
isWideScreen: boolean;
isMediumScreen: boolean;
isSmallScreen: boolean;
addGrid: boolean;
addAltGrid: boolean;
gridRows: number;
gridCols: number;
altGridRows: number;
altGridCols: number;
numberPages: number;
currentStreams: (Stream | Participant)[];
showMiniView: boolean;
nStream: MediaStream;
defer_receive: boolean;
allAudioStreams: (Stream | Participant)[];
screenProducer: Producer;
remoteScreenStream: Stream[];
gotAllVids: boolean;
paginationHeightWidth: number;
paginationDirection: "horizontal" | "vertical";
gridSizes: GridSizes;
screenForceFullDisplay: boolean;
mainGridStream: CustomMediaComponent[];
otherGridStreams: CustomMediaComponent[][];
audioOnlyStreams: CustomMediaComponent[];
videoInputs: MediaDeviceInfo[];
audioInputs: MediaDeviceInfo[];
meetingProgressTime: string;
meetingElapsedTime: number;
ref_participants: Participant[];
messages: Message[];
startDirectMessage: boolean;
directMessageDetails: Participant;
coHost: string;
coHostResponsibility: CoHostResponsibility[];
audioSetting: string;
videoSetting: string;
screenshareSetting: string;
chatSetting: string;
autoWave: boolean;
forceFullDisplay: boolean;
prevForceFullDisplay: boolean;
prevMeetingDisplayType: string;
waitingRoomFilter: string;
waitingRoomList: WaitingRoomParticipant[];
waitingRoomCounter: number;
filteredWaitingRoomList: WaitingRoomParticipant[];
requestFilter: string;
requestList: Request[];
requestCounter: number;
filteredRequestList: Request[];
totalReqWait: number;
alertVisible: boolean;
alertMessage: string;
alertType: "danger" | "success" | "info" | "warning";
alertPosition: "center" | "bottom" | "top" | "top-right" | "top-left" | "bottom-right" | "bottom-left";
alertDuration: number;
progressTimerVisible: boolean;
progressTimerValue: number;
isMenuModalVisible: boolean;
isRecordingModalVisible: boolean;
isSettingsModalVisible: boolean;
isRequestsModalVisible: boolean;
isWaitingModalVisible: boolean;
isCoHostModalVisible: boolean;
isMediaSettingsModalVisible: boolean;
isDisplaySettingsModalVisible: boolean;
isParticipantsModalVisible: boolean;
isMessagesModalVisible: boolean;
isConfirmExitModalVisible: boolean;
isConfirmHereModalVisible: boolean;
isLoadingModalVisible: boolean;
recordingMediaOptions: string;
recordingAudioOptions: string;
recordingVideoOptions: string;
recordingVideoType: string;
recordingVideoOptimized: boolean;
recordingDisplayType: "video" | "media" | "all";
recordingAddHLS: boolean;
recordingAddText: boolean;
recordingCustomText: string;
recordingCustomTextPosition: string;
recordingCustomTextColor: string;
recordingNameTags: boolean;
recordingBackgroundColor: string;
recordingNameTagsColor: string;
recordingOrientationVideo: string;
clearedToResume: boolean;
clearedToRecord: boolean;
recordState: string;
showRecordButtons: boolean;
recordingProgressTime: string;
audioSwitching: boolean;
videoSwitching: boolean;
videoAlreadyOn: boolean;
audioAlreadyOn: boolean;
componentSizes: ComponentSizes;
hasCameraPermission: boolean;
hasAudioPermission: boolean;
transportCreated: boolean;
localTransportCreated: boolean;
transportCreatedVideo: boolean;
transportCreatedAudio: boolean;
transportCreatedScreen: boolean;
producerTransport: Transport;
localProducerTransport: Transport;
videoProducer: Producer;
localVideoProducer: Producer;
params: ProducerOptions;
videoParams: ProducerOptions;
audioParams: ProducerOptions;
audioProducer: Producer;
audioLevel: number;
localAudioProducer: Producer;
consumerTransports: TransportType[];
consumingTransports: string[];
polls: Poll[];
poll: Poll;
isPollModalVisible: boolean;
customImage: string;
selectedImage: string;
segmentVideo: MediaStream;
selfieSegmentation: SelfieSegmentation;
pauseSegmentation: boolean;
processedStream: MediaStream;
keepBackground: boolean;
backgroundHasChanged: boolean;
virtualStream: MediaStream;
mainCanvas: HTMLCanvasElement;
prevKeepBackground: boolean;
appliedBackground: boolean;
isBackgroundModalVisible: boolean;
autoClickBackground: boolean;
breakoutRooms: BreakoutParticipant[][];
currentRoomIndex: number;
canStartBreakout: boolean;
breakOutRoomStarted: boolean;
breakOutRoomEnded: boolean;
hostNewRoom: number;
limitedBreakRoom: BreakoutParticipant[];
mainRoomsLength: number;
memberRoom: number;
isBreakoutRoomsModalVisible: boolean;
whiteboardUsers: WhiteboardUser[];
currentWhiteboardIndex: number;
canStartWhiteboard: boolean;
whiteboardStarted: boolean;
whiteboardEnded: boolean;
whiteboardLimit: number;
isWhiteboardModalVisible: boolean;
isConfigureWhiteboardModalVisible: boolean;
shapes: Shape[];
useImageBackground: boolean;
redoStack: Shape[];
undoStack: string[];
canvasStream: MediaStream;
canvasWhiteboard: HTMLCanvasElement;
canvasScreenboard: HTMLCanvasElement;
processedScreenStream: MediaStream;
annotateScreenStream: boolean;
mainScreenCanvas: HTMLCanvasElement;
isScreenboardModalVisible: boolean;
validated: boolean;
device: types.Device;
socket: Socket<import("@socket.io/component-emitter").DefaultEventsMap, import("@socket.io/component-emitter").DefaultEventsMap>;
localSocket: Socket<import("@socket.io/component-emitter").DefaultEventsMap, import("@socket.io/component-emitter").DefaultEventsMap>;
checkMediaPermission: boolean;
onWeb: boolean;
updateRoomName: any;
updateMember: any;
updateAdminPasscode: any;
updateYouAreCoHost: any;
updateYouAreHost: any;
updateIslevel: any;
updateCoHost: any;
updateCoHostResponsibility: any;
updateConfirmedToRecord: any;
updateMeetingDisplayType: any;
updateMeetingVideoOptimized: any;
updateEventType: any;
updateParticipants: any;
updateParticipantsCounter: any;
updateParticipantsFilter: any;
updateConsume_sockets: any;
updateRtpCapabilities: any;
updateRoomRecvIPs: any;
updateMeetingRoomParams: any;
updateItemPageLimit: any;
updateAudioOnlyRoom: any;
updateAddForBasic: any;
updateScreenPageLimit: any;
updateShareScreenStarted: any;
updateShared: any;
updateTargetOrientation: any;
updateTargetResolution: any;
updateTargetResolutionHost: any;
updateVidCons: any;
updateFrameRate: any;
updateHParams: any;
updateVParams: any;
updateScreenParams: any;
updateAParams: any;
updateRecordingAudioPausesLimit: any;
updateRecordingAudioPausesCount: any;
updateRecordingAudioSupport: any;
updateRecordingAudioPeopleLimit: any;
updateRecordingAudioParticipantsTimeLimit: any;
updateRecordingVideoPausesCount: any;
updateRecordingVideoPausesLimit: any;
updateRecordingVideoSupport: any;
updateRecordingVideoPeopleLimit: any;
updateRecordingVideoParticipantsTimeLimit: any;
updateRecordingAllParticipantsSupport: any;
updateRecordingVideoParticipantsSupport: any;
updateRecordingAllParticipantsFullRoomSupport: any;
updateRecordingVideoParticipantsFullRoomSupport: any;
updateRecordingPreferredOrientation: any;
updateRecordingSupportForOtherOrientation: any;
updateRecordingMultiFormatsSupport: any;
updateUserRecordingParams: any;
updateCanRecord: any;
updateStartReport: any;
updateEndReport: any;
updateRecordTimerInterval: any;
updateRecordStartTime: any;
updateRecordElapsedTime: any;
updateIsTimerRunning: any;
updateCanPauseResume: any;
updateRecordChangeSeconds: any;
updatePauseLimit: any;
updatePauseRecordCount: any;
updateCanLaunchRecord: any;
updateStopLaunchRecord: any;
updateParticipantsAll: any;
updateFirstAll: any;
updateUpdateMainWindow: any;
updateFirst_round: any;
updateLandScaped: any;
updateLock_screen: any;
updateScreenId: any;
updateAllVideoStreams: any;
updateNewLimitedStreams: any;
updateNewLimitedStreamsIDs: any;
updateActiveSounds: any;
updateScreenShareIDStream: any;
updateScreenShareNameStream: any;
updateAdminIDStream: any;
updateAdminNameStream: any;
updateYouYouStream: any;
updateYouYouStreamIDs: any;
updateLocalStream: any;
updateRecordStarted: any;
updateRecordResumed: any;
updateRecordPaused: any;
updateRecordStopped: any;
updateAdminRestrictSetting: any;
updateVideoRequestState: any;
updateVideoRequestTime: any;
updateVideoAction: any;
updateLocalStreamVideo: any;
updateUserDefaultVideoInputDevice: any;
updateCurrentFacingMode: any;
updatePrevFacingMode: any;
updateDefVideoID: any;
updateAllowed: any;
updateDispActiveNames: any;
updateP_dispActiveNames: any;
updateActiveNames: any;
updatePrevActiveNames: any;
updateP_activeNames: any;
updateMembersReceived: any;
updateDeferScreenReceived: any;
updateHostFirstSwitch: any;
updateMicAction: any;
updateScreenAction: any;
updateChatAction: any;
updateAudioRequestState: any;
updateScreenRequestState: any;
updateChatRequestState: any;
updateAudioRequestTime: any;
updateScreenRequestTime: any;
updateChatRequestTime: any;
updateOldSoundIds: any;
updateHostLabel: any;
updateMainScreenFilled: any;
updateLocalStreamScreen: any;
updateScreenAlreadyOn: any;
updateChatAlreadyOn: any;
updateRedirectURL: any;
updateOldAllStreams: any;
updateAdminVidID: any;
updateStreamNames: any;
updateNon_alVideoStreams: any;
updateSortAudioLoudness: any;
updateAudioDecibels: any;
updateMixed_alVideoStreams: any;
updateNon_alVideoStreams_muted: any;
updatePaginatedStreams: any;
updateLocalStreamAudio: any;
updateDefAudioID: any;
updateUserDefaultAudioInputDevice: any;
updateUserDefaultAudioOutputDevice: any;
updatePrevAudioInputDevice: any;
updatePrevVideoInputDevice: any;
updateAudioPaused: any;
updateMainScreenPerson: any;
updateAdminOnMainScreen: any;
updateScreenStates: any;
updatePrevScreenStates: any;
updateUpdateDateState: any;
updateLastUpdate: any;
updateNForReadjustRecord: any;
updateFixedPageLimit: any;
updateRemoveAltGrid: any;
updateNForReadjust: any;
updateLastReorderTime: any;
updateAudStreamNames: any;
updateCurrentUserPage: any;
updateMainHeightWidth: any;
updatePrevMainHeightWidth: any;
updatePrevDoPaginate: any;
updateDoPaginate: any;
updateShareEnded: any;
updateLStreams: any;
updateChatRefStreams: any;
updateControlHeight: any;
updateIsWideScreen: any;
updateIsMediumScreen: any;
updateIsSmallScreen: any;
updateAddGrid: any;
updateAddAltGrid: any;
updateGridRows: any;
updateGridCols: any;
updateAltGridRows: any;
updateAltGridCols: any;
updateNumberPages: any;
updateCurrentStreams: any;
updateShowMiniView: any;
updateNStream: any;
updateDefer_receive: any;
updateAllAudioStreams: any;
updateRemoteScreenStream: any;
updateScreenProducer: any;
updateGotAllVids: any;
updatePaginationHeightWidth: any;
updatePaginationDirection: any;
updateGridSizes: any;
updateScreenForceFullDisplay: any;
updateMainGridStream: any;
updateOtherGridStreams: any;
updateAudioOnlyStreams: any;
updateVideoInputs: any;
updateAudioInputs: any;
updateMeetingProgressTime: any;
updateMeetingElapsedTime: any;
updateRef_participants: any;
updateMessages: any;
updateStartDirectMessage: any;
updateDirectMessageDetails: any;
updateShowMessagesBadge: any;
updateAudioSetting: any;
updateVideoSetting: any;
updateScreenshareSetting: any;
updateChatSetting: any;
updateAutoWave: any;
updateForceFullDisplay: any;
updatePrevForceFullDisplay: any;
updatePrevMeetingDisplayType: any;
updateWaitingRoomFilter: any;
updateWaitingRoomList: any;
updateWaitingRoomCounter: any;
updateRequestFilter: any;
updateRequestList: any;
updateRequestCounter: any;
updateTotalReqWait: any;
updateIsMenuModalVisible: any;
updateIsRecordingModalVisible: any;
updateIsSettingsModalVisible: any;
updateIsRequestsModalVisible: any;
updateIsWaitingModalVisible: any;
updateIsCoHostModalVisible: any;
updateIsMediaSettingsModalVisible: any;
updateIsDisplaySettingsModalVisible: any;
updateIsParticipantsModalVisible: any;
updateIsMessagesModalVisible: any;
updateIsConfirmExitModalVisible: any;
updateIsConfirmHereModalVisible: any;
updateIsLoadingModalVisible: any;
updateRecordingMediaOptions: any;
updateRecordingAudioOptions: any;
updateRecordingVideoOptions: any;
updateRecordingVideoType: any;
updateRecordingVideoOptimized: any;
updateRecordingDisplayType: any;
updateRecordingAddHLS: any;
updateRecordingAddText: any;
updateRecordingCustomText: any;
updateRecordingCustomTextPosition: any;
updateRecordingCustomTextColor: any;
updateRecordingNameTags: any;
updateRecordingBackgroundColor: any;
updateRecordingNameTagsColor: any;
updateRecordingOrientationVideo: any;
updateClearedToResume: any;
updateClearedToRecord: any;
updateRecordState: any;
updateShowRecordButtons: any;
updateRecordingProgressTime: any;
updateAudioSwitc