@webex/contact-center 3.12.0-next.16 → 3.12.0-next.160

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 (328) hide show
  1. package/.sdd/manifest.json +887 -0
  2. package/AGENTS.md +94 -0
  3. package/ai-docs/ARCHITECTURE.md +168 -0
  4. package/ai-docs/CONTRACTS.md +62 -0
  5. package/ai-docs/GETTING_STARTED.md +168 -0
  6. package/ai-docs/GLOSSARY.md +43 -0
  7. package/ai-docs/README.md +138 -0
  8. package/ai-docs/REVIEW_CHECKLIST.md +41 -0
  9. package/ai-docs/RULES.md +444 -0
  10. package/ai-docs/SECURITY.md +52 -0
  11. package/ai-docs/SERVICE_STATE.md +52 -0
  12. package/ai-docs/SPEC_INDEX.md +65 -0
  13. package/ai-docs/adr/0001-spec-source-policy.md +55 -0
  14. package/ai-docs/adr/README.md +8 -0
  15. package/ai-docs/adr/_adr-template.md +31 -0
  16. package/ai-docs/contact-center-spec.md +385 -0
  17. package/ai-docs/features/consult-transfer-list-policy/spec/feature-spec.md +362 -0
  18. package/ai-docs/features/contact-owner-change-refactor.md +78 -0
  19. package/ai-docs/features/generated-spec-conformance-fidelity-remediation/spec/feature-spec.md +117 -0
  20. package/ai-docs/features/residual-warning-coverage-completion/spec/feature-spec.md +203 -0
  21. package/ai-docs/features/validator-code-fidelity-drift-fix/spec/feature-spec.md +315 -0
  22. package/ai-docs/patterns/event-driven-patterns.md +485 -0
  23. package/ai-docs/patterns/testing-patterns.md +480 -0
  24. package/ai-docs/patterns/typescript-patterns.md +365 -0
  25. package/ai-docs/templates/README.md +102 -0
  26. package/ai-docs/templates/documentation/create-agents-md.md +240 -0
  27. package/ai-docs/templates/documentation/create-architecture-md.md +295 -0
  28. package/ai-docs/templates/existing-service/bug-fix.md +254 -0
  29. package/ai-docs/templates/existing-service/feature-enhancement.md +450 -0
  30. package/ai-docs/templates/new-method/00-master.md +80 -0
  31. package/ai-docs/templates/new-method/01-requirements.md +232 -0
  32. package/ai-docs/templates/new-method/02-implementation.md +295 -0
  33. package/ai-docs/templates/new-method/03-tests.md +201 -0
  34. package/ai-docs/templates/new-method/04-validation.md +141 -0
  35. package/ai-docs/templates/new-service/00-master.md +109 -0
  36. package/ai-docs/templates/new-service/01-pre-questions.md +159 -0
  37. package/ai-docs/templates/new-service/02-code-generation.md +346 -0
  38. package/ai-docs/templates/new-service/03-integration.md +178 -0
  39. package/ai-docs/templates/new-service/04-test-generation.md +205 -0
  40. package/ai-docs/templates/new-service/05-validation.md +145 -0
  41. package/dist/cc.js +888 -49
  42. package/dist/cc.js.map +1 -1
  43. package/dist/config.js +13 -0
  44. package/dist/config.js.map +1 -1
  45. package/dist/constants.js +38 -3
  46. package/dist/constants.js.map +1 -1
  47. package/dist/index.js +54 -17
  48. package/dist/index.js.map +1 -1
  49. package/dist/metrics/MetricsManager.js +16 -0
  50. package/dist/metrics/MetricsManager.js.map +1 -1
  51. package/dist/metrics/behavioral-events.js +185 -0
  52. package/dist/metrics/behavioral-events.js.map +1 -1
  53. package/dist/metrics/constants.js +54 -4
  54. package/dist/metrics/constants.js.map +1 -1
  55. package/dist/services/AddressBook.js +18 -15
  56. package/dist/services/AddressBook.js.map +1 -1
  57. package/dist/services/AnswerCallOnWebexService.js +202 -0
  58. package/dist/services/AnswerCallOnWebexService.js.map +1 -0
  59. package/dist/services/ApiAiAssistant.js +369 -14
  60. package/dist/services/ApiAiAssistant.js.map +1 -1
  61. package/dist/services/EntryPoint.js +46 -68
  62. package/dist/services/EntryPoint.js.map +1 -1
  63. package/dist/services/Queue.js +27 -22
  64. package/dist/services/Queue.js.map +1 -1
  65. package/dist/services/UserPreference.js +427 -0
  66. package/dist/services/UserPreference.js.map +1 -0
  67. package/dist/services/WebCallingService.js +10 -2
  68. package/dist/services/WebCallingService.js.map +1 -1
  69. package/dist/services/WebexCrossClientService.js +225 -0
  70. package/dist/services/WebexCrossClientService.js.map +1 -0
  71. package/dist/services/WxAppTelephonyMercurySync.js +111 -0
  72. package/dist/services/WxAppTelephonyMercurySync.js.map +1 -0
  73. package/dist/services/config/Util.js +48 -48
  74. package/dist/services/config/Util.js.map +1 -1
  75. package/dist/services/config/constants.js +56 -78
  76. package/dist/services/config/constants.js.map +1 -1
  77. package/dist/services/config/index.js +100 -226
  78. package/dist/services/config/index.js.map +1 -1
  79. package/dist/services/config/types.js +93 -24
  80. package/dist/services/config/types.js.map +1 -1
  81. package/dist/services/constants.js +11 -1
  82. package/dist/services/constants.js.map +1 -1
  83. package/dist/services/core/Err.js.map +1 -1
  84. package/dist/services/core/Utils.js +131 -32
  85. package/dist/services/core/Utils.js.map +1 -1
  86. package/dist/services/core/WebexRequest.js +6 -2
  87. package/dist/services/core/WebexRequest.js.map +1 -1
  88. package/dist/services/core/aqm-reqs.js +17 -11
  89. package/dist/services/core/aqm-reqs.js.map +1 -1
  90. package/dist/services/core/constants.js +9 -1
  91. package/dist/services/core/constants.js.map +1 -1
  92. package/dist/services/core/types.js.map +1 -1
  93. package/dist/services/core/websocket/WebSocketManager.js +19 -2
  94. package/dist/services/core/websocket/WebSocketManager.js.map +1 -1
  95. package/dist/services/core/websocket/types.js.map +1 -1
  96. package/dist/services/index.js +1 -1
  97. package/dist/services/index.js.map +1 -1
  98. package/dist/services/task/Task.js +955 -0
  99. package/dist/services/task/Task.js.map +1 -0
  100. package/dist/services/task/TaskFactory.js +50 -0
  101. package/dist/services/task/TaskFactory.js.map +1 -0
  102. package/dist/services/task/TaskManager.js +1272 -605
  103. package/dist/services/task/TaskManager.js.map +1 -1
  104. package/dist/services/task/TaskUtils.js +221 -27
  105. package/dist/services/task/TaskUtils.js.map +1 -1
  106. package/dist/services/task/WebexCallingUtils.js +70 -0
  107. package/dist/services/task/WebexCallingUtils.js.map +1 -0
  108. package/dist/services/task/constants.js +19 -2
  109. package/dist/services/task/constants.js.map +1 -1
  110. package/dist/services/task/contact.js +29 -0
  111. package/dist/services/task/contact.js.map +1 -1
  112. package/dist/services/task/digital/Digital.js +78 -0
  113. package/dist/services/task/digital/Digital.js.map +1 -0
  114. package/dist/services/task/state-machine/TaskStateMachine.js +982 -0
  115. package/dist/services/task/state-machine/TaskStateMachine.js.map +1 -0
  116. package/dist/services/task/state-machine/actions.js +572 -0
  117. package/dist/services/task/state-machine/actions.js.map +1 -0
  118. package/dist/services/task/state-machine/constants.js +161 -0
  119. package/dist/services/task/state-machine/constants.js.map +1 -0
  120. package/dist/services/task/state-machine/guards.js +379 -0
  121. package/dist/services/task/state-machine/guards.js.map +1 -0
  122. package/dist/services/task/state-machine/index.js +53 -0
  123. package/dist/services/task/state-machine/index.js.map +1 -0
  124. package/dist/services/task/state-machine/types.js +54 -0
  125. package/dist/services/task/state-machine/types.js.map +1 -0
  126. package/dist/services/task/state-machine/uiControlsComputer.js +703 -0
  127. package/dist/services/task/state-machine/uiControlsComputer.js.map +1 -0
  128. package/dist/services/task/taskDataNormalizer.js +99 -0
  129. package/dist/services/task/taskDataNormalizer.js.map +1 -0
  130. package/dist/services/task/types.js +215 -5
  131. package/dist/services/task/types.js.map +1 -1
  132. package/dist/services/task/voice/Voice.js +1504 -0
  133. package/dist/services/task/voice/Voice.js.map +1 -0
  134. package/dist/services/task/voice/WebRTC.js +152 -0
  135. package/dist/services/task/voice/WebRTC.js.map +1 -0
  136. package/dist/services/task/voice/wxAppOfferObservability.js +145 -0
  137. package/dist/services/task/voice/wxAppOfferObservability.js.map +1 -0
  138. package/dist/services/task/voice/wxAppVoiceMethods.js +395 -0
  139. package/dist/services/task/voice/wxAppVoiceMethods.js.map +1 -0
  140. package/dist/services/wxAppDiagnosticLogging.js +159 -0
  141. package/dist/services/wxAppDiagnosticLogging.js.map +1 -0
  142. package/dist/services/wxAppTelephonyUtils.js +19 -0
  143. package/dist/services/wxAppTelephonyUtils.js.map +1 -0
  144. package/dist/types/cc.d.ts +152 -9
  145. package/dist/types/config.d.ts +13 -0
  146. package/dist/types/constants.d.ts +36 -1
  147. package/dist/types/index.d.ts +54 -20
  148. package/dist/types/metrics/MetricsManager.d.ts +6 -0
  149. package/dist/types/metrics/constants.d.ts +48 -1
  150. package/dist/types/services/AddressBook.d.ts +2 -1
  151. package/dist/types/services/AnswerCallOnWebexService.d.ts +38 -0
  152. package/dist/types/services/ApiAiAssistant.d.ts +67 -5
  153. package/dist/types/services/EntryPoint.d.ts +7 -5
  154. package/dist/types/services/Queue.d.ts +5 -3
  155. package/dist/types/services/UserPreference.d.ts +118 -0
  156. package/dist/types/services/WebexCrossClientService.d.ts +32 -0
  157. package/dist/types/services/WxAppTelephonyMercurySync.d.ts +28 -0
  158. package/dist/types/services/config/Util.d.ts +4 -8
  159. package/dist/types/services/config/constants.d.ts +49 -76
  160. package/dist/types/services/config/index.d.ts +16 -64
  161. package/dist/types/services/config/types.d.ts +240 -114
  162. package/dist/types/services/constants.d.ts +9 -0
  163. package/dist/types/services/core/Err.d.ts +2 -0
  164. package/dist/types/services/core/Utils.d.ts +43 -13
  165. package/dist/types/services/core/WebexRequest.d.ts +1 -0
  166. package/dist/types/services/core/constants.d.ts +7 -0
  167. package/dist/types/services/core/types.d.ts +2 -0
  168. package/dist/types/services/core/websocket/WebSocketManager.d.ts +1 -0
  169. package/dist/types/services/core/websocket/types.d.ts +1 -1
  170. package/dist/types/services/index.d.ts +1 -1
  171. package/dist/types/services/task/Task.d.ts +186 -0
  172. package/dist/types/services/task/TaskFactory.d.ts +14 -0
  173. package/dist/types/services/task/TaskUtils.d.ts +54 -2
  174. package/dist/types/services/task/WebexCallingUtils.d.ts +11 -0
  175. package/dist/types/services/task/constants.d.ts +17 -0
  176. package/dist/types/services/task/contact.d.ts +4 -0
  177. package/dist/types/services/task/digital/Digital.d.ts +23 -0
  178. package/dist/types/services/task/state-machine/TaskStateMachine.d.ts +1442 -0
  179. package/dist/types/services/task/state-machine/actions.d.ts +10 -0
  180. package/dist/types/services/task/state-machine/constants.d.ts +107 -0
  181. package/dist/types/services/task/state-machine/guards.d.ts +103 -0
  182. package/dist/types/services/task/state-machine/index.d.ts +13 -0
  183. package/dist/types/services/task/state-machine/types.d.ts +277 -0
  184. package/dist/types/services/task/state-machine/uiControlsComputer.d.ts +9 -0
  185. package/dist/types/services/task/taskDataNormalizer.d.ts +10 -0
  186. package/dist/types/services/task/types.d.ts +738 -66
  187. package/dist/types/services/task/voice/Voice.d.ts +241 -0
  188. package/dist/types/services/task/voice/WebRTC.d.ts +54 -0
  189. package/dist/types/services/task/voice/wxAppOfferObservability.d.ts +39 -0
  190. package/dist/types/services/task/voice/wxAppVoiceMethods.d.ts +68 -0
  191. package/dist/types/services/wxAppDiagnosticLogging.d.ts +63 -0
  192. package/dist/types/services/wxAppTelephonyUtils.d.ts +5 -0
  193. package/dist/types/types.d.ts +213 -11
  194. package/dist/types/utils/PageCache.d.ts +20 -3
  195. package/dist/types/webex.d.ts +1 -0
  196. package/dist/types.js +168 -6
  197. package/dist/types.js.map +1 -1
  198. package/dist/utils/PageCache.js +19 -5
  199. package/dist/utils/PageCache.js.map +1 -1
  200. package/dist/webex.js +22 -2
  201. package/dist/webex.js.map +1 -1
  202. package/package.json +16 -12
  203. package/src/cc.ts +1137 -67
  204. package/src/config.ts +13 -0
  205. package/src/constants.ts +39 -1
  206. package/src/index.ts +62 -15
  207. package/src/metrics/MetricsManager.ts +16 -0
  208. package/src/metrics/ai-docs/AGENTS.md +350 -0
  209. package/src/metrics/ai-docs/ARCHITECTURE.md +338 -0
  210. package/src/metrics/ai-docs/metrics-spec.md +971 -0
  211. package/src/metrics/behavioral-events.ts +190 -0
  212. package/src/metrics/constants.ts +59 -4
  213. package/src/services/AddressBook.ts +17 -6
  214. package/src/services/AnswerCallOnWebexService.ts +239 -0
  215. package/src/services/ApiAiAssistant.ts +494 -15
  216. package/src/services/EntryPoint.ts +59 -60
  217. package/src/services/Queue.ts +29 -12
  218. package/src/services/UserPreference.ts +509 -0
  219. package/src/services/WebCallingService.ts +16 -2
  220. package/src/services/WebexCrossClientService.ts +298 -0
  221. package/src/services/WxAppTelephonyMercurySync.ts +142 -0
  222. package/src/services/agent/ai-docs/AGENTS.md +240 -0
  223. package/src/services/agent/ai-docs/ARCHITECTURE.md +304 -0
  224. package/src/services/agent/ai-docs/agent-spec.md +505 -0
  225. package/src/services/ai-docs/AGENTS.md +386 -0
  226. package/src/services/ai-docs/services-spec.md +512 -0
  227. package/src/services/config/Util.ts +54 -84
  228. package/src/services/config/ai-docs/AGENTS.md +250 -0
  229. package/src/services/config/ai-docs/ARCHITECTURE.md +413 -0
  230. package/src/services/config/ai-docs/config-spec.md +669 -0
  231. package/src/services/config/constants.ts +63 -85
  232. package/src/services/config/index.ts +116 -277
  233. package/src/services/config/types.ts +229 -125
  234. package/src/services/constants.ts +10 -0
  235. package/src/services/core/Err.ts +1 -0
  236. package/src/services/core/Utils.ts +151 -37
  237. package/src/services/core/WebexRequest.ts +3 -1
  238. package/src/services/core/ai-docs/AGENTS.md +381 -0
  239. package/src/services/core/ai-docs/ARCHITECTURE.md +698 -0
  240. package/src/services/core/ai-docs/core-spec.md +797 -0
  241. package/src/services/core/aqm-reqs.ts +18 -12
  242. package/src/services/core/constants.ts +8 -0
  243. package/src/services/core/types.ts +33 -1
  244. package/src/services/core/websocket/WebSocketManager.ts +28 -2
  245. package/src/services/core/websocket/types.ts +1 -1
  246. package/src/services/index.ts +1 -1
  247. package/src/services/task/Task.ts +1211 -0
  248. package/src/services/task/TaskFactory.ts +82 -0
  249. package/src/services/task/TaskManager.ts +1585 -724
  250. package/src/services/task/TaskUtils.ts +316 -25
  251. package/src/services/task/WebexCallingUtils.ts +136 -0
  252. package/src/services/task/ai-docs/AGENTS.md +457 -0
  253. package/src/services/task/ai-docs/ARCHITECTURE.md +595 -0
  254. package/src/services/task/ai-docs/task-spec.md +1501 -0
  255. package/src/services/task/constants.ts +18 -0
  256. package/src/services/task/contact.ts +30 -0
  257. package/src/services/task/digital/Digital.ts +102 -0
  258. package/src/services/task/state-machine/TaskStateMachine.ts +1320 -0
  259. package/src/services/task/state-machine/actions.ts +741 -0
  260. package/src/services/task/state-machine/ai-docs/AGENTS.md +460 -0
  261. package/src/services/task/state-machine/ai-docs/ARCHITECTURE.md +1156 -0
  262. package/src/services/task/state-machine/ai-docs/task-state-machine-spec.md +2247 -0
  263. package/src/services/task/state-machine/constants.ts +172 -0
  264. package/src/services/task/state-machine/guards.ts +442 -0
  265. package/src/services/task/state-machine/index.ts +28 -0
  266. package/src/services/task/state-machine/types.ts +258 -0
  267. package/src/services/task/state-machine/uiControlsComputer.ts +1135 -0
  268. package/src/services/task/taskDataNormalizer.ts +137 -0
  269. package/src/services/task/types.ts +918 -70
  270. package/src/services/task/voice/Voice.ts +1878 -0
  271. package/src/services/task/voice/WebRTC.ts +194 -0
  272. package/src/services/task/voice/wxAppOfferObservability.ts +204 -0
  273. package/src/services/task/voice/wxAppVoiceMethods.ts +575 -0
  274. package/src/services/wxAppDiagnosticLogging.ts +286 -0
  275. package/src/services/wxAppTelephonyUtils.ts +14 -0
  276. package/src/types.ts +272 -13
  277. package/src/utils/AGENTS.md +289 -0
  278. package/src/utils/PageCache.ts +38 -5
  279. package/src/utils/ai-docs/utils-spec.md +391 -0
  280. package/src/webex.js +10 -0
  281. package/test/unit/fixtures/aiSummaryTestUtils.ts +40 -0
  282. package/test/unit/spec/cc.ts +3553 -107
  283. package/test/unit/spec/index.ts +885 -0
  284. package/test/unit/spec/logger-proxy.ts +70 -0
  285. package/test/unit/spec/metrics/MetricsManager.ts +25 -0
  286. package/test/unit/spec/metrics/behavioral-events.ts +60 -0
  287. package/test/unit/spec/services/AddressBook.ts +37 -6
  288. package/test/unit/spec/services/AnswerCallOnWebexService.ts +264 -0
  289. package/test/unit/spec/services/ApiAiAssistant.ts +442 -23
  290. package/test/unit/spec/services/EntryPoint.ts +87 -40
  291. package/test/unit/spec/services/Queue.ts +123 -12
  292. package/test/unit/spec/services/UserPreference.ts +401 -0
  293. package/test/unit/spec/services/WebCallingService.ts +45 -1
  294. package/test/unit/spec/services/WebexCrossClientService.ts +509 -0
  295. package/test/unit/spec/services/WxAppTelephonyMercurySync.ts +136 -0
  296. package/test/unit/spec/services/config/Util.ts +501 -0
  297. package/test/unit/spec/services/config/index.ts +317 -547
  298. package/test/unit/spec/services/core/Utils.ts +447 -8
  299. package/test/unit/spec/services/core/WebexRequest.ts +8 -7
  300. package/test/unit/spec/services/core/aqm-reqs.ts +142 -1
  301. package/test/unit/spec/services/core/websocket/WebSocketManager.ts +129 -53
  302. package/test/unit/spec/services/task/AutoWrapup.ts +63 -0
  303. package/test/unit/spec/services/task/Task.ts +2723 -0
  304. package/test/unit/spec/services/task/TaskFactory.ts +116 -0
  305. package/test/unit/spec/services/task/TaskManager.ts +4734 -1769
  306. package/test/unit/spec/services/task/TaskUtils.ts +307 -0
  307. package/test/unit/spec/services/task/WebexCallingUtils.ts +153 -0
  308. package/test/unit/spec/services/task/contact.ts +33 -0
  309. package/test/unit/spec/services/task/digital/Digital.ts +105 -0
  310. package/test/unit/spec/services/task/state-machine/TaskStateMachine.ts +4060 -0
  311. package/test/unit/spec/services/task/state-machine/guards.ts +839 -0
  312. package/test/unit/spec/services/task/state-machine/types.ts +18 -0
  313. package/test/unit/spec/services/task/state-machine/uiControlsComputer.ts +3101 -0
  314. package/test/unit/spec/services/task/taskTestUtils.ts +87 -0
  315. package/test/unit/spec/services/task/voice/Voice.ts +2355 -0
  316. package/test/unit/spec/services/task/voice/WebRTC.ts +235 -0
  317. package/test/unit/spec/services/task/voice/wxAppOfferObservability.ts +361 -0
  318. package/test/unit/spec/services/task/voice/wxAppVoiceMethods.ts +719 -0
  319. package/test/unit/spec/services/wxAppDiagnosticLogging.ts +179 -0
  320. package/test/unit/spec/wellnessSampleUtils.ts +288 -0
  321. package/typedoc.md +1 -1
  322. package/umd/contact-center.min.js +2 -2
  323. package/umd/contact-center.min.js.map +1 -1
  324. package/dist/services/task/index.js +0 -1530
  325. package/dist/services/task/index.js.map +0 -1
  326. package/dist/types/services/task/index.d.ts +0 -650
  327. package/src/services/task/index.ts +0 -1806
  328. package/test/unit/spec/services/task/index.ts +0 -2205
