@onlive.ai/common-121 0.2.66 → 0.2.163

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