type ActiveLogin = { sessionKey: string; id: string; qrcode: string; qrcodeUrl: string; startedAt: number; botToken?: string; status?: "wait" | "scaned" | "confirmed" | "expired" | "scaned_but_redirect"; error?: string; /** The current effective polling base URL; may be updated on IDC redirect. */ currentApiBaseUrl?: string; }; /** Default `bot_type` for ilink get_bot_qrcode / get_qrcode_status (this channel build). */ export declare const DEFAULT_ILINK_BOT_TYPE = "3"; export type WeixinQrStartResult = { qrcodeUrl?: string; message: string; sessionKey: string; }; export type WeixinQrWaitResult = { connected: boolean; botToken?: string; accountId?: string; baseUrl?: string; /** The user ID of the person who scanned the QR code; add to allowFrom. */ userId?: string; message: string; }; export declare function startWeixinLoginWithQr(opts: { verbose?: boolean; timeoutMs?: number; force?: boolean; accountId?: string; botType?: string; routeTag?: string; }): Promise; export declare function getWeixinActiveLoginSnapshot(sessionKey: string): { qrcodeUrl: string; status?: ActiveLogin["status"]; } | null; export declare function waitForWeixinLogin(opts: { timeoutMs?: number; verbose?: boolean; /** When true, do not write to stdout (browser / gateway QR flow). */ silent?: boolean; sessionKey: string; botType?: string; routeTag?: string; }): Promise; export {};