@@ -1,19 +1,36 @@
1
1
  import * as Err from './Err';
2
2
  import { LoginOption, WebexRequestPayload } from '../../types';
3
3
  import { Failure, AugmentedError } from './GlobalTypes';
4
- import { TaskData, ConsultTransferPayLoad, Interaction } from '../task/types';
4
+ import { ConsultConferenceData, consultConferencePayloadData, ConsultTransferDestinationType, TaskData, Interaction } from '../task/types';
5
5
  import { DialPlan } from '../config/types';
6
- export declare const FALLBACK_DIAL_NUMBER_REGEX: RegExp;
6
+ /** Returns whether a value is a non-null object with string keys. */
7
+ export declare const isRecord: (value: unknown) => value is Record<string, unknown>;
8
+ /**
9
+ * Strips characters defined in the dial plan entry from the input string.
10
+ *
11
+ * @param input - The dial number to sanitize
12
+ * @param strippedChars - String of characters to remove from the input
13
+ * @returns The sanitized input with specified characters removed
14
+ */
15
+ export declare const stripDialPlanChars: (input: string, strippedChars: string) => string;
7
16
  /**
8
17
  * Validates a dial number against the provided dial plan regex patterns.
9
18
  * A number is valid if it matches at least one regex pattern in the dial plans.
10
- * Falls back to US/Canada regex validation if no dial plan entries are configured.
19
+ * Skips validation when no dial plan entries are configured, deferring to the server.
11
20
  *
12
21
  * @param input - The dial number to validate
13
22
  * @param dialPlanEntries - Array of dial plan entries containing regex patterns
14
- * @returns true if the input matches at least one dial plan regex pattern, false otherwise
23
+ * @returns true if the input matches at least one dial plan regex pattern or no entries are configured, false otherwise
15
24
  */
