import { IExternalRoles, IMediaStatus, Participant, ParticipantUrl } from './types'; export type MemberId = string; /** * @class Member */ export default class Member { associatedUser: MemberId | null; associatedUsers: Set; canApproveAIEnablement: boolean; canReclaimHost: boolean; id: MemberId; isAudioMuted: any; isContentSharing: any; isDevice: any; isGuest: any; isHandRaised: any; isHost: any; isInLobby: any; isInMeeting: any; isModerator: any; isModeratorAssignmentProhibited: any; isPresenterAssignmentProhibited: any; isMutable: any; isNotAdmitted: any; isRecording: any; isRemovable: any; isSelf: any; isPairedWithSelf: boolean; isBrb: boolean; isUser: any; isVideoMuted: any; roles: IExternalRoles; mediaStatus: IMediaStatus; name: any; participant: any; status: any; supportsBreakouts: boolean; supportsInterpretation: boolean; supportsSingleUserAutoEndMeeting: boolean; supportLiveAnnotation: boolean; type: any; namespace: string; pairedWith: { participantUrl?: ParticipantUrl; memberId?: MemberId; }; /** * @param {Object} participant - the locus participant * @param {Object} [options] - constructor params * @param {String} options.selfId * @param {String} options.hostId * @param {String} options.contentSharingId * @param {String} options.type * @returns {Member} * @memberof Member */ constructor(participant: Participant, options?: { selfId: string; hostId: string; contentSharingId: string; type: string; } | any); /** * set all the participant values extracted directly from locus participant * @param {Object} participant the locus participant object * @returns {undefined} * @private * @memberof Member */ private processParticipant; /** * Checks if the participant is paired with another device * * @param {any} participant the locus participant object * @returns {void} */ processPairedDevice(participant: Participant): void; /** * Use the members options and participant values to set on the member * @param {Object} participant the locus participant object * @param {Object} options the passed in options, what was set on members * @returns {undefined} * @private * @memberof Member */ private processParticipantOptions; /** * processes what already exists on the member to determine other info about the member * @returns {undefined} * @private * @memberof Member */ private processMember; /** * set the status on member object * @param {Object} participant the locus participant object * @returns {undefined} * @private * @memberof Member */ private processStatus; /** * set the isContentSharing on member * @param {Boolean} flag * @returns {undefined} * @public * @memberof Member */ setIsContentSharing(flag: boolean): void; /** * set the isHost on member * @param {Boolean} flag * @returns {undefined} * @public * @memberof Member */ setIsHost(flag: boolean): void; /** * set the isSelf on member * @param {Boolean} flag * @returns {undefined} * @public * @memberof Member */ setIsSelf(flag: boolean): void; /** * determine if this member is content sharing * @param {Object} participant * @param {String} sharingId * @returns {undefined} * @public * @memberof Member */ processIsContentSharing(participant: Participant, sharingId: string): void; /** * Determine if this member is recording * @param {Object} participant * @param {String} recordingId * @returns {undefined} * @public * @memberof Member */ processIsRecording(participant: Participant, recordingId: string): void; /** * determine if this member is the self * @param {Object} participant * @param {String} selfId * @returns {undefined} * @private * @memberof Member */ private processIsSelf; /** * determine if this member is the host * @param {Object} participant * @param {String} hostId * @returns {undefined} * @private * @memberof Member */ private processIsHost; /** * process the roles that have been applied to this member * @param {Object} participant * @returns {undefined} * @private * @memberof Member */ private processRoles; /** * set the type for the member, could be MEETING or CALL * @param {String} type * @returns {undefined} * @private * @memberof Member */ private processType; }