UNPKG

mediasfu-angular

Version:
715 lines 328 kB
import { Injector, ChangeDetectorRef, OnDestroy, OnInit } from '@angular/core'; import { BehaviorSubject } from 'rxjs'; import { Socket } from 'socket.io-client'; import { WelcomePageOptions } from '../misc-components/welcome-page/welcome-page.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 { sleep } from '../../methods/utils/sleep.util'; 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 { Device, Producer, ProducerOptions, RtpCapabilities, Transport } from 'mediasoup-client/lib/types'; import { SelfieSegmentation } from '@mediapipe/selfie_segmentation'; import * as i0 from "@angular/core"; 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. * * @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"> * </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; 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) | undefined; returnUI?: boolean | undefined; noUIPreJoinOptions?: CreateMediaSFURoomOptions | JoinMediaSFURoomOptions; joinMediaSFURoom?: JoinRoomOnMediaSFUType; createMediaSFURoom?: CreateRoomOnMediaSFUType; title: string; private mainHeightWidthSubscription; private validatedSubscription; private islevelSubscription; private coHostSubscription; private buttonSubscriptions; 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, 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); createInjector(inputs: any): Injector; mediaSFUFunctions: () => { updateMiniCardsGrid: ({ rows, cols, defal, actualRows, parameters, }: import("../../consumers/update-mini-cards-grid.service").UpdateMiniCardsGridOptions) => Promise<void>; mixStreams: ({ alVideoStreams, non_alVideoStreams, ref_participants, }: import("../../consumers/mix-streams.service").MixStreamsOptions) => Promise<(Stream | Participant)[]>; dispStreams: ({ lStreams, ind, auto, ChatSkip, forChatID, parameters, breakRoom, inBreakRoom, }: import("../../consumers/disp-streams.service").DispStreamsOptions) => Promise<void>; stopShareScreen: ({ parameters }: import("../../consumers/stop-share-screen.service").StopShareScreenOptions) => Promise<void>; checkScreenShare: ({ parameters }: import("../../consumers/check-screen-share.service").CheckScreenShareOptions) => Promise<void>; startShareScreen: ({ parameters }: import("../../consumers/start-share-screen.service").StartShareScreenOptions) => Promise<void>; requestScreenShare: ({ parameters }: import("../../consumers/request-screen-share.service").RequestScreenShareOptions) => Promise<void>; reorderStreams: ({ add, screenChanged, parameters, }: import("../../consumers/reorder-streams.service").ReorderStreamsOptions) => Promise<void>; prepopulateUserMedia: ({ name, parameters, }: import("../../consumers/prepopulate-user-media.service").PrepopulateUserMediaOptions) => Promise<{ component: any; inputs: any; }[] | void>; getVideos: ({ participants, allVideoStreams, oldAllStreams, adminVidID, updateAllVideoStreams, updateOldAllStreams, }: import("../../consumers/get-videos.service").GetVideosOptions) => Promise<void>; rePort: ({ restart, parameters }: import("../../consumers/re-port.service").RePortOptions) => Promise<void>; trigger: ({ ref_ActiveNames, parameters }: import("../../consumers/trigger.service").TriggerOptions) => Promise<void>; consumerResume: ({ track, remoteProducerId, params, parameters, nsock, consumer, }: import("../../consumers/consumer-resume.service").ConsumerResumeOptions) => Promise<void>; connectSendTransport: ({ option, targetOption, parameters }: import("../../consumers/connect-send-transport.service").ConnectSendTransportOptions) => Promise<void>; connectSendTransportAudio: ({ targetOption, audioParams, parameters, }: import("../../consumers/connect-send-transport-audio.service").ConnectSendTransportAudioOptions) => Promise<void>; connectSendTransportVideo: ({ videoParams, parameters, targetOption, }: import("../../consumers/connect-send-transport-video.service").ConnectSendTransportVideoOptions) => Promise<void>; connectSendTransportScreen: ({ stream, parameters, targetOption, }: import("../../consumers/connect-send-transport-screen.service").ConnectSendTransportScreenOptions) => Promise<void>; processConsumerTransports: ({ consumerTransports, lStreams_, parameters, }: import("../../consumers/process-consumer-transports.service").ProcessConsumerTransportsOptions) => Promise<void>; resumePauseStreams: ({ parameters }: import("../../consumers/resume-pause-streams.service").ResumePauseStreamsOptions) => Promise<void>; readjust: ({ n, state, parameters }: import("../../consumers/readjust.service").ReadjustOptions) => Promise<void>; checkGrid: ({ rows, cols, actives, }: import("../../consumers/check-grid.service").CheckGridOptions) => Promise<[boolean, number, number, number, number, number, number] | void>; getEstimate: ({ n, parameters }: import("../../consumers/get-estimate.service").GetEstimateOptions) => [number, number, number]; calculateRowsAndColumns: ({ n }: import("../../consumers/calculate-rows-and-columns.service").CalculateRowsAndColumnsOptions) => [number, number]; addVideosGrid: ({ mainGridStreams, altGridStreams, numtoadd, numRows, numCols, actualRows, lastrowcols, removeAltGrid, parameters, }: import("../../consumers/add-videos-grid.service").AddVideosGridOptions) => Promise<void>; onScreenChanges: ({ changed, parameters, }: import("../../consumers/on-screen-changes.service").OnScreenChangesOptions) => Promise<void>; sleep: typeof sleep; changeVids: ({ screenChanged, parameters }: import("../../consumers/change-vids.service").ChangeVidsOptions) => Promise<void>; compareActiveNames: ({ restart, parameters, }: import("../../consumers/compare-active-names.service").CompareActiveNamesOptions) => Promise<void>; compareScreenStates: ({ restart, parameters, }: import("../../consumers/compare-screen-states.service").CompareScreenStatesOptions) => Promise<void>; createSendTransport: ({ option, parameters }: import("../../consumers/create-send-transport.service").CreateSendTransportOptions) => Promise<void>; resumeSendTransportAudio: ({ parameters }: import("../../consumers/resume-send-transport-audio.service").ResumeSendTransportAudioOptions) => Promise<void>; receiveAllPipedTransports: ({ nsock, community, parameters, }: import("../../consumers/receive-all-piped-transports.service").ReceiveAllPipedTransportsOptions) => Promise<void>; disconnectSendTransportVideo: ({ parameters, }: import("../../consumers/disconnect-send-transport-video.service").DisconnectSendTransportVideoOptions) => Promise<void>; disconnectSendTransportAudio: ({ parameters, }: import("../../consumers/disconnect-send-transport-audio.service").DisconnectSendTransportAudioOptions) => Promise<void>; disconnectSendTransportScreen: ({ parameters, }: import("../../consumers/disconnect-send-transport-screen.service").DisconnectSendTransportScreenOptions) => Promise<void>; getPipedProducersAlt: ({ community, nsock, islevel, parameters, }: import("../../consumers/get-piped-producers-alt.service").GetPipedProducersAltOptions) => Promise<void>; signalNewConsumerTransport: ({ remoteProducerId, islevel, nsock, parameters, }: import("../../consumers/signal-new-consumer-transport.service").SignalNewConsumerTransportOptions) => Promise<string[] | void>; connectRecvTransport: ({ consumerTransport, remoteProducerId, serverConsumerTransportId, nsock, parameters, }: import("../../consumers/connect-recv-transport.service").ConnectRecvTransportOptions) => Promise<void>; reUpdateInter: ({ name, add, force, average, parameters, }: import("../../consumers/re-update-inter.service").ReUpdateInterOptions) => Promise<void>; updateParticipantAudioDecibels: ({ name, averageLoudness, audioDecibels, updateAudioDecibels, }: import("../../consumers/update-participant-audio-decibels.service").UpdateParticipantAudioDecibelsOptions) => void; closeAndResize: ({ producerId, kind, parameters, }: import("../../consumers/close-and-resize.service").CloseAndResizeOptions) => Promise<void>; autoAdjust: ({ n, eventType, shareScreenStarted, shared, }: import("../../consumers/auto-adjust.service").AutoAdjustOptions) => Promise<number[]>; switchUserVideoAlt: ({ videoPreference, checkoff, parameters, }: import("../../consumers/switch-user-video-alt.service").SwitchUserVideoAltOptions) => Promise<void>; switchUserVideo: ({ videoPreference, checkoff, parameters, }: { videoPreference: string; checkoff: boolean; parameters: any; }) => Promise<void>; switchUserAudio: ({ audioPreference, parameters }: import("../../consumers/switch-user-audio.service").SwitchUserAudioOptions) => Promise<void>; getDomains: ({ domains, alt_domains, apiUserName, apiKey, apiToken, parameters, }: import("../../@types/types").GetDomainsOptions) => Promise<void>; formatNumber: ({ number }: import("../../@types/types").FormatNumberOptions) => Promise<string | undefined>; connectIps: ({ consume_sockets, remIP, apiUserName, apiKey, apiToken, newProducerMethod, closedProducerMethod, joinConsumeRoomMethod, parameters, }: import("../../consumers/connect-ips.service").ConnectIpsOptions) => Promise<any>; connectLocalIps: ({ socket, newProducerMethod, closedProducerMethod, parameters, }: import("../../consumers/connect-local-ips.service").ConnectLocalIpsOptions) => Promise<void>; createDeviceClient: ({ rtpCapabilities }: import("../../@types/types").CreateDeviceClientOptions) => Promise<Device | null>; captureCanvasStream: ({ parameters, start, }: import("../../@types/types").CaptureCanvasStreamOptions) => Promise<void>; resumePauseAudioStreams: ({ breakRoom, inBreakRoom, parameters, }: import("../../consumers/resume-pause-audio-streams.service").ResumePauseAudioStreamsOptions) => Promise<void>; processConsumerTransportsAudio: ({ consumerTransports, lStreams, parameters, }: import("../../consumers/process-consumer-transports-audio.service").ProcessConsumerTransportsAudioOptions) => Promise<void>; checkPermission: ({ permissionType, audioSetting, videoSetting, screenshareSetting, chatSetting, }: import("../../consumers/check-permission.service").CheckPermissionOptions) => Promise<number>; streamSuccessVideo: ({ stream, parameters }: import("../../consumers/stream-success-video.service").StreamSuccessVideoOptions) => Promise<void>; streamSuccessAudio: ({ stream, parameters }: import("../../consumers/stream-success-audio.service").StreamSuccessAudioOptions) => Promise<void>; streamSuccessScreen: ({ stream, parameters }: import("../../consumers/stream-success-screen.service").StreamSuccessScreenOptions) => Promise<void>; streamSuccessAudioSwitch: ({ stream, parameters, }: import("../../consumers/stream-success-audio-switch.service").StreamSuccessAudioSwitchOptions) => Promise<void>; clickVideo: ({ parameters }: import("../../@types/types").ClickVideoOptions) => Promise<void>; clickAudio: ({ parameters }: import("../../@types/types").ClickAudioOptions) => Promise<void>; clickScreenShare: ({ parameters }: import("../../@types/types").ClickScreenShareOptions) => Promise<void>; switchVideoAlt: ({ parameters }: import("../../@types/types").SwitchVideoAltOptions) => Promise<void>; requestPermissionCamera: () => Promise<string>; requestPermissionAudio: () => Promise<string>; }; validated: BehaviorSubject<boolean>; localUIMode: BehaviorSubject<boolean>; socket: BehaviorSubject<Socket<import("@socket.io/component-emitter").DefaultEventsMap, import("@socket.io/component-emitter").DefaultEventsMap>>; localSocket?: BehaviorSubject<Socket<import("@socket.io/component-emitter").DefaultEventsMap, import("@socket.io/component-emitter").DefaultEventsMap> | undefined> | undefined; roomData: BehaviorSubject<ResponseJoinRoom | null>; device: BehaviorSubject<Device | null>; apiKey: BehaviorSubject<string>; apiUserName: BehaviorSubject<string>; apiToken: BehaviorSubject<string>; link: BehaviorSubject<string>; roomName: BehaviorSubject<string>; member: BehaviorSubject<string>; adminPasscode: BehaviorSubject<string>; islevel: BehaviorSubject<string>; coHost: BehaviorSubject<string>; coHostResponsibility: BehaviorSubject<CoHostResponsibility[]>; youAreCoHost: BehaviorSubject<boolean>; youAreHost: BehaviorSubject<boolean>; confirmedToRecord: BehaviorSubject<boolean>; meetingDisplayType: BehaviorSubject<string>; meetingVideoOptimized: BehaviorSubject<boolean>; eventType: BehaviorSubject<EventType>; participants: BehaviorSubject<Participant[]>; filteredParticipants: BehaviorSubject<Participant[]>; participantsCounter: BehaviorSubject<number>; participantsFilter: BehaviorSubject<string>; consume_sockets: BehaviorSubject<ConsumeSocket[]>; rtpCapabilities: BehaviorSubject<RtpCapabilities | null>; roomRecvIPs: BehaviorSubject<string[]>; meetingRoomParams: BehaviorSubject<MeetingRoomParams | null>; itemPageLimit: BehaviorSubject<number>; audioOnlyRoom: BehaviorSubject<boolean>; addForBasic: BehaviorSubject<boolean>; screenPageLimit: BehaviorSubject<number>; shareScreenStarted: BehaviorSubject<boolean>; shared: BehaviorSubject<boolean>; targetOrientation: BehaviorSubject<string>; targetResolution: BehaviorSubject<string>; targetResolutionHost: BehaviorSubject<string>; vidCons: BehaviorSubject<VidCons>; frameRate: BehaviorSubject<number>; hParams: BehaviorSubject<HParamsType>; vParams: BehaviorSubject<VParamsType>; screenParams: BehaviorSubject<ScreenParamsType>; aParams: BehaviorSubject<AParamsType>; recordingAudioPausesLimit: BehaviorSubject<number>; recordingAudioPausesCount: BehaviorSubject<number>; recordingAudioSupport: BehaviorSubject<boolean>; recordingAudioPeopleLimit: BehaviorSubject<number>; recordingAudioParticipantsTimeLimit: BehaviorSubject<number>; recordingVideoPausesCount: BehaviorSubject<number>; recordingVideoPausesLimit: BehaviorSubject<number>; recordingVideoSupport: BehaviorSubject<boolean>; recordingVideoPeopleLimit: BehaviorSubject<number>; recordingVideoParticipantsTimeLimit: BehaviorSubject<number>; recordingAllParticipantsSupport: BehaviorSubject<boolean>; recordingVideoParticipantsSupport: BehaviorSubject<boolean>; recordingAllParticipantsFullRoomSupport: BehaviorSubject<boolean>; recordingVideoParticipantsFullRoomSupport: BehaviorSubject<boolean>; recordingPreferredOrientation: BehaviorSubject<string>; recordingSupportForOtherOrientation: BehaviorSubject<boolean>; recordingMultiFormatsSupport: BehaviorSubject<boolean>; userRecordingParams: BehaviorSubject<UserRecordingParams>; canRecord: BehaviorSubject<boolean>; startReport: BehaviorSubject<boolean>; endReport: BehaviorSubject<boolean>; recordTimerInterval: BehaviorSubject<NodeJS.Timeout | null>; recordStartTime: BehaviorSubject<number>; recordElapsedTime: BehaviorSubject<number>; isTimerRunning: BehaviorSubject<boolean>; canPauseResume: BehaviorSubject<boolean>; recordChangeSeconds: BehaviorSubject<number>; pauseLimit: BehaviorSubject<number>; pauseRecordCount: BehaviorSubject<number>; canLaunchRecord: BehaviorSubject<boolean>; stopLaunchRecord: BehaviorSubject<boolean>; participantsAll: BehaviorSubject<Participant[]>; firstAll: BehaviorSubject<boolean>; updateMainWindow: BehaviorSubject<boolean>; first_round: BehaviorSubject<boolean>; landScaped: BehaviorSubject<boolean>; lock_screen: BehaviorSubject<boolean>; screenId: BehaviorSubject<string>; allVideoStreams: BehaviorSubject<(Stream | Participant)[]>; newLimitedStreams: BehaviorSubject<(Stream | Participant)[]>; newLimitedStreamsIDs: BehaviorSubject<string[]>; activeSounds: BehaviorSubject<string[]>; screenShareIDStream: BehaviorSubject<string>; screenShareNameStream: BehaviorSubject<string>; adminIDStream: BehaviorSubject<string>; adminNameStream: BehaviorSubject<string>; youYouStream: BehaviorSubject<(Stream | Participant)[]>; youYouStreamIDs: BehaviorSubject<string[]>; localStream: BehaviorSubject<MediaStream | null>; recordStarted: BehaviorSubject<boolean>; recordResumed: BehaviorSubject<boolean>; recordPaused: BehaviorSubject<boolean>; recordStopped: BehaviorSubject<boolean>; adminRestrictSetting: BehaviorSubject<boolean>; videoRequestState: BehaviorSubject<string | null>; videoRequestTime: BehaviorSubject<number>; videoAction: BehaviorSubject<boolean>; localStreamVideo: BehaviorSubject<MediaStream | null>; userDefaultVideoInputDevice: BehaviorSubject<string>; currentFacingMode: BehaviorSubject<string>; prevFacingMode: BehaviorSubject<string>; defVideoID: BehaviorSubject<string>; allowed: BehaviorSubject<boolean>; dispActiveNames: BehaviorSubject<string[]>; p_dispActiveNames: BehaviorSubject<string[]>; activeNames: BehaviorSubject<string[]>; prevActiveNames: BehaviorSubject<string[]>; p_activeNames: BehaviorSubject<string[]>; membersReceived: BehaviorSubject<boolean>; deferScreenReceived: BehaviorSubject<boolean>; hostFirstSwitch: BehaviorSubject<boolean>; micAction: BehaviorSubject<boolean>; screenAction: BehaviorSubject<boolean>; chatAction: BehaviorSubject<boolean>; audioRequestState: BehaviorSubject<string | null>; screenRequestState: BehaviorSubject<string | null>; chatRequestState: BehaviorSubject<string | null>; audioRequestTime: BehaviorSubject<number>; screenRequestTime: BehaviorSubject<number>; chatRequestTime: BehaviorSubject<number>; updateRequestIntervalSeconds: BehaviorSubject<number>; oldSoundIds: BehaviorSubject<string[]>; hostLabel: BehaviorSubject<string>; mainScreenFilled: BehaviorSubject<boolean>; localStreamScreen: BehaviorSubject<MediaStream | null>; screenAlreadyOn: BehaviorSubject<boolean>; chatAlreadyOn: BehaviorSubject<boolean>; redirectURL: BehaviorSubject<string>; oldAllStreams: BehaviorSubject<(Stream | Participant)[]>; adminVidID: BehaviorSubject<string>; streamNames: BehaviorSubject<Stream[]>; non_alVideoStreams: BehaviorSubject<Participant[]>; sortAudioLoudness: BehaviorSubject<boolean>; audioDecibels: BehaviorSubject<AudioDecibels[]>; mixed_alVideoStreams: BehaviorSubject<(Stream | Participant)[]>; non_alVideoStreams_muted: BehaviorSubject<Participant[]>; paginatedStreams: BehaviorSubject<(Stream | Participant)[][]>; localStreamAudio: BehaviorSubject<MediaStream | null>; defAudioID: BehaviorSubject<string>; userDefaultAudioInputDevice: BehaviorSubject<string>; userDefaultAudioOutputDevice: BehaviorSubject<string>; prevAudioInputDevice: BehaviorSubject<string>; prevVideoInputDevice: BehaviorSubject<string>; audioPaused: BehaviorSubject<boolean>; mainScreenPerson: BehaviorSubject<string>; adminOnMainScreen: BehaviorSubject<boolean>; screenStates: BehaviorSubject<ScreenState[]>; prevScreenStates: BehaviorSubject<ScreenState[]>; updateDateState: BehaviorSubject<number | null>; lastUpdate: BehaviorSubject<number | null>; nForReadjustRecord: BehaviorSubject<number>; fixedPageLimit: BehaviorSubject<number>; removeAltGrid: BehaviorSubject<boolean>; nForReadjust: BehaviorSubject<number>; reorderInterval: BehaviorSubject<number>; fastReorderInterval: BehaviorSubject<number>; lastReorderTime: BehaviorSubject<number>; audStreamNames: BehaviorSubject<Stream[]>; currentUserPage: BehaviorSubject<number>; mainHeightWidth: BehaviorSubject<number>; prevMainHeightWidth: BehaviorSubject<number>; prevDoPaginate: BehaviorSubject<boolean>; doPaginate: BehaviorSubject<boolean>; shareEnded: BehaviorSubject<boolean>; lStreams: BehaviorSubject<(Stream | Participant)[]>; chatRefStreams: BehaviorSubject<(Stream | Participant)[]>; controlHeight: BehaviorSubject<number>; isWideScreen: BehaviorSubject<boolean>; isMediumScreen: BehaviorSubject<boolean>; isSmallScreen: BehaviorSubject<boolean>; addGrid: BehaviorSubject<boolean>; addAltGrid: BehaviorSubject<boolean>; gridRows: BehaviorSubject<number>; gridCols: BehaviorSubject<number>; altGridRows: BehaviorSubject<number>; altGridCols: BehaviorSubject<number>; numberPages: BehaviorSubject<number>; currentStreams: BehaviorSubject<(Stream | Participant)[]>; showMiniView: BehaviorSubject<boolean>; nStream: BehaviorSubject<MediaStream | null>; defer_receive: BehaviorSubject<boolean>; allAudioStreams: BehaviorSubject<(Stream | Participant)[]>; remoteScreenStream: BehaviorSubject<Stream[]>; screenProducer: BehaviorSubject<Producer<import("mediasoup-client/lib/types").AppData> | null>; localScreenProducer: BehaviorSubject<Producer<import("mediasoup-client/lib/types").AppData> | null>; gotAllVids: BehaviorSubject<boolean>; paginationHeightWidth: BehaviorSubject<number>; paginationDirection: BehaviorSubject<"horizontal" | "vertical">; gridSizes: BehaviorSubject<GridSizes>; screenForceFullDisplay: BehaviorSubject<boolean>; mainGridStream: BehaviorSubject<CustomMediaComponent[]>; otherGridStreams: BehaviorSubject<CustomMediaComponent[][]>; audioOnlyStreams: BehaviorSubject<CustomMediaComponent[]>; videoInputs: BehaviorSubject<MediaDeviceInfo[]>; audioInputs: BehaviorSubject<MediaDeviceInfo[]>; meetingProgressTime: BehaviorSubject<string>; meetingElapsedTime: BehaviorSubject<number>; ref_participants: BehaviorSubject<Participant[]>; 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: NodeJS.Timeout | 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; updateHostFirst