export { DEFAULT_ACCOUNT_ID as DINGTALK_DEFAULT_ACCOUNT_ID, DingtalkConfig, DingtalkSendResult, ResolvedDingtalkAccount, dingtalkPlugin, getDingtalkRuntime, sendMessageDingtalk, setDingtalkRuntime } from '@openclaw-china/dingtalk'; export { DEFAULT_ACCOUNT_ID as FEISHU_DEFAULT_ACCOUNT_ID, FeishuConfig, FeishuSendResult, ResolvedFeishuAccount, feishuPlugin, getFeishuRuntime, sendMessageFeishu, setFeishuRuntime } from '@openclaw-china/feishu-china'; export { ResolvedWecomAccount, DEFAULT_ACCOUNT_ID as WECOM_DEFAULT_ACCOUNT_ID, WecomConfig, WecomInboundMessage, getWecomRuntime, setWecomRuntime, wecomPlugin } from '@openclaw-china/wecom'; export { AccessTokenCacheEntry, ResolvedWecomAppAccount, DEFAULT_ACCOUNT_ID as WECOM_APP_DEFAULT_ACCOUNT_ID, WecomAppConfig, WecomAppDmPolicy, WecomAppInboundMessage, WecomAppSendTarget, clearAccessTokenCache, clearAllAccessTokenCache, downloadAndSendImage, getAccessToken, getWecomAppRuntime, sendWecomAppImageMessage, sendWecomAppMarkdownMessage, sendWecomAppMessage, setWecomAppRuntime, stripMarkdown, wecomAppPlugin } from '@openclaw-china/wecom-app'; export { ResolvedWecomKfAccount, DEFAULT_ACCOUNT_ID as WECOM_KF_DEFAULT_ACCOUNT_ID, WecomKfAccountConfig, WecomKfConfig, WecomKfDmPolicy, SyncMsgItem as WecomKfSyncMsgItem, SyncMsgResponse as WecomKfSyncMsgResponse, getWecomKfRuntime, setWecomKfRuntime, wecomKfPlugin } from '@openclaw-china/wecom-kf'; export { DEFAULT_ACCOUNT_ID as QQBOT_DEFAULT_ACCOUNT_ID, QQBotConfig, QQBotSendResult, ResolvedQQBotAccount, getQQBotRuntime, qqbotPlugin, setQQBotRuntime } from '@openclaw-china/qqbot'; /** * @openclaw-china/channels * 统一渠道包入口 * * 导出所有渠道插件,提供统一注册函数 * * Requirements: Unified Package Entry, Unified Distribution */ /** * 渠道配置接口 */ interface ChannelConfig { /** 是否启用该渠道 */ enabled?: boolean; [key: string]: unknown; } interface WecomRouteConfig extends ChannelConfig { webhookPath?: string; accounts?: Record; } interface WecomAppRouteConfig extends ChannelConfig { webhookPath?: string; accounts?: Record; } interface WecomKfRouteConfig extends ChannelConfig { webhookPath?: string; accounts?: Record; } /** * Moltbot 配置接口(符合官方约定) * 配置路径: channels..enabled */ interface MoltbotConfig { channels?: { dingtalk?: ChannelConfig; "feishu-china"?: ChannelConfig; wecom?: WecomRouteConfig; "wecom-app"?: WecomAppRouteConfig; "wecom-kf"?: WecomKfRouteConfig; qqbot?: ChannelConfig; qq?: ChannelConfig; [key: string]: ChannelConfig | undefined; }; [key: string]: unknown; } /** * Moltbot 插件 API 接口 */ interface MoltbotPluginApi { registerChannel: (opts: { plugin: unknown; }) => void; registerCli?: (registrar: (ctx: { program: unknown; config?: MoltbotConfig; }) => void | Promise, opts?: { commands?: string[]; }) => void; logger?: { info?: (message: string) => void; warn?: (message: string) => void; error?: (message: string) => void; }; runtime?: { config?: { writeConfigFile?: (cfg: unknown) => Promise; }; }; config?: MoltbotConfig; [key: string]: unknown; } /** * 支持的渠道列表 */ declare const SUPPORTED_CHANNELS: readonly ["dingtalk", "feishu-china", "wecom", "wecom-app", "wecom-kf", "qqbot"]; type SupportedChannel = (typeof SUPPORTED_CHANNELS)[number]; /** * 根据 Moltbot 配置注册启用的渠道 * * 符合 Moltbot 官方约定:从 cfg.channels..enabled 读取配置 * * @param api Moltbot 鎻掍欢 API * @param cfg Moltbot 配置(可选,默认从 api.config 读取) * * @example * ```ts * // moltbot.json 配置 * { * "channels": { * "dingtalk": { * "enabled": true, * "clientId": "...", * "clientSecret": "..." * } * } * } * ``` */ declare function registerChannelsByConfig(api: MoltbotPluginApi, cfg?: MoltbotConfig): void; /** * 统一渠道插件定义 * * 包含所有支持的渠道,通过配置启用 * 配置路径符合 Moltbot 官方约定: channels. */ declare const channelsPlugin: { id: string; name: string; description: string; configSchema: { type: string; additionalProperties: boolean; properties: {}; }; /** * 注册所有启用的渠道 * * 从 api.config.channels..enabled 读取配置 */ register(api: MoltbotPluginApi): void; }; export { type ChannelConfig, type MoltbotConfig, type MoltbotPluginApi, SUPPORTED_CHANNELS, type SupportedChannel, type WecomAppRouteConfig, type WecomKfRouteConfig, type WecomRouteConfig, channelsPlugin as default, registerChannelsByConfig };