import { EvmBlockchain } from './types';
import { MagicEdenClient } from './client';
import { ClientConfig } from './types';
import { Keypair } from '@solana/web3.js';
import { SolanaWalletProvider } from './wallet/solana';
import { EvmWalletProvider } from './wallet/evm';
import { ViemWalletProviderOptions } from './wallet/evm/viemWalletProvider';
import { EvmNftService } from './services/nft/evm';
import { SolanaNftService } from './services/nft/solana';
/**
 * Magic Eden SDK V1 implementation
 */
declare class MagicEdenSDKV1 {
    /**
     * Creates a new Magic Eden API client for Solana
     * @param apiKey Your Magic Eden API key
     * @param walletProvider The wallet provider to use
     * @param clientConfig Additional client configuration
     * @returns A new Magic Eden API client for Solana
     */
    static createSolanaClient<T extends SolanaWalletProvider>(apiKey: string, walletProvider: T, clientConfig?: Partial<Omit<ClientConfig<'solana'>, 'apiKey'>>): MagicEdenClient<SolanaNftService>;
    /**
     * Creates a new Magic Eden API client for Solana using a keypair
     * @param apiKey Your Magic Eden API key
     * @param keypair The Solana keypair to use for the client
     * @param options Optional configuration
     * @param options.rpcUrl Custom Solana RPC URL (defaults to public endpoint if not provided)
     * @param options.clientConfig Additional client configuration
     * @returns A new Magic Eden API client for Solana
     */
    static createSolanaKeypairClient(apiKey: string, keypair: Keypair, options?: {
        /**
         * Custom Solana RPC URL
         *
         * @default 'https://api.mainnet-beta.solana.com'
         */
        rpcUrl?: string;
        /**
         * Additional client configuration
         */
        clientConfig?: Partial<Omit<ClientConfig<'solana'>, 'apiKey'>>;
    }): MagicEdenClient<SolanaNftService>;
    /**
     * Creates a new Magic Eden API client for an EVM blockchain
     * @param apiKey Your Magic Eden API key
     * @param walletProvider The wallet provider to use
     * @param clientConfig Additional client configuration
     * @returns A new Magic Eden API client for an EVM blockchain
     */
    static createEvmClient<T extends EvmWalletProvider>(apiKey: string, walletProvider: T, clientConfig?: Partial<Omit<ClientConfig<'evm'>, 'apiKey'>>): MagicEdenClient<EvmNftService>;
    /**
     * Creates a new Magic Eden API client for an EVM blockchain using a private key
     * @param apiKey Your Magic Eden API key
     * @param privateKey The private key to use for the client
     * @param blockchain The blockchain to use
     * @param options Optional configuration
     * @param options.clientConfig Additional client configuration
     * @param options.walletOptions Wallet options
     * @returns A new Magic Eden API client for an EVM blockchain
     */
    static createViemEvmClient(apiKey: string, privateKey: `0x${string}`, blockchain: EvmBlockchain, options?: {
        /**
         * Additional client configuration
         */
        clientConfig?: Partial<Omit<ClientConfig<'evm'>, 'apiKey'>>;
        /**
         * Wallet options
         */
        walletOptions?: ViemWalletProviderOptions;
    }): MagicEdenClient<EvmNftService>;
}
/**
 * Magic Eden SDK
 */
export declare class MagicEdenSDK {
    /**
     * Magic Eden SDK V1 API methods
     */
    static v1: typeof MagicEdenSDKV1;
}
export {};
