@onlive.ai/common-121 0.2.70 → 0.2.179

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 (366) hide show
  1. package/README.md +0 -1
  2. package/chunk-CHMR2I4G.js +2 -0
  3. package/components/asset/asset-modal-portal.cjs +550 -0
  4. package/components/asset/asset-modal-portal.d.cts +22 -0
  5. package/components/asset/asset-modal-portal.d.ts +22 -0
  6. package/components/asset/asset-modal-portal.js +550 -0
  7. package/components/asset/asset.cjs +3536 -0
  8. package/components/asset/asset.d.cts +37 -0
  9. package/components/asset/asset.d.ts +37 -0
  10. package/components/asset/asset.js +3536 -0
  11. package/components/asset/asset.loaders.cjs +2 -0
  12. package/components/asset/asset.loaders.d.cts +17 -0
  13. package/components/asset/asset.loaders.d.ts +17 -0
  14. package/components/asset/asset.loaders.js +2 -0
  15. package/components/asset/asset.renderer.cjs +2292 -0
  16. package/components/asset/asset.renderer.d.cts +29 -0
  17. package/components/asset/asset.renderer.d.ts +29 -0
  18. package/components/asset/asset.renderer.js +2292 -0
  19. package/components/asset/asset.styles.cjs +683 -0
  20. package/components/asset/asset.styles.d.cts +6 -0
  21. package/components/asset/asset.styles.d.ts +6 -0
  22. package/components/asset/asset.styles.js +683 -0
  23. package/components/asset/asset.types.cjs +2 -0
  24. package/components/asset/asset.types.d.cts +103 -0
  25. package/components/asset/asset.types.d.ts +103 -0
  26. package/components/asset/asset.types.js +1 -0
  27. package/components/asset/index.cjs +3536 -0
  28. package/components/asset/index.d.cts +8 -0
  29. package/components/asset/index.d.ts +8 -0
  30. package/components/asset/index.js +3536 -0
  31. package/components/player/player.cjs +2044 -0
  32. package/components/player/player.d.cts +25 -0
  33. package/components/player/player.d.ts +25 -0
  34. package/components/player/player.js +2044 -0
  35. package/components/player/player.styles.cjs +16 -0
  36. package/components/player/player.styles.d.cts +6 -0
  37. package/components/player/player.styles.d.ts +6 -0
  38. package/components/player/player.styles.js +16 -0
  39. package/components/side-bar/index.cjs +3185 -0
  40. package/components/side-bar/index.d.cts +11 -0
  41. package/components/side-bar/index.d.ts +11 -0
  42. package/components/side-bar/index.js +3185 -0
  43. package/components/side-bar/side-bar.cjs +3185 -0
  44. package/components/side-bar/side-bar.d.cts +83 -0
  45. package/components/side-bar/side-bar.d.ts +83 -0
  46. package/components/side-bar/side-bar.js +3185 -0
  47. package/components/side-bar/side-bar.styles.cjs +801 -0
  48. package/components/side-bar/side-bar.styles.d.cts +6 -0
  49. package/components/side-bar/side-bar.styles.d.ts +6 -0
  50. package/components/side-bar/side-bar.styles.js +801 -0
  51. package/components/side-bar/side-bar.types.cjs +2 -0
  52. package/components/side-bar/side-bar.types.d.cts +105 -0
  53. package/components/side-bar/side-bar.types.d.ts +105 -0
  54. package/components/side-bar/side-bar.types.js +2 -0
  55. package/components/upload/index.cjs +83 -0
  56. package/components/upload/index.d.cts +4 -0
  57. package/components/upload/index.d.ts +4 -0
  58. package/components/upload/index.js +83 -0
  59. package/components/upload/upload.cjs +83 -0
  60. package/components/upload/upload.d.cts +28 -0
  61. package/components/upload/upload.d.ts +28 -0
  62. package/components/upload/upload.js +83 -0
  63. package/components/upload/upload.styles.cjs +65 -0
  64. package/components/upload/upload.styles.d.cts +6 -0
  65. package/components/upload/upload.styles.d.ts +6 -0
  66. package/components/upload/upload.styles.js +65 -0
  67. package/components/upload/upload.types.cjs +2 -0
  68. package/components/upload/upload.types.d.cts +16 -0
  69. package/components/upload/upload.types.d.ts +16 -0
  70. package/components/upload/upload.types.js +1 -0
  71. package/index.cjs +4677 -0
  72. package/index.d.cts +4397 -0
  73. package/index.d.ts +4397 -0
  74. package/index.js +4677 -0
  75. package/media-TFGJGBU2.js +2 -0
  76. package/package.json +35 -11
  77. package/react/components/asset/Asset.cjs +2 -0
  78. package/react/components/asset/Asset.jsx +2 -0
  79. package/react/components/side-bar/SideBar.cjs +2 -0
  80. package/react/components/side-bar/SideBar.jsx +2 -0
  81. package/react/components/upload/Upload.cjs +2 -0
  82. package/react/components/upload/Upload.jsx +2 -0
  83. package/services/audio.service.cjs +2 -2
  84. package/services/audio.service.d.cts +1 -0
  85. package/services/audio.service.d.ts +1 -0
  86. package/services/audio.service.js +2 -2
  87. package/services/conversation/conversation.service.cjs +2 -0
  88. package/services/conversation/conversation.service.d.cts +543 -0
  89. package/services/conversation/conversation.service.d.ts +543 -0
  90. package/services/conversation/conversation.service.js +2 -0
  91. package/services/conversation/conversation.types.cjs +2 -0
  92. package/services/conversation/conversation.types.d.cts +525 -0
  93. package/services/conversation/conversation.types.d.ts +525 -0
  94. package/services/conversation/conversation.types.js +2 -0
  95. package/services/conversation/index.cjs +2 -0
  96. package/services/conversation/index.d.cts +24 -0
  97. package/services/conversation/index.d.ts +24 -0
  98. package/services/conversation/index.js +2 -0
  99. package/services/conversation/mock/actor/agent.cjs +2 -0
  100. package/services/conversation/mock/actor/agent.d.cts +202 -0
  101. package/services/conversation/mock/actor/agent.d.ts +202 -0
  102. package/services/conversation/mock/actor/agent.js +2 -0
  103. package/services/conversation/mock/actor/index.cjs +2 -0
  104. package/services/conversation/mock/actor/index.d.cts +4 -0
  105. package/services/conversation/mock/actor/index.d.ts +4 -0
  106. package/services/conversation/mock/actor/index.js +2 -0
  107. package/services/conversation/mock/actor/strategies.cjs +2 -0
  108. package/services/conversation/mock/actor/strategies.d.cts +31 -0
  109. package/services/conversation/mock/actor/strategies.d.ts +31 -0
  110. package/services/conversation/mock/actor/strategies.js +2 -0
  111. package/services/conversation/mock/errors.cjs +2 -0
  112. package/services/conversation/mock/errors.d.cts +125 -0
  113. package/services/conversation/mock/errors.d.ts +125 -0
  114. package/services/conversation/mock/errors.js +2 -0
  115. package/services/conversation/mock/events.cjs +2 -0
  116. package/services/conversation/mock/events.d.cts +253 -0
  117. package/services/conversation/mock/events.d.ts +253 -0
  118. package/services/conversation/mock/events.js +2 -0
  119. package/services/conversation/mock/factory.cjs +2 -0
  120. package/services/conversation/mock/factory.d.cts +134 -0
  121. package/services/conversation/mock/factory.d.ts +134 -0
  122. package/services/conversation/mock/factory.js +2 -0
  123. package/services/conversation/mock/fixtures.cjs +2 -0
  124. package/services/conversation/mock/fixtures.d.cts +191 -0
  125. package/services/conversation/mock/fixtures.d.ts +191 -0
  126. package/services/conversation/mock/fixtures.js +2 -0
  127. package/services/conversation/mock/generators.cjs +2 -0
  128. package/services/conversation/mock/generators.d.cts +123 -0
  129. package/services/conversation/mock/generators.d.ts +123 -0
  130. package/services/conversation/mock/generators.js +2 -0
  131. package/services/conversation/mock/index.cjs +2 -0
  132. package/services/conversation/mock/index.d.cts +24 -0
  133. package/services/conversation/mock/index.d.ts +24 -0
  134. package/services/conversation/mock/index.js +2 -0
  135. package/services/conversation/mock/livekit/index.cjs +2 -0
  136. package/services/conversation/mock/livekit/index.d.cts +7 -0
  137. package/services/conversation/mock/livekit/index.d.ts +7 -0
  138. package/services/conversation/mock/livekit/index.js +2 -0
  139. package/services/conversation/mock/livekit/local-participant.cjs +2 -0
  140. package/services/conversation/mock/livekit/local-participant.d.cts +204 -0
  141. package/services/conversation/mock/livekit/local-participant.d.ts +204 -0
  142. package/services/conversation/mock/livekit/local-participant.js +2 -0
  143. package/services/conversation/mock/livekit/participant.cjs +2 -0
  144. package/services/conversation/mock/livekit/participant.d.cts +171 -0
  145. package/services/conversation/mock/livekit/participant.d.ts +171 -0
  146. package/services/conversation/mock/livekit/participant.js +2 -0
  147. package/services/conversation/mock/livekit/room.cjs +2 -0
  148. package/services/conversation/mock/livekit/room.d.cts +292 -0
  149. package/services/conversation/mock/livekit/room.d.ts +292 -0
  150. package/services/conversation/mock/livekit/room.js +2 -0
  151. package/services/conversation/mock/livekit/streams.cjs +2 -0
  152. package/services/conversation/mock/livekit/streams.d.cts +190 -0
  153. package/services/conversation/mock/livekit/streams.d.ts +190 -0
  154. package/services/conversation/mock/livekit/streams.js +2 -0
  155. package/services/conversation/mock/livekit/tracks.cjs +2 -0
  156. package/services/conversation/mock/livekit/tracks.d.cts +149 -0
  157. package/services/conversation/mock/livekit/tracks.d.ts +149 -0
  158. package/services/conversation/mock/livekit/tracks.js +2 -0
  159. package/services/conversation/mock/media.cjs +2 -0
  160. package/services/conversation/mock/media.d.cts +174 -0
  161. package/services/conversation/mock/media.d.ts +174 -0
  162. package/services/conversation/mock/media.js +2 -0
  163. package/services/conversation/mock/service.cjs +2 -0
  164. package/services/conversation/mock/service.d.cts +300 -0
  165. package/services/conversation/mock/service.d.ts +300 -0
  166. package/services/conversation/mock/service.js +2 -0
  167. package/services/conversation/mock/service.test.cjs +2 -0
  168. package/services/conversation/mock/service.test.d.cts +1 -0
  169. package/services/conversation/mock/service.test.d.ts +1 -0
  170. package/services/conversation/mock/service.test.js +2 -0
  171. package/services/conversation/mock/state.cjs +2 -0
  172. package/services/conversation/mock/state.d.cts +296 -0
  173. package/services/conversation/mock/state.d.ts +296 -0
  174. package/services/conversation/mock/state.js +2 -0
  175. package/services/conversation/mock/storybook.cjs +2 -0
  176. package/services/conversation/mock/storybook.d.cts +197 -0
  177. package/services/conversation/mock/storybook.d.ts +197 -0
  178. package/services/conversation/mock/storybook.js +2 -0
  179. package/services/conversation/mock/types.cjs +2 -0
  180. package/services/conversation/mock/types.d.cts +442 -0
  181. package/services/conversation/mock/types.d.ts +442 -0
  182. package/services/conversation/mock/types.js +1 -0
  183. package/services/faqs/faqs.service.cjs +2 -0
  184. package/services/faqs/faqs.service.d.cts +16 -0
  185. package/services/faqs/faqs.service.d.ts +16 -0
  186. package/services/faqs/faqs.service.js +2 -0
  187. package/services/faqs/faqs.types.cjs +2 -0
  188. package/services/faqs/faqs.types.d.cts +60 -0
  189. package/services/faqs/faqs.types.d.ts +60 -0
  190. package/services/faqs/faqs.types.js +1 -0
  191. package/services/faqs/index.cjs +2 -0
  192. package/services/faqs/index.d.cts +3 -0
  193. package/services/faqs/index.d.ts +3 -0
  194. package/services/faqs/index.js +2 -0
  195. package/services/file/file.service.cjs +2 -0
  196. package/services/file/file.service.d.cts +66 -0
  197. package/services/file/file.service.d.ts +66 -0
  198. package/services/file/file.service.js +2 -0
  199. package/services/file/file.types.cjs +2 -0
  200. package/services/file/file.types.d.cts +72 -0
  201. package/services/file/file.types.d.ts +72 -0
  202. package/services/file/file.types.js +1 -0
  203. package/services/file/index.cjs +2 -0
  204. package/services/file/index.d.cts +3 -0
  205. package/services/file/index.d.ts +3 -0
  206. package/services/file/index.js +2 -0
  207. package/services/firebase/firebase-api.cjs +2 -2
  208. package/services/firebase/firebase-api.d.cts +25 -9
  209. package/services/firebase/firebase-api.d.ts +25 -9
  210. package/services/firebase/firebase-api.js +2 -2
  211. package/services/multimedia/config.example.cjs +2 -0
  212. package/services/multimedia/config.example.d.cts +13 -0
  213. package/services/multimedia/config.example.d.ts +13 -0
  214. package/services/multimedia/config.example.js +2 -0
  215. package/services/multimedia/index.cjs +2 -0
  216. package/services/multimedia/index.d.cts +3 -0
  217. package/services/multimedia/index.d.ts +3 -0
  218. package/services/multimedia/index.js +2 -0
  219. package/services/multimedia/multimedia.service.cjs +2 -0
  220. package/services/multimedia/multimedia.service.d.cts +28 -0
  221. package/services/multimedia/multimedia.service.d.ts +28 -0
  222. package/services/multimedia/multimedia.service.js +2 -0
  223. package/services/multimedia/multimedia.types.cjs +2 -0
  224. package/services/multimedia/multimedia.types.d.cts +65 -0
  225. package/services/multimedia/multimedia.types.d.ts +65 -0
  226. package/services/multimedia/multimedia.types.js +1 -0
  227. package/services/product/index.cjs +2 -0
  228. package/services/product/index.d.cts +3 -0
  229. package/services/product/index.d.ts +3 -0
  230. package/services/product/index.js +2 -0
  231. package/services/product/product.service.cjs +2 -0
  232. package/services/product/product.service.d.cts +19 -0
  233. package/services/product/product.service.d.ts +19 -0
  234. package/services/product/product.service.js +2 -0
  235. package/services/product/product.types.cjs +2 -0
  236. package/services/product/product.types.d.cts +78 -0
  237. package/services/product/product.types.d.ts +78 -0
  238. package/services/product/product.types.js +1 -0
  239. package/services/request.provider.cjs +1 -1
  240. package/services/request.provider.d.cts +1 -0
  241. package/services/request.provider.d.ts +1 -0
  242. package/services/request.provider.js +1 -1
  243. package/services/session.service.cjs +2 -0
  244. package/services/session.service.d.cts +70 -0
  245. package/services/session.service.d.ts +70 -0
  246. package/services/session.service.js +2 -0
  247. package/services/upload/index.cjs +2 -0
  248. package/services/upload/index.d.cts +2 -0
  249. package/services/upload/index.d.ts +2 -0
  250. package/services/upload/index.js +2 -0
  251. package/services/upload/upload.service.cjs +2 -0
  252. package/services/upload/upload.service.d.cts +81 -0
  253. package/services/upload/upload.service.d.ts +81 -0
  254. package/services/upload/upload.service.js +2 -0
  255. package/themes/dark.cjs +16 -2
  256. package/themes/dark.d.cts +1 -0
  257. package/themes/dark.d.ts +1 -0
  258. package/themes/dark.js +15 -1
  259. package/themes/light.cjs +13 -2
  260. package/themes/light.d.cts +1 -0
  261. package/themes/light.d.ts +1 -0
  262. package/themes/light.js +12 -1
  263. package/types/globals.cjs +2 -0
  264. package/types/globals.d.cts +39 -0
  265. package/types/globals.d.ts +39 -0
  266. package/types/globals.js +1 -0
  267. package/types/tracking-options.cjs +2 -2
  268. package/types/tracking-options.d.cts +8 -6
  269. package/types/tracking-options.d.ts +8 -6
  270. package/types/tracking-options.js +1 -1
  271. package/utils/adopt-styles.cjs +2 -2
  272. package/utils/adopt-styles.d.cts +1 -0
  273. package/utils/adopt-styles.d.ts +1 -0
  274. package/utils/adopt-styles.js +2 -2
  275. package/utils/browser-preferences.cjs +2 -2
  276. package/utils/browser-preferences.d.cts +1 -0
  277. package/utils/browser-preferences.d.ts +1 -0
  278. package/utils/browser-preferences.js +2 -2
  279. package/utils/classify-media.cjs +1 -1
  280. package/utils/classify-media.d.cts +1 -0
  281. package/utils/classify-media.d.ts +1 -0
  282. package/utils/classify-media.js +1 -1
  283. package/utils/decorators.cjs +1 -1
  284. package/utils/decorators.d.cts +1 -0
  285. package/utils/decorators.d.ts +1 -0
  286. package/utils/decorators.js +1 -1
  287. package/utils/detected-lang.cjs +2 -2
  288. package/utils/detected-lang.d.cts +1 -0
  289. package/utils/detected-lang.d.ts +1 -0
  290. package/utils/detected-lang.js +2 -2
  291. package/utils/fullscreen.cjs +2 -2
  292. package/utils/fullscreen.d.cts +6 -5
  293. package/utils/fullscreen.d.ts +6 -5
  294. package/utils/fullscreen.js +2 -2
  295. package/utils/insert-script.cjs +1 -1
  296. package/utils/insert-script.d.cts +1 -0
  297. package/utils/insert-script.d.ts +1 -0
  298. package/utils/insert-script.js +1 -1
  299. package/utils/is-map-compatible.cjs +1 -1
  300. package/utils/is-map-compatible.d.cts +1 -0
  301. package/utils/is-map-compatible.d.ts +1 -0
  302. package/utils/is-map-compatible.js +1 -1
  303. package/utils/markdown.cjs +2 -2
  304. package/utils/markdown.d.cts +1 -0
  305. package/utils/markdown.d.ts +1 -0
  306. package/utils/markdown.js +2 -2
  307. package/utils/merge.cjs +2 -2
  308. package/utils/merge.d.cts +2 -1
  309. package/utils/merge.d.ts +2 -1
  310. package/utils/merge.js +2 -2
  311. package/utils/multiband-track-volume.cjs +2 -2
  312. package/utils/multiband-track-volume.d.cts +1 -0
  313. package/utils/multiband-track-volume.d.ts +1 -0
  314. package/utils/multiband-track-volume.js +2 -2
  315. package/utils/onlive-url-params.cjs +1 -1
  316. package/utils/onlive-url-params.d.cts +1 -0
  317. package/utils/onlive-url-params.d.ts +1 -0
  318. package/utils/onlive-url-params.js +1 -1
  319. package/utils/pretty-distance.cjs +2 -2
  320. package/utils/pretty-distance.d.cts +2 -1
  321. package/utils/pretty-distance.d.ts +2 -1
  322. package/utils/pretty-distance.js +2 -2
  323. package/utils/pretty-time.cjs +2 -0
  324. package/utils/pretty-time.d.cts +16 -0
  325. package/utils/pretty-time.d.ts +16 -0
  326. package/utils/pretty-time.js +2 -0
  327. package/utils/random-string.cjs +1 -1
  328. package/utils/random-string.d.cts +1 -0
  329. package/utils/random-string.d.ts +1 -0
  330. package/utils/random-string.js +1 -1
  331. package/utils/resource-type.cjs +1 -1
  332. package/utils/resource-type.d.cts +1 -0
  333. package/utils/resource-type.d.ts +1 -0
  334. package/utils/resource-type.js +1 -1
  335. package/utils/round-number.cjs +2 -0
  336. package/utils/round-number.d.cts +30 -0
  337. package/utils/round-number.d.ts +30 -0
  338. package/utils/round-number.js +2 -0
  339. package/utils/safe-html.cjs +2 -2
  340. package/utils/safe-html.d.cts +12 -4
  341. package/utils/safe-html.d.ts +12 -4
  342. package/utils/safe-html.js +2 -2
  343. package/utils/sanitize.cjs +2 -2
  344. package/utils/sanitize.d.cts +1 -0
  345. package/utils/sanitize.d.ts +1 -0
  346. package/utils/sanitize.js +2 -2
  347. package/utils/spread.cjs +2 -2
  348. package/utils/spread.d.cts +1 -0
  349. package/utils/spread.d.ts +1 -0
  350. package/utils/spread.js +2 -2
  351. package/utils/watch.cjs +1 -1
  352. package/utils/watch.d.cts +1 -0
  353. package/utils/watch.d.ts +1 -0
  354. package/utils/watch.js +1 -1
  355. package/services/firebase/firebase.service.cjs +0 -2
  356. package/services/firebase/firebase.service.d.cts +0 -40
  357. package/services/firebase/firebase.service.d.ts +0 -40
  358. package/services/firebase/firebase.service.js +0 -2
  359. package/services/livekit.service.cjs +0 -2
  360. package/services/livekit.service.d.cts +0 -219
  361. package/services/livekit.service.d.ts +0 -219
  362. package/services/livekit.service.js +0 -2
  363. package/types/window-context.cjs +0 -2
  364. package/types/window-context.d.cts +0 -8
  365. package/types/window-context.d.ts +0 -8
  366. package/types/window-context.js +0 -1
