mediasfu-shared 1.0.6 → 1.2.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 (558) hide show
  1. package/HEADLESS_GUIDE.md +156 -0
  2. package/README.md +130 -62
  3. package/dist/ProducerClient/producerClientEmits/createDeviceClient.d.ts +23 -0
  4. package/dist/ProducerClient/producerClientEmits/createDeviceClient.d.ts.map +1 -0
  5. package/dist/ProducerClient/producerClientEmits/joinRoomClient.d.ts +22 -0
  6. package/dist/ProducerClient/producerClientEmits/joinRoomClient.d.ts.map +1 -0
  7. package/dist/ProducerClient/producerClientEmits/updateRoomParametersClient.d.ts +85 -0
  8. package/dist/ProducerClient/producerClientEmits/updateRoomParametersClient.d.ts.map +1 -0
  9. package/dist/consumers/addVideosGrid.d.ts +10 -0
  10. package/dist/consumers/addVideosGrid.d.ts.map +1 -0
  11. package/dist/consumers/autoAdjust.d.ts +41 -0
  12. package/dist/consumers/autoAdjust.d.ts.map +1 -0
  13. package/dist/consumers/calculateRowsAndColumns.d.ts +24 -0
  14. package/dist/consumers/calculateRowsAndColumns.d.ts.map +1 -0
  15. package/dist/consumers/changeVids.d.ts +252 -0
  16. package/dist/consumers/changeVids.d.ts.map +1 -0
  17. package/dist/consumers/checkGrid.d.ts +42 -0
  18. package/dist/consumers/checkGrid.d.ts.map +1 -0
  19. package/dist/consumers/checkPermission.d.ts +42 -0
  20. package/dist/consumers/checkPermission.d.ts.map +1 -0
  21. package/dist/consumers/checkScreenShare.d.ts +59 -0
  22. package/dist/consumers/checkScreenShare.d.ts.map +1 -0
  23. package/dist/consumers/closeAndResize.d.ts +157 -0
  24. package/dist/consumers/closeAndResize.d.ts.map +1 -0
  25. package/dist/consumers/compareActiveNames.d.ts +50 -0
  26. package/dist/consumers/compareActiveNames.d.ts.map +1 -0
  27. package/dist/consumers/compareScreenStates.d.ts +55 -0
  28. package/dist/consumers/compareScreenStates.d.ts.map +1 -0
  29. package/dist/consumers/connectIps.d.ts +66 -0
  30. package/dist/consumers/connectIps.d.ts.map +1 -0
  31. package/dist/consumers/connectLocalIps.d.ts +52 -0
  32. package/dist/consumers/connectLocalIps.d.ts.map +1 -0
  33. package/dist/consumers/connectRecvTransport.d.ts +64 -0
  34. package/dist/consumers/connectRecvTransport.d.ts.map +1 -0
  35. package/dist/consumers/connectSendTransport.d.ts +75 -0
  36. package/dist/consumers/connectSendTransport.d.ts.map +1 -0
  37. package/dist/consumers/connectSendTransportAudio.d.ts +62 -0
  38. package/dist/consumers/connectSendTransportAudio.d.ts.map +1 -0
  39. package/dist/consumers/connectSendTransportScreen.d.ts +72 -0
  40. package/dist/consumers/connectSendTransportScreen.d.ts.map +1 -0
  41. package/dist/consumers/connectSendTransportVideo.d.ts +75 -0
  42. package/dist/consumers/connectSendTransportVideo.d.ts.map +1 -0
  43. package/dist/consumers/consumerResume.d.ts +16 -0
  44. package/dist/consumers/consumerResume.d.ts.map +1 -0
  45. package/dist/consumers/controlMedia.d.ts +61 -0
  46. package/dist/consumers/controlMedia.d.ts.map +1 -0
  47. package/dist/consumers/createSendTransport.d.ts +80 -0
  48. package/dist/consumers/createSendTransport.d.ts.map +1 -0
  49. package/dist/consumers/disconnectSendTransportAudio.d.ts +79 -0
  50. package/dist/consumers/disconnectSendTransportAudio.d.ts.map +1 -0
  51. package/dist/consumers/disconnectSendTransportScreen.d.ts +61 -0
  52. package/dist/consumers/disconnectSendTransportScreen.d.ts.map +1 -0
  53. package/dist/consumers/disconnectSendTransportVideo.d.ts +72 -0
  54. package/dist/consumers/disconnectSendTransportVideo.d.ts.map +1 -0
  55. package/dist/consumers/dispStreams.d.ts +189 -0
  56. package/dist/consumers/dispStreams.d.ts.map +1 -0
  57. package/dist/consumers/frameworkConsumerContract.d.ts +2 -0
  58. package/dist/consumers/frameworkConsumerContract.d.ts.map +1 -0
  59. package/dist/consumers/generatePageContent.d.ts +68 -0
  60. package/dist/consumers/generatePageContent.d.ts.map +1 -0
  61. package/dist/consumers/getEstimate.d.ts +62 -0
  62. package/dist/consumers/getEstimate.d.ts.map +1 -0
  63. package/dist/consumers/getPipedProducersAlt.d.ts +62 -0
  64. package/dist/consumers/getPipedProducersAlt.d.ts.map +1 -0
  65. package/dist/consumers/getProducersPiped.d.ts +49 -0
  66. package/dist/consumers/getProducersPiped.d.ts.map +1 -0
  67. package/dist/consumers/getVideos.d.ts +49 -0
  68. package/dist/consumers/getVideos.d.ts.map +1 -0
  69. package/dist/consumers/gridLayout/addVideosGrid.engine.d.ts +19 -0
  70. package/dist/consumers/gridLayout/addVideosGrid.engine.d.ts.map +1 -0
  71. package/dist/consumers/gridLayout/prepopulateUserMedia.engine.d.ts +138 -0
  72. package/dist/consumers/gridLayout/prepopulateUserMedia.engine.d.ts.map +1 -0
  73. package/dist/consumers/index.cjs +80 -0
  74. package/dist/consumers/index.cjs.map +1 -0
  75. package/dist/consumers/index.d.ts +62 -0
  76. package/dist/consumers/index.d.ts.map +1 -0
  77. package/dist/consumers/index.js +80 -0
  78. package/dist/consumers/index.js.map +1 -0
  79. package/dist/consumers/mixStreams.d.ts +37 -0
  80. package/dist/consumers/mixStreams.d.ts.map +1 -0
  81. package/dist/consumers/onScreenChanges.d.ts +62 -0
  82. package/dist/consumers/onScreenChanges.d.ts.map +1 -0
  83. package/dist/consumers/prepopulateUserMedia.d.ts +10 -0
  84. package/dist/consumers/prepopulateUserMedia.d.ts.map +1 -0
  85. package/dist/consumers/processConsumerTransports.d.ts +73 -0
  86. package/dist/consumers/processConsumerTransports.d.ts.map +1 -0
  87. package/dist/consumers/processConsumerTransportsAudio.d.ts +57 -0
  88. package/dist/consumers/processConsumerTransportsAudio.d.ts.map +1 -0
  89. package/dist/consumers/rePort.d.ts +63 -0
  90. package/dist/consumers/rePort.d.ts.map +1 -0
  91. package/dist/consumers/reUpdateInter.d.ts +142 -0
  92. package/dist/consumers/reUpdateInter.d.ts.map +1 -0
  93. package/dist/consumers/readjust.d.ts +68 -0
  94. package/dist/consumers/readjust.d.ts.map +1 -0
  95. package/dist/consumers/receiveAllPipedTransports.d.ts +44 -0
  96. package/dist/consumers/receiveAllPipedTransports.d.ts.map +1 -0
  97. package/dist/consumers/receiveRoomMessages.d.ts +31 -0
  98. package/dist/consumers/receiveRoomMessages.d.ts.map +1 -0
  99. package/dist/consumers/reorderStreams.d.ts +98 -0
  100. package/dist/consumers/reorderStreams.d.ts.map +1 -0
  101. package/dist/consumers/requestScreenShare.d.ts +47 -0
  102. package/dist/consumers/requestScreenShare.d.ts.map +1 -0
  103. package/dist/consumers/resumePauseAudioStreams.d.ts +85 -0
  104. package/dist/consumers/resumePauseAudioStreams.d.ts.map +1 -0
  105. package/dist/consumers/resumePauseStreams.d.ts +68 -0
  106. package/dist/consumers/resumePauseStreams.d.ts.map +1 -0
  107. package/dist/consumers/resumeSendTransportAudio.d.ts +65 -0
  108. package/dist/consumers/resumeSendTransportAudio.d.ts.map +1 -0
  109. package/dist/consumers/signalNewConsumerTransport.d.ts +59 -0
  110. package/dist/consumers/signalNewConsumerTransport.d.ts.map +1 -0
  111. package/dist/consumers/socketReceiveMethods/joinConsumeRoom.d.ts +76 -0
  112. package/dist/consumers/socketReceiveMethods/joinConsumeRoom.d.ts.map +1 -0
  113. package/dist/consumers/socketReceiveMethods/newPipeProducer.d.ts +119 -0
  114. package/dist/consumers/socketReceiveMethods/newPipeProducer.d.ts.map +1 -0
  115. package/dist/consumers/socketReceiveMethods/producerClosed.d.ts +53 -0
  116. package/dist/consumers/socketReceiveMethods/producerClosed.d.ts.map +1 -0
  117. package/dist/consumers/startShareScreen.d.ts +58 -0
  118. package/dist/consumers/startShareScreen.d.ts.map +1 -0
  119. package/dist/consumers/stopShareScreen.d.ts +127 -0
  120. package/dist/consumers/stopShareScreen.d.ts.map +1 -0
  121. package/dist/consumers/streamSuccessAudio.d.ts +149 -0
  122. package/dist/consumers/streamSuccessAudio.d.ts.map +1 -0
  123. package/dist/consumers/streamSuccessAudioSwitch.d.ts +131 -0
  124. package/dist/consumers/streamSuccessAudioSwitch.d.ts.map +1 -0
  125. package/dist/consumers/streamSuccessScreen.d.ts +109 -0
  126. package/dist/consumers/streamSuccessScreen.d.ts.map +1 -0
  127. package/dist/consumers/streamSuccessVideo.d.ts +160 -0
  128. package/dist/consumers/streamSuccessVideo.d.ts.map +1 -0
  129. package/dist/consumers/switchUserAudio.d.ts +56 -0
  130. package/dist/consumers/switchUserAudio.d.ts.map +1 -0
  131. package/dist/consumers/switchUserVideo.d.ts +77 -0
  132. package/dist/consumers/switchUserVideo.d.ts.map +1 -0
  133. package/dist/consumers/switchUserVideoAlt.d.ts +69 -0
  134. package/dist/consumers/switchUserVideoAlt.d.ts.map +1 -0
  135. package/dist/consumers/translationConsumerSwitch.d.ts +67 -0
  136. package/dist/consumers/translationConsumerSwitch.d.ts.map +1 -0
  137. package/dist/consumers/trigger.d.ts +71 -0
  138. package/dist/consumers/trigger.d.ts.map +1 -0
  139. package/dist/consumers/updateMiniCardsGrid.d.ts +65 -0
  140. package/dist/consumers/updateMiniCardsGrid.d.ts.map +1 -0
  141. package/dist/consumers/updateParticipantAudioDecibels.d.ts +31 -0
  142. package/dist/consumers/updateParticipantAudioDecibels.d.ts.map +1 -0
  143. package/dist/getParticipantMedia-B0JS6d2b.js +3555 -0
  144. package/dist/getParticipantMedia-B0JS6d2b.js.map +1 -0
  145. package/dist/getParticipantMedia-CdcYqcbD.cjs +3554 -0
  146. package/dist/getParticipantMedia-CdcYqcbD.cjs.map +1 -0
  147. package/dist/index.cjs +2727 -13252
  148. package/dist/index.cjs.map +1 -1
  149. package/dist/index.d.ts +192 -11233
  150. package/dist/index.d.ts.map +1 -0
  151. package/dist/index.js +2636 -13143
  152. package/dist/index.js.map +1 -1
  153. package/dist/index.native.cjs +352 -0
  154. package/dist/index.native.cjs.map +1 -0
  155. package/dist/index.native.d.ts +204 -0
  156. package/dist/index.native.d.ts.map +1 -0
  157. package/dist/index.native.js +352 -0
  158. package/dist/index.native.js.map +1 -0
  159. package/dist/joinLocalRoom-BdM1msQt.cjs +673 -0
  160. package/dist/joinLocalRoom-BdM1msQt.cjs.map +1 -0
  161. package/dist/joinLocalRoom-CvteNe4R.js +657 -0
  162. package/dist/joinLocalRoom-CvteNe4R.js.map +1 -0
  163. package/dist/joinRoomOnMediaSFU-CC8RVJgr.cjs +1222 -0
  164. package/dist/joinRoomOnMediaSFU-CC8RVJgr.cjs.map +1 -0
  165. package/dist/joinRoomOnMediaSFU-y6vJ1OBo.js +1223 -0
  166. package/dist/joinRoomOnMediaSFU-y6vJ1OBo.js.map +1 -0
  167. package/dist/methods/background/launchBackground.d.ts +10 -0
  168. package/dist/methods/background/launchBackground.d.ts.map +1 -0
  169. package/dist/methods/breakoutRooms/breakoutRoomUpdated.d.ts +67 -0
  170. package/dist/methods/breakoutRooms/breakoutRoomUpdated.d.ts.map +1 -0
  171. package/dist/methods/breakoutRooms/handleStartBreakout.d.ts +42 -0
  172. package/dist/methods/breakoutRooms/handleStartBreakout.d.ts.map +1 -0
  173. package/dist/methods/breakoutRooms/handleStopBreakout.d.ts +33 -0
  174. package/dist/methods/breakoutRooms/handleStopBreakout.d.ts.map +1 -0
  175. package/dist/methods/breakoutRooms/index.d.ts +5 -0
  176. package/dist/methods/breakoutRooms/index.d.ts.map +1 -0
  177. package/dist/methods/breakoutRooms/launchBreakoutRooms.d.ts +25 -0
  178. package/dist/methods/breakoutRooms/launchBreakoutRooms.d.ts.map +1 -0
  179. package/dist/methods/coHost/launchCoHost.d.ts +25 -0
  180. package/dist/methods/coHost/launchCoHost.d.ts.map +1 -0
  181. package/dist/methods/coHostMethods/index.d.ts +3 -0
  182. package/dist/methods/coHostMethods/index.d.ts.map +1 -0
  183. package/dist/methods/coHostMethods/modifyCoHostSettings.d.ts +49 -0
  184. package/dist/methods/coHostMethods/modifyCoHostSettings.d.ts.map +1 -0
  185. package/dist/methods/displaySettings/index.d.ts +2 -0
  186. package/dist/methods/displaySettings/index.d.ts.map +1 -0
  187. package/dist/methods/displaySettings/launchDisplaySettings.d.ts +25 -0
  188. package/dist/methods/displaySettings/launchDisplaySettings.d.ts.map +1 -0
  189. package/dist/methods/displaySettings/modifyDisplaySettings.d.ts +106 -0
  190. package/dist/methods/displaySettings/modifyDisplaySettings.d.ts.map +1 -0
  191. package/dist/methods/exit/confirmExit.d.ts +38 -0
  192. package/dist/methods/exit/confirmExit.d.ts.map +1 -0
  193. package/dist/methods/exit/index.d.ts +3 -0
  194. package/dist/methods/exit/index.d.ts.map +1 -0
  195. package/dist/methods/exit/launchConfirmExit.d.ts +23 -0
  196. package/dist/methods/exit/launchConfirmExit.d.ts.map +1 -0
  197. package/dist/methods/index.cjs +3975 -0
  198. package/dist/methods/index.cjs.map +1 -0
  199. package/dist/methods/index.d.ts +66 -0
  200. package/dist/methods/index.d.ts.map +1 -0
  201. package/dist/methods/index.js +3976 -0
  202. package/dist/methods/index.js.map +1 -0
  203. package/dist/methods/mediaSettings/launchMediaSettings.d.ts +38 -0
  204. package/dist/methods/mediaSettings/launchMediaSettings.d.ts.map +1 -0
  205. package/dist/methods/menu/launchMenuModal.d.ts +22 -0
  206. package/dist/methods/menu/launchMenuModal.d.ts.map +1 -0
  207. package/dist/methods/message/index.d.ts +2 -0
  208. package/dist/methods/message/index.d.ts.map +1 -0
  209. package/dist/methods/message/launchMessages.d.ts +24 -0
  210. package/dist/methods/message/launchMessages.d.ts.map +1 -0
  211. package/dist/methods/message/sendMessage.d.ts +63 -0
  212. package/dist/methods/message/sendMessage.d.ts.map +1 -0
  213. package/dist/methods/panelists/focusPanelists.d.ts +24 -0
  214. package/dist/methods/panelists/focusPanelists.d.ts.map +1 -0
  215. package/dist/methods/panelists/index.d.ts +4 -0
  216. package/dist/methods/panelists/index.d.ts.map +1 -0
  217. package/dist/methods/panelists/launchPanelists.d.ts +7 -0
  218. package/dist/methods/panelists/launchPanelists.d.ts.map +1 -0
  219. package/dist/methods/panelists/updatePanelists.d.ts +35 -0
  220. package/dist/methods/panelists/updatePanelists.d.ts.map +1 -0
  221. package/dist/methods/participants/index.d.ts +4 -0
  222. package/dist/methods/participants/index.d.ts.map +1 -0
  223. package/dist/methods/participants/launchParticipants.d.ts +22 -0
  224. package/dist/methods/participants/launchParticipants.d.ts.map +1 -0
  225. package/dist/methods/participants/messageParticipants.d.ts +43 -0
  226. package/dist/methods/participants/messageParticipants.d.ts.map +1 -0
  227. package/dist/methods/participants/muteParticipants.d.ts +41 -0
  228. package/dist/methods/participants/muteParticipants.d.ts.map +1 -0
  229. package/dist/methods/participants/removeParticipants.d.ts +47 -0
  230. package/dist/methods/participants/removeParticipants.d.ts.map +1 -0
  231. package/dist/methods/permissions/index.d.ts +4 -0
  232. package/dist/methods/permissions/index.d.ts.map +1 -0
  233. package/dist/methods/permissions/launchPermissions.d.ts +7 -0
  234. package/dist/methods/permissions/launchPermissions.d.ts.map +1 -0
  235. package/dist/methods/permissions/updateParticipantPermission.d.ts +25 -0
  236. package/dist/methods/permissions/updateParticipantPermission.d.ts.map +1 -0
  237. package/dist/methods/permissions/updatePermissionConfig.d.ts +22 -0
  238. package/dist/methods/permissions/updatePermissionConfig.d.ts.map +1 -0
  239. package/dist/methods/polls/handleCreatePoll.d.ts +39 -0
  240. package/dist/methods/polls/handleCreatePoll.d.ts.map +1 -0
  241. package/dist/methods/polls/handleEndPoll.d.ts +34 -0
  242. package/dist/methods/polls/handleEndPoll.d.ts.map +1 -0
  243. package/dist/methods/polls/handleVotePoll.d.ts +39 -0
  244. package/dist/methods/polls/handleVotePoll.d.ts.map +1 -0
  245. package/dist/methods/polls/index.d.ts +4 -0
  246. package/dist/methods/polls/index.d.ts.map +1 -0
  247. package/dist/methods/polls/launchPoll.d.ts +22 -0
  248. package/dist/methods/polls/launchPoll.d.ts.map +1 -0
  249. package/dist/methods/polls/pollUpdated.d.ts +38 -0
  250. package/dist/methods/polls/pollUpdated.d.ts.map +1 -0
  251. package/dist/methods/prejoin/handleCreateRoom.d.ts +77 -0
  252. package/dist/methods/prejoin/handleCreateRoom.d.ts.map +1 -0
  253. package/dist/methods/prejoin/handleJoinRoom.d.ts +56 -0
  254. package/dist/methods/prejoin/handleJoinRoom.d.ts.map +1 -0
  255. package/dist/methods/prejoin/index.d.ts +5 -0
  256. package/dist/methods/prejoin/index.d.ts.map +1 -0
  257. package/dist/methods/recording/checkPauseState.d.ts +34 -0
  258. package/dist/methods/recording/checkPauseState.d.ts.map +1 -0
  259. package/dist/methods/recording/checkResumeState.d.ts +30 -0
  260. package/dist/methods/recording/checkResumeState.d.ts.map +1 -0
  261. package/dist/methods/recording/confirmRecording.d.ts +46 -0
  262. package/dist/methods/recording/confirmRecording.d.ts.map +1 -0
  263. package/dist/methods/recording/launchRecording.d.ts +56 -0
  264. package/dist/methods/recording/launchRecording.d.ts.map +1 -0
  265. package/dist/methods/recording/recordPauseTimer.d.ts +31 -0
  266. package/dist/methods/recording/recordPauseTimer.d.ts.map +1 -0
  267. package/dist/methods/recording/recordResumeTimer.d.ts +29 -0
  268. package/dist/methods/recording/recordResumeTimer.d.ts.map +1 -0
  269. package/dist/methods/recording/recordStartTimer.d.ts +45 -0
  270. package/dist/methods/recording/recordStartTimer.d.ts.map +1 -0
  271. package/dist/methods/recording/recordUpdateTimer.d.ts +29 -0
  272. package/dist/methods/recording/recordUpdateTimer.d.ts.map +1 -0
  273. package/dist/methods/recording/startRecording.d.ts +122 -0
  274. package/dist/methods/recording/startRecording.d.ts.map +1 -0
  275. package/dist/methods/recording/stopRecording.d.ts +36 -0
  276. package/dist/methods/recording/stopRecording.d.ts.map +1 -0
  277. package/dist/methods/recording/timeLeftRecording.d.ts +13 -0
  278. package/dist/methods/recording/timeLeftRecording.d.ts.map +1 -0
  279. package/dist/methods/recording/updateRecording.d.ts +49 -0
  280. package/dist/methods/recording/updateRecording.d.ts.map +1 -0
  281. package/dist/methods/requests/hostRequestResponse.d.ts +33 -0
  282. package/dist/methods/requests/hostRequestResponse.d.ts.map +1 -0
  283. package/dist/methods/requests/index.d.ts +2 -0
  284. package/dist/methods/requests/index.d.ts.map +1 -0
  285. package/dist/methods/requests/launchRequests.d.ts +22 -0
  286. package/dist/methods/requests/launchRequests.d.ts.map +1 -0
  287. package/dist/methods/requests/respondToRequests.d.ts +38 -0
  288. package/dist/methods/requests/respondToRequests.d.ts.map +1 -0
  289. package/dist/methods/settings/index.d.ts +3 -0
  290. package/dist/methods/settings/index.d.ts.map +1 -0
  291. package/dist/methods/settings/launchSettings.d.ts +22 -0
  292. package/dist/methods/settings/launchSettings.d.ts.map +1 -0
  293. package/dist/methods/settings/modifySettings.d.ts +45 -0
  294. package/dist/methods/settings/modifySettings.d.ts.map +1 -0
  295. package/dist/methods/socketReceive/allMembers.d.ts +117 -0
  296. package/dist/methods/socketReceive/allMembers.d.ts.map +1 -0
  297. package/dist/methods/socketReceive/allMembersRest.d.ts +122 -0
  298. package/dist/methods/socketReceive/allMembersRest.d.ts.map +1 -0
  299. package/dist/methods/socketReceive/allWaitingRoomMembers.d.ts +24 -0
  300. package/dist/methods/socketReceive/allWaitingRoomMembers.d.ts.map +1 -0
  301. package/dist/methods/socketReceive/banParticipant.d.ts +44 -0
  302. package/dist/methods/socketReceive/banParticipant.d.ts.map +1 -0
  303. package/dist/methods/socketReceive/controlMediaHost.d.ts +62 -0
  304. package/dist/methods/socketReceive/controlMediaHost.d.ts.map +1 -0
  305. package/dist/methods/socketReceive/disconnect.d.ts +24 -0
  306. package/dist/methods/socketReceive/disconnect.d.ts.map +1 -0
  307. package/dist/methods/socketReceive/disconnectUserSelf.d.ts +29 -0
  308. package/dist/methods/socketReceive/disconnectUserSelf.d.ts.map +1 -0
  309. package/dist/methods/socketReceive/getDomains.d.ts +48 -0
  310. package/dist/methods/socketReceive/getDomains.d.ts.map +1 -0
  311. package/dist/methods/socketReceive/meetingEnded.d.ts +27 -0
  312. package/dist/methods/socketReceive/meetingEnded.d.ts.map +1 -0
  313. package/dist/methods/socketReceive/meetingStillThere.d.ts +19 -0
  314. package/dist/methods/socketReceive/meetingStillThere.d.ts.map +1 -0
  315. package/dist/methods/socketReceive/panelistReceiveMethods.d.ts +66 -0
  316. package/dist/methods/socketReceive/panelistReceiveMethods.d.ts.map +1 -0
  317. package/dist/methods/socketReceive/participantRequested.d.ts +28 -0
  318. package/dist/methods/socketReceive/participantRequested.d.ts.map +1 -0
  319. package/dist/methods/socketReceive/permissionReceiveMethods.d.ts +23 -0
  320. package/dist/methods/socketReceive/permissionReceiveMethods.d.ts.map +1 -0
  321. package/dist/methods/socketReceive/personJoined.d.ts +24 -0
  322. package/dist/methods/socketReceive/personJoined.d.ts.map +1 -0
  323. package/dist/methods/socketReceive/producerMediaClosed.d.ts +66 -0
  324. package/dist/methods/socketReceive/producerMediaClosed.d.ts.map +1 -0
  325. package/dist/methods/socketReceive/producerMediaPaused.d.ts +70 -0
  326. package/dist/methods/socketReceive/producerMediaPaused.d.ts.map +1 -0
  327. package/dist/methods/socketReceive/producerMediaResumed.d.ts +53 -0
  328. package/dist/methods/socketReceive/producerMediaResumed.d.ts.map +1 -0
  329. package/dist/methods/socketReceive/reInitiateRecording.d.ts +33 -0
  330. package/dist/methods/socketReceive/reInitiateRecording.d.ts.map +1 -0
  331. package/dist/methods/socketReceive/receiveMessage.d.ts +36 -0
  332. package/dist/methods/socketReceive/receiveMessage.d.ts.map +1 -0
  333. package/dist/methods/socketReceive/recordingNotice.d.ts +98 -0
  334. package/dist/methods/socketReceive/recordingNotice.d.ts.map +1 -0
  335. package/dist/methods/socketReceive/roomRecordParams.d.ts +60 -0
  336. package/dist/methods/socketReceive/roomRecordParams.d.ts.map +1 -0
  337. package/dist/methods/socketReceive/screenProducerId.d.ts +36 -0
  338. package/dist/methods/socketReceive/screenProducerId.d.ts.map +1 -0
  339. package/dist/methods/socketReceive/startRecords.d.ts +31 -0
  340. package/dist/methods/socketReceive/startRecords.d.ts.map +1 -0
  341. package/dist/methods/socketReceive/stoppedRecording.d.ts +24 -0
  342. package/dist/methods/socketReceive/stoppedRecording.d.ts.map +1 -0
  343. package/dist/methods/socketReceive/translationReceiveMethods.d.ts +227 -0
  344. package/dist/methods/socketReceive/translationReceiveMethods.d.ts.map +1 -0
  345. package/dist/methods/socketReceive/updateConsumingDomains.d.ts +60 -0
  346. package/dist/methods/socketReceive/updateConsumingDomains.d.ts.map +1 -0
  347. package/dist/methods/socketReceive/updateMediaSettings.d.ts +28 -0
  348. package/dist/methods/socketReceive/updateMediaSettings.d.ts.map +1 -0
  349. package/dist/methods/socketReceive/updatedCoHost.d.ts +38 -0
  350. package/dist/methods/socketReceive/updatedCoHost.d.ts.map +1 -0
  351. package/dist/methods/socketReceive/userWaiting.d.ts +30 -0
  352. package/dist/methods/socketReceive/userWaiting.d.ts.map +1 -0
  353. package/dist/methods/stream/clickAudio.d.ts +71 -0
  354. package/dist/methods/stream/clickAudio.d.ts.map +1 -0
  355. package/dist/methods/stream/clickChat.d.ts +11 -0
  356. package/dist/methods/stream/clickChat.d.ts.map +1 -0
  357. package/dist/methods/stream/clickScreenShare.d.ts +45 -0
  358. package/dist/methods/stream/clickScreenShare.d.ts.map +1 -0
  359. package/dist/methods/stream/clickVideo.d.ts +101 -0
  360. package/dist/methods/stream/clickVideo.d.ts.map +1 -0
  361. package/dist/methods/stream/index.d.ts +5 -0
  362. package/dist/methods/stream/index.d.ts.map +1 -0
  363. package/dist/methods/stream/switchAudio.d.ts +40 -0
  364. package/dist/methods/stream/switchAudio.d.ts.map +1 -0
  365. package/dist/methods/stream/switchVideo.d.ts +56 -0
  366. package/dist/methods/stream/switchVideo.d.ts.map +1 -0
  367. package/dist/methods/stream/switchVideoAlt.d.ts +55 -0
  368. package/dist/methods/stream/switchVideoAlt.d.ts.map +1 -0
  369. package/dist/methods/utils/SoundPlayer.d.ts +19 -0
  370. package/dist/methods/utils/SoundPlayer.d.ts.map +1 -0
  371. package/dist/methods/utils/checkLimitsAndMakeRequest.d.ts +30 -0
  372. package/dist/methods/utils/checkLimitsAndMakeRequest.d.ts.map +1 -0
  373. package/dist/methods/utils/createResponseJoinRoom.d.ts +24 -0
  374. package/dist/methods/utils/createResponseJoinRoom.d.ts.map +1 -0
  375. package/dist/methods/utils/createRoomOnMediaSFU.d.ts +28 -0
  376. package/dist/methods/utils/createRoomOnMediaSFU.d.ts.map +1 -0
  377. package/dist/methods/utils/formatNumber.d.ts +21 -0
  378. package/dist/methods/utils/formatNumber.d.ts.map +1 -0
  379. package/dist/methods/utils/generateRandomMessages.d.ts +11 -0
  380. package/dist/methods/utils/generateRandomMessages.d.ts.map +1 -0
  381. package/dist/methods/utils/generateRandomParticipants.d.ts +10 -0
  382. package/dist/methods/utils/generateRandomParticipants.d.ts.map +1 -0
  383. package/dist/methods/utils/generateRandomPolls.d.ts +7 -0
  384. package/dist/methods/utils/generateRandomPolls.d.ts.map +1 -0
  385. package/dist/methods/utils/generateRandomRequestList.d.ts +10 -0
  386. package/dist/methods/utils/generateRandomRequestList.d.ts.map +1 -0
  387. package/dist/methods/utils/generateRandomWaitingRoomList.d.ts +4 -0
  388. package/dist/methods/utils/generateRandomWaitingRoomList.d.ts.map +1 -0
  389. package/dist/methods/utils/getModalPosition.d.ts +7 -0
  390. package/dist/methods/utils/getModalPosition.d.ts.map +1 -0
  391. package/dist/methods/utils/getOverlayPosition.d.ts +22 -0
  392. package/dist/methods/utils/getOverlayPosition.d.ts.map +1 -0
  393. package/dist/methods/utils/getParticipantMedia.d.ts +55 -0
  394. package/dist/methods/utils/getParticipantMedia.d.ts.map +1 -0
  395. package/dist/methods/utils/headless/getCurrentParams.d.ts +27 -0
  396. package/dist/methods/utils/headless/getCurrentParams.d.ts.map +1 -0
  397. package/dist/methods/utils/headless/getMediaStreams.d.ts +96 -0
  398. package/dist/methods/utils/headless/getMediaStreams.d.ts.map +1 -0
  399. package/dist/methods/utils/headless/getRoomReadiness.d.ts +25 -0
  400. package/dist/methods/utils/headless/getRoomReadiness.d.ts.map +1 -0
  401. package/dist/methods/utils/headless/headlessTypes.d.ts +89 -0
  402. package/dist/methods/utils/headless/headlessTypes.d.ts.map +1 -0
  403. package/dist/methods/utils/headless/index.d.ts +29 -0
  404. package/dist/methods/utils/headless/index.d.ts.map +1 -0
  405. package/dist/methods/utils/headless/mediaPermissions.d.ts +53 -0
  406. package/dist/methods/utils/headless/mediaPermissions.d.ts.map +1 -0
  407. package/dist/methods/utils/headless/mediaProduction.d.ts +177 -0
  408. package/dist/methods/utils/headless/mediaProduction.d.ts.map +1 -0
  409. package/dist/methods/utils/headless/moderation.d.ts +157 -0
  410. package/dist/methods/utils/headless/moderation.d.ts.map +1 -0
  411. package/dist/methods/utils/headless/participantState.d.ts +128 -0
  412. package/dist/methods/utils/headless/participantState.d.ts.map +1 -0
  413. package/dist/methods/utils/headless/playback.d.ts +106 -0
  414. package/dist/methods/utils/headless/playback.d.ts.map +1 -0
  415. package/dist/methods/utils/headless/roomActions.d.ts +88 -0
  416. package/dist/methods/utils/headless/roomActions.d.ts.map +1 -0
  417. package/dist/methods/utils/headless/sessionControls.d.ts +159 -0
  418. package/dist/methods/utils/headless/sessionControls.d.ts.map +1 -0
  419. package/dist/methods/utils/headless/sessionExtras.d.ts +291 -0
  420. package/dist/methods/utils/headless/sessionExtras.d.ts.map +1 -0
  421. package/dist/methods/utils/headless/sessionFeatures.d.ts +159 -0
  422. package/dist/methods/utils/headless/sessionFeatures.d.ts.map +1 -0
  423. package/dist/methods/utils/headless/viewerSession.d.ts +125 -0
  424. package/dist/methods/utils/headless/viewerSession.d.ts.map +1 -0
  425. package/dist/methods/utils/headless/virtualBackground.d.ts +72 -0
  426. package/dist/methods/utils/headless/virtualBackground.d.ts.map +1 -0
  427. package/dist/methods/utils/initialValuesState.d.ts +388 -0
  428. package/dist/methods/utils/initialValuesState.d.ts.map +1 -0
  429. package/dist/methods/utils/joinRoomOnMediaSFU.d.ts +56 -0
  430. package/dist/methods/utils/joinRoomOnMediaSFU.d.ts.map +1 -0
  431. package/dist/methods/utils/liveSubtitle.d.ts +36 -0
  432. package/dist/methods/utils/liveSubtitle.d.ts.map +1 -0
  433. package/dist/methods/utils/meetingTimeRemaining.d.ts +15 -0
  434. package/dist/methods/utils/meetingTimeRemaining.d.ts.map +1 -0
  435. package/dist/methods/utils/meetingTimer/startMeetingProgressTimer.d.ts +35 -0
  436. package/dist/methods/utils/meetingTimer/startMeetingProgressTimer.d.ts.map +1 -0
  437. package/dist/methods/utils/producer/aParams.d.ts +3 -0
  438. package/dist/methods/utils/producer/aParams.d.ts.map +1 -0
  439. package/dist/methods/utils/producer/hParams.d.ts +3 -0
  440. package/dist/methods/utils/producer/hParams.d.ts.map +1 -0
  441. package/dist/methods/utils/producer/screenParams.d.ts +3 -0
  442. package/dist/methods/utils/producer/screenParams.d.ts.map +1 -0
  443. package/dist/methods/utils/producer/vParams.d.ts +3 -0
  444. package/dist/methods/utils/producer/vParams.d.ts.map +1 -0
  445. package/dist/methods/utils/producer/videoCaptureConstraints.d.ts +145 -0
  446. package/dist/methods/utils/producer/videoCaptureConstraints.d.ts.map +1 -0
  447. package/dist/methods/utils/resolveMediaSFURoomApi.d.ts +4 -0
  448. package/dist/methods/utils/resolveMediaSFURoomApi.d.ts.map +1 -0
  449. package/dist/methods/utils/sleep.d.ts +21 -0
  450. package/dist/methods/utils/sleep.d.ts.map +1 -0
  451. package/dist/methods/utils/translationLanguages.d.ts +100 -0
  452. package/dist/methods/utils/translationLanguages.d.ts.map +1 -0
  453. package/dist/methods/utils/validateAlphanumeric.d.ts +21 -0
  454. package/dist/methods/utils/validateAlphanumeric.d.ts.map +1 -0
  455. package/dist/methods/utils/virtualBackgroundCompositor.d.ts +21 -0
  456. package/dist/methods/utils/virtualBackgroundCompositor.d.ts.map +1 -0
  457. package/dist/methods/utils/webrtc.d.ts +18 -0
  458. package/dist/methods/utils/webrtc.d.ts.map +1 -0
  459. package/dist/methods/waiting/index.d.ts +2 -0
  460. package/dist/methods/waiting/index.d.ts.map +1 -0
  461. package/dist/methods/waiting/launchWaiting.d.ts +23 -0
  462. package/dist/methods/waiting/launchWaiting.d.ts.map +1 -0
  463. package/dist/methods/waiting/respondToWaiting.d.ts +40 -0
  464. package/dist/methods/waiting/respondToWaiting.d.ts.map +1 -0
  465. package/dist/methods/welcome/handleWelcomeRequest.d.ts +47 -0
  466. package/dist/methods/welcome/handleWelcomeRequest.d.ts.map +1 -0
  467. package/dist/methods/welcome/index.d.ts +3 -0
  468. package/dist/methods/welcome/index.d.ts.map +1 -0
  469. package/dist/methods/whiteboard/captureCanvasStream.d.ts +38 -0
  470. package/dist/methods/whiteboard/captureCanvasStream.d.ts.map +1 -0
  471. package/dist/methods/whiteboard/handleStartWhiteboard.d.ts +31 -0
  472. package/dist/methods/whiteboard/handleStartWhiteboard.d.ts.map +1 -0
  473. package/dist/methods/whiteboard/handleStopWhiteboard.d.ts +25 -0
  474. package/dist/methods/whiteboard/handleStopWhiteboard.d.ts.map +1 -0
  475. package/dist/methods/whiteboard/index.d.ts +5 -0
  476. package/dist/methods/whiteboard/index.d.ts.map +1 -0
  477. package/dist/methods/whiteboard/launchConfigureWhiteboard.d.ts +23 -0
  478. package/dist/methods/whiteboard/launchConfigureWhiteboard.d.ts.map +1 -0
  479. package/dist/producers/producerEmits/joinConRoom.d.ts +54 -0
  480. package/dist/producers/producerEmits/joinConRoom.d.ts.map +1 -0
  481. package/dist/producers/producerEmits/joinLocalRoom.d.ts +30 -0
  482. package/dist/producers/producerEmits/joinLocalRoom.d.ts.map +1 -0
  483. package/dist/producers/producerEmits/joinRoom.d.ts +35 -0
  484. package/dist/producers/producerEmits/joinRoom.d.ts.map +1 -0
  485. package/dist/readme/mediasfu-platform-capabilities.webp +0 -0
  486. package/dist/sockets/SocketManager.d.ts +102 -0
  487. package/dist/sockets/SocketManager.d.ts.map +1 -0
  488. package/dist/translationConsumerSwitch-C20MfNNq.cjs +509 -0
  489. package/dist/translationConsumerSwitch-C20MfNNq.cjs.map +1 -0
  490. package/dist/translationConsumerSwitch-zKuS5wgH.js +510 -0
  491. package/dist/translationConsumerSwitch-zKuS5wgH.js.map +1 -0
  492. package/dist/types/index.cjs +85 -0
  493. package/dist/types/index.cjs.map +1 -0
  494. package/dist/types/index.d.ts +2 -0
  495. package/dist/types/index.d.ts.map +1 -0
  496. package/dist/types/index.js +85 -0
  497. package/dist/types/index.js.map +1 -0
  498. package/dist/types/shared-base-types.d.ts +656 -0
  499. package/dist/types/shared-base-types.d.ts.map +1 -0
  500. package/dist/types/types.d.ts +124 -0
  501. package/dist/types/types.d.ts.map +1 -0
  502. package/dist/updateParticipantAudioDecibels-DLd8Y-Fh.js +5392 -0
  503. package/dist/updateParticipantAudioDecibels-DLd8Y-Fh.js.map +1 -0
  504. package/dist/updateParticipantAudioDecibels-DPmHiy3K.cjs +5391 -0
  505. package/dist/updateParticipantAudioDecibels-DPmHiy3K.cjs.map +1 -0
  506. package/dist/validateAlphanumeric-DKn5BsUP.cjs +15 -0
  507. package/dist/validateAlphanumeric-DKn5BsUP.cjs.map +1 -0
  508. package/dist/validateAlphanumeric-Dk1JB80W.js +16 -0
  509. package/dist/validateAlphanumeric-Dk1JB80W.js.map +1 -0
  510. package/package.json +106 -99
  511. package/src/ProducerClient/producerClientEmits/createDeviceClient.ts +1 -2
  512. package/src/ProducerClient/producerClientEmits/updateRoomParametersClient.ts +1 -1
  513. package/src/consumers/connectIps.ts +1 -1
  514. package/src/consumers/connectRecvTransport.ts +1 -1
  515. package/src/consumers/connectSendTransport.ts +1 -1
  516. package/src/consumers/connectSendTransportAudio.ts +1 -1
  517. package/src/consumers/connectSendTransportScreen.ts +5 -2
  518. package/src/consumers/connectSendTransportVideo.ts +1 -1
  519. package/src/consumers/createSendTransport.ts +34 -29
  520. package/src/consumers/disconnectSendTransportAudio.ts +1 -1
  521. package/src/consumers/disconnectSendTransportScreen.ts +1 -1
  522. package/src/consumers/disconnectSendTransportVideo.ts +1 -1
  523. package/src/consumers/index.ts +61 -0
  524. package/src/consumers/resumeSendTransportAudio.ts +1 -1
  525. package/src/consumers/signalNewConsumerTransport.ts +1 -2
  526. package/src/consumers/socketReceiveMethods/joinConsumeRoom.ts +1 -1
  527. package/src/consumers/socketReceiveMethods/newPipeProducer.ts +1 -1
  528. package/src/consumers/streamSuccessAudio.ts +1 -2
  529. package/src/consumers/streamSuccessAudioSwitch.ts +1 -2
  530. package/src/consumers/streamSuccessVideo.ts +35 -6
  531. package/src/index.native.ts +24 -1
  532. package/src/index.ts +7 -0
  533. package/src/methods/exit/confirmExit.ts +11 -4
  534. package/src/methods/socketReceive/getDomains.ts +1 -1
  535. package/src/methods/utils/getParticipantMedia.ts +112 -0
  536. package/src/methods/utils/headless/getCurrentParams.ts +44 -0
  537. package/src/methods/utils/headless/getMediaStreams.ts +256 -0
  538. package/src/methods/utils/headless/getRoomReadiness.ts +49 -0
  539. package/src/methods/utils/headless/headlessTypes.ts +102 -0
  540. package/src/methods/utils/headless/index.ts +28 -0
  541. package/src/methods/utils/headless/mediaPermissions.ts +124 -0
  542. package/src/methods/utils/headless/mediaProduction.ts +505 -0
  543. package/src/methods/utils/headless/moderation.ts +455 -0
  544. package/src/methods/utils/headless/participantState.ts +254 -0
  545. package/src/methods/utils/headless/playback.ts +336 -0
  546. package/src/methods/utils/headless/roomActions.ts +230 -0
  547. package/src/methods/utils/headless/sessionControls.ts +335 -0
  548. package/src/methods/utils/headless/sessionExtras.ts +593 -0
  549. package/src/methods/utils/headless/sessionFeatures.ts +480 -0
  550. package/src/methods/utils/headless/viewerSession.ts +246 -0
  551. package/src/methods/utils/headless/virtualBackground.ts +280 -0
  552. package/src/methods/utils/resolveMediaSFURoomApi.ts +2 -2
  553. package/src/methods/utils/virtualBackgroundCompositor.ts +53 -0
  554. package/src/methods/whiteboard/captureCanvasStream.ts +2 -2
  555. package/src/producers/producerEmits/joinConRoom.ts +1 -1
  556. package/src/producers/producerEmits/joinRoom.ts +1 -1
  557. package/src/types/index.ts +1 -0
  558. package/src/types/shared-base-types.ts +2 -3
