@webex/plugin-meetings 3.0.0-beta.1 → 3.0.0-beta.104

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 (548) hide show
  1. package/UPGRADING.md +9 -9
  2. package/browsers.js +19 -24
  3. package/dist/annotation/annotation.types.js +7 -0
  4. package/dist/annotation/annotation.types.js.map +1 -0
  5. package/dist/annotation/constants.js +48 -0
  6. package/dist/annotation/constants.js.map +1 -0
  7. package/dist/annotation/index.js +357 -0
  8. package/dist/annotation/index.js.map +1 -0
  9. package/dist/breakouts/breakout.js +176 -0
  10. package/dist/breakouts/breakout.js.map +1 -0
  11. package/dist/breakouts/collection.js +23 -0
  12. package/dist/breakouts/collection.js.map +1 -0
  13. package/dist/breakouts/edit-lock-error.js +52 -0
  14. package/dist/breakouts/edit-lock-error.js.map +1 -0
  15. package/dist/breakouts/events.js +43 -0
  16. package/dist/breakouts/events.js.map +1 -0
  17. package/dist/breakouts/index.js +919 -0
  18. package/dist/breakouts/index.js.map +1 -0
  19. package/dist/breakouts/request.js +78 -0
  20. package/dist/breakouts/request.js.map +1 -0
  21. package/dist/breakouts/utils.js +67 -0
  22. package/dist/breakouts/utils.js.map +1 -0
  23. package/dist/common/browser-detection.js +1 -20
  24. package/dist/common/browser-detection.js.map +1 -1
  25. package/dist/common/collection.js +5 -20
  26. package/dist/common/collection.js.map +1 -1
  27. package/dist/common/config.js +0 -7
  28. package/dist/common/config.js.map +1 -1
  29. package/dist/common/errors/captcha-error.js +10 -24
  30. package/dist/common/errors/captcha-error.js.map +1 -1
  31. package/dist/common/errors/intent-to-join.js +11 -24
  32. package/dist/common/errors/intent-to-join.js.map +1 -1
  33. package/dist/common/errors/join-meeting.js +12 -25
  34. package/dist/common/errors/join-meeting.js.map +1 -1
  35. package/dist/common/errors/media.js +10 -24
  36. package/dist/common/errors/media.js.map +1 -1
  37. package/dist/common/errors/parameter.js +5 -33
  38. package/dist/common/errors/parameter.js.map +1 -1
  39. package/dist/common/errors/password-error.js +10 -24
  40. package/dist/common/errors/password-error.js.map +1 -1
  41. package/dist/common/errors/permission.js +9 -23
  42. package/dist/common/errors/permission.js.map +1 -1
  43. package/dist/common/errors/reconnection-in-progress.js +0 -17
  44. package/dist/common/errors/reconnection-in-progress.js.map +1 -1
  45. package/dist/common/errors/reconnection.js +10 -24
  46. package/dist/common/errors/reconnection.js.map +1 -1
  47. package/dist/common/errors/stats.js +10 -24
  48. package/dist/common/errors/stats.js.map +1 -1
  49. package/dist/common/errors/webex-errors.js +10 -69
  50. package/dist/common/errors/webex-errors.js.map +1 -1
  51. package/dist/common/errors/webex-meetings-error.js +5 -25
  52. package/dist/common/errors/webex-meetings-error.js.map +1 -1
  53. package/dist/common/events/events-scope.js +0 -22
  54. package/dist/common/events/events-scope.js.map +1 -1
  55. package/dist/common/events/events.js +0 -23
  56. package/dist/common/events/events.js.map +1 -1
  57. package/dist/common/events/trigger-proxy.js +0 -12
  58. package/dist/common/events/trigger-proxy.js.map +1 -1
  59. package/dist/common/events/util.js +0 -15
  60. package/dist/common/events/util.js.map +1 -1
  61. package/dist/common/logs/logger-config.js +0 -4
  62. package/dist/common/logs/logger-config.js.map +1 -1
  63. package/dist/common/logs/logger-proxy.js +1 -8
  64. package/dist/common/logs/logger-proxy.js.map +1 -1
  65. package/dist/common/logs/request.js +37 -60
  66. package/dist/common/logs/request.js.map +1 -1
  67. package/dist/common/queue.js +4 -14
  68. package/dist/common/queue.js.map +1 -1
  69. package/dist/config.js +7 -6
  70. package/dist/config.js.map +1 -1
  71. package/dist/constants.js +184 -122
  72. package/dist/constants.js.map +1 -1
  73. package/dist/controls-options-manager/constants.js +14 -0
  74. package/dist/controls-options-manager/constants.js.map +1 -0
  75. package/dist/controls-options-manager/enums.js +25 -0
  76. package/dist/controls-options-manager/enums.js.map +1 -0
  77. package/dist/controls-options-manager/index.js +297 -0
  78. package/dist/controls-options-manager/index.js.map +1 -0
  79. package/dist/controls-options-manager/types.js +7 -0
  80. package/dist/controls-options-manager/types.js.map +1 -0
  81. package/dist/controls-options-manager/util.js +250 -0
  82. package/dist/controls-options-manager/util.js.map +1 -0
  83. package/dist/index.js +72 -17
  84. package/dist/index.js.map +1 -1
  85. package/dist/locus-info/controlsUtils.js +56 -29
  86. package/dist/locus-info/controlsUtils.js.map +1 -1
  87. package/dist/locus-info/embeddedAppsUtils.js +3 -26
  88. package/dist/locus-info/embeddedAppsUtils.js.map +1 -1
  89. package/dist/locus-info/fullState.js +0 -15
  90. package/dist/locus-info/fullState.js.map +1 -1
  91. package/dist/locus-info/hostUtils.js +4 -12
  92. package/dist/locus-info/hostUtils.js.map +1 -1
  93. package/dist/locus-info/index.js +362 -208
  94. package/dist/locus-info/index.js.map +1 -1
  95. package/dist/locus-info/infoUtils.js +3 -37
  96. package/dist/locus-info/infoUtils.js.map +1 -1
  97. package/dist/locus-info/mediaSharesUtils.js +12 -38
  98. package/dist/locus-info/mediaSharesUtils.js.map +1 -1
  99. package/dist/locus-info/parser.js +92 -118
  100. package/dist/locus-info/parser.js.map +1 -1
  101. package/dist/locus-info/selfUtils.js +99 -91
  102. package/dist/locus-info/selfUtils.js.map +1 -1
  103. package/dist/media/index.js +113 -337
  104. package/dist/media/index.js.map +1 -1
  105. package/dist/media/properties.js +96 -135
  106. package/dist/media/properties.js.map +1 -1
  107. package/dist/media/util.js +1 -35
  108. package/dist/media/util.js.map +1 -1
  109. package/dist/mediaQualityMetrics/config.js +505 -495
  110. package/dist/mediaQualityMetrics/config.js.map +1 -1
  111. package/dist/meeting/in-meeting-actions.js +59 -14
  112. package/dist/meeting/in-meeting-actions.js.map +1 -1
  113. package/dist/meeting/index.js +2909 -2398
  114. package/dist/meeting/index.js.map +1 -1
  115. package/dist/meeting/muteState.js +257 -112
  116. package/dist/meeting/muteState.js.map +1 -1
  117. package/dist/meeting/request.js +330 -264
  118. package/dist/meeting/request.js.map +1 -1
  119. package/dist/meeting/request.type.js +7 -0
  120. package/dist/meeting/request.type.js.map +1 -0
  121. package/dist/meeting/state.js +21 -31
  122. package/dist/meeting/state.js.map +1 -1
  123. package/dist/meeting/util.js +63 -261
  124. package/dist/meeting/util.js.map +1 -1
  125. package/dist/meeting-info/collection.js +6 -25
  126. package/dist/meeting-info/collection.js.map +1 -1
  127. package/dist/meeting-info/index.js +14 -32
  128. package/dist/meeting-info/index.js.map +1 -1
  129. package/dist/meeting-info/meeting-info-v2.js +273 -280
  130. package/dist/meeting-info/meeting-info-v2.js.map +1 -1
  131. package/dist/meeting-info/request.js +3 -15
  132. package/dist/meeting-info/request.js.map +1 -1
  133. package/dist/meeting-info/util.js +98 -183
  134. package/dist/meeting-info/util.js.map +1 -1
  135. package/dist/meeting-info/utilv2.js +155 -232
  136. package/dist/meeting-info/utilv2.js.map +1 -1
  137. package/dist/meetings/collection.js +26 -19
  138. package/dist/meetings/collection.js.map +1 -1
  139. package/dist/meetings/index.js +741 -548
  140. package/dist/meetings/index.js.map +1 -1
  141. package/dist/meetings/request.js +26 -41
  142. package/dist/meetings/request.js.map +1 -1
  143. package/dist/meetings/util.js +194 -149
  144. package/dist/meetings/util.js.map +1 -1
  145. package/dist/member/index.js +100 -85
  146. package/dist/member/index.js.map +1 -1
  147. package/dist/member/types.js +15 -0
  148. package/dist/member/types.js.map +1 -0
  149. package/dist/member/util.js +90 -68
  150. package/dist/member/util.js.map +1 -1
  151. package/dist/members/collection.js +13 -12
  152. package/dist/members/collection.js.map +1 -1
  153. package/dist/members/index.js +227 -188
  154. package/dist/members/index.js.map +1 -1
  155. package/dist/members/request.js +54 -39
  156. package/dist/members/request.js.map +1 -1
  157. package/dist/members/types.js +15 -0
  158. package/dist/members/types.js.map +1 -0
  159. package/dist/members/util.js +107 -44
  160. package/dist/members/util.js.map +1 -1
  161. package/dist/metrics/config.js +5 -14
  162. package/dist/metrics/config.js.map +1 -1
  163. package/dist/metrics/constants.js +3 -7
  164. package/dist/metrics/constants.js.map +1 -1
  165. package/dist/metrics/index.js +67 -159
  166. package/dist/metrics/index.js.map +1 -1
  167. package/dist/multistream/mediaRequestManager.js +250 -0
  168. package/dist/multistream/mediaRequestManager.js.map +1 -0
  169. package/dist/multistream/receiveSlot.js +202 -0
  170. package/dist/multistream/receiveSlot.js.map +1 -0
  171. package/dist/multistream/receiveSlotManager.js +176 -0
  172. package/dist/multistream/receiveSlotManager.js.map +1 -0
  173. package/dist/multistream/remoteMedia.js +270 -0
  174. package/dist/multistream/remoteMedia.js.map +1 -0
  175. package/dist/multistream/remoteMediaGroup.js +209 -0
  176. package/dist/multistream/remoteMediaGroup.js.map +1 -0
  177. package/dist/multistream/remoteMediaManager.js +1137 -0
  178. package/dist/multistream/remoteMediaManager.js.map +1 -0
  179. package/dist/networkQualityMonitor/index.js +40 -59
  180. package/dist/networkQualityMonitor/index.js.map +1 -1
  181. package/dist/personal-meeting-room/index.js +21 -45
  182. package/dist/personal-meeting-room/index.js.map +1 -1
  183. package/dist/personal-meeting-room/request.js +1 -31
  184. package/dist/personal-meeting-room/request.js.map +1 -1
  185. package/dist/personal-meeting-room/util.js +0 -13
  186. package/dist/personal-meeting-room/util.js.map +1 -1
  187. package/dist/reachability/index.js +192 -191
  188. package/dist/reachability/index.js.map +1 -1
  189. package/dist/reachability/request.js +15 -23
  190. package/dist/reachability/request.js.map +1 -1
  191. package/dist/reactions/constants.js +13 -0
  192. package/dist/reactions/constants.js.map +1 -0
  193. package/dist/reactions/reactions.js +109 -0
  194. package/dist/reactions/reactions.js.map +1 -0
  195. package/dist/reactions/reactions.type.js +36 -0
  196. package/dist/reactions/reactions.type.js.map +1 -0
  197. package/dist/reconnection-manager/index.js +386 -527
  198. package/dist/reconnection-manager/index.js.map +1 -1
  199. package/dist/recording-controller/enums.js +17 -0
  200. package/dist/recording-controller/enums.js.map +1 -0
  201. package/dist/recording-controller/index.js +343 -0
  202. package/dist/recording-controller/index.js.map +1 -0
  203. package/dist/recording-controller/util.js +63 -0
  204. package/dist/recording-controller/util.js.map +1 -0
  205. package/dist/roap/index.js +84 -286
  206. package/dist/roap/index.js.map +1 -1
  207. package/dist/roap/request.js +138 -238
  208. package/dist/roap/request.js.map +1 -1
  209. package/dist/roap/turnDiscovery.js +164 -102
  210. package/dist/roap/turnDiscovery.js.map +1 -1
  211. package/dist/statsAnalyzer/global.js +1 -93
  212. package/dist/statsAnalyzer/global.js.map +1 -1
  213. package/dist/statsAnalyzer/index.js +399 -470
  214. package/dist/statsAnalyzer/index.js.map +1 -1
  215. package/dist/statsAnalyzer/mqaUtil.js +143 -87
  216. package/dist/statsAnalyzer/mqaUtil.js.map +1 -1
  217. package/dist/transcription/index.js +22 -47
  218. package/dist/transcription/index.js.map +1 -1
  219. package/dist/types/annotation/annotation.types.d.ts +34 -0
  220. package/dist/types/annotation/constants.d.ts +31 -0
  221. package/dist/types/annotation/index.d.ts +124 -0
  222. package/dist/types/breakouts/breakout.d.ts +8 -0
  223. package/dist/types/breakouts/collection.d.ts +5 -0
  224. package/dist/types/breakouts/edit-lock-error.d.ts +15 -0
  225. package/dist/types/breakouts/events.d.ts +2 -0
  226. package/dist/types/breakouts/index.d.ts +5 -0
  227. package/dist/types/breakouts/request.d.ts +22 -0
  228. package/dist/types/breakouts/utils.d.ts +15 -0
  229. package/dist/types/common/browser-detection.d.ts +9 -0
  230. package/dist/types/common/collection.d.ts +48 -0
  231. package/dist/types/common/config.d.ts +2 -0
  232. package/dist/types/common/errors/captcha-error.d.ts +15 -0
  233. package/dist/types/common/errors/intent-to-join.d.ts +16 -0
  234. package/dist/types/common/errors/join-meeting.d.ts +17 -0
  235. package/dist/types/common/errors/media.d.ts +15 -0
  236. package/dist/types/common/errors/parameter.d.ts +15 -0
  237. package/dist/types/common/errors/password-error.d.ts +15 -0
  238. package/dist/types/common/errors/permission.d.ts +14 -0
  239. package/dist/types/common/errors/reconnection-in-progress.d.ts +9 -0
  240. package/dist/types/common/errors/reconnection.d.ts +15 -0
  241. package/dist/types/common/errors/stats.d.ts +15 -0
  242. package/dist/types/common/errors/webex-errors.d.ts +69 -0
  243. package/dist/types/common/errors/webex-meetings-error.d.ts +20 -0
  244. package/dist/types/common/events/events-scope.d.ts +17 -0
  245. package/dist/types/common/events/events.d.ts +12 -0
  246. package/dist/types/common/events/trigger-proxy.d.ts +2 -0
  247. package/dist/types/common/events/util.d.ts +2 -0
  248. package/dist/types/common/logs/logger-config.d.ts +2 -0
  249. package/dist/types/common/logs/logger-proxy.d.ts +2 -0
  250. package/dist/types/common/logs/request.d.ts +34 -0
  251. package/dist/types/common/queue.d.ts +32 -0
  252. package/dist/types/config.d.ts +78 -0
  253. package/dist/types/constants.d.ts +968 -0
  254. package/dist/types/controls-options-manager/constants.d.ts +4 -0
  255. package/dist/types/controls-options-manager/enums.d.ts +13 -0
  256. package/dist/types/controls-options-manager/index.d.ts +136 -0
  257. package/dist/types/controls-options-manager/types.d.ts +37 -0
  258. package/dist/types/controls-options-manager/util.d.ts +1 -0
  259. package/dist/types/index.d.ts +7 -0
  260. package/dist/types/locus-info/controlsUtils.d.ts +2 -0
  261. package/dist/types/locus-info/embeddedAppsUtils.d.ts +2 -0
  262. package/dist/types/locus-info/fullState.d.ts +2 -0
  263. package/dist/types/locus-info/hostUtils.d.ts +2 -0
  264. package/dist/types/locus-info/index.d.ts +315 -0
  265. package/dist/types/locus-info/infoUtils.d.ts +2 -0
  266. package/dist/types/locus-info/mediaSharesUtils.d.ts +2 -0
  267. package/dist/types/locus-info/parser.d.ts +212 -0
  268. package/dist/types/locus-info/selfUtils.d.ts +2 -0
  269. package/dist/types/media/index.d.ts +34 -0
  270. package/dist/types/media/properties.d.ts +108 -0
  271. package/dist/types/media/util.d.ts +2 -0
  272. package/dist/types/mediaQualityMetrics/config.d.ts +365 -0
  273. package/dist/types/meeting/in-meeting-actions.d.ts +129 -0
  274. package/dist/types/meeting/index.d.ts +1748 -0
  275. package/dist/types/meeting/muteState.d.ts +185 -0
  276. package/dist/types/meeting/request.d.ts +275 -0
  277. package/dist/types/meeting/request.type.d.ts +11 -0
  278. package/dist/types/meeting/state.d.ts +9 -0
  279. package/dist/types/meeting/util.d.ts +2 -0
  280. package/dist/types/meeting-info/collection.d.ts +20 -0
  281. package/dist/types/meeting-info/index.d.ts +57 -0
  282. package/dist/types/meeting-info/meeting-info-v2.d.ts +112 -0
  283. package/dist/types/meeting-info/request.d.ts +22 -0
  284. package/dist/types/meeting-info/util.d.ts +2 -0
  285. package/dist/types/meeting-info/utilv2.d.ts +2 -0
  286. package/dist/types/meetings/collection.d.ts +31 -0
  287. package/dist/types/meetings/index.d.ts +345 -0
  288. package/dist/types/meetings/request.d.ts +27 -0
  289. package/dist/types/meetings/util.d.ts +18 -0
  290. package/dist/types/member/index.d.ts +156 -0
  291. package/dist/types/member/types.d.ts +21 -0
  292. package/dist/types/member/util.d.ts +2 -0
  293. package/dist/types/members/collection.d.ts +29 -0
  294. package/dist/types/members/index.d.ts +353 -0
  295. package/dist/types/members/request.d.ts +69 -0
  296. package/dist/types/members/types.d.ts +24 -0
  297. package/dist/types/members/util.d.ts +2 -0
  298. package/dist/types/metrics/config.d.ts +172 -0
  299. package/dist/types/metrics/constants.d.ts +54 -0
  300. package/dist/types/metrics/index.d.ts +152 -0
  301. package/dist/types/multistream/mediaRequestManager.d.ts +101 -0
  302. package/dist/types/multistream/receiveSlot.d.ts +68 -0
  303. package/dist/types/multistream/receiveSlotManager.d.ts +56 -0
  304. package/dist/types/multistream/remoteMedia.d.ts +72 -0
  305. package/dist/types/multistream/remoteMediaGroup.d.ts +47 -0
  306. package/dist/types/multistream/remoteMediaManager.d.ts +263 -0
  307. package/dist/types/networkQualityMonitor/index.d.ts +70 -0
  308. package/dist/types/personal-meeting-room/index.d.ts +47 -0
  309. package/dist/types/personal-meeting-room/request.d.ts +14 -0
  310. package/dist/types/personal-meeting-room/util.d.ts +2 -0
  311. package/dist/types/reachability/index.d.ts +152 -0
  312. package/dist/types/reachability/request.d.ts +37 -0
  313. package/dist/types/reactions/constants.d.ts +3 -0
  314. package/dist/types/reactions/reactions.d.ts +4 -0
  315. package/dist/types/reactions/reactions.type.d.ts +52 -0
  316. package/dist/types/reconnection-manager/index.d.ts +126 -0
  317. package/dist/types/recording-controller/enums.d.ts +7 -0
  318. package/dist/types/recording-controller/index.d.ts +193 -0
  319. package/dist/types/recording-controller/util.d.ts +13 -0
  320. package/dist/types/roap/index.d.ts +77 -0
  321. package/dist/types/roap/request.d.ts +38 -0
  322. package/dist/types/roap/turnDiscovery.d.ts +88 -0
  323. package/dist/types/statsAnalyzer/global.d.ts +36 -0
  324. package/dist/types/statsAnalyzer/index.d.ts +200 -0
  325. package/dist/types/statsAnalyzer/mqaUtil.d.ts +24 -0
  326. package/dist/types/transcription/index.d.ts +64 -0
  327. package/internal-README.md +7 -6
  328. package/package.json +29 -21
  329. package/src/annotation/annotation.types.ts +41 -0
  330. package/src/annotation/constants.ts +36 -0
  331. package/src/annotation/index.ts +339 -0
  332. package/src/breakouts/README.md +219 -0
  333. package/src/breakouts/breakout.ts +141 -0
  334. package/src/breakouts/collection.ts +19 -0
  335. package/src/breakouts/edit-lock-error.ts +25 -0
  336. package/src/breakouts/events.ts +37 -0
  337. package/src/breakouts/index.ts +823 -0
  338. package/src/breakouts/request.ts +55 -0
  339. package/src/breakouts/utils.ts +57 -0
  340. package/src/common/{browser-detection.js → browser-detection.ts} +9 -6
  341. package/src/common/collection.ts +9 -7
  342. package/src/common/{config.js → config.ts} +1 -1
  343. package/src/common/errors/{captcha-error.js → captcha-error.ts} +11 -7
  344. package/src/common/errors/{intent-to-join.js → intent-to-join.ts} +12 -7
  345. package/src/common/errors/{join-meeting.js → join-meeting.ts} +17 -8
  346. package/src/common/errors/{media.js → media.ts} +11 -7
  347. package/src/common/errors/parameter.ts +11 -7
  348. package/src/common/errors/{password-error.js → password-error.ts} +11 -7
  349. package/src/common/errors/{permission.js → permission.ts} +10 -6
  350. package/src/common/errors/{reconnection.js → reconnection.ts} +11 -7
  351. package/src/common/errors/{stats.js → stats.ts} +11 -7
  352. package/src/common/errors/{webex-errors.js → webex-errors.ts} +8 -25
  353. package/src/common/errors/{webex-meetings-error.js → webex-meetings-error.ts} +4 -2
  354. package/src/common/events/{events-scope.js → events-scope.ts} +6 -2
  355. package/src/common/events/{events.js → events.ts} +5 -1
  356. package/src/common/events/{trigger-proxy.js → trigger-proxy.ts} +9 -5
  357. package/src/common/events/{util.js → util.ts} +2 -3
  358. package/src/common/logs/{logger-config.js → logger-config.ts} +1 -2
  359. package/src/common/logs/logger-proxy.ts +44 -0
  360. package/src/common/logs/{request.js → request.ts} +22 -9
  361. package/src/common/queue.ts +1 -2
  362. package/src/{config.js → config.ts} +18 -12
  363. package/src/constants.ts +256 -183
  364. package/src/controls-options-manager/constants.ts +5 -0
  365. package/src/controls-options-manager/enums.ts +16 -0
  366. package/src/controls-options-manager/index.ts +278 -0
  367. package/src/controls-options-manager/types.ts +49 -0
  368. package/src/controls-options-manager/util.ts +229 -0
  369. package/src/index.ts +33 -0
  370. package/src/locus-info/controlsUtils.ts +169 -0
  371. package/src/locus-info/{embeddedAppsUtils.js → embeddedAppsUtils.ts} +5 -6
  372. package/src/locus-info/{fullState.js → fullState.ts} +16 -12
  373. package/src/locus-info/{hostUtils.js → hostUtils.ts} +9 -8
  374. package/src/locus-info/{index.js → index.ts} +331 -80
  375. package/src/locus-info/{infoUtils.js → infoUtils.ts} +19 -8
  376. package/src/locus-info/{mediaSharesUtils.js → mediaSharesUtils.ts} +17 -17
  377. package/src/locus-info/{parser.js → parser.ts} +67 -79
  378. package/src/locus-info/{selfUtils.js → selfUtils.ts} +196 -67
  379. package/src/media/index.ts +488 -0
  380. package/src/media/{properties.js → properties.ts} +67 -54
  381. package/src/media/util.ts +16 -0
  382. package/src/mediaQualityMetrics/config.ts +384 -0
  383. package/src/meeting/in-meeting-actions.ts +123 -3
  384. package/src/meeting/{index.js → index.ts} +3334 -1775
  385. package/src/meeting/muteState.ts +526 -0
  386. package/src/meeting/{request.js → request.ts} +350 -142
  387. package/src/meeting/request.type.ts +13 -0
  388. package/src/meeting/{state.js → state.ts} +50 -35
  389. package/src/meeting/{util.js → util.ts} +126 -159
  390. package/src/meeting-info/{collection.js → collection.ts} +6 -2
  391. package/src/meeting-info/{index.js → index.ts} +42 -36
  392. package/src/meeting-info/meeting-info-v2.ts +345 -0
  393. package/src/meeting-info/{request.js → request.ts} +14 -4
  394. package/src/meeting-info/{util.js → util.ts} +60 -51
  395. package/src/meeting-info/{utilv2.js → utilv2.ts} +76 -60
  396. package/src/meetings/{collection.js → collection.ts} +26 -3
  397. package/src/meetings/index.ts +1394 -0
  398. package/src/meetings/{request.js → request.ts} +34 -25
  399. package/src/meetings/util.ts +288 -0
  400. package/src/member/{index.js → index.ts} +124 -56
  401. package/src/member/types.ts +24 -0
  402. package/src/member/{util.js → util.ts} +105 -25
  403. package/src/members/{collection.js → collection.ts} +10 -2
  404. package/src/members/{index.js → index.ts} +359 -139
  405. package/src/members/request.ts +215 -0
  406. package/src/members/types.ts +28 -0
  407. package/src/members/{util.js → util.ts} +145 -54
  408. package/src/metrics/{config.js → config.ts} +256 -92
  409. package/src/metrics/{constants.js → constants.ts} +1 -6
  410. package/src/metrics/{index.js → index.ts} +116 -97
  411. package/src/multistream/mediaRequestManager.ts +324 -0
  412. package/src/multistream/receiveSlot.ts +184 -0
  413. package/src/multistream/receiveSlotManager.ts +166 -0
  414. package/src/multistream/remoteMedia.ts +254 -0
  415. package/src/multistream/remoteMediaGroup.ts +225 -0
  416. package/src/multistream/remoteMediaManager.ts +1075 -0
  417. package/src/networkQualityMonitor/{index.js → index.ts} +41 -29
  418. package/src/personal-meeting-room/{index.js → index.ts} +28 -19
  419. package/src/personal-meeting-room/{request.js → request.ts} +13 -4
  420. package/src/personal-meeting-room/{util.js → util.ts} +4 -4
  421. package/src/reachability/{index.js → index.ts} +157 -94
  422. package/src/reachability/request.ts +46 -35
  423. package/src/reactions/constants.ts +4 -0
  424. package/src/reactions/reactions.ts +104 -0
  425. package/src/reactions/reactions.type.ts +62 -0
  426. package/src/reconnection-manager/{index.js → index.ts} +261 -163
  427. package/src/recording-controller/enums.ts +8 -0
  428. package/src/recording-controller/index.ts +315 -0
  429. package/src/recording-controller/util.ts +58 -0
  430. package/src/roap/index.ts +241 -0
  431. package/src/roap/request.ts +172 -0
  432. package/src/roap/turnDiscovery.ts +127 -53
  433. package/src/statsAnalyzer/global.ts +37 -0
  434. package/src/statsAnalyzer/index.ts +1273 -0
  435. package/src/statsAnalyzer/mqaUtil.ts +291 -0
  436. package/src/transcription/{index.js → index.ts} +46 -39
  437. package/test/integration/spec/converged-space-meetings.js +177 -0
  438. package/test/integration/spec/journey.js +666 -464
  439. package/test/integration/spec/space-meeting.js +321 -206
  440. package/test/integration/spec/transcription.js +7 -8
  441. package/test/unit/spec/annotation/index.ts +435 -0
  442. package/test/unit/spec/breakouts/breakout.ts +184 -0
  443. package/test/unit/spec/breakouts/collection.ts +15 -0
  444. package/test/unit/spec/breakouts/edit-lock-error.ts +30 -0
  445. package/test/unit/spec/breakouts/events.ts +77 -0
  446. package/test/unit/spec/breakouts/index.ts +1504 -0
  447. package/test/unit/spec/breakouts/request.ts +104 -0
  448. package/test/unit/spec/breakouts/utils.js +72 -0
  449. package/test/unit/spec/common/browser-detection.js +9 -28
  450. package/test/unit/spec/controls-options-manager/index.js +287 -0
  451. package/test/unit/spec/controls-options-manager/util.js +403 -0
  452. package/test/unit/spec/fixture/locus.js +92 -90
  453. package/test/unit/spec/locus-info/controlsUtils.js +177 -32
  454. package/test/unit/spec/locus-info/embeddedAppsUtils.js +8 -6
  455. package/test/unit/spec/locus-info/index.js +493 -3
  456. package/test/unit/spec/locus-info/infoUtils.js +41 -32
  457. package/test/unit/spec/locus-info/lib/BasicSeqCmp.json +88 -430
  458. package/test/unit/spec/locus-info/lib/SeqCmp.json +513 -685
  459. package/test/unit/spec/locus-info/parser.js +3 -9
  460. package/test/unit/spec/locus-info/selfConstant.js +110 -103
  461. package/test/unit/spec/locus-info/selfUtils.js +236 -12
  462. package/test/unit/spec/media/index.ts +303 -0
  463. package/test/unit/spec/media/properties.ts +73 -82
  464. package/test/unit/spec/meeting/in-meeting-actions.ts +58 -3
  465. package/test/unit/spec/meeting/index.js +3127 -975
  466. package/test/unit/spec/meeting/muteState.js +375 -70
  467. package/test/unit/spec/meeting/request.js +217 -43
  468. package/test/unit/spec/meeting/utils.js +205 -163
  469. package/test/unit/spec/meeting-info/meetinginfov2.js +268 -74
  470. package/test/unit/spec/meeting-info/request.js +7 -9
  471. package/test/unit/spec/meeting-info/util.js +11 -12
  472. package/test/unit/spec/meeting-info/utilv2.js +131 -74
  473. package/test/unit/spec/meetings/collection.js +15 -1
  474. package/test/unit/spec/meetings/index.js +1052 -333
  475. package/test/unit/spec/meetings/utils.js +163 -14
  476. package/test/unit/spec/member/index.js +24 -1
  477. package/test/unit/spec/member/util.js +359 -32
  478. package/test/unit/spec/members/index.js +547 -37
  479. package/test/unit/spec/members/request.js +76 -20
  480. package/test/unit/spec/members/utils.js +191 -4
  481. package/test/unit/spec/metrics/index.js +46 -20
  482. package/test/unit/spec/multistream/mediaRequestManager.ts +1060 -0
  483. package/test/unit/spec/multistream/receiveSlot.ts +163 -0
  484. package/test/unit/spec/multistream/receiveSlotManager.ts +203 -0
  485. package/test/unit/spec/multistream/remoteMedia.ts +255 -0
  486. package/test/unit/spec/multistream/remoteMediaGroup.ts +396 -0
  487. package/test/unit/spec/multistream/remoteMediaManager.ts +1793 -0
  488. package/test/unit/spec/networkQualityMonitor/index.js +24 -18
  489. package/test/unit/spec/personal-meeting-room/personal-meeting-room.js +2 -7
  490. package/test/unit/spec/reachability/index.ts +176 -27
  491. package/test/unit/spec/reachability/request.js +66 -0
  492. package/test/unit/spec/reconnection-manager/index.js +106 -9
  493. package/test/unit/spec/recording-controller/index.js +231 -0
  494. package/test/unit/spec/recording-controller/util.js +102 -0
  495. package/test/unit/spec/roap/index.ts +78 -45
  496. package/test/unit/spec/roap/request.ts +217 -0
  497. package/test/unit/spec/roap/turnDiscovery.ts +93 -49
  498. package/test/unit/spec/stats-analyzer/index.js +118 -65
  499. package/test/utils/cmr.js +44 -42
  500. package/test/utils/constants.js +9 -0
  501. package/test/utils/integrationTestUtils.js +64 -0
  502. package/test/utils/testUtils.js +63 -99
  503. package/test/utils/webex-config.js +22 -18
  504. package/test/utils/webex-test-users.js +57 -50
  505. package/tsconfig.json +6 -0
  506. package/dist/meeting/effectsState.js +0 -327
  507. package/dist/meeting/effectsState.js.map +0 -1
  508. package/dist/peer-connection-manager/index.js +0 -794
  509. package/dist/peer-connection-manager/index.js.map +0 -1
  510. package/dist/peer-connection-manager/util.js +0 -124
  511. package/dist/peer-connection-manager/util.js.map +0 -1
  512. package/dist/roap/collection.js +0 -73
  513. package/dist/roap/collection.js.map +0 -1
  514. package/dist/roap/handler.js +0 -337
  515. package/dist/roap/handler.js.map +0 -1
  516. package/dist/roap/state.js +0 -164
  517. package/dist/roap/state.js.map +0 -1
  518. package/dist/roap/util.js +0 -102
  519. package/dist/roap/util.js.map +0 -1
  520. package/src/common/logs/logger-proxy.js +0 -33
  521. package/src/index.js +0 -15
  522. package/src/locus-info/controlsUtils.js +0 -102
  523. package/src/media/index.js +0 -593
  524. package/src/media/util.js +0 -38
  525. package/src/mediaQualityMetrics/config.js +0 -382
  526. package/src/meeting/effectsState.js +0 -205
  527. package/src/meeting/muteState.js +0 -318
  528. package/src/meeting-info/meeting-info-v2.js +0 -255
  529. package/src/meetings/index.js +0 -986
  530. package/src/meetings/util.js +0 -176
  531. package/src/members/request.js +0 -131
  532. package/src/peer-connection-manager/index.js +0 -723
  533. package/src/peer-connection-manager/util.ts +0 -117
  534. package/src/roap/collection.js +0 -63
  535. package/src/roap/handler.js +0 -252
  536. package/src/roap/index.js +0 -380
  537. package/src/roap/request.js +0 -198
  538. package/src/roap/state.js +0 -149
  539. package/src/roap/util.js +0 -93
  540. package/src/statsAnalyzer/global.js +0 -131
  541. package/src/statsAnalyzer/index.js +0 -1020
  542. package/src/statsAnalyzer/mqaUtil.js +0 -173
  543. package/test/unit/spec/meeting/effectsState.js +0 -293
  544. package/test/unit/spec/peerconnection-manager/index.js +0 -188
  545. package/test/unit/spec/peerconnection-manager/utils.js +0 -48
  546. package/test/unit/spec/peerconnection-manager/utils.test-fixtures.ts +0 -389
  547. package/test/unit/spec/roap/util.js +0 -30
  548. /package/src/common/errors/{reconnection-in-progress.js → reconnection-in-progress.ts} +0 -0
