@vkontakte/calls-sdk 2.6.2-dev.f69c395.0 → 2.6.3-beta.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.
Files changed (61) hide show
  1. package/CallsSDK.d.ts +85 -20
  2. package/abstract/BaseApi.d.ts +7 -3
  3. package/abstract/BaseSignaling.d.ts +22 -6
  4. package/calls-sdk.cjs.js +9 -9
  5. package/calls-sdk.esm.js +9 -9
  6. package/classes/Conversation.d.ts +80 -14
  7. package/classes/MediaSource.d.ts +7 -2
  8. package/classes/ProducerCommandSerializationService.d.ts +3 -1
  9. package/classes/asr/AsrCommandSerializer.d.ts +3 -0
  10. package/classes/asr/AsrReceiver.d.ts +12 -0
  11. package/classes/codec/IEncoder.d.ts +3 -0
  12. package/classes/codec/LibVPxEncoder.d.ts +4 -1
  13. package/classes/codec/Types.d.ts +6 -1
  14. package/classes/codec/WebCodecsEncoder.d.ts +4 -1
  15. package/classes/screenshare/PacketHistory.d.ts +30 -0
  16. package/classes/screenshare/PacketHistory.test.d.ts +1 -0
  17. package/classes/screenshare/ScreenCaptureSender.d.ts +15 -1
  18. package/classes/screenshare/ScreenCongestionControl.d.ts +25 -0
  19. package/classes/screenshare/SharingStatReport.d.ts +6 -0
  20. package/classes/screenshare/Utils.d.ts +5 -0
  21. package/classes/transport/ServerTransport.d.ts +6 -1
  22. package/classes/transport/Transport.d.ts +3 -1
  23. package/default/Api.d.ts +12 -3
  24. package/default/Api.test.d.ts +1 -0
  25. package/default/Signaling.d.ts +26 -6
  26. package/enums/ConversationFeature.d.ts +2 -1
  27. package/enums/ConversationOption.d.ts +3 -1
  28. package/enums/DataChannelLabel.d.ts +2 -1
  29. package/enums/HangupType.d.ts +3 -1
  30. package/enums/LiveStatus.d.ts +12 -0
  31. package/enums/MediaOption.d.ts +3 -1
  32. package/enums/RoomsEventType.d.ts +6 -0
  33. package/enums/SignalingCommandType.d.ts +12 -1
  34. package/enums/SignalingNotification.d.ts +12 -1
  35. package/package.json +1 -1
  36. package/static/External.d.ts +124 -9
  37. package/static/Params.d.ts +141 -12
  38. package/static/Polyfills.d.ts +7 -0
  39. package/static/Utils.d.ts +2 -1
  40. package/static/WebRTCUtils.d.ts +44 -11
  41. package/static/WebRTCUtils.test.d.ts +1 -0
  42. package/types/Asr.d.ts +11 -0
  43. package/types/Conversation.d.ts +1 -0
  44. package/types/ConversationFeature.d.ts +3 -0
  45. package/types/ConversationParams.d.ts +1 -0
  46. package/types/ExternalId.d.ts +2 -0
  47. package/types/Feedback.d.ts +22 -0
  48. package/types/MediaSettings.d.ts +5 -1
  49. package/types/MovieShare.d.ts +189 -0
  50. package/types/MuteStates.d.ts +15 -0
  51. package/types/Participant.d.ts +3 -0
  52. package/types/ParticipantListChunk.d.ts +2 -0
  53. package/types/ParticipantStreamDescription.d.ts +2 -1
  54. package/types/Room.d.ts +77 -0
  55. package/types/SignalingMessage.d.ts +67 -1
  56. package/types/Streams.d.ts +11 -0
  57. package/types/WaitingHall.d.ts +2 -8
  58. package/utils/ArrayDequeue.d.ts +24 -0
  59. package/utils/ArrayDequeue.spec.d.ts +1 -0
  60. package/utils/Conversation.d.ts +2 -0
  61. package/worker/LibVPxEncoderWorker.d.ts +1 -1
@@ -1,7 +1,9 @@
1
1
  import BaseSignaling, { AddParticipantParams } from '../abstract/BaseSignaling';
2
2
  import { ParticipantIdRegistry } from '../classes/ParticipantIdRegistry';
3
+ import { SharingStatReport } from '../classes/screenshare/SharingStatReport';
3
4
  import { PerfStatReport } from '../classes/transport/PerfStatReporter';
