import { type Credentials, type RawWeixinMessage } from './types.js'; export type MessageListener = (msg: RawWeixinMessage, contextToken: string) => void; export type ScanCallback = (qrcode: string, status: 'wait' | 'scaned' | 'confirmed' | 'expired') => void; /** * Singleton that manages QR login lifecycle and the long-poll loop. */ export declare class WeixinClientManager { private static _instance?; static getInstance(): WeixinClientManager; private _credentials?; private _cursor; private _stopped; private _running; private _currentController?; private _listeners; private readonly _contextTokens; private _scanCallback?; private constructor(); private _credPath; loadCredentials(): Promise; saveCredentials(cred: Credentials): Promise; clearCredentials(): Promise; login(force?: boolean): Promise; ensureCredentials(): Promise; start(): Promise; stop(): void; private _runLoop; private _handleMessage; setScanCallback(cb: ScanCallback): void; addListener(instanceId: symbol, listener: MessageListener): void; removeListener(instanceId: symbol): void; getContextToken(userId: string): string | undefined; get credentials(): Credentials | undefined; } //# sourceMappingURL=weixin-client-manager.d.ts.map