import { UnifiedPassportSDKConfig } from './types/provider';
import { Address, WalletPassportResult, PassportInfo, PendingBindRequest, PassportRequest } from './types';
/**
 * 统一的 Passport SDK - 支持任何 EIP-1193 兼容的 provider
 *
 * 兼容的 provider 包括：
 * - MetaMask (window.ethereum)
 * - WalletConnect
 * - Coinbase Wallet
 * - Trust Wallet
 * - 任何实现 EIP-1193 标准的钱包
 */
export declare class UnifiedPassportSDK {
    private config;
    private publicClient;
    private walletClient;
    private registryAddress;
    constructor(config: UnifiedPassportSDKConfig);
    /**
     * 获取当前使用的 provider 信息
     */
    getProviderInfo(): {
        isMetaMask: boolean;
        isCoinbaseWallet: boolean;
        chainId: string | undefined;
        selectedAddress: string | undefined;
    };
    /**
     * 请求连接钱包
     */
    connectWallet(): Promise<string[]>;
    /**
     * 获取当前账户
     */
    getAccounts(): Promise<string[]>;
    /**
     * 切换网络
     */
    switchChain(): Promise<void>;
    /**
     * 添加网络到钱包
     */
    addChain(): Promise<void>;
    /**
     * 创建 Passport
     */
    createPassport(request: PassportRequest, signature: `0x${string}`): Promise<string>;
    /**
     * 检查钱包是否有 Passport
     */
    checkWalletHasPassport(walletAddress: Address): Promise<WalletPassportResult>;
    /**
     * 获取 Passport 信息
     */
    getPassportInfo(passportAddress: Address): Promise<PassportInfo>;
    /**
     * 请求绑定钱包
     */
    requestBindWallet(passportAddress: Address, walletAddress: Address): Promise<string>;
    /**
     * 接受绑定请求
     */
    acceptBindRequest(passportAddress: Address): Promise<string>;
    /**
     * 拒绝绑定请求
     */
    rejectBindRequest(passportAddress: Address): Promise<string>;
    /**
     * 解绑钱包
     */
    unbindWallet(passportAddress: Address): Promise<string>;
    /**
     * 取消绑定请求
     */
    cancelBindRequest(passportAddress: Address, walletAddress: Address): Promise<string>;
    /**
     * 获取待处理绑定请求信息
     */
    getPendingBindRequest(passportAddress: Address, walletAddress: Address): Promise<PendingBindRequest>;
    /**
     * 监听 provider 事件
     */
    onAccountsChanged(callback: (accounts: string[]) => void): void;
    /**
     * 监听链切换事件
     */
    onChainChanged(callback: (chainId: string) => void): void;
    /**
     * 移除事件监听器
     */
    removeListener(eventName: string, callback: (...args: any[]) => void): void;
}