4
5
  import { TransportTopology } from '../classes/transport/Transport';
6
+ import ConversationFeature from '../enums/ConversationFeature';
5
7
  import ConversationOption from '../enums/ConversationOption';
6
8
  import MediaOption from '../enums/MediaOption';
7
9
  import RecordRole from '../enums/RecordRole';
@@ -11,11 +13,13 @@ import UserRole from '../enums/UserRole';
11
13
  import { JSONObject } from '../static/Json';
12
14
  import MediaModifiers from '../types/MediaModifiers';
13
15
  import MediaSettings from '../types/MediaSettings';
16
+ import { IAddMovieParams, IUpdateMovieData } from '../types/MovieShare';
14
17
  import MuteStates from '../types/MuteStates';
15
18
  import { CompositeUserId, ParticipantId } from '../types/Participant';
16
19
  import ParticipantLayout, { RequestKeyFrame, StopStream } from '../types/ParticipantLayout';
17
20
  import { ParticipantListChunkParameters } from '../types/ParticipantListChunk';
18
21
  import SignalingMessage from '../types/SignalingMessage';
22
+ import { IStartStreamData, IStopStreamData } from '../types/Streams';
19
23
  import { WaitingParticipantId } from '../types/WaitingHall';
20
24
  export default class Signaling extends BaseSignaling {
21
25
  private socket;
@@ -23,6 +27,7 @@ export default class Signaling extends BaseSignaling {
23
27
  private lastStamp;
24
28
  private websocketCommandsQueue;
25
29
  private datachannelCommandsQueue;
30
+ private asrCommandsQueue;
26
31
  private incomingCache;
27
32
  private responseHandlers;
28
33
  private reconnectCount;
@@ -40,8 +45,10 @@ export default class Signaling extends BaseSignaling {
40
45
  private participantIdRegistry;
41
46
  private producerNotificationDataChannel;
42
47
  private producerCommandDataChannel;
48
+ private asrDataChannel;
43
49
  private producerCommandDataChannelEnabled;
44
50
  private producerCommandSerializationService;
51
+ private asrCommandSerializer;
45
52
  private static readonly RECONNECT_DELAY;
46
53
  private static readonly RECONNECT_MAX_DELAY;
47
54
  private static readonly RECONNECT_MAX_COUNT;
@@ -96,21 +103,28 @@ export default class Signaling extends BaseSignaling {
96
103
  updateDisplayLayout(layouts: {
97
104
  [streamDesc: string]: ParticipantLayout | StopStream | RequestKeyFrame;
98
105
  }): Promise<SignalingMessage>;
99
- addMovie(data: any): Promise<SignalingMessage>;
100
- updateMovie(data: any): Promise<SignalingMessage>;
106
+ addMovie(data: IAddMovieParams): Promise<SignalingMessage>;
107
+ updateMovie(data: IUpdateMovieData): Promise<SignalingMessage>;
101
108
  removeMovie(data: any): Promise<SignalingMessage>;
102
- startStream(data: any): Promise<SignalingMessage>;
103
- stopStream(): Promise<SignalingMessage>;
104
- recordSetRole(participantId: ParticipantId, role: RecordRole | null): Promise<SignalingMessage>;
109
+ updateRooms(rooms: SignalingMessage.Room[], assignRandomly: boolean): Promise<SignalingMessage>;
110
+ activateRooms(roomIds: number[], deactivate: boolean): Promise<SignalingMessage>;
111
+ switchRoom(toRoomId: number | null, participantId?: ParticipantId): Promise<SignalingMessage>;
112
+ getRooms(withParticipants: boolean): Promise<SignalingMessage>;
113
+ removeRooms(roomIds: number[]): Promise<SignalingMessage>;
114
+ startStream(data: IStartStreamData): Promise<SignalingMessage>;
115
+ stopStream(data?: IStopStreamData): Promise<SignalingMessage>;
116
+ recordSetRole(participantId: ParticipantId, role: RecordRole | null, roomId?: number | null): Promise<SignalingMessage>;
105
117
  getRecordStatus(): Promise<SignalingMessage>;
106
118
  switchTopology(topology: TransportTopology, force?: boolean): Promise<SignalingMessage>;
107
119
  requestRealloc(): Promise<SignalingMessage>;
108
120
  reportPerfStat(report: PerfStatReport): Promise<SignalingMessage>;
121
+ reportSharingStat(report: SharingStatReport): Promise<SignalingMessage>;
109
122
  chatMessage(message: string, participantId?: CompositeUserId | null): Promise<SignalingMessage>;
110
123
  chatHistory(count: number): Promise<SignalingMessage>;
111
124
  customData(data: JSONObject, participantId: ParticipantId | null): Promise<SignalingMessage>;
112
125
  grantRoles(participantId: CompositeUserId, roles: UserRole[], revoke: boolean): Promise<SignalingMessage>;
113
- muteParticipant(participantId: ParticipantId | null, muteStates: MuteStates, requestedMedia: MediaOption[]): Promise<SignalingMessage>;
126
+ muteParticipant(participantId: ParticipantId | null, muteStates: MuteStates, requestedMedia: MediaOption[], roomId?: number | null): Promise<SignalingMessage>;
127
+ enableFeatureForRoles(feature: ConversationFeature, roles: UserRole[]): Promise<SignalingMessage>;
114
128
  pinParticipant(participantId: ParticipantId, unpin: boolean): Promise<SignalingMessage>;
115
129
  updateMediaModifiers(mediaModifiers: MediaModifiers): Promise<SignalingMessage>;
116
130
  changeOptions(changes: {
@@ -118,6 +132,7 @@ export default class Signaling extends BaseSignaling {
118
132
  }): Promise<SignalingMessage>;
119
133
  getWaitingHall(fromId?: WaitingParticipantId | null, count?: number, backward?: boolean): Promise<SignalingMessage>;
120
134
  promoteParticipant(participantId: CompositeUserId, demote?: boolean): Promise<SignalingMessage>;
135
+ feedback(key: string): Promise<SignalingMessage>;
121
136
  /**
122
137
  * Close a connection with a signaling server
123
138
  */
@@ -131,6 +146,10 @@ export default class Signaling extends BaseSignaling {
131
146
  readyToSend(): void;
132
147
  getParticipantListChunk(participantListChunkParameters: ParticipantListChunkParameters): Promise<SignalingMessage>;
133
148
  getParticipants(externalIds: SignalingMessage.ExternalId[]): Promise<SignalingMessage>;
149
+ startAsr(): Promise<SignalingMessage>;
150
+ stopAsr(): Promise<SignalingMessage>;
151
+ requestAsr(request: boolean): Promise<SignalingMessage>;
152
+ setAsrDataChannel(dataChannel: RTCDataChannel): void;
134
153
  protected _connect(connectionType: SignalingConnectionType): void;
135
154
  protected _disconnect(): void;
136
155
  private _onOpen;
@@ -143,6 +162,7 @@ export default class Signaling extends BaseSignaling {
143
162
  protected _closeSocket(error?: Error | null): void;
144
163
  protected _reconnect(): void;
145
164
  private _handleCommandResponse;
165
+ private _serializeAsrCommand;
146
166
  private _handleCommandsQueue;
147
167
  private _serializeBinary;
148
168
  private _serializeJson;
@@ -1,5 +1,6 @@
1
1
  declare const enum ConversationFeature {
2
2
  ADD_PARTICIPANT = "ADD_PARTICIPANT",
3
- RECORD = "RECORD"
3
+ RECORD = "RECORD",
4
+ MOVIE_SHARE = "MOVIE_SHARE"
4
5
  }
5
6
  export default ConversationFeature;
@@ -4,7 +4,9 @@
4
4
  declare enum ConversationOption {
5
5
  REQUIRE_AUTH_TO_JOIN = "REQUIRE_AUTH_TO_JOIN",
6
6
  AUDIENCE_MODE = "AUDIENCE_MODE",
7
- WAITING_HALL = "WAITING_HALL"
7
+ WAITING_HALL = "WAITING_HALL",
8
+ ASR = "ASR",
9
+ FEEDBACK = "FEEDBACK"
8
10
  }
9
11
  export default ConversationOption;
10
12
  export declare function compareOptions(oldOptions: ConversationOption[], newOptions: ConversationOption[]): boolean;
@@ -2,6 +2,7 @@ declare const enum DataChannelLabel {
2
2
  producerNotification = "producerNotification",
3
3
  producerCommand = "producerCommand",
4
4
  consumerScreenShare = "consumerScreenShare",
5
- producerScreenShare = "producerScreenShare"
5
+ producerScreenShare = "producerScreenShare",
6
+ asr = "asr"
6
7
  }
7
8
  export default DataChannelLabel;
@@ -16,6 +16,7 @@ declare enum HangupType {
16
16
  CALLER_IS_BLOCKED = "CALLER_IS_BLOCKED",
17
17
  NOT_FRIENDS = "NOT_FRIENDS",
18
18
  CALLEE_IS_OFFLINE = "CALLEE_IS_OFFLINE",
19
+ CALLER_IS_REJECTED = "CALLER_IS_REJECTED",
19
20
  UNKNOWN_ERROR = "UNKNOWN_ERROR",
20
21
  UNSUPPORTED = "UNSUPPORTED",
21
22
  OLD_VERSION = "OLD_VERSION",
@@ -23,6 +24,7 @@ declare enum HangupType {
23
24
  EXTERNAL_API_ERROR = "EXTERNAL_API_ERROR",
24
25
  SOCKET_CLOSED = "SOCKET_CLOSED",
25
26
  ENDED = "ENDED",
26
- KILLED_WITHOUT_DELETE = "KILLED_WITHOUT_DELETE"
27
+ KILLED_WITHOUT_DELETE = "KILLED_WITHOUT_DELETE",
28
+ ANOTHER_DEVICE = "ANOTHER_DEVICE"
27
29
  }
28
30
  export default HangupType;
@@ -0,0 +1,12 @@
1
+ declare enum LiveStatus {
2
+ NOT_DEFINED = -1,
3
+ WAITING = 0,
4
+ ONLINE = 1,
5
+ ENDED = 2,
6
+ UPCOMING = 3,
7
+ PROCESSING = 4,
8
+ ERROR = 5,
9
+ DELETED = 6,
10
+ BLOCKED = 7
11
+ }
12
+ export default LiveStatus;
@@ -4,6 +4,8 @@
4
4
  declare enum MediaOption {
5
5
  AUDIO = "AUDIO",
6
6
  VIDEO = "VIDEO",
7
- SCREEN_SHARING = "SCREEN_SHARING"
7
+ SCREEN_SHARING = "SCREEN_SHARING",
8
+ MOVIE_SHARING = "MOVIE_SHARING",
9
+ AUDIO_SHARING = "AUDIO_SHARING"
8
10
  }
9
11
  export default MediaOption;
@@ -0,0 +1,6 @@
1
+ declare enum RoomsEventType {
2
+ UPDATE = "UPDATE",
3
+ REMOVE = "REMOVE",
4
+ ACTIVATE = "ACTIVATE"
5
+ }
6
+ export default RoomsEventType;
@@ -12,6 +12,7 @@ declare enum SignalingCommandType {
12
12
  CHANGE_STREAM_PRIORITIES = "change-streams-priorities",
13
13
  UPDATE_DISPLAY_LAYOUT = "update-display-layout",
14
14
  REPORT_PERF_STAT = "report-perf-stat",
15
+ REPORT_SHARING_STAT = "report-sharing-stat",
15
16
  RECORD_START = "record-start",
16
17
  RECORD_STOP = "record-stop",
17
18
  RECORD_SET_ROLE = "record-set-role",
@@ -24,6 +25,7 @@ declare enum SignalingCommandType {
24
25
  CUSTOM_DATA = "custom-data",
25
26
  GRANT_ROLES = "grant-roles",
26
27
  MUTE_PARTICIPANT = "mute-participant",
28
+ ENABLE_FEATURE_FOR_ROLES = "enable-feature-for-roles",
27
29
  PIN_PARTICIPANT = "pin-participant",
28
30
  UPDATE_MEDIA_MODIFIERS = "update-media-modifiers",
29
31
  CHANGE_OPTIONS = "change-options",
@@ -34,6 +36,15 @@ declare enum SignalingCommandType {
34
36
  REQUEST_TEST_MODE = "request-test-mode",
35
37
  ADD_MOVIE = "add-movie",
36
38
  UPDATE_MOVIE = "update-movie",
37
- REMOVE_MOVIE = "remove-movie"
39
+ REMOVE_MOVIE = "remove-movie",
40
+ GET_ROOMS = "get-rooms",
41
+ UPDATE_ROOMS = "update-rooms",
42
+ ACTIVATE_ROOMS = "activate-rooms",
43
+ REMOVE_ROOMS = "remove-rooms",
44
+ SWITCH_ROOM = "switch-room",
45
+ FEEDBACK = "feedback",
46
+ ASR_START = "asr-start",
47
+ ASR_STOP = "asr-stop",
48
+ REQUEST_ASR = "request-asr"
38
49
  }
39
50
  export default SignalingCommandType;
@@ -35,6 +35,17 @@ declare enum SignalingNotification {
35
35
  PROMOTE_PARTICIPANT = "promote-participant",
36
36
  CHAT_ROOM_UPDATED = "chat-room-updated",
37
37
  PROMOTION_APPROVED = "promotion-approved",
38
- JOIN_LINK_CHANGED = "join-link-changed"
38
+ JOIN_LINK_CHANGED = "join-link-changed",
39
+ FEEDBACK = "feedback",
40
+ MOVIE_UPDATE_NOTIFICATION = "movie-update-notification",
41
+ MOVIE_SHARE_INFO = "movie-share-info",
42
+ MOVIE_SHARE_STARTED = "movie-share-started",
43
+ MOVIE_SHARE_STOPPED = "movie-share-stopped",
44
+ ROOM_UPDATED = "room-updated",
45
+ ROOMS_UPDATED = "rooms-updated",
46
+ ROOM_PARTICIPANTS_UPDATED = "room-participants-updated",
47
+ FEATURES_PER_ROLE_CHANGED = "features-per-role-changed",
48
+ ASR_STARTED = "asr-started",
49
+ ASR_STOPPED = "asr-stopped"
39
50
  }
40
51
  export default SignalingNotification;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vkontakte/calls-sdk",
3
- "version": "2.6.2-dev.f69c395.0",
3
+ "version": "2.6.3-beta.0",
4
4
  "author": "vk.com",
5
5
  "description": "Library for video calls based on the vk.com platform",
6
6
  "homepage": "https://vk.com",
@@ -6,12 +6,17 @@ import ChatRoomEventType from '../enums/ChatRoomEventType';
6
6
  import ConversationOption from '../enums/ConversationOption';
7
7
  import FatalError from '../enums/FatalError';
8
8
  import MediaOption from '../enums/MediaOption';
9
+ import RoomsEventType from '../enums/RoomsEventType';
9
10
  import UserRole from '../enums/UserRole';
11
+ import { IFeaturesPerRole } from '../types/ConversationFeature';
10
12
  import { ExternalId, ExternalParticipant, ExternalParticipantId, ExternalParticipantListChunk, ExternalParticipantListMarkers } from '../types/ExternalId';
13
+ import { IFeedbackExternal } from '../types/Feedback';
11
14
  import MediaModifiers from '../types/MediaModifiers';
12
15
  import MediaSettings from '../types/MediaSettings';
16
+ import { IOnRemoteMovieData, ISharedMovieInfo, ISharedMovieState, ISharedMovieStoppedInfo } from '../types/MovieShare';
13
17
  import MuteStates from '../types/MuteStates';
14
18
  import { ParticipantStateMapped } from '../types/Participant';
19
+ import { Room, RoomParticipantUpdate, Rooms, RoomsUpdate } from '../types/Room';
15
20
  import { DebugMessageType } from './Debug';
16
21
  import { JSONObject } from './Json';
17
22
  /**
@@ -72,10 +77,31 @@ declare namespace External {
72
77
  * Если сервер закончил стримить собеседника, вместо стрима будет передан null
73
78
  *
74
79
  * @param userId
75
- * @param streamName
76
- * @param stream
80
+ * @param data
81
+ */
82
+ function onRemoteLive(userId: ExternalParticipantId, data: IOnRemoteMovieData): void;
83
+ /**
84
+ * Получен собственный стрим лайв.
85
+ * Если сервер закончил стримить собеседника, вместо стрима будет передан null
86
+ *
87
+ * @param userId
88
+ * @param data
77
89
  */
78
- function onRemoteLive(userId: ExternalParticipantId, streamName: string, stream: MediaStream | null): void;
90
+ function onLocalLive(userId: ExternalParticipantId, data: IOnRemoteMovieData): void;
91
+ /**
92
+ * Получено обновление стрима или лайва от собеседника.
93
+ *
94
+ * @param userId
95
+ * @param data
96
+ */
97
+ function onRemoteLiveUpdate(userId: ExternalParticipantId, data: ISharedMovieState): void;
98
+ /**
99
+ * Получено обновление собственного стрима или лайва.
100
+ *
101
+ * @param userId
102
+ * @param data
103
+ */
104
+ function onLocalLiveUpdate(userId: ExternalParticipantId, data: ISharedMovieState): void;
79
105
  /**
80
106
  * Получен стрим с экрана собеседника.
81
107
  * Если сервер закончил стримить экран собеседника, вместо стрима будет передан null
@@ -91,8 +117,9 @@ declare namespace External {
91
117
  * @param mediaModifiers Текущие настройки пользовательского медиа
92
118
  * @param muteStates Состояние устройств при входе в звонок
93
119
  * @param participants Список участников звонка (при `Params.batchParticipantsOnStart = true`)
120
+ * @param rooms Список сессионных залов в звонке
94
121
  */
95
- function onConversation(userId: ExternalParticipantId, mediaModifiers: MediaModifiers, muteStates: MuteStates, participants?: ExternalParticipant[]): void;
122
+ function onConversation(userId: ExternalParticipantId, mediaModifiers: MediaModifiers, muteStates: MuteStates, participants?: ExternalParticipant[], rooms?: Rooms): void;
96
123
  /**
97
124
  * Постраничные данные про участников при начале звонка
98
125
  * @param chunk
@@ -106,6 +133,41 @@ declare namespace External {
106
133
  * @param markers
107
134
  */
108
135
  function onRemoteMediaSettings(userId: ExternalParticipantId, mediaSettings: MediaSettings, markers?: ExternalParticipantListMarkers): void;
136
+ /**
137
+ * Изменились данные собственного стрима
138
+ *
139
+ * @param userId
140
+ * @param mediaSettings
141
+ */
142
+ function onLocalMediaSettings(userId: ExternalParticipantId, mediaSettings: MediaSettings): void;
143
+ /**
144
+ * Полученны данные по стримам (лайв/мувик) от собеседника
145
+ *
146
+ * @param userId
147
+ * @param sharedMovieInfo
148
+ */
149
+ function onRemoteSharedMovieInfo(userId: ExternalParticipantId, sharedMovieInfo: ISharedMovieInfo): void;
150
+ /**
151
+ * Полученны данные по остановленным стримам (лайв/мувик) от собеседника
152
+ *
153
+ * @param userId
154
+ * @param sharedMovieStoppedInfo
155
+ */
156
+ function onRemoteSharedMovieStoppedInfo(userId: ExternalParticipantId, sharedMovieStoppedInfo: ISharedMovieStoppedInfo): void;
157
+ /**
158
+ * Полученны данные по собственным стримам (лайв/мувик)
159
+ *
160
+ * @param userId
161
+ * @param sharedMovieInfo
162
+ */
163
+ function onLocalSharedMovieInfo(userId: ExternalParticipantId, sharedMovieInfo: ISharedMovieInfo): void;
164
+ /**
165
+ * Полученны данные по собственным остановленным стримам (лайв/мувик)
166
+ *
167
+ * @param userId
168
+ * @param sharedMovieStoppedInfo
169
+ */
170
+ function onLocalSharedMovieStoppedInfo(userId: ExternalParticipantId, sharedMovieStoppedInfo: ISharedMovieStoppedInfo): void;
109
171
  /**
110
172
  * Добавили участника
111
173
  *
@@ -153,8 +215,9 @@ declare namespace External {
153
215
  * Ошибка получения трека с камеры или микрофона
154
216
  *
155
217
  * @param error
218
+ * @param original
156
219
  */
157
- function onPermissionsError(error: FatalError): void;
220
+ function onPermissionsError(error: FatalError, original: Error): void;
158
221
  /**
159
222
  * Пользователь отключился от звонка
160
223
  *
@@ -188,9 +251,10 @@ declare namespace External {
188
251
  * @param userId Пользователь, для которого изменились разрешения или `null` для текущего пользователя
189
252
  * @param adminId Пользователь, который изменил разрешения
190
253
  * @param stateUpdated Если `true`, значит глобальное/персональное состояние изменилось и поля `muteStates`/`unmuteOptions` содержат обновления, если `false`, значит, эти поля не имеют значения
191
- * @param requestedMedia Какие устройства попросили влючить участника
254
+ * @param requestedMedia Какие устройства попросили включить участника
255
+ * @param roomId ID сессионного зала или ничего в случае основного зала
192
256
  */
193
- function onMuteStates(muteStates: MuteStates, unmuteOptions: MediaOption[], mediaOptions: MediaOption[], muteAll?: boolean, unmute?: boolean, userId?: ExternalParticipantId | null, adminId?: ExternalParticipantId | null, stateUpdated?: boolean, requestedMedia?: MediaOption[]): void;
257
+ function onMuteStates(muteStates: MuteStates, unmuteOptions: MediaOption[], mediaOptions: MediaOption[], muteAll?: boolean, unmute?: boolean, userId?: ExternalParticipantId | null, adminId?: ExternalParticipantId | null, stateUpdated?: boolean, requestedMedia?: MediaOption[], roomId?: number | null): void;
194
258
  /**
195
259
  * Изменились роли собеседника в звонке
196
260
  *
@@ -297,12 +361,14 @@ declare namespace External {
297
361
  * @param type Тип записи
298
362
  * @param externalMovieId Внешний ID ролика
299
363
  * @param externalOwnerId Внешний ID пользователя/группы от которого ведётся трансляция
364
+ * @param roomId ID зала в котором стартанула запись
300
365
  */
301
- function onRecordStarted(initiator: ExternalParticipantId, movieId: number, startTime: number, type: 'STREAM' | 'RECORD', externalMovieId?: string, externalOwnerId?: string): void;
366
+ function onRecordStarted(initiator: ExternalParticipantId, movieId: number, startTime: number, type: 'STREAM' | 'RECORD', externalMovieId?: string, externalOwnerId?: string, roomId?: number | null): void;
302
367
  /**
303
368
  * Закончена запись звонка
369
+ * @param roomId ID зала в котором остановлена запись
304
370
  */
305
- function onRecordStopped(): void;
371
+ function onRecordStopped(roomId?: number | null): void;
306
372
  /**
307
373
  * Состояние своей сети
308
374
  *
@@ -355,5 +421,54 @@ declare namespace External {
355
421
  * @param joinLink токен присоединения к звонку
356
422
  */
357
423
  function onJoinLinkChanged(joinLink: string): void;
424
+ /**
425
+ * Получено обновление по сессионным залам
426
+ * @param updates
427
+ */
428
+ function onRoomsUpdated(updates: Partial<Record<RoomsEventType, RoomsUpdate>>): void;
429
+ /**
430
+ * Получено обновление по сессионному залу
431
+ * @param eventTypes
432
+ * @param roomId
433
+ * @param room
434
+ * @param deactivate
435
+ */
436
+ function onRoomUpdated(eventTypes: RoomsEventType[], roomId: number, room: Room | null, deactivate: boolean | null): void;
437
+ /**
438
+ * Получено обновление по участникам сессионного зала
439
+ * @param update
440
+ */
441
+ function onRoomParticipantsUpdated(update: RoomParticipantUpdate): void;
442
+ /**
443
+ * Произошел переход в другой активный зал (или основной)
444
+ * @param roomId
445
+ */
446
+ function onRoomSwitched(roomId: number | null): void;
447
+ /**
448
+ * Установить id сессионного зала на старте звонка
449
+ * @param roomId
450
+ */
451
+ function onRoomStart(roomId: number | null): void;
452
+ /**
453
+ * Получена новая реакция
454
+ */
455
+ function onFeedback(feedback: IFeedbackExternal[], roomId?: number | null): void;
456
+ /**
457
+ * Изменилось состояние пермиссий фич в звонке
458
+ *
459
+ * @param featuresPerRole Информация о доступных фичах по ролям
460
+ */
461
+ function onFeaturesPerRoleChanged(featuresPerRole: IFeaturesPerRole): void;
462
+ /**
463
+ * Начата текстовая расшифровка звонка
464
+ * @param initiatorId Id пользователя, запустившего расшифровку звонка
465
+ * @param movieId Id расшифровки
466
+ */
467
+ function onAsrStarted(initiatorId: ExternalParticipantId, movieId: number): void;
468
+ /**
469
+ * Закончена текстовая расшифровка звонка
470
+ */
471
+ function onAsrStopped(): void;
472
+ function onAsrTranscription(id: ExternalParticipantId, text: string, timestamp: number, duration: number): void;
358
473
  }
359
474
  export default External;