fcr-core 3.4.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 (119) hide show
  1. package/lib/base-session.d.ts +3 -0
  2. package/lib/base-session.js +8 -0
  3. package/lib/chat-connection/config.d.ts +51 -0
  4. package/lib/chat-connection/config.js +105 -0
  5. package/lib/chat-connection/index.d.ts +25 -0
  6. package/lib/chat-connection/index.js +118 -0
  7. package/lib/chat-connection/type.d.ts +17 -0
  8. package/lib/chat-connection/type.js +12 -0
  9. package/lib/engine/index.d.ts +86 -0
  10. package/lib/engine/index.js +317 -0
  11. package/lib/imports.d.ts +43 -0
  12. package/lib/imports.js +322 -0
  13. package/lib/index.d.ts +22 -0
  14. package/lib/index.js +140 -0
  15. package/lib/media-control/desktop.d.ts +1 -0
  16. package/lib/media-control/desktop.js +120 -0
  17. package/lib/media-control/mobile.d.ts +1 -0
  18. package/lib/media-control/mobile.js +168 -0
  19. package/lib/media-control/type.d.ts +640 -0
  20. package/lib/media-control/type.js +5 -0
  21. package/lib/monitor-control/index.d.ts +1 -0
  22. package/lib/monitor-control/index.js +22 -0
  23. package/lib/monitor-control/type.d.ts +16 -0
  24. package/lib/monitor-control/type.js +5 -0
  25. package/lib/peer-session/index.d.ts +1 -0
  26. package/lib/peer-session/index.js +286 -0
  27. package/lib/peer-session/type.d.ts +54 -0
  28. package/lib/peer-session/type.js +5 -0
  29. package/lib/plugins/chatroom.d.ts +1 -0
  30. package/lib/plugins/chatroom.js +331 -0
  31. package/lib/plugins/electron-rtc-plugin.d.ts +1 -0
  32. package/lib/plugins/electron-rtc-plugin.js +13 -0
  33. package/lib/plugins/rtm-plugin.d.ts +1 -0
  34. package/lib/plugins/rtm-plugin.js +13 -0
  35. package/lib/plugins/web-rtc-plugin.d.ts +1 -0
  36. package/lib/plugins/web-rtc-plugin.js +13 -0
  37. package/lib/room-control/chatroom-control/config.d.ts +51 -0
  38. package/lib/room-control/chatroom-control/config.js +105 -0
  39. package/lib/room-control/chatroom-control/index.d.ts +1 -0
  40. package/lib/room-control/chatroom-control/index.js +323 -0
  41. package/lib/room-control/chatroom-control/type.d.ts +95 -0
  42. package/lib/room-control/chatroom-control/type.js +18 -0
  43. package/lib/room-control/group-control/index.d.ts +25 -0
  44. package/lib/room-control/group-control/index.js +227 -0
  45. package/lib/room-control/index.d.ts +1 -0
  46. package/lib/room-control/index.js +459 -0
  47. package/lib/room-control/interpreter-control/index.d.ts +1 -0
  48. package/lib/room-control/interpreter-control/index.js +136 -0
  49. package/lib/room-control/interpreter-control/room.d.ts +1 -0
  50. package/lib/room-control/interpreter-control/room.js +22 -0
  51. package/lib/room-control/interpreter-control/types.d.ts +66 -0
  52. package/lib/room-control/interpreter-control/types.js +32 -0
  53. package/lib/room-control/mainroom-control/index.d.ts +1 -0
  54. package/lib/room-control/mainroom-control/index.js +181 -0
  55. package/lib/room-control/privilege-control/helper.d.ts +9 -0
  56. package/lib/room-control/privilege-control/helper.js +43 -0
  57. package/lib/room-control/privilege-control/index.d.ts +1 -0
  58. package/lib/room-control/privilege-control/index.js +245 -0
  59. package/lib/room-control/privilege-control/type.d.ts +293 -0
  60. package/lib/room-control/privilege-control/type.js +141 -0
  61. package/lib/room-control/room-connector-control/index.d.ts +1 -0
  62. package/lib/room-control/room-connector-control/index.js +160 -0
  63. package/lib/room-control/room-connector-control/type.d.ts +102 -0
  64. package/lib/room-control/room-connector-control/type.js +34 -0
  65. package/lib/room-control/room-session/index.d.ts +1 -0
  66. package/lib/room-control/room-session/index.js +286 -0
  67. package/lib/room-control/room-session/type.d.ts +61 -0
  68. package/lib/room-control/room-session/type.js +5 -0
  69. package/lib/room-control/stream-control/index.d.ts +1 -0
  70. package/lib/room-control/stream-control/index.js +341 -0
  71. package/lib/room-control/stream-control/type.d.ts +209 -0
  72. package/lib/room-control/stream-control/type.js +5 -0
  73. package/lib/room-control/type.d.ts +281 -0
  74. package/lib/room-control/type.js +23 -0
  75. package/lib/room-control/user-control/index.d.ts +1 -0
  76. package/lib/room-control/user-control/index.js +318 -0
  77. package/lib/room-control/user-control/type.d.ts +177 -0
  78. package/lib/room-control/user-control/type.js +17 -0
  79. package/lib/room-control/waitingroom-control/index.d.ts +1 -0
  80. package/lib/room-control/waitingroom-control/index.js +46 -0
  81. package/lib/room-control/whiteboard-control/board-window.d.ts +47 -0
  82. package/lib/room-control/whiteboard-control/board-window.js +396 -0
  83. package/lib/room-control/whiteboard-control/enums.d.ts +164 -0
  84. package/lib/room-control/whiteboard-control/enums.js +96 -0
  85. package/lib/room-control/whiteboard-control/index.d.ts +1 -0
  86. package/lib/room-control/whiteboard-control/index.js +342 -0
  87. package/lib/room-control/whiteboard-control/mount-manager.d.ts +4 -0
  88. package/lib/room-control/whiteboard-control/mount-manager.js +15 -0
  89. package/lib/room-control/whiteboard-control/types.d.ts +330 -0
  90. package/lib/room-control/whiteboard-control/types.js +12 -0
  91. package/lib/room-control/whiteboard-control/utils.d.ts +51 -0
  92. package/lib/room-control/whiteboard-control/utils.js +273 -0
  93. package/lib/room-control/whiteboard-control-v2/index.d.ts +35 -0
  94. package/lib/room-control/whiteboard-control-v2/index.js +242 -0
  95. package/lib/room-control/whiteboard-control-v2/main-window.d.ts +33 -0
  96. package/lib/room-control/whiteboard-control-v2/main-window.js +213 -0
  97. package/lib/room-control/whiteboard-control-v2/utils.d.ts +3 -0
  98. package/lib/room-control/whiteboard-control-v2/utils.js +39 -0
  99. package/lib/service/api.d.ts +401 -0
  100. package/lib/service/api.js +924 -0
  101. package/lib/service/type.d.ts +7 -0
  102. package/lib/service/type.js +5 -0
  103. package/lib/type.d.ts +254 -0
  104. package/lib/type.js +87 -0
  105. package/lib/utilities/cmd.d.ts +1 -0
  106. package/lib/utilities/cmd.js +7 -0
  107. package/lib/utilities/collection.d.ts +22 -0
  108. package/lib/utilities/collection.js +74 -0
  109. package/lib/utilities/error.d.ts +41 -0
  110. package/lib/utilities/error.js +68 -0
  111. package/lib/utilities/package-info.d.ts +1 -0
  112. package/lib/utilities/package-info.js +12 -0
  113. package/lib/utilities/parameters.d.ts +9 -0
  114. package/lib/utilities/parameters.js +30 -0
  115. package/lib/utilities/stream.d.ts +27 -0
  116. package/lib/utilities/stream.js +34 -0
  117. package/lib/utilities/user.d.ts +7 -0
  118. package/lib/utilities/user.js +34 -0
  119. package/package.json +98 -0
