k2-im 0.1.57 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (471) hide show
  1. package/README.md +3 -1
  2. package/dist/browser.d.ts +1 -1
  3. package/dist/browser.js +1 -1
  4. package/dist/chat-kit-pinia.d.ts +227 -170
  5. package/dist/chat-kit-pinia.js +1 -1
  6. package/dist/chat-kit-vue.d.ts +64 -44
  7. package/dist/chat-kit-vue.js +1 -1
  8. package/dist/chat-kit.d.ts +244 -173
  9. package/dist/chat-kit.js +1 -1
  10. package/dist/crypto.worker.js +17 -25
  11. package/dist/i18n.d.ts +61 -41
  12. package/dist/i18n.js +1 -1
  13. package/dist/index.d.ts +259 -188
  14. package/dist/index.js +1 -1
  15. package/dist/modules/api-protocol-client/src/bi-feedback.js +1 -0
  16. package/dist/modules/api-protocol-client/src/browser.js +1 -0
  17. package/dist/modules/api-protocol-client/src/client.js +1 -0
  18. package/dist/modules/api-protocol-client/src/config.js +1 -0
  19. package/dist/modules/api-protocol-client/src/constants.js +1 -0
  20. package/dist/modules/api-protocol-client/src/json.js +1 -0
  21. package/dist/modules/api-protocol-client/src/nonce.js +1 -0
  22. package/dist/modules/api-protocol-client/src/transports/axios.js +1 -0
  23. package/dist/modules/api-protocol-client/src/utils.js +1 -0
  24. package/dist/modules/crypto/browser.js +1 -0
  25. package/dist/modules/crypto/driver.js +1 -0
  26. package/dist/modules/crypto/vendor/crypto/index_bg.js +1 -0
  27. package/dist/modules/im-browser/src/crypto/channel-key-service.js +1 -0
  28. package/dist/modules/im-browser/src/crypto/collect-tea.js +1 -0
  29. package/dist/modules/im-browser/src/crypto/crypto-task-executor.js +1 -0
  30. package/dist/modules/im-browser/src/crypto/crypto-worker-factory.js +1 -0
  31. package/dist/modules/im-browser/src/crypto/crypto-worker-protocol.js +1 -0
  32. package/dist/modules/im-browser/src/crypto/encrypt-key-service.js +1 -0
  33. package/dist/modules/im-browser/src/crypto/group-key-service.js +1 -0
  34. package/dist/modules/im-browser/src/crypto/peer-public-key-service.js +1 -0
  35. package/dist/modules/im-browser/src/crypto/rsa-private-key.js +1 -0
  36. package/dist/modules/im-browser/src/crypto/rsa-tea-crypto-adapter.js +1 -0
  37. package/dist/modules/im-browser/src/crypto/stale-key-refresh.js +1 -0
  38. package/dist/modules/im-browser/src/crypto/tea.js +1 -0
  39. package/dist/modules/im-browser/src/crypto/wait-for-key-signal.js +1 -0
  40. package/dist/modules/im-browser/src/http/application-http-adapters.js +1 -0
  41. package/dist/modules/im-browser/src/http/channel-http-adapter.js +1 -0
  42. package/dist/modules/im-browser/src/http/channel-join-application-http-adapter.js +1 -0
  43. package/dist/modules/im-browser/src/http/channel-member-http-adapter.js +1 -0
  44. package/dist/modules/im-browser/src/http/channel-mention-member-http-adapter.js +1 -0
  45. package/dist/modules/im-browser/src/http/cm-http-adapter.js +1 -0
  46. package/dist/modules/im-browser/src/http/directory-http-adapter.js +1 -0
  47. package/dist/modules/im-browser/src/http/expression-http-adapter.js +1 -0
  48. package/dist/modules/im-browser/src/http/lazy-api-protocol-client.js +1 -0
  49. package/dist/modules/im-browser/src/http/profile-http-adapter.js +1 -0
  50. package/dist/modules/im-browser/src/http/requests/applications.js +1 -0
  51. package/dist/modules/im-browser/src/http/requests/bind-robot-conversation.js +1 -0
  52. package/dist/modules/im-browser/src/http/requests/board-pinned-message-validation.js +1 -0
  53. package/dist/modules/im-browser/src/http/requests/channel-join-applications.js +1 -0
  54. package/dist/modules/im-browser/src/http/requests/channel-management.js +1 -0
  55. package/dist/modules/im-browser/src/http/requests/channel-members.js +1 -0
  56. package/dist/modules/im-browser/src/http/requests/channel-mention-members.js +1 -0
  57. package/dist/modules/im-browser/src/http/requests/channel-message-context.js +1 -0
  58. package/dist/modules/im-browser/src/http/requests/channel-mini-program-rel.js +1 -0
  59. package/dist/modules/im-browser/src/http/requests/channel-profile.js +1 -0
  60. package/dist/modules/im-browser/src/http/requests/channel-read-index.js +1 -0
  61. package/dist/modules/im-browser/src/http/requests/contact-blocklist.js +1 -0
  62. package/dist/modules/im-browser/src/http/requests/contact-friendship.js +1 -0
  63. package/dist/modules/im-browser/src/http/requests/contact-report.js +1 -0
  64. package/dist/modules/im-browser/src/http/requests/core-json-request.js +1 -0
  65. package/dist/modules/im-browser/src/http/requests/create-channel.js +1 -0
  66. package/dist/modules/im-browser/src/http/requests/create-face-to-face-group.js +1 -0
  67. package/dist/modules/im-browser/src/http/requests/create-group.js +1 -0
  68. package/dist/modules/im-browser/src/http/requests/customer-service-profile.js +1 -0
  69. package/dist/modules/im-browser/src/http/requests/get-board-pinned-message.js +1 -0
  70. package/dist/modules/im-browser/src/http/requests/get-channel-board-pinned-message.js +1 -0
  71. package/dist/modules/im-browser/src/http/requests/get-channel-secret-key.js +1 -0
  72. package/dist/modules/im-browser/src/http/requests/get-conversation-background-presets.js +1 -0
  73. package/dist/modules/im-browser/src/http/requests/get-group-encrypt-info.js +1 -0
  74. package/dist/modules/im-browser/src/http/requests/get-group-info.js +1 -0
  75. package/dist/modules/im-browser/src/http/requests/get-group-member-list.js +1 -0
  76. package/dist/modules/im-browser/src/http/requests/get-user-encrypt-info.js +1 -0
  77. package/dist/modules/im-browser/src/http/requests/get-user-info-friend.js +1 -0
  78. package/dist/modules/im-browser/src/http/requests/get-user-info-other.js +1 -0
  79. package/dist/modules/im-browser/src/http/requests/group-management.js +1 -0
  80. package/dist/modules/im-browser/src/http/requests/mark-group-read-all.js +1 -0
  81. package/dist/modules/im-browser/src/http/requests/membership-join.js +1 -0
  82. package/dist/modules/im-browser/src/http/requests/pin-board-message.js +1 -0
  83. package/dist/modules/im-browser/src/http/requests/pin-channel-board-message.js +1 -0
  84. package/dist/modules/im-browser/src/http/requests/pull-messages-by-id.js +1 -0
  85. package/dist/modules/im-browser/src/http/requests/pull-offline-channel.js +1 -0
  86. package/dist/modules/im-browser/src/http/requests/pull-offline-chat.js +1 -0
  87. package/dist/modules/im-browser/src/http/requests/pull-offline-group.js +1 -0
  88. package/dist/modules/im-browser/src/http/requests/pull-offline-signal.js +1 -0
  89. package/dist/modules/im-browser/src/http/requests/robot-menu-reply.js +1 -0
  90. package/dist/modules/im-browser/src/http/requests/robot-profile.js +1 -0
  91. package/dist/modules/im-browser/src/http/requests/search-robots.js +1 -0
  92. package/dist/modules/im-browser/src/http/requests/set-conversation-undisturb.js +1 -0
  93. package/dist/modules/im-browser/src/http/requests/set-friend-remark.js +1 -0
  94. package/dist/modules/im-browser/src/http/requests/set-group-nickname.js +1 -0
  95. package/dist/modules/im-browser/src/http/requests/unpin-board-message.js +1 -0
  96. package/dist/modules/im-browser/src/http/requests/unpin-channel-board-message.js +1 -0
  97. package/dist/modules/im-browser/src/http/requests/update-group-info.js +1 -0
  98. package/dist/modules/im-browser/src/http/session-favorite-http-adapter.js +1 -0
  99. package/dist/modules/im-browser/src/media/file-md5.js +1 -0
  100. package/dist/modules/im-browser/src/media/image-clipboard.js +1 -0
  101. package/dist/modules/im-browser/src/media/image-header-dimensions.js +1 -0
  102. package/dist/modules/im-browser/src/media/media-downloader.js +1 -0
  103. package/dist/modules/im-browser/src/media/media-preview-adapter.js +1 -0
  104. package/dist/modules/im-browser/src/media/media-preview-preparation-executor.js +1 -0
  105. package/dist/modules/im-browser/src/media/media-request-limiter.js +1 -0
  106. package/dist/modules/im-browser/src/media/media-transfer-adapter.js +1 -0
  107. package/dist/modules/im-browser/src/media/media-transfer-errors.js +1 -0
  108. package/dist/modules/im-browser/src/media/media-transfer-policy.js +1 -0
  109. package/dist/modules/im-browser/src/media/media-upload-credentials.js +1 -0
  110. package/dist/modules/im-browser/src/media/media-upload-recovery-codec.js +1 -0
  111. package/dist/modules/im-browser/src/media/media-upload-recovery-store.js +1 -0
  112. package/dist/modules/im-browser/src/media/media-upload-source-fingerprint.js +1 -0
  113. package/dist/modules/im-browser/src/media/s3-multipart-uploader.js +1 -0
  114. package/dist/modules/im-browser/src/media/xhr-upload-idle-timeout.js +1 -0
  115. package/dist/modules/im-browser/src/network/browser-connection-ownership.js +1 -0
  116. package/dist/modules/im-browser/src/network/network-monitor.js +1 -0
  117. package/dist/modules/im-browser/src/scheduling/yield-to-browser.js +1 -0
  118. package/dist/modules/im-browser/src/storage/indexed-db-storage-adapter.js +1 -0
  119. package/dist/modules/im-browser/src/transport/ws-transport.js +1 -0
  120. package/dist/modules/im-browser/src/voice/voice-amplitude.js +1 -0
  121. package/dist/modules/im-browser/src/voice/voice-capabilities.js +1 -0
  122. package/dist/modules/im-browser/src/voice/voice-codec.js +1 -0
  123. package/dist/modules/im-browser/src/voice/voice-errors.js +1 -0
  124. package/dist/modules/im-browser/src/voice/voice-playback.js +1 -0
  125. package/dist/modules/im-browser/src/voice/voice-player.js +1 -0
  126. package/dist/modules/im-browser/src/voice/voice-recorder.js +1 -0
  127. package/dist/modules/im-chat-kit/src/i18n/use-im-text.js +1 -0
  128. package/dist/modules/im-chat-kit/src/pinia/applications.store.js +1 -0
  129. package/dist/modules/im-chat-kit/src/pinia/capabilities.store.js +1 -0
  130. package/dist/modules/im-chat-kit/src/pinia/composer.store.js +1 -0
  131. package/dist/modules/im-chat-kit/src/pinia/context.js +1 -0
  132. package/dist/modules/im-chat-kit/src/pinia/conversation-activation.js +1 -0
  133. package/dist/modules/im-chat-kit/src/pinia/conversation-deletion.js +1 -0
  134. package/dist/modules/im-chat-kit/src/pinia/conversation-list.store.js +1 -0
  135. package/dist/modules/im-chat-kit/src/pinia/expression.store.js +1 -0
  136. package/dist/modules/im-chat-kit/src/pinia/history-return-after-send.js +1 -0
  137. package/dist/modules/im-chat-kit/src/pinia/media-transfer-estimate.js +1 -0
  138. package/dist/modules/im-chat-kit/src/pinia/media.store.js +1 -0
  139. package/dist/modules/im-chat-kit/src/pinia/message-operations.store.js +1 -0
  140. package/dist/modules/im-chat-kit/src/pinia/profile-directory.store.js +1 -0
  141. package/dist/modules/im-chat-kit/src/pinia/quoted-message.store.js +1 -0
  142. package/dist/modules/im-chat-kit/src/pinia/reaction.store.js +1 -0
  143. package/dist/modules/im-chat-kit/src/pinia/search-senders.js +1 -0
  144. package/dist/modules/im-chat-kit/src/pinia/search.store.js +1 -0
  145. package/dist/modules/im-chat-kit/src/pinia/session-favorites.store.js +1 -0
  146. package/dist/modules/im-chat-kit/src/pinia/session.store.js +1 -0
  147. package/dist/modules/im-chat-kit/src/pinia/thread-paging.store.js +1 -0
  148. package/dist/modules/im-chat-kit/src/pinia/thread-return-to-latest.js +1 -0
  149. package/dist/modules/im-chat-kit/src/pinia/thread.store.js +1 -0
  150. package/dist/modules/im-chat-kit/src/presentation/channel-mini-program-open.js +1 -0
  151. package/dist/modules/im-chat-kit/src/presentation/channel-mini-program-rels.js +1 -0
  152. package/dist/modules/im-chat-kit/src/presentation/conversation-list.js +1 -0
  153. package/dist/modules/im-chat-kit/src/presentation/conversation-unread.js +1 -0
  154. package/dist/modules/im-chat-kit/src/presentation/delayed-loading-indicator.js +1 -0
  155. package/dist/modules/im-chat-kit/src/presentation/media-source-priority.js +1 -0
  156. package/dist/modules/im-chat-kit/src/presentation/message-notification.js +1 -0
  157. package/dist/modules/im-chat-kit/src/presentation/message-search.js +1 -0
  158. package/dist/modules/im-chat-kit/src/presentation/mini-program-game-preview.js +1 -0
  159. package/dist/modules/im-chat-kit/src/presentation/mini-program-open-url.js +1 -0
  160. package/dist/modules/im-chat-kit/src/runtime/chat-runtime.js +1 -0
  161. package/dist/modules/im-chat-kit/src/runtime/conversation-prefetch-controller.js +1 -0
  162. package/dist/modules/im-chat-kit/src/runtime/media-object-url-registry.js +1 -0
  163. package/dist/modules/im-chat-kit/src/runtime/runtime-operation.js +1 -0
  164. package/dist/modules/im-chat-kit/src/services/capabilities.js +1 -0
  165. package/dist/modules/im-chat-kit/src/services/channel-member-management.service.js +1 -0
  166. package/dist/modules/im-chat-kit/src/services/channel-profile-management.service.js +1 -0
  167. package/dist/modules/im-chat-kit/src/services/channel-send-restriction.js +1 -0
  168. package/dist/modules/im-chat-kit/src/services/direct-contact-management.service.js +1 -0
  169. package/dist/modules/im-chat-kit/src/services/forward.service.js +1 -0
  170. package/dist/modules/im-chat-kit/src/services/group-member-management.service.js +1 -0
  171. package/dist/modules/im-chat-kit/src/services/group-profile-management.service.js +1 -0
  172. package/dist/modules/im-chat-kit/src/services/image-copy.service.js +1 -0
  173. package/dist/modules/im-chat-kit/src/services/media-file-classification.js +1 -0
  174. package/dist/modules/im-chat-kit/src/services/media.service.js +1 -0
  175. package/dist/modules/im-chat-kit/src/services/message.service.js +1 -0
  176. package/dist/modules/im-chat-kit/src/services/pinned-message-rules.js +1 -0
  177. package/dist/modules/im-chat-kit/src/services/pinned-message.service.js +1 -0
  178. package/dist/modules/im-chat-kit/src/services/profile-access.service.js +1 -0
  179. package/dist/modules/im-chat-kit/src/services/profile-directory.service.js +1 -0
  180. package/dist/modules/im-chat-kit/src/services/profile-display.js +1 -0
  181. package/dist/modules/im-chat-kit/src/services/profile.service.js +1 -0
  182. package/dist/modules/im-chat-kit/src/services/read.service.js +1 -0
  183. package/dist/modules/im-chat-kit/src/services/robot-sender-profile.js +1 -0
  184. package/dist/modules/im-chat-kit/src/services/search.service.js +1 -0
  185. package/dist/modules/im-chat-kit/src/services/send.service.js +1 -0
  186. package/dist/modules/im-chat-kit/src/thread/active-date.js +1 -0
  187. package/dist/modules/im-chat-kit/src/thread/create-thread-items.js +1 -0
  188. package/dist/modules/im-chat-kit/src/thread/message-locate-result.js +1 -0
  189. package/dist/modules/im-chat-kit/src/thread/new-message-badge.js +1 -0
  190. package/dist/modules/im-chat-kit/src/thread/resolve-message-body-kind.js +1 -0
  191. package/dist/modules/im-chat-kit/src/thread/resolve-quoted-message-presentation.js +1 -0
  192. package/dist/modules/im-chat-kit/src/thread/viewport-rules.js +1 -0
  193. package/dist/modules/im-chat-kit/src/utils/emoji/emoji-legacy-catalog.json.js +1 -0
  194. package/dist/modules/im-chat-kit/src/utils/emoji/index.js +1 -0
  195. package/dist/modules/im-chat-kit/src/utils/emoji/recent.js +1 -0
  196. package/dist/modules/im-chat-kit/src/utils/emoji/unicode-emoji-catalog.json.js +1 -0
  197. package/dist/modules/im-chat-kit/src/utils/emoji/unicode.js +1 -0
  198. package/dist/modules/im-chat-kit/src/utils/highlight.js +1 -0
  199. package/dist/modules/im-chat-kit/src/utils/link.js +1 -0
  200. package/dist/modules/im-chat-kit/src/utils/media-batch.js +1 -0
  201. package/dist/modules/im-chat-kit/src/utils/media-dimensions.js +1 -0
  202. package/dist/modules/im-chat-kit/src/utils/media-format.js +1 -0
  203. package/dist/modules/im-chat-kit/src/utils/media-transfer-presentation.js +1 -0
  204. package/dist/modules/im-chat-kit/src/utils/time-display.js +1 -0
  205. package/dist/modules/im-chat-kit/src/utils/waveform.js +1 -0
  206. package/dist/modules/im-chat-kit/src/vue/thread/ImThreadBodySwitch.js +1 -0
  207. package/dist/modules/im-chat-kit/src/vue/thread/ImThreadItems.js +1 -0
  208. package/dist/modules/im-chat-kit/src/vue/thread/ImThreadSurface.js +1 -0
  209. package/dist/modules/im-chat-kit/src/vue/thread/ImThreadViewport.js +1 -0
  210. package/dist/modules/im-chat-kit/src/vue/thread/message-renderer-registry.js +1 -0
  211. package/dist/modules/im-chat-kit/src/vue/thread/thread-idle-task.js +1 -0
  212. package/dist/modules/im-chat-kit/src/vue/thread/thread-layout-measurements.js +1 -0
  213. package/dist/modules/im-chat-kit/src/vue/thread/thread-read-actions-context.js +1 -0
  214. package/dist/modules/im-chat-kit/src/vue/thread/thread-surface-context.js +1 -0
  215. package/dist/modules/im-chat-kit/src/vue/thread/thread-viewport-context.js +1 -0
  216. package/dist/modules/im-chat-kit/src/vue/thread/thread-visibility-target-group.js +1 -0
  217. package/dist/modules/im-chat-kit/src/vue/thread/thread-visibility-targets.js +1 -0
  218. package/dist/modules/im-chat-kit/src/vue/thread/use-im-thread-layout-measurement.js +1 -0
  219. package/dist/modules/im-core/src/abort.js +1 -0
  220. package/dist/modules/im-core/src/cache-namespace.js +1 -0
  221. package/dist/modules/im-core/src/connection/backoff.js +1 -0
  222. package/dist/modules/im-core/src/connection/connection-manager.js +1 -0
  223. package/dist/modules/im-core/src/connection/heartbeat-manager.js +1 -0
  224. package/dist/modules/im-core/src/conversation-identity.js +1 -0
  225. package/dist/modules/im-core/src/diagnostics.js +1 -0
  226. package/dist/modules/im-core/src/event-emitter.js +1 -0
  227. package/dist/modules/im-core/src/login/login-handler.js +1 -0
  228. package/dist/modules/im-core/src/mapping/bot-sender.js +1 -0
  229. package/dist/modules/im-core/src/mapping/call-record-body.js +1 -0
  230. package/dist/modules/im-core/src/mapping/channel-message-mapper.js +1 -0
  231. package/dist/modules/im-core/src/mapping/channel-notify-mapper.js +1 -0
  232. package/dist/modules/im-core/src/mapping/channel-offline-mapper.js +1 -0
  233. package/dist/modules/im-core/src/mapping/channel-pinned-message-mapper.js +1 -0
  234. package/dist/modules/im-core/src/mapping/channel-read-position.js +1 -0
  235. package/dist/modules/im-core/src/mapping/contact-body.js +1 -0
  236. package/dist/modules/im-core/src/mapping/content-body.js +1 -0
  237. package/dist/modules/im-core/src/mapping/conversation.js +1 -0
  238. package/dist/modules/im-core/src/mapping/crypto-batch-preparation.js +1 -0
  239. package/dist/modules/im-core/src/mapping/customer-service-body.js +1 -0
  240. package/dist/modules/im-core/src/mapping/customer-service-message-mapper.js +1 -0
  241. package/dist/modules/im-core/src/mapping/decrypt-recovery.js +1 -0
  242. package/dist/modules/im-core/src/mapping/file-body.js +1 -0
  243. package/dist/modules/im-core/src/mapping/files-album-body.js +1 -0
  244. package/dist/modules/im-core/src/mapping/game-body.js +1 -0
  245. package/dist/modules/im-core/src/mapping/gift-body.js +1 -0
  246. package/dist/modules/im-core/src/mapping/group-message-mapper.js +1 -0
  247. package/dist/modules/im-core/src/mapping/group-notify-mapper.js +1 -0
  248. package/dist/modules/im-core/src/mapping/group-offline-mapper.js +1 -0
  249. package/dist/modules/im-core/src/mapping/image-body.js +1 -0
  250. package/dist/modules/im-core/src/mapping/live-room-body.js +1 -0
  251. package/dist/modules/im-core/src/mapping/media-album-body.js +1 -0
  252. package/dist/modules/im-core/src/mapping/merge.js +1 -0
  253. package/dist/modules/im-core/src/mapping/mes-chat-mapper.js +1 -0
  254. package/dist/modules/im-core/src/mapping/message-id.js +1 -0
  255. package/dist/modules/im-core/src/mapping/message-mapper.js +1 -0
  256. package/dist/modules/im-core/src/mapping/messages-by-id.js +1 -0
  257. package/dist/modules/im-core/src/mapping/mini-program-body.js +1 -0
  258. package/dist/modules/im-core/src/mapping/offline-mapper.js +1 -0
  259. package/dist/modules/im-core/src/mapping/pinned-message-mapper.js +1 -0
  260. package/dist/modules/im-core/src/mapping/profile-mapper.js +1 -0
  261. package/dist/modules/im-core/src/mapping/reaction-mapper.js +1 -0
  262. package/dist/modules/im-core/src/mapping/recall-mapper.js +1 -0
  263. package/dist/modules/im-core/src/mapping/red-packet-body.js +1 -0
  264. package/dist/modules/im-core/src/mapping/robot-body.js +1 -0
  265. package/dist/modules/im-core/src/mapping/robot-message-mapper.js +1 -0
  266. package/dist/modules/im-core/src/mapping/search-text.js +1 -0
  267. package/dist/modules/im-core/src/mapping/session-mapper.js +1 -0
  268. package/dist/modules/im-core/src/mapping/signal-offline-mapper.js +1 -0
  269. package/dist/modules/im-core/src/mapping/sort.js +1 -0
  270. package/dist/modules/im-core/src/mapping/sticker-body.js +1 -0
  271. package/dist/modules/im-core/src/mapping/stored-message.js +1 -0
  272. package/dist/modules/im-core/src/mapping/system-event-timeline-policy.js +1 -0
  273. package/dist/modules/im-core/src/mapping/text-segments.js +1 -0
  274. package/dist/modules/im-core/src/mapping/transfer-body.js +1 -0
  275. package/dist/modules/im-core/src/mapping/transfer-status.js +1 -0
  276. package/dist/modules/im-core/src/mapping/unread-divider.js +1 -0
  277. package/dist/modules/im-core/src/mapping/video-body.js +1 -0
  278. package/dist/modules/im-core/src/mapping/voice-body.js +1 -0
  279. package/dist/modules/im-core/src/message-flow/call/direct-call-manager.js +1 -0
  280. package/dist/modules/im-core/src/message-flow/call/direct-call-record.js +1 -0
  281. package/dist/modules/im-core/src/message-flow/call/direct-p2p-call.js +1 -0
  282. package/dist/modules/im-core/src/message-flow/call/group-call-manager.js +1 -0
  283. package/dist/modules/im-core/src/message-flow/call/group-call-record.js +1 -0
  284. package/dist/modules/im-core/src/message-flow/conversation-support.js +1 -0
  285. package/dist/modules/im-core/src/message-flow/edit/edit-frame.js +1 -0
  286. package/dist/modules/im-core/src/message-flow/edit/edit-manager.js +1 -0
  287. package/dist/modules/im-core/src/message-flow/edit/edit-receive-handlers.js +1 -0
  288. package/dist/modules/im-core/src/message-flow/edit/edit-strategy.js +1 -0
  289. package/dist/modules/im-core/src/message-flow/expression/expression-message.js +1 -0
  290. package/dist/modules/im-core/src/message-flow/forward/can-transmit.js +1 -0
  291. package/dist/modules/im-core/src/message-flow/forward/forward-content-spec.js +1 -0
  292. package/dist/modules/im-core/src/message-flow/forward/forward-messages.js +1 -0
  293. package/dist/modules/im-core/src/message-flow/game/game-message.js +1 -0
  294. package/dist/modules/im-core/src/message-flow/gift/gift-message.js +1 -0
  295. package/dist/modules/im-core/src/message-flow/live-room/live-room-message.js +1 -0
  296. package/dist/modules/im-core/src/message-flow/media/media-sender.js +1 -0
  297. package/dist/modules/im-core/src/message-flow/mini-program/mini-program-message.js +1 -0
  298. package/dist/modules/im-core/src/message-flow/reaction/can-react.js +1 -0
  299. package/dist/modules/im-core/src/message-flow/reaction/reaction-manager.js +1 -0
  300. package/dist/modules/im-core/src/message-flow/reaction/reaction-receive-handlers.js +1 -0
  301. package/dist/modules/im-core/src/message-flow/read/channel-read-receive-handlers.js +1 -0
  302. package/dist/modules/im-core/src/message-flow/read/channel-read-strategy.js +1 -0
  303. package/dist/modules/im-core/src/message-flow/read/customer-service-read-strategy.js +1 -0
  304. package/dist/modules/im-core/src/message-flow/read/direct-read-sync.js +1 -0
  305. package/dist/modules/im-core/src/message-flow/read/group-read-strategy.js +1 -0
  306. package/dist/modules/im-core/src/message-flow/read/read-strategy.js +1 -0
  307. package/dist/modules/im-core/src/message-flow/read/robot-read-strategy.js +1 -0
  308. package/dist/modules/im-core/src/message-flow/recall/channel-message-deletion-manager.js +1 -0
  309. package/dist/modules/im-core/src/message-flow/recall/recall-frame.js +1 -0
  310. package/dist/modules/im-core/src/message-flow/recall/recall-manager.js +1 -0
  311. package/dist/modules/im-core/src/message-flow/recall/recall-receive-handlers.js +1 -0
  312. package/dist/modules/im-core/src/message-flow/recall/recall-strategy.js +1 -0
  313. package/dist/modules/im-core/src/message-flow/receive/channel-application-receive-handlers.js +1 -0
  314. package/dist/modules/im-core/src/message-flow/receive/channel-notify-receive-handlers.js +1 -0
  315. package/dist/modules/im-core/src/message-flow/receive/channel-receive-handlers.js +1 -0
  316. package/dist/modules/im-core/src/message-flow/receive/command-handler-registry.js +1 -0
  317. package/dist/modules/im-core/src/message-flow/receive/contact-application-answer-receive-handlers.js +1 -0
  318. package/dist/modules/im-core/src/message-flow/receive/contact-application-receive-handlers.js +1 -0
  319. package/dist/modules/im-core/src/message-flow/receive/direct-receive-handlers.js +1 -0
  320. package/dist/modules/im-core/src/message-flow/receive/friend-action-receive-handlers.js +1 -0
  321. package/dist/modules/im-core/src/message-flow/receive/group-event-receive-handlers.js +1 -0
  322. package/dist/modules/im-core/src/message-flow/receive/group-receive-handlers.js +1 -0
  323. package/dist/modules/im-core/src/message-flow/receive/mes-chat-receive-handlers.js +1 -0
  324. package/dist/modules/im-core/src/message-flow/receive/robot-receive-handlers.js +1 -0
  325. package/dist/modules/im-core/src/message-flow/receive/session-favorite-receive-handlers.js +1 -0
  326. package/dist/modules/im-core/src/message-flow/receive/wallet-notify-receive-handlers.js +1 -0
  327. package/dist/modules/im-core/src/message-flow/send/channel-outgoing-frame.js +1 -0
  328. package/dist/modules/im-core/src/message-flow/send/channel-send-strategy.js +1 -0
  329. package/dist/modules/im-core/src/message-flow/send/direct-outgoing-frame.js +1 -0
  330. package/dist/modules/im-core/src/message-flow/send/direct-send-strategy.js +1 -0
  331. package/dist/modules/im-core/src/message-flow/send/group-outgoing-frame.js +1 -0
  332. package/dist/modules/im-core/src/message-flow/send/group-send-strategy.js +1 -0
  333. package/dist/modules/im-core/src/message-flow/send/robot-outgoing-frame.js +1 -0
  334. package/dist/modules/im-core/src/message-flow/send/robot-send-strategy.js +1 -0
  335. package/dist/modules/im-core/src/message-flow/send/send-strategy-registry.js +1 -0
  336. package/dist/modules/im-core/src/message-flow/transfer/transfer-message.js +1 -0
  337. package/dist/modules/im-core/src/outbox/outbox-manager.js +1 -0
  338. package/dist/modules/im-core/src/packet-router.js +1 -0
  339. package/dist/modules/im-core/src/ports/crypto-port.js +1 -0
  340. package/dist/modules/im-core/src/ports/crypto-task-executor.js +1 -0
  341. package/dist/modules/im-core/src/ports/http-port.js +1 -0
  342. package/dist/modules/im-core/src/ports/media-asset-cache-port.js +1 -0
  343. package/dist/modules/im-core/src/push/push-registration.js +1 -0
  344. package/dist/modules/im-core/src/read/read-reporter.js +1 -0
  345. package/dist/modules/im-core/src/request-tracker.js +1 -0
  346. package/dist/modules/im-core/src/session-favorite-album.js +1 -0
  347. package/dist/modules/im-core/src/session-favorite-files.js +1 -0
  348. package/dist/modules/im-core/src/state/channel-permissions.js +1 -0
  349. package/dist/modules/im-core/src/state/channel-restriction-coordinator.js +1 -0
  350. package/dist/modules/im-core/src/state/domain-state.js +1 -0
  351. package/dist/modules/im-core/src/state/draft-store.js +1 -0
  352. package/dist/modules/im-core/src/state/group-restriction-coordinator.js +1 -0
  353. package/dist/modules/im-core/src/state/local-message-window-read-error.js +1 -0
  354. package/dist/modules/im-core/src/state/message-reactions.js +1 -0
  355. package/dist/modules/im-core/src/state/message-store.js +1 -0
  356. package/dist/modules/im-core/src/state/message-window-store.js +1 -0
  357. package/dist/modules/im-core/src/state/pinned-message-coordinator.js +1 -0
  358. package/dist/modules/im-core/src/state/pinned-message-store.js +1 -0
  359. package/dist/modules/im-core/src/state/read-store.js +1 -0
  360. package/dist/modules/im-core/src/state/session-sort.js +1 -0
  361. package/dist/modules/im-core/src/state/session-store.js +1 -0
  362. package/dist/modules/im-core/src/sync/channel-sync-checkpoint.js +1 -0
  363. package/dist/modules/im-core/src/sync/sync-manager.js +1 -0
  364. package/dist/modules/im-i18n/src/catalog/en-US.js +1 -0
  365. package/dist/modules/im-i18n/src/catalog/index.js +1 -0
  366. package/dist/modules/im-i18n/src/catalog/th-TH.js +1 -0
  367. package/dist/modules/im-i18n/src/catalog/vi-VN.js +1 -0
  368. package/dist/modules/im-i18n/src/catalog/zh-CN.js +1 -0
  369. package/dist/modules/im-i18n/src/catalog/zh-TW.js +1 -0
  370. package/dist/modules/im-i18n/src/create-im-i18n.js +1 -0
  371. package/dist/modules/im-i18n/src/format/failure.js +1 -0
  372. package/dist/modules/im-i18n/src/format/last-message.js +1 -0
  373. package/dist/modules/im-i18n/src/format/media.js +1 -0
  374. package/dist/modules/im-i18n/src/format/mention.js +1 -0
  375. package/dist/modules/im-i18n/src/format/service-text.js +1 -0
  376. package/dist/modules/im-i18n/src/format/system-message.js +1 -0
  377. package/dist/modules/im-i18n/src/internal/duration.js +1 -0
  378. package/dist/modules/im-i18n/src/internal/interpolate.js +1 -0
  379. package/dist/modules/im-i18n/src/locale.js +1 -0
  380. package/dist/modules/im-protocol/src/board-pinned-message.js +1 -0
  381. package/dist/modules/im-protocol/src/frame-codec.js +1 -0
  382. package/dist/modules/im-protocol/src/protobuf/gen/channel_pb.js +1 -0
  383. package/dist/modules/im-protocol/src/protobuf/gen/group_pb.js +1 -0
  384. package/dist/modules/im-protocol/src/protobuf/gen/im.app.msg_pb.js +1 -0
  385. package/dist/modules/im-protocol/src/protobuf/gen/im.channel_pb.js +1 -0
  386. package/dist/modules/im-protocol/src/protobuf/gen/im.group_pb.js +1 -0
  387. package/dist/modules/im-protocol/src/protobuf/gen/im.login_pb.js +1 -0
  388. package/dist/modules/im-protocol/src/protobuf/gen/im.msg_pb.js +1 -0
  389. package/dist/modules/im-protocol/src/protobuf/gen/im.pub_pb.js +1 -0
  390. package/dist/modules/im-protocol/src/protobuf/gen/im.robot_pb.js +1 -0
  391. package/dist/modules/im-protocol/src/protobuf/gen/im.sig_pb.js +1 -0
  392. package/dist/modules/im-protocol/src/protobuf/gen/msg_pb.js +1 -0
  393. package/dist/modules/im-protocol/src/protobuf/registry.js +1 -0
  394. package/dist/modules/im-sdk/src/cache-prefix-migration.js +1 -0
  395. package/dist/modules/im-sdk/src/create-im-client.js +1 -0
  396. package/dist/modules/im-sdk/src/domains/channel.js +1 -0
  397. package/dist/modules/im-sdk/src/domains/contact.js +1 -0
  398. package/dist/modules/im-sdk/src/domains/conversation.js +1 -0
  399. package/dist/modules/im-sdk/src/domains/group.js +1 -0
  400. package/dist/modules/im-sdk/src/domains/media-byte-computation.js +1 -0
  401. package/dist/modules/im-sdk/src/domains/media.js +1 -0
  402. package/dist/modules/im-sdk/src/domains/message.js +1 -0
  403. package/dist/modules/im-sdk/src/domains/pinned-message-source.js +1 -0
  404. package/dist/modules/im-sdk/src/domains/pinned-message.js +1 -0
  405. package/dist/modules/im-sdk/src/domains/session.js +1 -0
  406. package/dist/modules/im-sdk/src/product/applications.js +1 -0
  407. package/dist/modules/im-sdk/src/product/calls.js +1 -0
  408. package/dist/modules/im-sdk/src/product/capabilities.js +1 -0
  409. package/dist/modules/im-sdk/src/product/channel-mention-candidates.js +1 -0
  410. package/dist/modules/im-sdk/src/product/conversation-background.js +1 -0
  411. package/dist/modules/im-sdk/src/product/conversation-entry-unread.js +1 -0
  412. package/dist/modules/im-sdk/src/product/conversation-handle.js +1 -0
  413. package/dist/modules/im-sdk/src/product/conversations.js +1 -0
  414. package/dist/modules/im-sdk/src/product/customer-service.js +1 -0
  415. package/dist/modules/im-sdk/src/product/diagnostic-memory-buffer.js +1 -0
  416. package/dist/modules/im-sdk/src/product/diagnostics.js +1 -0
  417. package/dist/modules/im-sdk/src/product/directory.js +1 -0
  418. package/dist/modules/im-sdk/src/product/draft.js +1 -0
  419. package/dist/modules/im-sdk/src/product/emoji-catalog.js +1 -0
  420. package/dist/modules/im-sdk/src/product/emoji-catalog.json.js +1 -0
  421. package/dist/modules/im-sdk/src/product/events.js +1 -0
  422. package/dist/modules/im-sdk/src/product/expressions.js +1 -0
  423. package/dist/modules/im-sdk/src/product/face-to-face-group.js +1 -0
  424. package/dist/modules/im-sdk/src/product/group-calls.js +1 -0
  425. package/dist/modules/im-sdk/src/product/image-format.js +1 -0
  426. package/dist/modules/im-sdk/src/product/local-data.js +1 -0
  427. package/dist/modules/im-sdk/src/product/media.js +1 -0
  428. package/dist/modules/im-sdk/src/product/mention.js +1 -0
  429. package/dist/modules/im-sdk/src/product/message.js +1 -0
  430. package/dist/modules/im-sdk/src/product/messages-by-id.js +1 -0
  431. package/dist/modules/im-sdk/src/product/outbox.js +1 -0
  432. package/dist/modules/im-sdk/src/product/profiles.js +1 -0
  433. package/dist/modules/im-sdk/src/product/resource-uploader.js +1 -0
  434. package/dist/modules/im-sdk/src/product/robots.js +1 -0
  435. package/dist/modules/im-sdk/src/product/search.js +1 -0
  436. package/dist/modules/im-sdk/src/product/session-favorites.js +1 -0
  437. package/dist/modules/im-sdk/src/product/settings.js +1 -0
  438. package/dist/modules/im-sdk/src/runtime/advanced-message-diagnostics.js +1 -0
  439. package/dist/modules/im-sdk/src/runtime/channel-read-summary-refresh.js +1 -0
  440. package/dist/modules/im-sdk/src/runtime/customer-service-legacy-recovery.js +1 -0
  441. package/dist/modules/im-sdk/src/runtime/decrypt-diagnostics.js +1 -0
  442. package/dist/modules/im-sdk/src/runtime/foreground-work-coordinator.js +1 -0
  443. package/dist/modules/im-sdk/src/runtime/group-history-page-boundary.js +1 -0
  444. package/dist/modules/im-sdk/src/runtime/key-prefetch.js +1 -0
  445. package/dist/modules/im-sdk/src/runtime/local-media-preview.js +1 -0
  446. package/dist/modules/im-sdk/src/runtime/media-cache-maintenance.js +1 -0
  447. package/dist/modules/im-sdk/src/runtime/media-upload-recovery.js +1 -0
  448. package/dist/modules/im-sdk/src/runtime/protobuf-wire-shape.js +1 -0
  449. package/dist/modules/im-sdk/src/runtime/receiving-activity.js +1 -0
  450. package/dist/modules/im-sdk/src/runtime/recent-history-fetcher.js +1 -0
  451. package/dist/modules/im-sdk/src/runtime/recent-history-prefetch.js +1 -0
  452. package/dist/modules/im-sdk/src/runtime/session-http-clients.js +1 -0
  453. package/dist/modules/im-sdk/src/runtime/session-runtime.js +1 -0
  454. package/dist/modules/im-sdk/src/runtime/signal-offline-poller.js +1 -0
  455. package/dist/request-crypto.js +1 -1
  456. package/dist/sdk.d.ts +170 -111
  457. package/dist/sdk.js +1 -1
  458. package/package.json +2 -2
  459. package/dist/browser-2MUNHRDS.js +0 -1
  460. package/dist/browser-RTCHWSQ2.js +0 -2
  461. package/dist/chunk-2OCWQHFJ.js +0 -2
  462. package/dist/chunk-46ARFR7U.js +0 -8
  463. package/dist/chunk-HQDLYL3K.js +0 -2
  464. package/dist/chunk-IC6HI33O.js +0 -1
  465. package/dist/chunk-IDECJJXC.js +0 -0
  466. package/dist/chunk-J3TLOAQI.js +0 -2
  467. package/dist/chunk-Q2DEFN53.js +0 -1
  468. package/dist/chunk-SXY56EVC.js +0 -0
  469. package/dist/chunk-WL3NFQ7Y.js +0 -1
  470. package/dist/chunk-WOT6VMZA.js +0 -1
  471. package/dist/chunk-WS7BWP7C.js +0 -1
