import type { MeetBot, SessionInfo } from "@meet-im/meet-bot-jssdk"; import type { OpenClawConfig as ClawdbotConfig } from "openclaw/plugin-sdk/config-contracts"; import type { RuntimeEnv } from "openclaw/plugin-sdk/runtime"; /** * 保护 mention 格式在分片后不被截断 * * 当文本被分片后,`<@userId>` 格式可能被截断成: * - 第一个 chunk 末尾: `<@123` * - 第二个 chunk 开头: `456>` * * 此函数检测并修复这种情况,确保 mention 格式完整。 */ export declare function protectMentionsInChunks(chunks: string[]): string[]; export type CreateMeetReplyDispatcherOpts = { cfg: ClawdbotConfig; agentId: string; runtime: RuntimeEnv; chatId: string; threadId?: string; senderId?: string; mentionedBot?: boolean; replyToMessageId?: string; accountId: string; bot: MeetBot; botUserId: string; mediaLocalRoots?: readonly string[]; sessionInfo?: SessionInfo; apiToken?: string; apiEndpoint?: string; typingMode?: "none" | "instant" | "message"; }; export declare function createMeetReplyDispatcher(opts: CreateMeetReplyDispatcherOpts): Promise<{ dispatcher: import("node_modules/openclaw/dist/hook-runner-global-CM7gDpaY.js").pt; replyOptions: { sourceReplyDeliveryMode?: import("openclaw/plugin-sdk/channel-reply-pipeline").SourceReplyDeliveryMode | undefined; onReplyStart?: (() => Promise | void) | undefined; onTypingController?: ((typing: { onReplyStart: () => Promise; startTypingLoop: () => Promise; startTypingOnText: (text?: string) => Promise; refreshTypingTtl: () => void; isActive: () => boolean; markRunComplete: () => void; markDispatchIdle: () => void; cleanup: () => void; }) => void) | undefined; onTypingCleanup?: (() => void) | undefined; }; markDispatchIdle: () => void; markRunComplete: () => void; }>;