UNPKG

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.

929 lines 147 kB
import { Injector, ChangeDetectorRef, OnDestroy, OnInit } from '@angular/core'; import { BehaviorSubject } from 'rxjs'; import { Socket } from 'socket.io-client'; import { MainAspectComponent } from '../display-components/main-aspect-component/main-aspect-component.component'; import { ControlButtonsComponent } from '../display-components/control-buttons-component/control-buttons-component.component'; import { ControlButtonsAltComponent } from '../display-components/control-buttons-alt-component/control-buttons-alt-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 { MainGridComponent } from '../display-components/main-grid-component/main-grid-component.component'; import { SubAspectComponent } from '../display-components/sub-aspect-component/sub-aspect-component.component'; import { MainContainerComponent } from '../display-components/main-container-component/main-container-component.component'; import { TranslationSettingsModal, type TranslationChannelAvailability } from '../translation-components/translation-settings-modal/translation-settings-modal.component'; import { WelcomePageOptions } from '../misc-components/welcome-page/welcome-page.component'; import { BackgroundModal } from '../background-components/background-modal/background-modal.component'; import { BreakoutRoomsModal } from '../breakout-components/breakout-rooms-modal.component'; import { ConfigureWhiteboardModal } from '../whiteboard-components/configure-whiteboard-modal/configure-whiteboard-modal.component'; import { Whiteboard } from '../whiteboard-components/whiteboard/whiteboard.component'; import { Screenboard } from '../screenboard-components/screenboard/screenboard.component'; import { ModernCoHostModalComponent } from '../../modern/modal-components/modern-co-host-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 { ModernDisplaySettingsModalComponent } from '../../modern/modal-components/modern-display-settings-modal.component'; import { ModernEventSettingsModalComponent } from '../../modern/modal-components/modern-event-settings-modal.component'; import { ModernMediaSettingsModalComponent } from '../../modern/modal-components/modern-media-settings-modal.component'; import { ModernMenuModalComponent } from '../../modern/modal-components/modern-menu-modal.component'; import { ModernMessagesModalComponent } from '../../modern/modal-components/modern-messages-modal.component'; import { ModernPollModalComponent } from '../../modern/modal-components/modern-poll-modal.component'; import { ModernParticipantsModalComponent } from '../../modern/modal-components/modern-participants-modal.component'; import { ModernRecordingModalComponent } from '../../modern/modal-components/modern-recording-modal.component'; import { ModernRequestsModalComponent } from '../../modern/modal-components/modern-requests-modal.component'; import { ModernShareEventModalComponent } from '../../modern/modal-components/modern-share-event-modal.component'; import { ModernWaitingRoomModalComponent } from '../../modern/modal-components/modern-waiting-room-modal.component'; import { ModernAlertComponent } from '../../modern/display-components/modern-alert.component'; import { ModernLoadingModalComponent } from '../../modern/display-components/modern-loading-modal.component'; import { ScreenboardModal } from '../screenboard-components/screenboard-modal/screenboard-modal.component'; import { FlexibleGrid } from '../display-components/flexible-grid/flexible-grid.component'; import { FlexibleVideo } from '../display-components/flexible-video/flexible-video.component'; import { AudioGrid } from '../display-components/audio-grid/audio-grid.component'; import { ModernPaginationComponent } from '../../modern/display-components/modern-pagination.component'; import { MenuWidget } from '../display-components/control-widgets/menu-widget.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 { ScreenShareWidget } from '../display-components/control-widgets/screenshare-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, MainCustomButton, SeedData, PreJoinPageOptions, CreateMediaSFURoomOptions, JoinMediaSFURoomOptions, JoinRoomOnMediaSFUType, CreateRoomOnMediaSFUType } from '../../@types/types'; import { LaunchMenuModal } from '../../methods/menu-methods/launch-menu-modal.service'; 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 { LaunchWaiting } from '../../methods/waiting-methods/launch-waiting.service'; import { launchCoHost } from '../../methods/co-host-methods/launch-co-host.service'; import { LaunchMediaSettings } from '../../methods/media-settings-methods/launch-media-settings.service'; import { LaunchDisplaySettings } from '../../methods/display-settings-methods/launch-display-settings.service'; import { LaunchSettings } from '../../methods/settings-methods/launch-settings.service'; import { LaunchRequests } from '../../methods/requests-methods/launch-requests.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 { SendMessage } from '../../methods/message-methods/send-message.service'; import { MuteParticipants } from '../../methods/participants-methods/mute-participants.service'; import { MessageParticipants } from '../../methods/participants-methods/message-participants.service'; import { RemoveParticipants } from '../../methods/participants-methods/remove-participants.service'; import { LaunchPoll } from '../../methods/polls-methods/launch-poll.service'; import { LaunchBreakoutRooms } from '../../methods/breakout-room-methods/launch-breakout-rooms.service'; import { LaunchConfigureWhiteboard } from '../../methods/whiteboard-methods/launch-configure-whiteboard.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 { PollUpdated } from '../../methods/polls-methods/poll-updated.service'; import { HandleCreatePoll } from '../../methods/polls-methods/handle-create-poll.service'; import { HandleVotePoll } from '../../methods/polls-methods/handle-vote-poll.service'; import { HandleEndPoll } from '../../methods/polls-methods/handle-end-poll.service'; import { BreakoutRoomUpdated } from '../../methods/breakout-room-methods/breakout-room-updated.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 { UserWaiting } from '../../producers/socket-receive-methods/user-waiting.service'; import { PersonJoined } from '../../producers/socket-receive-methods/person-joined.service'; import { AllWaitingRoomMembers } from '../../producers/socket-receive-methods/all-waiting-room-members.service'; import { RoomRecordParams } from '../../producers/socket-receive-methods/room-record-params.service'; import { BanParticipant } from '../../producers/socket-receive-methods/ban-participant.service'; import { UpdatedCoHost } from '../../producers/socket-receive-methods/updated-co-host.service'; import { ParticipantRequested } from '../../producers/socket-receive-methods/participant-requested.service'; import { ScreenProducerId } from '../../producers/socket-receive-methods/screen-producer-id.service'; import { UpdateMediaSettings } from '../../producers/socket-receive-methods/update-media-settings.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 { ControlMediaHost } from '../../producers/socket-receive-methods/control-media-host.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 { HostRequestResponse } from '../../producers/socket-receive-methods/host-request-response.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 { PanelistsUpdated } from '../../producers/socket-receive-methods/panelists-updated.service'; import { PanelistFocusChanged } from '../../producers/socket-receive-methods/panelist-focus-changed.service'; import { ReceiveControlMedia } from '../../producers/socket-receive-methods/receive-control-media.service'; import { AddedAsPanelist } from '../../producers/socket-receive-methods/added-as-panelist.service'; import { RemovedFromPanelists } from '../../producers/socket-receive-methods/removed-from-panelists.service'; import { PermissionUpdated } from '../../producers/socket-receive-methods/permission-updated.service'; import { PermissionConfigUpdated } from '../../producers/socket-receive-methods/permission-config-updated.service'; import { TranslationReceiveMethods, type TranslationProducerMap, type TranslationRoomConfig } from '../../producers/socket-receive-methods/translation-receive-methods.service'; import { TranslationConsumerSwitch } from '../../consumers/translation-consumer-switch.service'; import { PermissionConfig } from '../../methods/permissions-methods/update-permission-config.service'; import { LiveSubtitleService } from '../../services/live-subtitle.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 { MediasfuUICustomOverrides } from '../../@types/ui-overrides.types'; import { UIOverrideResolverService } from '../../services/ui-override-resolver.service'; 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; interface SpeakerTranslationState { speakerId: string; speakerName: string; inputLanguage: string; outputLanguage: string; originalProducerId: string; enabled: boolean; } interface SpeakerTranslationStateUpdateOptions { speakerName?: string; inputLanguage?: string; enabled?: boolean; } export type MediasfuGenericOptions = { 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; canUsePersonalTranslation?: boolean; personalTranslationUsername?: string; }; type SidebarPanelContent = 'menu' | 'messages' | 'participants' | 'shareEvent' | 'recording' | 'eventSettings' | 'translation' | 'requests' | 'waiting' | 'coHost' | 'mediaSettings' | 'background' | 'displaySettings' | 'poll' | 'breakoutRooms' | 'configureWhiteboard'; type SidebarContent = 'none' | SidebarPanelContent; /** * MediasfuGeneric component provides a customizable interface with a full suite of modal windows and flexible layout options for interactive media applications. * * @component * @selector app-mediasfu-generic * @standalone true * @imports [RouterOutlet, CommonModule, BreakoutRoomsModal, BackgroundModal, CoHostModal, AlertComponent, AudioGrid, ControlButtonsAltComponent, ControlButtonsComponentTouch, ControlButtonsComponent, FlexibleGrid, FlexibleVideo, LoadingModal, Pagination, SubAspectComponent, DisplaySettingsModal, EventSettingsModal, ConfirmExitModal, MediaSettingsModal, MenuModal, MessagesModal, ConfirmHereModal, ShareEventModal, WelcomePage, ParticipantsModal, PollModal, RecordingModal, RequestsModal, MainAspectComponent, MainContainerComponent, MainGridComponent, MainScreenComponent, OtherGridComponent, Screenboard, ScreenboardModal, Whiteboard, ConfigureWhiteboardModal, WaitingRoomModal, MenuWidget, MessageWidget, MenuRecordWidget, RecordTimerWidget, MenuParticipantsWidget, ScreenShareWidget] * * @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 {MediasfuGenericOptions} 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-Generic". * * @styles * Component-specific styles, including full-screen settings and customizable colors for backgrounds. * * @providers [CookieService] - Provides cookies service for session handling. * * @constructor * @class MediasfuGeneric * @implements OnInit, OnDestroy * * @method ngOnInit - Initializes the component and its configurations. * @method ngOnDestroy - Performs cleanup, removing event listeners and intervals as needed. * * @example * ```html * <app-mediasfu-generic * [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-generic> * ``` */ export declare class MediasfuGeneric 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; handleCreatePoll: HandleCreatePoll; handleEndPoll: HandleEndPoll; handleVotePoll: HandleVotePoll; captureCanvasStream: CaptureCanvasStream; resumePauseAudioStreams: ResumePauseAudioStreams; processConsumerTransportsAudio: ProcessConsumerTransportsAudio; launchMenuModal: LaunchMenuModal; launchRecording: LaunchRecording; startRecording: StartRecording; confirmRecording: ConfirmRecording; launchWaiting: LaunchWaiting; launchCoHost: launchCoHost; launchMediaSettings: LaunchMediaSettings; launchDisplaySettings: LaunchDisplaySettings; launchSettings: LaunchSettings; launchRequests: LaunchRequests; launchParticipants: LaunchParticipants; launchMessages: LaunchMessages; launchConfirmExit: LaunchConfirmExit; sendMessage: SendMessage; muteParticipants: MuteParticipants; messageParticipants: MessageParticipants; removeParticipants: RemoveParticipants; launchPoll: LaunchPoll; launchBreakoutRooms: LaunchBreakoutRooms; launchConfigureWhiteboard: LaunchConfigureWhiteboard; startMeetingProgressTimer: StartMeetingProgressTimer; updateRecording: UpdateRecording; stopRecording: StopRecording; userWaiting: UserWaiting; personJoined: PersonJoined; allWaitingRoomMembers: AllWaitingRoomMembers; roomRecordParams: RoomRecordParams; banParticipant: BanParticipant; updatedCoHost: UpdatedCoHost; participantRequested: ParticipantRequested; screenProducerId: ScreenProducerId; updateMediaSettings: UpdateMediaSettings; producerMediaPaused: ProducerMediaPaused; producerMediaResumed: ProducerMediaResumed; producerMediaClosed: ProducerMediaClosed; controlMediaHost: ControlMediaHost; meetingEnded: MeetingEnded; disconnectUserSelf: DisconnectUserSelf; receiveMessage: ReceiveMessage; meetingTimeRemaining: MeetingTimeRemaining; meetingStillThere: MeetingStillThere; startRecords: StartRecords; reInitiateRecording: ReInitiateRecording; recordingNotice: RecordingNotice; timeLeftRecording: TimeLeftRecording; stoppedRecording: StoppedRecording; hostRequestResponse: HostRequestResponse; allMembers: AllMembers; allMembersRest: AllMembersRest; disconnect: Disconnect; pollUpdated: PollUpdated; breakoutRoomUpdated: BreakoutRoomUpdated; 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; liveSubtitleService: LiveSubtitleService; translationConsumerSwitch: TranslationConsumerSwitch; panelistsUpdated?: PanelistsUpdated; panelistFocusChanged?: PanelistFocusChanged; receiveControlMedia?: ReceiveControlMedia; addedAsPanelist?: AddedAsPanelist; removedFromPanelists?: RemovedFromPanelists; permissionUpdated?: PermissionUpdated; permissionConfigUpdated?: PermissionConfigUpdated; translationReceiveMethods?: TranslationReceiveMethods; 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; canUsePersonalTranslation: boolean; personalTranslationUsername?: string; 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 OtherGridComponentRef: typeof OtherGridComponent; protected readonly FlexibleVideoComponentRef: typeof FlexibleVideo; protected readonly WhiteboardComponentRef: typeof Whiteboard; protected readonly PaginationComponentRef: typeof ModernPaginationComponent; protected readonly AudioGridComponentRef: typeof AudioGrid; protected readonly FlexibleGridComponentRef: typeof FlexibleGrid; protected readonly SubAspectComponentRef: typeof SubAspectComponent; protected readonly ControlButtonsComponentRef: typeof ControlButtonsComponent; protected readonly ControlButtonsTouchComponentRef: typeof ControlButtonsComponentTouch; protected readonly ControlButtonsAltComponentRef: typeof ControlButtonsAltComponent; protected readonly AlertComponentRef: typeof ModernAlertComponent; protected readonly MenuModalComponentRef: typeof ModernMenuModalComponent; protected readonly SidebarMenuModalComponentRef: typeof ModernMenuModalComponent; protected readonly EventSettingsModalComponentRef: typeof ModernEventSettingsModalComponent; protected readonly TranslationSettingsModalComponentRef: typeof TranslationSettingsModal; protected readonly RequestsModalComponentRef: typeof ModernRequestsModalComponent; protected readonly WaitingRoomModalComponentRef: typeof ModernWaitingRoomModalComponent; protected readonly CoHostModalComponentRef: typeof ModernCoHostModalComponent; protected readonly MediaSettingsModalComponentRef: typeof ModernMediaSettingsModalComponent; protected readonly ParticipantsModalComponentRef: typeof ModernParticipantsModalComponent; protected readonly MessagesModalComponentRef: typeof ModernMessagesModalComponent; protected readonly DisplaySettingsModalComponentRef: typeof ModernDisplaySettingsModalComponent; protected readonly ConfirmExitModalComponentRef: typeof ModernConfirmExitModalComponent; protected readonly ConfirmHereModalComponentRef: typeof ModernConfirmHereModalComponent; protected readonly ShareEventModalComponentRef: typeof ModernShareEventModalComponent; protected readonly RecordingModalComponentRef: typeof ModernRecordingModalComponent; protected readonly PollModalComponentRef: typeof ModernPollModalComponent; protected readonly BackgroundModalComponentRef: typeof BackgroundModal; protected readonly BreakoutRoomsModalComponentRef: typeof BreakoutRoomsModal; protected readonly ConfigureWhiteboardModalComponentRef: typeof ConfigureWhiteboardModal; protected readonly ScreenboardModalComponentRef: typeof ScreenboardModal; protected readonly ScreenboardComponentRef: typeof Screenboard; protected readonly LoadingModalComponentRef: typeof ModernLoadingModalComponent; mainContainerOverrideProps: () => { containerStyle: Record<string, any>; controlHeight: number; eventType: EventType; parameters: any; }; roomSurfaceColor: () => string; roomModalSurfaceColor: () => string; roomAccentSurfaceColor: () => string; controlStripTextColor: () => string; mainAspectContainerStyle: () => Partial<CSSStyleDeclaration>; mainScreenContainerStyle: () => Partial<CSSStyleDeclaration>; mainAspectOverrideProps: () => { backgroundColor: string; defaultFraction: number; showControls: boolean; updateIsWideScreen: (value: boolean) => void; updateIsMediumScreen: (value: boolean) => void; updateIsSmallScreen: (value: boolean) => void; containerStyle: Partial<CSSStyleDeclaration>; parameters: any; }; mainScreenOverrideProps: () => { doStack: boolean; mainSize: number; defaultFraction: number; showControls: boolean; containerWidthFraction: number; containerStyle: Partial<CSSStyleDeclaration>; 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; localStreamScreen: MediaStream; annotateScreenStream: boolean; Screenboard: { component: typeof Screenboard; inputs: { customWidth: number; customHeight: number; parameters: any; showAspect: boolean; }; }; parameters: any; customVideoCard: any; customAudioCard: any; customMiniCard: any; }; whiteboardOverrideProps: () => { customWidth: number; customHeight: number; parameters: any; showAspect: boolean; }; otherGridOverrideProps: () => { height: number; width: number; backgroundColor: string; showAspect: boolean; timeBackgroundColor: string; showTimer: boolean; meetingProgressTime: string; parameters: any; }; paginationOverrideProps: () => { totalPages: number; currentUserPage: number; showAspect: boolean; paginationHeight: number; direction: "horizontal" | "vertical"; parameters: any; }; audioGridOverrideProps: () => { componentsToRender: CustomMediaComponent[]; parameters: any; }; flexibleGridOverrideProps: () => { customWidth: number; customHeight: number; rows: number; columns: number; componentsToRender: CustomMediaComponent[]; backgroundColor: string; parameters: any; customVideoCard: any; customAudioCard: any; customMiniCard: any; }; flexibleGridAltOverrideProps: () => { customWidth: number; customHeight: number; rows: number; columns: number; componentsToRender: CustomMediaComponent[]; backgroundColor: string; parameters: any; customVideoCard: any; customAudioCard: any; customMiniCard: any; }; subAspectOverrideProps: () => { backgroundColor: string; showControls: boolean; containerWidthFraction: number; defaultFractionSub: number; parameters: any; }; controlButtonsOverrideProps: () => { buttons: any[]; isDarkMode: boolean; buttonColor: string; buttonBackgroundColor: { default: string; pressed: string; }; alignment: string; vertical: boolean; buttonsContainerStyle: { width: string; marginTop: string; marginBottom: string; backgroundColor: string; }; parameters: any; }; controlButtonsTouchBroadcastOverrideProps: () => { buttons: ButtonTouch[]; position: string; location: string; direction: string; showAspect: boolean; variant: string; 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; variant: string; parameters: any; }; controlButtonsTouchRecordAltOverrideProps: () => { buttons: MainButtonAlt[]; direction: string; showAspect: boolean; location: string; position: string; variant: string; parameters: any; }; controlButtonsTouchChatOverrideProps: () => { buttons: ButtonTouch[]; position: string; location: string; direction: string; showAspect: boolean; variant: string; parameters: any; }; menuModalOverrideProps: () => { backgroundColor: string; isVisible: boolean; isDarkMode: boolean; onToggleTheme: (value: boolean) => void; onClose: () => void; customButtons: MainCustomButton[]; roomName: string; adminPasscode: string; islevel: string; eventType: EventType; localLink: string; parameters: any; }; sidebarMenuModalOverrideProps: () => { backgroundColor: string; isVisible: boolean; onClose: () => void; renderMode: "inline"; showHeader: boolean; contentStyle: Partial<CSSStyleDeclaration>; isDarkMode: boolean; onToggleTheme: (value: boolean) => void; customButtons: MainCustomButton[]; roomName: string; adminPasscode: string; islevel: string; eventType: EventType; localLink: string; parameters: any; }; 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<import("@socket.io/component-emitter").DefaultEventsMap, import("@socket.io/component-emitter").DefaultEventsMap>; 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; }; translationSettingsModalOverrideProps: () => { isVisible: boolean; onClose: () => void; isDarkMode: boolean; translationSupported: boolean; translationConfig: TranslationRoomConfig; member: string; islevel: string; audioProducerId: string; participants: Participant[]; mySpokenLanguage: string; mySpokenLanguageEnabled: boolean; myDefaultOutputLanguage: string; myDefaultListenLanguage: string; listenPreferences: Map<string, string>; availableTranslationChannels: Map<string, TranslationChannelAvailability>; updateMySpokenLanguage: (value: string) => void; updateMySpokenLanguageEnabled: (value: boolean) => void; updateMyDefaultOutputLanguage: (value: string | null) => void; updateMyDefaultListenLanguage: (value: string | null) => void; updateListenPreferences: (value: Map<string, string> | ((prev: Map<string, string>) => Map<string, string>)) => void; socket: Socket<import("@socket.io/component-emitter").DefaultEventsMap, import("@socket.io/component-emitter").DefaultEventsMap>; roomName: string; 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; showSubtitlesOnCards: boolean; updateShowSubtitlesOnCards: (value: boolean) => void; canUsePersonalTranslation: boolean; personalTranslationUsername: string; parameters: any; }; requestsModalOverrideProps: () => { backgroundColor: string; isRequestsModalVisible: boolean; onRequestClose: () => void; requestCounter: number; onRequestFilterChange: (value: string) => void; updateRequestList: (value: Request[]) => void; requestList: Request[]; roomName: string; socket: Socket<import("@socket.io/component-emitter").DefaultEventsMap, import("@socket.io/component-emitter").DefaultEventsMap>; parameters: any; }; waitingRoomModalOverrideProps: () => { backgroundColor: string; isWaitingModalVisible: boolean; onWaitingRoomClose: () => void; waitingRoomCounter: number; onWaitingRoomFilterChange: (value: string) => void; waitingRoomList: WaitingRoomParticipant[]; updateWaitingList: (value: WaitingRoomParticipant[]) => void; roomName: string; socket: Socket<import("@socket.io/component-emitter").DefaultEventsMap, import("@socket.io/component-emitter").DefaultEventsMap>; parameters: { filteredWaitingRoomList: WaitingRoomParticipant[]; getUpdatedAllParams: () => any; }; }; coHostModalOverrideProps: () => { backgroundColor: string; isCoHostModalVisible: boolean; onCoHostClose: () => void; coHostResponsibility: CoHostResponsibility[]; participants: Participant[]; currentCohost: string; roomName: string; 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; updateCoHostResponsibility: (value: CoHostResponsibility[]) => void; updateCoHost: (value: string) => void; updateIsCoHostModalVisible: (value: boolean) => void; socket: Socket<import("@socket.io/component-emitter").DefaultEventsMap, import("@socket.io/component-emitter").DefaultEventsMap>; parameters: any; }; mediaSettingsModalOverrideProps: () => { backgroundColor: string; isMediaSettingsModalVisible: boolean; onMediaSettingsClose: () => void; onOpenBackgroundSidebar: () => void; parameters: any; }; participantsModalOverrideProps: () => { backgroundColor: string; isParticipantsModalVisible: boolean; onParticipantsClose: () => void; participantsCounter: number; onParticipantsFilterChange: (value: string) => void; parameters: { updateParticipants: (value: Participant[]) => void; filteredParticipants: Participant[]; updateIsParticipantsModalVisible: (value: boolean) => void; updateDirectMessageDetails: (value: Participant | null) => void; updateStartDirectMessage: (value: boolean) => void; updateIsMessagesModalVisible: (value: boolean) => 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; participants: Participant[]; roomName: string; islevel: string; member: string; coHostResponsibility: CoHostResponsibility[]; coHost: string; eventType: EventType; startDirectMessage: boolean; directMessageDetails: Participant; socket: Socket<import("@socket.io/component-emitter").DefaultEventsMap, import("@socket.io/component-emitter").DefaultEventsMap>; getUpdatedAllParams: () => any; }; }; displaySettingsModalOverrideProps: () => { backgroundColor: string; isDisplaySettingsModalVisible: boolean; onDisplaySettingsClose: () => void; parameters: any; }; recordingModalOverrideProps: () => { backgroundColor: string; isRecordingModalVisible: boolean; onClose: () => void; startRecording: ({ parameters }: import("../../@types/types").StartRecordingOptions) => Promise<boolean | undefined>; confirmRecording: ({ parameters }: import("../../@types/types").ConfirmRecordingOptions) => Promise<void>; parameters: any; }; 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<import("@socket.io/component-emitter").DefaultEventsMap, import("@socket.io/component-emitter").DefaultEventsMap>; chatSetting: string; parameters: any; }; sidebarMessagesModalOverrideProps: () => { backgroundColor: string; isMessagesModalVisible: boolean; onMessagesClose: () => void; renderMode: "inline"; showHeader: boolean; contentStyle: Partial<CSSStyleDeclaration>; 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<import("@s