@simplito/privmx-webendpoint 2.6.5 → 2.7.2

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 (177) hide show
  1. package/CONTRIBUTING.md +86 -0
  2. package/README.md +97 -7
  3. package/assets/driver-web-context.js +1 -1
  4. package/assets/e2ee-worker.js +1 -1
  5. package/assets/endpoint-wasm-module.js +2 -2
  6. package/assets/endpoint-wasm-module.wasm +0 -0
  7. package/assets/rms-processor.js +1 -0
  8. package/build-manifest.sh +6 -0
  9. package/{FinalizationHelper.js → dist/FinalizationHelper.js} +1 -1
  10. package/dist/ServerTypes.d.ts +7 -0
  11. package/{Types.d.ts → dist/Types.d.ts} +97 -10
  12. package/{Types.js → dist/Types.js} +17 -32
  13. package/{api → dist/api}/Api.d.ts +2 -0
  14. package/{api → dist/api}/Api.js +18 -1
  15. package/{api → dist/api}/ConnectionNative.js +1 -1
  16. package/{api → dist/api}/CryptoApiNative.js +1 -2
  17. package/{api → dist/api}/InboxApiNative.d.ts +21 -2
  18. package/{api → dist/api}/KvdbApiNative.d.ts +19 -2
  19. package/dist/api/NativeError.d.ts +13 -0
  20. package/dist/api/NativeError.js +20 -0
  21. package/{api → dist/api}/StoreApiNative.d.ts +19 -2
  22. package/dist/api/StreamApiNative.d.ts +72 -0
  23. package/dist/api/StreamApiNative.js +142 -0
  24. package/{api → dist/api}/ThreadApiNative.d.ts +19 -2
  25. package/dist/assets/e2ee-worker.js +1 -0
  26. package/dist/bundle/privmx-endpoint-web.js +2 -0
  27. package/dist/bundle/privmx-endpoint-web.js.LICENSE.txt +30 -0
  28. package/dist/bundle/rms-processor.js +1 -0
  29. package/{extra → dist/extra}/PrivmxClient.d.ts +9 -9
  30. package/{extra → dist/extra}/PrivmxClient.js +12 -12
  31. package/{extra → dist/extra}/PublicConnection.d.ts +2 -2
  32. package/{extra → dist/extra}/PublicConnection.js +2 -2
  33. package/{extra → dist/extra}/__tests__/connectionEventManager.test.js +1 -3
  34. package/{extra → dist/extra}/__tests__/customEventManager.test.js +1 -3
  35. package/{extra → dist/extra}/__tests__/userEventManager.test.js +2 -6
  36. package/{extra → dist/extra}/__tests__/utils.test.js +18 -18
  37. package/{extra → dist/extra}/events.js +32 -12
  38. package/{extra → dist/extra}/files.d.ts +5 -5
  39. package/{extra → dist/extra}/files.js +11 -11
  40. package/{extra → dist/extra}/generics.d.ts +1 -1
  41. package/{extra → dist/extra}/inbox.d.ts +1 -1
  42. package/{extra → dist/extra}/inbox.js +2 -2
  43. package/{extra → dist/extra}/index.d.ts +7 -7
  44. package/{extra → dist/extra}/managers.js +1 -1
  45. package/{extra → dist/extra}/utils.js +9 -9
  46. package/{index.d.ts → dist/index.d.ts} +3 -2
  47. package/{index.js → dist/index.js} +4 -1
  48. package/{service → dist/service}/Connection.js +13 -6
  49. package/{service → dist/service}/CryptoApi.js +2 -8
  50. package/{service → dist/service}/EndpointFactory.d.ts +11 -0
  51. package/{service → dist/service}/EndpointFactory.js +45 -10
  52. package/{service → dist/service}/EventApi.js +9 -5
  53. package/dist/service/EventDispatcher.d.ts +15 -0
  54. package/dist/service/EventDispatcher.js +25 -0
  55. package/{service → dist/service}/EventQueue.d.ts +4 -4
  56. package/{service → dist/service}/EventQueue.js +5 -9
  57. package/{service → dist/service}/ExtKey.d.ts +10 -10
  58. package/{service → dist/service}/ExtKey.js +10 -10
  59. package/{service → dist/service}/InboxApi.js +7 -11
  60. package/{service → dist/service}/KvdbApi.js +12 -7
  61. package/{service → dist/service}/StoreApi.js +10 -15
  62. package/dist/service/StreamApi.d.ts +237 -0
  63. package/dist/service/StreamApi.js +442 -0
  64. package/{service → dist/service}/ThreadApi.js +6 -7
  65. package/{service → dist/service}/UserVerifierInterface.d.ts +2 -2
  66. package/dist/service/UserVerifierInterface.js +2 -0
  67. package/dist/service/WebRtcInterface.d.ts +58 -0
  68. package/dist/service/WebRtcInterface.js +8 -0
  69. package/{service → dist/service}/index.d.ts +3 -2
  70. package/{service → dist/service}/index.js +5 -3
  71. package/dist/webStreams/CryptoUtils.d.ts +24 -0
  72. package/dist/webStreams/CryptoUtils.js +58 -0
  73. package/dist/webStreams/KeyStore.d.ts +9 -0
  74. package/dist/webStreams/KeyStore.js +29 -0
  75. package/dist/webStreams/Logger.d.ts +7 -0
  76. package/dist/webStreams/Logger.js +25 -0
  77. package/dist/webStreams/PeerConnectionsManager.d.ts +20 -0
  78. package/dist/webStreams/PeerConnectionsManager.js +92 -0
  79. package/dist/webStreams/Queue.d.ts +19 -0
  80. package/dist/webStreams/Queue.js +70 -0
  81. package/dist/webStreams/Utils.d.ts +20 -0
  82. package/dist/webStreams/Utils.js +211 -0
  83. package/dist/webStreams/WebRtcClient.d.ts +85 -0
  84. package/dist/webStreams/WebRtcClient.js +437 -0
  85. package/dist/webStreams/WebRtcClientTypes.d.ts +64 -0
  86. package/dist/webStreams/WebRtcClientTypes.js +2 -0
  87. package/dist/webStreams/WebRtcConfig.d.ts +20 -0
  88. package/dist/webStreams/WebRtcConfig.js +53 -0
  89. package/dist/webStreams/WebRtcInterfaceImpl.d.ts +28 -0
  90. package/dist/webStreams/WebRtcInterfaceImpl.js +85 -0
  91. package/dist/webStreams/WebWorkerHelper copy.d.ts +0 -0
  92. package/dist/webStreams/WebWorkerHelper copy.js +17 -0
  93. package/dist/webStreams/WebWorkerHelper.d.ts +18 -0
  94. package/dist/webStreams/WebWorkerHelper.js +69 -0
  95. package/dist/webStreams/audio/ActiveSpeakerDetector.d.ts +38 -0
  96. package/dist/webStreams/audio/ActiveSpeakerDetector.js +64 -0
  97. package/dist/webStreams/audio/LocalAudioLevelMeter.d.ts +12 -0
  98. package/dist/webStreams/audio/LocalAudioLevelMeter.js +101 -0
  99. package/dist/webStreams/types/ApiTypes.d.ts +74 -0
  100. package/dist/webStreams/types/ApiTypes.js +2 -0
  101. package/dist/webStreams/types/BaseServerTypes.d.ts +10 -0
  102. package/dist/webStreams/types/BaseServerTypes.js +2 -0
  103. package/dist/webStreams/types/MediaServerWebSocketApiTypes.d.ts +255 -0
  104. package/dist/webStreams/types/MediaServerWebSocketApiTypes.js +2 -0
  105. package/dist/webStreams/types/SignalingReceiverTypes.d.ts +13 -0
  106. package/dist/webStreams/types/SignalingReceiverTypes.js +2 -0
  107. package/dist/webStreams/types/SignalingSenderTypes.d.ts +24 -0
  108. package/dist/webStreams/types/SignalingSenderTypes.js +2 -0
  109. package/dist/webStreams/types/StreamsApiTypes.d.ts +144 -0
  110. package/dist/webStreams/types/StreamsApiTypes.js +2 -0
  111. package/dist/webStreams/worker/WorkerEvents.d.ts +11 -0
  112. package/dist/webStreams/worker/WorkerEvents.js +2 -0
  113. package/dist/webStreams/worker/worker.d.ts +13 -0
  114. package/dist/webStreams/worker/worker.js +202 -0
  115. package/package.json +46 -15
  116. package/assets/endpoint-wasm-module.worker.js +0 -1
  117. package/assets/privmx-endpoint-web.js +0 -2
  118. package/bundle/privmx-endpoint-web.js +0 -2
  119. package/bundle/privmx-endpoint-web.js.LICENSE.txt +0 -10
  120. /package/{FinalizationHelper.d.ts → dist/FinalizationHelper.d.ts} +0 -0
  121. /package/{extra/generics.js → dist/ServerTypes.js} +0 -0
  122. /package/{api → dist/api}/ApiStatic.d.ts +0 -0
  123. /package/{api → dist/api}/ApiStatic.js +0 -0
  124. /package/{api → dist/api}/BaseNative.d.ts +0 -0
  125. /package/{api → dist/api}/BaseNative.js +0 -0
  126. /package/{api → dist/api}/ConnectionNative.d.ts +0 -0
  127. /package/{api → dist/api}/CryptoApiNative.d.ts +0 -0
  128. /package/{api → dist/api}/EventApiNative.d.ts +0 -0
  129. /package/{api → dist/api}/EventApiNative.js +0 -0
  130. /package/{api → dist/api}/EventQueueNative.d.ts +0 -0
  131. /package/{api → dist/api}/EventQueueNative.js +0 -0
  132. /package/{api → dist/api}/ExtKeyNative.d.ts +0 -0
  133. /package/{api → dist/api}/ExtKeyNative.js +0 -0
  134. /package/{api → dist/api}/IdGenerator.d.ts +0 -0
  135. /package/{api → dist/api}/IdGenerator.js +0 -0
  136. /package/{api → dist/api}/InboxApiNative.js +0 -0
  137. /package/{api → dist/api}/KvdbApiNative.js +0 -0
  138. /package/{api → dist/api}/StoreApiNative.js +0 -0
  139. /package/{api → dist/api}/ThreadApiNative.js +0 -0
  140. /package/{bundle.d.ts → dist/bundle.d.ts} +0 -0
  141. /package/{bundle.js → dist/bundle.js} +0 -0
  142. /package/{extra → dist/extra}/__mocks__/constants.d.ts +0 -0
  143. /package/{extra → dist/extra}/__mocks__/constants.js +0 -0
  144. /package/{extra → dist/extra}/__mocks__/mockContainerSubscriber.d.ts +0 -0
  145. /package/{extra → dist/extra}/__mocks__/mockContainerSubscriber.js +0 -0
  146. /package/{extra → dist/extra}/__mocks__/mockEventQueue.d.ts +0 -0
  147. /package/{extra → dist/extra}/__mocks__/mockEventQueue.js +0 -0
  148. /package/{extra → dist/extra}/__mocks__/utils.d.ts +0 -0
  149. /package/{extra → dist/extra}/__mocks__/utils.js +0 -0
  150. /package/{extra → dist/extra}/__tests__/connectionEventManager.test.d.ts +0 -0
  151. /package/{extra → dist/extra}/__tests__/customEventManager.test.d.ts +0 -0
  152. /package/{extra → dist/extra}/__tests__/eventsManager.test.d.ts +0 -0
  153. /package/{extra → dist/extra}/__tests__/eventsManager.test.js +0 -0
  154. /package/{extra → dist/extra}/__tests__/inboxEventManager.d.ts +0 -0
  155. /package/{extra → dist/extra}/__tests__/inboxEventManager.js +0 -0
  156. /package/{extra → dist/extra}/__tests__/storeEventManager.test.d.ts +0 -0
  157. /package/{extra → dist/extra}/__tests__/storeEventManager.test.js +0 -0
  158. /package/{extra → dist/extra}/__tests__/threadEventManager.test.d.ts +0 -0
  159. /package/{extra → dist/extra}/__tests__/threadEventManager.test.js +0 -0
  160. /package/{extra → dist/extra}/__tests__/userEventManager.test.d.ts +0 -0
  161. /package/{extra → dist/extra}/__tests__/utils.test.d.ts +0 -0
  162. /package/{extra → dist/extra}/events.d.ts +0 -0
  163. /package/{service/UserVerifierInterface.js → dist/extra/generics.js} +0 -0
  164. /package/{extra → dist/extra}/index.js +0 -0
  165. /package/{extra → dist/extra}/managers.d.ts +0 -0
  166. /package/{extra → dist/extra}/subscriptions.d.ts +0 -0
  167. /package/{extra → dist/extra}/subscriptions.js +0 -0
  168. /package/{extra → dist/extra}/utils.d.ts +0 -0
  169. /package/{service → dist/service}/BaseApi.d.ts +0 -0
  170. /package/{service → dist/service}/BaseApi.js +0 -0
  171. /package/{service → dist/service}/Connection.d.ts +0 -0
  172. /package/{service → dist/service}/CryptoApi.d.ts +0 -0
  173. /package/{service → dist/service}/EventApi.d.ts +0 -0
  174. /package/{service → dist/service}/InboxApi.d.ts +0 -0
  175. /package/{service → dist/service}/KvdbApi.d.ts +0 -0
  176. /package/{service → dist/service}/StoreApi.d.ts +0 -0
  177. /package/{service → dist/service}/ThreadApi.d.ts +0 -0