package/dist/sdk.d.ts CHANGED
@@ -9,8 +9,8 @@ interface MediaTransferProgress {
9
9
  phase?: 'transferring' | 'finalizing';
10
10
  }
11
11
 
12
- /** 会话类型。P0 只用 direct / group;`robot` 是独立私聊 sibling,不得并入 direct。 */
13
- type ConversationType = 'direct' | 'group' | 'channel' | 'supergroup' | 'robot';
12
+ /** 会话类型;各类型分别处理权限、收发和历史。supergroup 仅预留类型,尚未提供业务实现。 */
13
+ type ConversationType = 'direct' | 'group' | 'channel' | 'supergroup' | 'robot' | 'customerService';
14
14
  /**
15
15
  * 会话复合身份;`conversationId` 只在对应 `conversationType` 的领域内唯一。
16
16
  *
@@ -47,8 +47,8 @@ interface ConversationDraft$1 {
47
47
  attachments: readonly [];
48
48
  updatedAt: number;
49
49
  }
50
- /** 消息内容类型。sticker=表情/贴图(BMessage contentType=7);call=单聊通话记录(contentType=10);transfer=转账(contentType=16);gift=礼品/刮刮卡(contentType=17);robot=机器人卡片(contentType=18);miniProgram=小程序分享卡(contentType=22);redPacket=红包卡(contentType=25);game=小游戏(contentType=27);liveRoom=直播间分享(contentType=30);未知 wire 正文统一归一为 unknown。 */
51
- type MessageContentType = 'text' | 'system' | 'image' | 'video' | 'voice' | 'file' | 'sticker' | 'contact' | 'miniProgram' | 'game' | 'transfer' | 'gift' | 'call' | 'redPacket' | 'mediaAlbum' | 'filesAlbum' | 'robot' | 'liveRoom' | 'unknown';
50
+ /** 消息内容类型。sticker=表情/贴图(BMessage contentType=7);call=单聊通话记录(contentType=10);transfer=转账(contentType=16);gift=礼品/刮刮卡(contentType=17);robot=机器人卡片(contentType=18);miniProgram=小程序分享卡(contentType=22);redPacket=红包卡(contentType=25);game=小游戏(contentType=27);liveRoom=直播间分享(contentType=30);未知 wire 正文统一转换为 unknown。 */
51
+ type MessageContentType = 'text' | 'system' | 'image' | 'video' | 'voice' | 'file' | 'sticker' | 'contact' | 'miniProgram' | 'game' | 'transfer' | 'gift' | 'call' | 'redPacket' | 'mediaAlbum' | 'filesAlbum' | 'robot' | 'liveRoom' | 'customerService' | 'unknown';
52
52
  /**
53
53
  * 发送态(客户端态):消息从本地创建到服务端确认的生命周期。
54
54
  * `uploading` 仅媒体消息使用:文件上传阶段(uploading→pending→sending→sent);
@@ -88,10 +88,10 @@ interface ImSystemMessageBody {
88
88
  pinnedMessageAction?: ImPinnedMessageAction;
89
89
  }
90
90
  /**
91
- * 会话「最后一条」的语义摘要(持久化、经字段级 lastMessageSummaryEqual 参与判等):取代中文预览串作为语义承重。
92
- * `system` 分支直接持归一后的 ImSystemMessageBody(供 formatLastMessageSummary 复用 formatSystemMessage,selfId 渲染时传入)。
93
- * EXPRESSION 协议家族按 `imageType` 投影为 `gif` 或静态 `sticker`,供会话列表保留产品差异。
94
- * 迁移期与 lastMessagePreview 双写并存(阶段 4);判等**禁比对象引用**(否则 hydrate 回读值/重算值每次新建对象即永不相等)。
91
+ * 会话最后一条消息的语义摘要,供存储和 im-i18n 展示使用。
92
+ * `system` 保存解析后的 ImSystemMessageBody,formatSystemMessage 在展示时接收 selfId。
93
+ * EXPRESSION 按 imageType 区分 gif 与静态 sticker。
94
+ * 与 lastMessagePreview 同时保存;变化检查逐字段调用 lastMessageSummaryEqual,不比较对象引用。
95
95
  */
