mediasfu-reactjs
Version:
mediasfu-reactjs – React 18/19 WebRTC SDK for video conferencing, webinars, broadcasts, live streaming, chat, recording, whiteboard, and AI agents. Plug-in prebuilt rooms or build fully custom UIs.
138 lines • 5.44 kB
TypeScript
export interface PrepopulateParticipantLike {
name?: string;
islevel?: string;
ScreenID?: string;
ScreenOn?: boolean;
[key: string]: any;
}
export interface PrepopulateStreamLike {
producerId?: string;
stream?: any;
[key: string]: any;
}
export interface BuildPrepopulateUserMediaPlanOptions<P extends PrepopulateParticipantLike, S extends PrepopulateStreamLike> {
participants: P[];
allVideoStreams: S[];
member: string;
islevel: string;
shared: boolean;
shareScreenStarted: boolean;
eventType: string;
screenId?: string;
whiteboardStarted: boolean;
whiteboardEnded: boolean;
remoteScreenStream: S[];
localStreamScreen: any;
checkOrientation: () => string;
isWideScreen: boolean;
forceFullDisplay: boolean;
includeWhiteboardAsScreenFlow?: boolean;
}
export interface PrepopulateUserMediaPlan<P extends PrepopulateParticipantLike> {
screenFlowActive: boolean;
shouldReturnEarly: boolean;
shouldUpdateAdminOnMainScreen: boolean;
screenForceFullDisplay: boolean;
host: P | null;
hostStream: any;
adminOnMainScreen: boolean;
mainScreenPerson: string;
}
export interface ResolveMainHostRenderModeOptions {
islevel: string;
localUIMode: boolean;
videoAlreadyOn: boolean;
audioAlreadyOn: boolean;
hostVideoOn: boolean;
hostMuted?: boolean;
}
export type MainHostRenderMode = 'adminVideo' | 'audio' | 'mini' | 'video';
export interface ResolveHostVideoStreamOptions<TStreamLike = PrepopulateStreamLike> {
islevel: string;
keepBackground: boolean;
virtualStream: any;
localStreamVideo: any;
oldAllStreams: TStreamLike[];
hostVideoID?: string;
}
export interface BuildMainScreenStateOptions {
filled: boolean;
adminOnMainScreen: boolean;
mainScreenPerson: string;
}
export interface MainScreenState {
filled: boolean;
adminOnMainScreen: boolean;
mainScreenPerson: string;
}
export interface BuildMainHostCardPlanOptions<TStreamLike = PrepopulateStreamLike> {
islevel: string;
localUIMode: boolean;
videoAlreadyOn: boolean;
audioAlreadyOn: boolean;
hostVideoOn: boolean;
hostMuted?: boolean;
hostIsAdmin: boolean;
hostName: string;
hostVideoID?: string;
fallbackName: string;
member: string;
keepBackground: boolean;
virtualStream: any;
localStreamVideo: any;
oldAllStreams: TStreamLike[];
}
export interface MainHostCardPlan {
kind: 'video' | 'audio' | 'mini';
key: string;
name: string;
initials?: string;
remoteProducerId?: string;
videoStream?: any;
doMirror?: boolean;
state: MainScreenState;
}
export interface BuildScreenShareHostCardPlanOptions {
hostName: string;
hostScreenID?: string;
hostIsAdmin: boolean;
shared: boolean;
hostStream: any;
screenForceFullDisplay: boolean;
annotateScreenStream: boolean;
}
export interface ScreenShareHostCardPlan {
key: string;
name: string;
remoteProducerId: string;
videoStream: any;
forceFullDisplay: boolean;
doMirror: false;
state: MainScreenState;
}
/**
* ReactJS-local mirror helper for resolving host render mode in non-screen-share flow.
*/
export declare function resolveMainHostRenderMode({ islevel, localUIMode, videoAlreadyOn, audioAlreadyOn, hostVideoOn, hostMuted, }: ResolveMainHostRenderModeOptions): MainHostRenderMode;
/**
* ReactJS-local mirror for resolving host video stream source in non-screen-share flow.
*/
export declare function resolveHostVideoStream<TStreamLike extends PrepopulateStreamLike = PrepopulateStreamLike>({ islevel, keepBackground, virtualStream, localStreamVideo, oldAllStreams, hostVideoID, }: ResolveHostVideoStreamOptions<TStreamLike>): any;
/**
* ReactJS-local mirror for normalizing main-screen state updates.
*/
export declare function buildMainScreenState({ filled, adminOnMainScreen, mainScreenPerson, }: BuildMainScreenStateOptions): MainScreenState;
/**
* ReactJS-local mirror for resolving the non-screen-share host card plan.
*/
export declare function buildMainHostCardPlan<TStreamLike extends PrepopulateStreamLike = PrepopulateStreamLike>({ islevel, localUIMode, videoAlreadyOn, audioAlreadyOn, hostVideoOn, hostMuted, hostIsAdmin, hostName, hostVideoID, fallbackName, member, keepBackground, virtualStream, localStreamVideo, oldAllStreams, }: BuildMainHostCardPlanOptions<TStreamLike>): MainHostCardPlan;
/**
* ReactJS-local mirror for resolving the screen-share host card plan.
*/
export declare function buildScreenShareHostCardPlan({ hostName, hostScreenID, hostIsAdmin, shared, hostStream, screenForceFullDisplay, annotateScreenStream, }: BuildScreenShareHostCardPlanOptions): ScreenShareHostCardPlan;
/**
* ReactJS-local mirror of shared prepopulateUserMedia planning logic.
* Keep this aligned with mediasfu-shared/src/consumers/gridLayout/prepopulateUserMedia.engine.ts.
*/
export declare function buildPrepopulateUserMediaPlan<P extends PrepopulateParticipantLike, S extends PrepopulateStreamLike>({ participants, allVideoStreams, member, shared, shareScreenStarted, eventType, screenId, whiteboardStarted, whiteboardEnded, remoteScreenStream, localStreamScreen, checkOrientation, isWideScreen, forceFullDisplay, includeWhiteboardAsScreenFlow, }: BuildPrepopulateUserMediaPlanOptions<P, S>): PrepopulateUserMediaPlan<P>;
//# sourceMappingURL=prepopulateUserMedia.engine.d.ts.map