@@ -0,0 +1,211 @@
1
+ "use strict";
2
+ // const Buffer = require('buffer/').Buffer;
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.Utils = void 0;
5
+ class Utils {
6
+ static generateNumericId() {
7
+ return Math.round(Math.random() * 1000000000000000);
8
+ }
9
+ static getRandomString(size) {
10
+ return [...Array(size)].map(() => Math.floor(Math.random() * 16).toString(16)).join("");
11
+ }
12
+ static async encryptSymmetric(plaintext, key, iv) {
13
+ // encode the text you want to encrypt
14
+ let encodedPlaintext;
15
+ if (typeof plaintext === "string") {
16
+ encodedPlaintext = new TextEncoder().encode(plaintext);
17
+ }
18
+ else {
19
+ encodedPlaintext = plaintext;
20
+ }
21
+ // prepare the secret key for encryption
22
+ const secretKey = await crypto.subtle.importKey("raw", Buffer.from(key, "base64"), {
23
+ name: "AES-GCM",
24
+ length: 256,
25
+ }, true, ["encrypt", "decrypt"]);
26
+ // encrypt the text with the secret key
27
+ const ciphertext = await crypto.subtle.encrypt({
28
+ name: "AES-GCM",
29
+ iv: Buffer.from(iv, "base64"),
30
+ }, secretKey, encodedPlaintext);
31
+ // return the encrypted text "ciphertext" and the IV
32
+ // encoded in base64
33
+ return {
34
+ ciphertext: Buffer.from(ciphertext),
35
+ iv: iv,
36
+ };
37
+ }
38
+ static async decryptSymmetricBuffer(ciphertext, iv, key) {
39
+ // prepare the secret key
40
+ const secretKey = await crypto.subtle.importKey("raw", key, {
41
+ name: "AES-GCM",
42
+ length: 256,
43
+ }, true, ["encrypt", "decrypt"]);
44
+ // decrypt the encrypted text "ciphertext" with the secret key and IV
45
+ const cleartext = await crypto.subtle.decrypt({
46
+ name: "AES-GCM",
47
+ iv: iv,
48
+ }, secretKey, ciphertext);
49
+ // decode the text and return it
50
+ return Buffer.from(cleartext);
51
+ }
52
+ static async decryptSymmetric(ciphertext, iv, key) {
53
+ // prepare the secret key
54
+ const secretKey = await crypto.subtle.importKey("raw", Buffer.from(key, "base64"), {
55
+ name: "AES-GCM",
56
+ length: 256,
57
+ }, true, ["encrypt", "decrypt"]);
58
+ // decrypt the encrypted text "ciphertext" with the secret key and IV
59
+ const cleartext = await crypto.subtle.decrypt({
60
+ name: "AES-GCM",
61
+ iv: Buffer.from(iv, "base64"),
62
+ }, secretKey, Buffer.from(ciphertext, "base64"));
63
+ // decode the text and return it
64
+ return new TextDecoder().decode(cleartext);
65
+ }
66
+ static genKey() {
67
+ return Buffer.from(crypto.getRandomValues(new Uint8Array(32))).toString("base64");
68
+ }
69
+ static genIv() {
70
+ return Buffer.from(crypto.getRandomValues(new Uint8Array(12))).toString("base64");
71
+ }
72
+ static genIvAsBuffer() {
73
+ return crypto.getRandomValues(new Uint8Array(12));
74
+ }
75
+ static base64abc = [
76
+ "A",
77
+ "B",
78
+ "C",
79
+ "D",
80
+ "E",
81
+ "F",
82
+ "G",
83
+ "H",
84
+ "I",
85
+ "J",
86
+ "K",
87
+ "L",
88
+ "M",
89
+ "N",
90
+ "O",
91
+ "P",
92
+ "Q",
93
+ "R",
94
+ "S",
95
+ "T",
96
+ "U",
97
+ "V",
98
+ "W",
99
+ "X",
100
+ "Y",
101
+ "Z",
102
+ "a",
103
+ "b",
104
+ "c",
105
+ "d",
106
+ "e",
107
+ "f",
108
+ "g",
109
+ "h",
110
+ "i",
111
+ "j",
112
+ "k",
113
+ "l",
114
+ "m",
115
+ "n",
116
+ "o",
117
+ "p",
118
+ "q",
119
+ "r",
120
+ "s",
121
+ "t",
122
+ "u",
123
+ "v",
124
+ "w",
125
+ "x",
126
+ "y",
127
+ "z",
128
+ "0",
129
+ "1",
130
+ "2",
131
+ "3",
132
+ "4",
133
+ "5",
134
+ "6",
135
+ "7",
136
+ "8",
137
+ "9",
138
+ "+",
139
+ "/",
140
+ ];
141
+ static base64codes = [
142
+ 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,
143
+ 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,
144
+ 255, 255, 255, 255, 255, 255, 255, 62, 255, 255, 255, 63, 52, 53, 54, 55, 56, 57, 58, 59,
145
+ 60, 61, 255, 255, 255, 0, 255, 255, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
146
+ 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 255, 255, 255, 255, 255, 255, 26, 27, 28, 29,
147
+ 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51,
148
+ ];
149
+ static bytesToBase64(bytes) {
150
+ let result = "", i, l = bytes.length;
151
+ for (i = 2; i < l; i += 3) {
152
+ result += Utils.base64abc[bytes[i - 2] >> 2];
153
+ result += Utils.base64abc[((bytes[i - 2] & 0x03) << 4) | (bytes[i - 1] >> 4)];
154
+ result += Utils.base64abc[((bytes[i - 1] & 0x0f) << 2) | (bytes[i] >> 6)];
155
+ result += Utils.base64abc[bytes[i] & 0x3f];
156
+ }
157
+ if (i === l + 1) {
158
+ // 1 octet yet to write
159
+ result += Utils.base64abc[bytes[i - 2] >> 2];
160
+ result += Utils.base64abc[(bytes[i - 2] & 0x03) << 4];
161
+ result += "==";
162
+ }
163
+ if (i === l) {
164
+ // 2 octets yet to write
165
+ result += Utils.base64abc[bytes[i - 2] >> 2];
166
+ result += Utils.base64abc[((bytes[i - 2] & 0x03) << 4) | (bytes[i - 1] >> 4)];
167
+ result += Utils.base64abc[(bytes[i - 1] & 0x0f) << 2];
168
+ result += "=";
169
+ }
170
+ return result;
171
+ }
172
+ static isBitOn(byte, index) {
173
+ return Boolean(byte & (1 << index));
174
+ }
175
+ static getBits(data, bitOffset, numBits) {
176
+ const numBits2 = Math.pow(2, numBits) - 1; //this will only work up to 32 bits, of course
177
+ const bytePos = bitOffset / 8;
178
+ const bits = (bitOffset %= 8);
179
+ return (data[bytePos] >> bits) & numBits2;
180
+ }
181
+ // static numToUint8Array(num: number) {
182
+ // let arr = new Uint8Array(8);
183
+ // for (let i = 0; i < 8; i++) {
184
+ // arr[i] = num % 256;
185
+ // num = Math.floor(num / 256);
186
+ // }
187
+ // return arr;
188
+ // }
189
+ // static uint8ArrayToNum(arr: Uint8Array) {
190
+ // let num = 0;
191
+ // for (let i = 7; i >= 0; i--) {
192
+ // num = num * 256 + arr[i];
193
+ // }
194
+ // return num;
195
+ // }
196
+ static numAsOneByteUint(num) {
197
+ if (num > 255) {
198
+ throw new Error("Out of bounds value");
199
+ }
200
+ const arr = new Uint8Array(1);
201
+ arr[0] = num;
202
+ return arr;
203
+ }
204
+ static oneByteUint8AsNum(arr) {
205
+ if (arr[0] > 255) {
206
+ throw new Error("Out of bounds value");
207
+ }
208
+ return arr[0];
209
+ }
210
+ }
211
+ exports.Utils = Utils;
@@ -0,0 +1,85 @@
1
+ import { SessionId } from "./WebRtcClientTypes";
2
+ import { WebWorker } from "./WebWorkerHelper";
3
+ import { Key, TurnCredentials, StreamHandle, RemoteStreamListener } from "../Types";
4
+ import { PeerConnectionManager } from "./PeerConnectionsManager";
5
+ import { StreamId, StreamRoomId } from "./types/ApiTypes";
6
+ import { Jsep } from "../service/WebRtcInterface";
7
+ import { SpeakerState } from "./audio/ActiveSpeakerDetector";
8
+ import { StateChangeDispatcher } from "../service/EventDispatcher";
9
+ export declare class RTCRtpScriptTransform {
10
+ constructor(worker: any, options: any);
11
+ transform: (frame: any, controller: any) => void;
12
+ }
13
+ export interface StreamsCallbackInterface {
14
+ trickle(sessionId: SessionId, candidate: RTCIceCandidate): Promise<void>;
15
+ acceptOffer(sessionId: SessionId, sdp: Jsep): Promise<void>;
16
+ }
17
+ export interface UserAudioStats {
18
+ streamId: number;
19
+ rms: number;
20
+ active: boolean;
21
+ }
22
+ export interface WebRtcStateEvents {
23
+ connected: {
24
+ streamId: StreamId;
25
+ };
26
+ }
27
+ export interface AudioLevelsStats {
28
+ levels: SpeakerState[];
29
+ }
30
+ type AudioLevelFuncCallback = (changes: AudioLevelsStats) => void;
31
+ export declare class WebRtcClient {
32
+ private assetsDir;
33
+ uniqId: string;
34
+ private e2eeWorker;
35
+ private webWorkerApi;
36
+ private dataChannels;
37
+ private configuration;
38
+ private keyStore;
39
+ private publishStreamHandle;
40
+ private peerCredentials;
41
+ private remoteStreamsListeners;
42
+ private peerConnectionsManager;
43
+ private streamsApiInterface;
44
+ private activeSpeakerDetector;
45
+ private audioLevelCallback;
46
+ private encByReceiver;
47
+ private logger;
48
+ private peerConnectionReconfigureQueue;
49
+ lastProcessedAnswer: {
50
+ [roomId: string]: Jsep;
51
+ };
52
+ private lastMeasuredLocalRMS;
53
+ private eventsDispatcher;
54
+ private localAudioLevelMeters;
55
+ constructor(assetsDir: string);
56
+ private ensureLocalAudioLevelMeter;
57
+ private stopLocalAudioLevelMeter;
58
+ setAudioLevelCallback(func: AudioLevelFuncCallback): void;
59
+ bindApiInterface(streamsApiInterface: StreamsCallbackInterface): void;
60
+ addRemoteStreamListener(listener: RemoteStreamListener): void;
61
+ getStreamStateChangeDispatcher(): StateChangeDispatcher;
62
+ getConnectionManager(): PeerConnectionManager;
63
+ getWebRtcEventDispatcher(): StateChangeDispatcher;
64
+ protected getEncKey(): Key;
65
+ protected getWorker(): Promise<Worker>;
66
+ protected initPipeline(receiverTrackId: string, publisherId: number): Promise<void>;
67
+ protected getWorkerApi(): Promise<WebWorker>;
68
+ protected getPeerConnectionConfiguration(): RTCConfiguration;
69
+ setTurnCredentials(turnCredentials: TurnCredentials[]): Promise<void>;
70
+ createPeerConnectionWithLocalStream(streamHandle: StreamHandle, streamRoomId: StreamRoomId, stream: MediaStream): Promise<RTCPeerConnection>;
71
+ removeSenderPeerConnectionOnUnpublish(streamRoomId: StreamRoomId, stream: MediaStream): void;
72
+ updatePeerConnectionWithLocalStream(streamRoomId: StreamRoomId, localStream: MediaStream, tracksToAdd: MediaStreamTrack[], tracksToRemove: MediaStreamTrack[]): Promise<RTCPeerConnection>;
73
+ private createPeerConnectionMultiForRoom;
74
+ updateKeys(_streamRoomId: StreamRoomId, keys: Key[]): Promise<void>;
75
+ private setupSenderTransform;
76
+ private setupReceiverTransform;
77
+ private waitUntilConnected;
78
+ private teardownReceiver;
79
+ private addRemoteTrack;
80
+ private callRegisteredListeners;
81
+ onSubscriptionUpdated(_room: StreamRoomId, offer: any): Promise<void>;
82
+ onSubscriptionUpdatedSingle(_room: StreamRoomId, offer: any): Promise<Jsep>;
83
+ private reconfigureSingle;
84
+ }
85
+ export {};