@vkontakte/calls-sdk 2.4.4-dev.717e1c2.0 → 2.4.4-dev.71e1f68.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -7,7 +7,7 @@ import ConversationOption from '../enums/ConversationOption';
7
7
  import FatalError from '../enums/FatalError';
8
8
  import MediaOption from '../enums/MediaOption';
9
9
  import UserRole from '../enums/UserRole';
10
- import { ExternalId, ExternalParticipant, ExternalParticipantId } from '../types/ExternalId';
10
+ import { ExternalId, ExternalParticipant } from '../types/ExternalId';
11
11
  import IceServer from '../types/IceServer';
12
12
  import MediaModifiers from '../types/MediaModifiers';
13
13
  import MediaSettings from '../types/MediaSettings';
@@ -220,7 +220,8 @@ export declare type ParamsObject = {
220
220
  */
221
221
  batchParticipantsOnStart: boolean;
222
222
  participantStateMapped: boolean;
223
- joinFromMultipleDevices: boolean;
223
+ /** использовать ли список партисипантов через метод чанками, вместо `onConversation` */
224
+ useParticipantListChunk: boolean;
224
225
  /**
225
226
  * Получен локальный стрим с камеры/микрофона
226
227
  */
@@ -241,40 +242,40 @@ export declare type ParamsObject = {
241
242
  * Получен стрим собеседника.
242
243
  * Если сервер закончил стримить собеседника, вместо стрима будет передан null
243
244
  */
244
- onRemoteStream?: (userId: ExternalParticipantId, stream: MediaStream | null) => void;
245
+ onRemoteStream?: (userId: ExternalId, stream: MediaStream | null) => void;
245
246
  /**
246
247
  * Получен стрим с экрана собеседника.
247
248
  * Если сервер закончил стримить экран собеседника, вместо стрима будет передан null
248
249
  */
249
- onRemoteScreenStream?: (userId: ExternalParticipantId, stream: MediaStream | null) => void;
250
+ onRemoteScreenStream?: (userId: ExternalId, stream: MediaStream | null) => void;
250
251
  /**
251
252
  * Получен стрим трансляция или мувик от собеседника.
252
253
  * Если сервер закончил стримить экран собеседника, вместо стрима будет передан null
253
254
  */
254
- onRemoteLive?: (userId: ExternalParticipantId, streamId: string, stream: MediaStream | null) => void;
255
+ onRemoteLive?: (userId: ExternalId, streamId: string, stream: MediaStream | null) => void;
255
256
  /**
256
257
  * Начат звонок
257
258
  */
258
- onConversation?: (userId: ExternalParticipantId, mediaModifiers: MediaModifiers, muteStates: MuteStates, participants?: ExternalParticipant[]) => void;
259
+ onConversation?: (userId: ExternalId, mediaModifiers: MediaModifiers, muteStates: MuteStates, participants?: ExternalParticipant[]) => void;
259
260
  /**
260
261
  * Изменились данные стрима собеседника
261
262
  */
262
- onRemoteMediaSettings?: (userId: ExternalParticipantId, mediaSettings: MediaSettings) => void;
263
+ onRemoteMediaSettings?: (userId: ExternalId, mediaSettings: MediaSettings) => void;
263
264
  /**
264
265
  * Изменились данные состояний собеседника
265
266
  */
266
- onRemoteParticipantState?: (userId: ExternalParticipantId, participantState: {
267
+ onRemoteParticipantState?: (userId: ExternalId, participantState: {
267
268
  [key: string]: string;
268
269
  }) => void;
269
270
  /**
270
271
  * Изменился статус соединения собеседников
271
272
  */
272
- onRemoteStatus?: (userIds: ExternalParticipantId[], status: ParticipantStatus, data: any) => void;
273
+ onRemoteStatus?: (userIds: ExternalId[], status: ParticipantStatus, data: any) => void;
273
274
  /**
274
275
  * Изменился статус соединения собеседника
275
276
  * @deprecated
276
277
  */
277
- onParticipantStatus?: (userId: ExternalParticipantId, status: ParticipantStatus, data: any) => void;
278
+ onParticipantStatus?: (userId: ExternalId, status: ParticipantStatus, data: any) => void;
278
279
  /**
279
280
  * Разрешения на доступы были запрошены в браузере
280
281
  */
@@ -286,7 +287,7 @@ export declare type ParamsObject = {
286
287
  /**
287
288
  * Пользователь отключился от звонка
288
289
  */
289
- onRemoteRemoved?: (userId: ExternalParticipantId) => void;
290
+ onRemoteRemoved?: (userId: ExternalId) => void;
290
291
  /**
291
292
  * Изменилось состояние звонка
292
293
  */
@@ -298,11 +299,11 @@ export declare type ParamsObject = {
298
299
  /**
299
300
  * Изменились состояния устройств пользователя или разрешения включать камеру/микрофон
300
301
  */
301
- onMuteStates?: (muteStates: MuteStates, unmuteOptions: MediaOption[], mediaOptions: MediaOption[], muteAll: boolean, unmute: boolean, userId: ExternalParticipantId | null, adminId: ExternalParticipantId | null) => void;
302
+ onMuteStates?: (muteStates: MuteStates, unmuteOptions: MediaOption[], mediaOptions: MediaOption[], muteAll: boolean, unmute: boolean, userId: ExternalId | null, adminId: ExternalId | null) => void;
302
303
  /**
303
304
  * Изменились роли собеседника в звонке
304
305
  */
305
- onRolesChanged?: (userId: ExternalParticipantId, roles: UserRole[]) => void;
306
+ onRolesChanged?: (userId: ExternalId, roles: UserRole[]) => void;
306
307
  /**
307
308
  * Изменились свои роли в звонке
308
309
  */
@@ -310,7 +311,7 @@ export declare type ParamsObject = {
310
311
  /**
311
312
  * Закрепляет/открепляет собеседника для всех
312
313
  */
313
- onPinnedParticipant?: (userId: ExternalParticipantId, unpin: boolean) => void;
314
+ onPinnedParticipant?: (userId: ExternalId, unpin: boolean) => void;
314
315
  /**
315
316
  * Закрепляет/открепляет текущего пользователя у других собеседников
316
317
  */
@@ -323,12 +324,12 @@ export declare type ParamsObject = {
323
324
  /**
324
325
  * Изменился говорящий в звонке
325
326
  */
326
- onSpeakerChanged?: (userId: ExternalParticipantId) => void;
327
+ onSpeakerChanged?: (userId: ExternalId) => void;
327
328
  /**
328
329
  * Громкость собеседников
329
330
  */
330
331
  onVolumesDetected?: (volumes: {
331
- uid: ExternalParticipantId;
332
+ uid: ExternalId;
332
333
  volume: number;
333
334
  }[]) => void;
334
335
  /**
@@ -360,15 +361,15 @@ export declare type ParamsObject = {
360
361
  /**
361
362
  * Получено сообщение чата
362
363
  */
363
- onChatMessage?: (message: string, from: ExternalParticipantId, direct: boolean) => void;
364
+ onChatMessage?: (message: string, from: ExternalId, direct: boolean) => void;
364
365
  /**
365
366
  * Получены данные от собеседника
366
367
  */
367
- onCustomData?: (data: JSONObject, from: ExternalParticipantId, direct: boolean) => void;
368
+ onCustomData?: (data: JSONObject, from: ExternalId, direct: boolean) => void;
368
369
  /**
369
370
  * Начата трансляция/запись звонка
370
371
  */
371
- onRecordStarted?: (initiator: ExternalParticipantId, movieId: number, startTime: number, type: 'STREAM' | 'RECORD', externalMovieId?: string, externalOwnerId?: string) => void;
372
+ onRecordStarted?: (initiator: ExternalId, movieId: number, startTime: number, type: 'STREAM' | 'RECORD', externalMovieId?: string, externalOwnerId?: string) => void;
372
373
  /**
373
374
  * Закончена трансляция/запись звонка
374
375
  */
@@ -385,7 +386,7 @@ export declare type ParamsObject = {
385
386
  * @param status Оценки качества соединения участников от 0 до 1
386
387
  */
387
388
  onNetworkStatusChanged?: (status: {
388
- uid: ExternalParticipantId;
389
+ uid: ExternalId;
389
390
  rating: number;
390
391
  }[]) => void;
391
392
  /**
@@ -419,7 +420,7 @@ export default abstract class Params {
419
420
  static get appVersion(): number;
420
421
  static get sdkVersion(): string | number | boolean;
421
422
  static get debug(): string | number | boolean;
422
- static get protocolVersion(): 5 | 6;
423
+ static get protocolVersion(): number;
423
424
  static get platform(): string;
424
425
  static set platform(value: string);
425
426
  static get clientType(): string;
@@ -497,4 +498,5 @@ export default abstract class Params {
497
498
  static get filteredMessages(): boolean;
498
499
  static get batchParticipantsOnStart(): boolean;
499
500
  static get participantStateMapped(): boolean;
501
+ static get useParticipantListChunk(): boolean;
500
502
  }
package/static/Utils.d.ts CHANGED
@@ -1,29 +1,21 @@
1
- import { BigInteger } from 'big-integer';
1
+ import type { BigInteger } from 'big-integer';
2
2
  import UserType from '../enums/UserType';
3
3
  import { ExternalParticipant } from '../types/ExternalId';
4
- import { CompositeUserId, OkUserId, Participant, ParticipantId, ParticipantStateMapped } from '../types/Participant';
4
+ import { CompositeUserId, OkUserId, Participant, ParticipantStateMapped } from '../types/Participant';
5
5
  import SignalingMessage from '../types/SignalingMessage';
6
6
  import VideoSettings from '../types/VideoSettings';
7
- export declare const PARAMETERS_SEPARATOR = ":";
8
- export declare const DEVICE_IDX_PARAMETER = "d";
9
7
  declare namespace Utils {
10
8
  function patchSDP(sdp: string, preferH264: boolean, brokenH264: boolean, preferVP9: boolean, isAudioNack?: boolean): string;
11
9
  function getPeerIdString(peerId: SignalingMessage.PeerId): string;
12
10
  function comparePeerId(peerId1: SignalingMessage.PeerId, peerId2: SignalingMessage.PeerId): boolean;
13
11
  function getPeerConnectionHostInfo(pc: RTCPeerConnection): Promise<any>;
14
- function composeUserId(id: CompositeUserId | OkUserId, type: UserType): CompositeUserId;
15
- function composeParticipantId(id: CompositeUserId | OkUserId, type: UserType, deviceIdx: number): ParticipantId;
16
- function compose(compositeId: CompositeUserId, deviceIdx: number): ParticipantId;
17
- function composeId(participant: SignalingMessage.Participant): ParticipantId;
18
- function composeMessageId(message: SignalingMessage): ParticipantId;
12
+ function composeId(id: CompositeUserId | OkUserId, type: UserType): CompositeUserId;
13
+ function composeParticipantId(participant: SignalingMessage.Participant): CompositeUserId;
14
+ function composeMessageId(message: SignalingMessage): CompositeUserId;
19
15
  function decomposeId(compositeId: CompositeUserId | OkUserId): {
20
16
  id: OkUserId;
21
17
  type: UserType;
22
18
  };
23
- function decomposeParticipantId(participantId: ParticipantId): {
24
- compositeUserId: CompositeUserId;
25
- deviceIdx: number;
26
- };
27
19
  function uuid(): string;
28
20
  function throttle(func: Function, ms: number): (this: any) => void;
29
21
  function sdpFingerprint(sdp: string): BigInteger;
@@ -5,6 +5,5 @@ declare type ConversationParams = {
5
5
  turn_server?: IceServer;
6
6
  stun_server?: IceServer;
7
7
  client_type?: string;
8
- device_idx?: number;
9
8
  };
10
9
  export default ConversationParams;
@@ -23,9 +23,5 @@ declare type ConversationResponse = {
23
23
  status: HangupType;
24
24
  }[];
25
25
  peerId?: number;
26
- /**
27
- * Порядковый номер, присвоенный устройству при входе в звонок
28
- */
29
- device_idx?: number;
30
26
  };
31
27
  export default ConversationResponse;
@@ -22,13 +22,6 @@ export declare namespace ExternalIdUtils {
22
22
  function compare(id1: ExternalId, id2: ExternalId): boolean;
23
23
  }
24
24
  export declare type ExternalIdString = string;
25
- export declare namespace ExternalParticipantIdUtils {
26
- function fromId(id: string, type?: ExternalIdType, deviceIdx?: number): ExternalParticipantId;
27
- function toString(externalId: ExternalParticipantId): ExternalParticipantIdString;
28
- function fromSignaling(signalingId: SignalingMessage.ExternalId, deviceIdx: number): ExternalParticipantId;
29
- function getDeviceIdx(externalId: string | ExternalParticipantId | null): number;
30
- }
31
- export declare type ExternalParticipantIdString = string;
32
25
  /**
33
26
  * Идентификатор внешнего пользователя
34
27
  */
@@ -42,15 +35,6 @@ export interface ExternalId {
42
35
  */
43
36
  type: ExternalIdType;
44
37
  }
45
- /**
46
- * Идентификатор участника звонка
47
- */
48
- export interface ExternalParticipantId extends ExternalId {
49
- /**
50
- * Индекс устройства (позволяет отличать участников, которые присоединяются к звонку под одной учётной записью с разных устройств)
51
- */
52
- deviceIdx: number;
53
- }
54
38
  /**
55
39
  * Участник звонка
56
40
  */
@@ -58,7 +42,7 @@ export interface ExternalParticipant {
58
42
  /**
59
43
  * Идентификатор пользователя
60
44
  */
61
- uid: ExternalParticipantId;
45
+ uid: ExternalId;
62
46
  /**
63
47
  * Данные стрима
64
48
  */
@@ -3,18 +3,10 @@ import ParticipantState from '../enums/ParticipantState';
3
3
  import UserRole from '../enums/UserRole';
4
4
  import { ParticipantStatus } from '../static/External';
5
5
  import MediaSettings from '../types/MediaSettings';
6
- import { ExternalParticipantId } from './ExternalId';
6
+ import { ExternalId } from './ExternalId';
7
7
  import MuteStates from './MuteStates';
8
8
  import ParticipantLayout from './ParticipantLayout';
9
- /**
10
- * Уникально идентифицирует пользователя или группу
11
- */
12
9
  export declare type CompositeUserId = string;
13
- /**
14
- * Уникально идентифицирует участника звонка
15
- * (одному пользователю могут соответствовать несколько участников, в случае если пользователь зашёл в звонок с нескольких устройств)
16
- */
17
- export declare type ParticipantId = string;
18
10
  export declare type OkUserId = number;
19
11
  /**
20
12
  * Стейт участника звонка
@@ -26,8 +18,8 @@ export interface ParticipantStateMapped {
26
18
  };
27
19
  }
28
20
  export interface Participant {
29
- id: ParticipantId;
30
- externalId: ExternalParticipantId;
21
+ id: CompositeUserId;
22
+ externalId: ExternalId;
31
23
  mediaSettings: MediaSettings;
32
24
  state: ParticipantState;
33
25
  status: ParticipantStatus | null;
@@ -46,4 +38,31 @@ export interface Participant {
46
38
  };
47
39
  muteStates: MuteStates;
48
40
  unmuteOptions: MediaOption[];
41
+ markers?: IParticipantListMarkers;
42
+ }
43
+ /** format "u123" or "g456", where 123 is user's id and 456 is group's id */
44
+ export declare type ICompositeEntityId = string;
45
+ export declare type IParticipantListType = 'GRID' | 'SIDE' | 'ADMIN';
46
+ export declare type IParticipantListMarkers = {
47
+ [k in IParticipantListType]?: IParticipantMarker;
48
+ };
49
+ export interface IParticipantMarker {
50
+ /** server-calculated synthetic value - first criterion for sorting participants (DESC) */
51
+ rank: number;
52
+ /** sorting timestamp - second criterion for sorting participants (ASC) */
53
+ ts: number;
54
+ /** participant ID - third (and actually fourth) criterion for sorting participants (ASC); sorted first by one-letter prefix (participant type, 'u' < 'g') and second - by long participant id - numerically! */
55
+ id: ICompositeEntityId;
56
+ }
57
+ export interface IGetParticipantListChunkPayload {
58
+ listType: IParticipantListType;
59
+ /** optional, anchor in sorted list to start from, mutually exclusive with fromIdx */
60
+ fromMarker?: IParticipantMarker;
61
+ /** optional, 0-based position in sorted list to start from, mutually exclusive with fromMarker */
62
+ fromIdx?: number;
63
+ count: number;
64
+ /** optional, if true then list is to be iterated in reverse order */
65
+ backward?: boolean;
66
+ /** optional, if true then resulting chunk will start from Participant with specified marker, if such Participant (still) exists */
67
+ includeMarker?: boolean;
49
68
  }
@@ -1,4 +1,4 @@
1
- import { ExternalParticipantId } from './ExternalId';
1
+ import { ExternalId } from './ExternalId';
2
2
  import { MediaType } from './ParticipantStreamDescription';
3
3
  /**
4
4
  * Лейаут собеседника в звонке
@@ -42,7 +42,7 @@ export declare type ParticipantLayout = (Layout | StopStream) & {
42
42
  /**
43
43
  * Внешний ID пользователя
44
44
  */
45
- uid: ExternalParticipantId | string;
45
+ uid: ExternalId | string;
46
46
  /**
47
47
  * Тип медиа (видео с камеры, картинка с экрана, лайв или мувик)
48
48
  */
@@ -1,12 +1,12 @@
1
- import { ExternalParticipantId } from './ExternalId';
1
+ import { ExternalId } from './ExternalId';
2
2
  /**
3
3
  * Приоритет собеседника в звонке
4
4
  */
5
5
  declare type ParticipantPriority = {
6
6
  /**
7
- * Внешний ID участника звонка
7
+ * Внешний ID пользователя
8
8
  */
9
- uid: ExternalParticipantId | string;
9
+ uid: ExternalId | string;
10
10
  /**
11
11
  * Приоритет [-1..MAX_INT]
12
12
  */
@@ -1,4 +1,4 @@
1
- import { ParticipantId } from './Participant';
1
+ import { CompositeUserId } from './Participant';
2
2
  /**
3
3
  * Тип пользовательского медиа
4
4
  */
@@ -11,7 +11,7 @@ export declare enum MediaType {
11
11
  export declare function serializeParticipantStreamDescription(description: ParticipantStreamDescription): string;
12
12
  export declare function parseParticipantStreamDescription(descriptionString: string): ParticipantStreamDescription;
13
13
  export declare type ParticipantStreamDescription = {
14
- participantId: ParticipantId;
14
+ participantId: CompositeUserId;
15
15
  mediaType: MediaType | null;
16
16
  streamName?: string;
17
17
  };
@@ -10,12 +10,12 @@ import UserType from '../enums/UserType';
10
10
  import MediaModifiers from './MediaModifiers';
11
11
  import MediaSettings from './MediaSettings';
12
12
  import MuteStates from './MuteStates';
13
- import { OkUserId, ParticipantId } from './Participant';
13
+ import { CompositeUserId, IParticipantListMarkers, OkUserId } from './Participant';
14
14
  import VideoSettings from './VideoSettings';
15
15
  import { WaitingParticipant } from './WaitingHall';
16
16
  declare type SignalingMessage = Record<string, any>;
17
17
  export declare type RecordInfo = {
18
- initiator: ParticipantId;
18
+ initiator: CompositeUserId;
19
19
  recordMovieId: number;
20
20
  recordStartTime: number;
21
21
  recordType: 'STREAM' | 'RECORD';
@@ -34,7 +34,6 @@ declare namespace SignalingMessage {
34
34
  export interface Participant {
35
35
  id: OkUserId;
36
36
  idType?: UserType;
37
- deviceIdx?: number;
38
37
  externalId?: ExternalId;
39
38
  state: ParticipantState;
40
39
  responders?: OkUserId[];
@@ -50,6 +49,7 @@ declare namespace SignalingMessage {
50
49
  restricted?: boolean;
51
50
  muteStates?: MuteStates;
52
51
  unmuteOptions?: MediaOption[];
52
+ markers?: IParticipantListMarkers;
53
53
  }
54
54
  interface Conversation {
55
55
  id: string;
@@ -62,7 +62,7 @@ declare namespace SignalingMessage {
62
62
  multichatId: string | null;
63
63
  tamtamMultichatId: string | null;
64
64
  recordInfo: RecordInfo | null;
65
- pinnedParticipantId: ParticipantId | null;
65
+ pinnedParticipantId: CompositeUserId | null;
66
66
  options: ConversationOption[];
67
67
  muteStates?: MuteStates;
68
68
  }
@@ -74,14 +74,12 @@ declare namespace SignalingMessage {
74
74
  export interface TransmittedData extends Notification {
75
75
  participantId: OkUserId;
76
76
  participantType: UserType;
77
- deviceIdx?: number;
78
77
  peerId: PeerId;
79
78
  data: any;
80
79
  }
81
80
  export interface RegisteredPeer extends Notification {
82
81
  participantId: OkUserId;
83
82
  participantType: UserType;
84
- deviceIdx?: number;
85
83
  peerId: PeerId;
86
84
  platform: string;
87
85
  clientType: string;
@@ -89,14 +87,12 @@ declare namespace SignalingMessage {
89
87
  export interface AcceptedCall extends Notification {
90
88
  participantId: OkUserId;
91
89
  participantType: UserType;
92
- deviceIdx?: number;
93
90
  peerId: PeerId;
94
91
  mediaSettings: Partial<MediaSettings>;
95
92
  }
96
93
  export interface Hungup extends Notification {
97
94
  participantId: OkUserId;
98
95
  participantType: UserType;
99
- deviceIdx?: number;
100
96
  peerId: PeerId;
101
97
  reason: HangupType;
102
98
  }
@@ -106,14 +102,12 @@ declare namespace SignalingMessage {
106
102
  export interface MediaSettingsChanged extends Notification {
107
103
  participantId: OkUserId;
108
104
  participantType: UserType;
109
- deviceIdx?: number;
110
105
  peerId: PeerId;
111
106
  mediaSettings: Partial<MediaSettings>;
112
107
  }
113
108
  export interface ParticipantStateChanged extends Notification {
114
109
  participantId: OkUserId;
115
110
  participantType: UserType;
116
- deviceIdx?: number;
117
111
  peerId: PeerId;
118
112
  mediaSettings: Partial<MediaSettings>;
119
113
  participantState: {
@@ -122,13 +116,13 @@ declare namespace SignalingMessage {
122
116
  };
123
117
  }
124
118
  export interface RolesChanged extends Notification {
125
- adminId: ParticipantId;
126
- participantId: ParticipantId;
119
+ adminId: CompositeUserId;
120
+ participantId: CompositeUserId;
127
121
  roles?: UserRole[];
128
122
  }
129
123
  export interface MuteParticipant extends Notification {
130
- adminId?: ParticipantId;
131
- participantId?: ParticipantId;
124
+ adminId?: CompositeUserId;
125
+ participantId?: CompositeUserId;
132
126
  muteStates: MuteStates;
133
127
  unmuteOptions?: MediaOption[];
134
128
  mediaOptions: MediaOption[];
@@ -136,7 +130,7 @@ declare namespace SignalingMessage {
136
130
  muteAll?: boolean;
137
131
  }
138
132
  export interface PinParticipant extends Notification {
139
- participantId: ParticipantId;
133
+ participantId: CompositeUserId;
140
134
  unpin?: boolean;
141
135
  }
142
136
  export interface ParticipantAdded extends Notification {
@@ -160,7 +154,6 @@ declare namespace SignalingMessage {
160
154
  topology: TransportTopology;
161
155
  offerTo: OkUserId[];
162
156
  offerToTypes: UserType[];
163
- offerToDeviceIdxs: number[];
164
157
  }
165
158
  export interface RateCallData extends Notification {
166
159
  maxRateForQuestion: number;
@@ -177,10 +170,12 @@ declare namespace SignalingMessage {
177
170
  reason: string;
178
171
  }
179
172
  export interface RecordStarted extends Notification {
173
+ idType: UserType;
174
+ id: OkUserId;
180
175
  recordInfo: RecordInfo;
181
176
  }
182
177
  export interface RecordStopped extends Notification {
183
- participant: ParticipantId;
178
+ participant: CompositeUserId;
184
179
  recordMovieId: number;
185
180
  }
186
181
  export interface ReallocCon extends Notification {
@@ -190,7 +185,6 @@ declare namespace SignalingMessage {
190
185
  export interface ChatMessage extends Notification {
191
186
  participantId: OkUserId;
192
187
  participantType: UserType;
193
- deviceIdx?: number;
194
188
  direct: boolean;
195
189
  message: string;
196
190
  }
@@ -203,13 +197,13 @@ declare namespace SignalingMessage {
203
197
  settings: Record<string, any>;
204
198
  }
205
199
  export interface StalledActivity extends Notification {
206
- stalledParticipants: ParticipantId[];
200
+ stalledParticipants: CompositeUserId[];
207
201
  }
208
202
  export interface AudioActivity extends Notification {
209
- activeParticipants: ParticipantId[];
203
+ activeParticipants: CompositeUserId[];
210
204
  }
211
205
  export interface SpeakerChanged extends Notification {
212
- speaker: ParticipantId;
206
+ speaker: CompositeUserId;
213
207
  }
214
208
  export interface OptionsChanged extends Notification {
215
209
  options: ConversationOption[];
@@ -218,7 +212,7 @@ declare namespace SignalingMessage {
218
212
  statuses: Record<string, number>;
219
213
  }
220
214
  export interface PromotionApproved extends Notification {
221
- adminId: ParticipantId;
215
+ adminId: CompositeUserId;
222
216
  }
223
217
  export interface PromoteParticipant extends Notification {
224
218
  demote: boolean;
@@ -229,8 +223,8 @@ declare namespace SignalingMessage {
229
223
  eventType: ChatRoomEventType;
230
224
  totalCount: number;
231
225
  firstParticipants: WaitingParticipant[];
232
- addedParticipantIds: ParticipantId[];
233
- removedParticipantIds: ParticipantId[];
226
+ addedParticipantIds: CompositeUserId[];
227
+ removedParticipantIds: CompositeUserId[];
234
228
  feedback: Record<string, any>[];
235
229
  }
236
230
  export interface VideoQualityUpdate extends Notification {
@@ -242,7 +236,6 @@ declare namespace SignalingMessage {
242
236
  export interface CustomData extends Notification {
243
237
  participantId: OkUserId;
244
238
  participantType: UserType;
245
- deviceIdx?: number;
246
239
  data: Record<string, any>;
247
240
  }
248
241
  export interface SwitchMicro extends Notification {
@@ -255,6 +248,16 @@ declare namespace SignalingMessage {
255
248
  peerId: PeerId;
256
249
  mediaModifiers: MediaModifiers;
257
250
  }
251
+ export interface IParticipantListChunk extends Notification {
252
+ response: 'get-participant-list-chunk';
253
+ chunk: {
254
+ /** each contains ParticipantListMarker for requested ParticipantListType */
255
+ participants: Participant[];
256
+ countBefore: number;
257
+ countAfter: number;
258
+ markerFound: boolean;
259
+ };
260
+ }
258
261
  export {};
259
262
  }
260
263
  export default SignalingMessage;