16
25
  export declare const isValidDialNumber: (input: string, dialPlanEntries: DialPlan['dialPlanEntity']) => boolean;
26
+ /**
27
+ * Checks whether a URL's hostname is, or is a subdomain of, one of the allowed domains.
28
+ *
29
+ * @param url - The candidate URL to validate
30
+ * @param allowedDomains - Domains (or domain suffixes) the URL's hostname must match
31
+ * @returns true when the URL parses and its hostname matches an allowed domain, false otherwise
32
+ */
33
+ export declare const isAllowedUrlHost: (url: string | undefined | null, allowedDomains: string[]) => boolean;
17
34
  export declare const getStationLoginErrorData: (failure: Failure, loginOption: LoginOption) => {
18
35
  message: any;
19
36
  fieldName: any;
@@ -61,14 +78,6 @@ export declare const generateTaskErrorObject: (error: any, methodName: string, m
61
78
  * @ignore
62
79
  */
63
80
  export declare const createErrDetailsObject: (errObj: WebexRequestPayload) => Err.Details<"Service.reqs.generic.failure">;
64
- /**
65
- * Gets the consulted agent ID from the media object by finding the agent
66
- * in the consult media participants (excluding the current agent).
67
- *
68
- * @param media - The media object from the interaction
69
- * @param agentId - The current agent's ID to exclude from the search
70
- * @returns The consulted agent ID, or empty string if none found
71
- */
72
81
  export declare const getConsultedAgentId: (media: Interaction['media'], agentId: string) => string;
73
82
  /**
74
83
  * Gets the destination agent ID for CBT (Capacity Based Team) scenarios.
@@ -98,4 +107,25 @@ export declare const calculateDestAgentId: (interaction: Interaction, agentId: s
98
107
  * @returns The destination agent ID for determining destination type
99
108
  */
100
109
  export declare const calculateDestType: (interaction: Interaction, agentId: string) => string;
101
- export declare const deriveConsultTransferDestinationType: (taskData?: TaskData) => ConsultTransferPayLoad['destinationType'];
110
+ /**
111
+ * Gets the destination agent ID from participants.
112
+ * Finds a participant who is not the current agent and is an agent type.
113
+ *
114
+ * @param participants - The participants object from interaction
115
+ * @param agentId - The current agent's ID
116
+ * @returns The destination agent ID, or undefined if none found
117
+ */
118
+ export declare const buildConsultConferenceParamData: (dataPassed: consultConferencePayloadData, interactionIdPassed: string) => {
119
+ interactionId: string;
120
+ data: ConsultConferenceData;
121
+ };
122
+ /**
123
+ * Derives the consult transfer destination type based on task data.
124
+ * This function determines the appropriate destination type for a consult transfer
125
+ * by examining the destination type stored in the task data.
126
+ *
127
+ * @param taskData - The task data containing destination information
128
+ * @returns The derived consult transfer destination type
129
+ * @public
130
+ */
131
+ export declare const deriveConsultTransferDestinationType: (taskData: TaskData) => ConsultTransferDestinationType;
@@ -11,6 +11,7 @@ declare class WebexRequest {
11
11
  resource: string;
12
12
  method: HTTP_METHODS;
13
13
  body?: RequestBody;
14
+ headers?: Record<string, string | null>;
14
15
  }): Promise<IHttpResponse>;
15
16
  /**
16
17
  * This is used for uploading the logs to backend/mats.
@@ -67,6 +67,13 @@ export declare const PARTICIPANT_TYPES: {
67
67
  };
68
68
  /** Interaction state for consultation */
69
69
  export declare const STATE_CONSULT = "consult";
70
+ /**
71
+ * Trusted domains for the RoutingNotifs WebSocket connection. A `webSocketUrl` returned by the
72
+ * subscribe/register API is only opened when its hostname matches one of these domains exactly
73
+ * or is a subdomain of one of them.
74
+ * @ignore
75
+ */
76
+ export declare const ALLOWED_ROUTING_NOTIFS_DOMAINS: string[];
70
77
  export declare const METHODS: {
71
78
  REQUEST: string;
72
79
  UPLOAD_LOGS: string;
@@ -18,6 +18,8 @@ export type Req<TRes, TErr> = {
18
18
  url: string;
19
19
  host?: string;
20
20
  method?: HTTP_METHODS;
21
+ /** Suppress request URLs and routing payloads from AQM logs for sensitive operations. */
22
+ redactSensitiveLogs?: boolean;
21
23
  err?: ((errObj: WebexRequestPayload) => Err.Details<'Service.reqs.generic.failure'>) | Err.IdsMessage | ((e: WebexRequestPayload) => Err.Message | Err.Details<Err.IdsDetails>);
22
24
  notifSuccess: {
23
25
  bind: Bind;
@@ -33,3 +33,4 @@ export declare class WebSocketManager extends EventEmitter {
33
33
  private connect;
34
34
  private webSocketOnCloseHandler;
35
35
  }
36
+ export default WebSocketManager;
@@ -1,5 +1,5 @@
1
1
  import { SubscribeRequest } from '../../../types';
2
- import { WebSocketManager } from './WebSocketManager';
2
+ import type WebSocketManager from './WebSocketManager';
3
3
  /**
4
4
  * Options for initializing a connection service.
5
5
  * @typedef ConnectionServiceOptions
@@ -23,7 +23,7 @@ export default class Services {
23
23
  readonly dialer: ReturnType<typeof aqmDialer>;
24
24
  /** WebSocket manager for handling real-time communications */
25
25
  readonly webSocketManager: WebSocketManager;
26
- /** RTD WebSocket manager for handling realtime transcription */
26
+ /** RTD WebSocket manager for handling real-time transcription */
27
27
  readonly rtdWebSocketManager: WebSocketManager;
28
28
  /** Connection service for managing websocket connections */
29
29
  readonly connectionService: ConnectionService;
@@ -0,0 +1,186 @@
1
+ /// <reference types="node" />
2
+ import { EventEmitter } from 'events';
3
+ import type { ActorRefFrom, SnapshotFrom } from 'xstate';
4
+ import { ITask, TaskData, TaskResponse, WrapupPayLoad, TaskId, TransferPayLoad, TASK_EVENTS, TaskUIControls, DropConferenceParticipantPayload, ConsultEndPayload, ConsultPayload, ConsultTransferPayLoad, ResumeRecordingPayload, CallId, AISummaryAction, AISummary, AISummaryResponse, AISummaryFeatureEnablement, AISummaryCapabilities, TaskToggleMuteOptions, TaskTransmitDtmfOptions } from './types';
5
+ import routingContact from './contact';
6
+ import MetricsManager from '../../metrics/MetricsManager';
7
+ import { TaskState } from './state-machine';
8
+ import type { TaskEventPayload, TaskStateMachine, UIControlConfig, TaskActionsMap, TaskActionArgs } from './state-machine';
9
+ import AutoWrapup from './AutoWrapup';
10
+ import type { WrapupData } from '../config/types';
11
+ import type ApiAIAssistant from '../ApiAiAssistant';
12
+ type UIControlConfigInput = Omit<UIControlConfig, 'channelType'> & {
13
+ channelType?: UIControlConfig['channelType'];
14
+ };
15
+ export default abstract class Task extends EventEmitter implements ITask {
16
+ protected contact: ReturnType<typeof routingContact>;
17
+ protected metricsManager: MetricsManager;
18
+ stateMachineService?: ActorRefFrom<TaskStateMachine>;
19
+ data: TaskData;
20
+ webCallMap: Record<TaskId, CallId>;
21
+ state?: SnapshotFrom<TaskStateMachine>;
22
+ private lastState?;
23
+ protected currentUiControls: TaskUIControls;
24
+ protected uiControlConfig: UIControlConfig;
25
+ protected wrapupData?: WrapupData;
26
+ autoWrapup?: AutoWrapup;
27
+ protected agentId?: string;
28
+ protected agentName?: string;
29
+ private apiAIAssistant?;
30
+ aiSummaryCapabilities: Readonly<AISummaryCapabilities>;
31
+ constructor(contact: ReturnType<typeof routingContact>, data: TaskData, uiControlConfig: UIControlConfigInput, wrapupData?: WrapupData, agentId?: string, agentName?: string, apiAIAssistant?: ApiAIAssistant);
32
+ private static resolveChannelType;
33
+ abstract accept(): Promise<TaskResponse>;
34
+ decline(): Promise<TaskResponse>;
35
+ pauseRecording(): Promise<TaskResponse>;
36
+ resumeRecording(resumeRecordingPayload: ResumeRecordingPayload): Promise<TaskResponse>;
37
+ consult(consultPayload: ConsultPayload): Promise<TaskResponse>;
38
+ endConsult(consultEndPayload: ConsultEndPayload): Promise<TaskResponse>;
39
+ consultTransfer(consultTransferPayload?: ConsultTransferPayLoad): Promise<TaskResponse>;
40
+ consultConference(): Promise<TaskResponse>;
41
+ dropConferenceParticipant(payload: DropConferenceParticipantPayload): Promise<TaskResponse>;
42
+ exitConference(): Promise<TaskResponse>;
43
+ transferConference(): Promise<TaskResponse>;
44
+ switchCall(): Promise<TaskResponse>;
45
+ toggleMute(options?: TaskToggleMuteOptions): Promise<void>;
46
+ transmitDtmf(options: TaskTransmitDtmfOptions): Promise<void>;
47
+ unregisterWebCallListeners(): void;
48
+ /**
49
+ * Cancel any in-progress auto wrap-up timer.
50
+ * Base implementation just clears the timer reference so subclasses inherit the behavior.
51
+ */
52
+ cancelAutoWrapupTimer(): void;
53
+ hold(): Promise<TaskResponse>;
54
+ resume(): Promise<TaskResponse>;
55
+ holdResume(): Promise<TaskResponse>;
56
+ setFeatureEnablement(enablement: AISummaryFeatureEnablement): void;
57
+ clearFeatureEnablement(): void;
58
+ requestPostCallSummary(): Promise<AISummary>;
59
+ sendPostCallSummaryResponse(response: AISummaryResponse): Promise<void>;
60
+ requestMidCallSummary(action: AISummaryAction): Promise<AISummary>;
61
+ sendMidCallSummaryResponse(response: AISummaryResponse, action: AISummaryAction): Promise<void>;
62
+ private static getAISummaryFailureCode;
63
+ /**
64
+ * Latest UI controls derived from state machine state and context.
65
+ */
66
+ get uiControls(): TaskUIControls;
67
+ protected updateUiControls(forceEmit?: boolean): void;
68
+ /**
69
+ * Initialize the state machine
70
+ */
71
+ private initializeStateMachine;
72
+ /**
73
+ * Send an event to the state machine
74
+ */
75
+ sendStateMachineEvent(event: TaskEventPayload): void;
76
+ /**
77
+ * Get the current state machine state
78
+ */
79
+ protected getCurrentState(): TaskState | undefined;
80
+ /**
81
+ * Compute UI controls based on current state machine state.
82
+ *
83
+ * @returns UI control states for all task actions
84
+ */
85
+ /**
86
+ * Update wxApp thick-client answer flag at runtime (Voice overrides).
87
+ */
88
+ setEnableWxBetterTogether(_enabled: boolean): void;
89
+ /**
90
+ * Apply wxApp mute state from external sync (Voice overrides).
91
+ */
92
+ applyWxAppMuteStateFromSync(_incomingCallId: string, _muted: boolean): void;
93
+ /**
94
+ * Hook for post-assign wxApp sync (Voice overrides).
95
+ */
96
+ protected onTaskAssigned(): void;
97
+ /**
98
+ * Hook for post-hydrate wxApp sync (Voice overrides).
99
+ */
100
+ protected onTaskHydrated(): void;
101
+ protected computeUIControls(): TaskUIControls;
102
+ /**
103
+ * Stop the state machine service
104
+ */
105
+ protected stopStateMachine(): void;
106
+ private static extractTaskDataFromEvent;
107
+ private autoAnswerIfNeeded;
108
+ private updateTaskFromEvent;
109
+ protected getStateMachineActionOverrides(): Partial<TaskActionsMap>;
110
+ protected getChannelSpecificActionOverrides(): Partial<TaskActionsMap>;
111
+ protected createEmitSelfAction(taskEvent: TASK_EVENTS, { updateTaskData }?: {
112
+ updateTaskData?: boolean;
113
+ }): ({ event }: TaskActionArgs) => void;
114
+ private getCommonActionOverrides;
115
+ /**
116
+ * Sets up the automatic wrap-up timer if wrap-up is required
117
+ */
118
+ protected setupAutoWrapupTimer(): void;
119
+ /**
120
+ * Cancels the automatic wrap-up timer if it's running
121
+ */
122
+ private reconcileData;
123
+ /**
124
+ *
125
+ * @param methodName - The name of the method that is unsupported
126
+ * @throws Error
127
+ */
128
+ protected unsupportedMethodError(methodName: string): never;
129
+ /**
130
+ * This method is used to update the task data.
131
+ * @param updatedData - TaskData
132
+ * @param shouldOverwrite - boolean
133
+ * @example
134
+ * ```typescript
135
+ * task.updateTaskData(updatedData, true);
136
+ * ```
137
+ */
138
+ updateTaskData(updatedData: TaskData, shouldOverwrite?: boolean): ITask;
139
+ /**
140
+ * The backend sends `interaction.media` and `interaction.participants` as complete snapshots
141
+ * of the current call state. `reconcileData` deep-merges and never removes keys, so entries the
142
+ * backend dropped (e.g. a consult leg's media and consultee participant after the consult ends)
143
+ * linger in `this.data`. That stale data drives incorrect UI controls (e.g. the consult button
144
+ * staying disabled after the consult leg is gone, until a page refresh re-hydrates cleanly).
145
+ * Make only these two snapshot maps authoritative to the incoming payload, leaving every other
146
+ * field on the generic deep-merge path (CAD and other partial updates still merge as before).
147
+ */
148
+ private pruneStaleInteractionMaps;
149
+ /**
150
+ * This is used to blind transfer or vTeam transfer the task
151
+ * @param transferPayload
152
+ * @returns Promise<TaskResponse>
153
+ * @throws Error
154
+ * @example
155
+ * ```typescript
156
+ * const transferPayload = {
157
+ * to: 'myQueueId',
158
+ * destinationType: 'queue',
159
+ * }
160
+ * task.transfer(transferPayload).then(()=>{}).catch(()=>{});
161
+ * ```
162
+ */
163
+ transfer(transferPayload: TransferPayLoad): Promise<TaskResponse>;
164
+ /**
165
+ * This is used to end the task.
166
+ * @returns Promise<TaskResponse>
167
+ * @throws Error
168
+ * @example
169
+ * ```typescript
170
+ * task.end().then(()=>{}).catch(()=>{})
171
+ * ```
172
+ */
173
+ end(): Promise<TaskResponse>;
174
+ /**
175
+ * This is used to wrap up the task.
176
+ * @param wrapupPayload - WrapupPayLoad
177
+ * @returns Promise<TaskResponse>
178
+ * @throws Error
179
+ * @example
180
+ * ```typescript
181
+ * task.wrapup(wrapupPayload).then(()=>{}).catch(()=>{})
182
+ * ```
183
+ */
184
+ wrapup(wrapupPayload: WrapupPayLoad): Promise<TaskResponse>;
185
+ }
186
+ export {};
@@ -0,0 +1,14 @@
1
+ import routingContact from './contact';
2
+ import WebCallingService from '../WebCallingService';
3
+ import AnswerCallOnWebexService from '../AnswerCallOnWebexService';
4
+ import Task from './Task';
5
+ import { TaskData } from './types';
6
+ import { ConfigFlags } from '../../types';
7
+ import type { WrapupData } from '../config/types';
8
+ import type ApiAIAssistant from '../ApiAiAssistant';
9
+ export default class TaskFactory {
10
+ /**
11
+ * Creates the correct Task subclass based on mediaType & loginOption
12
+ */
13
+ static createTask(contact: ReturnType<typeof routingContact>, webCallingService: WebCallingService, data: TaskData, configFlags: ConfigFlags, wrapupData?: WrapupData, agentId?: string, agentName?: string, answerCallOnWebexService?: AnswerCallOnWebexService, apiAIAssistant?: ApiAIAssistant): Task;
14
+ }
@@ -1,4 +1,35 @@
1
1
  import { Interaction, ITask, TaskData } from './types';
2
+ import { TaskContext } from './state-machine/types';
3
+ type AISummaryError = Error & {
4
+ data?: Record<string, unknown>;
5
+ };
6
+ export declare const isNonEmptyString: (value: unknown) => value is string;
7
+ export declare const createSummaryError: (errorCode: string) => AISummaryError;
8
+ /**
9
+ * Checks if the customer is still in the call (not left)
10
+ *
11
+ * @param interaction - The interaction object
12
+ * @param interactionId - The main interaction ID
13
+ * @returns true if customer is in the call
14
+ */
15
+ export declare const getIsCustomerInCall: (interaction: Interaction, interactionId: string) => boolean;
16
+ /**
17
+ * Gets the count of active agent participants in the conference
18
+ * Excludes Customer, Supervisor, and VVA participant types
19
+ *
20
+ * @param interaction - The interaction object
21
+ * @param interactionId - The main interaction ID
22
+ * @returns Number of active agent participants
23
+ */
24
+ export declare const getConferenceParticipantsCount: (interaction: Interaction, interactionId: string) => number;
25
+ /**
26
+ * Determines if a consult is actively in-progress for conference control gating.
27
+ * This is used to disable conference controls (End/Consult) only when a consult leg
28
+ * still exists outside the main call participants.
29
+ */
30
+ export declare const getIsConsultInProgressForConferenceControls: (interaction: Interaction | undefined, mainCallId: string | undefined, selfAgentId: string | undefined) => boolean;
31
+ export declare const getIsConsultedAgentForControls: (taskData: TaskData | null, context: TaskContext, isConsultingState: boolean) => boolean;
32
+ export declare const getServerHoldStateForControls: (context: TaskContext, mainCallId?: string, fallbackTaskData?: TaskData | null) => boolean | undefined;
2
33
  /**
3
34
  * Determines if the given agent is the primary agent (owner) of the task
4
35
  * @param task - The task to check
@@ -22,10 +53,15 @@ export declare const isParticipantInMainInteraction: (task: ITask, agentId: stri
22
53
  export declare const checkParticipantNotInInteraction: (task: ITask, agentId: string) => boolean;
23
54
  /**
24
55
  * Determines if a conference is currently in progress based on the number of active agent participants
25
- * @param TaskData - The payLoad data to check for conference status
56
+ * @param data - The task data to check for conference status
26
57
  * @returns true if there are 2 or more active agent participants in the main call, false otherwise
58
+ *
59
+ * For Agent B (consulted agent), their task's interactionId may be different from the main call.
60
+ * We use mainInteractionId from the interaction if available, otherwise fallback to interactionId.
27
61
  */
28
62
  export declare const getIsConferenceInProgress: (data: TaskData) => boolean;
63
+ /** EP-DN consult merged to conference before a second agent joins the main leg (CAI-8329). */
64
+ export declare const isEpDnConsultPendingConferenceMerge: (taskData: TaskData | undefined, selfAgentId: string | undefined) => boolean;
29
65
  /**
30
66
  * Checks if the current agent is a secondary agent in a consultation scenario.
31
67
  * Secondary agents are those who were consulted (not the original call owner).
@@ -36,10 +72,15 @@ export declare const isSecondaryAgent: (interaction: Interaction) => boolean;
36
72
  /**
37
73
  * Checks if the current agent is a secondary EP-DN (Entry Point Dial Number) agent.
38
74
  * This is specifically for telephony consultations to external numbers/entry points.
39
- * @param task - The task object containing interaction details
75
+ * @param interaction - The interaction object
40
76
  * @returns true if this is a secondary EP-DN agent in telephony consultation, false otherwise
41
77
  */
42
78
  export declare const isSecondaryEpDnAgent: (interaction: Interaction) => boolean;
79
+ /**
80
+ * Checks if the task belongs to a campaign preview interaction.
81
+ * Campaign preview ContactEnded events are terminal cleanup events and should not trigger wrapup.
82
+ */
83
+ export declare const isCampaignPreviewTask: (taskData?: TaskData | null) => boolean;
43
84
  /**
44
85
  * Checks if auto-answer is enabled for the agent participant
45
86
  * @param interaction - The interaction object
@@ -82,6 +123,16 @@ export declare const hasAgentInitiatedOutdial: (interaction: Interaction, agentI
82
123
  * @returns true if task should be auto-answered, false otherwise
83
124
  */
84
125
  export declare const shouldAutoAnswerTask: (taskData: TaskData, agentId: string, loginOption: string, webRtcEnabled: boolean) => boolean;
126
+ /**
127
+ * Gets the consult media resource ID for switch-call operations.
128
+ * Searches for the consult media leg in the interaction.
129
+ *
130
+ * @param interaction - The interaction object
131
+ * @param consultMediaResourceId - The consult media resource ID from task data
132
+ * @param agentId - Current agent ID
133
+ * @returns The consult media resource ID or undefined
134
+ */
135
+ export declare const getConsultMediaResourceId: (interaction: Interaction | undefined, consultMediaResourceId: string | undefined, agentId: string | undefined) => string | undefined;
85
136
  /**
86
137
  * Checks if a task is a campaign preview reservation that has not yet been accepted.
87
138
  * Campaign preview tasks should not trigger incoming call handling until the agent
@@ -90,3 +141,4 @@ export declare const shouldAutoAnswerTask: (taskData: TaskData, agentId: string,
90
141
  * @returns true if the task is a pending campaign preview reservation, false otherwise
91
142
  */
92
143
  export declare const isCampaignPreviewReservation: (task: ITask) => boolean;
144
+ export {};
@@ -0,0 +1,11 @@
1
+ import { TaskState } from './state-machine/constants';
2
+ export type WebexCallingDeviceDetails = {
3
+ deviceType: string;
4
+ deviceId: string;
5
+ deviceCallId: string;
6
+ };
7
+ export declare function getWebexCallingDeviceDetailsForAgent(agentId: string | undefined, participants: unknown): WebexCallingDeviceDetails | undefined;
8
+ export declare function isWebexCallingCallForAgent(agentId: string | undefined, participants: unknown): boolean;
9
+ /** Matches wxAppVoiceMethods.getWebexCallingCallId engaged semantics for uiControls. */
10
+ export declare function isWxAppEngagedForControls(enableWxBetterTogether: boolean, agentId: string | undefined, participants: unknown, state: TaskState): boolean;
11
+ export declare function decodedLineOwnerId(lineOwnerId?: string): string | undefined;
@@ -11,6 +11,8 @@ export declare const CONSULT = "/consult";
11
11
  export declare const CONSULT_ACCEPT = "/consult/accept";
12
12
  export declare const CONSULT_END = "/consult/end";
13
13
  export declare const TRANSFER = "/transfer";
14
+ /** Backend destination value for direct entry-point transfers through the vteam endpoint. */
15
+ export declare const ENTRY_POINT_TRANSFER_DESTINATION_TYPE = "entrypointDialNumber";
14
16
  export declare const CONSULT_TRANSFER = "/consult/transfer";
15
17
  export declare const PAUSE = "/record/pause";
16
18
  export declare const RESUME = "/record/resume";
@@ -25,6 +27,9 @@ export declare const CAMPAIGN_PREVIEW_SKIP = "/skip";
25
27
  export declare const CAMPAIGN_PREVIEW_REMOVE = "/remove";
26
28
  /** 80-second timeout for accepting preview contact (outbound call setup takes longer than default 20s) */
27
29
  export declare const TIMEOUT_PREVIEW_ACCEPT = 80000;
30
+ /** RTD result deadline; the initiating HTTP acknowledgement uses the 20-second service timeout. */
31
+ export declare const AI_SUMMARY_DURATION_MS = 15000;
32
+ export declare const AI_SUMMARY_REQUEST_CANCELLED: "AI_SUMMARY_REQUEST_CANCELLED";
28
33
  export declare const TASK_MANAGER_FILE = "taskManager";
29
34
  export declare const TASK_FILE = "task";
30
35
  /**
@@ -46,6 +51,10 @@ export declare const PRESERVED_TASK_DATA_FIELDS: {
46
51
  * Used by reconcileData method to preserve important task state fields
47
52
  */
48
53
  export declare const KEYS_TO_NOT_DELETE: string[];
54
+ /**
55
+ * Consultation status constants derived from state machine
56
+ * These values are computed and available in task.data.consultStatus
57
+ */
49
58
  export declare const METHODS: {
50
59
  ACCEPT: string;
51
60
  TOGGLE_MUTE: string;
@@ -61,6 +70,7 @@ export declare const METHODS: {
61
70
  TRANSFER: string;
62
71
  CONSULT_TRANSFER: string;
63
72
  CONSULT_CONFERENCE: string;
73
+ DROP_CONFERENCE_PARTICIPANT: string;
64
74
  EXIT_CONFERENCE: string;
65
75
  TRANSFER_CONFERENCE: string;
66
76
  UPDATE_TASK_DATA: string;
@@ -75,6 +85,13 @@ export declare const METHODS: {
75
85
  GET_TASK_MANAGER: string;
76
86
  SETUP_AUTO_WRAPUP_TIMER: string;
77
87
  CANCEL_AUTO_WRAPUP_TIMER: string;
88
+ REQUEST_REAL_TIME_TRANSCRIPTS: string;
89
+ REQUEST_POST_CALL_SUMMARY: string;
90
+ SEND_POST_CALL_SUMMARY_RESPONSE: string;
91
+ REQUEST_MID_CALL_SUMMARY: string;
92
+ SEND_MID_CALL_SUMMARY_RESPONSE: string;
93
+ HANDLE_AI_SUMMARY_EVENT: string;
94
+ CLEAR_AI_SUMMARY_STATE: string;
78
95
  };
79
96
  export declare const TRANSCRIPT_EVENT_MAP: {
80
97
  AgentContactAssigned: string;
@@ -60,6 +60,10 @@ export default function routingContact(aqm: AqmReqs): {
60
60
  interactionId: string;
61
61
  data: Contact.ConsultConferenceData;
62
62
  }>;
63
+ dropConferenceParticipant: import("../core/types").Res<Contact.AgentContact, {
64
+ interactionId: string;
65
+ participantId: string;
66
+ }>;
63
67
  exitConference: import("../core/types").Res<Contact.AgentContact, {
64
68
  interactionId: string;
65
69
  }>;
@@ -0,0 +1,23 @@
1
+ import { ConsultTransferDestinationConfig, IDigital, TaskResponse, TaskData } from '../types';
2
+ import type { WrapupData } from '../../config/types';
3
+ import type ApiAIAssistant from '../../ApiAiAssistant';
4
+ import Task from '../Task';
5
+ import routingContact from '../contact';
6
+ export default class Digital extends Task implements IDigital {
7
+ constructor(contact: ReturnType<typeof routingContact>, data: TaskData, wrapupData?: WrapupData, agentId?: string, consultTransferConfig?: ConsultTransferDestinationConfig, agentName?: string, apiAIAssistant?: ApiAIAssistant);
8
+ /**
9
+ * Refresh the digital task with the latest backend payload and recompute UI controls.
10
+ */
11
+ updateTaskData(newData: TaskData, shouldOverwrite?: boolean): IDigital;
12
+ /**
13
+ * This is used for incoming digital task accept by agent.
14
+ *
15
+ * @returns Promise<TaskResponse>
16
+ * @throws Error
17
+ * @example
18
+ * ```typescript
19
+ * task.accept().then(()=>{}).catch(()=>{})
20
+ * ```
21
+ */
22
+ accept(): Promise<TaskResponse>;
23
+ }