k2-im 0.1.29 → 0.1.31
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.
- package/dist/browser.js +1 -1
- package/dist/chat-kit-pinia.d.ts +217 -22
- package/dist/chat-kit-pinia.js +1 -1
- package/dist/chat-kit-vue.d.ts +69 -14
- package/dist/chat-kit-vue.js +1 -1
- package/dist/chat-kit.d.ts +312 -24
- package/dist/chat-kit.js +1 -1
- package/dist/chunk-7463JUEH.js +2 -0
- package/dist/chunk-CIY4WBFJ.js +2 -0
- package/dist/chunk-MKKCUSUP.js +1 -0
- package/dist/chunk-O23EXDM5.js +2 -0
- package/dist/chunk-PJVCTNC5.js +1 -0
- package/dist/chunk-SMWPQSGR.js +7 -0
- package/dist/chunk-UFGEIUBV.js +1 -0
- package/dist/i18n.d.ts +56 -7
- package/dist/i18n.js +1 -1
- package/dist/index.d.ts +318 -25
- package/dist/index.js +1 -1
- package/dist/sdk.d.ts +169 -19
- package/dist/sdk.js +1 -1
- package/package.json +1 -1
- package/dist/chunk-AFLOPH2O.js +0 -1
- package/dist/chunk-AULYARAI.js +0 -2
- package/dist/chunk-BZFBUHDE.js +0 -1
- package/dist/chunk-HZD2QAZB.js +0 -2
- package/dist/chunk-R6BJQWPW.js +0 -1
- package/dist/chunk-TKWU3IO7.js +0 -7
- package/dist/chunk-XICYFDN4.js +0 -2
package/dist/chat-kit.d.ts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
/** 媒体业务类型:实现据此选对象存储逻辑桶;sticker 对应 app-sticker。 */
|
|
2
2
|
type MediaKind = 'image' | 'video' | 'voice' | 'file' | 'sticker';
|
|
3
3
|
|
|
4
|
-
/** 会话类型。P0 只用 direct / group。 */
|
|
5
|
-
type ConversationType = 'direct' | 'group' | 'channel' | 'supergroup';
|
|
4
|
+
/** 会话类型。P0 只用 direct / group;`robot` 是独立私聊 sibling,不得并入 direct。 */
|
|
5
|
+
type ConversationType = 'direct' | 'group' | 'channel' | 'supergroup' | 'robot';
|
|
6
6
|
/**
|
|
7
7
|
* 会话复合身份;`conversationId` 只在对应 `conversationType` 的领域内唯一。
|
|
8
8
|
*
|
|
@@ -39,8 +39,8 @@ interface ConversationDraft$1 {
|
|
|
39
39
|
attachments: readonly [];
|
|
40
40
|
updatedAt: number;
|
|
41
41
|
}
|
|
42
|
-
/** 消息内容类型。sticker=表情/贴图(BMessage contentType=7);call=单聊通话记录(contentType=10);transfer=转账(contentType=16);robot=机器人卡片(contentType=18);miniProgram=小程序分享卡(contentType=22);redPacket=红包卡(contentType=25);game=小游戏(contentType=27);未知 wire 正文统一归一为 unknown。 */
|
|
43
|
-
type MessageContentType = 'text' | 'system' | 'image' | 'video' | 'voice' | 'file' | 'sticker' | 'contact' | 'miniProgram' | 'game' | 'transfer' | 'call' | 'redPacket' | 'mediaAlbum' | 'robot' | 'unknown';
|
|
42
|
+
/** 消息内容类型。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);未知 wire 正文统一归一为 unknown。 */
|
|
43
|
+
type MessageContentType = 'text' | 'system' | 'image' | 'video' | 'voice' | 'file' | 'sticker' | 'contact' | 'miniProgram' | 'game' | 'transfer' | 'gift' | 'call' | 'redPacket' | 'mediaAlbum' | 'robot' | 'unknown';
|
|
44
44
|
/**
|
|
45
45
|
* 发送态(客户端态):消息从本地创建到服务端确认的生命周期。
|
|
46
46
|
* `uploading` 仅媒体消息使用:文件上传阶段(uploading→pending→sending→sent);
|
|
@@ -109,6 +109,8 @@ type LastMessageSummary = {
|
|
|
109
109
|
gameType: ImGameType;
|
|
110
110
|
} | {
|
|
111
111
|
kind: 'transfer';
|
|
112
|
+
} | {
|
|
113
|
+
kind: 'gift';
|
|
112
114
|
} | {
|
|
113
115
|
kind: 'call';
|
|
114
116
|
callKind: ImCallKind;
|
|
@@ -308,13 +310,14 @@ type ImGameBody = {
|
|
|
308
310
|
* - `default`:0,普通可点卡片
|
|
309
311
|
* - `board-game`:1,棋牌样式且不可点
|
|
310
312
|
* - `board-game-link`:2,棋牌样式且可点
|
|
313
|
+
* - `game-preview`:3,气泡内嵌游戏预览 WebView
|
|
311
314
|
* - `unknown`:必须同时保留 `rawShowType`,不得猜成可点/不可点
|
|
312
315
|
*/
|
|
313
|
-
type ImMiniProgramShowType = 'default' | 'board-game' | 'board-game-link' | 'unknown';
|
|
316
|
+
type ImMiniProgramShowType = 'default' | 'board-game' | 'board-game-link' | 'game-preview' | 'unknown';
|
|
314
317
|
/**
|
|
315
318
|
* 小程序分享卡片正文(contentType==='miniProgram',协议 BMessage.contentType=22)。
|
|
316
319
|
*
|
|
317
|
-
* @remarks 字段来自 iOS `IMMiniProgramMessageBody` / proto 61-67、80-82、90-
|
|
320
|
+
* @remarks 字段来自 iOS `IMMiniProgramMessageBody` / proto 61-67、80-82、90-96。
|
|
318
321
|
* `currencySource` 对应 proto field 90(无 miniProgram 前缀):`xj` 现金公司、`xy` 信用公司。
|
|
319
322
|
* `subGameName` 保持服务端 JSON 字符串,不在 Core 解析语种表。打开小程序与 X 币/信用 ID 属于宿主,不进本 DTO。
|
|
320
323
|
*/
|
|
@@ -338,6 +341,12 @@ interface ImMiniProgramBody {
|
|
|
338
341
|
gamePath?: string;
|
|
339
342
|
/** 多语言子游戏名 JSON 字符串,例如 `{"ch":"...","en":"..."}`。 */
|
|
340
343
|
subGameName?: string;
|
|
344
|
+
/** 游戏预览页地址(BMessage.miniProgramGamePreviewUrl,showType=3)。 */
|
|
345
|
+
gamePreviewUrl?: string;
|
|
346
|
+
/** 游戏预览设计宽(BMessage.miniProgramGamePreviewWidth)。 */
|
|
347
|
+
gamePreviewWidth?: number;
|
|
348
|
+
/** 游戏预览设计高(BMessage.miniProgramGamePreviewHeight)。 */
|
|
349
|
+
gamePreviewHeight?: number;
|
|
341
350
|
}
|
|
342
351
|
/**
|
|
343
352
|
* 机器人卡片文本模块(wire `section`)。
|
|
@@ -416,6 +425,40 @@ interface ImTransferBody {
|
|
|
416
425
|
coinName?: string;
|
|
417
426
|
coinIcon?: string;
|
|
418
427
|
}
|
|
428
|
+
/** 礼品类型。协议注释为刮刮卡 1 / 奖品 2;Android 当前会把 WelfareGiftType=0 写进消息,入站必须接受 0。 */
|
|
429
|
+
type ImGiftType = 0 | 1 | 2;
|
|
430
|
+
/** 礼品状态。0 待领取 / 1 已收款 / 2 已退还 / 3 已过期(对齐 iOS IMGiftMessageBody)。 */
|
|
431
|
+
type ImGiftStatus = 0 | 1 | 2 | 3;
|
|
432
|
+
/** 礼品会话类型。1 个人 / 2 群(BMessage.sessionType)。 */
|
|
433
|
+
type ImGiftSessionType = 1 | 2;
|
|
434
|
+
/**
|
|
435
|
+
* 礼品卡片正文(contentType==='gift',协议 BMessage.contentType=17)。
|
|
436
|
+
*
|
|
437
|
+
* @remarks 字段来自 iOS `IMGiftMessageBody` / proto 51-59,并复用转账字段族的 fromUid/toUid/serialNumber。
|
|
438
|
+
* 赠卡 HTTP 属于宿主;本 DTO 只承载会话卡片。H5 出站刮刮卡写 giftType=1。
|
|
439
|
+
*/
|
|
440
|
+
interface ImGiftBody {
|
|
441
|
+
fromUid: string;
|
|
442
|
+
toUid: string;
|
|
443
|
+
fromUserName?: string;
|
|
444
|
+
toUserName?: string;
|
|
445
|
+
giftType: ImGiftType;
|
|
446
|
+
giftName: string;
|
|
447
|
+
giftIcon?: string;
|
|
448
|
+
explain?: string;
|
|
449
|
+
state: ImGiftStatus;
|
|
450
|
+
serialNumber: string;
|
|
451
|
+
sessionType: ImGiftSessionType;
|
|
452
|
+
initiateTime: number;
|
|
453
|
+
/** 单张金额的十进制字符串;0 或缺省表示未带金额。 */
|
|
454
|
+
amount?: string;
|
|
455
|
+
receiveTime?: number;
|
|
456
|
+
returnTime?: number;
|
|
457
|
+
isRead?: boolean;
|
|
458
|
+
zhangCount?: string;
|
|
459
|
+
benCount?: string;
|
|
460
|
+
fissionNumber?: string;
|
|
461
|
+
}
|
|
419
462
|
/** 领域通话媒体类型;已从各端 wire 0/1 对调口径归一,宿主禁止再读 raw callType。 */
|
|
420
463
|
type ImCallKind = 'audio' | 'video';
|
|
421
464
|
/**
|
|
@@ -574,6 +617,8 @@ interface ImMessageBody {
|
|
|
574
617
|
game?: ImGameBody;
|
|
575
618
|
/** contentType==='transfer' 时的转账卡片。 */
|
|
576
619
|
transfer?: ImTransferBody;
|
|
620
|
+
/** contentType==='gift' 时的礼品/刮刮卡卡片。 */
|
|
621
|
+
gift?: ImGiftBody;
|
|
577
622
|
/** contentType==='call' 时的单聊通话记录。 */
|
|
578
623
|
call?: ImCallRecordBody;
|
|
579
624
|
/** contentType==='redPacket' 时的红包卡片。 */
|
|
@@ -962,7 +1007,7 @@ interface OutboxMessage {
|
|
|
962
1007
|
resumePolicy?: 'automatic' | 'manual';
|
|
963
1008
|
}
|
|
964
1009
|
/** 当前 SDK 已注册发送策略、因此可作为转发目标的会话类型;supergroup 未注册,继续在编译期排除。 */
|
|
965
|
-
type ForwardTargetConversationType = Extract<ConversationType, 'direct' | 'group' | 'channel'>;
|
|
1010
|
+
type ForwardTargetConversationType = Extract<ConversationType, 'direct' | 'group' | 'channel' | 'robot'>;
|
|
966
1011
|
/** 转发目标会话;运行时仍由 SendStrategyRegistry 复核,避免类型声明与实际装配漂移。 */
|
|
967
1012
|
interface ForwardTarget {
|
|
968
1013
|
conversationId: string;
|
|
@@ -1849,6 +1894,44 @@ interface ImSessionFavoritePort {
|
|
|
1849
1894
|
delete: (collectIds: readonly string[]) => Promise<void>;
|
|
1850
1895
|
}
|
|
1851
1896
|
|
|
1897
|
+
/**
|
|
1898
|
+
* SDK 已取得的最近一页请求结果;只是可重建缓存,不代表消息已进入 DomainState 或处理过入站副作用。
|
|
1899
|
+
* 消息、Reaction 与分页边界必须整页原子保存,只有前台实际消费时才进入正常消息流程。
|
|
1900
|
+
*/
|
|
1901
|
+
interface ImRecentHistoryPage {
|
|
1902
|
+
/**
|
|
1903
|
+
* 缓存记录格式版本;不认识的版本不能当作有效页使用。
|
|
1904
|
+
* v2:小程序 showType=3 / proto 94-96 进入领域正文,旧页必须重新拉网解析。
|
|
1905
|
+
*/
|
|
1906
|
+
version: 2;
|
|
1907
|
+
/** 当前账号内的精确 GROUP/CHANNEL 会话;direct 没有此远端最近页能力。 */
|
|
1908
|
+
conversation: ConversationRef<'group' | 'channel'>;
|
|
1909
|
+
/** 成功获取页面的毫秒时间,用于保留期限和按获取时间淘汰。 */
|
|
1910
|
+
fetchedAt: number;
|
|
1911
|
+
/** SDK 生成的请求与会话状态指纹;存储层不解释其内容。 */
|
|
1912
|
+
fingerprint: string;
|
|
1913
|
+
/** 已净化的消息事实,缓存保存不得发布消息或已读事件。 */
|
|
1914
|
+
messages: readonly ImMessage[];
|
|
1915
|
+
/** 解码时暂存的 Reaction 事实,预取阶段不得提前应用。 */
|
|
1916
|
+
reactions: readonly ImReactionEvent[];
|
|
1917
|
+
/** 服务端是否明确没有更早一页,空页也保留这一结果。 */
|
|
1918
|
+
exhausted: boolean;
|
|
1919
|
+
/** 服务端返回的向旧游标,存储层仅原样保存。 */
|
|
1920
|
+
nextCursor?: string;
|
|
1921
|
+
/** SDK 按净化后的整页计算的字节数,用于存储预算。 */
|
|
1922
|
+
byteLength: number;
|
|
1923
|
+
}
|
|
1924
|
+
/** 账号隔离的最近页缓存;过期、淘汰或清理后重新请求即可,不影响消息真相。 */
|
|
1925
|
+
interface ImRecentHistoryCachePort {
|
|
1926
|
+
/** 读取精确会话的整页;不存在或超过保留期限时返回 null。 */
|
|
1927
|
+
get: (conversation: ConversationRef<'group' | 'channel'>) => Promise<ImRecentHistoryPage | null>;
|
|
1928
|
+
/** 原子保存整页;仅 durable 事务提交后返回 true,预算或保留期限不允许时返回 false。 */
|
|
1929
|
+
put: (page: ImRecentHistoryPage) => Promise<boolean>;
|
|
1930
|
+
/** 删除精确会话的缓存页,不删除正常历史或会话。 */
|
|
1931
|
+
delete: (conversation: ConversationRef<'group' | 'channel'>) => Promise<void>;
|
|
1932
|
+
/** 清空当前账号的最近页缓存。 */
|
|
1933
|
+
clear: () => Promise<void>;
|
|
1934
|
+
}
|
|
1852
1935
|
/** 迁移期存储会话入参;新代码使用 ref,string 仅兼容唯一命中的旧调用。 */
|
|
1853
1936
|
type ImStorageConversation = ConversationRef | string;
|
|
1854
1937
|
/** 打开账号库的选项。namespace = 账号隔离键(登录 userId)。 */
|
|
@@ -1997,6 +2080,8 @@ type StoredConversationBackground = {
|
|
|
1997
2080
|
* 失败经 `error` 事件(scope:'storage')暴露、不静默吞、不阻塞内存主流程。
|
|
1998
2081
|
*/
|
|
1999
2082
|
interface ImStoragePort {
|
|
2083
|
+
/** 可选的最近页持久缓存;缺少该能力时 SDK 必须明确跳过持久预取。 */
|
|
2084
|
+
recentHistoryCache?: ImRecentHistoryCachePort;
|
|
2000
2085
|
/** 打开/创建账号库并跑迁移(幂等)。open 前的读写应视为未就绪并抛错(不静默兜底)。 */
|
|
2001
2086
|
open: (options: ImStorageOpenOptions) => Promise<void>;
|
|
2002
2087
|
/** 关闭库句柄(登出/切账号)。 */
|
|
@@ -2158,6 +2243,10 @@ interface ImStoragePort {
|
|
|
2158
2243
|
type ImEvent = {
|
|
2159
2244
|
type: 'connection:changed';
|
|
2160
2245
|
state: ImConnectionState;
|
|
2246
|
+
}
|
|
2247
|
+
/** 同账号已由另一个浏览器页面接管;本页会话不可复用,但宿主登录仍有效。 */
|
|
2248
|
+
| {
|
|
2249
|
+
type: 'session:replaced';
|
|
2161
2250
|
} | {
|
|
2162
2251
|
type: 'message:received';
|
|
2163
2252
|
message: ImMessage;
|
|
@@ -2869,10 +2958,11 @@ interface MediaTransferAdapterConfig {
|
|
|
2869
2958
|
*/
|
|
2870
2959
|
rangeDownload?: boolean;
|
|
2871
2960
|
/**
|
|
2872
|
-
* 媒体发送阶段的并发上限;由 im-core
|
|
2961
|
+
* 媒体发送阶段的并发上限;由 im-core 消费,限制媒体任务数而非分片请求数。
|
|
2873
2962
|
*
|
|
2874
|
-
*
|
|
2875
|
-
* 缺省 5
|
|
2963
|
+
* 并发按媒体体积分两档:不超过分片阈值(16 MiB)的非视频媒体走小文件档,
|
|
2964
|
+
* 缺省 5;视频与超过阈值(或字节数未知)的内容走大文件档,缺省 3。
|
|
2965
|
+
* 分档只限制媒体任务数;实际 PUT/UploadPart 另受 adapter 的六路数据请求限制。
|
|
2876
2966
|
* 两档都只接受 1-6 的整数,超出范围由 core 显式报错。
|
|
2877
2967
|
* - 传一个数字:所有媒体共用这一个并发数,与分档前的语义一致。
|
|
2878
2968
|
* - 传 `{ total, largeFiles }`:显式分档,`largeFiles` 不得超过 `total`。
|
|
@@ -2921,8 +3011,8 @@ interface IndexedDbStorageAdapterOptions {
|
|
|
2921
3011
|
maxPendingWriteBytes?: number;
|
|
2922
3012
|
};
|
|
2923
3013
|
}
|
|
2924
|
-
/** 官方浏览器 adapter
|
|
2925
|
-
type IndexedDbStorageAdapter = ImStoragePort & MediaAssetCachePort & Required<Pick<ImStoragePort, 'getConversationBackground' | 'saveConversationBackground' | 'deleteConversationBackground' | 'getDefaultConversationBackground' | 'saveDefaultConversationBackground' | 'deleteDefaultConversationBackground'>>;
|
|
3014
|
+
/** 官方浏览器 adapter 始终提供背景和最近历史缓存;可选只存在于通用 `ImStoragePort` 兼容边界。 */
|
|
3015
|
+
type IndexedDbStorageAdapter = ImStoragePort & MediaAssetCachePort & Required<Pick<ImStoragePort, 'getConversationBackground' | 'recentHistoryCache' | 'saveConversationBackground' | 'deleteConversationBackground' | 'getDefaultConversationBackground' | 'saveDefaultConversationBackground' | 'deleteDefaultConversationBackground'>>;
|
|
2926
3016
|
/**
|
|
2927
3017
|
* 创建 IndexedDB 存储 adapter(实现 ImStoragePort)。
|
|
2928
3018
|
* 生命周期:先 `open({ namespace })`(幂等,跑 schema 迁移),再读写;`close()` 释放句柄。
|
|
@@ -3113,6 +3203,10 @@ interface MiniProgramMessageOptions {
|
|
|
3113
3203
|
interface TransferMessageOptions {
|
|
3114
3204
|
replyToMessageId?: string;
|
|
3115
3205
|
}
|
|
3206
|
+
/** 礼品卡片发送选项;正文必须已含福利中心赠送后的流水号与卡面。 */
|
|
3207
|
+
interface GiftMessageOptions {
|
|
3208
|
+
replyToMessageId?: string;
|
|
3209
|
+
}
|
|
3116
3210
|
/**
|
|
3117
3211
|
* 媒体合集里的一项:一张图片或一个视频。
|
|
3118
3212
|
*
|
|
@@ -3524,6 +3618,21 @@ interface ImContactApi extends ImDirectoryApi<'individual'> {
|
|
|
3524
3618
|
deleteFriendship: (userId: string) => Promise<void>;
|
|
3525
3619
|
}
|
|
3526
3620
|
|
|
3621
|
+
/** 后台最近页预取的取消条件;取消不影响正在复用同一请求的前台会话。 */
|
|
3622
|
+
interface ConversationPrefetchOptions {
|
|
3623
|
+
signal?: AbortSignal;
|
|
3624
|
+
}
|
|
3625
|
+
/**
|
|
3626
|
+
* 单个会话的后台预取结果。ready 只在完整页面已写入当前账号缓存后返回。
|
|
3627
|
+
* skipped 表示当前类型、权限、存储或预算不允许预取;失败不改变正常打开会话的行为。
|
|
3628
|
+
*/
|
|
3629
|
+
interface ConversationPrefetchResult {
|
|
3630
|
+
ref: ConversationRef<'direct' | 'group' | 'channel' | 'robot'>;
|
|
3631
|
+
status: 'ready' | 'skipped' | 'failed' | 'cancelled';
|
|
3632
|
+
reason?: 'unsupported' | 'unavailable' | 'storage-unavailable' | 'budget' | 'page-too-large' | 'decrypt-failed' | 'invalidated' | 'cancelled';
|
|
3633
|
+
error?: ImSdkErrorShape;
|
|
3634
|
+
}
|
|
3635
|
+
|
|
3527
3636
|
/**
|
|
3528
3637
|
* 当前账号草稿的产品 DTO、跨组件 API 与 handle 绑定门面。
|
|
3529
3638
|
* 草稿按复合会话身份串行持久化,SDK DomainState 是唯一真相;附件尚未闭合时非空输入明确拒绝。
|
|
@@ -3561,7 +3670,7 @@ interface ConversationDraftApi {
|
|
|
3561
3670
|
subscribe: (listener: (draft: ConversationDraft | null) => void) => () => void;
|
|
3562
3671
|
}
|
|
3563
3672
|
/**
|
|
3564
|
-
* 当前账号的跨组件草稿 API;所有动作都要求 direct/GROUP/CHANNEL 精确复合身份。
|
|
3673
|
+
* 当前账号的跨组件草稿 API;所有动作都要求 direct / GROUP / CHANNEL / robot 精确复合身份。
|
|
3565
3674
|
*
|
|
3566
3675
|
* @example
|
|
3567
3676
|
* ```ts
|
|
@@ -3585,11 +3694,11 @@ interface ImDraftsApi {
|
|
|
3585
3694
|
|
|
3586
3695
|
/**
|
|
3587
3696
|
* SDK 会话列表内部 sibling 路由与会话级写动作。
|
|
3588
|
-
* 置顶、免打扰、已读和本地删除都要求精确 `ConversationRef`,并按 direct/GROUP/CHANNEL 独立协议分流。
|
|
3697
|
+
* 置顶、免打扰、已读和本地删除都要求精确 `ConversationRef`,并按 direct/GROUP/CHANNEL/robot 独立协议分流。
|
|
3589
3698
|
*/
|
|
3590
3699
|
|
|
3591
3700
|
/** 当前兼容门面支持的精确会话 ref。 */
|
|
3592
|
-
type ImSupportedConversationRef = ConversationRef<'direct' | 'group' | 'channel'>;
|
|
3701
|
+
type ImSupportedConversationRef = ConversationRef<'direct' | 'group' | 'channel' | 'robot'>;
|
|
3593
3702
|
/**
|
|
3594
3703
|
* 会话 API 的迁移期入参。优先传完整 ref;旧 string 仅在当前 session 中唯一命中时可用。
|
|
3595
3704
|
*
|
|
@@ -3613,6 +3722,8 @@ interface ImConversationsApi {
|
|
|
3613
3722
|
pullOffline: () => Promise<ImMessage[]>;
|
|
3614
3723
|
/** 运行 direct/GROUP/CHANNEL sibling 离线同步。 */
|
|
3615
3724
|
sync: () => Promise<void>;
|
|
3725
|
+
/** 静默准备最近页;结果成功表示当前账号缓存事务已提交。 */
|
|
3726
|
+
prefetchRecent: (refs: readonly ImSupportedConversationRef[], options?: ConversationPrefetchOptions) => Promise<readonly ConversationPrefetchResult[]>;
|
|
3616
3727
|
/** 聚合总未读;默认排除 muted 会话。 */
|
|
3617
3728
|
getTotalUnread: (options?: {
|
|
3618
3729
|
includeMuted?: boolean;
|
|
@@ -3986,7 +4097,7 @@ interface ImDirectCallsApi {
|
|
|
3986
4097
|
* Blob 只经 storage 持久化。异步读取使用运行时代际防止切会话/切账号晚返回,宿主负责最终渲染与 URL 释放。
|
|
3987
4098
|
*/
|
|
3988
4099
|
|
|
3989
|
-
type ConversationBackgroundConversationType = 'direct' | 'group' | 'channel';
|
|
4100
|
+
type ConversationBackgroundConversationType = 'direct' | 'group' | 'channel' | 'robot';
|
|
3990
4101
|
interface ConversationBackgroundPreset {
|
|
3991
4102
|
id: string;
|
|
3992
4103
|
url: string;
|
|
@@ -4148,7 +4259,7 @@ interface ImChannelProfile {
|
|
|
4148
4259
|
*/
|
|
4149
4260
|
|
|
4150
4261
|
/** default 会话列表支持的精确类型;`supergroup` 继续受产品 Gate 约束。 */
|
|
4151
|
-
type ProductConversationListType = 'direct' | 'group' | 'channel';
|
|
4262
|
+
type ProductConversationListType = 'direct' | 'group' | 'channel' | 'robot';
|
|
4152
4263
|
/** GROUP 会话限制状态;与 CHANNEL 状态保持独立 sibling。 */
|
|
4153
4264
|
type ImGroupConversationState = GroupSessionState;
|
|
4154
4265
|
/**
|
|
@@ -4207,6 +4318,8 @@ type ConversationLastMessageSummary = {
|
|
|
4207
4318
|
kind: 'robot';
|
|
4208
4319
|
} | {
|
|
4209
4320
|
kind: 'transfer';
|
|
4321
|
+
} | {
|
|
4322
|
+
kind: 'gift';
|
|
4210
4323
|
} | {
|
|
4211
4324
|
kind: 'redPacket';
|
|
4212
4325
|
} | {
|
|
@@ -4320,6 +4433,8 @@ interface ImConversationListApi extends ImConversationBackgroundApi {
|
|
|
4320
4433
|
subscribe: (listener: (snapshot: ImConversationListSnapshot) => void) => () => void;
|
|
4321
4434
|
/** 显式运行 direct/GROUP/CHANNEL sibling 同步;失败抛稳定产品错误并进入 error 快照。 */
|
|
4322
4435
|
refresh: () => Promise<void>;
|
|
4436
|
+
/** 静默预取各会话最近一页;不激活线程,ready 只表示持久缓存已完成。 */
|
|
4437
|
+
prefetchRecent: (refs: readonly ConversationRef<ProductConversationListType>[], options?: ConversationPrefetchOptions) => Promise<readonly ConversationPrefetchResult[]>;
|
|
4323
4438
|
/** 读取总未读;默认排除 muted 会话。 */
|
|
4324
4439
|
getTotalUnread: (options?: {
|
|
4325
4440
|
includeMuted?: boolean;
|
|
@@ -4360,6 +4475,12 @@ interface DirectConversationCapabilities {
|
|
|
4360
4475
|
canUseMessageActions: CapabilityDecision;
|
|
4361
4476
|
canManageRelationship: CapabilityDecision;
|
|
4362
4477
|
}
|
|
4478
|
+
interface RobotConversationCapabilities {
|
|
4479
|
+
canSendMessages: CapabilityDecision;
|
|
4480
|
+
canOpenProfile: CapabilityDecision;
|
|
4481
|
+
canUseMessageActions: CapabilityDecision;
|
|
4482
|
+
canReadHistory: CapabilityDecision;
|
|
4483
|
+
}
|
|
4363
4484
|
/**
|
|
4364
4485
|
* 普通群能力快照。
|
|
4365
4486
|
*
|
|
@@ -4426,6 +4547,8 @@ type ConversationCapabilitySnapshot = (ConversationCapabilityBase<'direct'> & {
|
|
|
4426
4547
|
value: GroupConversationCapabilities;
|
|
4427
4548
|
}) | (ConversationCapabilityBase<'channel'> & {
|
|
4428
4549
|
value: ChannelConversationCapabilities;
|
|
4550
|
+
}) | (ConversationCapabilityBase<'robot'> & {
|
|
4551
|
+
value: RobotConversationCapabilities;
|
|
4429
4552
|
});
|
|
4430
4553
|
interface ImConversationCapabilitiesApi {
|
|
4431
4554
|
/** 只读取 SDK 当前本机真相与已刷新过的资料/关系投影,不隐式联网。 */
|
|
@@ -4592,7 +4715,7 @@ interface ImMessagesByIdResult<TMessage> {
|
|
|
4592
4715
|
*/
|
|
4593
4716
|
|
|
4594
4717
|
/** 当前已接线的产品 handle 会话类型;三者只在无会话语义原子层复用。 */
|
|
4595
|
-
type ProductHandleConversationType = 'direct' | 'group' | 'channel';
|
|
4718
|
+
type ProductHandleConversationType = 'direct' | 'group' | 'channel' | 'robot';
|
|
4596
4719
|
/**
|
|
4597
4720
|
* 会话 handle 初始打开位置。
|
|
4598
4721
|
*
|
|
@@ -4605,6 +4728,8 @@ type ConversationInitialPosition = 'latest' | 'first-unread';
|
|
|
4605
4728
|
* @remarks 选项只影响初始连续窗口和 `entryUnread` 快照;发送、历史分页、已读和 close 语义保持不变。
|
|
4606
4729
|
*/
|
|
4607
4730
|
interface ConversationOpenOptions {
|
|
4731
|
+
/** 取消尚未交付的会话打开及其历史请求;句柄交付后由 close 管理生命周期。 */
|
|
4732
|
+
signal?: AbortSignal;
|
|
4608
4733
|
/**
|
|
4609
4734
|
* 初始连续窗口位置。
|
|
4610
4735
|
*
|
|
@@ -4725,6 +4850,12 @@ interface ConversationMessageApi {
|
|
|
4725
4850
|
* @remarks CHANNEL 当前产品入口不发送转账,会返回 unsupported。消息固定明文。
|
|
4726
4851
|
*/
|
|
4727
4852
|
sendTransfer: (transfer: ImTransferBody, options?: TransferMessageOptions) => Promise<SendMessageResult>;
|
|
4853
|
+
/**
|
|
4854
|
+
* 发送礼品卡片。调用方必须先完成福利中心 HTTP 赠送。
|
|
4855
|
+
*
|
|
4856
|
+
* @remarks CHANNEL 当前产品入口不发送礼物,会返回 unsupported。消息固定明文。
|
|
4857
|
+
*/
|
|
4858
|
+
sendGift: (gift: ImGiftBody, options?: GiftMessageOptions) => Promise<SendMessageResult>;
|
|
4728
4859
|
/** 当前用户已选相同 emoji 时移除,否则添加或替换。emoji 必须是协议 token,例如 `[Great]`。 */
|
|
4729
4860
|
toggleReaction: (messageId: string, emoji: string) => Promise<ImReactionChangeResult>;
|
|
4730
4861
|
/** 显式添加/替换或移除,供参与者详情等不能用 toggle 猜动作的产品交互。 */
|
|
@@ -5234,6 +5365,8 @@ interface ImProductEventMap {
|
|
|
5234
5365
|
'connection:changed': Readonly<{
|
|
5235
5366
|
snapshot: ImLifecycleSnapshot;
|
|
5236
5367
|
}>;
|
|
5368
|
+
/** 另一个页面接管聊天;宿主可提示刷新此页重新接管,不应退出业务登录。 */
|
|
5369
|
+
'session:replaced': Readonly<Record<never, never>>;
|
|
5237
5370
|
'message:received': Readonly<{
|
|
5238
5371
|
ref: ConversationRef<ProductConversationListType>;
|
|
5239
5372
|
message: ImProductMessage;
|
|
@@ -5562,6 +5695,57 @@ interface ImRequestError {
|
|
|
5562
5695
|
*/
|
|
5563
5696
|
type ImRequestErrorHandler = (issue: ImRequestError) => void | Promise<void>;
|
|
5564
5697
|
|
|
5698
|
+
/**
|
|
5699
|
+
* 机器人目录产品分页运行时。
|
|
5700
|
+
* 服务端页码封装为绑定账号 runtime 与查询条件的 opaque token;伪造、跨筛选或已消费 token 显式失败。
|
|
5701
|
+
*/
|
|
5702
|
+
|
|
5703
|
+
/**
|
|
5704
|
+
* 机器人目录查询范围。
|
|
5705
|
+
*
|
|
5706
|
+
* `catalog` 对齐通讯录「查找机器人」;`conversation` 对齐群/社群资料添加与输入栏已绑定列表。
|
|
5707
|
+
*/
|
|
5708
|
+
type ImRobotDirectoryScope = {
|
|
5709
|
+
kind: 'catalog';
|
|
5710
|
+
} | {
|
|
5711
|
+
kind: 'conversation';
|
|
5712
|
+
conversationType: 'group' | 'channel';
|
|
5713
|
+
conversationId: string;
|
|
5714
|
+
/** `bound` 对齐 iOS 输入栏 `search_type=1`。 */
|
|
5715
|
+
filter?: 'bound';
|
|
5716
|
+
};
|
|
5717
|
+
/** 机器人目录项;只保留打开私聊和列表展示所需字段。 */
|
|
5718
|
+
interface ImRobotDirectoryItem {
|
|
5719
|
+
id: string;
|
|
5720
|
+
displayName: string;
|
|
5721
|
+
username?: string;
|
|
5722
|
+
avatarUrl?: string;
|
|
5723
|
+
bound?: boolean;
|
|
5724
|
+
}
|
|
5725
|
+
/** 把机器人绑定或解绑到普通群/社群。 */
|
|
5726
|
+
interface ImRobotConversationBindInput {
|
|
5727
|
+
robotId: string;
|
|
5728
|
+
conversationType: 'group' | 'channel';
|
|
5729
|
+
conversationId: string;
|
|
5730
|
+
}
|
|
5731
|
+
/** 机器人目录页;服务端页码由 SDK token 封装,UI 只能原样续页。 */
|
|
5732
|
+
interface ImRobotDirectoryPage {
|
|
5733
|
+
items: readonly ImRobotDirectoryItem[];
|
|
5734
|
+
nextPageToken?: ImPageToken;
|
|
5735
|
+
exhausted: boolean;
|
|
5736
|
+
}
|
|
5737
|
+
/** 机器人目录产品分页面。 */
|
|
5738
|
+
interface ImRobotsApi {
|
|
5739
|
+
listFirstPage: (options?: {
|
|
5740
|
+
scope?: ImRobotDirectoryScope;
|
|
5741
|
+
keyword?: string;
|
|
5742
|
+
pageSize?: number;
|
|
5743
|
+
}) => Promise<ImRobotDirectoryPage>;
|
|
5744
|
+
listNextPage: (pageToken: ImPageToken) => Promise<ImRobotDirectoryPage>;
|
|
5745
|
+
bindToConversation: (input: ImRobotConversationBindInput) => Promise<void>;
|
|
5746
|
+
unbindFromConversation: (input: ImRobotConversationBindInput) => Promise<void>;
|
|
5747
|
+
}
|
|
5748
|
+
|
|
5565
5749
|
/**
|
|
5566
5750
|
* 当前账号本地会话与消息的分场景产品搜索运行时。
|
|
5567
5751
|
*
|
|
@@ -5624,6 +5808,8 @@ interface ImMessageSearchApi {
|
|
|
5624
5808
|
inGroup: (conversation: ConversationRef<'group'>, keyword: string) => Promise<ProductMessageSearchPage<MessageContentType>>;
|
|
5625
5809
|
/** 搜索 CHANNEL 本地历史;当前不调用未闭合的远端 CHANNEL 搜索/定位协议。 */
|
|
5626
5810
|
inChannel: (conversation: ConversationRef<'channel'>, keyword: string) => Promise<ProductMessageSearchPage<MessageContentType>>;
|
|
5811
|
+
/** 搜索 robot 本地历史;无远端历史,不得回退 direct。 */
|
|
5812
|
+
inRobot: (conversation: ConversationRef<'robot'>, keyword: string) => Promise<ProductMessageSearchPage<MessageContentType>>;
|
|
5627
5813
|
/** 只搜索文本消息;关键词必填且不能为空。 */
|
|
5628
5814
|
texts: (conversation: ConversationRef<ProductHandleConversationType>, keyword: string) => Promise<ProductMessageSearchPage<'text'>>;
|
|
5629
5815
|
/** 只搜索文件消息;省略或传空白关键词时按文件分类浏览。 */
|
|
@@ -6160,7 +6346,7 @@ interface AdvancedConversationsApi extends ImConversationsApi, ImConversationBac
|
|
|
6160
6346
|
*
|
|
6161
6347
|
* @internal
|
|
6162
6348
|
*/
|
|
6163
|
-
ensureOpenableConversation: (ref: ConversationRef) => Promise<ConversationRef<'direct' | 'group' | 'channel'>>;
|
|
6349
|
+
ensureOpenableConversation: (ref: ConversationRef) => Promise<ConversationRef<'direct' | 'group' | 'channel' | 'robot'>>;
|
|
6164
6350
|
}
|
|
6165
6351
|
/**
|
|
6166
6352
|
* 普通宿主的真实 default client。
|
|
@@ -6184,6 +6370,8 @@ interface ImProductClient {
|
|
|
6184
6370
|
readonly conversations: ImConversationListApi;
|
|
6185
6371
|
/** 当前账号完整联系人、群组和社群目录的统一搜索。 */
|
|
6186
6372
|
readonly directory: ImDirectorySearchApi;
|
|
6373
|
+
/** 机器人公开目录;通讯录查找与群/社群绑定列表共用分页合同。 */
|
|
6374
|
+
readonly robots: ImRobotsApi;
|
|
6187
6375
|
readonly contacts: ImContactsApi;
|
|
6188
6376
|
readonly groups: ImGroupsApi;
|
|
6189
6377
|
readonly channels: ImChannelsApi;
|
|
@@ -6233,6 +6421,7 @@ interface ImClient extends Omit<ImProductClient, 'capabilities' | 'channels' | '
|
|
|
6233
6421
|
(ref: ConversationRef<'direct'>, options?: ConversationOpenOptions): Promise<ConversationHandle<'direct'>>;
|
|
6234
6422
|
(ref: ConversationRef<'group'>, options?: ConversationOpenOptions): Promise<ConversationHandle<'group'>>;
|
|
6235
6423
|
(ref: ConversationRef<'channel'>, options?: ConversationOpenOptions): Promise<ConversationHandle<'channel'>>;
|
|
6424
|
+
(ref: ConversationRef<'robot'>, options?: ConversationOpenOptions): Promise<ConversationHandle<'robot'>>;
|
|
6236
6425
|
};
|
|
6237
6426
|
/** 当前账号草稿产品面;按复合身份持久化,handle.draft 委托同一状态源。 */
|
|
6238
6427
|
drafts: ImDraftsApi;
|
|
@@ -6381,7 +6570,7 @@ type ImLocale = 'en-US' | 'th-TH' | 'vi-VN' | 'zh-CN' | 'zh-TW';
|
|
|
6381
6570
|
* 二期收敛:kit 框架无关层不再直接产中文,改产本联合里的码 + 参数(如 {reason}/{label}/{size}),由宿主经 im-i18n 渲染。
|
|
6382
6571
|
* 动态原始报错(error.message)作为 `{reason}` 参数拼接,不入 catalog(属诊断,不翻译)。
|
|
6383
6572
|
*/
|
|
6384
|
-
type ImServiceTextKey = 'common.notConnected' | 'common.selectOrOpenConversation' | 'common.conversationTypeNotReady' | 'common.conversationNotReady' | `recall.${RecallFailReason}` | `edit.${EditFailReason}` | 'localDelete.done' | 'localDelete.notFound' | 'localDelete.inFlight' | 'localDelete.failed' | 'channelDelete.notFound' | 'channelDelete.unsupported' | 'channelDelete.notSent' | 'channelDelete.unavailable' | 'channelDelete.forbidden' | 'channelDelete.timeout' | 'channelDelete.failed' | 'channelDelete.disconnected' | 'directBlock.contactRequired' | 'groupBlock.left' | 'groupBlock.removed' | 'groupBlock.dismissed' | 'groupBlock.unknownRestricted' | 'channelBlock.guest' | 'channelBlock.left' | 'channelBlock.removed' | 'channelBlock.dismissed' | 'channelBlock.muted' | 'channelBlock.allMembersMuted' | 'channelBlock.currentUserMuted' | 'channelBlock.blacklisted' | 'channelBlock.unknownRestricted' | 'channelProfile.loadFailed' | 'channelProfile.notFound' | 'channelProfile.retryAction' | 'channelMembers.title' | 'channelMembers.searchPlaceholder' | 'channelMembers.loading' | 'channelMembers.loadFailed' | 'channelMembers.retryAction' | 'channelMembers.empty' | 'channelMembers.loadingMore' | 'channelMembers.loadMoreFailed' | 'channelMembers.exhausted' | 'channelMembers.loadMoreAction' | 'label.image' | 'label.video' | 'label.file' | 'label.sticker' | 'send.failed' | 'send.retryFailed' | 'send.cancelFailed' | 'send.mediaFailed' | 'send.mediaEmpty' | 'send.mediaCancelled' | 'send.mediaCountLimit' | 'send.mediaTooLarge' | 'send.mediaFormatMismatch' | 'send.imageFormatUnsupported' | 'send.videoTooLong' | 'send.videoDurationUnavailable' | 'send.voiceEmpty' | 'send.voiceStorageNotConfigured' | 'send.voiceCancelled' | 'send.voiceFailed' | 'media.uploadWaiting' | 'media.voiceNotReady' | 'media.voiceLoadEmpty' | 'media.voiceLoadFailed' | 'media.videoOpenEmpty' | 'media.videoLoadFailed' | 'media.imageInvalid' | 'media.imageLoadFailed' | 'media.fileDownloadEmpty' | 'media.fileDownloadFailed' | 'conversation.muteEnableFailed' | 'conversation.muteDisableFailed' | 'conversation.backgroundLoadFailed' | 'read.markReadFailed' | 'storage.failed' | 'sync.failed' | 'draft.saveFailed' | 'history.returnLatestFailed' | 'pinned.forbidden' | 'pinned.network' | 'pinned.contract' | 'pinned.unsupported' | 'pinned.failed' | 'pinned.previewUnavailable' | 'pinned.locateFailed' | 'pinned.recalled' | 'pinned.deleted' | 'pinned.protected' | 'pinned.pinAction' | 'pinned.unpinAction' | 'pinned.unpinConfirm' | 'pinned.cancelAction' | 'lifecycle.missingLoginState' | 'lifecycle.prepareFailed' | 'lifecycle.missingConnectParams' | 'lifecycle.connectFailed' | 'lifecycle.disposed' | 'forward.emptyInput' | 'forward.allSkipped' | 'forward.partialSkipped' | 'forward.done' | 'forward.failed';
|
|
6573
|
+
type ImServiceTextKey = 'common.notConnected' | 'common.selectOrOpenConversation' | 'common.conversationTypeNotReady' | 'common.conversationNotReady' | `recall.${RecallFailReason}` | `edit.${EditFailReason}` | 'localDelete.done' | 'localDelete.notFound' | 'localDelete.inFlight' | 'localDelete.failed' | 'channelDelete.notFound' | 'channelDelete.unsupported' | 'channelDelete.notSent' | 'channelDelete.unavailable' | 'channelDelete.forbidden' | 'channelDelete.timeout' | 'channelDelete.failed' | 'channelDelete.disconnected' | 'directBlock.contactRequired' | 'groupBlock.left' | 'groupBlock.removed' | 'groupBlock.dismissed' | 'groupBlock.unknownRestricted' | 'channelBlock.guest' | 'channelBlock.left' | 'channelBlock.removed' | 'channelBlock.dismissed' | 'channelBlock.muted' | 'channelBlock.allMembersMuted' | 'channelBlock.currentUserMuted' | 'channelBlock.blacklisted' | 'channelBlock.unknownRestricted' | 'channelProfile.loadFailed' | 'channelProfile.notFound' | 'channelProfile.retryAction' | 'channelMembers.title' | 'channelMembers.searchPlaceholder' | 'channelMembers.loading' | 'channelMembers.loadFailed' | 'channelMembers.retryAction' | 'channelMembers.empty' | 'channelMembers.loadingMore' | 'channelMembers.loadMoreFailed' | 'channelMembers.exhausted' | 'channelMembers.loadMoreAction' | 'label.image' | 'label.video' | 'label.file' | 'label.sticker' | 'send.failed' | 'send.retryFailed' | 'send.cancelFailed' | 'send.mediaFailed' | 'send.mediaEmpty' | 'send.mediaCancelled' | 'send.mediaCountLimit' | 'send.mediaTooLarge' | 'send.mediaFormatMismatch' | 'send.imageFormatUnsupported' | 'send.videoTooLong' | 'send.videoDurationUnavailable' | 'send.voiceEmpty' | 'send.voiceStorageNotConfigured' | 'send.voiceCancelled' | 'send.voiceFailed' | 'media.uploadWaiting' | 'media.voiceNotReady' | 'media.voiceLoadEmpty' | 'media.voiceLoadFailed' | 'media.videoOpenEmpty' | 'media.videoLoadFailed' | 'media.imageInvalid' | 'media.imageLoadFailed' | 'media.fileDownloadEmpty' | 'media.fileDownloadFailed' | 'conversation.muteEnableFailed' | 'conversation.muteDisableFailed' | 'conversation.backgroundLoadFailed' | 'read.markReadFailed' | 'storage.failed' | 'sync.failed' | 'draft.saveFailed' | 'history.returnLatestFailed' | 'pinned.forbidden' | 'pinned.network' | 'pinned.contract' | 'pinned.unsupported' | 'pinned.failed' | 'pinned.previewUnavailable' | 'pinned.locateFailed' | 'pinned.recalled' | 'pinned.deleted' | 'pinned.protected' | 'pinned.pinAction' | 'pinned.unpinAction' | 'pinned.unpinConfirm' | 'pinned.cancelAction' | 'lifecycle.missingLoginState' | 'lifecycle.prepareFailed' | 'lifecycle.missingConnectParams' | 'lifecycle.connectFailed' | 'lifecycle.disposed' | 'lifecycle.connectionOccupied' | 'lifecycle.connectionCoordinationUnavailable' | 'forward.emptyInput' | 'forward.allSkipped' | 'forward.partialSkipped' | 'forward.done' | 'forward.failed';
|
|
6385
6574
|
|
|
6386
6575
|
/** 会话列表摘要的框架无关分段;宿主可自行决定表情使用图片、文本或其它组件呈现。 */
|
|
6387
6576
|
type ConversationListPreviewSegment = {
|
|
@@ -6472,6 +6661,20 @@ interface ConversationListPresentation {
|
|
|
6472
6661
|
*/
|
|
6473
6662
|
declare function resolveConversationListPresentation(item: ConversationListItem, options: ConversationListPresentationOptions): ConversationListPresentation;
|
|
6474
6663
|
|
|
6664
|
+
/**
|
|
6665
|
+
* PC/H5 会话行与菜单角标共用的显示规则;不修改 SDK 未读消息条数。
|
|
6666
|
+
*
|
|
6667
|
+
* @example `999 → '999'`、`1249 → '1k'`、`10000 → '10k'`、`10001 → '10k+'`。
|
|
6668
|
+
* 会话内的未读提示有独立的 999+ 规则,不使用本函数。
|
|
6669
|
+
*/
|
|
6670
|
+
declare function formatConversationUnreadBadge(count: number): string;
|
|
6671
|
+
/**
|
|
6672
|
+
* 从 SDK 完整会话列表计算菜单未读会话数:每个非免打扰且有未读的会话只计一次。
|
|
6673
|
+
*
|
|
6674
|
+
* SDK 已把手动未读提醒投影到 unreadCount;这里不重新解释消息状态,也不使用宿主筛选后的列表。
|
|
6675
|
+
*/
|
|
6676
|
+
declare function countUnreadConversations(items: readonly Pick<ConversationListItem, 'unreadCount' | 'muted'>[]): number;
|
|
6677
|
+
|
|
6475
6678
|
interface DelayedLoadingIndicatorOptions {
|
|
6476
6679
|
/** loading 持续超过该时间后才显示,缓存快速命中不会闪出提示。 */
|
|
6477
6680
|
showDelayMs?: number;
|
|
@@ -6538,15 +6741,62 @@ type MessageNotificationDecision = {
|
|
|
6538
6741
|
/** PC/H5 共用的实时消息提醒规则;离线历史回放不逐条弹通知。 */
|
|
6539
6742
|
declare function resolveMessageNotificationDecision(input: MessageNotificationInput): MessageNotificationDecision;
|
|
6540
6743
|
|
|
6744
|
+
/**
|
|
6745
|
+
* 小程序游戏预览卡(消息 22 且 `showType=game-preview`)的呈现判定。
|
|
6746
|
+
*
|
|
6747
|
+
* 三端契约一致:BMessage proto 94 是一个远程页面地址,95/96 是它的作者尺寸。
|
|
6748
|
+
* 安卓用 WebView、iOS 用 WKWebView 顶层加载它,都不回退 `icon`。Web 宿主用 iframe 对应,
|
|
6749
|
+
* 但多了一个原生没有的问题——同一个字段偶尔指向的是图片资源,iframe 装图片会丢掉缩放控制。
|
|
6750
|
+
* 这个判定因此属于 Chat Kit 而不是某个宿主:两端要给出同一个答案,各写一份必然漂移。
|
|
6751
|
+
*/
|
|
6752
|
+
/** proto 95/96 缺失时的源尺寸,与安卓 `bg_default_applet` 的 280×180 一致。 */
|
|
6753
|
+
declare const MINI_PROGRAM_GAME_PREVIEW_FALLBACK_WIDTH = 280;
|
|
6754
|
+
declare const MINI_PROGRAM_GAME_PREVIEW_FALLBACK_HEIGHT = 180;
|
|
6755
|
+
interface MiniProgramGamePreviewInput {
|
|
6756
|
+
gamePreviewUrl?: string;
|
|
6757
|
+
gamePreviewWidth?: number;
|
|
6758
|
+
gamePreviewHeight?: number;
|
|
6759
|
+
/** 宿主已经观察到 `<img>` 加载失败,说明该地址其实是文档,翻回 document。 */
|
|
6760
|
+
imageLoadFailed?: boolean;
|
|
6761
|
+
}
|
|
6762
|
+
interface MiniProgramGamePreviewLayout {
|
|
6763
|
+
/** 去空白后的 proto 94;为空串时 `render` 恒为 `empty`。 */
|
|
6764
|
+
url: string;
|
|
6765
|
+
/** 按源尺寸等比缩放用的作者宽高,永远是正数。 */
|
|
6766
|
+
sourceWidth: number;
|
|
6767
|
+
sourceHeight: number;
|
|
6768
|
+
/**
|
|
6769
|
+
* `document` 顶层加载远程页面(对应原生 WebView);`image` 地址明确是图片资源;
|
|
6770
|
+
* `empty` 无地址,画占位卡——占位本身是合法终态,不是待修复状态。
|
|
6771
|
+
*/
|
|
6772
|
+
render: 'document' | 'image' | 'empty';
|
|
6773
|
+
}
|
|
6774
|
+
/**
|
|
6775
|
+
* 默认按 document 处理:线上真实地址形如 `…/p2p-share?lang=zh&banker_order_id=905`,
|
|
6776
|
+
* 既没有 `.html` 后缀也没有图片后缀,按后缀白名单猜 iframe 会把它错判成图片。
|
|
6777
|
+
*/
|
|
6778
|
+
declare function resolveMiniProgramGamePreviewLayout(input: MiniProgramGamePreviewInput): MiniProgramGamePreviewLayout;
|
|
6779
|
+
|
|
6541
6780
|
/**
|
|
6542
6781
|
* 拼装频道 rel / 消息 22 打开小程序用的地址。
|
|
6543
6782
|
* 有 host 时按大厅规则拼 suffix;只有 suffix 时只接受完整 URL 或带点的主机名,
|
|
6544
6783
|
* 不能把 `/path` 当成域名。
|
|
6545
6784
|
*/
|
|
6785
|
+
/** `board-game` / `unknown` 不可点;默认卡、棋牌可点卡、游戏预览卡可以点开。 */
|
|
6786
|
+
declare function isMiniProgramShowTypeOpenable(showType: string): boolean;
|
|
6546
6787
|
interface MiniProgramOpenUrlInput {
|
|
6547
6788
|
domain?: string;
|
|
6548
6789
|
suffixAddress?: string;
|
|
6549
6790
|
h5Url?: string;
|
|
6791
|
+
/**
|
|
6792
|
+
* 正文字段 92 `miniProgramGamePath`,分享方写入的落地定位参数。
|
|
6793
|
+
*
|
|
6794
|
+
* 原样并进入口地址的 query,与 iOS `mergedSuffixAddressWithHost:suffixAddress:miniProgramGamePath:`
|
|
6795
|
+
* 同形:宿主据此得到的 `suffix_address` 才是 gameserver 认的载体(它从 suffix 里取
|
|
6796
|
+
* `game_params` 覆盖 `req.GameParams`)。值的编码由分享方负责,这里不再编解码,
|
|
6797
|
+
* 否则会多编或少编一层,`buildAppendUrlParams` 只解一次就会解坏。
|
|
6798
|
+
*/
|
|
6799
|
+
gamePath?: string;
|
|
6550
6800
|
}
|
|
6551
6801
|
declare function resolveMiniProgramOpenUrl(input: MiniProgramOpenUrlInput): string;
|
|
6552
6802
|
/** 悬浮外链:suffix 已是完整地址或主机名时直接用;只有路径时必须拼到 domain 上。 */
|
|
@@ -6888,7 +7138,8 @@ interface ChatRuntime {
|
|
|
6888
7138
|
/**
|
|
6889
7139
|
* 在账号或 token 发生变化时,立即停止并清理旧账号运行资源。
|
|
6890
7140
|
*
|
|
6891
|
-
*
|
|
7141
|
+
* 它会立即停止旧连接并丢弃页面资源,异步销毁 SDK Client、关闭消息库和释放浏览器锁;
|
|
7142
|
+
* 新 prepare/connect 等待清理完成,账号版本号同步递增;
|
|
6892
7143
|
* 已注册的 Store 监听器会保留,以便新账号重新连接后继续接收事件。通常由 `applySession` 自动调用。
|
|
6893
7144
|
*/
|
|
6894
7145
|
resetForAuthChange: () => void;
|
|
@@ -6949,7 +7200,7 @@ interface ChatRuntime {
|
|
|
6949
7200
|
/** 撤销当前账号创建的全部媒体预览地址并释放 Blob 内存,切账号、退出或销毁时调用。 */
|
|
6950
7201
|
cleanupLocalMediaBlobs: () => void;
|
|
6951
7202
|
/** 删除会话时释放该会话绑定的本地媒体预览/播放缓存。 */
|
|
6952
|
-
cleanupConversationMediaBlobs: (conversation: ConversationRef<'direct' | 'group' | 'channel'>) => void;
|
|
7203
|
+
cleanupConversationMediaBlobs: (conversation: ConversationRef<'direct' | 'group' | 'channel' | 'robot'>) => void;
|
|
6953
7204
|
}
|
|
6954
7205
|
/**
|
|
6955
7206
|
* 创建一个可承载当前及后续登录账号的 IM 运行环境。
|
|
@@ -6970,6 +7221,43 @@ interface ChatRuntime {
|
|
|
6970
7221
|
*/
|
|
6971
7222
|
declare function createChatRuntime(factories: ChatRuntimeFactories): ChatRuntime;
|
|
6972
7223
|
|
|
7224
|
+
type PrefetchClient = Pick<ImProductClient, 'conversations'>;
|
|
7225
|
+
/** 宿主只提供当前投影和调度许可;请求去重、网络预算与持久化仍由 SDK 管理。 */
|
|
7226
|
+
interface ConversationPrefetchControllerOptions {
|
|
7227
|
+
/** 当前账号公开 Client;未准备好时返回 null,不在后台主动创建 Client。 */
|
|
7228
|
+
getClient: () => PrefetchClient | null;
|
|
7229
|
+
/** SDK 会话列表当前顺序;控制器只挑常用会话,不维护消息副本。 */
|
|
7230
|
+
getCandidates: () => readonly ConversationListItem[];
|
|
7231
|
+
/** 前台正在阅读的精确会话;它的历史由正常打开流程负责。 */
|
|
7232
|
+
getActiveRef: () => ConversationRef | null;
|
|
7233
|
+
/** 宿主判断开关、账号、连接、页面可见性和网络策略是否允许预取。 */
|
|
7234
|
+
getRunnable: () => boolean;
|
|
7235
|
+
/** 在首屏绘制后的浏览器空闲期执行,返回取消尚未开始任务的函数。 */
|
|
7236
|
+
scheduleIdle: (task: () => void) => () => void;
|
|
7237
|
+
/** 意外拒绝的结构化诊断出口;预取失败不能转成前台通知。 */
|
|
7238
|
+
onError: (cause: unknown) => void;
|
|
7239
|
+
/** 可选的统一诊断端口;只记录调度状态,不存消息,也不作为运行许可。 */
|
|
7240
|
+
diagnostics?: ImDiagnosticWriter;
|
|
7241
|
+
}
|
|
7242
|
+
/** 应用级常用会话预取控制器;不依赖 Vue、Pinia 或浏览器页面资源。 */
|
|
7243
|
+
interface ConversationPrefetchController {
|
|
7244
|
+
/** 列表、活动会话或运行条件改变时调用;普通刷新复用在途请求。 */
|
|
7245
|
+
refresh: () => void;
|
|
7246
|
+
/** 换账号或退出时取消任务并清除本轮请求记录;后续 refresh 可重新开始。 */
|
|
7247
|
+
reset: () => void;
|
|
7248
|
+
/** 应用卸载时永久释放;后续 refresh 不再调度。 */
|
|
7249
|
+
dispose: () => void;
|
|
7250
|
+
}
|
|
7251
|
+
/**
|
|
7252
|
+
* 创建常用会话预取编排:每次空闲只提交一个候选,完成后重读列表再选下一项。
|
|
7253
|
+
*
|
|
7254
|
+
* 页间重新等待宿主空闲调度,使置顶、未读、删除和活动会话变化及时影响下一页,
|
|
7255
|
+
* SDK 仍负责请求去重、前台优先与本次账号 Runtime 的网络总预算。
|
|
7256
|
+
* 同一 Client 下完成或失败的候选本轮不自动重试;取消项可在运行条件恢复后重新排队。
|
|
7257
|
+
* reset/client 更换会作废旧请求,旧 Promise 完成后不能修改新账号的请求记录。
|
|
7258
|
+
*/
|
|
7259
|
+
declare function createConversationPrefetchController(options: ConversationPrefetchControllerOptions): ConversationPrefetchController;
|
|
7260
|
+
|
|
6973
7261
|
/**
|
|
6974
7262
|
* 一次异步业务操作发起时捕获的账号生命周期。
|
|
6975
7263
|
*
|
|
@@ -8797,5 +9085,5 @@ declare function resampleWaveform(data: readonly number[], targetCount: number):
|
|
|
8797
9085
|
*/
|
|
8798
9086
|
declare function placeholderWaveform(seed: string, count: number): number[];
|
|
8799
9087
|
|
|
8800
|
-
export { DEFAULT_EMOJI_ASSET_BASE, DEFAULT_LOADING_MINIMUM_VISIBLE_MS, DEFAULT_LOADING_SHOW_DELAY_MS, EMOJI_CATALOG, EMOJI_GAME_DICE_STABLE_KEY, EMOJI_GAME_RPS_STABLE_KEY, EMOJI_TOKEN_RE, MAX_BATCH_FILES, MAX_RECENT_EMOJI_COUNT, MINI_PROGRAM_LANG_NUMBERS, SPIKE_STEP, UNICODE_EMOJI_CATALOG, blockReasonForChannelSession, blockReasonForChannelState, blockReasonForGroupState, blockReasonForSession, calculateMediaBox, canEditMessage, canPinChannelMessage, canPinGroupMessage, canPinMessage, canPromoteMediaPresentationSource, canRecallMessage, canTransmit, canTransmitByType, canTransmitContent, cancelMediaUpload, captureRuntimeClientOperation, captureRuntimeOperation, channelMiniProgramRelKey, classifyGifFile, classifyMediaFile, createChatRuntime, createDelayedLoadingIndicator, createEmojiMatcher, createLinkMatcher, createNewMessageBadgeController, createThreadItems, csvIncludes, decideChannelMiniProgramRelOpen, decideConversationAction, decideMemberTargetAction, decideMessageAction, emojiAssetUrl, emojiUrlByCode, fetchConversationFileBatch, fetchConversationImageBatch, fetchConversationMessageBatch, fetchConversationVideoBatch, fetchConversationVoiceBatch, fetchNextConversationSearchBatch, formatChatDateSeparator, formatConversationDisplayTime, formatFileSize, formatMediaDuration, forward_service as forwardService, getFileExtension, getLocalDayKey, hasEmojiCandidate, hasLinkCandidate, highlightSegments, isGifFile, isMessageLocateScrollProtected, isMessageTailChangeFromOlderWindowTrim, isMessageViewportMeasurable, isMessageVisibleForNewMessageBadge, isPinnedMessageProtected, isVoiceStorageConfigured, loadOlderUntilBoundary, mediaBatchBudgetBytes, media_service as mediaService, message_service as messageService, normalizeLinkHref, parseUnicodeEmojiCode, pinnedMessage_service as pinnedMessageService, placeholderWaveform, prependRecentEmoji, profile_service as profileService, read_service as readService, refreshPrependMessageAnchorPosition, replaceInterruptedMediaFile, requiresConversationEncryption, requiresForwardTypeConfirmation, resampleWaveform, resolveBestMediaPresentationSource, resolveCenteredMessageScrollTop, resolveChannelMemberAvatarUrl, resolveChannelMemberDisplayName, resolveChannelMiniProgramRelIcon, resolveChannelMiniProgramRelName, resolveChannelMiniProgramRelOpenSurface, resolveChannelMiniProgramRelUrl, resolveChannelPinnedGameCopy, resolveConversationListPresentation, resolveDisplayTimestamp, resolveEmojiToken, resolveFriendDisplayName, resolveImProfileAccessDestination, resolveImThreadActiveDate, resolveMediaPresentation, resolveMemberDisplayName, resolveMessageBodyKind, resolveMessageNotificationDecision, resolveMessageTimelineTimestamp, resolveMiniProgramFloatLinkUrl, resolveMiniProgramOpenUrl, resolvePrependMessageAnchor, resolvePrependMessageAnchorAdjustment, resolvePrependMessageAnchorPosition, resolvePublicNickname, resolveQuotedMessagePresentation, resolveSenderAvatarUrl, resolveStandaloneEmojiMessage, resolveSurvivingMessageAnchorAdjustment, resolveUnicodeEmoji, resolveVisibleChannelMiniProgramRels, resolveVisibleMessageAnchorPositions, retryMessage, runMediaSendBatch, sendAsFilesBatch, sendBlockReasonForDecision, sendMediaAlbum, sendMediaFile, sendMediaFilesBatch, sendText, sendVoice, shouldCompleteInitialViewport, shouldFillInitialHistoryViewport, shouldFollowIncomingMessage, shouldLoadNewerHistoryPage, shouldPrefetchOlderHistory, shouldRestoreMessageViewportFocus, shouldShowChatDateSeparator, shouldTrackRemoteMessageForBadge, sortChannelMiniProgramFloatingItems, spikeCountForDuration, supportsConversationMention, unicodeEmojiTextFromCode };
|
|
8801
|
-
export type { ApplySessionResult, BrowseMessagesInput, CanPinMessageInput, CenteredMessageScrollInput, ChannelMiniProgramOpenGame, ChannelMiniProgramRelOpenDecision, ChannelMiniProgramRelOpenSurface, ChatMediaMessageRef, ChatProfileAdapter, ChatRuntime, ChatRuntimeCredentials, ChatRuntimeFactories, ChatRuntimeHostDeps, ChatRuntimeOpResult, ConversationCapabilityAction, ConversationListPresentation, ConversationListPresentationLabels, ConversationListPresentationOptions, ConversationListPreviewMediaKind, ConversationListPreviewSegment, ConversationSearchCategory, CreateThreadItemsInput, DelayedLoadingIndicator, DelayedLoadingIndicatorOptions, EmojiEntry, EmojiRecentItem, EmojiSegment, FormatTimeDisplayContext, ForwardCommandHooks, GifFileClassification, HighlightSegment, ImChannelMemberPresentation, ImChannelMentionPresentation, ImChannelProfilePresentation, ImForwardOperationResult, ImGroupMemberPresentation, ImMediaBatchSendResult, ImMessageActionResult, ImMessageBodyKind, ImMessageView, ImPinnedMessageActionResult, ImPinnedMessageSnapshot, ImProfileAccessDestination, ImQuotedMessagePresentation, ImTextResolver, ImThreadActiveDateSnapshot, ImThreadDateMarkerMetric, ImThreadDecoration, ImThreadEncryptionItem, ImThreadIntent, ImThreadItem, ImThreadPresentationAdapter, ImThreadReadActions, ImThreadReadTargetResolver, ImThreadViewportMetrics, IncomingMessageFollowInput, InitialHistoryViewportFillInput, InitialViewportCompletionInput, LinkSegment, MediaBatchBudgetOptions, MediaBatchLimitInfo, MediaFileClassification, MediaLimitItem, MediaObjectUrlLease, MediaPresentationFit, MediaPresentationPolicy, MediaPresentationRule, MediaPresentationSourceCandidate, MediaPresentationSourceQuality, MediaSendBatchResult, MemberTargetCapabilityAction, MemberTargetCapabilityInput, MessageCapabilityAction, MessageCapabilityInput, MessageLocateScrollProtectionInput, MessageNotificationDecision, MessageNotificationInput, MiniProgramHostLocale, MiniProgramOpenUrlInput, NewMessageBadgeController, NewMessageBadgeCountListener, NewMessageBadgeVisibilityInput, NewerHistoryPageTriggerInput, OlderHistoryPrefetchInput, PrependAnchorCandidate, PrependAnchorViewport, PrependMessageAnchorPosition, RemoteMessageBadgeTrackingInput, ResolveMediaPresentationInput, ResolvedMediaPresentation, RichExtraSegment, RuntimeClientOperation, RuntimeOperation, SearchBatchResult, SearchFilesInput, SearchMessagesInput, SearchTextMessagesInput, SendCapabilityMode, SendCommandHooks, SendVoicePayload, SenderProfileEntry, ServiceNoteHooks, StandaloneEmojiMessage, UnicodeEmojiEntry, VisibleChannelMiniProgramRels };
|
|
9088
|
+
export { DEFAULT_EMOJI_ASSET_BASE, DEFAULT_LOADING_MINIMUM_VISIBLE_MS, DEFAULT_LOADING_SHOW_DELAY_MS, EMOJI_CATALOG, EMOJI_GAME_DICE_STABLE_KEY, EMOJI_GAME_RPS_STABLE_KEY, EMOJI_TOKEN_RE, MAX_BATCH_FILES, MAX_RECENT_EMOJI_COUNT, MINI_PROGRAM_GAME_PREVIEW_FALLBACK_HEIGHT, MINI_PROGRAM_GAME_PREVIEW_FALLBACK_WIDTH, MINI_PROGRAM_LANG_NUMBERS, SPIKE_STEP, UNICODE_EMOJI_CATALOG, blockReasonForChannelSession, blockReasonForChannelState, blockReasonForGroupState, blockReasonForSession, calculateMediaBox, canEditMessage, canPinChannelMessage, canPinGroupMessage, canPinMessage, canPromoteMediaPresentationSource, canRecallMessage, canTransmit, canTransmitByType, canTransmitContent, cancelMediaUpload, captureRuntimeClientOperation, captureRuntimeOperation, channelMiniProgramRelKey, classifyGifFile, classifyMediaFile, countUnreadConversations, createChatRuntime, createConversationPrefetchController, createDelayedLoadingIndicator, createEmojiMatcher, createLinkMatcher, createNewMessageBadgeController, createThreadItems, csvIncludes, decideChannelMiniProgramRelOpen, decideConversationAction, decideMemberTargetAction, decideMessageAction, emojiAssetUrl, emojiUrlByCode, fetchConversationFileBatch, fetchConversationImageBatch, fetchConversationMessageBatch, fetchConversationVideoBatch, fetchConversationVoiceBatch, fetchNextConversationSearchBatch, formatChatDateSeparator, formatConversationDisplayTime, formatConversationUnreadBadge, formatFileSize, formatMediaDuration, forward_service as forwardService, getFileExtension, getLocalDayKey, hasEmojiCandidate, hasLinkCandidate, highlightSegments, isGifFile, isMessageLocateScrollProtected, isMessageTailChangeFromOlderWindowTrim, isMessageViewportMeasurable, isMessageVisibleForNewMessageBadge, isMiniProgramShowTypeOpenable, isPinnedMessageProtected, isVoiceStorageConfigured, loadOlderUntilBoundary, mediaBatchBudgetBytes, media_service as mediaService, message_service as messageService, normalizeLinkHref, parseUnicodeEmojiCode, pinnedMessage_service as pinnedMessageService, placeholderWaveform, prependRecentEmoji, profile_service as profileService, read_service as readService, refreshPrependMessageAnchorPosition, replaceInterruptedMediaFile, requiresConversationEncryption, requiresForwardTypeConfirmation, resampleWaveform, resolveBestMediaPresentationSource, resolveCenteredMessageScrollTop, resolveChannelMemberAvatarUrl, resolveChannelMemberDisplayName, resolveChannelMiniProgramRelIcon, resolveChannelMiniProgramRelName, resolveChannelMiniProgramRelOpenSurface, resolveChannelMiniProgramRelUrl, resolveChannelPinnedGameCopy, resolveConversationListPresentation, resolveDisplayTimestamp, resolveEmojiToken, resolveFriendDisplayName, resolveImProfileAccessDestination, resolveImThreadActiveDate, resolveMediaPresentation, resolveMemberDisplayName, resolveMessageBodyKind, resolveMessageNotificationDecision, resolveMessageTimelineTimestamp, resolveMiniProgramFloatLinkUrl, resolveMiniProgramGamePreviewLayout, resolveMiniProgramOpenUrl, resolvePrependMessageAnchor, resolvePrependMessageAnchorAdjustment, resolvePrependMessageAnchorPosition, resolvePublicNickname, resolveQuotedMessagePresentation, resolveSenderAvatarUrl, resolveStandaloneEmojiMessage, resolveSurvivingMessageAnchorAdjustment, resolveUnicodeEmoji, resolveVisibleChannelMiniProgramRels, resolveVisibleMessageAnchorPositions, retryMessage, runMediaSendBatch, sendAsFilesBatch, sendBlockReasonForDecision, sendMediaAlbum, sendMediaFile, sendMediaFilesBatch, sendText, sendVoice, shouldCompleteInitialViewport, shouldFillInitialHistoryViewport, shouldFollowIncomingMessage, shouldLoadNewerHistoryPage, shouldPrefetchOlderHistory, shouldRestoreMessageViewportFocus, shouldShowChatDateSeparator, shouldTrackRemoteMessageForBadge, sortChannelMiniProgramFloatingItems, spikeCountForDuration, supportsConversationMention, unicodeEmojiTextFromCode };
|
|
9089
|
+
export type { ApplySessionResult, BrowseMessagesInput, CanPinMessageInput, CenteredMessageScrollInput, ChannelMiniProgramOpenGame, ChannelMiniProgramRelOpenDecision, ChannelMiniProgramRelOpenSurface, ChatMediaMessageRef, ChatProfileAdapter, ChatRuntime, ChatRuntimeCredentials, ChatRuntimeFactories, ChatRuntimeHostDeps, ChatRuntimeOpResult, ConversationCapabilityAction, ConversationListPresentation, ConversationListPresentationLabels, ConversationListPresentationOptions, ConversationListPreviewMediaKind, ConversationListPreviewSegment, ConversationPrefetchController, ConversationPrefetchControllerOptions, ConversationSearchCategory, CreateThreadItemsInput, DelayedLoadingIndicator, DelayedLoadingIndicatorOptions, EmojiEntry, EmojiRecentItem, EmojiSegment, FormatTimeDisplayContext, ForwardCommandHooks, GifFileClassification, HighlightSegment, ImChannelMemberPresentation, ImChannelMentionPresentation, ImChannelProfilePresentation, ImForwardOperationResult, ImGroupMemberPresentation, ImMediaBatchSendResult, ImMessageActionResult, ImMessageBodyKind, ImMessageView, ImPinnedMessageActionResult, ImPinnedMessageSnapshot, ImProfileAccessDestination, ImQuotedMessagePresentation, ImTextResolver, ImThreadActiveDateSnapshot, ImThreadDateMarkerMetric, ImThreadDecoration, ImThreadEncryptionItem, ImThreadIntent, ImThreadItem, ImThreadPresentationAdapter, ImThreadReadActions, ImThreadReadTargetResolver, ImThreadViewportMetrics, IncomingMessageFollowInput, InitialHistoryViewportFillInput, InitialViewportCompletionInput, LinkSegment, MediaBatchBudgetOptions, MediaBatchLimitInfo, MediaFileClassification, MediaLimitItem, MediaObjectUrlLease, MediaPresentationFit, MediaPresentationPolicy, MediaPresentationRule, MediaPresentationSourceCandidate, MediaPresentationSourceQuality, MediaSendBatchResult, MemberTargetCapabilityAction, MemberTargetCapabilityInput, MessageCapabilityAction, MessageCapabilityInput, MessageLocateScrollProtectionInput, MessageNotificationDecision, MessageNotificationInput, MiniProgramGamePreviewInput, MiniProgramGamePreviewLayout, MiniProgramHostLocale, MiniProgramOpenUrlInput, NewMessageBadgeController, NewMessageBadgeCountListener, NewMessageBadgeVisibilityInput, NewerHistoryPageTriggerInput, OlderHistoryPrefetchInput, PrependAnchorCandidate, PrependAnchorViewport, PrependMessageAnchorPosition, RemoteMessageBadgeTrackingInput, ResolveMediaPresentationInput, ResolvedMediaPresentation, RichExtraSegment, RuntimeClientOperation, RuntimeOperation, SearchBatchResult, SearchFilesInput, SearchMessagesInput, SearchTextMessagesInput, SendCapabilityMode, SendCommandHooks, SendVoicePayload, SenderProfileEntry, ServiceNoteHooks, StandaloneEmojiMessage, UnicodeEmojiEntry, VisibleChannelMiniProgramRels };
|