UNPKG

communication-react-19

Version:

React library for building modern communication user experiences utilizing Azure Communication Services (React 19 compatible fork)

131 lines 4 kB
import { ParticipantState, MediaAccess } from './ParticipantListParticipant'; import { RaisedHand } from './ParticipantListParticipant'; import { Reaction } from './ParticipantListParticipant'; import { Spotlight } from './ParticipantListParticipant'; /** * Scaling mode of a {@link VideoGalleryStream}. * * @public */ export type ViewScalingMode = 'Stretch' | 'Crop' | 'Fit'; /** * Options to control how video streams are rendered. * * @public */ export declare interface VideoStreamOptions { /** Whether the video stream is mirrored or not */ isMirrored?: boolean; /** Scaling mode. It can be `Stretch`, `Crop` or `Fit` */ scalingMode?: ViewScalingMode; } /** * The state of a participant in the {@link VideoGallery}. * * @public */ export type VideoGalleryParticipant = { /** User ID of participant */ userId: string; /** Whether participant is muted */ isMuted?: boolean; /** Display name of participant */ displayName?: string; /** Video stream of participant */ videoStream?: VideoGalleryStream; /** Whether participant is screen sharing or not */ isScreenSharingOn?: boolean; /** Whether participant is spotlighted **/ spotlight?: Spotlight; /** Signal strength of the participant, range from 1 to 3, lower means better connection **/ signalStrength?: number; /** Media audio video access states **/ mediaAccess?: MediaAccess; /** Attendee can have audio be forbidden **/ canAudioBeForbidden?: boolean; /** Attendee can have video be forbidden **/ canVideoBeForbidden?: boolean; }; /** * Video stream of a participant in {@link VideoGallery}. * * @public */ export interface VideoGalleryStream { /** ID of the video stream */ id?: number; /** Whether the video stream is available or not */ isAvailable?: boolean; /** Whether the video stream is receiving data or not */ isReceiving?: boolean; /** Whether the video stream is mirrored or not */ isMirrored?: boolean; /** Render element of the video stream */ renderElement?: HTMLElement; /** Scaling mode of the video stream */ scalingMode?: ViewScalingMode; /** Stream Size of the video stream */ streamSize?: { width: number; height: number; }; } /** * Object returned after creating a local or remote VideoStream. * This contains helper functions to manipulate the render of the stream. * * @public */ export interface CreateVideoStreamViewResult { /** View handle of the rendered video stream */ view: { /** * Update the scale mode for this view. * @param scalingMode - The new scale mode. */ updateScalingMode: (scalingMode: ViewScalingMode) => Promise<void>; }; } /** * The state of the local participant in the {@link VideoGallery}. * * @public */ export interface VideoGalleryLocalParticipant extends VideoGalleryParticipant { /** Whether local participant is raised a hand */ raisedHand?: RaisedHand; /** * Whether local participant has reacted * * */ reaction?: Reaction; /** Video stream of shared screen */ screenShareStream?: VideoGalleryStream; } /** * The state of a remote participant in the {@link VideoGallery}. * * @public */ export interface VideoGalleryRemoteParticipant extends VideoGalleryParticipant { /** Whether participant is speaking or not */ isSpeaking?: boolean; /** Video stream of shared screen */ screenShareStream?: VideoGalleryStream; /** * @public * The connection state of the participant. For example, 'Hold', 'Connecting' etc. */ state?: ParticipantState; /** Whether participant is raised a hand */ raisedHand?: RaisedHand; /** * Whether participant has reacted * * @public * */ reaction?: Reaction; /** Media audio video access states **/ mediaAccess?: MediaAccess; } //# sourceMappingURL=VideoGalleryParticipant.d.ts.map