/**
 * Wallet Registry
 *
 * Central registry for managing wallet adapters and their metadata.
 * Provides wallet detection, listing, and adapter creation.
 *
 * Note: WalletConnect and Coinbase adapters are lazy-loaded to avoid
 * bundler issues with their dependencies.
 */
import type { WalletAdapter } from './types';
/**
 * Supported wallet types
 */
export declare enum WalletType {
    MetaMask = "metamask",
    Coinbase = "coinbase",
    WalletConnect = "walletconnect",
    Injected = "injected",
    Rabby = "rabby",
    Brave = "brave"
}
/**
 * Wallet metadata for UI display
 */
export interface WalletInfo {
    /** Unique identifier */
    id: WalletType;
    /** Display name */
    name: string;
    /** Short description */
    description: string;
    /** Icon path (relative to /public or absolute URL) */
    icon: string;
    /** Whether this wallet is currently installed/available */
    installed: boolean;
    /** Download URL for non-installed wallets */
    downloadUrl?: string;
    /** Whether this wallet requires external connection (QR code, etc.) */
    isExternal?: boolean;
}
/**
 * Configuration for wallet registry
 */
export interface WalletRegistryConfig {
    /** WalletConnect project ID (required for WalletConnect) */
    walletConnectProjectId?: string;
    /** App name (for Coinbase Wallet and WalletConnect) */
    appName?: string;
    /** App description (for WalletConnect) */
    appDescription?: string;
    /** App URL (for WalletConnect) */
    appUrl?: string;
    /** App icon URLs (for WalletConnect) */
    appIcons?: string[];
    /** App logo URL (for Coinbase Wallet) */
    appLogoUrl?: string;
    /** Default chain ID */
    chainId?: number;
    /** RPC URL */
    rpcUrl?: string;
}
/**
 * Wallet Registry - manages available wallets and creates adapters
 */
export declare class WalletRegistry {
    private config;
    constructor(config?: WalletRegistryConfig);
    getAvailableWallets(): WalletInfo[];
    createAdapter(walletType: WalletType): Promise<WalletAdapter>;
    hasAnyWallet(): boolean;
    getRecommendedWallet(): WalletInfo | null;
}
export declare function createWalletRegistry(config?: WalletRegistryConfig): WalletRegistry;
//# sourceMappingURL=WalletRegistry.d.ts.map