/**
 * Wallet connection and transaction execution utilities
 *
 * Supports two modes:
 * 1. Reown AppKit - unified wallet modal (when reownProjectId is provided)
 * 2. Legacy - direct ethers.js + solana-connect (fallback)
 */
import { Adapter } from "@solana/wallet-adapter-base";
import { M0LiquidityApi } from "@m0-foundation/liquidity-sdk";
/**
 * Initialize wallet system
 * If reownProjectId is provided, uses Reown AppKit; otherwise uses legacy mode
 */
export declare function initWallet(reownProjectId?: string, options?: {
    disableEvm?: boolean;
    disableSvm?: boolean;
}): Promise<void>;
/**
 * Check if using Reown mode
 */
export declare function isUsingReown(): boolean;
/**
 * Gets the current Solana wallet adapter (legacy mode only)
 */
export declare function getSolanaWallet(): Adapter | null;
/**
 * Sets up a listener for wallet changes (works in both modes)
 */
export declare function onWalletChange(callback: (address: string | null) => void): void;
/**
 * Gets the current connected wallet address (works in both modes)
 */
export declare function getWalletAddress(): string | null;
/**
 * Sets up a listener for Solana wallet changes (legacy mode)
 * @deprecated Use onWalletChange instead
 */
export declare function onSolanaWalletChange(callback: (adapter: Adapter | null) => void): void;
/**
 * Opens the wallet connection modal
 * In Reown mode, opens the unified modal
 * In legacy mode, opens Solana menu for SVM or connects directly for EVM
 */
export declare function openWalletModal(): void;
/**
 * Opens the Solana wallet connection menu (legacy mode)
 * @deprecated Use openWalletModal instead
 */
export declare function openSolanaWalletMenu(): void;
/**
 * Connects wallet and returns address
 * In Reown mode, opens the modal and returns when connected
 * In legacy mode, connects via window.ethereum for EVM
 */
export declare function connectWallet(runtime?: "evm" | "svm"): Promise<string>;
/**
 * Connects to an EVM wallet (MetaMask) - legacy mode
 */
export declare function connectEvmWallet(): Promise<string>;
/**
 * Disconnects the wallet
 */
export declare function disconnectWallet(): Promise<void>;
/**
 * Disconnects the EVM wallet (legacy mode)
 */
export declare function disconnectEvmWallet(): void;
/**
 * Switches to a specific EVM chain
 */
export declare function switchEvmChain(chainId: number): Promise<void>;
/**
 * Executes an EVM transaction
 */
export declare function executeEvmTransaction(txData: M0LiquidityApi.EvmPayload): Promise<string>;
/**
 * Executes a Solana transaction
 */
export declare function executeSolanaTransaction(txData: M0LiquidityApi.SvmPayload, rpcOverrides: Record<string, string>): Promise<string>;
/**
 * Cleanup wallet resources
 */
export declare function cleanupWallet(): void;
