export interface IExternalRoles { cohost: boolean; moderator: boolean; presenter: boolean; } export declare enum ServerRoles { Cohost = "COHOST", Moderator = "MODERATOR", Presenter = "PRESENTER" } export type ServerRoleShape = { type: ServerRoles; hasRole: boolean; }; export declare enum MediaStatus { RECVONLY = "RECVONLY", SENDONLY = "SENDONLY", SENDRECV = "SENDRECV", INACTIVE = "INACTIVE", UNKNOWN = "UNKNOWN" } export interface IMediaStatus { audio: MediaStatus; video: MediaStatus; } export type Csi = number; export type Direction = 'inactive' | 'sendrecv' | 'sendonly' | 'recvonly'; export type ParticipantUrl = string; export interface MediaSession { csi: Csi; direction: Direction; mediaContent: 'main' | 'slides'; mediaType: 'audio' | 'video'; state: string; } export interface Intent { associatedWith: ParticipantUrl; id: string; type: string; } export interface ParticipantDevice { correlationId: string; csis: Csi[]; deviceType: string; intent?: Intent; intents: Array; isVideoCallback: boolean; mediaSessions: Array; mediaSessionsExternal: boolean; state: string; } export interface ParticipantPerson { id: string; isExternal: boolean; name: string; orgId: string; } export interface ParticipantMediaStatus { audioStatus: MediaStatus; videoStatus: MediaStatus; audioSlidesStatus?: MediaStatus; videoSlidesStatus?: MediaStatus; csis: Csi[]; } export interface ParticipantControls { role: { roles: Array; }; brb?: { enabled: boolean; }; hand: { raised: boolean; }; localRecord: { recording: boolean; }; } export interface Participant { canBeController: boolean; controls: ParticipantControls; deviceUrl: string; devices: Array; guest: boolean; id: string; identity: string; identityTrustLevel: string; isCreator: boolean; moderator: boolean; moderatorAssignmentNotAllowed: boolean; presenterAssignmentNotAllowed: boolean; person: ParticipantPerson; resourceGuest: boolean; state: string; status: ParticipantMediaStatus; type: string; url: ParticipantUrl; isRemoved: boolean; }