96
96
  type LastMessageSummary = {
97
97
  kind: 'text';
@@ -287,7 +287,7 @@ interface ImVoiceBody {
287
287
  teaKey?: Uint8Array;
288
288
  /** 文件加密类型:0=跟随消息,1=不加密,3=完整 TEA(BMessage.fileEncryptType;语音与图片/视频同走完整 TEA)。 */
289
289
  fileEncryptType?: number;
290
- /** 录音振幅波形(0-255):仅发送端本地展示缓存(随消息落盘、刷新后仍可画波形),**不写入 BMessage**(协议无波形字段)。 */
290
+ /** 录音振幅波形(0-255):仅发送端本地展示缓存(随消息写入本地存储、刷新后仍可画波形),**不写入 BMessage**(协议无波形字段)。 */
291
291
  waveform?: number[];
292
292
  }
293
293
  /**
@@ -394,7 +394,7 @@ interface ImRobotImageGroupModule {
394
394
  /**
395
395
  * 机器人卡片倒计时。
396
396
  *
397
- * `endTimeMs` 已归一为 epoch 毫秒;wire 秒/毫秒混用只在 mapper 转换,宿主不要再猜单位。
397
+ * `endTimeMs` 已转换为 epoch 毫秒;wire 秒/毫秒混用只在 mapper 转换,宿主不要再猜单位。
398
398
  */
399
399
  interface ImRobotCountdownModule {
400
400
  type: 'countdown';
@@ -487,10 +487,10 @@ interface ImGiftBody {
487
487
  benCount?: string;
488
488
  fissionNumber?: string;
489
489
  }
490
- /** 领域通话媒体类型;已从各端 wire 0/1 对调口径归一,宿主禁止再读 raw callType。 */
490
+ /** 通话媒体类型;各端 wire 0/1 的不同含义已转换成统一业务值,宿主无需读取 raw callType。 */
491
491
  type ImCallKind = 'audio' | 'video';
492
492
  /**
493
- * 通话结束结果。Android 跨端同步把未接与取消都写成 callStatus=0,只能归一为 missed。
493
+ * 通话结束结果。Android 跨端同步把未接与取消都写成 callStatus=0,只能转换为 missed。
494
494
  * `unknown` 仅表示该端 status 数字无法识别,不得猜成 completed。
495
495
  */
496
496
  type ImCallOutcome = 'missed' | 'rejected' | 'cancelled' | 'completed' | 'busy' | 'no-permission' | 'interrupted' | 'unknown';
@@ -498,7 +498,7 @@ type ImCallOutcome = 'missed' | 'rejected' | 'cancelled' | 'completed' | 'busy'
498
498
  * 单聊通话记录正文(contentType==='call',协议 BMessage.contentType=10)。
499
499
  *
500
500
  * @remarks JSON 在 BMessage.content。Android 本地 / Android 跨端同步 / iOS 三套字段名与 0/1 含义不同,
501
- * 只在 mapping/call-record-body 归一。记录由各端本地插入,不能当普通聊天发出。
501
+ * 仅由 mapping/call-record-body 转换成统一业务值。记录由各端本地插入,不能当普通聊天发出。
502
502
  */
503
503
  interface ImCallRecordBody {
504
504
  callKind: ImCallKind;
@@ -525,7 +525,7 @@ type ImRedPacketType = 1 | 2 | 3 | 4;
525
525
  * @remarks 字段来自 proto 72-79 + 复用 34/35/38/49。领域名 `packetId` 对应 wire `rad_packet_id`。
526
526
  * 金额保持 proto string,单位是否微单位未证实,禁止默认套转账 ×1e6。
527
527
  * HTTP 详情状态与本地「自己已领」属于宿主投影,不进本 DTO(status 39 / state 53 未裁定)。
528
- * 本阶段不提供 `sendRedPacket`;出站字段仅用于 codec 往返闭合。
528
+ * 当前不提供 `sendRedPacket`;出站字段仅用于 codec 往返闭合。
529
529
  */
530
530
  interface ImRedPacketBody {
531
531
  packetId: string;
@@ -545,7 +545,7 @@ interface ImRedPacketBody {
545
545
  type ImContactKind = 'individual' | 'group' | 'channel' | 'robot' | 'unknown';
546
546
  /**
547
547
  * 名片消息内容体(contentType==='contact')。字段来自 BMessage contentType=8,但使用领域友好命名:
548
- * id/icon/name 分别归一为 targetId/avatar/displayName;visitCardKey 归一为 kind,未知值放 rawKind。
548
+ * id/icon/name 分别转换为 targetId/avatar/displayName;visitCardKey 转换为 kind,未知值放 rawKind。
549
549
  */
550
550
  interface ImContactBody {
551
551
  /** 被分享对象 id:个人 userId、普通群 groupId、频道 id 或机器人 id。 */
@@ -577,7 +577,7 @@ interface UnknownMessageBody {
577
577
  * 若干项共享消息级的撤回、已读、引用与转发语义。
578
578
  */
579
579
  interface ImMediaAlbumItem {
580
- /** 该项是图片还是视频;由协议 `mediaType` 归一而来,未知取值的项在解析阶段已被丢弃。 */
580
+ /** 该项是图片还是视频;由协议 mediaType 转换,无法识别的项会在解析时丢弃。 */
581
581
  kind: 'image' | 'video';
582
582
  /** 远端地址。加密项也是这个地址,解密用本项自己的 `teaKey`。 */
583
583
  url: string;
@@ -659,8 +659,28 @@ interface ImLiveRoomBody {
659
659
  /** 点赞数十进制字符串,保持协议原文,不在 Core 换算。 */
660
660
  liveRoomLikes?: string;
661
661
  }
662
+ /** 客服正文保留一条消息内的全部附件;图片和文件各自保持服务端顺序。 */
663
+ interface ImCustomerServiceBody {
664
+ /** 原始文字;空白不被当作不存在。 */
665
+ text: string;
666
+ /** 图片直达地址,不套用普通消息的加密文件结构。 */
667
+ images: readonly string[];
668
+ /** 文件与名称、大小按协议数组索引配对,不创建伪消息 ID。 */
669
+ files: readonly ImCustomerServiceFile[];
670
+ }
671
+ /** 客服文件元数据。大小是服务端展示文字,不能据此认定下载完整。 */
672
+ interface ImCustomerServiceFile {
673
+ /** 服务端给出的资源地址。 */
674
+ url: string;
675
+ /** 服务端名称;缺省时从 URL 最后一个路径片段提取。 */
676
+ name: string;
677
+ /** 可缺省的原始大小描述,例如 1.5MB,并非精确字节数。 */
678
+ sizeLabel?: string;
679
+ }
662
680
  interface ImMessageBody {
663
- /** P0 文本内容(明文,解密后的结果)。 */
681
+ /** 客服专用复合正文;不能直接作为普通消息发送。 */
682
+ customerService?: ImCustomerServiceBody;
683
+ /** 文本内容(明文,解密后的结果)。 */
664
684
  text?: string;
665
685
  /** contentType==='system' 时的结构化系统提示体(群通知;text 忽略)。 */
666
686
  system?: ImSystemMessageBody;
@@ -710,7 +730,7 @@ interface MentionRange {
710
730
  end: number;
711
731
  }
712
732
  /**
713
- * 群消息 @ 提及(Android 三写载体的归一解析):`atAll`(MESGrpChat.nNotifyCount=-1)、`atUserIds`(sNotifyUsers 被 @ 成员,
733
+ * 群消息 @ 提及(Android 三写载体的统一解析):`atAll`(MESGrpChat.nNotifyCount=-1)、`atUserIds`(sNotifyUsers 被 @ 成员,
714
734
  * 含正文 token 读边界补全)、`ranges`(extend.atRange,可选、仅诊断/兼容——展示**不依赖其坐标**)。正文 `body.text` 保留 `[userId]` token 原样(真相不变);
715
735
  * **展示权威来源 = 正文 token + atUserIds/atAll**,由纯函数 `resolveMentionSegments` 还原为高亮段(含 @昵称/@所有人/@我),UI 不自行解析。
716
736
  */
@@ -732,21 +752,21 @@ type ImMessageFailureReason = 'timeout' | 'rejected' | 'encrypt_failed' | 'netwo
732
752
  */
733
753
  type ImFailureDisplayCode = 'media.empty' | 'media.noCrypto' | 'media.previewFailed' | 'media.encryptFailed' | 'media.resumeUnavailable' | 'media.cleanupUnconfirmed' | 'media.uploadFailed' | 'media.uploadTimeout' | 'media.cancelled' | 'media.invalidDuration' | 'media.uploadInterrupted' | 'media.contentTooLarge' | 'contactRequired' | 'messageRefused' | 'forbiddenOrLeft' | 'contentRejected' | 'groupDismissed' | 'groupUnavailable' | 'channelDismissed' | 'channelMuted' | 'channelNotMember' | 'channelAdminRequired' | 'conversationUnsupported' | 'sendCanceled' | 'sessionLoggedOut' | 'timeout' | 'network' | 'unknown';
734
754
  interface ImMessageFailure {
735
- /** 归一后的错误码(来自 MESChatAck.errcode 或本地失败码,本地码用负值)。 */
755
+ /** 转换后的错误码(来自 MESChatAck.errcode 或本地失败码,本地码用负值)。 */
736
756
  code: number;
737
757
  /** 失败机器分类(重试 / fail-fast / 统计消费)。 */
738
758
  reason: ImMessageFailureReason;
739
- /** 失败展示语义码(强类型):UI 经 im-i18n 按 locale 渲染;缺省表示无专门展示码(UI 回退 message)。不参与去重判等。 */
759
+ /** 失败展示语义码:UI 经 im-i18n 按语言渲染,缺省时使用 message;不单独触发消息状态更新。 */
740
760
  displayCode?: ImFailureDisplayCode;
741
- /** 展示模板参数(如未支持会话类型的 type);不参与去重判等。 */
761
+ /** 展示模板参数(如未支持会话类型的 type);不单独触发消息状态更新。 */
742
762
  params?: Record<string, string | number>;
743
763
  /** 媒体失败的媒体类型(图片/视频/语音/文件):供 displayCode 为 media.* 时渲染 label。 */
744
764
  mediaKind?: MediaKind;
745
- /** 后端原文 / 诊断兜底文案;仅诊断/展示兜底用,不参与去重判等(见 merge.failureEqual)。 */
765
+ /** 后端原文或诊断文案;没有专门展示码时用于展示,不单独触发消息状态更新(见 merge.failureEqual)。 */
746
766
  message?: string;
747
767
  /**
748
768
  * 是否可重试(false=业务级不可重试):如 direct 非好友或 GROUP 不在群(0x8201)、内容为空/违规(0x8202)、群已解散(0x8315)→ UI 隐藏「重发」。
749
- * 缺省(undefined)视为可重试(向后兼容)。由 code 决定(classifyAckFailure),故不参与去重判等(同 code 必同 retryable)。
769
+ * 缺省(undefined)视为可重试(向后兼容)。由 code 决定(classifyAckFailure),不单独触发消息状态更新。
750
770
  */
751
771
  retryable?: boolean;
752
772
  }
@@ -789,7 +809,7 @@ interface MediaTaskUpdate {
789
809
  failure?: ImMessageFailure;
790
810
  }
791
811
  interface ImMessageEncryption {
792
- /** P0 true=消息密文链路, false=明文链路(encrypt=0)。 */
812
+ /** true=消息密文链路, false=明文链路(encrypt=0)。 */
793
813
  encrypted: boolean;
794
814
  /** 扩展:加密方案标识,默认 'rsa-tea'。 */
795
815
  scheme?: 'rsa-tea';
@@ -798,16 +818,16 @@ interface ImMessageEncryption {
798
818
  }
799
819
  /** 单条消息领域模型(§4.1)。主键为客户端生成的 id(无 serverId)。 */
800
820
  interface ImMessage {
801
- /** P0 客户端生成的稳定消息 ID(UUID),同时作幂等键;刷新后保持。 */
821
+ /** 客户端生成的稳定消息 ID(UUID),同时作幂等键;刷新后保持。 */
802
822
  id: string;
803
- /** P0 归一化会话 ID。 */
823
+ /** 消息所属会话的字符串 ID;必须结合 conversationType 使用。 */
804
824
  conversationId: string;
805
825
  conversationType: ConversationType;
806
- /** P0 归一化发送者 ID。 */
826
+ /** 发送者的字符串用户 ID。 */
807
827
  senderId: string;
808
828
  contentType: MessageContentType;
809
829
  body: ImMessageBody;
810
- /** P0 统一毫秒 number(本地创建时间,乐观渲染用)。 */
830
+ /** 统一毫秒 number(本地创建时间,乐观渲染用)。 */
811
831
  createdAt: number;
812
832
  /** SDK 内部排序键;有效服务端时间优先,ACK 后可以更新。宿主不解析它,消息身份始终使用 id。 */
813
833
  sortKey: string;
@@ -816,7 +836,7 @@ interface ImMessage {
816
836
  failure?: ImMessageFailure;
817
837
  /** 服务端回传的 epoch 毫秒时间;有效时用于正式排序与展示,createdAt 仍保留创建记录。 */
818
838
  serverTime?: number;
819
- /** P0 默认 'unread'。 */
839
+ /** 默认 'unread'。 */
820
840
  receipt: MessageReceipt;
821
841
  /** 离线单聊服务端标记当前账号已在其它端读过;仅用于本地未读投影,不改变对端回执 receipt。 */
822
842
  readBySelf?: boolean;
@@ -849,7 +869,7 @@ interface ImMessage {
849
869
  /** 扩展位:后端新增语义先落这里,避免污染核心字段。 */
850
870
  extensions?: Record<string, unknown>;
851
871
  /**
852
- * 诊断快照(§4.1 诊断口径):后端下发的原始协议字段(已归一为可 JSON 序列化形态)。
872
+ * 诊断快照(§4.1 诊断口径):后端下发的原始协议字段(已转换为可 JSON 序列化形态)。
853
873
  * 默认不填充,仅当映射开启 keepRaw 时附带,便于联调、与后端核对原始下发;不参与任何业务逻辑。
854
874
  */
855
875
  raw?: ImMessageRaw;
@@ -966,17 +986,17 @@ type ChannelSessionState = 'active' | 'guest' | 'left' | 'removed' | 'dismissed'
966
986
  interface ImSession {
967
987
  id: string;
968
988
  type: ConversationType;
969
- /** P0 由映射层从用户/群资料补齐。 */
989
+ /** 由映射层从用户/群资料补齐。 */
970
990
  title: string;
971
991
  avatar?: string;
972
992
  /**
973
- * 会话最后一条的预览串(**已收窄**,阶段 4c):仅承载 text 消息的正文(供会话列表 previewSegments 解析 @/表情,需原始正文串);
993
+ * 会话最后一条的预览串(**已收窄**):仅承载 text 消息的正文(供会话列表 previewSegments 解析 @/表情,需原始正文串);
974
994
  * 媒体 / 加密 / 系统 / 撤回一律空串——其语义改由 lastMessageSummary 承载、UI 经 im-i18n 渲染。旧盘遗留的中文占位在 hydrate / projectSession 重算时清空。
975
995
  */
976
996
  lastMessagePreview: string;
977
997
  /**
978
- * 最后一条消息的语义摘要(持久化):取代中文 lastMessagePreview 作为语义承重,UI 经 im-i18n 按 locale 渲染。
979
- * 迁移期与 lastMessagePreview 双写并存(阶段 4);判等用字段级 lastMessageSummaryEqual(禁比对象引用)。旧会话无此字段时 UI 回退 lastMessagePreview。
998
+ * 最后一条消息的语义摘要,持久保存并由 im-i18n 按语言生成文案。
999
+ * 与 lastMessagePreview 同时保存,变化检查使用逐字段比较;旧会话缺此字段时可使用 lastMessagePreview。
980
1000
  */
981
1001
  lastMessageSummary?: LastMessageSummary;
982
1002
  /** 最后一条消息发送者 id(群会话列表预览「发送者名: 内容」前缀用;`'system'`=系统提示、==自己=我发的,前缀策略由宿主定)。 */
@@ -1000,7 +1020,7 @@ interface ImSession {
1000
1020
  * 会话内容仍显示最新一条消息。收到别人 @我 +1、查看/已读该会话清零。投影自 ReadState.mentionUnreadCount,与 unreadCount 同源持久化。
1001
1021
  */
1002
1022
  mentionUnreadCount?: number;
1003
- /** P0 排序时间(毫秒 number)。 */
1023
+ /** 排序时间(毫秒 number)。 */
1004
1024
  timestamp: number;
1005
1025
  /**
1006
1026
  * 用户手工添加的本地“稍后处理”提醒。
@@ -1016,7 +1036,7 @@ interface ImSession {
1016
1036
  topTime?: number;
1017
1037
  /**
1018
1038
  * 最新一条消息若为「己方且未完成发送」的态:'sending'(pending/uploading/sending 统一)/ 'failed'。
1019
- * 派生展示字段(随最新消息变化,会话列表据此显示发送中 loading / 失败图标);运行期真相,不持久化(persistSession 落盘时剔除)。
1039
+ * 派生展示字段(随最新消息变化,会话列表据此显示发送中 loading / 失败图标);运行期真相,不持久化(persistSession 写入本地存储时剔除)。
1020
1040
  */
1021
1041
  lastMessageSendState?: 'sending' | 'failed';
1022
1042
  /**
@@ -1024,11 +1044,11 @@ interface ImSession {
1024
1044
  *
1025
1045
  * 只在自己发出且 `status='sent'` 时投影;发送中/失败、对端消息、撤回、全员删除和系统提示都不给。
1026
1046
  * `delivered` 与尚未回执一样投影为 `unread`;当前协议没有送达通知,不能把 `sent` 当作对端已收到。
1027
- * 该字段随最新消息变化,并随会话落盘,避免冷启动后
1047
+ * 该字段随最新消息变化,并随会话写入本地存储,避免冷启动后
1028
1048
  * 因「盘中缺字段 / 内存有字段」反复广播;对端已读变化必须刷新会话行。
1029
1049
  */
1030
1050
  lastMessageReceipt?: 'unread' | 'read';
1031
- /** P0 我方已读游标(见 §4.3)。 */
1051
+ /** 我方已读游标(见 §4.3)。 */
1032
1052
  readCursor?: string;
1033
1053
  /** 群受限状态(仅 group;来自 0x2204 群通知 side-effect)。缺省视为 'active'(可正常发送)。 */
1034
1054
  groupState?: GroupSessionState;
@@ -1059,12 +1079,12 @@ interface OutboxUpdate {
1059
1079
  }
1060
1080
  /** 发送队列项(§4.4)。id 复用对应 ImMessage.id 以保证重试幂等。 */
1061
1081
  interface OutboxMessage {
1062
- /** P0 == 对应 ImMessage.id(客户端生成,重试时复用以保证幂等)。 */
1082
+ /** == 对应 ImMessage.id(客户端生成,重试时复用以保证幂等)。 */
1063
1083
  id: string;
1064
1084
  conversationId: string;
1065
1085
  conversationType: ConversationType;
1066
1086
  contentType: MessageContentType;
1067
- /** P0 待发送内容(明文;加密在发送管线内按 encryption 处理)。 */
1087
+ /** 待发送内容(明文;加密在发送管线内按 encryption 处理)。 */
1068
1088
  body: ImMessageBody;
1069
1089
  /** 群 @ 提及(发送侧:宿主从输入框提取;正文 body.text 已含 [userId] token / @所有人 文字,本字段供群发送策略编码 sNotifyUsers/nNotifyCount/extend)。仅群 @ 消息有。 */
1070
1090
  mention?: ImMessageMention;
@@ -1078,7 +1098,7 @@ interface OutboxMessage {
1078
1098
  /**
1079
1099
  * 复发策略(生命周期 logout 语义):`automatic`(默认,缺省视同)= onAuthenticated/断线重连时自动复发;
1080
1100
  * `manual` = 仅用户显式 retry 才发(logout 时把在途消息置 manual,避免退账号后下次登录无提示自动补发)。
1081
- * 持久化随账本落盘,故 logout(preserve)→重登后仍为 manual,不被自动复发;retry 会翻回 automatic。缺省(旧账本)按 automatic 处理(向后兼容)。
1101
+ * 持久化随账本写入本地存储,故 logout(preserve)→重登后仍为 manual,不被自动复发;retry 会翻回 automatic。缺省(旧账本)按 automatic 处理(向后兼容)。
1082
1102
  */
1083
1103
  resumePolicy?: 'automatic' | 'manual';
1084
1104
  }
@@ -1131,7 +1151,7 @@ interface ContactRemarkPhone {
1131
1151
  countryCode: string;
1132
1152
  mobile: string;
1133
1153
  }
1134
- /** 用户资料领域模型(§4.5)。由 ImProfilePort 拉取、映射层归一。 */
1154
+ /** 用户资料领域模型(§4.5)。由 ImProfilePort 拉取、映射层转换字段。 */
1135
1155
  interface UserProfile {
1136
1156
  id: string;
1137
1157
  /** 用户自设昵称(后端 `nick_name`)。 */
@@ -1156,7 +1176,7 @@ interface UserProfile {
1156
1176
  remarkPhones?: ContactRemarkPhone[];
1157
1177
  /** 扩展:消息加密公钥来源(§7 复用)。 */
1158
1178
  publicKey?: string;
1159
- /** 会话免打扰态(好友关系 `is_undisturb` 归一):仅好友资料返回,供领域层回填 `ImSession.muted` 做多端/冷启动恢复;非好友无此字段(undefined,不覆盖本地)。 */
1179
+ /** 会话免打扰态(好友关系 `is_undisturb` 转换为布尔值):仅好友资料返回,供领域层回填 `ImSession.muted` 做多端/冷启动恢复;非好友无此字段(undefined,不覆盖本地)。 */
1160
1180
  muted?: boolean;
1161
1181
  extensions?: Record<string, unknown>;
1162
1182
  }
@@ -1172,11 +1192,11 @@ interface GroupProfile {
1172
1192
  verifyWay?: number;
1173
1193
  /** 普通群邀请码;仅 `verifyWay === 4` 时有业务意义。 */
1174
1194
  inviteCode?: string;
1175
- /** 群状态(后端 status,具体值语义待后端明确):保留不丢弃,供「普通成员感知群解散」兜底(解散仅通知群主,Review F6)。 */
1195
+ /** 群状态(后端 status,具体值语义待后端明确):保留不丢弃,供「普通成员感知群解散」兜底(解散仅通知群主)。 */
1176
1196
  status?: number;
1177
- /** 当前用户是否在群(后端 is_ingroup:false=已不在群,被踢/退群的兜底禁发来源,Review F6)。 */
1197
+ /** 当前用户是否在群(后端 is_ingroup:false=已不在群,被踢/退群的兜底禁发来源)。 */
1178
1198
  isInGroup?: boolean;
1179
- /** 当前用户对该群的免打扰态(`to_user.is_undisturb` 归一):供领域层回填 `ImSession.muted` 恢复;缺省(undefined)表示后端未返回,不覆盖本地。 */
1199
+ /** 当前用户对该群的免打扰态(`to_user.is_undisturb` 转换为布尔值):供领域层回填 `ImSession.muted` 恢复;缺省(undefined)表示后端未返回,不覆盖本地。 */
1180
1200
  muted?: boolean;
1181
1201
  /** 扩展位:members[] 等明细留扩展。 */
1182
1202
  extensions?: Record<string, unknown>;
@@ -1288,9 +1308,9 @@ interface ChannelProfile {
1288
1308
  /** CHANNEL 独立访问限制事实;browser 新映射必须提供,legacy storage 可能缺失。 */
1289
1309
  accessSnapshot?: ChannelAccessSnapshot;
1290
1310
  muted?: boolean;
1291
- /** 服务端频道类型的归一业务值;不得用它把频道改路由到 `supergroup`。 */
1311
+ /** 服务端频道类型转换后的业务值;不得用它把频道改路由到 `supergroup`。 */
1292
1312
  channelKind?: string;
1293
- /** 本地密钥缓存代际/服务端未来版本的非敏感标识;不承载 secret_key。 */
1313
+ /** 本地密钥缓存操作编号/服务端未来版本的非敏感标识;不承载 secret_key。 */
1294
1314
  secretKeyVersion?: string;
1295
1315
  /** `/user_radio/list` 的资料增量版本;与 secretKeyVersion 无关。 */
1296
1316
  updateVersion?: string;
@@ -1320,7 +1340,7 @@ interface ChannelMemberPage {
1320
1340
  }
1321
1341
  /** CHANNEL @ 选择器返回的用户项;专用 UserInfo 协议不提供角色,不得写入 role-rich 成员缓存。 */
1322
1342
  interface ChannelMentionMember {
1323
- /** 归一化用户 ID;来自 `/user_radio/member/*` 的 `user_id`。 */
1343
+ /** 用户 ID,以字符串表示;来自 `/user_radio/member/*` 的 `user_id`。 */
1324
1344
  userId: string;
1325
1345
  /** CHANNEL @ 面板展示名;按频道昵称、全局昵称、协议备用名、用户 ID 的顺序降级。 */
1326
1346
  displayName: string;
@@ -1353,7 +1373,7 @@ interface ImError {
1353
1373
  * 诊断日志钩子(§5.3,可选):宿主注入以观察核心诊断(如 ACK 原始 errcode)。
1354
1374
  * core 不内置 console;不注入则不产生诊断输出。
1355
1375
  */
1356
- /** 连接策略(§8.3)。P0 固定 'single','race'/'sequential' 留 P1。 */
1376
+ /** 当前连接策略固定为 single,只连接首个端点。 */
1357
1377
  type ConnectionStrategy = 'single' | 'race' | 'sequential';
1358
1378
  interface ImReconnectOptions {
1359
1379
  /** 退避基数毫秒,默认 1000。 */
@@ -1484,7 +1504,7 @@ interface ChannelJoinApplication {
1484
1504
  channelAvatar?: string;
1485
1505
  /** 申请人填写的入群说明,服务端允许为空。 */
1486
1506
  message: string;
1487
- /** 服务端创建时间归一为 Unix 毫秒;源字段缺失或非法时不提供。 */
1507
+ /** 服务端创建时间转换为 Unix 毫秒;源字段缺失或非法时不提供。 */
1488
1508
  createdAt?: number;
1489
1509
  }
1490
1510
  /**
@@ -1549,7 +1569,7 @@ interface TransportEndpoint {
1549
1569
  }
1550
1570
 
1551
1571
  interface ImEndpointProvider {
1552
- /** WS 候选地址。P0 返回单元素数组;后端下发多 host 时返回多元素。 */
1572
+ /** WS 候选地址。返回单元素数组;后端下发多 host 时返回多元素。 */
1553
1573
  getEndpoints: () => Promise<TransportEndpoint[]>;
1554
1574
  /** CM Protobuf HTTP 基址。 */
1555
1575
  getCmHttpBaseUrl: () => Promise<string>;
@@ -1956,7 +1976,7 @@ declare function extractSearchText(message: Pick<ImMessage, 'contentType' | 'bod
1956
1976
  *
1957
1977
  * @remarks 拉丁字母统一为 A-Z;中文按整段文本上下文取首字读音的首字母,多音字随词语变化;
1958
1978
  * 数字、符号和 emoji 归入 `#`。
1959
- * 该工具只负责文本归一,不持有目录或 UI 状态,H5/PC 可以共享同一规则。
1979
+ * 该工具只负责文本处理,不持有目录或 UI 状态,H5/PC 可以共享同一规则。
1960
1980
  */
1961
1981
  declare function getImTextSearchInitial(text: string): Promise<string>;
1962
1982
  /**
@@ -2030,7 +2050,7 @@ interface ResolveTextOptions<Extra = never> {
2030
2050
  }
2031
2051
  /**
2032
2052
  * 把消息正文解析为内联富文本展示段:内置 @ matcher(协议)+ 宿主注入 matcher(应用)各自产出命中区间,
2033
- * SDK 统一**按位置合并、区间不重叠**(一个字符只归一个段)。空文本 → 单空段;无任何命中 → 整段文本。
2053
+ * SDK 统一**按位置合并、区间不重叠**(一个字符只属于一个段)。空文本 → 单空段;无任何命中 → 整段文本。
2034
2054
  * **冲突/重叠优先级**(稳定):① 起点靠前优先;② 同起点更长(更具体)优先;③ 仍相同按注册顺序——
2035
2055
  * 内置 @ 最先 push(协议安全类优先),其余按 `opts.matchers` 顺序。靠后的重叠区间在 assemble 中让位跳过。
2036
2056
  */
@@ -2122,7 +2142,7 @@ interface MessageWindowPage {
2122
2142
 
2123
2143
  /**
2124
2144
  * 全局总未读聚合规则(mute-aware · 通用):默认排除免打扰会话(对齐主流 IM:静音会话不进 App 总角标)。
2125
- * 免打扰会话的「@我未读」聚合待 `mentionUnreadCount` 落地后再加(P0 未填充)。
2145
+ * 免打扰会话的「@我未读」聚合待 `mentionUnreadCount` 落地后再加(未填充)。
2126
2146
  * @param sessions 会话快照。
2127
2147
  * @param options 聚合选项。
2128
2148
  * @param options.includeMuted 是否把免打扰会话也计入总数(默认 false)。
@@ -2148,7 +2168,7 @@ interface ImGroupCallMeetingSnapshot {
2148
2168
  * 根据 CHANNEL 角色、生命周期和禁言事实计算稳定访问能力。
2149
2169
  *
2150
2170
  * 这是无副作用的权限投影:输入来自权威 profile/session,输出供发送和 UI 预检使用;服务端仍做最终
2151
- * 权限裁决。未知或冲突状态不会借 GROUP 权限兜底,而是收敛到受限能力与明确原因。
2171
+ * 权限裁决。未知或冲突状态不会借 GROUP 权限兜底,而是转换为受限能力与明确原因。
2152
2172
  */
2153
2173
 
2154
2174
  /** CHANNEL 有效访问解析入参;`nowMs` 显式传入,使 hydrate、发送门禁与 Web 时钟使用同一纯逻辑。 */
@@ -2402,6 +2422,14 @@ interface GroupMemberItem {
2402
2422
  joinType?: number;
2403
2423
  }
2404
2424
 
2425
+ /** 客服号公开展示资料;不携带后台发送者身份或网络路由参数。 */
2426
+ interface CustomerServiceProfile {
2427
+ /** 当前语言的客服名称。 */
2428
+ displayName: string;
2429
+ /** 当前语言的头像地址;服务端未配置时为空。 */
2430
+ avatarUrl: string;
2431
+ }
2432
+
2405
2433
  /** 服务端对入群请求的最终裁决:已入群,或已提交并等待管理员审核。 */
2406
2434
  type MembershipJoinOutcome = 'joined' | 'waiting';
2407
2435
  /** Browser adapter 暴露给 SDK 的稳定入群结果,不携带具体 HTTP 响应结构。 */
@@ -2410,7 +2438,7 @@ interface MembershipJoinResult {
2410
2438
  outcome: MembershipJoinOutcome;
2411
2439
  }
2412
2440
 
2413
- /** 服务端按逻辑桶签发的 S3 临时上传凭证(已归一为 SDK 合同字段)。 */
2441
+ /** 服务端按逻辑桶签发的 S3 临时上传凭证(已转换为 SDK 合同字段)。 */
2414
2442
  interface MediaUploadCredentials {
2415
2443
  /** STS access key id(服务端字段 `access_key_id`)。 */
2416
2444
  accessKeyId: string;
@@ -2426,7 +2454,7 @@ interface MediaUploadCredentials {
2426
2454
  region: string;
2427
2455
  /** 对象 key 前缀;STS 策略只允许写该前缀下的对象,SDK 生成的 key 必须以它开头。 */
2428
2456
  keyPrefix?: string;
2429
- /** 公开访问域名(已归一为带 scheme、无尾斜杠);写进消息体的媒体 URL 以它为准。 */
2457
+ /** 公开访问域名(已转换为带 scheme、无尾斜杠);写进消息体的媒体 URL 以它为准。 */
2430
2458
  dnsPoint: string;
2431
2459
  /** 服务端身份标识;SDK 不使用,仅原样透出供宿主排查。 */
2432
2460
  identityId?: string;
@@ -2447,13 +2475,13 @@ interface MediaUploadCredentialsRequest {
2447
2475
  */
2448
2476
  type MediaUploadCredentialsProvider = (request: MediaUploadCredentialsRequest) => Promise<MediaUploadCredentials>;
2449
2477
  /**
2450
- * 把服务端原始回包归一为 `MediaUploadCredentials`,同时兼容 snake_case 与 camelCase。
2478
+ * 把服务端原始回包转换为 `MediaUploadCredentials`,同时兼容 snake_case 与 camelCase。
2451
2479
  *
2452
2480
  * 宿主可直接用它解析自己 BFF 的返回值,避免 PC 与 H5 各写一份宽松解析;SDK 在收到 provider
2453
2481
  * 结果后也会再跑一次本函数,因此绕过它自行构造的对象同样会被校验。
2454
2482
  *
2455
2483
  * @param raw 凭证对象本身(不含 code/msg 外层包装,由宿主先拆包)。
2456
- * @returns 归一后的凭证;关键字段缺失或非法时抛 `MediaTransferError('credentials-invalid')`,不返回半份凭证。
2484
+ * @returns 转换后的凭证;关键字段缺失或非法时抛 `MediaTransferError('credentials-invalid')`,不返回半份凭证。
2457
2485
  */
2458
2486
  declare function normalizeMediaUploadCredentials(raw: unknown): MediaUploadCredentials;
2459
2487
 
@@ -3045,7 +3073,7 @@ interface MentionCandidatePage {
3045
3073
  /**
3046
3074
  * CHANNEL role-free @候选产品 sibling。
3047
3075
  *
3048
- * @remarks list/search 使用独立缓存与 token 上下文;token 只在创建它的账号 runtime、查询类型和频道代际内有效。
3076
+ * @remarks list/search 使用独立缓存与 token 上下文;token 只在创建它的账号 runtime、查询类型和频道缓存版本号内有效。
3049
3077
  * 本 API 不读取 role-rich 成员 provider,也不包含已退场的 @消息索引/定位能力。
3050
3078
  * @example
3051
3079
  * ```ts
@@ -3059,13 +3087,13 @@ interface ImChannelMentionApi {
3059
3087
  peekFirstPage: (channel: ConversationRef<'channel'>) => MentionCandidatePage | null;
3060
3088
  /** 从已 hydrate 的常用候选快照做同步直接文本过滤;不发远端搜索请求。 */
3061
3089
  peekSearchCandidates: (channel: ConversationRef<'channel'>, keyword: string) => readonly MentionCandidate[];
3062
- /** hydrate 持久快照并返回本地首页或直接/拼音搜索结果;cache miss 返回 null,绝不回源。 */
3090
+ /** hydrate 持久快照并返回本地首页或直接/拼音搜索结果;cache miss 返回 null,绝不请求服务端。 */
3063
3091
  getCachedPage: (channel: ConversationRef<'channel'>, keyword?: string) => Promise<MentionCandidatePage | null>;
3064
3092
  /** hydrate 持久快照,并在缺失/过期时按完整页预热约 200 人;同频道在途任务复用。 */
3065
3093
  prefetchFirstPage: (channel: ConversationRef<'channel'>) => Promise<void>;
3066
3094
  /** 强制从专用 mention provider 重建约 200 人常用候选快照。 */
3067
3095
  refreshFirstPage: (channel: ConversationRef<'channel'>) => Promise<MentionCandidatePage>;
3068
- /** 读取常用候选快照;内存 miss 时先读持久层,均未命中才回源。 */
3096
+ /** 读取常用候选;内存未命中时先读本地存储,两处都没有才查询服务端。 */
3069
3097
  listFirstPage: (channel: ConversationRef<'channel'>) => Promise<MentionCandidatePage>;
3070
3098
  /** 使用 list 页产生的 token 继续分页;search token 会被拒绝。 */
3071
3099
  listNextPage: (pageToken: ImPageToken) => Promise<MentionCandidatePage>;
@@ -3124,7 +3152,7 @@ interface ImDirectorySearchApi {
3124
3152
  search: (keyword: string) => Promise<ImDirectorySearchResult>;
3125
3153
  }
3126
3154
 
3127
- /** 回源失败的原因与能否重试。 */
3155
+ /** 服务端消息查询失败的原因,以及是否允许重试。 */
3128
3156
  interface MessagesByIdFailure {
3129
3157
  /**
3130
3158
  * 能否稍后重试。
@@ -3136,7 +3164,10 @@ interface MessagesByIdFailure {
3136
3164
  /** 原始错误,供诊断与上报。 */
3137
3165
  error: unknown;
3138
3166
  }
3139
- /** 回源的汇总结果。三组 id 互不重叠,合起来覆盖调用方传入的全部有效 id。 */
3167
+ /**
3168
+ * 服务端消息查询汇总。三组 ID 互不重叠,合起来覆盖调用方传入的全部有效 ID。
3169
+ * @template TMessage 调用方需要的消息展示类型,由 projectMessage 从领域消息转换得到。
3170
+ */
3140
3171
  interface ImMessagesByIdResult<TMessage> {
3141
3172
  /** 成功取回的消息。已经进了本地历史,后续本地查询就能命中。 */
3142
3173
  readonly messages: readonly TMessage[];
@@ -3158,7 +3189,7 @@ interface ImMessagesByIdResult<TMessage> {
3158
3189
  * SDK 内部 CHANNEL sibling:装配资料、成员、申请、置顶、历史限制与通知修复能力。
3159
3190
  *
3160
3191
  * 所有入口都要求精确 CHANNEL 身份,并把协议 I/O 结果提交到当前账号的同一 DomainState;不会复用
3161
- * GROUP 端口或为 `supergroup` fallback。运行时 dispose 后,在途 HTTP/回源结果必须失效,不能广播旧账号事件。
3192
+ * GROUP 端口或为 `supergroup` fallback。运行时 dispose 后,在途 HTTP 查询的结果必须失效,不能广播旧账号事件。
3162
3193
  */
3163
3194
 
3164
3195
  /** CHANNEL 资料、成员和申请门面;已退场的 Mention 历史定位不进入产品面。 */
@@ -3183,7 +3214,7 @@ interface ImChannelApi extends ImDirectoryApi<'channel'> {
3183
3214
  cursor?: string;
3184
3215
  limit?: number;
3185
3216
  }) => Promise<ChannelMemberPage>;
3186
- /** 进入 CHANNEL 时预热 role-rich 有界成员快照;缓存新鲜时不回源。 */
3217
+ /** 进入 CHANNEL 时预取含成员角色的有限列表;缓存未过期时不重复请求服务端。 */
3187
3218
  prefetchMembers: (channelId: string) => Promise<void>;
3188
3219
  /** 读取 role-rich 有界快照或本地搜索命中;不触发远端请求。 */
3189
3220
  getCachedMembers: (input: {
@@ -3332,7 +3363,7 @@ interface ImContactApi extends ImDirectoryApi<'individual'> {
3332
3363
  getProfile: (userId: string, opts?: {
3333
3364
  forceRefresh?: boolean;
3334
3365
  }) => Promise<UserProfile | null>;
3335
- /** 仅读内存/持久化,不回源 HTTP;命中时显式返回 stale。 */
3366
+ /** 只读内存或本地存储,不发 HTTP;命中时明确返回 stale,提醒调用方缓存可能已过期。 */
3336
3367
  peekProfile: (userId: string) => Promise<{
3337
3368
  value: UserProfile;
3338
3369
  stale: boolean;
@@ -3382,7 +3413,7 @@ interface ConversationPrefetchOptions {
3382
3413
  * skipped 表示当前类型、权限、存储或预算不允许预取;失败不改变正常打开会话的行为。
3383
3414
  */
3384
3415
  interface ConversationPrefetchResult {
3385
- ref: ConversationRef<'direct' | 'group' | 'channel' | 'robot'>;
3416
+ ref: ConversationRef<'direct' | 'group' | 'channel' | 'robot' | 'customerService'>;
3386
3417
  status: 'ready' | 'skipped' | 'failed' | 'cancelled';
3387
3418
  reason?: 'unsupported' | 'unavailable' | 'storage-unavailable' | 'budget' | 'page-too-large' | 'decrypt-failed' | 'invalidated' | 'cancelled';
3388
3419
  error?: ImSdkErrorShape;
@@ -3390,7 +3421,7 @@ interface ConversationPrefetchResult {
3390
3421
 
3391
3422
  /**
3392
3423
  * 当前账号草稿的产品 DTO、跨组件 API 与 handle 绑定门面。
3393
- * 草稿按复合会话身份串行持久化,SDK DomainState 是唯一真相;附件尚未闭合时非空输入明确拒绝。
3424
+ * 草稿按会话类型和 ID 串行保存,统一由 SDK DomainState 管理;当前不支持保存附件,非空附件输入会被明确拒绝。
3394
3425
  */
3395
3426
 
3396
3427
  /** 当前产品草稿实体;只包含可持久化的 text/mention/reply,附件集合固定为空。 */
@@ -3453,7 +3484,7 @@ interface ImDraftsApi {
3453
3484
  */
3454
3485
 
3455
3486
  /** 当前兼容门面支持的精确会话 ref。 */
3456
- type ImSupportedConversationRef = ConversationRef<'direct' | 'group' | 'channel' | 'robot'>;
3487
+ type ImSupportedConversationRef = ConversationRef<'direct' | 'group' | 'channel' | 'robot' | 'customerService'>;
3457
3488
  /**
3458
3489
  * 会话 API 的迁移期入参。优先传完整 ref;旧 string 仅在当前 session 中唯一命中时可用。
3459
3490
  *
@@ -3461,10 +3492,10 @@ type ImSupportedConversationRef = ConversationRef<'direct' | 'group' | 'channel'
3461
3492
  */
3462
3493
  type ImConversationInput = ImSupportedConversationRef | string;
3463
3494
  /**
3464
- * 会话列表兼容读模型;草稿是当前账号本机即时投影,不进入 session durable 行,也不承诺跨端同步。
3495
+ * 内部会话列表数据。草稿反映当前账号的本机输入,不写入会话持久记录,也不跨端同步。
3465
3496
  *
3466
- * @remarks Phase 7 消费方迁移前保留 ImSession 展示字段;新代码应优先读取复合身份语义与 draft,不自行拼主键。
3467
- * @example `client.conversations.list().find(item => item.draft !== null)` 可找到当前账号有未发送草稿的会话。
3497
+ * 保留 ImSession 的展示字段供内部调用方使用;跨类型识别会话时必须使用会话类型 + ID,不自行拼接主键。
3498
+ * @example client.conversations.list().find(item => item.draft !== null) 可找到当前账号有未发送草稿的会话。
3468
3499
  */
3469
3500
  interface ConversationListItem$1 extends ImSession {
3470
3501
  draft: ConversationDraft | null;
@@ -3491,7 +3522,7 @@ interface ImConversationsApi {
3491
3522
  markConversationRead: (conversation: ImConversationInput) => Promise<void>;
3492
3523
  /** 给已无真实未读的会话添加本地未读提醒;不回退消息已读状态,也不发网络请求。 */
3493
3524
  markConversationUnread: (conversation: ImConversationInput) => void;
3494
- /** 删除本机会话、消息、读态与草稿;立即发布对应本地事件,durable 删除失败经 storage error 暴露,离线历史受 tombstone 约束。 */
3525
+ /** 删除本机会话、消息、已读状态和草稿并立即发布本地事件;存储删除失败会报告 storage error,本地删除标记阻止离线消息恢复已删除内容。 */
3495
3526
  deleteConversation: (conversation: ImConversationInput) => void;
3496
3527
  }
3497
3528
 
@@ -3591,16 +3622,16 @@ declare class ImPinnedMessageOperationError extends Error {
3591
3622
  }
3592
3623
 
3593
3624
  /**
3594
- * SDK 内部普通群 sibling:装配群资料、成员名称、`@` 候选和群置顶主动操作。
3625
+ * SDK 内部普通群模块:提供群资料、成员名称、@ 候选和群置顶操作。
3595
3626
  *
3596
3627
  * 本模块只接收 GROUP `ConversationRef`,使用普通群独立 HTTP/mapper,并回写当前账号唯一 DomainState。
3597
- * CHANNEL 的角色、申请、成员治理和置顶协议不从这里兼容;dispose 会作废回源与协调器结果。
3628
+ * CHANNEL 的角色、申请、成员管理和置顶协议由独立模块处理;dispose 后旧查询和协调任务的结果不再生效。
3598
3629
  */
3599
3630
 
3600
3631
  /**
3601
3632
  * GROUP 完整 @候选集合产品面。
3602
3633
  *
3603
- * @remarks `listAll` 使用账号级产品缓存;`refreshAll` 显式绕过缓存回源。两者只消费普通群完整成员 provider,
3634
+ * @remarks `listAll` 使用账号级产品缓存;`refreshAll` 绕过缓存重新请求服务端。两者只消费普通群完整成员 provider,
3604
3635
  * 不接受 CHANNEL 分页 cursor/provider。缺少 provider、远端失败或不完整结果会拒绝,不用空数组伪装失败。
3605
3636
  * @example
3606
3637
  * ```ts
@@ -3612,7 +3643,7 @@ declare class ImPinnedMessageOperationError extends Error {
3612
3643
  interface ImGroupMentionApi {
3613
3644
  /** 读取完整候选集合;同群并发读取复用请求,成功结果按 userId 稳定去重并缓存。 */
3614
3645
  listAll: (group: ConversationRef<'group'>) => Promise<readonly MentionCandidate[]>;
3615
- /** 显式回源刷新完整候选;并发刷新复用请求,失败保留此前成功缓存。 */
3646
+ /** 显式向服务端重新查询完整候选;并发刷新复用请求,失败保留此前成功缓存。 */
3616
3647
  refreshAll: (group: ConversationRef<'group'>) => Promise<readonly MentionCandidate[]>;
3617
3648
  }
3618
3649
  /** GROUP 资料、成员缓存、@候选与单条置顶门面;不与 CHANNEL 合并。 */
@@ -3631,17 +3662,17 @@ interface ImGroupApi extends ImDirectoryApi<'group'> {
3631
3662
  getMemberNames: (groupId: string, opts?: {
3632
3663
  forceRefresh?: boolean;
3633
3664
  }) => Promise<Record<string, string> | null>;
3634
- /** 仅读普通群成员缓存,不回源。 */
3665
+ /** 仅读普通群成员缓存,不请求服务端。 */
3635
3666
  peekMembers: (groupId: string) => Promise<{
3636
3667
  value: GroupMemberItem[];
3637
3668
  stale: boolean;
3638
3669
  } | null>;
3639
- /** 仅读普通群昵称缓存,不回源。 */
3670
+ /** 仅读普通群昵称缓存,不请求服务端。 */
3640
3671
  peekMemberNames: (groupId: string) => Promise<{
3641
3672
  value: Record<string, string>;
3642
3673
  stale: boolean;
3643
3674
  } | null>;
3644
- /** 仅读普通群资料缓存,不回源。 */
3675
+ /** 仅读普通群资料缓存,不请求服务端。 */
3645
3676
  peekProfile: (groupId: string) => Promise<{
3646
3677
  value: GroupProfile;
3647
3678
  stale: boolean;
@@ -3690,7 +3721,7 @@ interface ImGroupApi extends ImDirectoryApi<'group'> {
3690
3721
  }
3691
3722
 
3692
3723
  /**
3693
- * SDK 资源轴与连接轴的稳定生命周期合同。
3724
+ * SDK 账号资源和网络连接的稳定生命周期合同。
3694
3725
  * 账号准备、联网和 logout 保持可区分;快照不包含 token、transport、storage 句柄或宿主认证状态。
3695
3726
  */
3696
3727
 
@@ -3699,9 +3730,9 @@ interface ImClientSnapshot {
3699
3730
  connectionState: ImConnectionState;
3700
3731
  pendingOutbox: OutboxMessage[];
3701
3732
  }
3702
- /** 会话资源生命周期;与连接状态轴正交。 */
3733
+ /** 账号资源的准备和释放状态;网络连接状态单独记录,二者互不替代。 */
3703
3734
  type ImSessionLifecycleState = 'empty' | 'preparing' | 'ready' | 'logging-out' | 'disposed';
3704
- /** 会话资源轴、连接轴与常用派生状态。 */
3735
+ /** 账号资源状态、网络连接状态,以及由二者计算的便捷状态。 */
3705
3736
  interface ImLifecycleSnapshot {
3706
3737
  sessionState: ImSessionLifecycleState;
3707
3738
  connectionState: ImConnectionState;
@@ -3810,7 +3841,7 @@ type ImApplicationItem = (ApplicationItemBase<'contact-request', ContactApplicat
3810
3841
  * typed application inbox 产品面。
3811
3842
  *
3812
3843
  * @remarks `listPending` 只有在 contact/GROUP/CHANNEL 三个 provider 全部成功时才返回完整快照;审核动作按 ref.domain
3813
- * 精确回到 sibling。CHANNEL invite type=5 不属于已闭合 provider,因此不会出现在结果中。
3844
+ * 精确回到 sibling。CHANNEL invite type=5 不属于已确认 provider,因此不会出现在结果中。
3814
3845
  * @example
3815
3846
  * ```ts
3816
3847
  * const pending = await client.applications.listPending()
@@ -3880,13 +3911,13 @@ interface ImDirectCallsApi {
3880
3911
  }
3881
3912
 
3882
3913
  /**
3883
- * 会话背景的产品选择、预设读取和持久化解析运行时。
3914
+ * 管理会话背景选择、预设读取和本地保存。
3884
3915
  *
3885
- * SDK 保存 builtin/preset/custom 的稳定选择及账号默认值,不保存 DOM、图片元素或 object URL;自定义图片
3886
- * Blob 只经 storage 持久化。异步读取使用运行时代际防止切会话/切账号晚返回,宿主负责最终渲染与 URL 释放。
3916
+ * SDK 保存 builtin/preset/custom 选择及账号默认值;自定义图片 Blob 经 storage 保存,不持有 DOM、图片元素或 object URL。
3917
+ * 异步读取返回时核对运行环境版本,防止切会话或切账号后应用旧结果;宿主负责最终渲染和 URL 释放。
3887
3918
  */
3888
3919
 
3889
- type ConversationBackgroundConversationType = 'direct' | 'group' | 'channel' | 'robot';
3920
+ type ConversationBackgroundConversationType = 'direct' | 'group' | 'channel' | 'robot' | 'customerService';
3890
3921
  interface ConversationBackgroundPreset {
3891
3922
  id: string;
3892
3923
  url: string;
@@ -3925,9 +3956,9 @@ interface ImConversationBackgroundApi {
3925
3956
  }
3926
3957
 
3927
3958
  /**
3928
- * 联系人、普通群和 CHANNEL 资料的稳定产品 DTO 投影。
3959
+ * 把联系人、普通群和 CHANNEL 资料转换为稳定产品数据。
3929
3960
  *
3930
- * 本文件只做复制、权限归一化与错误收敛,不缓存资料,也不发 HTTP。GROUP/CHANNEL 各自保留业务字段,
3961
+ * 本文件只复制字段、统一权限格式和转换错误,不缓存资料,也不发 HTTP。GROUP/CHANNEL 各自保留业务字段,
3931
3962
  * 公钥、访问快照、密钥版本、协议状态和 core extensions 都不会进入 default API。
3932
3963
  */
3933
3964
 
@@ -3950,14 +3981,14 @@ interface ImContactRemarkPhone {
3950
3981
  countryCode: string;
3951
3982
  mobile: string;
3952
3983
  }
3953
- /** default GROUP 资料 DTO;后端未闭合的数值 status 与缓存扩展不进入产品面。 */
3984
+ /** default GROUP 资料 DTO;后端尚未确认的数值 status 与缓存扩展不进入产品面。 */
3954
3985
  interface ImGroupProfile {
3955
3986
  ref: ConversationRef<'group'>;
3956
3987
  name: string;
3957
3988
  avatar?: string;
3958
3989
  memberCount?: number;
3959
3990
  ownerId?: string;
3960
- /** 普通群入群验证方式(1/2/4 为当前可设置值;未知值不在产品层静默归一)。 */
3991
+ /** 普通群入群验证方式(1/2/4 为当前可设置值);未知值不能在产品层被自动改写。 */
3961
3992
  verifyWay?: number;
3962
3993
  /** 普通群邀请码;仅邀请码模式有意义。 */
3963
3994
  inviteCode?: string;
@@ -4048,7 +4079,7 @@ interface ImChannelProfile {
4048
4079
  */
4049
4080
 
4050
4081
  /** default 会话列表支持的精确类型;`supergroup` 继续受产品 Gate 约束。 */
4051
- type ProductConversationListType = 'direct' | 'group' | 'channel' | 'robot';
4082
+ type ProductConversationListType = 'direct' | 'group' | 'channel' | 'robot' | 'customerService';
4052
4083
  /** GROUP 会话限制状态;与 CHANNEL 状态保持独立 sibling。 */
4053
4084
  type ImGroupConversationState = GroupSessionState;
4054
4085
  /**
@@ -4219,8 +4250,8 @@ interface ImConversationListSnapshot {
4219
4250
  * default 会话列表产品面。
4220
4251
  *
4221
4252
  * @remarks
4222
- * `list()` 保留 Phase 5 已验证的同步本地读模型;`getSnapshot/subscribe` 为普通宿主提供原子列表和总未读。
4223
- * 所有写动作只接受复合身份。`deleteLocal` 立即提交内存删除事件,但底层 durable 删除仍是异步 best-effort,
4253
+ * `list()` 同步读取本机会话;`getSnapshot/subscribe` 为普通宿主提供同一时刻的列表和总未读。
4254
+ * 所有写动作只接受复合身份。`deleteLocal` 立即提交内存删除事件,但底层存储删除仍异步执行,失败会报告错误,
4224
4255
  * 因此该方法不虚假返回代表“持久化已完成”的 Promise。
4225
4256
  *
4226
4257
  * @example
@@ -4282,6 +4313,17 @@ interface DirectConversationCapabilities {
4282
4313
  canUseMessageActions: CapabilityDecision;
4283
4314
  canManageRelationship: CapabilityDecision;
4284
4315
  }
4316
+ /** 客服只读能力;资料、发送和消息修改均不可用,历史读取仅限本机已接收消息。 */
4317
+ interface CustomerServiceConversationCapabilities {
4318
+ /** 客服号不可发送消息。 */
4319
+ canSendMessages: CapabilityDecision;
4320
+ /** 客服号没有好友或成员资料页。 */
4321
+ canOpenProfile: CapabilityDecision;
4322
+ /** 客服号不开放消息修改与转发等动作。 */
4323
+ canUseMessageActions: CapabilityDecision;
4324
+ /** 允许读取客服本机历史。 */
4325
+ canReadHistory: CapabilityDecision;
4326
+ }
4285
4327
  interface RobotConversationCapabilities {
4286
4328
  canSendMessages: CapabilityDecision;
4287
4329
  canOpenProfile: CapabilityDecision;
@@ -4356,6 +4398,8 @@ type ConversationCapabilitySnapshot = (ConversationCapabilityBase<'direct'> & {
4356
4398
  value: ChannelConversationCapabilities;
4357
4399
  }) | (ConversationCapabilityBase<'robot'> & {
4358
4400
  value: RobotConversationCapabilities;
4401
+ }) | (ConversationCapabilityBase<'customerService'> & {
4402
+ value: CustomerServiceConversationCapabilities;
4359
4403
  });
4360
4404
  interface ImConversationCapabilitiesApi {
4361
4405
  /** 只读取 SDK 当前本机真相与已刷新过的资料/关系投影,不隐式联网。 */
@@ -4507,7 +4551,7 @@ interface ImExpressionsApi {
4507
4551
  */
4508
4552
 
4509
4553
  /** 当前已接线的产品 handle 会话类型;三者只在无会话语义原子层复用。 */
4510
- type ProductHandleConversationType = 'direct' | 'group' | 'channel' | 'robot';
4554
+ type ProductHandleConversationType = 'direct' | 'group' | 'channel' | 'robot' | 'customerService';
4511
4555
  /**
4512
4556
  * 会话 handle 初始打开位置。
4513
4557
  *
@@ -4569,9 +4613,9 @@ interface ConversationHandleSnapshot<TType extends ProductHandleConversationType
4569
4613
  error?: ImSdkErrorShape;
4570
4614
  }
4571
4615
  /**
4572
- * 单条消息本机删除结果。
4616
+ * 单条消息的本机删除结果。
4573
4617
  *
4574
- * @remarks `scope` 永远是 `local-only`;该动作不发送撤回/双删命令,也不建立远端墓碑,因此重新加载远端历史可能恢复同一消息。
4618
+ * scope 固定为 local-only;该动作不发送撤回或双方删除命令,也不会让服务端标记删除,重新加载远端历史时可能再次出现同一消息。
4575
4619
  */
4576
4620
  interface LocalMessageDeletionResult {
4577
4621
  scope: 'local-only';
@@ -4844,8 +4888,8 @@ type ConversationMessageApiFor<TType extends ProductHandleConversationType> = TT
4844
4888
  /**
4845
4889
  * 绑定单个复合会话身份的产品级会话句柄。
4846
4890
  *
4847
- * @remarks 每次打开都持有独立连续窗口;`close()` 只释放瞬时窗口和订阅,不删除领域消息。direct/GROUP/CHANNEL
4848
- * 由各自 sibling 工厂接入;草稿属于 Phase 5。关闭后所有读取与动作均 fail-fast。
4891
+ * @remarks 每次打开都持有独立连续窗口;`close()` 只释放瞬时窗口和订阅,不删除领域消息。各会话类型
4892
+ * 使用各自工厂;草稿经 drafts API 维护。关闭后继续读取或执行动作都会立即报错。
4849
4893
  * @template TType 当前句柄绑定的精确会话类型。
4850
4894
  * @example
4851
4895
  * ```ts
@@ -4911,6 +4955,18 @@ interface ConversationHandle<TType extends ProductHandleConversationType = Produ
4911
4955
  close: () => void;
4912
4956
  }
4913
4957
 
4958
+ /** 只读客服号资料;账号由 SDK runtime 绑定,宿主只提供当前语言。 */
4959
+ interface ImCustomerServiceApi {
4960
+ /** 下载当前账号客服消息的指定文件;返回真实字节,不使用展示大小判断完成。 */
4961
+ downloadFile: (input: {
4962
+ messageId: string;
4963
+ itemIndex: number;
4964
+ signal?: AbortSignal;
4965
+ }) => Promise<Blob>;
4966
+ /** 获取并更新已有会话的显示资料;并发请求按语言合并,过期语言不覆盖当前页面。 */
4967
+ getProfile: (lang: number) => Promise<Readonly<CustomerServiceProfile>>;
4968
+ }
4969
+
4914
4970
  /**
4915
4971
  * SDK 对外的结构化诊断投影、过滤与 sink 装配。
4916
4972
  *
@@ -4984,7 +5040,7 @@ interface ImDebugOptions {
4984
5040
  declare const IM_DIAGNOSTIC_CATEGORIES: readonly ImDiagnosticCategory[];
4985
5041
  /** SDK 默认控制台 sink;Core/Chat Kit/Pinia/Worker 不直接访问 console。 */
4986
5042
  declare function createImConsoleDiagnosticSink(): ImDiagnosticSink;
4987
- /** 把产品 `debug` 配置归一成单 Runtime writer;自定义 sink 失败时仅由默认 sink 报告一次。 */
5043
+ /** 把产品 debug 配置转换为当前账号唯一的诊断输出器;自定义输出失败时由默认输出器报告一次。 */
4988
5044
  declare function createSdkDiagnosticWriter(debug: boolean | ImDebugOptions | undefined, getRuntimeContext: () => {
4989
5045
  accountId?: string;
4990
5046
  generation?: number;
@@ -5032,7 +5088,7 @@ interface ImMediaTask {
5032
5088
  direction: 'upload' | 'download';
5033
5089
  /** 终态 completed/failed/canceled 不会被同一尝试的迟到 progress 回退。 */
5034
5090
  state: 'queued' | 'running' | 'paused' | 'completed' | 'failed' | 'canceled';
5035
- /** 0-100 的归一化整数。 */
5091
+ /** 范围为 0 到 100 的整数进度。 */
5036
5092
  percent: number;
5037
5093
  /**
5038
5094
  * upload 子阶段。
@@ -5215,7 +5271,7 @@ interface ImMediaTasksApi {
5215
5271
  * 可靠发送账本的产品查询、订阅、重试和取消门面。
5216
5272
  *
5217
5273
  * Core Outbox 是唯一发送真相;产品项只暴露消息身份、状态和安全错误,不泄漏尝试次数或恢复策略。
5218
- * 控制动作始终回到当前账号 connection,dispose 后旧订阅和晚返回结果失效,取消 queued 不等价于远端撤回。
5274
+ * 控制动作始终回到当前账号 connection,dispose 后旧订阅失效,随后返回的旧结果不再生效,取消 queued 不等价于远端撤回。
5219
5275
  */
5220
5276
 
5221
5277
  /** 产品可观察 Outbox 项;不包含正文、帧、ACK、attempts、加密信息或 resumePolicy。 */
@@ -5776,7 +5832,7 @@ interface ImMessageSearchApi {
5776
5832
  inDirect: (conversation: ConversationRef<'direct'>, keyword: string) => Promise<ProductMessageSearchPage<MessageContentType>>;
5777
5833
  /** 搜索 GROUP 本地历史;不得接受 CHANNEL ref 或回退 direct。 */
5778
5834
  inGroup: (conversation: ConversationRef<'group'>, keyword: string) => Promise<ProductMessageSearchPage<MessageContentType>>;
5779
- /** 搜索 CHANNEL 本地历史;当前不调用未闭合的远端 CHANNEL 搜索/定位协议。 */
5835
+ /** 搜索 CHANNEL 本地历史;当前不调用尚未确认的远端 CHANNEL 搜索/定位协议。 */
5780
5836
  inChannel: (conversation: ConversationRef<'channel'>, keyword: string) => Promise<ProductMessageSearchPage<MessageContentType>>;
5781
5837
  /** 搜索 robot 本地历史;无远端历史,不得回退 direct。 */
5782
5838
  inRobot: (conversation: ConversationRef<'robot'>, keyword: string) => Promise<ProductMessageSearchPage<MessageContentType>>;
@@ -5909,7 +5965,7 @@ declare function resolveImEmojiToken(token: string): ImEmojiCatalogEntry | undef
5909
5965
  *
5910
5966
  * 上传凭证由业务后端按登录态签发(与 iOS、prod H5 同一个接口),回包同时给出**物理桶**、区域、`key_prefix` 和
5911
5967
  * 公开访问域名;SDK 据此拼 object key 与消息体 URL,宿主 env 里配的只是申请凭证用的逻辑桶名。凭证缓存(本地
5912
- * 1 小时、按服务端过期时间提前 5 分钟失效)、同桶单飞与失败重签由 SDK 负责,宿主只需提供「打一次接口」的纯函数。
5968
+ * 1 小时、按服务端过期时间提前 5 分钟失效)、同桶并发请求复用和失败后重新签发由 SDK 负责,宿主只需提供「打一次接口」的纯函数。
5913
5969
  *
5914
5970
  * 默认单次 PUT/GET;仅 multipartTransfer=true 才允许大资源分片上传、下载。
5915
5971
  * 各 bucket 需在对象存储侧配置 CORS 允许本站 origin 的 PUT + GET;开启分片后,超过 16MiB 的上传另需放行
@@ -6063,7 +6119,7 @@ interface ImContactsApi extends ImDirectoryApi<'individual'> {
6063
6119
  * 发送好友申请。
6064
6120
  *
6065
6121
  * @remarks `remark` 是当前账号对目标用户设置的私有备注,按后端申请合同作为
6066
- * `remark_nick_name` 提交。SDK 不另存待处理副本;关系建立后从当前账号的权威好友资料收敛展示。
6122
+ * `remark_nick_name` 提交。SDK 不另存待处理副本;关系建立后从当前账号的权威好友资料读取并展示。
6067
6123
  */
6068
6124
  requestFriendship: (userId: string, options: {
6069
6125
  message: string;
@@ -6287,7 +6343,7 @@ interface AdvancedConversationsApi extends ImConversationsApi, ImConversationBac
6287
6343
  *
6288
6344
  * @internal
6289
6345
  */
6290
- ensureOpenableConversation: (ref: ConversationRef) => Promise<ConversationRef<'direct' | 'group' | 'channel' | 'robot'>>;
6346
+ ensureOpenableConversation: (ref: ConversationRef) => Promise<ConversationRef<'direct' | 'group' | 'channel' | 'robot' | 'customerService'>>;
6291
6347
  /**
6292
6348
  * 读取已有会话或本次账号内已校验的目标资料;返回值不代表列表成员资格。
6293
6349
  * @internal
@@ -6317,6 +6373,8 @@ interface ImProductClient {
6317
6373
  /** 当前账号完整联系人、群组和社群目录的统一搜索。 */
6318
6374
  readonly directory: ImDirectorySearchApi;
6319
6375
  /** 机器人公开目录;通讯录查找与群/社群绑定列表共用分页合同。 */
6376
+ /** 客服号只读资料能力。 */
6377
+ readonly customerService: ImCustomerServiceApi;
6320
6378
  readonly robots: ImRobotsApi;
6321
6379
  readonly contacts: ImContactsApi;
6322
6380
  readonly groups: ImGroupsApi;
@@ -6368,6 +6426,7 @@ interface ImClient extends Omit<ImProductClient, 'capabilities' | 'channels' | '
6368
6426
  (ref: ConversationRef<'group'>, options?: ConversationOpenOptions): Promise<ConversationHandle<'group'>>;
6369
6427
  (ref: ConversationRef<'channel'>, options?: ConversationOpenOptions): Promise<ConversationHandle<'channel'>>;
6370
6428
  (ref: ConversationRef<'robot'>, options?: ConversationOpenOptions): Promise<ConversationHandle<'robot'>>;
6429
+ (ref: ConversationRef<'customerService'>, options?: ConversationOpenOptions): Promise<ConversationHandle<'customerService'>>;
6371
6430
  };
6372
6431
  /** 当前账号草稿产品面;按复合身份持久化,handle.draft 委托同一状态源。 */
6373
6432
  drafts: ImDraftsApi;
@@ -6385,7 +6444,7 @@ interface ImClient extends Omit<ImProductClient, 'capabilities' | 'channels' | '
6385
6444
  contact: ImContactApi;
6386
6445
  /** 群域:群资料读取 + 修改群名/群头像/群内昵称。 */
6387
6446
  group: ImGroupApi;
6388
- /** CHANNEL 域:资料、成员治理与独立置顶能力;仍未闭合的动作不进入此门面。 */
6447
+ /** CHANNEL 域:资料、成员管理与独立置顶能力;尚未确认的动作不进入此门面。 */
6389
6448
  channel: ImChannelApi;
6390
6449
  /** 可观察媒体任务与按精确消息引用下载。 */
6391
6450
  media: ImMediaTasksApi;
@@ -6549,4 +6608,4 @@ interface ImResourceUploader {
6549
6608
  declare function createImResourceUploader(config: ImResourceUploaderConfig): ImResourceUploader;
6550
6609
 
6551
6610
  export { EDIT_WINDOW_MS, IMAGE_MESSAGE_ACCEPT, IM_CHAT_FONT_SCALES, IM_DIAGNOSTIC_CATEGORIES, IM_EMOJI_CATALOG, ImPinnedMessageOperationError, MEDIA_ALBUM_CAPTION_MAX_LENGTH, MEDIA_ALBUM_MAX_ITEMS, MediaTransferError, REACTION_SUPPORTED_CONTENT_TYPES, buildSessionFavoritePlainBody, canReactToMessage, canTransmit, canTransmitByType, canTransmitContent, classifyStickerImageType, createFaceToFaceGroupQrPayload, createImClient, createImConsoleDiagnosticSink, createImDiagnosticMemoryBuffer, createImResourceUploader, createImTextSearchMatcher, createSdkDiagnosticWriter, createVoicePlayer, createVoiceRecordingSession, detectVoiceCapabilities, extractSearchText, getImTextSearchInitial, isSupportedImageFile, mediaTransferErrorCodeOf, migrateImCachePrefix, normalizeMediaUploadCredentials, parseSessionFavoriteAlbumItems, parseSessionFavoriteFileItems, requiresForwardTypeConfirmation, resolveChannelAccess, resolveImEmojiToken, resolveMediaAlbumSendContentType, resolveSessionFavoriteAlbumCaption, resolveSessionFavoriteAlbumItemPreviewUrl, resolveSessionFavoriteKindFromMessage, resolveTextSegments, sortSessions, sumSessionsUnread, voiceErrorCodeOf };
6552
- export type { CapabilityAvailability, CapabilityDecision, CapabilityReason, ChannelAccessSnapshot, ChannelBaseSessionState, ChannelConversationCapabilities, ChannelConversationMessageApi, ChannelJoinApplication, ChannelJoinApplicationNotification, ChannelJoinApplicationPage, ChannelMember, ChannelMemberPage, ChannelMentionMember, ChannelMentionMemberPage, ChannelMiniProgramRel, ChannelMiniProgramRelConfigType, ChannelMuteReason, ChannelPermissionSet, ChannelProfile, ChannelRole, ChannelSessionState, ContactCardInput, ContactMessageOptions, ConversationBackgroundPreset, ConversationBackgroundSelection, ConversationCapabilitySnapshot, ConversationDraft, ConversationDraftApi, ConversationEntryUnreadNavigation, ConversationEntryUnreadSnapshot, ConversationHandle, ConversationHandleSnapshot, ConversationInitialPosition, ConversationLastMessageSummary, ConversationListItem, ConversationListMention, ConversationMessageApi, ConversationOpenOptions, ConversationPrefetchOptions, ConversationPrefetchResult, ConversationRef, ConversationSearchPage, ConversationSearchResult, ConversationSystemSummary, ConversationType, DirectConversationCapabilities, DirectConversationMessageApi, DraftInput, EditTextOptions, ExpressionMessageOptions, FileMessageOptions, ForwardFailReason, ForwardItemStatus, ForwardMessageFailure, ForwardMessagesInput, ForwardMessagesResult, ForwardTarget, ForwardedMessageRef, GameMessageOptions, GifMessageOptions, GiftMessageOptions, GroupConversationCapabilities, GroupConversationMessageApi, GroupMemberItem, GroupProfile, ImAppearanceSettingsApi, ImApplicationItem, ImApplicationRef, ImApplicationsApi, ImAuthIssue, ImAuthProvider, ImBlockedContact, ImCacheOptions, ImCachePrefixMigrationContext, ImCachePrefixMigrator, ImCallKind, ImCallOutcome, ImCallRecordBody, ImChannelConversationAccessSnapshot, ImChannelMentionApi, ImChannelMiniProgramRel, ImChannelPermissions, ImChannelPinnedMessage, ImChannelProfile, ImChannelRole, ImChannelState, ImChannelsApi, ImChatFontScale, ImClientOptions, ImConnectionState, ImContactBody, ImContactKind, ImContactProfile, ImContactRelationship, ImContactRemarkPhone, ImContactSearchResult, ImContactsApi, ImConversationBackgroundApi, ImConversationCapabilitiesApi, ImConversationListApi, ImConversationListSnapshot, ImConversationListState, ImConversationSearchApi, ImCoreApiOptions, ImCreateChannelInput, ImCreateChannelResult, ImCreateFaceToFaceGroupResult, ImCreateGroupInput, ImCreateGroupResult, ImCreatedChannel, ImCreatedGroup, ImDebugOptions, ImDiagnosticCategory, ImDiagnosticError, ImDiagnosticLayer, ImDiagnosticLevel, ImDiagnosticMemoryBuffer, ImDiagnosticMemoryBufferFilter, ImDiagnosticMemoryBufferOptions, ImDiagnosticMemoryBufferSnapshot, ImDiagnosticMessage, ImDiagnosticRecord, ImDiagnosticSink, ImDiagnosticWriter, ImDirectCallAnswerResult, ImDirectCallFailReason, ImDirectCallHangupInput, ImDirectCallHangupReason, ImDirectCallInviteInput, ImDirectCallNotifyAudioInput, ImDirectCallTargetInput, ImDirectCallsApi, ImDirectReadReceiptSettings, ImDirectoryApi, ImDirectoryFieldMatch, ImDirectoryItem, ImDirectoryKind, ImDirectoryPage, ImDirectorySearchApi, ImDirectorySearchItem, ImDirectorySearchResult, ImDraftsApi, ImEmojiCatalogEntry, ImEndpointProvider, ImEventsApi, ImExpressionAsset, ImExpressionAssetInput, ImExpressionEmojiRecentInput, ImExpressionFavoriteKind, ImExpressionOptions, ImExpressionRecentInput, ImExpressionRecentItem, ImExpressionRecentItemKind, ImExpressionsApi, ImFaceToFaceGroup, ImFileBody, ImFilesAlbumBody, ImFriendshipRequestResult, ImGameBody, ImGameType, ImGifAssetInput, ImGiftBody, ImGiftSessionType, ImGiftStatus, ImGiftType, ImGiphyAsset, ImGiphyPage, ImGiphyPageOptions, ImGroupCallAnswerInput, ImGroupCallBusyInput, ImGroupCallCreateInput, ImGroupCallJoinInput, ImGroupCallMeetingSnapshot, ImGroupCallMember, ImGroupCallMemberStatus, ImGroupCallStatusInput, ImGroupCallTargetInput, ImGroupCallsApi, ImGroupConversationState, ImGroupMentionApi, ImGroupPinnedMessage, ImGroupProfile, ImGroupsApi, ImImageBody, ImLifecycleSnapshot, ImLiveRoomBody, ImLiveRoomStatus, ImLiveRoomType, ImLocalDataApi, ImLocalDataInfo, ImLogoutOptions, ImMediaAlbumBody, ImMediaAlbumItem, ImMediaConfig, ImMediaTask, ImMediaTasksApi, ImMembershipJoinResult, ImMessageMention, ImMessageReactionAggregate, ImMessageReactions, ImMessageRef, ImMessageSearchApi, ImMessageView, ImMessageViewBody, ImMessagesByIdResult, ImMiniProgramBody, ImMiniProgramShowType, ImOutboxApi, ImOutboxItem, ImPageToken, ImPinnedMessageErrorKind, ImPinnedMessageOperation, ImProductApplicationUpdate, ImProductAuthInvalidReason, ImProductClient, ImProductEvent, ImProductEventError, ImProductEventMap, ImProductMessage, ImPushApi, ImPushSnapshot, ImReactionChangeAction, ImReactionChangeResult, ImReadReceiptSettingsApi, ImRedPacketBody, ImRedPacketType, ImRequestError, ImRequestErrorHandler, ImResourceKind, ImResourceUploadInput, ImResourceUploadProgress, ImResourceUploadResult, ImResourceUploader, ImResourceUploaderConfig, ImRobotBody, ImRobotChatMenuItem, ImRobotCommand, ImRobotConversationBindInput, ImRobotDirectoryItem, ImRobotDirectoryPage, ImRobotDirectoryScope, ImRobotMenuReplyInput, ImRobotModule, ImRobotProfile, ImRobotProfileInput, ImRobotsApi, ImSdkErrorCategory, ImSdkErrorShape, ImSearchApi, ImSessionApi, ImSessionFavoriteAlbumItem, ImSessionFavoriteFileItem, ImSessionFavoriteItem, ImSessionFavoriteKind, ImSessionFavoritesApi, ImSessionLifecycleState, ImSettingsApi, ImStickerAssetInput, ImStickerBody, ImStickerPack, ImSupportedConversationRef, ImTextSearchMatch, ImTextSearchMatchOptions, ImTextSearchMatcher, ImTextSearchRange, ImTransferBody, ImTransferSessionType, ImTransferStatus, ImVideoBody, ImVoiceBody, ImWebPushSubscription, ImageMessageOptions, ImagePreviewMetadata, LiveRoomMessageOptions, LocalConversationHistoryClearResult, LocalMessageDeletionResult, LocalVideoPreviewMetadata, MediaAlbumItemInput, MediaAlbumMessageOptions, MediaTransferErrorCode, MediaUploadCredentials, MediaUploadCredentialsProvider, MediaUploadCredentialsRequest, MentionCandidate, MentionCandidatePage, MentionInput, MessageContentType, MessageWindowInfo, MessageWindowPage, MessagesByIdFailure, MigrateImCachePrefixInput, MiniProgramMessageOptions, ProductConversationListType, ProductHandleConversationType, ProductMessageSearchPage, ProductMessageSearchPreviewPart, ProductMessageSearchResult, ResolveTextOptions, ResolvedConversationBackground, RobotConversationCapabilities, SegmentMatch, SegmentMatcher, SendMessageResult, StickerAssetKind, TextMessageOptions, TextSegment, TransferMessageOptions, UnknownMessageBody, UserProfile, VideoMessageOptions, VideoPreviewMetadata, VoiceCapabilities, VoiceErrorCode, VoiceMessageMetadata, VoicePlayer, VoicePlayerOptions, VoicePlayerState, VoiceRecordingResult, VoiceRecordingSession, VoiceRecordingSessionOptions, VoiceRecordingState, VoiceToggleOptions };
6611
+ export type { CapabilityAvailability, CapabilityDecision, CapabilityReason, ChannelAccessSnapshot, ChannelBaseSessionState, ChannelConversationCapabilities, ChannelConversationMessageApi, ChannelJoinApplication, ChannelJoinApplicationNotification, ChannelJoinApplicationPage, ChannelMember, ChannelMemberPage, ChannelMentionMember, ChannelMentionMemberPage, ChannelMiniProgramRel, ChannelMiniProgramRelConfigType, ChannelMuteReason, ChannelPermissionSet, ChannelProfile, ChannelRole, ChannelSessionState, ContactCardInput, ContactMessageOptions, ConversationBackgroundPreset, ConversationBackgroundSelection, ConversationCapabilitySnapshot, ConversationDraft, ConversationDraftApi, ConversationEntryUnreadNavigation, ConversationEntryUnreadSnapshot, ConversationHandle, ConversationHandleSnapshot, ConversationInitialPosition, ConversationLastMessageSummary, ConversationListItem, ConversationListMention, ConversationMessageApi, ConversationOpenOptions, ConversationPrefetchOptions, ConversationPrefetchResult, ConversationRef, ConversationSearchPage, ConversationSearchResult, ConversationSystemSummary, ConversationType, CustomerServiceConversationCapabilities, DirectConversationCapabilities, DirectConversationMessageApi, DraftInput, EditTextOptions, ExpressionMessageOptions, FileMessageOptions, ForwardFailReason, ForwardItemStatus, ForwardMessageFailure, ForwardMessagesInput, ForwardMessagesResult, ForwardTarget, ForwardedMessageRef, GameMessageOptions, GifMessageOptions, GiftMessageOptions, GroupConversationCapabilities, GroupConversationMessageApi, GroupMemberItem, GroupProfile, ImAppearanceSettingsApi, ImApplicationItem, ImApplicationRef, ImApplicationsApi, ImAuthIssue, ImAuthProvider, ImBlockedContact, ImCacheOptions, ImCachePrefixMigrationContext, ImCachePrefixMigrator, ImCallKind, ImCallOutcome, ImCallRecordBody, ImChannelConversationAccessSnapshot, ImChannelMentionApi, ImChannelMiniProgramRel, ImChannelPermissions, ImChannelPinnedMessage, ImChannelProfile, ImChannelRole, ImChannelState, ImChannelsApi, ImChatFontScale, ImClientOptions, ImConnectionState, ImContactBody, ImContactKind, ImContactProfile, ImContactRelationship, ImContactRemarkPhone, ImContactSearchResult, ImContactsApi, ImConversationBackgroundApi, ImConversationCapabilitiesApi, ImConversationListApi, ImConversationListSnapshot, ImConversationListState, ImConversationSearchApi, ImCoreApiOptions, ImCreateChannelInput, ImCreateChannelResult, ImCreateFaceToFaceGroupResult, ImCreateGroupInput, ImCreateGroupResult, ImCreatedChannel, ImCreatedGroup, ImCustomerServiceApi, ImDebugOptions, ImDiagnosticCategory, ImDiagnosticError, ImDiagnosticLayer, ImDiagnosticLevel, ImDiagnosticMemoryBuffer, ImDiagnosticMemoryBufferFilter, ImDiagnosticMemoryBufferOptions, ImDiagnosticMemoryBufferSnapshot, ImDiagnosticMessage, ImDiagnosticRecord, ImDiagnosticSink, ImDiagnosticWriter, ImDirectCallAnswerResult, ImDirectCallFailReason, ImDirectCallHangupInput, ImDirectCallHangupReason, ImDirectCallInviteInput, ImDirectCallNotifyAudioInput, ImDirectCallTargetInput, ImDirectCallsApi, ImDirectReadReceiptSettings, ImDirectoryApi, ImDirectoryFieldMatch, ImDirectoryItem, ImDirectoryKind, ImDirectoryPage, ImDirectorySearchApi, ImDirectorySearchItem, ImDirectorySearchResult, ImDraftsApi, ImEmojiCatalogEntry, ImEndpointProvider, ImEventsApi, ImExpressionAsset, ImExpressionAssetInput, ImExpressionEmojiRecentInput, ImExpressionFavoriteKind, ImExpressionOptions, ImExpressionRecentInput, ImExpressionRecentItem, ImExpressionRecentItemKind, ImExpressionsApi, ImFaceToFaceGroup, ImFileBody, ImFilesAlbumBody, ImFriendshipRequestResult, ImGameBody, ImGameType, ImGifAssetInput, ImGiftBody, ImGiftSessionType, ImGiftStatus, ImGiftType, ImGiphyAsset, ImGiphyPage, ImGiphyPageOptions, ImGroupCallAnswerInput, ImGroupCallBusyInput, ImGroupCallCreateInput, ImGroupCallJoinInput, ImGroupCallMeetingSnapshot, ImGroupCallMember, ImGroupCallMemberStatus, ImGroupCallStatusInput, ImGroupCallTargetInput, ImGroupCallsApi, ImGroupConversationState, ImGroupMentionApi, ImGroupPinnedMessage, ImGroupProfile, ImGroupsApi, ImImageBody, ImLifecycleSnapshot, ImLiveRoomBody, ImLiveRoomStatus, ImLiveRoomType, ImLocalDataApi, ImLocalDataInfo, ImLogoutOptions, ImMediaAlbumBody, ImMediaAlbumItem, ImMediaConfig, ImMediaTask, ImMediaTasksApi, ImMembershipJoinResult, ImMessageMention, ImMessageReactionAggregate, ImMessageReactions, ImMessageRef, ImMessageSearchApi, ImMessageView, ImMessageViewBody, ImMessagesByIdResult, ImMiniProgramBody, ImMiniProgramShowType, ImOutboxApi, ImOutboxItem, ImPageToken, ImPinnedMessageErrorKind, ImPinnedMessageOperation, ImProductApplicationUpdate, ImProductAuthInvalidReason, ImProductClient, ImProductEvent, ImProductEventError, ImProductEventMap, ImProductMessage, ImPushApi, ImPushSnapshot, ImReactionChangeAction, ImReactionChangeResult, ImReadReceiptSettingsApi, ImRedPacketBody, ImRedPacketType, ImRequestError, ImRequestErrorHandler, ImResourceKind, ImResourceUploadInput, ImResourceUploadProgress, ImResourceUploadResult, ImResourceUploader, ImResourceUploaderConfig, ImRobotBody, ImRobotChatMenuItem, ImRobotCommand, ImRobotConversationBindInput, ImRobotDirectoryItem, ImRobotDirectoryPage, ImRobotDirectoryScope, ImRobotMenuReplyInput, ImRobotModule, ImRobotProfile, ImRobotProfileInput, ImRobotsApi, ImSdkErrorCategory, ImSdkErrorShape, ImSearchApi, ImSessionApi, ImSessionFavoriteAlbumItem, ImSessionFavoriteFileItem, ImSessionFavoriteItem, ImSessionFavoriteKind, ImSessionFavoritesApi, ImSessionLifecycleState, ImSettingsApi, ImStickerAssetInput, ImStickerBody, ImStickerPack, ImSupportedConversationRef, ImTextSearchMatch, ImTextSearchMatchOptions, ImTextSearchMatcher, ImTextSearchRange, ImTransferBody, ImTransferSessionType, ImTransferStatus, ImVideoBody, ImVoiceBody, ImWebPushSubscription, ImageMessageOptions, ImagePreviewMetadata, LiveRoomMessageOptions, LocalConversationHistoryClearResult, LocalMessageDeletionResult, LocalVideoPreviewMetadata, MediaAlbumItemInput, MediaAlbumMessageOptions, MediaTransferErrorCode, MediaUploadCredentials, MediaUploadCredentialsProvider, MediaUploadCredentialsRequest, MentionCandidate, MentionCandidatePage, MentionInput, MessageContentType, MessageWindowInfo, MessageWindowPage, MessagesByIdFailure, MigrateImCachePrefixInput, MiniProgramMessageOptions, ProductConversationListType, ProductHandleConversationType, ProductMessageSearchPage, ProductMessageSearchPreviewPart, ProductMessageSearchResult, ResolveTextOptions, ResolvedConversationBackground, RobotConversationCapabilities, SegmentMatch, SegmentMatcher, SendMessageResult, StickerAssetKind, TextMessageOptions, TextSegment, TransferMessageOptions, UnknownMessageBody, UserProfile, VideoMessageOptions, VideoPreviewMetadata, VoiceCapabilities, VoiceErrorCode, VoiceMessageMetadata, VoicePlayer, VoicePlayerOptions, VoicePlayerState, VoiceRecordingResult, VoiceRecordingSession, VoiceRecordingSessionOptions, VoiceRecordingState, VoiceToggleOptions };