@@ -0,0 +1,291 @@
1
+ import { HeadlessOptions } from './headlessTypes';
2
+ export interface RecordingNotice {
3
+ /** The SDK's current recording notice, or '' when there is none. */
4
+ message: string;
5
+ /** Formatted elapsed time as the SDK reports it (e.g. "00:12:04"). */
6
+ elapsed: string;
7
+ /** Elapsed seconds. */
8
+ elapsedSeconds: number;
9
+ /** True while pause/resume is permitted (the SDK enforces a cooldown). */
10
+ canPauseResume: boolean;
11
+ /** Pauses used so far. */
12
+ pausesUsed: number;
13
+ /** Pauses allowed for the active media type; 0 when unpublished. */
14
+ pauseLimit: number;
15
+ /** True when the pause allowance is exhausted. */
16
+ pauseLimitReached: boolean;
17
+ }
18
+ export type GetRecordingNoticeType = (options: HeadlessOptions) => RecordingNotice;
19
+ /**
20
+ * The user-facing side of recording: the notice, the timer, and the pause
21
+ * allowance.
22
+ *
23
+ * Pause limits are per media type — `recordingAudioPausesLimit` vs
24
+ * `recordingVideoPausesLimit` — and the SDK picks by `recordingMediaOptions`.
25
+ * Reading the wrong one reports the wrong allowance, which is why this is a
26
+ * helper rather than a field read. Complements `getRecordingState`, which
27
+ * covers only the start/pause/resume/stop status.
28
+ */
29
+ export declare function getRecordingNotice({ parameters }: HeadlessOptions): RecordingNotice;
30
+ export interface RecordingCapabilities {
31
+ /** Recording audio at all. */
32
+ audio: boolean;
33
+ /** Recording video at all. */
34
+ video: boolean;
35
+ /** Recording every participant, not just the active speaker. */
36
+ allParticipants: boolean;
37
+ /** Recording every participant's video. */
38
+ videoParticipants: boolean;
39
+ /** Adding an HLS output. */
40
+ hls: boolean;
41
+ /** Max people included in an audio recording; 0 when unpublished. */
42
+ audioPeopleLimit: number;
43
+ /** Max people included in a video recording; 0 when unpublished. */
44
+ videoPeopleLimit: number;
45
+ }
46
+ export type GetRecordingCapabilitiesType = (options: HeadlessOptions) => RecordingCapabilities;
47
+ /**
48
+ * What this room's plan actually permits recording.
49
+ *
50
+ * These are entitlement flags the server publishes per room, so a UI should
51
+ * gate on them rather than offering options the room will refuse.
52
+ */
53
+ export declare function getRecordingCapabilities({ parameters, }: HeadlessOptions): RecordingCapabilities;
54
+ export interface TranslationPreference {
55
+ /** Language applied to every speaker, or null when unset. */
56
+ globalLanguage: string | null;
57
+ /** Per-speaker overrides, keyed by speaker id. */
58
+ perSpeaker: {
59
+ speakerId: string;
60
+ language: string | null;
61
+ wantOriginal: boolean;
62
+ }[];
63
+ }
64
+ export interface TranslationState extends TranslationPreference {
65
+ /** True when any translation is currently being consumed. */
66
+ active: boolean;
67
+ /** Languages the room currently has translation producers for. */
68
+ availableLanguages: string[];
69
+ }
70
+ export type GetTranslationStateType = (options: HeadlessOptions) => TranslationState;
71
+ /**
72
+ * What the listener is currently hearing, and what is on offer.
73
+ *
74
+ * `listenerTranslationPreferences.perSpeaker` is a `Map` on the bag, which does
75
+ * not survive serialisation or spread; this returns a plain array so it can be
76
+ * rendered and compared normally. Translation audio itself already reaches the
77
+ * user through `getAudioGridComponents`, which folds in `translationStreams`.
78
+ */
79
+ export declare function getTranslationState({ parameters }: HeadlessOptions): TranslationState;
80
+ export interface SetTranslationPreferenceOptions extends HeadlessOptions {
81
+ /** Language for every speaker. `null` restores the original audio. */
82
+ language?: string | null;
83
+ /** Limit the change to one speaker. */
84
+ speakerId?: string;
85
+ /** Explicitly prefer the untranslated audio for this speaker. */
86
+ wantOriginal?: boolean;
87
+ }
88
+ export type SetTranslationPreferenceType = (options: SetTranslationPreferenceOptions) => {
89
+ ok: boolean;
90
+ error: string;
91
+ };
92
+ /**
93
+ * Choose a translation language, globally or for one speaker.
94
+ *
95
+ * Delegates to the SDK's `updateListenerTranslationPreferences`, which is what
96
+ * syncs the choice to the server for routing and billing — setting the bag's
97
+ * fields directly would change local state without telling the server.
98
+ */
99
+ export declare function setTranslationPreference({ parameters, language, speakerId, wantOriginal, }: SetTranslationPreferenceOptions): {
100
+ ok: boolean;
101
+ error: string;
102
+ };
103
+ export interface FocusModeState {
104
+ /** True while focus mode is active. */
105
+ active: boolean;
106
+ /** Participants permitted to speak/appear while focus mode is on. */
107
+ panelists: {
108
+ name: string;
109
+ [key: string]: any;
110
+ }[];
111
+ /** True when the local user is one of them. */
112
+ selfIsPanelist: boolean;
113
+ /** True when focus mode silences non-panelist microphones. */
114
+ mutesMicrophones: boolean;
115
+ /** True when focus mode blocks non-panelist cameras. */
116
+ mutesCameras: boolean;
117
+ }
118
+ export type GetFocusModeStateType = (options: HeadlessOptions) => FocusModeState;
119
+ /**
120
+ * Focus-mode ("only panelists") state.
121
+ *
122
+ * The field is `muteOthersCamera`, not `muteOthersVideo` — worth stating,
123
+ * because the neighbouring flag is `muteOthersMic` and the asymmetry invites a
124
+ * wrong guess. {@link getMediaPermissions} already applies these rules to the
125
+ * local user; this exposes the room-level picture for a roster UI.
126
+ */
127
+ export declare function getFocusModeState({ parameters }: HeadlessOptions): FocusModeState;
128
+ export interface VirtualBackgroundState {
129
+ /** True when a processed (background-applied) stream is being published. */
130
+ active: boolean;
131
+ /** The processed stream, when one exists. */
132
+ stream: MediaStream | null;
133
+ /** The background currently applied, if the SDK reports one. */
134
+ appliedBackground: any;
135
+ /** The image the user selected, if any. */
136
+ selectedImage: string | null;
137
+ }
138
+ export type GetVirtualBackgroundStateType = (options: HeadlessOptions) => VirtualBackgroundState;
139
+ /**
140
+ * Read-only virtual-background state.
141
+ *
142
+ * **You do not need this to render the right self-view.**
143
+ * `getLocalVideoStream` already returns the processed `virtualStream` whenever
144
+ * `keepBackground` is on, and the raw camera otherwise — the same rule the SDK's
145
+ * own grid uses. Rendering `localStreamVideo` directly is what shows a user
146
+ * their *unprocessed* background, so prefer the helper and ignore this.
147
+ *
148
+ * This exists for UI that needs to *describe* the state ("Background on"), not
149
+ * to choose a stream.
150
+ *
151
+ * Known gap: applying or clearing a background is still modal-driven in the SDK
152
+ * (`isBackgroundModalVisible` / `autoClickBackground`), so a `returnUI={false}`
153
+ * surface cannot currently turn a background on by itself. Reading works
154
+ * headlessly; controlling does not.
155
+ */
156
+ export declare function getVirtualBackgroundState({ parameters, }: HeadlessOptions): VirtualBackgroundState;
157
+ export interface SetParticipantPlaybackOptions extends HeadlessOptions {
158
+ /** Participant display name. */
159
+ name?: string;
160
+ /** Producer id, when you already hold one. */
161
+ producerId?: string;
162
+ /** Which of their tracks to affect. Defaults to both. */
163
+ kind?: 'audio' | 'video' | 'all';
164
+ /** True to stop receiving, false to resume. */
165
+ paused: boolean;
166
+ }
167
+ export type SetParticipantPlaybackType = (options: SetParticipantPlaybackOptions) => Promise<{
168
+ ok: boolean;
169
+ error: string;
170
+ affected: number;
171
+ }>;
172
+ /**
173
+ * Stop or resume playing one participant's media **for you only**.
174
+ *
175
+ * This is a local, per-viewer control — "don't play this person to me right
176
+ * now". It pauses the mediasoup consumer, so the server stops sending that
177
+ * track to you: it saves bandwidth as well as silencing them, and it is
178
+ * invisible to everyone else. It is NOT moderation — the participant keeps
179
+ * publishing and other people keep receiving. Use `setParticipantMedia` from
180
+ * the moderation module to actually stop someone's media for the room.
181
+ *
182
+ * Note this is deliberately not `resumePauseStreams`, which the SDK drives from
183
+ * the active-speaker layout (`dispActiveNames`) and will happily undo a manual
184
+ * choice on its next pass. This targets the consumer directly.
185
+ *
186
+ * @example
187
+ * ```ts
188
+ * // Stop hearing and seeing Paul locally
189
+ * await setParticipantPlayback({ parameters, name: 'Paul', paused: true });
190
+ * // Just their audio
191
+ * await setParticipantPlayback({ parameters, name: 'Paul', kind: 'audio', paused: true });
192
+ * ```
193
+ */
194
+ export declare function setParticipantPlayback({ parameters, name, producerId, kind, paused, }: SetParticipantPlaybackOptions): Promise<{
195
+ ok: boolean;
196
+ error: string;
197
+ affected: number;
198
+ }>;
199
+ export type BreakoutParticipantRef = {
200
+ name: string;
201
+ breakRoom: number;
202
+ };
203
+ export interface SetBreakoutRoomsOptions extends HeadlessOptions {
204
+ /** Room composition: index in the outer array is the room number. */
205
+ rooms: BreakoutParticipantRef[][];
206
+ /** What happens to people who join later. Defaults to the room's setting. */
207
+ newParticipantAction?: string;
208
+ }
209
+ export type SetBreakoutRoomsType = (options: SetBreakoutRoomsOptions) => Promise<{
210
+ ok: boolean;
211
+ error: string;
212
+ }>;
213
+ /**
214
+ * Publish a full breakout-room composition.
215
+ *
216
+ * The SDK models breakout rooms as an array of arrays — outer index is the room
217
+ * number, inner entries are `{ name, breakRoom }`. Adding, removing, or moving
218
+ * someone is therefore just editing that array and re-emitting it; there is no
219
+ * per-participant verb. `startBreakout` opens them, `updateBreakout` amends a
220
+ * running set, and the SDK picks by whether they are already started.
221
+ *
222
+ * Prefer {@link assignParticipantToBreakoutRoom} for single-person changes.
223
+ */
224
+ export declare function setBreakoutRooms({ parameters, rooms, newParticipantAction, }: SetBreakoutRoomsOptions): Promise<{
225
+ ok: boolean;
226
+ error: string;
227
+ }>;
228
+ export interface AssignParticipantToBreakoutRoomOptions extends HeadlessOptions {
229
+ /** Participant display name. */
230
+ name: string;
231
+ /** Destination room index, or `null` to remove them from breakout rooms. */
232
+ room: number | null;
233
+ newParticipantAction?: string;
234
+ }
235
+ export type AssignParticipantToBreakoutRoomType = (options: AssignParticipantToBreakoutRoomOptions) => Promise<{
236
+ ok: boolean;
237
+ error: string;
238
+ }>;
239
+ /**
240
+ * Add, move, or remove one participant, without rebuilding the whole array.
241
+ *
242
+ * Covers all three cases the composition array makes awkward by hand:
243
+ * `room: 1` adds them to room 1 (or moves them there from wherever they are),
244
+ * `room: null` removes them from breakout rooms entirely. Empty trailing rooms
245
+ * are preserved, because room numbers are positional and collapsing them would
246
+ * silently renumber everyone else.
247
+ *
248
+ * @example
249
+ * ```ts
250
+ * await assignParticipantToBreakoutRoom({ parameters, name: 'Ada', room: 0 }); // add
251
+ * await assignParticipantToBreakoutRoom({ parameters, name: 'Ada', room: 1 }); // move 0 -> 1
252
+ * await assignParticipantToBreakoutRoom({ parameters, name: 'Ada', room: null }); // remove
253
+ * ```
254
+ */
255
+ export declare function assignParticipantToBreakoutRoom({ parameters, name, room, newParticipantAction, }: AssignParticipantToBreakoutRoomOptions): Promise<{
256
+ ok: boolean;
257
+ error: string;
258
+ }>;
259
+ export type StopBreakoutRoomsType = (options: HeadlessOptions) => Promise<{
260
+ ok: boolean;
261
+ error: string;
262
+ }>;
263
+ /** Close every breakout room and return everyone to the main room. */
264
+ export declare function stopBreakoutRooms({ parameters, }: HeadlessOptions): Promise<{
265
+ ok: boolean;
266
+ error: string;
267
+ }>;
268
+ export type ReapplyLocalPlaybackType = (options: HeadlessOptions) => Promise<{
269
+ ok: boolean;
270
+ error: string;
271
+ affected: number;
272
+ }>;
273
+ /**
274
+ * Re-assert every local playback choice.
275
+ *
276
+ * Call this whenever media changes — `onMediaChanged` is the natural place. The
277
+ * SDK layout pass resumes consumers it believes should be visible, which would
278
+ * otherwise silently undo "do not play this person to me" the moment the active
279
+ * speaker changes. Without this the feature appears to work and then quietly
280
+ * stops working, which is worse than not having it.
281
+ *
282
+ * A no-op when nothing is locally paused.
283
+ */
284
+ export declare function reapplyLocalPlayback({ parameters, }: HeadlessOptions): Promise<{
285
+ ok: boolean;
286
+ error: string;
287
+ affected: number;
288
+ }>;
289
+ /** Producer ids currently muted for this viewer only. */
290
+ export declare function getLocallyPausedProducerIds(): string[];
291
+ //# sourceMappingURL=sessionExtras.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sessionExtras.d.ts","sourceRoot":"","sources":["../../../../src/methods/utils/headless/sessionExtras.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,159 @@
1
+ import { HeadlessOptions } from './headlessTypes';
2
+ import { HeadlessActionResult } from './roomActions';
3
+ export type RecordingStatus = 'unavailable' | 'idle' | 'recording' | 'paused' | 'stopped';
4
+ export interface RecordingState {
5
+ status: RecordingStatus;
6
+ /** True while frames are being captured right now. */
7
+ active: boolean;
8
+ /** The local user may start/stop recording. */
9
+ canRecord: boolean;
10
+ /** 'video' | 'audio' — what the room is configured to capture. */
11
+ mediaOptions: string;
12
+ /** Seconds elapsed, as reported by the SDK. */
13
+ elapsedSeconds: number;
14
+ }
15
+ export type GetRecordingStateType = (options: HeadlessOptions) => RecordingState;
16
+ /**
17
+ * Collapse MediaSFU's four recording booleans into one status.
18
+ *
19
+ * The SDK tracks `recordStarted`, `recordPaused`, `recordResumed` and
20
+ * `recordStopped` independently, and they overlap — after a pause/resume cycle
21
+ * `recordStarted` and `recordResumed` are both true. Deriving "is it recording?"
22
+ * from any single flag gives the wrong answer at least once per session.
23
+ *
24
+ * @example
25
+ * ```ts
26
+ * const recording = getRecordingState({ parameters });
27
+ * if (recording.status === 'paused') showResumeButton();
28
+ * ```
29
+ */
30
+ export declare function getRecordingState({ parameters }: HeadlessOptions): RecordingState;
31
+ export type RecordingActionType = (options: HeadlessOptions) => Promise<HeadlessActionResult>;
32
+ /**
33
+ * Start recording.
34
+ *
35
+ * MediaSFU requires `confirmRecording` before `startRecording` — it validates
36
+ * the room's recording settings against the current layout and populates the
37
+ * state `startRecording` then reads. Calling `startRecording` alone appears to
38
+ * do nothing. This runs both steps in order.
39
+ *
40
+ * @example
41
+ * ```ts
42
+ * import { startRoomRecording } from 'mediasfu-shared';
43
+ *
44
+ * const result = await startRoomRecording({ parameters });
45
+ * if (!result.ok) setNotice(result.error);
46
+ * ```
47
+ */
48
+ export declare function startRoomRecording({ parameters, }: HeadlessOptions): Promise<HeadlessActionResult>;
49
+ /** Pause an active recording. */
50
+ export declare function pauseRoomRecording({ parameters, }: HeadlessOptions): Promise<HeadlessActionResult>;
51
+ /** Resume a paused recording. */
52
+ export declare function resumeRoomRecording({ parameters, }: HeadlessOptions): Promise<HeadlessActionResult>;
53
+ /** Stop recording. The file becomes available through the MediaSFU API. */
54
+ export declare function stopRoomRecording({ parameters, }: HeadlessOptions): Promise<HeadlessActionResult>;
55
+ export interface WhiteboardState {
56
+ /** True while a whiteboard session is running. */
57
+ active: boolean;
58
+ /** The local user may start one. */
59
+ canStart: boolean;
60
+ /** Participants granted drawing rights. */
61
+ users: any[];
62
+ /** Maximum participants the room's plan allows on a whiteboard. */
63
+ limit: number;
64
+ /** The live canvas element, when the SDK has created one. */
65
+ canvas: HTMLCanvasElement | null;
66
+ }
67
+ export type GetWhiteboardStateType = (options: HeadlessOptions) => WhiteboardState;
68
+ /**
69
+ * Current whiteboard session state.
70
+ *
71
+ * `whiteboardStarted` alone is not enough — the SDK leaves it true after a
72
+ * session ends and sets `whiteboardEnded` alongside it, so "active" is
73
+ * `started && !ended`.
74
+ */
75
+ export declare function getWhiteboardState({ parameters }: HeadlessOptions): WhiteboardState;
76
+ export interface StartWhiteboardOptions extends HeadlessOptions {
77
+ /** Participants allowed to draw. Defaults to the room's current selection. */
78
+ users?: any[];
79
+ }
80
+ export type StartWhiteboardType = (options: StartWhiteboardOptions) => Promise<HeadlessActionResult>;
81
+ /**
82
+ * Start (or reconfigure) the shared whiteboard.
83
+ *
84
+ * Emits `startWhiteboard` for a new session and `updateWhiteboard` when one is
85
+ * already running, matching the SDK's own modal. Breakout rooms and the
86
+ * whiteboard are mutually exclusive, which is checked here.
87
+ *
88
+ * This applies the session state only. Layout follow-up (`onScreenChanges`,
89
+ * `prepopulateUserMedia`, main-pane sizing) is deliberately left to you, since a
90
+ * headless surface owns its own layout.
91
+ *
92
+ * @example
93
+ * ```ts
94
+ * await startWhiteboard({ parameters, users: [{ name: 'Paul' }] });
95
+ * ```
96
+ */
97
+ export declare function startWhiteboard({ parameters, users, }: StartWhiteboardOptions): Promise<HeadlessActionResult>;
98
+ export type StopWhiteboardType = (options: HeadlessOptions) => Promise<HeadlessActionResult>;
99
+ /** End the shared whiteboard session. */
100
+ export declare function stopWhiteboard({ parameters, }: HeadlessOptions): Promise<HeadlessActionResult>;
101
+ export interface PollState {
102
+ /** Every poll the room has seen. */
103
+ polls: any[];
104
+ /** The poll currently open for voting, if any. */
105
+ active: any | null;
106
+ }
107
+ export type GetPollStateType = (options: HeadlessOptions) => PollState;
108
+ /** Polls in the room, plus whichever one is currently open. */
109
+ export declare function getPollState({ parameters }: HeadlessOptions): PollState;
110
+ export interface CreatePollOptions extends HeadlessOptions {
111
+ question: string;
112
+ options: string[];
113
+ /** Defaults to 'custom'. */
114
+ type?: string;
115
+ }
116
+ export type CreateRoomPollType = (options: CreatePollOptions) => Promise<HeadlessActionResult>;
117
+ /**
118
+ * Open a poll.
119
+ *
120
+ * @example
121
+ * ```ts
122
+ * await createRoomPoll({
123
+ * parameters,
124
+ * question: 'Ship on Friday?',
125
+ * options: ['Yes', 'No'],
126
+ * });
127
+ * ```
128
+ */
129
+ export declare function createRoomPoll({ parameters, question, options, type, }: CreatePollOptions): Promise<HeadlessActionResult>;
130
+ export interface VotePollOptions extends HeadlessOptions {
131
+ pollId: string;
132
+ optionIndex: number;
133
+ }
134
+ /** Cast a vote in an open poll. */
135
+ export declare function voteInRoomPoll({ parameters, pollId, optionIndex, }: VotePollOptions): Promise<HeadlessActionResult>;
136
+ export interface EndPollOptions extends HeadlessOptions {
137
+ pollId: string;
138
+ }
139
+ /** Close a poll. Host only. */
140
+ export declare function endRoomPoll({ parameters, pollId, }: EndPollOptions): Promise<HeadlessActionResult>;
141
+ export interface BreakoutState {
142
+ /** True while breakout rooms are running. */
143
+ active: boolean;
144
+ /** The local user may start them. */
145
+ canStart: boolean;
146
+ /** Room composition as the SDK holds it. */
147
+ rooms: any[];
148
+ /** The breakout room the local user is in, or -1. */
149
+ currentRoom: number;
150
+ }
151
+ export type GetBreakoutStateType = (options: HeadlessOptions) => BreakoutState;
152
+ /**
153
+ * Breakout-room state.
154
+ *
155
+ * Same `started && !ended` shape as the whiteboard, and the two are mutually
156
+ * exclusive — check this before offering a whiteboard control.
157
+ */
158
+ export declare function getBreakoutState({ parameters }: HeadlessOptions): BreakoutState;
159
+ //# sourceMappingURL=sessionFeatures.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sessionFeatures.d.ts","sourceRoot":"","sources":["../../../../src/methods/utils/headless/sessionFeatures.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,eAAe,EAAsB,MAAM,iBAAiB,CAAC;AAEtE,OAAO,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AAQrD,MAAM,MAAM,eAAe,GACvB,aAAa,GACb,MAAM,GACN,WAAW,GACX,QAAQ,GACR,SAAS,CAAC;AAEd,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,eAAe,CAAC;IACxB,sDAAsD;IACtD,MAAM,EAAE,OAAO,CAAC;IAChB,+CAA+C;IAC/C,SAAS,EAAE,OAAO,CAAC;IACnB,kEAAkE;IAClE,YAAY,EAAE,MAAM,CAAC;IACrB,+CAA+C;IAC/C,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,MAAM,qBAAqB,GAAG,CAAC,OAAO,EAAE,eAAe,KAAK,cAAc,CAAC;AAEjF;;;;;;;;;;;;;GAaG;AACH,wBAAgB,iBAAiB,CAAC,EAAE,UAAU,EAAE,EAAE,eAAe,GAAG,cAAc,CAgBjF;AAED,MAAM,MAAM,mBAAmB,GAAG,CAChC,OAAO,EAAE,eAAe,KACrB,OAAO,CAAC,oBAAoB,CAAC,CAAC;AAEnC;;;;;;;;;;;;;;;GAeG;AACH,wBAAsB,kBAAkB,CAAC,EACvC,UAAU,GACX,EAAE,eAAe,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAgBjD;AAED,iCAAiC;AACjC,wBAAsB,kBAAkB,CAAC,EACvC,UAAU,GACX,EAAE,eAAe,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAEjD;AAED,iCAAiC;AACjC,wBAAsB,mBAAmB,CAAC,EACxC,UAAU,GACX,EAAE,eAAe,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAEjD;AA6BD,2EAA2E;AAC3E,wBAAsB,iBAAiB,CAAC,EACtC,UAAU,GACX,EAAE,eAAe,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAWjD;AAMD,MAAM,WAAW,eAAe;IAC9B,kDAAkD;IAClD,MAAM,EAAE,OAAO,CAAC;IAChB,oCAAoC;IACpC,QAAQ,EAAE,OAAO,CAAC;IAClB,2CAA2C;IAC3C,KAAK,EAAE,GAAG,EAAE,CAAC;IACb,mEAAmE;IACnE,KAAK,EAAE,MAAM,CAAC;IACd,6DAA6D;IAC7D,MAAM,EAAE,iBAAiB,GAAG,IAAI,CAAC;CAClC;AAED,MAAM,MAAM,sBAAsB,GAAG,CACnC,OAAO,EAAE,eAAe,KACrB,eAAe,CAAC;AAErB;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,EAAE,UAAU,EAAE,EAAE,eAAe,GAAG,eAAe,CASnF;AAED,MAAM,WAAW,sBAAuB,SAAQ,eAAe;IAC7D,8EAA8E;IAC9E,KAAK,CAAC,EAAE,GAAG,EAAE,CAAC;CACf;AAED,MAAM,MAAM,mBAAmB,GAAG,CAChC,OAAO,EAAE,sBAAsB,KAC5B,OAAO,CAAC,oBAAoB,CAAC,CAAC;AAEnC;;;;;;;;;;;;;;;GAeG;AACH,wBAAsB,eAAe,CAAC,EACpC,UAAU,EACV,KAAK,GACN,EAAE,sBAAsB,GAAG,OAAO,CAAC,oBAAoB,CAAC,CA8CxD;AAED,MAAM,MAAM,kBAAkB,GAAG,CAC/B,OAAO,EAAE,eAAe,KACrB,OAAO,CAAC,oBAAoB,CAAC,CAAC;AAEnC,yCAAyC;AACzC,wBAAsB,cAAc,CAAC,EACnC,UAAU,GACX,EAAE,eAAe,GAAG,OAAO,CAAC,oBAAoB,CAAC,CA4BjD;AAMD,MAAM,WAAW,SAAS;IACxB,oCAAoC;IACpC,KAAK,EAAE,GAAG,EAAE,CAAC;IACb,kDAAkD;IAClD,MAAM,EAAE,GAAG,GAAG,IAAI,CAAC;CACpB;AAED,MAAM,MAAM,gBAAgB,GAAG,CAAC,OAAO,EAAE,eAAe,KAAK,SAAS,CAAC;AAEvE,+DAA+D;AAC/D,wBAAgB,YAAY,CAAC,EAAE,UAAU,EAAE,EAAE,eAAe,GAAG,SAAS,CAQvE;AAED,MAAM,WAAW,iBAAkB,SAAQ,eAAe;IACxD,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,4BAA4B;IAC5B,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,MAAM,kBAAkB,GAAG,CAC/B,OAAO,EAAE,iBAAiB,KACvB,OAAO,CAAC,oBAAoB,CAAC,CAAC;AAEnC;;;;;;;;;;;GAWG;AACH,wBAAsB,cAAc,CAAC,EACnC,UAAU,EACV,QAAQ,EACR,OAAO,EACP,IAAe,GAChB,EAAE,iBAAiB,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAkBnD;AAED,MAAM,WAAW,eAAgB,SAAQ,eAAe;IACtD,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,mCAAmC;AACnC,wBAAsB,cAAc,CAAC,EACnC,UAAU,EACV,MAAM,EACN,WAAW,GACZ,EAAE,eAAe,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAgBjD;AAED,MAAM,WAAW,cAAe,SAAQ,eAAe;IACrD,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,+BAA+B;AAC/B,wBAAsB,WAAW,CAAC,EAChC,UAAU,EACV,MAAM,GACP,EAAE,cAAc,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAiBhD;AAMD,MAAM,WAAW,aAAa;IAC5B,6CAA6C;IAC7C,MAAM,EAAE,OAAO,CAAC;IAChB,qCAAqC;IACrC,QAAQ,EAAE,OAAO,CAAC;IAClB,4CAA4C;IAC5C,KAAK,EAAE,GAAG,EAAE,CAAC;IACb,qDAAqD;IACrD,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,MAAM,oBAAoB,GAAG,CAAC,OAAO,EAAE,eAAe,KAAK,aAAa,CAAC;AAE/E;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,EAAE,UAAU,EAAE,EAAE,eAAe,GAAG,aAAa,CAU/E"}
@@ -0,0 +1,125 @@
1
+ /**
2
+ * Viewers who are part of a session without joining the room.
3
+ *
4
+ * **Why this exists.** Joining a MediaSFU room auto-consumes WebRTC: the SDK
5
+ * creates consumers from the server's `newProducer` events, unconditionally —
6
+ * there is no receive-nothing mode. For a large passive audience watching over
7
+ * HLS that is pure waste: transports, consumers and layout churn for media they
8
+ * will never render. Joining and then pausing the consumers is worse than it
9
+ * looks, because the layout pass keeps resuming them.
10
+ *
11
+ * So an HLS viewer does not join at all. They hold a *viewer session* instead —
12
+ * enough to be counted, to raise a hand, and to be told when the host approves —
13
+ * and they only perform a real SDK join at the moment they reach the floor.
14
+ *
15
+ * How that session is stored is deliberately not decided here. The transport,
16
+ * lifecycle and state machine are the SDK's business; issuing playback URLs and
17
+ * tracking presence belong to whatever backend you run. You supply a
18
+ * `ViewerSessionProvider`; this drives it. Same reasoning as `hlsFactory`: the
19
+ * SDK owns the mechanism, the app owns the dependency.
20
+ */
21
+ export type ViewerSessionPhase = 'idle' | 'joining' | 'watching' | 'requested' | 'approved' | 'left' | 'error';
22
+ export interface ViewerSessionIdentity {
23
+ /** Opaque id for this viewer, issued by the provider. */
24
+ viewerId: string;
25
+ /** The room being watched. */
26
+ roomName: string;
27
+ /** Where to play from. Absent until the provider issues one. */
28
+ playbackUrl?: string;
29
+ /** 'hls' or 'whep'; inferred from the URL when omitted. */
30
+ protocol?: 'hls' | 'whep';
31
+ /** Anything the provider needs handed back on later calls. */
32
+ token?: string;
33
+ [key: string]: any;
34
+ }
35
+ export interface ViewerSessionStatus {
36
+ /** True once the host has approved this viewer for the floor. */
37
+ approved: boolean;
38
+ /** True while a request is outstanding. */
39
+ pending?: boolean;
40
+ /** Free-text reason when a request was refused. */
41
+ reason?: string;
42
+ /** Provider may refresh the playback URL (signed URLs expire). */
43
+ playbackUrl?: string;
44
+ }
45
+ /**
46
+ * What your backend has to do. Only `join` is required — a provider that just
47
+ * hands back a playback URL is a valid provider, it simply cannot support
48
+ * promotion.
49
+ */
50
+ export interface ViewerSessionProvider {
51
+ join(options: {
52
+ roomName: string;
53
+ displayName?: string;
54
+ signal?: AbortSignal;
55
+ }): Promise<ViewerSessionIdentity>;
56
+ /** Keep the viewer counted as present. */
57
+ heartbeat?(options: {
58
+ session: ViewerSessionIdentity;
59
+ signal?: AbortSignal;
60
+ }): Promise<void>;
61
+ /** Raise a hand for the floor. */
62
+ requestPromotion?(options: {
63
+ session: ViewerSessionIdentity;
64
+ signal?: AbortSignal;
65
+ }): Promise<void>;
66
+ /** Has the host decided yet? */
67
+ poll?(options: {
68
+ session: ViewerSessionIdentity;
69
+ signal?: AbortSignal;
70
+ }): Promise<ViewerSessionStatus>;
71
+ /** Release the session. */
72
+ leave?(options: {
73
+ session: ViewerSessionIdentity;
74
+ }): Promise<void>;
75
+ }
76
+ export interface ViewerSessionSnapshot {
77
+ phase: ViewerSessionPhase;
78
+ session: ViewerSessionIdentity | null;
79
+ status: ViewerSessionStatus | null;
80
+ error: string;
81
+ /** True when the provider can accept a promotion request at all. */
82
+ canRequestPromotion: boolean;
83
+ }
84
+ export interface CreateViewerSessionOptions {
85
+ provider: ViewerSessionProvider;
86
+ roomName: string;
87
+ displayName?: string;
88
+ /** Poll interval for approval, ms. Defaults to 5000. */
89
+ pollIntervalMs?: number;
90
+ /** Heartbeat interval, ms. Defaults to 30000. Ignored without a heartbeat. */
91
+ heartbeatIntervalMs?: number;
92
+ /** Called on every state change. */
93
+ onChange?: (snapshot: ViewerSessionSnapshot) => void;
94
+ }
95
+ export interface ViewerSessionHandle {
96
+ /** Current state, readable at any time. */
97
+ getSnapshot: () => ViewerSessionSnapshot;
98
+ /** Register with the provider and begin watching. */
99
+ start: () => Promise<ViewerSessionSnapshot>;
100
+ /** Raise a hand for the floor. */
101
+ requestPromotion: () => Promise<ViewerSessionSnapshot>;
102
+ /** Stop everything and release the session. */
103
+ stop: () => Promise<void>;
104
+ }
105
+ /**
106
+ * Drive a viewer session.
107
+ *
108
+ * Deliberately framework-agnostic — no hooks, no observables — so the same
109
+ * implementation serves React, Vue and Angular. Wrap it in whatever your
110
+ * framework prefers.
111
+ *
112
+ * @example
113
+ * ```ts
114
+ * const viewer = createViewerSession({
115
+ * provider: myProvider,
116
+ * roomName,
117
+ * onChange: (snapshot) => setState(snapshot),
118
+ * });
119
+ * await viewer.start(); // watching over HLS, never joined
120
+ * await viewer.requestPromotion(); // hand raised
121
+ * // when snapshot.phase === 'approved', perform a real SDK join.
122
+ * ```
123
+ */
124
+ export declare function createViewerSession({ provider, roomName, displayName, pollIntervalMs, heartbeatIntervalMs, onChange, }: CreateViewerSessionOptions): ViewerSessionHandle;
125
+ //# sourceMappingURL=viewerSession.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"viewerSession.d.ts","sourceRoot":"","sources":["../../../../src/methods/utils/headless/viewerSession.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,72 @@
1
+ import { HeadlessOptions } from './headlessTypes';
2
+ import { HeadlessActionResult } from './roomActions';
3
+ export interface ApplyVirtualBackgroundOptions extends HeadlessOptions {
4
+ /**
5
+ * Background image URL, or a ready `HTMLImageElement` / `HTMLCanvasElement`.
6
+ * Pass `null` to segment the person onto a transparent background.
7
+ */
8
+ image: string | HTMLImageElement | HTMLCanvasElement | null;
9
+ /** Capture frame rate for the processed stream. Defaults to 30. */
10
+ frameRate?: number;
11
+ /** MediaPipe model: 0 = general, 1 = landscape (faster). Defaults to 1. */
12
+ modelSelection?: 0 | 1;
13
+ /**
14
+ * Replace the live producer's track so remote viewers see the background
15
+ * immediately. Defaults to true; set false to preview locally first.
16
+ */
17
+ publish?: boolean;
18
+ /**
19
+ * Where to load the MediaPipe model and wasm from. Defaults to the jsDelivr
20
+ * CDN. Point this at a self-hosted copy of
21
+ * `node_modules/@mediapipe/selfie_segmentation` for offline or air-gapped
22
+ * deployments, or where a Content-Security-Policy forbids the CDN.
23
+ * A trailing slash is added if missing.
24
+ */
25
+ assetPath?: string;
26
+ }
27
+ export type ApplyVirtualBackgroundType = (options: ApplyVirtualBackgroundOptions) => Promise<HeadlessActionResult & {
28
+ stream: MediaStream | null;
29
+ }>;
30
+ /**
31
+ * Apply a virtual background headlessly — no modal, no DOM of your own.
32
+ *
33
+ * The SDK's own background support lives inside `BackgroundModal`, whose apply
34
+ * path is bound to that component's refs (a preview `<video>` and a `<canvas>`)
35
+ * and is driven by `autoClickBackground` / `isBackgroundModalVisible`. A
36
+ * `returnUI={false}` surface therefore had no way to turn a background on
37
+ * without mounting the modal off-screen and simulating a click.
38
+ *
39
+ * This runs the same MediaPipe pipeline the modal uses — identical compositing:
40
+ * draw the segmentation mask, retain the person with `source-in`, then paint
41
+ * the replacement behind them with `destination-over` — against an offscreen video and
42
+ * canvas it creates and owns.
43
+ *
44
+ * It also keeps the SDK's own state honest (`virtualStream`, `processedStream`,
45
+ * `keepBackground`), so `getLocalVideoStream` keeps returning the right
46
+ * self-view without the caller choosing. Callers should not select the
47
+ * processed stream themselves.
48
+ *
49
+ * The camera must already be on: this processes `localStreamVideo`, it does not
50
+ * acquire one.
51
+ *
52
+ * @example
53
+ * ```ts
54
+ * await applyVirtualBackground({ parameters, image: '/backgrounds/office.jpg' });
55
+ * await clearVirtualBackground({ parameters });
56
+ * ```
57
+ */
58
+ export declare function applyVirtualBackground({ parameters, image, frameRate, modelSelection, publish, assetPath, }: ApplyVirtualBackgroundOptions): Promise<HeadlessActionResult & {
59
+ stream: MediaStream | null;
60
+ }>;
61
+ export type ClearVirtualBackgroundType = (options: HeadlessOptions) => Promise<HeadlessActionResult>;
62
+ /**
63
+ * Remove the virtual background and go back to the raw camera.
64
+ *
65
+ * Restores the original camera track on the live producer before tearing the
66
+ * pipeline down, so viewers transition straight from processed to raw rather
67
+ * than through a frozen or black frame.
68
+ */
69
+ export declare function clearVirtualBackground({ parameters, }: HeadlessOptions): Promise<HeadlessActionResult>;
70
+ /** True while a headless background pipeline is running in this tab. */
71
+ export declare function isVirtualBackgroundRunning(): boolean;
72
+ //# sourceMappingURL=virtualBackground.d.ts.map