@@ -0,0 +1,543 @@
1
+ /*! @onlive.ai/common-121 v0.2.179 | © 2026 Onlive.ai */
2
+ import { Room as Room$1 } from 'livekit-client';
3
+ import { ConversationServiceOptions, UserApiResponse, AgentData, CreateRoomOptions, EvaluateRoomOptions, GetRoomsOptions, RoomsApiResponse, PersistMessageOptions, MessagesApiResponse, GetMessagesOptions, ApiMessage, MessageReportOptions, MessageReactionOptions, MessageListener, TypingListener, ContextualEvent, RequestNewRoomOptions, RoomApiResponse, CallRequest, CallRequestListener, RoomSyncData, NewRoomRequestData } from './conversation.types.cjs';
4
+ import '@livekit/components-core';
5
+ import '../firebase/firebase-api.cjs';
6
+ import 'firebase/database';
7
+
8
+ /**
9
+ * Extended Room class with persistent metadata.
10
+ *
11
+ * @description Extends LiveKit Room with additional properties for
12
+ * tracking room lifecycle and metadata.
13
+ */
14
+ declare class Room extends Room$1 {
15
+ /** Unique room identifier */
16
+ id: string;
17
+ /** Group identifier for room categorization */
18
+ groupId: string;
19
+ /** ISO timestamp of room creation */
20
+ createdAt: string;
21
+ /** ISO timestamp when user connected */
22
+ connectedAt: string;
23
+ /** Affinity data echoed back from the server */
24
+ affinity?: Record<string, unknown>;
25
+ }
26
+ /**
27
+ * @summary Unified service for conversation management.
28
+ *
29
+ * @description A comprehensive service that combines real-time communication (LiveKit)
30
+ * with presence and request management (Firebase) for handling conversations.
31
+ * This service manages room lifecycle, messaging, typing indicators, call requests,
32
+ * and agent presence in a unified API.
33
+ *
34
+ * @example
35
+ * ```typescript
36
+ * const service = new ConversationService({
37
+ * organizationId: 'org-123',
38
+ * apiUrl: 'https://api.example.com',
39
+ * firebaseConfig: { ... }
40
+ * });
41
+ *
42
+ * // Register user and create room
43
+ * await service.registerUser('user-123', 'secret');
44
+ * const room = await service.createRoom({
45
+ * language: 'en',
46
+ * timezone: 'America/New_York'
47
+ * });
48
+ *
49
+ * // Subscribe to messages
50
+ * service.subscribeMessages((messages) => {
51
+ * console.log('New messages:', messages);
52
+ * });
53
+ * ```
54
+ */
55
+ declare class ConversationService {
56
+ /** Message event listeners */
57
+ private listeners;
58
+ /** Typing indicator listeners */
59
+ private typingListeners;
60
+ /** Map for deduplicating transcription segments */
61
+ private transcriptionMap;
62
+ /** Base API URL */
63
+ private apiUrl;
64
+ /** Authentication service URL */
65
+ private authUrl?;
66
+ /** Organization identifier */
67
+ private organizationId;
68
+ /** LiveKit chat topic */
69
+ private channelTopic;
70
+ /** LiveKit transcription topic */
71
+ private transcriptionTopic;
72
+ /** LiveKit events topic */
73
+ private eventsTopic;
74
+ /** Message persistence mode */
75
+ private messagePersistence;
76
+ /** Abort controllers for cancellable requests */
77
+ private abortControllers;
78
+ /** Current authentication token */
79
+ private authToken;
80
+ /** Firebase API instance (optional) */
81
+ private firebaseApi?;
82
+ /** Firebase presence path */
83
+ private presencePath?;
84
+ /** Firebase calls path */
85
+ private callsPath?;
86
+ /** Active Firebase unsubscribers */
87
+ private firebaseUnsubscribers;
88
+ /** Set of seen request IDs for deduplication */
89
+ private seenRequestIds;
90
+ /** Map for content-based deduplication */
91
+ private lastSnapshotById;
92
+ /** Current LiveKit room instance */
93
+ room: Room;
94
+ /**
95
+ * Initializes a new instance of the ConversationService.
96
+ *
97
+ * @param {ConversationServiceOptions} options - Service configuration options.
98
+ */
99
+ constructor(options: ConversationServiceOptions);
100
+ /**
101
+ * Creates a new LiveKit Room instance with default settings.
102
+ *
103
+ * @private
104
+ * @returns {Room} New Room instance.
105
+ */
106
+ private createRoomInstance;
107
+ /**
108
+ * Ensures a room instance exists, creating one if necessary.
109
+ *
110
+ * @returns {Room} Current or new Room instance.
111
+ */
112
+ ensureRoom(): Room;
113
+ /**
114
+ * Initializes Firebase services for presence and request management.
115
+ *
116
+ * @private
117
+ * @param {FirebaseConfig} config - Firebase configuration.
118
+ */
119
+ private initializeFirebase;
120
+ /**
121
+ * Sets up LiveKit room event handlers for messaging and typing.
122
+ *
123
+ * @private
124
+ */
125
+ private initializeRoomHandlers;
126
+ /**
127
+ * Registers a user for conversation access.
128
+ *
129
+ * @async
130
+ * @param {string} externalId - External user identifier.
131
+ * @param {string} secret - User authentication secret.
132
+ * @param {Record<string, unknown>} [userData] - Additional user data.
133
+ * @param {Record<string, unknown>} [metadata] - User metadata.
134
+ * @returns {Promise<UserApiResponse>} User registration response with token.
135
+ */
136
+ registerUser(externalId: string, secret: string, userData?: Record<string, unknown>, metadata?: Record<string, unknown>): Promise<UserApiResponse>;
137
+ /**
138
+ * Registers an agent for handling conversations.
139
+ *
140
+ * @async
141
+ * @param {string} externalId - External agent identifier.
142
+ * @param {AgentData} agentData - Agent profile data.
143
+ * @returns {Promise<string>} Authentication token.
144
+ */
145
+ registerAgent(externalId: string, agentData: AgentData): Promise<string>;
146
+ /**
147
+ * Decodes a JWT token payload without verification.
148
+ *
149
+ * @private
150
+ * @param {string} token - JWT token string.
151
+ * @returns {{ username?: string; sub?: string; iat?: number; exp?: number } | null} Decoded payload or null if invalid.
152
+ */
153
+ private decodeJwtPayload;
154
+ /**
155
+ * Creates a new conversation room.
156
+ *
157
+ * @async
158
+ * @param {CreateRoomOptions} options - Room creation options.
159
+ * @param {Record<string, string>} [userData] - User attributes to set.
160
+ * @returns {Promise<Room>} Connected room instance.
161
+ */
162
+ createRoom(options: CreateRoomOptions): Promise<Room>;
163
+ /**
164
+ * Joins an existing conversation room.
165
+ *
166
+ * @async
167
+ * @param {string} roomId - Room identifier to join.
168
+ * @param {string} timezone - User's timezone.
169
+ * @param {string} language - Preferred language.
170
+ * @param {Record<string, unknown>} [attributes] - Additional attributes.
171
+ * @returns {Promise<Room>} Connected room instance.
172
+ */
173
+ joinRoom(roomId: string, timezone: string, language: string, attributes?: Record<string, unknown>): Promise<Room>;
174
+ /**
175
+ * Sets room metadata from API response.
176
+ *
177
+ * @private
178
+ * @param {RoomApiResponse} response - Room API response.
179
+ */
180
+ private setRoomMetadata;
181
+ /**
182
+ * Sets up handler for participant attribute changes.
183
+ *
184
+ * @private
185
+ */
186
+ private setupParticipantAttributesHandler;
187
+ /**
188
+ * Evaluates/rates the current room.
189
+ *
190
+ * @async
191
+ * @param {EvaluateRoomOptions} options - Evaluation options.
192
+ * @returns {Promise<void>}
193
+ */
194
+ evaluateRoom(options: EvaluateRoomOptions): Promise<void>;
195
+ /**
196
+ * Closes the current room on the server.
197
+ *
198
+ * @async
199
+ * @returns {Promise<void>}
200
+ */
201
+ closeRoom(): Promise<void>;
202
+ /**
203
+ * Disconnects from the current room.
204
+ *
205
+ * @async
206
+ * @returns {Promise<void>}
207
+ */
208
+ disconnect(): Promise<void>;
209
+ /**
210
+ * Stops and unpublishes all currently published local tracks.
211
+ *
212
+ * @async
213
+ * @private
214
+ * @returns {Promise<void>}
215
+ */
216
+ private stopAndUnpublishLocalTracks;
217
+ /**
218
+ * Closes the room on server and disconnects locally.
219
+ *
220
+ * @async
221
+ * @returns {Promise<void>}
222
+ */
223
+ disconnectAndCloseRoom(): Promise<void>;
224
+ /**
225
+ * Marks a room as read.
226
+ *
227
+ * @async
228
+ * @param {string} roomId - Room identifier.
229
+ * @returns {Promise<void>}
230
+ */
231
+ readRoom(roomId: string): Promise<void>;
232
+ /**
233
+ * Fetches a list of rooms based on options.
234
+ *
235
+ * @async
236
+ * @param {GetRoomsOptions} options - Room listing options.
237
+ * @returns {Promise<RoomsApiResponse>} Paginated room list.
238
+ */
239
+ getRooms(options: GetRoomsOptions): Promise<RoomsApiResponse>;
240
+ /**
241
+ * Handles incoming messages from LiveKit.
242
+ *
243
+ * @private
244
+ */
245
+ private handleIncomingMessage;
246
+ /**
247
+ * Emits a message to all subscribed listeners.
248
+ *
249
+ * @private
250
+ * @param {ApiMessage} message - Message to emit.
251
+ */
252
+ private emitMessage;
253
+ /**
254
+ * Sends a message in the current room.
255
+ *
256
+ * @async
257
+ * @param {string} message - Message content.
258
+ * @param {Record<string, string>} [attributes] - Message attributes.
259
+ * @returns {Promise<void>}
260
+ */
261
+ sendMessage(message: string, attributes?: Record<string, string>): Promise<void>;
262
+ /**
263
+ * Persists a message to the server.
264
+ *
265
+ * @async
266
+ * @param {PersistMessageOptions} options - Persistence options.
267
+ * @returns {Promise<MessagesApiResponse>}
268
+ */
269
+ persistMessage(options: PersistMessageOptions): Promise<MessagesApiResponse>;
270
+ /**
271
+ * Fetches messages based on options.
272
+ *
273
+ * @async
274
+ * @param {GetMessagesOptions} options - Message fetching options.
275
+ * @returns {Promise<ApiMessage[]>} Array of messages.
276
+ */
277
+ getMessages(options: GetMessagesOptions): Promise<ApiMessage[]>;
278
+ /**
279
+ * Reports a message for moderation.
280
+ *
281
+ * @async
282
+ * @param {MessageReportOptions} options - Report options.
283
+ * @returns {Promise<void>}
284
+ */
285
+ sendMessageReport(options: MessageReportOptions): Promise<void>;
286
+ /**
287
+ * Deletes a message report.
288
+ *
289
+ * @async
290
+ * @param {MessageReportOptions} options - Report options.
291
+ * @returns {Promise<void>}
292
+ */
293
+ deleteMessageReport(options: MessageReportOptions): Promise<void>;
294
+ /**
295
+ * Updates reactions on a message.
296
+ *
297
+ * @async
298
+ * @param {MessageReactionOptions} options - Reaction options.
299
+ * @returns {Promise<void>}
300
+ */
301
+ updateMessageReactions(options: MessageReactionOptions): Promise<void>;
302
+ /**
303
+ * Subscribes to incoming messages.
304
+ *
305
+ * @param {MessageListener<M>} callback - Message listener callback.
306
+ * @returns {() => void} Unsubscribe function.
307
+ */
308
+ subscribeMessages<M extends ApiMessage = ApiMessage>(callback: MessageListener<M>): () => void;
309
+ /**
310
+ * Handles data received events for typing indicators.
311
+ *
312
+ * @private
313
+ */
314
+ private handleDataReceived;
315
+ /**
316
+ * Emits a typing indicator to all listeners.
317
+ *
318
+ * @private
319
+ * @param {TypingIndicator} indicator - Typing indicator data.
320
+ */
321
+ private emitTypingIndicator;
322
+ /**
323
+ * Sends a typing indicator to other participants.
324
+ *
325
+ * @async
326
+ * @param {boolean} isTyping - Whether the user is currently typing.
327
+ * @returns {Promise<void>}
328
+ */
329
+ sendTypingIndicator(isTyping: boolean): Promise<void>;
330
+ /**
331
+ * Subscribes to typing indicators from other participants.
332
+ *
333
+ * @param {TypingListener} listener - Typing indicator listener.
334
+ * @returns {() => void} Unsubscribe function.
335
+ */
336
+ subscribeTypingIndicators(listener: TypingListener): () => void;
337
+ /**
338
+ * Unsubscribes a typing indicator listener.
339
+ *
340
+ * @param {TypingListener} listener - Listener to remove.
341
+ */
342
+ unsubscribeTypingIndicators(listener: TypingListener): void;
343
+ /**
344
+ * Sends a contextual event to the room.
345
+ *
346
+ * @async
347
+ * @param {ContextualEvent} event - Event to send.
348
+ * @returns {Promise<void>}
349
+ */
350
+ sendContextualEvent(event: ContextualEvent): Promise<void>;
351
+ /**
352
+ * Requests a new room (call transfer).
353
+ *
354
+ * @async
355
+ * @param {RequestNewRoomOptions} options - Request options.
356
+ * @returns {Promise<RoomApiResponse>} New room details.
357
+ */
358
+ requestNewRoom(options: RequestNewRoomOptions): Promise<RoomApiResponse>;
359
+ /**
360
+ * Confirms an active room request.
361
+ *
362
+ * @async
363
+ * @param {string} roomId - Room identifier.
364
+ * @returns {Promise<{ success: boolean; message: string; roomId: string }>}
365
+ */
366
+ confirmRoomRequest(roomId: string): Promise<{
367
+ success: boolean;
368
+ message: string;
369
+ roomId: string;
370
+ }>;
371
+ /**
372
+ * Cancels an active room request.
373
+ *
374
+ * @async
375
+ * @param {string} roomId - Room identifier.
376
+ * @returns {Promise<{ success: boolean; message: string; roomId: string }>}
377
+ */
378
+ cancelRoomRequest(roomId: string): Promise<{
379
+ success: boolean;
380
+ message: string;
381
+ roomId: string;
382
+ }>;
383
+ /**
384
+ * Finishes an active call.
385
+ *
386
+ * @async
387
+ * @returns {Promise<void>}
388
+ */
389
+ finishCall(): Promise<void>;
390
+ /**
391
+ * Checks if Firebase is initialized.
392
+ *
393
+ * @returns {boolean} True if Firebase features are available.
394
+ */
395
+ isFirebaseEnabled(): boolean;
396
+ /**
397
+ * Gets Firebase API and paths, throwing if not initialized.
398
+ *
399
+ * @private
400
+ * @throws {Error} If Firebase is not initialized.
401
+ * @returns {{ api: FirebaseApi; presencePath: string; callsPath: string }}
402
+ */
403
+ private getFirebase;
404
+ /**
405
+ * Gets the presence path for an agent.
406
+ *
407
+ * @private
408
+ * @param {string} agentId - Agent identifier.
409
+ * @returns {string} Firebase path.
410
+ */
411
+ private buildAgentPresencePath;
412
+ /**
413
+ * Subscribes to presence changes for all agents.
414
+ *
415
+ * @param {(agentId: string, data: object | null) => void} callback - Change handler.
416
+ * @returns {() => void} Unsubscribe function.
417
+ */
418
+ onPresenceChange(callback: (agentId: string, data: object | null) => void): () => void;
419
+ /**
420
+ * Subscribes to presence changes for a specific agent.
421
+ *
422
+ * @param {string} agentId - Agent identifier.
423
+ * @param {(agentId: string, data: object | null) => void} callback - Change handler.
424
+ * @returns {() => void} Unsubscribe function.
425
+ */
426
+ onPresenceAgentChange(agentId: string, callback: (agentId: string, data: object | null) => void): () => void;
427
+ /**
428
+ * Creates a new call request via API.
429
+ *
430
+ * @async
431
+ * @param {Omit<CallRequest, "status" | "createdAt">} requestData - Request data.
432
+ * @returns {Promise<string>} Request identifier.
433
+ */
434
+ createCallRequest(requestData: Omit<CallRequest, "status" | "createdAt" | "id">): Promise<string>;
435
+ /**
436
+ * Subscribes to new call requests.
437
+ *
438
+ * @param {CallRequestListener} callback - Request handler.
439
+ * @returns {() => void} Unsubscribe function.
440
+ */
441
+ onNewCallRequest(callback: CallRequestListener): () => void;
442
+ /**
443
+ * Subscribes to call request changes.
444
+ *
445
+ * @param {CallRequestListener} callback - Change handler.
446
+ * @returns {() => void} Unsubscribe function.
447
+ */
448
+ onCallRequestChange(callback: CallRequestListener): () => void;
449
+ /**
450
+ * Subscribes to call request removals.
451
+ *
452
+ * @param {(id: string) => void} callback - Removal handler.
453
+ * @returns {() => void} Unsubscribe function.
454
+ */
455
+ onCallRequestRemoved(callback: (id: string) => void): () => void;
456
+ /**
457
+ * Accepts a call request.
458
+ *
459
+ * @async
460
+ * @param {string} requestId - Request identifier.
461
+ * @returns {Promise<void>}
462
+ */
463
+ acceptCallRequest(requestId: string): Promise<void>;
464
+ /**
465
+ * Cancels a call request via API.
466
+ *
467
+ * @async
468
+ * @param {string} requestId - Request identifier.
469
+ * @returns {Promise<void>}
470
+ */
471
+ cancelCallRequest(requestId: string): Promise<void>;
472
+ /**
473
+ * Cancels onDisconnect behavior for a request.
474
+ *
475
+ * @async
476
+ * @param {string} requestId - Request identifier.
477
+ * @returns {Promise<void>}
478
+ */
479
+ cancelOnDisconnect(requestId: string): Promise<void>;
480
+ /**
481
+ * Subscribes to pending call requests with deduplication.
482
+ *
483
+ * @param {CallRequestListener} callback - Request handler.
484
+ * @param {{ resetSeen?: boolean }} [options] - Subscription options.
485
+ * @returns {() => void} Unsubscribe function.
486
+ */
487
+ subscribePendingRequests(callback: CallRequestListener, options?: {
488
+ resetSeen?: boolean;
489
+ }): () => void;
490
+ /**
491
+ * Subscribes to request changes with content deduplication.
492
+ *
493
+ * @param {CallRequestListener} callback - Change handler.
494
+ * @returns {() => void} Unsubscribe function.
495
+ */
496
+ subscribeRequestChanges(callback: CallRequestListener): () => void;
497
+ /**
498
+ * Attempts to safely accept a request if still pending.
499
+ *
500
+ * @async
501
+ * @param {string} requestId - Request identifier.
502
+ * @returns {Promise<boolean>} True if successfully accepted.
503
+ */
504
+ tryAcceptRequest(requestId: string): Promise<boolean>;
505
+ /**
506
+ * Subscribes to room sync notifications.
507
+ *
508
+ * @param {string} roomId - Room identifier.
509
+ * @param {(data: RoomSyncData | null) => void} callback - Sync handler.
510
+ * @returns {() => void} Unsubscribe function.
511
+ */
512
+ onRoomSync(roomId: string, callback: (data: RoomSyncData | null) => void): () => void;
513
+ /**
514
+ * Clears the sync flag for a room.
515
+ *
516
+ * @async
517
+ * @param {string} roomId - Room identifier.
518
+ * @param {string} [reason] - Reason for clearing.
519
+ * @returns {Promise<void>}
520
+ */
521
+ clearRoomSync(roomId: string, reason?: string): Promise<void>;
522
+ /**
523
+ * Subscribes to new room request notifications.
524
+ *
525
+ * @param {string} roomId - Origin room identifier.
526
+ * @param {(data: NewRoomRequestData | null) => void} callback - Request handler.
527
+ * @returns {() => void} Unsubscribe function.
528
+ */
529
+ onNewRoomRequest(roomId: string, callback: (data: NewRoomRequestData | null) => void): () => void;
530
+ /**
531
+ * Removes all Firebase listeners.
532
+ */
533
+ unsubscribeAllFirebase(): void;
534
+ /**
535
+ * Cleans up all resources and connections.
536
+ *
537
+ * @async
538
+ * @returns {Promise<void>}
539
+ */
540
+ destroy(): Promise<void>;
541
+ }
542
+
543
+ export { ConversationService, Room };