import type { PluginConfig, ResolvedWechatMpAccount } from "./types.js"; export { DEFAULT_ACCOUNT_ID } from "./config.js"; export type { ResolvedWechatMpAccount } from "./types.js"; /** * WeChat MP ChannelPlugin composition root skeleton. * Provides the complete plugin surface for host registration. */ export declare const wechatMpPlugin: { id: string; meta: { id: "wechat-mp"; label: "WeChat MP"; selectionLabel: "WeChat Official Account (微信公众号)"; docsPath: "/channels/wechat-mp"; docsLabel: "wechat-mp"; blurb: "微信公众号渠道,支持关注用户通过公众号与 AI 交互"; aliases: readonly ["weixin-mp", "微信公众号", "公众号"]; order: 81; }; capabilities: { chatTypes: readonly ["direct"]; media: boolean; reactions: boolean; threads: boolean; edit: boolean; reply: boolean; polls: boolean; activeSend: boolean; }; messaging: { normalizeTarget: (raw: string) => string | undefined; targetResolver: { looksLikeId: (raw: string, normalized?: string) => boolean; hint: string; }; formatTargetDisplay: (params: { target: string; display?: string; }) => string; }; configSchema: { schema: { type: string; additionalProperties: boolean; properties: { enabled: { type: string; }; name: { type: string; }; defaultAccount: { type: string; }; appId: { type: string; }; appSecret: { type: string; }; encodingAESKey: { type: string; }; token: { type: string; }; webhookPath: { type: string; }; messageMode: { type: string; enum: string[]; }; replyMode: { type: string; enum: string[]; }; activeDeliveryMode: { type: string; enum: string[]; }; renderMarkdown: { type: string; }; welcomeText: { type: string; }; dmPolicy: { type: string; enum: string[]; }; allowFrom: { type: string; items: { type: string; }; }; accounts: { type: string; additionalProperties: { type: string; additionalProperties: boolean; properties: { name: { type: string; }; enabled: { type: string; }; appId: { type: string; }; appSecret: { type: string; }; encodingAESKey: { type: string; }; token: { type: string; }; webhookPath: { type: string; }; messageMode: { type: string; enum: string[]; }; replyMode: { type: string; enum: string[]; }; activeDeliveryMode: { type: string; enum: string[]; }; renderMarkdown: { type: string; }; welcomeText: { type: string; }; dmPolicy: { type: string; enum: string[]; }; allowFrom: { type: string; items: { type: string; }; }; }; }; }; }; }; }; reload: { configPrefixes: string[]; }; onboarding: { channel: "wechat-mp"; getStatus: (params: { cfg: PluginConfig; }) => Promise<{ channel: "wechat-mp"; configured: boolean; statusLines: string[]; selectionHint: string; quickstartScore: number; }>; configure: (params: { cfg: PluginConfig; prompter: import("./onboarding.js").WizardPrompter; }) => Promise<{ cfg: PluginConfig; accountId: string; }>; disable: (cfg: PluginConfig) => PluginConfig; }; config: { listAccountIds: (cfg: PluginConfig) => string[]; resolveAccount: (cfg: PluginConfig, accountId?: string) => ResolvedWechatMpAccount; defaultAccountId: (cfg: PluginConfig) => string; setAccountEnabled: (params: { cfg: PluginConfig; accountId?: string; enabled: boolean; }) => PluginConfig; deleteAccount: (params: { cfg: PluginConfig; accountId?: string; }) => PluginConfig; isConfigured: (account: ResolvedWechatMpAccount) => boolean; describeAccount: (account: ResolvedWechatMpAccount) => { accountId: string; name: string | undefined; enabled: boolean; configured: boolean; canSendActive: boolean; webhookPath: string; }; resolveAllowFrom: (params: { cfg: PluginConfig; accountId?: string; }) => string[]; formatAllowFrom: (params: { allowFrom: (string | number)[]; }) => string[]; }; setup: { resolveAccountId: (params: { cfg: PluginConfig; accountId?: string; }) => string; applyAccountConfig: (params: { cfg: PluginConfig; accountId?: string; config?: Record; }) => PluginConfig; }; directory: { canResolve: (params: { target: string; }) => boolean; resolveTarget: (params: { cfg: PluginConfig; target: string; }) => { channel: string; accountId: string | undefined; to: string; } | null; resolveTargets: (params: { cfg: PluginConfig; targets: string[]; }) => { channel: string; accountId?: string; to: string; }[]; getTargetFormats: () => string[]; }; outbound: { deliveryMode: "direct"; textChunkLimit: number; sendText: (params: { cfg: PluginConfig; accountId?: string; to: string; text: string; }) => Promise<{ channel: string; ok: boolean; messageId: string; error: Error | undefined; }>; sendTemplate: (params: { cfg: PluginConfig; accountId?: string; to: string; templateId: string; data: Record; url?: string; miniprogram?: { appid: string; pagepath?: string; }; }) => Promise<{ channel: string; ok: boolean; messageId: string; error: Error | undefined; }>; sendMedia: (params: { cfg: PluginConfig; accountId?: string; to: string; mediaType: import("./types.js").MediaMessageType; buffer: Buffer | Uint8Array; filename?: string; title?: string; description?: string; }) => Promise<{ channel: string; ok: boolean; messageId: string; error: Error | undefined; }>; checkCapability: (params: { cfg: PluginConfig; accountId?: string; to: string; timeWindowConfig?: import("./types.js").TimeWindowConfig; }) => Promise; checkTimeWindow: (params: { config?: import("./types.js").TimeWindowConfig; }) => boolean; recordInteraction: (params: { cfg: PluginConfig; accountId?: string; openId: string; timestamp?: number; }) => Promise; }; gateway: { startAccount: (ctx: { cfg: PluginConfig; runtime?: unknown; abortSignal?: AbortSignal; accountId: string; setStatus?: (status: Record) => void; log?: { info: (message: string) => void; error: (message: string) => void; }; }) => Promise; stopAccount: (ctx: { accountId: string; setStatus?: (status: Record) => void; }) => Promise; getStatus: () => { connected: boolean; }; }; status: { probeAccount: (params: { cfg: PluginConfig; accountId?: string; }) => Promise<{ channel: "wechat-mp"; accountId: string; configured: boolean; canSendActive: boolean; webhookPath?: string; authOk: boolean; lastInboundAt?: number; error?: string; }>; }; }; //# sourceMappingURL=channel.d.ts.map