import { Chain } from '@sequelfinance/types';
import { EVMChain } from '@sequelfinance/types';
import { EVMWalletOptions } from '@sequelfinance/types';
import { WalletOption } from '@sequelfinance/types';

export declare const evmWallet: {
    connectMethodName: "connectEVMWallet";
    connect: ({ addChain, config: { covalentApiKey, ethplorerApiKey }, }: {
        addChain: any;
        config: EVMWalletConfig;
    }) => (chains: EVMChain[], walletType?: EVMWalletOptions) => Promise<boolean>;
    isDetected: (walletOption: WalletOption) => boolean;
    getETHDefaultWallet: () => WalletOption.METAMASK | WalletOption.COINBASE_WEB | WalletOption.TRUSTWALLET_WEB | WalletOption.BRAVE;
};

declare type EVMWalletConfig = {
    ethplorerApiKey?: string;
    covalentApiKey?: string;
};

declare type KeplrConfig = {};

export declare const keplrWallet: {
    connectMethodName: "connectKeplr";
    connect: ({ addChain }: {
        addChain: any;
        config: KeplrConfig;
    }) => (client?: any) => Promise<boolean>;
    isDetected: () => WalletStatus;
};

export declare enum WalletStatus {
    NotInstalled = 0,
    Detected = 1
}

declare const XDEFI_SUPPORTED_CHAINS: readonly [Chain.Avalanche, Chain.Binance, Chain.BinanceSmartChain, Chain.Bitcoin, Chain.BitcoinCash, Chain.Doge, Chain.Ethereum, Chain.Litecoin, Chain.THORChain];

declare type XDEFIConfig = {
    covalentApiKey?: string;
    ethplorerApiKey?: string;
    utxoApiKey?: string;
};

export declare const xdefiWallet: {
    connectMethodName: "connectXDEFI";
    connect: ({ addChain, config: { covalentApiKey, ethplorerApiKey, utxoApiKey }, }: {
        addChain: any;
        config: XDEFIConfig;
    }) => (chains: (typeof XDEFI_SUPPORTED_CHAINS)[number][]) => Promise<boolean>;
    isDetected: (walletOption: WalletOption) => boolean;
};

export { }