@@ -0,0 +1,1748 @@
1
+ /// <reference types="node" />
2
+ import { StatelessWebexPlugin } from '@webex/webex-core';
3
+ import { LocalTrack, LocalCameraTrack, LocalDisplayTrack, LocalMicrophoneTrack, TrackMuteEvent } from '@webex/media-helpers';
4
+ import { StatsAnalyzer } from '../statsAnalyzer';
5
+ import NetworkQualityMonitor from '../networkQualityMonitor';
6
+ import Roap from '../roap/index';
7
+ import MediaProperties from '../media/properties';
8
+ import ReconnectionManager from '../reconnection-manager';
9
+ import MeetingRequest from './request';
10
+ import Members from '../members/index';
11
+ import Transcription from '../transcription';
12
+ import { ReceiveSlotManager } from '../multistream/receiveSlotManager';
13
+ import { MediaRequestManager } from '../multistream/mediaRequestManager';
14
+ import { RemoteMediaManager } from '../multistream/remoteMediaManager';
15
+ import { ReactionServerType, SkinToneType } from '../reactions/reactions.type';
16
+ import InMeetingActions from './in-meeting-actions';
17
+ import RecordingController from '../recording-controller';
18
+ import ControlsOptionsManager from '../controls-options-manager';
19
+ export declare const MEDIA_UPDATE_TYPE: {
20
+ ALL: string;
21
+ AUDIO: string;
22
+ VIDEO: string;
23
+ SHARE: string;
24
+ LAMBDA: string;
25
+ };
26
+ /**
27
+ * MediaDirection
28
+ * @typedef {Object} MediaDirection
29
+ * @property {boolean} sendAudio
30
+ * @property {boolean} receiveAudio
31
+ * @property {boolean} sendVideo
32
+ * @property {boolean} receiveVideo
33
+ * @property {boolean} sendShare
34
+ * @property {boolean} receiveShare
35
+ * @property {boolean} isSharing
36
+ */
37
+ /**
38
+ * AudioVideo
39
+ * @typedef {Object} AudioVideo
40
+ * @property {Object} audio
41
+ * @property {String} audio.deviceId
42
+ * @property {Object} video
43
+ * @property {String} video.deviceId
44
+ * @property {String} video.localVideoQuality // [240p, 360p, 480p, 720p, 1080p]
45
+ */
46
+ /**
47
+ * SharePreferences
48
+ * @typedef {Object} SharePreferences
49
+ * @property {Object} [shareConstraints]
50
+ * @property {Boolean} [highFrameRate]
51
+ */
52
+ /**
53
+ * JoinOptions
54
+ * @typedef {Object} JoinOptions
55
+ * @property {String} [resourceId]
56
+ * @property {String} [pin]
57
+ * @property {Boolean} [moderator]
58
+ * @property {String|Object} [meetingQuality]
59
+ * @property {String} [meetingQuality.local]
60
+ * @property {String} [meetingQuality.remote]
61
+ * @property {Boolean} [rejoin]
62
+ * @property {Boolean} [enableMultistream]
63
+ * @property {String} [correlationId]
64
+ */
65
+ /**
66
+ * SendOptions
67
+ * @typedef {Object} SendOptions
68
+ * @property {Boolean} sendAudio
69
+ * @property {Boolean} sendVideo
70
+ * @property {Boolean} sendShare
71
+ */
72
+ /**
73
+ * Recording
74
+ * @typedef {Object} Recording
75
+ * @property {Object} state
76
+ * @property {String} modifiedBy
77
+ */
78
+ /**
79
+ * Meeting State Change Event
80
+ * Emitted when ever there is a meeting state change
81
+ * @event meeting:stateChange
82
+ * @instance
83
+ * @type {Object}
84
+ * @property {String} currentState current state of the meeting
85
+ * @property {String} previousState previous state of the meeting
86
+ * @memberof Meeting
87
+ */
88
+ /**
89
+ * Media Ready Event
90
+ * Emitted when a stream is ready to be rendered
91
+ * @event media:ready
92
+ * @instance
93
+ * @type {Object}
94
+ * @property {MediaStream} stream the media stream
95
+ * @property {String} type what type of stream, remote, local
96
+ * @memberof Meeting
97
+ */
98
+ /**
99
+ * Media Stopped Event
100
+ * Emitted when a stream has stopped sending
101
+ * @event media:stopped
102
+ * @instance
103
+ * @type {Object}
104
+ * @property {String} type what type of stream, remote, local
105
+ * @memberof Meeting
106
+ */
107
+ /**
108
+ * Meeting Ringing Event
109
+ * Emitted when this client should play a ringing sound, because this member is getting an incoming meeting
110
+ * or sending out an incoming meeting
111
+ * @event meeting:ringing
112
+ * @instance
113
+ * @type {Object}
114
+ * @property {String} type // INCOMING or JOIN
115
+ * @property {String} id
116
+ * @memberof Meeting
117
+ */
118
+ /**
119
+ * Meeting Ringing Stop Event
120
+ * Emitted when this client should stop playing a ringing sound
121
+ * @event meeting:ringingStop
122
+ * @instance
123
+ * @type {Object}
124
+ * @property {Object} type
125
+ * @property {Boolean} type.remoteAnswered
126
+ * @property {Boolean} type.remoteDeclined
127
+ * @property {String} id
128
+ * @memberof Meeting
129
+ */
130
+ /**
131
+ * Meeting Started Sharing Local Event
132
+ * Emitted when this member starts sharing
133
+ * @event meeting:startedSharingLocal
134
+ * @instance
135
+ * @type {Object}
136
+ * @memberof Meeting
137
+ */
138
+ /**
139
+ * Meeting Stopped Sharing Local Event
140
+ * Emitted when this member stops sharing
141
+ * @event meeting:stoppedSharingLocal
142
+ * @instance
143
+ * @type {Object}
144
+ * @memberof Meeting
145
+ */
146
+ /**
147
+ * Meeting Started Sharing Remote Event
148
+ * Emitted when remote sharing starts
149
+ * @event meeting:startedSharingRemote
150
+ * @instance
151
+ * @type {Object}
152
+ * @property {Boolean} memberId id of the meeting member that started screen share
153
+ * @memberof Meeting
154
+ */
155
+ /**
156
+ * Meeting Stopped Sharing Remote Event
157
+ * Emitted when remote screen sharing ends
158
+ * @event meeting:stoppedSharingRemote
159
+ * @instance
160
+ * @type {Object}
161
+ * @memberof Meeting
162
+ */
163
+ /**
164
+ * Meeting Locked Event
165
+ * Emitted when a meeting is locked
166
+ * @event meeting:locked
167
+ * @instance
168
+ * @type {Object}
169
+ * @property {Object} info
170
+ * @memberof Meeting
171
+ */
172
+ /**
173
+ * Meeting Unlocked Event
174
+ * Emitted when a meeting is unlocked
175
+ * @event meeting:unlocked
176
+ * @instance
177
+ * @type {Object}
178
+ * @property {Object} info
179
+ * @memberof Meeting
180
+ */
181
+ /**
182
+ * Meeting Actions Update Event
183
+ * Emitted when a user can take actions on a meeting such as lock, unlock, assign host
184
+ * @event meeting:actionsUpdate
185
+ * @instance
186
+ * @type {Object}
187
+ * @property {Boolean} canLock
188
+ * @property {Boolean} canUnlock
189
+ * @property {Boolean} canAssignHost
190
+ * @memberof Meeting
191
+ */
192
+ /**
193
+ * Meeting Unmuted By Others Event
194
+ * Emitted when a member is unmuted by another member
195
+ * @event meeting:self:unmutedByOthers
196
+ * @instance
197
+ * @type {Object}
198
+ * @property {Object} payload
199
+ * @memberof Meeting
200
+ */
201
+ /**
202
+ * Meeting Muted By Others Event
203
+ * Emitted when a member is muted by another member
204
+ * @event meeting:self:mutedByOthers
205
+ * @instance
206
+ * @type {Object}
207
+ * @property {Object} payload
208
+ * @property {Boolean} payload.unmuteAllowed - whether the user is allowed to unmute self
209
+ * @memberof Meeting
210
+ */
211
+ /**
212
+ * Meeting Muted By Others Event
213
+ * Emitted when the host(moderator)/co-host requests a user to unmute
214
+ * @event meeting:self:requestedToUnmute
215
+ * @instance
216
+ * @type {Object}
217
+ * @property {Object} payload
218
+ * @memberof Meeting
219
+ */
220
+ /**
221
+ * Meeting Self Guest Admitted Event
222
+ * Emitted when a joined user get admitted to the meeting by another member or host
223
+ * @event meeting:self:guestAdmitted
224
+ * @instance
225
+ * @type {Object}
226
+ * @property {Object} payload
227
+ * @memberof Meeting
228
+ */
229
+ /**
230
+ * Meeting Self Lobby Waiting Event
231
+ * Emitted when joined user enters the lobby and is waiting for the webex meeting to begin
232
+ * @event meeting:self:lobbyWaiting
233
+ * @instance
234
+ * @type {Object}
235
+ * @property {Object} reason Reason why user left the meeting
236
+ * @memberof Meeting
237
+ */
238
+ /**
239
+ * Meeting Self Left State
240
+ * Emitted when user is inactive for more then 40 seconds, User can rejoin the meeting again
241
+ * @event meeting:self:left
242
+ * @instance
243
+ * @type {Object}
244
+ * @property {Object} payload
245
+ * @memberof Meeting
246
+ */
247
+ /**
248
+ * Reconnection Starting Event
249
+ * Emitted when reconnection of media to the active meeting was successful
250
+ * @event meeting:reconnectionStarting
251
+ * @instance
252
+ * @memberof Meeting
253
+ */
254
+ /**
255
+ * Reconnection Success Event
256
+ * Emitted when reconnection of media to the active meeting was successful
257
+ * @event meeting:reconnectionSuccess
258
+ * @instance
259
+ * @type {Object}
260
+ * @property {Object} reconnect
261
+ * @memberof Meeting
262
+ */
263
+ /**
264
+ * Reconnection Failure Event
265
+ * Emitted when reconnection of media to the active meeting was successful
266
+ * @event meeting:reconnectionFailure
267
+ * @instance
268
+ * @type {Object}
269
+ * @property {Error} error
270
+ * @memberof Meeting
271
+ */
272
+ /**
273
+ * Meeting network quality event
274
+ * Emitted on each interval of retrieving stats Analyzer data
275
+ * @event network:quality
276
+ * @type {Object}
277
+ * @property {string} mediaType {video|audio}
278
+ * @property {number} networkQualityScore - {1|0} 1 indicates acceptable uplink 0 indicates unacceptable uplink based on threshold
279
+ * @memberof Meeting
280
+ */
281
+ /**
282
+ * @description Meeting is the crux of the plugin
283
+ * @export
284
+ * @class Meeting
285
+ */
286
+ export default class Meeting extends StatelessWebexPlugin {
287
+ attrs: any;
288
+ audio: any;
289
+ breakouts: any;
290
+ annotation: any;
291
+ conversationUrl: string;
292
+ correlationId: string;
293
+ destination: string;
294
+ destinationType: string;
295
+ deviceUrl: string;
296
+ hostId: string;
297
+ id: string;
298
+ isMultistream: boolean;
299
+ locusUrl: string;
300
+ mediaConnections: any[];
301
+ mediaId?: string;
302
+ meetingFiniteStateMachine: any;
303
+ meetingInfo: object;
304
+ meetingRequest: MeetingRequest;
305
+ members: Members;
306
+ options: object;
307
+ orgId: string;
308
+ owner: string;
309
+ partner: any;
310
+ policy: string;
311
+ reconnectionManager: ReconnectionManager;
312
+ resource: string;
313
+ roap: Roap;
314
+ roapSeq: number;
315
+ sipUri: string;
316
+ type: string;
317
+ userId: string;
318
+ video: any;
319
+ callEvents: any[];
320
+ deferJoin: Promise<any>;
321
+ dialInDeviceStatus: string;
322
+ dialInUrl: string;
323
+ dialOutDeviceStatus: string;
324
+ dialOutUrl: string;
325
+ fetchMeetingInfoTimeoutId: NodeJS.Timeout;
326
+ floorGrantPending: boolean;
327
+ hasJoinedOnce: boolean;
328
+ hasWebsocketConnected: boolean;
329
+ inMeetingActions: InMeetingActions;
330
+ isLocalShareLive: boolean;
331
+ isRoapInProgress: boolean;
332
+ isSharing: boolean;
333
+ keepAliveTimerId: NodeJS.Timeout;
334
+ lastVideoLayoutInfo: any;
335
+ locusInfo: any;
336
+ mediaProperties: MediaProperties;
337
+ mediaRequestManagers: {
338
+ audio: MediaRequestManager;
339
+ video: MediaRequestManager;
340
+ screenShareAudio: MediaRequestManager;
341
+ screenShareVideo: MediaRequestManager;
342
+ };
343
+ meetingInfoFailureReason: string;
344
+ meetingInfoFailureCode?: number;
345
+ networkQualityMonitor: NetworkQualityMonitor;
346
+ networkStatus: string;
347
+ passwordStatus: string;
348
+ queuedMediaUpdates: any[];
349
+ recording: any;
350
+ remoteMediaManager: RemoteMediaManager | null;
351
+ recordingController: RecordingController;
352
+ controlsOptionsManager: ControlsOptionsManager;
353
+ requiredCaptcha: any;
354
+ receiveSlotManager: ReceiveSlotManager;
355
+ shareStatus: string;
356
+ statsAnalyzer: StatsAnalyzer;
357
+ transcription: Transcription;
358
+ updateMediaConnections: (mediaConnections: any[]) => void;
359
+ endCallInitJoinReq: any;
360
+ endJoinReqResp: any;
361
+ endLocalSDPGenRemoteSDPRecvDelay: any;
362
+ joinedWith: any;
363
+ locusId: any;
364
+ startCallInitJoinReq: any;
365
+ startJoinReqResp: any;
366
+ startLocalSDPGenRemoteSDPRecvDelay: any;
367
+ wirelessShare: any;
368
+ guest: any;
369
+ meetingJoinUrl: any;
370
+ meetingNumber: any;
371
+ meetingState: any;
372
+ permissionToken: any;
373
+ resourceId: any;
374
+ resourceUrl: string;
375
+ selfId: string;
376
+ state: any;
377
+ localAudioTrackMuteStateHandler: (event: TrackMuteEvent) => void;
378
+ localVideoTrackMuteStateHandler: (event: TrackMuteEvent) => void;
379
+ roles: any[];
380
+ environment: string;
381
+ namespace: string;
382
+ /**
383
+ * @param {Object} attrs
384
+ * @param {Object} options
385
+ * @constructor
386
+ * @memberof Meeting
387
+ */
388
+ constructor(attrs: any, options: object);
389
+ /**
390
+ * Fetches meeting information.
391
+ * @param {Object} options
392
+ * @param {String} [options.password] optional
393
+ * @param {String} [options.captchaCode] optional
394
+ * @public
395
+ * @memberof Meeting
396
+ * @returns {Promise}
397
+ */
398
+ fetchMeetingInfo({ password, captchaCode, extraParams, }: {
399
+ password?: string;
400
+ captchaCode?: string;
401
+ extraParams?: Record<string, any>;
402
+ }): Promise<void>;
403
+ /**
404
+ * Checks if the supplied password/host key is correct. It returns a promise with information whether the
405
+ * password and captcha code were correct or not.
406
+ * @param {String} password - this can be either a password or a host key, can be undefined if only captcha was required
407
+ * @param {String} captchaCode - can be undefined if captcha was not required by the server
408
+ * @public
409
+ * @memberof Meeting
410
+ * @returns {Promise<{isPasswordValid: boolean, requiredCaptcha: boolean, failureReason: MEETING_INFO_FAILURE_REASON}>}
411
+ */
412
+ verifyPassword(password: string, captchaCode: string): Promise<{
413
+ isPasswordValid: boolean;
414
+ requiredCaptcha: any;
415
+ failureReason: string;
416
+ } | {
417
+ isPasswordValid: boolean;
418
+ requiredCaptcha: any;
419
+ failureReason: string;
420
+ }>;
421
+ /**
422
+ * Refreshes the captcha. As a result the meeting will have new captcha id, image and audio.
423
+ * If the refresh operation fails, meeting remains with the old captcha properties.
424
+ * @public
425
+ * @memberof Meeting
426
+ * @returns {Promise}
427
+ */
428
+ refreshCaptcha(): any;
429
+ /**
430
+ * Posts metrics event for this meeting. Allows the app to send Call Analyzer events.
431
+ * @param {String} eventName - Call Analyzer event, see eventType in src/metrics/config.ts for possible values
432
+ * @public
433
+ * @memberof Meeting
434
+ * @returns {Promise}
435
+ */
436
+ postMetrics(eventName: string): void;
437
+ /**
438
+ * Proxy function for all the listener set ups
439
+ * @returns {undefined}
440
+ * @private
441
+ * @memberof Meeting
442
+ */
443
+ private setUpLocusInfoListeners;
444
+ /**
445
+ * Set up the listeners for breakouts
446
+ * @returns {undefined}
447
+ * @private
448
+ * @memberof Meeting
449
+ */
450
+ setUpBreakoutsListener(): void;
451
+ /**
452
+ * Set up the locus info listener for meetings disconnected due to inactivity
453
+ * @returns {undefined}
454
+ * @private
455
+ * @memberof Meeting
456
+ */
457
+ private setUpLocusInfoMediaInactiveListener;
458
+ /**
459
+ * Set up the locus info listener for assign host permissions on a meeting
460
+ * @returns {undefined}
461
+ * @private
462
+ * @memberof Meeting
463
+ */
464
+ private setUpLocusInfoAssignHostListener;
465
+ /**
466
+ * Set up the internal locus info full state object listener
467
+ * @returns {undefined}
468
+ * @private
469
+ * @memberof Meeting
470
+ */
471
+ private setUpLocusFullStateListener;
472
+ /**
473
+ * get the metrics payload pre
474
+ * @param {Object} options
475
+ * @param {String} options.event
476
+ * @param {String} options.trackingId
477
+ * @param {Object} options.locus
478
+ * @param {Array} options.mediaConnections
479
+ * @param {Object} options.errors
480
+ * @returns {Object}
481
+ * @memberof Meeting
482
+ */
483
+ getAnalyzerMetricsPrePayload(options: {
484
+ event: string;
485
+ trackingId: string;
486
+ locus: object;
487
+ mediaConnections: Array<any>;
488
+ errors: object;
489
+ } | any): {};
490
+ /**
491
+ * Send the metrics to call-analyzer dashboard
492
+ * @param {Object} options
493
+ * @param {String} options.event
494
+ * @param {String} options.trackingId
495
+ * @param {Object} options.locus
496
+ * @param {Object} options.errors
497
+ * @returns {Promise}
498
+ * @private
499
+ * @memberof Meeting
500
+ */
501
+ private sendCallAnalyzerMetrics;
502
+ /**
503
+ * Send the metrics to Media Quality Analyzer dashboard
504
+ * @param {Object} options
505
+ * @param {String} options.event
506
+ * @param {String} options.trackingId
507
+ * @param {Object} options.locus
508
+ * @returns {Promise}
509
+ * @private
510
+ * @memberof Meeting
511
+ */
512
+ private sendMediaQualityAnalyzerMetrics;
513
+ /**
514
+ * sets the network status on meeting object
515
+ * @param {String} networkStatus
516
+ * @private
517
+ * @returns {undefined}
518
+ * @memberof Meeting
519
+ */
520
+ private setNetworkStatus;
521
+ /**
522
+ * Set up the locus info self listener
523
+ * update self value for members and updates the member
524
+ * notifies consumer with members:self:update {activeSelfId endedSelfId}
525
+ * @returns {undefined}
526
+ * @private
527
+ * @memberof Meeting
528
+ */
529
+ private setUpLocusSelfListener;
530
+ /**
531
+ * Notify any changes on the pstn devices
532
+ * @param {Object} payload
533
+ * @returns {undefined}
534
+ * @private
535
+ * @memberof Meeting
536
+ */
537
+ private pstnUpdate;
538
+ /**
539
+ * Set up the locus info host listener
540
+ * update host value for members and updates the member
541
+ * notifies consumer with members:host:update: {activeHostId, endedHostId}
542
+ * @returns {undefined}
543
+ * @private
544
+ * @memberof Meeting
545
+ */
546
+ private setUpLocusHostListener;
547
+ /**
548
+ * Set up the locus info participants update listener
549
+ * update members collection value for members
550
+ * notifies consumer with members:update
551
+ * @returns {undefined}
552
+ * @private
553
+ * @memberof Meeting
554
+ */
555
+ private setUpLocusParticipantsListener;
556
+ /**
557
+ * Set up the locus info recording update listener
558
+ * update recording value for the meeting
559
+ * notifies consumer with:
560
+ * meeting:recording:started
561
+ * meeting:recording:stopped
562
+ * meeting:recording:paused
563
+ * meeting:recording:resumed
564
+ *
565
+ * Set up the locus info meeeting container listener
566
+ * update meetingContainerUrl value for the meeting
567
+ * notifies consumer with:
568
+ * meeting:meetingContainer:update
569
+ *
570
+ * @returns {undefined}
571
+ * @private
572
+ * @memberof Meeting
573
+ */
574
+ private setupLocusControlsListener;
575
+ /**
576
+ * Set up the locus info media shares listener
577
+ * update content and whiteboard sharing id value for members, and updates the member
578
+ * notifies consumer with members:content:update {activeContentSharingId, endedContentSharingId}
579
+ * @returns {undefined}
580
+ * @private
581
+ * @memberof Meeting
582
+ */
583
+ private setUpLocusMediaSharesListener;
584
+ /**
585
+ * Set up the locus info url listener
586
+ * update locus_url value for members
587
+ * @returns {undefined}
588
+ * @private
589
+ * @memberof Meeting
590
+ */
591
+ private setUpLocusUrlListener;
592
+ /**
593
+ * Set up the locus info service link listener
594
+ * update the locusInfo for recording controller
595
+ * does not currently re-emit the event as it's internal only
596
+ * payload is unused
597
+ * @returns {undefined}
598
+ * @private
599
+ * @memberof Meeting
600
+ */
601
+ private setUpLocusServicesListener;
602
+ /**
603
+ * Set up the locus info meeting info listener
604
+ * @returns {undefined}
605
+ * @private
606
+ * @memberof meeting
607
+ */
608
+ private setUpLocusInfoMeetingInfoListener;
609
+ /**
610
+ * Handles a data channel URL change
611
+ * @param {String} datachannelUrl
612
+ * @returns {void}
613
+ */
614
+ handleDataChannelUrlChange(datachannelUrl: any): void;
615
+ /**
616
+ * Set up the locus info embedded apps listener
617
+ * @returns {undefined}
618
+ * @private
619
+ * @memberof meeting
620
+ */
621
+ private setUpLocusEmbeddedAppsListener;
622
+ /**
623
+ * Internal function to listen to the self object changes
624
+ * @returns {undefined}
625
+ * @private
626
+ * @memberof Meeting
627
+ */
628
+ private setUpLocusInfoSelfListener;
629
+ /**
630
+ * Add LocusInfo nested object listeners (from child to parent)
631
+ * @returns {undefined}
632
+ * @private
633
+ * @memberof Meeting
634
+ */
635
+ private setUpLocusInfoMeetingListener;
636
+ /**
637
+ * Set meeting values rather than events
638
+ * @param {Object} object
639
+ * @returns {undefined}
640
+ * @private
641
+ * @memberof Meeting
642
+ * // TODO: is this function necessary?
643
+ */
644
+ private updateMeetingObject;
645
+ /**
646
+ * Invite a guest to the call that isn't normally part of this call
647
+ * @param {Object} invitee
648
+ * @param {String} invitee.emailAddress
649
+ * @param {String} invitee.email
650
+ * @param {String} invitee.phoneNumber
651
+ * @param {Boolean} [alertIfActive]
652
+ * @returns {Promise} see #members.addMember
653
+ * @public
654
+ * @memberof Meeting
655
+ */
656
+ invite(invitee: {
657
+ emailAddress: string;
658
+ email: string;
659
+ phoneNumber: string;
660
+ }, alertIfActive?: boolean): any;
661
+ /**
662
+ * Cancel an outgoing phone call invitation made during a meeting
663
+ * @param {Object} invitee
664
+ * @param {String} invitee.phoneNumber
665
+ * @returns {Promise} see #members.cancelPhoneInvite
666
+ * @public
667
+ * @memberof Meeting
668
+ */
669
+ cancelPhoneInvite(invitee: {
670
+ phoneNumber: string;
671
+ }): any;
672
+ /**
673
+ * Admit the guest(s) to the call once they are waiting.
674
+ * If the host/cohost is in a breakout session, the locus url
675
+ * of the session must be provided as the authorizingLocusUrl.
676
+ * Regardless of host/cohost location, the locus Id (lid) in
677
+ * the path should be the locus Id of the main, which means the
678
+ * locus url of the api call must be from the main session.
679
+ * If these loucs urls are not provided, the function will do the check.
680
+ * @param {Array} memberIds
681
+ * @param {Object} sessionLocusUrls: {authorizingLocusUrl, mainLocusUrl}
682
+ * @returns {Promise} see #members.admitMembers
683
+ * @public
684
+ * @memberof Meeting
685
+ */
686
+ admit(memberIds: Array<any>, sessionLocusUrls?: {
687
+ authorizingLocusUrl: string;
688
+ mainLocusUrl: string;
689
+ }): any;
690
+ /**
691
+ * Remove the member from the meeting, boot them
692
+ * @param {String} memberId
693
+ * @returns {Promise} see #members.removeMember
694
+ * @public
695
+ * @memberof Meeting
696
+ */
697
+ remove(memberId: string): any;
698
+ /**
699
+ * Mute another member from the meeting
700
+ * @param {String} memberId
701
+ * @param {Boolean} mute
702
+ * @returns {Promise} see #members.muteMember
703
+ * @public
704
+ * @memberof Meeting
705
+ */
706
+ mute(memberId: string, mute?: boolean): any;
707
+ /**
708
+ * Transfer the moderator role to another eligible member
709
+ * @param {String} memberId
710
+ * @param {Boolean} moderator
711
+ * @returns {Promise} see #members.transferHostToMember
712
+ * @public
713
+ * @memberof Meeting
714
+ */
715
+ transfer(memberId: string, moderator?: boolean): any;
716
+ /**
717
+ * Reference to the Members object
718
+ * @returns {Members}
719
+ * @public
720
+ * @memberof Meeting
721
+ */
722
+ getMembers(): Members;
723
+ /**
724
+ * Truthy when a meeting has an audio connection established
725
+ * @returns {Boolean} true if meeting audio is connected otherwise false
726
+ * @public
727
+ * @memberof Meeting
728
+ */
729
+ isAudioConnected(): boolean;
730
+ /**
731
+ * Convenience function to tell whether a meeting is muted
732
+ * @returns {Boolean} if meeting audio muted or not
733
+ * @public
734
+ * @memberof Meeting
735
+ */
736
+ isAudioMuted(): any;
737
+ /**
738
+ * Convenience function to tell if the end user last changed the audio state
739
+ * @returns {Boolean} if audio was manipulated by the end user
740
+ * @public
741
+ * @memberof Meeting
742
+ */
743
+ isAudioSelf(): any;
744
+ /**
745
+ * Truthy when a meeting has a video connection established
746
+ * @returns {Boolean} true if meeting video connected otherwise false
747
+ * @public
748
+ * @memberof Meeting
749
+ */
750
+ isVideoConnected(): boolean;
751
+ /**
752
+ * Convenience function to tell whether video is muted
753
+ * @returns {Boolean} if meeting video is muted or not
754
+ * @public
755
+ * @memberof Meeting
756
+ */
757
+ isVideoMuted(): any;
758
+ /**
759
+ * Convenience function to tell whether the end user changed the video state
760
+ * @returns {Boolean} if meeting video is muted or not
761
+ * @public
762
+ * @memberof Meeting
763
+ */
764
+ isVideoSelf(): any;
765
+ /**
766
+ * Sets the meeting info on the class instance
767
+ * @param {Object} meetingInfo
768
+ * @param {Object} meetingInfo.body
769
+ * @param {String} meetingInfo.body.conversationUrl
770
+ * @param {String} meetingInfo.body.locusUrl
771
+ * @param {String} meetingInfo.body.sipUri
772
+ * @param {Object} meetingInfo.body.owner
773
+ * @param {Object | String} destination locus object with meeting data or destination string (sip url, meeting link, etc)
774
+ * @returns {undefined}
775
+ * @private
776
+ * @memberof Meeting
777
+ */
778
+ parseMeetingInfo(meetingInfo: {
779
+ body: {
780
+ conversationUrl: string;
781
+ locusUrl: string;
782
+ sipUri: string;
783
+ owner: object;
784
+ };
785
+ } | any, destination?: object | string | null): void;
786
+ /**
787
+ * Sets the first locus info on the class instance
788
+ * @param {Object} locus
789
+ * @param {String} locus.url
790
+ * @param {Array} locus.participants
791
+ * @param {Object} locus.self
792
+ * @returns {undefined}
793
+ * @private
794
+ * @memberof Meeting
795
+ */
796
+ private parseLocus;
797
+ /**
798
+ * Sets the sip uri on the class instance
799
+ * uses meeting info as precedence
800
+ * @param {String} sipUri
801
+ * @returns {undefined}
802
+ * @private
803
+ * @memberof Meeting
804
+ */
805
+ setSipUri(sipUri: string): void;
806
+ /**
807
+ * Set the locus info the class instance
808
+ * @param {Object} locus
809
+ * @param {Array} locus.mediaConnections
810
+ * @param {String} locus.locusUrl
811
+ * @param {String} locus.locusId
812
+ * @param {String} locus.mediaId
813
+ * @param {Object} locus.host
814
+ * @todo change name to genertic parser
815
+ * @returns {undefined}
816
+ * @private
817
+ * @memberof Meeting
818
+ */
819
+ private setLocus;
820
+ /**
821
+ * Upload logs for the current meeting
822
+ * @param {object} options file name and function name
823
+ * @returns {undefined}
824
+ * @public
825
+ * @memberof Meeting
826
+ */
827
+ uploadLogs(options?: object): void;
828
+ /**
829
+ * Removes remote audio and video stream on the class instance and triggers an event
830
+ * to developers
831
+ * @returns {undefined}
832
+ * @public
833
+ * @memberof Meeting
834
+ * @deprecated after v1.89.3
835
+ */
836
+ unsetRemoteStream(): void;
837
+ /**
838
+ * Removes remote audio, video and share tracks from class instance's mediaProperties
839
+ * @returns {undefined}
840
+ */
841
+ unsetRemoteTracks(): void;
842
+ /**
843
+ * Removes the remote stream on the class instance and triggers an event
844
+ * to developers
845
+ * @returns {undefined}
846
+ * @public
847
+ * @memberof Meeting
848
+ * @deprecated after v1.89.3
849
+ */
850
+ closeRemoteStream(): void;
851
+ /**
852
+ * Removes the remote tracks on the class instance and triggers an event
853
+ * to developers
854
+ * @returns {undefined}
855
+ * @memberof Meeting
856
+ */
857
+ closeRemoteTracks(): Promise<[any, any, any]>;
858
+ /**
859
+ * Emits the 'media:ready' event with a local stream that consists of 1 local audio and 1 local video track
860
+ * @returns {undefined}
861
+ * @private
862
+ * @memberof Meeting
863
+ */
864
+ private sendLocalMediaReadyEvent;
865
+ /**
866
+ * Sets the local audio track on the class and emits an event to the developer
867
+ * @param {MediaStreamTrack} rawAudioTrack
868
+ * @param {Boolean} emitEvent if true, a media ready event is emitted to the developer
869
+ * @returns {undefined}
870
+ * @private
871
+ * @memberof Meeting
872
+ */
873
+ private setLocalAudioTrack;
874
+ /**
875
+ * Sets the local video track on the class and emits an event to the developer
876
+ * @param {MediaStreamTrack} rawVideoTrack
877
+ * @param {Boolean} emitEvent if true, a media ready event is emitted to the developer
878
+ * @returns {undefined}
879
+ * @private
880
+ * @memberof Meeting
881
+ */
882
+ private setLocalVideoTrack;
883
+ /**
884
+ * Sets the local media stream on the class and emits an event to the developer
885
+ * @param {Stream} localStream the local media stream
886
+ * @returns {undefined}
887
+ * @public
888
+ * @memberof Meeting
889
+ */
890
+ setLocalTracks(localStream: any): void;
891
+ /**
892
+ * Sets the local media stream on the class and emits an event to the developer
893
+ * @param {MediaStreamTrack} rawLocalShareTrack the local share media track
894
+ * @returns {undefined}
895
+ * @public
896
+ * @memberof Meeting
897
+ */
898
+ setLocalShareTrack(rawLocalShareTrack: MediaStreamTrack | null): void;
899
+ /**
900
+ * Closes the local stream from the class and emits an event to the developer
901
+ * @returns {undefined}
902
+ * @event media:stopped
903
+ * @public
904
+ * @memberof Meeting
905
+ */
906
+ closeLocalStream(): any;
907
+ /**
908
+ * Closes the local stream from the class and emits an event to the developer
909
+ * @returns {undefined}
910
+ * @event media:stopped
911
+ * @public
912
+ * @memberof Meeting
913
+ */
914
+ closeLocalShare(): any;
915
+ /**
916
+ * Removes the local stream from the class and emits an event to the developer
917
+ * @returns {undefined}
918
+ * @public
919
+ * @memberof Meeting
920
+ */
921
+ unsetLocalVideoTrack(): void;
922
+ /**
923
+ * Removes the local share from the class and emits an event to the developer
924
+ * @returns {undefined}
925
+ * @public
926
+ * @memberof Meeting
927
+ */
928
+ unsetLocalShareTrack(): void;
929
+ /**
930
+ * sets up listner for mercury event
931
+ * @returns {undefined}
932
+ * @public
933
+ * @memberof Meeting
934
+ */
935
+ setMercuryListener(): void;
936
+ /**
937
+ * Close the peer connections and remove them from the class.
938
+ * Cleanup any media connection related things.
939
+ *
940
+ * @returns {Promise}
941
+ * @public
942
+ * @memberof Meeting
943
+ */
944
+ closePeerConnections(): Promise<void>;
945
+ /**
946
+ * Unsets the peer connections on the class
947
+ * warning DO NOT CALL WITHOUT CLOSING PEER CONNECTIONS FIRST
948
+ * @returns {undefined}
949
+ * @public
950
+ * @memberof Meeting
951
+ */
952
+ unsetPeerConnections(): void;
953
+ /**
954
+ * Convenience method to set the correlation id for the Meeting
955
+ * @param {String} id correlation id to set on the class
956
+ * @returns {undefined}
957
+ * @private
958
+ * @memberof Meeting
959
+ */
960
+ private setCorrelationId;
961
+ /**
962
+ * Mute the audio for a meeting
963
+ * @returns {Promise} resolves the data from muting audio {mute, self} or rejects if there is no audio set
964
+ * @public
965
+ * @memberof Meeting
966
+ */
967
+ muteAudio(): any;
968
+ /**
969
+ * Unmute meeting audio
970
+ * @returns {Promise} resolves data from muting audio {mute, self} or rejects if there is no audio set
971
+ * @public
972
+ * @memberof Meeting
973
+ */
974
+ unmuteAudio(): any;
975
+ /**
976
+ * Mute the video for a meeting
977
+ * @returns {Promise} resolves data from muting video {mute, self} or rejects if there is no video set
978
+ * @public
979
+ * @memberof Meeting
980
+ */
981
+ muteVideo(): any;
982
+ /**
983
+ * Unmute meeting video
984
+ * @returns {Promise} resolves data from muting video {mute, self} or rejects if there is no video set
985
+ * @public
986
+ * @memberof Meeting
987
+ */
988
+ unmuteVideo(): any;
989
+ /**
990
+ * Shorthand function to join AND set up media
991
+ * @param {Object} options - options to join with media
992
+ * @param {JoinOptions} [options.joinOptions] - see #join()
993
+ * @param {MediaDirection} options.mediaSettings - see #addMedia()
994
+ * @param {AudioVideo} [options.audioVideoOptions] - see #getMediaStreams()
995
+ * @returns {Promise} -- {join: see join(), media: see addMedia(), local: see getMediaStreams()}
996
+ * @public
997
+ * @memberof Meeting
998
+ * @example
999
+ * joinWithMedia({
1000
+ * joinOptions: {resourceId: 'resourceId' },
1001
+ * mediaSettings: {
1002
+ * sendAudio: true,
1003
+ * sendVideo: true,
1004
+ * sendShare: false,
1005
+ * receiveVideo:true,
1006
+ * receiveAudio: true,
1007
+ * receiveShare: true
1008
+ * }
1009
+ * audioVideoOptions: {
1010
+ * audio: 'audioDeviceId',
1011
+ * video: 'videoDeviceId'
1012
+ * }})
1013
+ */
1014
+ joinWithMedia(options?: {
1015
+ joinOptions?: any;
1016
+ mediaSettings: any;
1017
+ audioVideoOptions?: any;
1018
+ }): any;
1019
+ /**
1020
+ * Initiates the reconnection of the media in the meeting
1021
+ *
1022
+ * @param {object} options
1023
+ * @returns {Promise} resolves with {reconnect} or errors with {error}
1024
+ * @public
1025
+ * @memberof Meeting
1026
+ */
1027
+ reconnect(options?: object): any;
1028
+ /**
1029
+ * Check if the meeting supports the Webex Assistant feature
1030
+ * @returns {boolean}
1031
+ * @throws TranscriptionNotSupportedError
1032
+ */
1033
+ isTranscriptionSupported(): boolean;
1034
+ /**
1035
+ * Check if the meeting supports the Reactions
1036
+ * @returns {boolean}
1037
+ */
1038
+ isReactionsSupported(): boolean;
1039
+ /**
1040
+ * Monitor the Low-Latency Mercury (LLM) web socket connection on `onError` and `onClose` states
1041
+ * @private
1042
+ * @returns {void}
1043
+ */
1044
+ private monitorTranscriptionSocketConnection;
1045
+ /**
1046
+ * Request for a WebSocket Url, open and monitor the WebSocket connection
1047
+ * @private
1048
+ * @returns {Promise<void>} a promise to open the WebSocket connection
1049
+ */
1050
+ private receiveTranscription;
1051
+ /**
1052
+ * Callback called when a relay event is received from meeting LLM Connection
1053
+ * @param {RelayEvent} e Event object coming from LLM Connection
1054
+ * @private
1055
+ * @returns {void}
1056
+ */
1057
+ private processRelayEvent;
1058
+ /**
1059
+ * stop recieving Transcription by closing
1060
+ * the web socket connection properly
1061
+ * @returns {void}
1062
+ */
1063
+ stopReceivingTranscription(): void;
1064
+ /**
1065
+ * triggers an event to notify that the user
1066
+ * will not receive any more transcription
1067
+ * @private
1068
+ * @returns{void}
1069
+ */
1070
+ private triggerStopReceivingTranscriptionEvent;
1071
+ /**
1072
+ * Specify joining via audio (option: pstn), video, screenshare
1073
+ * @param {JoinOptions} options A configurable options object for joining a meeting
1074
+ * @returns {Promise} the join response
1075
+ * @public
1076
+ * @memberof Meeting
1077
+ * Scenario A: Joining own claimed personal meeting room
1078
+ * Scenario B: Joining other's claimed personal meeting room, do pass pin (if desired to join as host, or nullify), do pass moderator
1079
+ * Scenario C: Joining an unclaimed personal meeting room, -do not- pass pin or moderator on first try, -do- pass pin and moderator
1080
+ * if joining as host on second loop, pass pin and pass moderator if joining as guest on second loop
1081
+ * Scenario D: Joining any other way (sip, pstn, conversationUrl, link just need to specify resourceId)
1082
+ */
1083
+ join(options?: any): any;
1084
+ /**
1085
+ * Connects to low latency mercury and reconnects if the address has changed
1086
+ * It will also disconnect if called when the meeting has ended
1087
+ * @param {String} datachannelUrl
1088
+ * @returns {Promise}
1089
+ */
1090
+ updateLLMConnection(): Promise<any>;
1091
+ /**
1092
+ * Use phone for meeting audio
1093
+ * @param {String} phoneNumber If provided, it will dial-out using this number. If not provided, dial-in will be used
1094
+ * @returns {Promise} Resolves once the dial-in or dial-out request has completed, or rejects if it failed
1095
+ * @public
1096
+ * @memberof Meeting
1097
+ */
1098
+ usePhoneAudio(phoneNumber: string): any;
1099
+ /**
1100
+ * Determines if the given pstnStatus is in a state which implies the phone is provisioned
1101
+ * @param {String} pstnStatus
1102
+ * @returns {Boolean}
1103
+ * @private
1104
+ * @memberof Meeting
1105
+ */
1106
+ private isPhoneProvisioned;
1107
+ /**
1108
+ * Enable dial-in for audio
1109
+ * @returns {Promise} Resolves once the dial-in request has completed, or rejects if it failed
1110
+ * @private
1111
+ * @memberof Meeting
1112
+ */
1113
+ private dialInPstn;
1114
+ /**
1115
+ * Enable dial-out for audio
1116
+ * @param {String} phoneNumber Phone number to dial out to
1117
+ * @returns {Promise} Resolves once the dial-out request has completed (it doesn't wait for the user to answer the phone), or rejects if it failed
1118
+ * @private
1119
+ * @memberof Meeting
1120
+ */
1121
+ private dialOutPstn;
1122
+ /**
1123
+ * Disconnect meeting audio via phone.
1124
+ * @returns {Promise} Resolves once the phone audio disconnection has completed
1125
+ * @public
1126
+ * @memberof Meeting
1127
+ * @returns {Promise}
1128
+ */
1129
+ disconnectPhoneAudio(): Promise<[any, any]>;
1130
+ /**
1131
+ * Moves the call to the specified resourceId
1132
+ * @param {String} resourceId
1133
+ * @returns {Promise} once the move has been completed
1134
+ * @public
1135
+ * @memberof Meeting
1136
+ */
1137
+ moveTo(resourceId: string): any;
1138
+ /**
1139
+ * Moves the call from the specified resourceId, back to computer
1140
+ * @param {String} resourceId
1141
+ * @returns {Promise} once the move has been completed
1142
+ * @public
1143
+ * @memberof Meeting
1144
+ */
1145
+ moveFrom(resourceId: string): any;
1146
+ /**
1147
+ * Get local media streams based on options passed
1148
+ *
1149
+ * NOTE: this method can only be used with transcoded meetings, not with multistream meetings
1150
+ *
1151
+ * @param {MediaDirection} mediaDirection A configurable options object for joining a meeting
1152
+ * @param {AudioVideo} [audioVideo] audio/video object to set audioinput and videoinput devices, see #Media.getUserMedia
1153
+ * @param {SharePreferences} [sharePreferences] audio/video object to set audioinput and videoinput devices, see #Media.getUserMedia
1154
+ * @returns {Promise} see #Media.getUserMedia
1155
+ * @public
1156
+ * @todo should be static, or moved so can be called outside of a meeting
1157
+ * @memberof Meeting
1158
+ */
1159
+ getMediaStreams: (mediaDirection: any, audioVideo?: any, sharePreferences?: any) => any;
1160
+ /**
1161
+ * Checks if the machine has at least one audio or video device
1162
+ * @param {Object} options
1163
+ * @param {Boolean} options.sendAudio
1164
+ * @param {Boolean} options.sendVideo
1165
+ * @returns {Object}
1166
+ * @memberof Meetings
1167
+ */
1168
+ getSupportedDevices: ({ sendAudio, sendVideo, }: {
1169
+ sendAudio: boolean;
1170
+ sendVideo: boolean;
1171
+ }) => any;
1172
+ /**
1173
+ * Get the devices from the Media module
1174
+ * @returns {Promise} resolves to an array of DeviceInfo
1175
+ * @memberof Meetings
1176
+ */
1177
+ getDevices: () => any;
1178
+ /**
1179
+ * Handles ROAP_FAILURE event from the webrtc media connection
1180
+ *
1181
+ * @param {Error} error
1182
+ * @returns {void}
1183
+ */
1184
+ handleRoapFailure: (error: any) => void;
1185
+ setupMediaConnectionListeners: () => void;
1186
+ /**
1187
+ * Registers for all required StatsAnalyzer events
1188
+ * @private
1189
+ * @returns {void}
1190
+ * @memberof Meetings
1191
+ */
1192
+ setupStatsAnalyzerEventHandlers: () => void;
1193
+ getMediaConnectionDebugId(): string;
1194
+ /**
1195
+ * Creates a webrtc media connection
1196
+ *
1197
+ * @param {Object} turnServerInfo TURN server information
1198
+ * @param {BundlePolicy} [bundlePolicy] Bundle policy settings
1199
+ * @returns {RoapMediaConnection | MultistreamRoapMediaConnection}
1200
+ */
1201
+ createMediaConnection(turnServerInfo: any, bundlePolicy: any): any;
1202
+ /**
1203
+ * Listens for an event emitted by eventEmitter and emits it from the meeting object
1204
+ *
1205
+ * @private
1206
+ * @param {*} eventEmitter object from which to forward the event
1207
+ * @param {*} eventTypeToForward which event type to listen on and to forward
1208
+ * @param {string} meetingEventType event type to be used in the event emitted from the meeting object
1209
+ * @returns {void}
1210
+ */
1211
+ forwardEvent(eventEmitter: any, eventTypeToForward: any, meetingEventType: any): void;
1212
+ /**
1213
+ * Specify joining via audio (option: pstn), video, screenshare
1214
+ * @param {Object} options A configurable options object for joining a meeting
1215
+ * @param {Object} options.resourceId pass the deviceId
1216
+ * @param {MediaDirection} options.mediaSettings pass media options
1217
+ * @param {MediaStream} options.localStream
1218
+ * @param {MediaStream} options.localShare
1219
+ * @param {BundlePolicy} options.bundlePolicy bundle policy for multistream meetings
1220
+ * @param {RemoteMediaManagerConfig} options.remoteMediaManagerConfig only applies if multistream is enabled
1221
+ * @returns {Promise}
1222
+ * @public
1223
+ * @memberof Meeting
1224
+ */
1225
+ addMedia(options?: any): any;
1226
+ /**
1227
+ * Informs if the peer connection is in a state that can be updated with updateMedia (audio/video/share)
1228
+ * @returns {Boolean}
1229
+ */
1230
+ canUpdateMedia(): boolean;
1231
+ /**
1232
+ * Enqueues a media update operation.
1233
+ * @param {String} mediaUpdateType one of MEDIA_UPDATE_TYPE values
1234
+ * @param {Object} options
1235
+ * @returns {Promise}
1236
+ * @private
1237
+ * @memberof Meeting
1238
+ */
1239
+ private enqueueMediaUpdate;
1240
+ /**
1241
+ * emits event when the negotation is completed
1242
+ * @returns {void}
1243
+ * @private
1244
+ * @memberof Meeting
1245
+ */
1246
+ mediaNegotiatedEvent: () => void;
1247
+ /**
1248
+ * Checks if there are any queued media updates and runs the first one from
1249
+ * the queue if we are in a state that allows doing that.
1250
+ * @returns {undefined}
1251
+ * @public
1252
+ * @memberof Meeting
1253
+ */
1254
+ processNextQueuedMediaUpdate: () => void;
1255
+ /**
1256
+ * A confluence of updateAudio, updateVideo, and updateShare
1257
+ * this function re-establishes all of the media streams with new options
1258
+ * @param {Object} options
1259
+ * @param {MediaStream} options.localStream
1260
+ * @param {MediaStream} options.localShare
1261
+ * @param {MediaDirection} options.mediaSettings
1262
+ * @returns {Promise}
1263
+ * @public
1264
+ * @memberof Meeting
1265
+ */
1266
+ updateMedia(options?: {
1267
+ localStream?: MediaStream;
1268
+ localShare?: MediaStream;
1269
+ mediaSettings?: any;
1270
+ }): any;
1271
+ /**
1272
+ * Update the main audio track with new parameters
1273
+ *
1274
+ * NOTE: this method can only be used with transcoded meetings, for multistream meetings use publishTrack()
1275
+ *
1276
+ * @param {Object} options
1277
+ * @param {boolean} options.sendAudio
1278
+ * @param {boolean} options.receiveAudio
1279
+ * @param {MediaStream} options.stream Stream that contains the audio track to update
1280
+ * @returns {Promise}
1281
+ * @public
1282
+ * @memberof Meeting
1283
+ */
1284
+ updateAudio(options: {
1285
+ sendAudio: boolean;
1286
+ receiveAudio: boolean;
1287
+ stream: MediaStream;
1288
+ }): Promise<any>;
1289
+ /**
1290
+ * Update the main video track with new parameters
1291
+ *
1292
+ * NOTE: this method can only be used with transcoded meetings, for multistream meetings use publishTrack()
1293
+ *
1294
+ * @param {Object} options
1295
+ * @param {boolean} options.sendVideo
1296
+ * @param {boolean} options.receiveVideo
1297
+ * @param {MediaStream} options.stream Stream that contains the video track to update
1298
+ * @returns {Promise}
1299
+ * @public
1300
+ * @memberof Meeting
1301
+ */
1302
+ updateVideo(options: {
1303
+ sendVideo: boolean;
1304
+ receiveVideo: boolean;
1305
+ stream: MediaStream;
1306
+ }): any;
1307
+ /**
1308
+ * Internal function when stopping a share stream, cleanup
1309
+ * @param {boolean} sendShare
1310
+ * @param {boolean} previousShareStatus
1311
+ * @returns {Promise}
1312
+ * @private
1313
+ * @memberof Meeting
1314
+ */
1315
+ private checkForStopShare;
1316
+ /**
1317
+ * Update the share streams, can be used to start sharing
1318
+ *
1319
+ * NOTE: this method can only be used with transcoded meetings, for multistream meetings use publishTrack()
1320
+ *
1321
+ * @param {Object} options
1322
+ * @param {boolean} options.sendShare
1323
+ * @param {boolean} options.receiveShare
1324
+ * @returns {Promise}
1325
+ * @public
1326
+ * @memberof Meeting
1327
+ */
1328
+ updateShare(options: {
1329
+ sendShare?: boolean;
1330
+ receiveShare?: boolean;
1331
+ stream?: any;
1332
+ skipSignalingCheck?: boolean;
1333
+ }): any;
1334
+ /**
1335
+ * Do all the attach media pre set up before executing the actual attach
1336
+ * @param {MediaStream} localStream
1337
+ * @param {MediaStream} localShare
1338
+ * @param {MediaDirection} mediaSettings
1339
+ * @returns {undefined}
1340
+ * @private
1341
+ * @memberof Meeting
1342
+ */
1343
+ private preMedia;
1344
+ /**
1345
+ * Acknowledge the meeting, outgoing or incoming
1346
+ * @param {String} type
1347
+ * @returns {Promise} resolve {message, ringing, response}
1348
+ * @public
1349
+ * @memberof Meeting
1350
+ */
1351
+ acknowledge(type: string): any;
1352
+ /**
1353
+ * Decline this meeting
1354
+ * @param {String} reason
1355
+ * @returns {undefined}
1356
+ * @public
1357
+ * @memberof Meeting
1358
+ */
1359
+ decline(reason: string): any;
1360
+ /**
1361
+ * Leave the current meeting
1362
+ * @param {Object} options leave options
1363
+ * @param {String} options.resourceId the device with which to leave from, empty if just the computer
1364
+ * @returns {Promise}
1365
+ * @public
1366
+ * @memberof Meeting
1367
+ */
1368
+ leave(options?: {
1369
+ resourceId?: string;
1370
+ reason?: any;
1371
+ }): any;
1372
+ /**
1373
+ * Start sharing whiteboard given channelUrl
1374
+ * @param {string} channelUrl whiteboard url
1375
+ * @param {String} resourceToken token created by authorize media injector
1376
+ * @returns {Promise}
1377
+ * @public
1378
+ * @memberof Meeting
1379
+ */
1380
+ startWhiteboardShare(channelUrl: string, resourceToken: string): any;
1381
+ /**
1382
+ * Stop sharing whiteboard given channelUrl
1383
+ * @param {string} channelUrl whiteboard url
1384
+ * @returns {Promise}
1385
+ * @public
1386
+ * @memberof Meeting
1387
+ */
1388
+ stopWhiteboardShare(channelUrl: string): any;
1389
+ /**
1390
+ * Sends a request to Locus to obtain the screen share floor
1391
+ * @returns {Promise} see #meetingRequest.changeMeetingFloor
1392
+ * @private
1393
+ * @memberof Meeting
1394
+ */
1395
+ private requestScreenShareFloor;
1396
+ /**
1397
+ * Stops the screen share
1398
+ * @returns {Promise} see #updateShare
1399
+ * @public
1400
+ * @memberof Meeting
1401
+ */
1402
+ stopShare(options?: {}): any;
1403
+ /**
1404
+ * Sends a request to Locus to release the screen share floor.
1405
+ * @returns {Promise} see #meetingRequest.changeMeetingFloor
1406
+ * @private
1407
+ * @memberof Meeting
1408
+ */
1409
+ private releaseScreenShareFloor;
1410
+ /**
1411
+ * Intiate a recording of this meeting
1412
+ * @returns {Promise}
1413
+ * @public
1414
+ * @memberof Meeting
1415
+ */
1416
+ startRecording(): Promise<any>;
1417
+ /**
1418
+ * set the mute on entry flag for participants if you're the host
1419
+ * @returns {Promise}
1420
+ * @param {boolean} enabled
1421
+ * @public
1422
+ * @memberof Meeting
1423
+ */
1424
+ setMuteOnEntry(enabled: boolean): Promise<any>;
1425
+ /**
1426
+ * set the disallow unmute flag for participants if you're the host
1427
+ * @returns {Promise}
1428
+ * @param {boolean} enabled
1429
+ * @public
1430
+ * @memberof Meeting
1431
+ */
1432
+ setDisallowUnmute(enabled: boolean): Promise<any>;
1433
+ /**
1434
+ * set the mute all flag for participants if you're the host
1435
+ * @returns {Promise}
1436
+ * @param {boolean} mutedEnabled
1437
+ * @param {boolean} disallowUnmuteEnabled
1438
+ * @param {boolean} muteOnEntryEnabled
1439
+ * @public
1440
+ * @memberof Meeting
1441
+ */
1442
+ setMuteAll(mutedEnabled: boolean, disallowUnmuteEnabled: boolean, muteOnEntryEnabled: boolean): Promise<any>;
1443
+ /**
1444
+ * End the recording of this meeting
1445
+ * @returns {Promise}
1446
+ * @public
1447
+ * @memberof Meeting
1448
+ */
1449
+ stopRecording(): Promise<any>;
1450
+ /**
1451
+ * Pauses the recording of this meeting
1452
+ * @returns {Promise}
1453
+ * @public
1454
+ * @memberof Meeting
1455
+ */
1456
+ pauseRecording(): Promise<any>;
1457
+ /**
1458
+ * Resumes the recording of this meeting
1459
+ * @returns {Promise}
1460
+ * @public
1461
+ * @memberof Meeting
1462
+ */
1463
+ resumeRecording(): Promise<any>;
1464
+ /**
1465
+ * Locks the current meeting if possible
1466
+ * @returns {Promise}
1467
+ * @public
1468
+ * @memberof Meeting
1469
+ */
1470
+ lockMeeting(): any;
1471
+ /**
1472
+ * Unlocks the current meeting if possible
1473
+ * @returns {Promise}
1474
+ * @public
1475
+ * @memberof Meeting
1476
+ */
1477
+ unlockMeeting(): any;
1478
+ /**
1479
+ * Logs an error message and returns a rejected promise with same message
1480
+ * @param {String} message
1481
+ * @returns {Promise}
1482
+ * @private
1483
+ * @memberof Meeting
1484
+ */
1485
+ private rejectWithErrorLog;
1486
+ /**
1487
+ * Sends DTMF tones to the current meeting
1488
+ * @param {String} tones a string of one or more DTMF tones to send
1489
+ * @returns {Promise}
1490
+ * @public
1491
+ * @memberof Meeting
1492
+ */
1493
+ sendDTMF(tones: string): any;
1494
+ /**
1495
+ * Sends request to change layout type for the current meeting for the specific participant/device only
1496
+ * @param {String} [layoutType] a layout type that should be available in meeting constants {@link #layout_types}
1497
+ * @param {Object} renderInfo preferred dimensions for the remote main and content streams (server can ignore it)
1498
+ * @param {Object} renderInfo.main preferred dimensions for the remote main video stream
1499
+ * @param {Number} renderInfo.main.width preferred width of main video stream
1500
+ * @param {Number} renderInfo.main.height preferred height of main video stream
1501
+ * @param {Object} renderInfo.content preferred dimensions for the remote content share stream
1502
+ * @param {Number} renderInfo.content.width preferred width of content share stream
1503
+ * @param {Number} renderInfo.content.height preferred height of content share stream
1504
+ * @returns {Promise}
1505
+ * @public
1506
+ * @memberof Meeting
1507
+ */
1508
+ changeVideoLayout(layoutType?: string, renderInfo?: {
1509
+ main: {
1510
+ width: number;
1511
+ height: number;
1512
+ };
1513
+ content: {
1514
+ width: number;
1515
+ height: number;
1516
+ };
1517
+ }): any;
1518
+ /**
1519
+ * Sets the quality of the local video stream
1520
+ * @param {String} level {LOW|MEDIUM|HIGH}
1521
+ * @returns {Promise<MediaStream>} localStream
1522
+ */
1523
+ setLocalVideoQuality(level: string): any;
1524
+ /**
1525
+ * Sets the quality level of the remote incoming media
1526
+ * @param {String} level {LOW|MEDIUM|HIGH}
1527
+ * @returns {Promise}
1528
+ */
1529
+ setRemoteQualityLevel(level: string): any;
1530
+ /**
1531
+ * This is deprecated, please use setLocalVideoQuality for setting local and setRemoteQualityLevel for remote
1532
+ * @param {String} level {LOW|MEDIUM|HIGH}
1533
+ * @returns {Promise}
1534
+ * @deprecated After FHD support
1535
+ */
1536
+ setMeetingQuality(level: string): any;
1537
+ /**
1538
+ *
1539
+ * NOTE: this method can only be used with transcoded meetings, for multistream use publishTrack()
1540
+ *
1541
+ * @param {Object} options parameter
1542
+ * @param {Boolean} options.sendAudio send audio from the display share
1543
+ * @param {Boolean} options.sendShare send video from the display share
1544
+ * @param {Object} options.sharePreferences
1545
+ * @param {MediaTrackConstraints} options.sharePreferences.shareConstraints constraints to apply to video
1546
+ * @see {@link https://developer.mozilla.org/en-US/docs/Web/API/MediaTrackConstraints}
1547
+ * @param {Boolean} options.sharePreferences.highFrameRate if shareConstraints isn't provided, set default values based off of this boolean
1548
+ * @returns {Promise}
1549
+ */
1550
+ shareScreen(options?: {
1551
+ sendAudio: boolean;
1552
+ sendShare: boolean;
1553
+ sharePreferences: {
1554
+ shareConstraints: MediaTrackConstraints;
1555
+ };
1556
+ }): any;
1557
+ /**
1558
+ * Functionality for when a share is ended.
1559
+ * @private
1560
+ * @memberof Meeting
1561
+ * @param {MediaStream} localShare
1562
+ * @returns {undefined}
1563
+ */
1564
+ private handleShareTrackEnded;
1565
+ /**
1566
+ * Emits the 'network:quality' event
1567
+ * 1 indicates an acceptable uplink network.
1568
+ * 0 indicates an unacceptable uplink network based on a predefined threshold
1569
+ * @returns {undefined}
1570
+ * @param {Object} res - payload of emitNetworkQuality
1571
+ * @property {string} mediaType {video|audio}
1572
+ * @property {number} networkQualityScore - {1|0}
1573
+ * @private
1574
+ * @memberof Meeting
1575
+ */
1576
+ private sendNetworkQualityEvent;
1577
+ /**
1578
+ * Handle logging the media
1579
+ * @param {Object} mediaProperties
1580
+ * @private
1581
+ * @returns {undefined}
1582
+ */
1583
+ private handleMediaLogging;
1584
+ /**
1585
+ * @param {string} typeMedia 'audio' or 'video'
1586
+ * @returns {undefined}
1587
+ */
1588
+ setStartSetupDelay(typeMedia: string): void;
1589
+ /**
1590
+ * @param {string} typeMedia 'audio' or 'video'
1591
+ * @returns {undefined}
1592
+ */
1593
+ setEndSetupDelay(typeMedia: string): void;
1594
+ /**
1595
+ * @param {string} typeMedia 'audio' or 'video'
1596
+ * @returns {string} duration between start and end of setup
1597
+ */
1598
+ getSetupDelayDuration(typeMedia: string): number;
1599
+ /**
1600
+ * @param {string} typeMedia 'audio' or 'video'
1601
+ * @returns {undefined}
1602
+ */
1603
+ setStartSendingMediaDelay(typeMedia: string): void;
1604
+ /**
1605
+ * @param {string} typeMedia 'audio' or 'video'
1606
+ * @returns {undefined}
1607
+ */
1608
+ setEndSendingMediaDelay(typeMedia: string): void;
1609
+ /**
1610
+ * @param {string} typeMedia 'audio' or 'video'
1611
+ * @returns {string} duration between join response and first media tx
1612
+ */
1613
+ getSendingMediaDelayDuration(typeMedia: string): number;
1614
+ /**
1615
+ *
1616
+ * @returns {undefined}
1617
+ */
1618
+ setStartLocalSDPGenRemoteSDPRecvDelay(): void;
1619
+ /**
1620
+ *
1621
+ * @returns {undefined}
1622
+ */
1623
+ setEndLocalSDPGenRemoteSDPRecvDelay(): void;
1624
+ /**
1625
+ *
1626
+ * @returns {string} duration between local SDP generation and remote SDP reception
1627
+ */
1628
+ getLocalSDPGenRemoteSDPRecvDelay(): number;
1629
+ /**
1630
+ *
1631
+ * @returns {undefined}
1632
+ */
1633
+ setStartCallInitJoinReq(): void;
1634
+ /**
1635
+ *
1636
+ * @returns {undefined}
1637
+ */
1638
+ setEndCallInitJoinReq(): void;
1639
+ /**
1640
+ *
1641
+ * @returns {string} duration between call initiate and sending join request to locus
1642
+ */
1643
+ getCallInitJoinReq(): number;
1644
+ /**
1645
+ *
1646
+ * @returns {undefined}
1647
+ */
1648
+ setStartJoinReqResp(): void;
1649
+ /**
1650
+ *
1651
+ * @returns {undefined}
1652
+ */
1653
+ setEndJoinReqResp(): void;
1654
+ /**
1655
+ *
1656
+ * @returns {string} duration between sending locus join request and receiving join response
1657
+ */
1658
+ getJoinReqResp(): number;
1659
+ /**
1660
+ *
1661
+ * @returns {string} duration between call initiate and successful locus join (even if it is in lobby)
1662
+ */
1663
+ getTotalJmt(): number;
1664
+ /**
1665
+ *
1666
+ * @returns {string} one of 'attendee','host','cohost', returns the user type of the current user
1667
+ */
1668
+ getCurUserType(): "host" | "cohost" | "attendee";
1669
+ /**
1670
+ *
1671
+ * @returns {string} one of 'login-ci','unverified-guest', returns the login type of the current user
1672
+ */
1673
+ getCurLoginType(): "unverified-guest" | "login-ci";
1674
+ /**
1675
+ * End the current meeting for all
1676
+ * @returns {Promise}
1677
+ * @public
1678
+ * @memberof Meeting
1679
+ */
1680
+ endMeetingForAll(): any;
1681
+ /**
1682
+ * clear the meeting data
1683
+ * @returns {undefined}
1684
+ * @public
1685
+ * @memberof Meeting
1686
+ */
1687
+ clearMeetingData: () => void;
1688
+ /**
1689
+ * starts keepAlives being sent
1690
+ * @returns {void}
1691
+ * @private
1692
+ * @memberof Meeting
1693
+ */
1694
+ startKeepAlive: () => void;
1695
+ /**
1696
+ * stops keepAlives being sent
1697
+ * @returns {void}
1698
+ * @private
1699
+ * @memberof Meeting
1700
+ */
1701
+ stopKeepAlive: () => void;
1702
+ /**
1703
+ * Send a reaction inside the meeting.
1704
+ *
1705
+ * @param {ReactionServerType} reactionType - type of reaction to be sent. Example: "thumbs_up"
1706
+ * @param {SkinToneType} skinToneType - skin tone for the reaction. Example: "medium_dark"
1707
+ * @returns {Promise}
1708
+ * @public
1709
+ * @memberof Meeting
1710
+ */
1711
+ sendReaction(reactionType: ReactionServerType, skinToneType?: SkinToneType): any;
1712
+ /**
1713
+ * Method to enable or disable reactions inside the meeting.
1714
+ *
1715
+ * @param {boolean} enable - enable or disable reactions
1716
+ * @returns {Promise}
1717
+ * @public
1718
+ * @memberof Meeting
1719
+ */
1720
+ toggleReactions(enable: boolean): any;
1721
+ /**
1722
+ * Throws if we don't have a media connection created
1723
+ *
1724
+ * @returns {void}
1725
+ */
1726
+ private checkMediaConnection;
1727
+ /**
1728
+ * Publishes specified local tracks in the meeting
1729
+ *
1730
+ * @param {Object} tracks
1731
+ * @returns {Promise}
1732
+ */
1733
+ publishTracks(tracks: {
1734
+ microphone?: LocalMicrophoneTrack;
1735
+ camera?: LocalCameraTrack;
1736
+ screenShare: {
1737
+ audio?: LocalTrack;
1738
+ video?: LocalDisplayTrack;
1739
+ };
1740
+ }): Promise<void>;
1741
+ /**
1742
+ * Un-publishes specified local tracks in the meeting
1743
+ *
1744
+ * @param {Array<MediaStreamTrack>} tracks
1745
+ * @returns {Promise}
1746
+ */
1747
+ unpublishTracks(tracks: LocalTrack[]): Promise<void>;
1748
+ }