/** * CLI: Weixin QR login — start poll, show terminal QR, persist token + optional config merge. */ import type { Config } from '@xopcai/xopc/config/schema.js'; export type WeixinQrLoginCliOptions = { /** Config file path (same as CLI --config / XOPC_CONFIG). */ configPath?: string; verbose?: boolean; /** Client wait for scan (ms). */ timeoutMs?: number; /** Existing account id to re-login, or omit for a new account session. */ account?: string; /** When true, merge `channels.weixin.enabled` and accounts entry after success. */ writeConfig?: boolean; /** * When set (e.g. interactive onboard), merges Weixin after login into this in-memory snapshot * instead of reloading from disk so prior unsaved onboarding edits are preserved when saving. */ existingConfig?: Config; }; export declare function getWeixinLoginApiContext(cfg: Config, accountHint?: string): { baseUrl: string; routeTag?: string; }; export declare function mergeWeixinConfigAfterLogin(cfg: Config, normalizedAccountId: string): Config; /** * Run interactive Weixin QR login (terminal QR + long-poll until confirmed or timeout). */ export declare function runWeixinQrLoginCli(opts: WeixinQrLoginCliOptions): Promise<{ ok: boolean; accountId?: string; message: string; }>;