import type { WalletConnectConfig, ConnectResult, SendTransactionParams, SendTransactionResult, WaitForResultOptions, TxStatusResult, WalletConnectEventType, WalletConnectEventCallback } from './types'; export declare class BaseWalletConnect { protected config: Required> & Pick; private listeners; private modal; private wsTransport; private pollingTransport; private currentResult; private initPromise; constructor(config: WalletConnectConfig); /** * Init flow chạy lúc khởi tạo: (1) resumeConnect — CHỈ cho connect pending (tự bật modal + * emit 'connect'); (2) validateSession — kiểm tra session đã lưu còn sống trên server không, * hết hạn thì xoá localStorage + toast. Tx resume do DApp tự gọi resume(). */ private runInit; /** Chờ init xong (resume + kiểm tra hết hạn) trước khi đọc trạng thái kết nối. */ ready(): Promise; connect(): Promise; disconnect(): void; sendTransaction(params: SendTransactionParams): Promise; waitForResult(txId: string, options?: WaitForResultOptions): Promise; isConnected(): boolean; getWallet(): ConnectResult | null; on(event: WalletConnectEventType, cb: WalletConnectEventCallback): void; off(event: WalletConnectEventType, cb: WalletConnectEventCallback): void; private get storageKey(); private fetchWallets; private filterWallets; private startConnect; private initSession; private listenForConfirmation; private cleanup; private emit; private sleep; private storeSession; private restoreSession; private removeStoredSession; /** * Auto-run lúc khởi tạo cho phiên ĐÃ connect (restore từ localStorage): hỏi server * /connect/status; nếu không còn CONFIRMED (connection hết hạn / bị disconnect phía ví) * thì tự xoá session của ĐÚNG ví này + emit 'disconnect'. KHÔNG dùng disconnect() để * tránh clearAllRelatedSessions cuốn phăng ví khác. Lỗi mạng -> giữ nguyên, thử lại lần sau. */ private validateSession; private get pendingKey(); private storePending; private readPending; private clearPending; /** * Auto-run lúc khởi tạo — CHỈ xử lý CONNECT pending: check /connect/status, * tự bật modal (success/rejected/expired), set state + emit 'connect', rồi * XÓA pending khỏi storage. Không đụng tx (tx do DApp gọi resume()). */ private resumeConnect; /** * DApp gọi 1 lần lúc startup — CHỈ xử lý TX pending: check /dex/status, XÓA * pending, trả kết quả để DApp tự hiển thị (TxResultModal + số lượng). * Connect resume tự chạy ở constructor (resumeConnect). */ resume(): Promise<{ type: 'tx'; status: string; result: TxStatusResult; } | null>; /** Bật modal kết quả connect khi resume (đóng app -> mở lại), vì modal của * connect() cũ đã bị hủy. Hỗ trợ cả success / rejected / expired. */ private showResumeConnectModal; private registerGlobal; /** Sync connect result to the specific wallet instance on window (e.g. window.onedollar) */ private syncToWalletInstance; /** Clear all related sessions from all window instances and localStorage */ private clearAllRelatedSessions; }