@@ -0,0 +1,3 @@
1
+ import { FcrSessionBase } from './type';
2
+ export declare abstract class BaseSession<T extends FcrSessionBase> {
3
+ }
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.BaseSession = void 0;
7
+ class BaseSession {}
8
+ exports.BaseSession = BaseSession;
@@ -0,0 +1,51 @@
1
+ /**
2
+ * git do not control webim.config.js
3
+ * everyone should copy webim.config.js.demo to webim.config.js
4
+ * and have their own configs.
5
+ * In this way , others won't be influenced by this config while git pull.
6
+ */
7
+ declare const agoraChatConfig: {
8
+ Host: string;
9
+ https: boolean;
10
+ isHttpDNS: boolean;
11
+ isMultiLoginSessions: boolean;
12
+ /**
13
+ * @parameter {Boolean} true or false
14
+ */
15
+ isSandBox: boolean;
16
+ /**
17
+ * Whether to console.log
18
+ * @parameter {Boolean} true or false
19
+ */
20
+ isDebug: boolean;
21
+ /**
22
+ * will auto connect the websocket server autoReconnectNumMax times in background when client is offline.
23
+ * won't auto connect if autoReconnectNumMax=0.
24
+ */
25
+ autoReconnectNumMax: number;
26
+ /**
27
+ * webrtc supports WebKit and https only
28
+ */
29
+ useOwnUploadFun: boolean;
30
+ isAutoLogin: boolean;
31
+ /**
32
+ * Size of message cache for person to person
33
+ */
34
+ p2pMessageCacheSize: number;
35
+ /**
36
+ * When a message arrived, the receiver send an ack message to the
37
+ * sender, in order to tell the sender the message has delivered.
38
+ * See call back function onReceivedMessage
39
+ */
40
+ delivery: boolean;
41
+ /**
42
+ * Size of message cache for group chating like group, chatroom etc. For use in this demo
43
+ */
44
+ groupMessageCacheSize: number;
45
+ /**
46
+ * enable localstorage for history messages. For use in this demo
47
+ */
48
+ enableLocalStorage: boolean;
49
+ deviceId: string;
50
+ };
51
+ export { agoraChatConfig };
@@ -0,0 +1,105 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.agoraChatConfig = void 0;
7
+ /**
8
+ * git do not control webim.config.js
9
+ * everyone should copy webim.config.js.demo to webim.config.js
10
+ * and have their own configs.
11
+ * In this way , others won't be influenced by this config while git pull.
12
+ */
13
+
14
+ // for react native
15
+ // var location = {
16
+ // protocol: "https"
17
+ // }
18
+
19
+ const agoraChatConfig = exports.agoraChatConfig = {
20
+ /*
21
+ * websocket server
22
+ * im-api-v2.easemob.com/ws 线上环境
23
+ * im-api-v2-hsb.easemob.com/ws 沙箱环境
24
+ */
25
+ // socketServer: getUrl().socketUrl, //(window.location.protocol === "https:" ? "https:" : "http:") + "//im-api-v2.easemob.com/ws",
26
+ /*
27
+ * Backend REST API URL
28
+ * a1.easemob.com 线上环境
29
+ * a1-hsb.easemob.com 沙箱环境
30
+ */
31
+ // restServer: getUrl().apiUrl, //(window.location.protocol === "https:" ? "https:" : "http:") + "//a1.easemob.com",
32
+ /*
33
+ * Application AppKey
34
+ */
35
+ // appkey: 'easemob-demo#cloudclass',
36
+ /*
37
+ * Application Host
38
+ */
39
+ Host: 'easemob.com',
40
+ /*
41
+ * Whether to use HTTPS
42
+ * @parameter {Boolean} true or false
43
+ */
44
+ https: true,
45
+ /*
46
+ * 公有云配置默认为 true,
47
+ * 私有云配置请设置 isHttpDNS = false , 详细文档:http://docs-im.easemob.com/im/web/other/privatedeploy
48
+ */
49
+ isHttpDNS: true,
50
+ /*
51
+ * isMultiLoginSessions
52
+ * true: A visitor can sign in to multiple webpages and receive messages at all the webpages.
53
+ * false: A visitor can sign in to only one webpage and receive messages at the webpage.
54
+ */
55
+ isMultiLoginSessions: true,
56
+ /**
57
+ * @parameter {Boolean} true or false
58
+ */
59
+ isSandBox: false,
60
+ //内部测试环境,集成时设为false
61
+ /**
62
+ * Whether to console.log
63
+ * @parameter {Boolean} true or false
64
+ */
65
+ isDebug: true,
66
+ /**
67
+ * will auto connect the websocket server autoReconnectNumMax times in background when client is offline.
68
+ * won't auto connect if autoReconnectNumMax=0.
69
+ */
70
+ autoReconnectNumMax: 10,
71
+ /**
72
+ * webrtc supports WebKit and https only
73
+ */
74
+ // isWebRTC: window.RTCPeerConnection && /^https\:$/.test(window.location.protocol),
75
+ /*
76
+ * Upload pictures or file to your own server and send message with url
77
+ * @parameter {Boolean} true or false
78
+ * true: Using the API provided by SDK to upload file to huanxin server
79
+ * false: Using your method to upload file to your own server
80
+ */
81
+ useOwnUploadFun: false,
82
+ /*
83
+ * Set to auto sign-in
84
+ */
85
+ isAutoLogin: false,
86
+ /**
87
+ * Size of message cache for person to person
88
+ */
89
+ p2pMessageCacheSize: 500,
90
+ /**
91
+ * When a message arrived, the receiver send an ack message to the
92
+ * sender, in order to tell the sender the message has delivered.
93
+ * See call back function onReceivedMessage
94
+ */
95
+ delivery: false,
96
+ /**
97
+ * Size of message cache for group chating like group, chatroom etc. For use in this demo
98
+ */
99
+ groupMessageCacheSize: 200,
100
+ /**
101
+ * enable localstorage for history messages. For use in this demo
102
+ */
103
+ enableLocalStorage: true,
104
+ deviceId: 'webim'
105
+ };
@@ -0,0 +1,25 @@
1
+ import { EasemobChat } from '../imports';
2
+ import { FcrChatConnection, FcrChatConnectionObserver, FcrChatConnectionState } from './type';
3
+ import { FcrCoreServiceApi } from '../service/api';
4
+ import { FcrCoreEngineConfig } from '../type';
5
+ export declare class FcrChatConnectionImpl implements FcrChatConnection {
6
+ private _config;
7
+ private _api;
8
+ protected logger: import("agora-foundation/lib/logger").Logger;
9
+ private _observable;
10
+ private _initConfig?;
11
+ private _chatIpList?;
12
+ private _restIpList?;
13
+ private _conn?;
14
+ private _connectionState;
15
+ constructor(_config: FcrCoreEngineConfig, _api: FcrCoreServiceApi);
16
+ login(): Promise<void>;
17
+ private _addEventListeners;
18
+ logout(): void;
19
+ private _setConnectionState;
20
+ getConnectionState(): FcrChatConnectionState;
21
+ getConnectionInstance(): EasemobChat.Connection;
22
+ addObserver(observer: FcrChatConnectionObserver): void;
23
+ removeObserver(observer: FcrChatConnectionObserver): void;
24
+ private _getPrivateConfig;
25
+ }
@@ -0,0 +1,118 @@
1
+ "use strict";
2
+
3
+ require("core-js/modules/es.array.push.js");
4
+ require("core-js/modules/esnext.async-iterator.filter.js");
5
+ require("core-js/modules/esnext.async-iterator.for-each.js");
6
+ require("core-js/modules/esnext.iterator.constructor.js");
7
+ require("core-js/modules/esnext.iterator.filter.js");
8
+ require("core-js/modules/esnext.iterator.for-each.js");
9
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
10
+ Object.defineProperty(exports, "__esModule", {
11
+ value: true
12
+ });
13
+ exports.FcrChatConnectionImpl = void 0;
14
+ require("core-js/modules/es.json.stringify.js");
15
+ require("core-js/modules/es.regexp.exec.js");
16
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
17
+ var _imports = require("../imports");
18
+ var _type = require("./type");
19
+ var _parameters = require("../utilities/parameters");
20
+ var _config2 = require("./config");
21
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
22
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2.default)(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
23
+ class FcrChatConnectionImpl {
24
+ constructor(_config, _api) {
25
+ (0, _defineProperty2.default)(this, "logger", (0, _imports.getLogger)());
26
+ (0, _defineProperty2.default)(this, "_observable", new _imports.AgoraObservable());
27
+ (0, _defineProperty2.default)(this, "_connectionState", _type.FcrChatConnectionState.DISCONNECTED);
28
+ this._config = _config;
29
+ this._api = _api;
30
+ }
31
+ async login() {
32
+ this._chatIpList = (0, _parameters.getEasemobChatIpList)(this._config.parameters);
33
+ this._restIpList = (0, _parameters.getEasemobRestIpList)(this._config.parameters);
34
+ const privateConfig = this._getPrivateConfig();
35
+ if (privateConfig) {
36
+ this.logger.info('[ChatRoomControl] use private config:', JSON.stringify(privateConfig));
37
+ }
38
+ await (0, _imports.to)((0, _imports.retryAttempt)(async () => {
39
+ const tokenResult = await this._api.getUserToken(this._config.userId);
40
+ this._initConfig = tokenResult;
41
+ const connParams = _objectSpread(_objectSpread(_objectSpread({}, _config2.agoraChatConfig), privateConfig), {}, {
42
+ appKey: tokenResult.appKey
43
+ });
44
+ this._conn = new _imports.EasemobChatSDK.connection(connParams);
45
+ await this._conn.open({
46
+ accessToken: this._initConfig.token,
47
+ user: this._config.userId
48
+ });
49
+ this._observable.notifyObservers('onConnectionLoginSuccess');
50
+ this._addEventListeners();
51
+ }, [], {
52
+ retriesMax: 3
53
+ }).fail(async _ref => {
54
+ let {
55
+ error,
56
+ timeFn,
57
+ currentRetry
58
+ } = _ref;
59
+ if (error instanceof _imports.AgoraRestfulClientError) {
60
+ throw error;
61
+ }
62
+ this.logger.error("[ChatConnection] retry to login ChatConnection, ".concat(error.message, ",retry ").concat(currentRetry, " times"));
63
+ await timeFn();
64
+ return true;
65
+ }).exec());
66
+ }
67
+ _addEventListeners() {
68
+ var _this$_conn;
69
+ (_this$_conn = this._conn) === null || _this$_conn === void 0 || _this$_conn.addEventHandler('connection', {
70
+ onError: e => {
71
+ // this._observable.notifyObservers('onErrorOccurred', this._initConfig.roomId);
72
+ },
73
+ onConnected: () => {
74
+ this._setConnectionState(_type.FcrChatConnectionState.CONNECTED);
75
+ },
76
+ onDisconnected: () => {
77
+ this._setConnectionState(_type.FcrChatConnectionState.DISCONNECTED);
78
+ }
79
+ });
80
+ }
81
+ logout() {
82
+ var _this$_conn2;
83
+ (_this$_conn2 = this._conn) === null || _this$_conn2 === void 0 || _this$_conn2.close();
84
+ }
85
+ _setConnectionState(state) {
86
+ this._connectionState = state;
87
+ this._observable.notifyObservers('onConnectionStateUpdated', state);
88
+ }
89
+ getConnectionState() {
90
+ return this._connectionState;
91
+ }
92
+ getConnectionInstance() {
93
+ return this._conn;
94
+ }
95
+ addObserver(observer) {
96
+ this._observable.addObserver(observer);
97
+ }
98
+ removeObserver(observer) {
99
+ this._observable.removeObserver(observer);
100
+ }
101
+ _getPrivateConfig() {
102
+ var _this$_chatIpList, _this$_restIpList;
103
+ if ((_this$_chatIpList = this._chatIpList) !== null && _this$_chatIpList !== void 0 && _this$_chatIpList.length || (_this$_restIpList = this._restIpList) !== null && _this$_restIpList !== void 0 && _this$_restIpList.length) {
104
+ var _this$_chatIpList2, _this$_restIpList2;
105
+ const privateConfig = {
106
+ isHttpDNS: false
107
+ };
108
+ if ((_this$_chatIpList2 = this._chatIpList) !== null && _this$_chatIpList2 !== void 0 && _this$_chatIpList2.length) {
109
+ privateConfig.url = this._chatIpList[0];
110
+ }
111
+ if ((_this$_restIpList2 = this._restIpList) !== null && _this$_restIpList2 !== void 0 && _this$_restIpList2.length) {
112
+ privateConfig.apiUrl = this._restIpList[0];
113
+ }
114
+ return privateConfig;
115
+ }
116
+ }
117
+ }
118
+ exports.FcrChatConnectionImpl = FcrChatConnectionImpl;
@@ -0,0 +1,17 @@
1
+ export interface FcrChatConnection {
2
+ login(): Promise<void>;
3
+ logout(): void;
4
+ getConnectionState(): FcrChatConnectionState;
5
+ getConnectionInstance(): unknown;
6
+ addObserver(observer: FcrChatConnectionObserver): void;
7
+ removeObserver(observer: FcrChatConnectionObserver): void;
8
+ }
9
+ export interface FcrChatConnectionObserver {
10
+ onConnectionStateUpdated(state: FcrChatConnectionState): void;
11
+ onConnectionLoginSuccess(): void;
12
+ }
13
+ export declare enum FcrChatConnectionState {
14
+ DISCONNECTED = 0,
15
+ CONNECTION = 1,
16
+ CONNECTED = 2
17
+ }
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.FcrChatConnectionState = void 0;
7
+ let FcrChatConnectionState = exports.FcrChatConnectionState = /*#__PURE__*/function (FcrChatConnectionState) {
8
+ FcrChatConnectionState[FcrChatConnectionState["DISCONNECTED"] = 0] = "DISCONNECTED";
9
+ FcrChatConnectionState[FcrChatConnectionState["CONNECTION"] = 1] = "CONNECTION";
10
+ FcrChatConnectionState[FcrChatConnectionState["CONNECTED"] = 2] = "CONNECTED";
11
+ return FcrChatConnectionState;
12
+ }({});
@@ -0,0 +1,86 @@
1
+ import { FcrCoreEngineConfig, FcrCoreEngineObserver } from '../type';
2
+ import { FcrMainRoomControl, FcrRoomJoinOptions, FcrWaitingRoomControl } from '../room-control/type';
3
+ import { FcrPeerSessionControl } from '../peer-session/type';
4
+ import { FcrMonitorControl } from '../monitor-control/type';
5
+ import { FcrDesktopMediaControl, FcrMobileMediaControl } from '../media-control/type';
6
+ export declare class FcrCoreEngine {
7
+ constructor(config: FcrCoreEngineConfig);
8
+ /**
9
+ * Releases the engine and all its resources.
10
+ */
11
+ release(): void;
12
+ /**
13
+ * Logins to the RTE service.
14
+ */
15
+ login(): Promise<void>;
16
+ /**
17
+ * Logouts from the RTE service.
18
+ */
19
+ logout(): Promise<void>;
20
+ /**
21
+ * Gets the version of the SDK.
22
+ * @returns The version of the SDK.
23
+ */
24
+ getVersion(): string;
25
+ /**
26
+ * Creates a room control.
27
+ * @param roomId
28
+ * @returns The room control.
29
+ */
30
+ createMainRoomControl(roomId: string): FcrMainRoomControl;
31
+ /**
32
+ * Creates a waiting room control.
33
+ * @param roomId
34
+ * @returns The room control.
35
+ */
36
+ createWaitingRoomControl(roomId: string): FcrWaitingRoomControl;
37
+ /**
38
+ * Creates a main room control or a waiting room control.
39
+ * @param roomId
40
+ * @returns The room control.
41
+ */
42
+ createRoomControlAndJoin: (roomId: string, options: FcrRoomJoinOptions) => Promise<FcrMainRoomControl | FcrWaitingRoomControl>;
43
+ /**
44
+ * Gets the media control.
45
+ * @returns The media control.
46
+ */
47
+ getDesktopMediaControl(): FcrDesktopMediaControl;
48
+ /**
49
+ * Gets the mobile media control.
50
+ * @returns The mobile media control.
51
+ */
52
+ getMobileMediaControl(): FcrMobileMediaControl;
53
+ /**
54
+ * Gets the monitor control.
55
+ * @returns The monitor control.
56
+ */
57
+ getMonitorControl(): FcrMonitorControl;
58
+ /**
59
+ * Gets the peer session control.
60
+ * @returns The peer session control.
61
+ */
62
+ getPeerSessionControl(): FcrPeerSessionControl;
63
+ /**
64
+ * Sends a peer message.
65
+ * @param payload
66
+ * @param guaranteedDelivery
67
+ * @param receiverId
68
+ */
69
+ sendPeerMessage(payload: Record<string, unknown>, guaranteedDelivery: boolean, receiverId: string): Promise<void>;
70
+ /**
71
+ * Sets the parameters.
72
+ * @param parameters
73
+ */
74
+ setParameters(parameters: Record<string, unknown>): void;
75
+ /**
76
+ * Adds an observer.
77
+ * @param observer
78
+ */
79
+ addObserver(observer: FcrCoreEngineObserver): void;
80
+ /**
81
+ * Removes an observer.
82
+ * @param observer
83
+ */
84
+ removeObserver(observer: FcrCoreEngineObserver): void;
85
+ private _addRteEngineObserver;
86
+ }