import { VersionedTransaction } from '@solana/web3.js';
import { A as AdaptedWallet } from './wallet-DfvPIcuW.cjs';
import { Signer } from 'ethers/lib/ethers.js';
import { CustomTransport, HttpTransport, WalletClient } from 'viem';

/**
 * Wraps a Solana-compatible wallet implementation in the {@link AdaptedWallet} interface.
 *
 * @param walletAddress - The active Solana account public key as a base58 string.
 * @param chainId - Numeric identifier representing the target Solana cluster.
 * @param rpcUrl - RPC endpoint used for follow-on requests (exposed for consumers that need it).
 * @param signAndSendTransaction - Wallet-supplied runner that signs and submits {@link VersionedTransaction}s.
 * @returns An {@link AdaptedWallet} tailored for the Solana virtual machine (SVM).
 */
declare const adaptSolanaWallet: (walletAddress: string, chainId: number, rpcUrl: string, signAllTransactions: (transaction: VersionedTransaction[]) => Promise<VersionedTransaction[]>) => AdaptedWallet;

/**
 * Wraps an ethers {@link Signer} in the {@link AdaptedWallet} interface.
 *
 * @param signer - Ethers.js signer instance (e.g. from MetaMask, WalletConnect, JsonRpcProvider).
 * @param transport - Optional transport used for RPC calls when delegating to `viem`.
 * @returns An {@link AdaptedWallet} targeting the EVM.
 */
declare const adaptEthersSigner: (signer: Signer, transport?: CustomTransport | HttpTransport) => AdaptedWallet;
/**
 * Wraps a `viem` {@link WalletClient} instance in the {@link AdaptedWallet} interface.
 *
 * @param wallet - Viem wallet client implementing transaction + signature primitives.
 * @returns An {@link AdaptedWallet} targeting the EVM with viem semantics.
 */
declare const adaptViemWallet: (wallet: WalletClient) => AdaptedWallet;

export { adaptEthersSigner, adaptSolanaWallet, adaptViemWallet };
