import { Address } from '../../../../Wallet/entities/Address';
import { Transports } from '../../Transports';
import { EvmTransaction } from './EvmTransaction';
import { CurrencyWallet } from '../../CurrencyWallet';
import { EvmCurrencyInfo } from '../../../CurrencyInfo';
import { EvmCurrencyUtils } from '../../../CurrencyUtils/abstract/EvmCurrencyUtils';
import { CurrencyAmount } from '../../../CurrencyUtils';
export declare class EvmWallet<CI extends EvmCurrencyInfo> extends CurrencyWallet<CI> {
    utils: EvmCurrencyUtils<CI>;
    constructor(utils: EvmCurrencyUtils<CI>, transports: Transports);
    getAddress(): Promise<string>;
    getBalance(): Promise<{
        confirmed: CurrencyAmount<CI>;
        unconfirmed: CurrencyAmount<CI>;
    }>;
    createTransfer(toAddress: Address, amount: CurrencyAmount<CI>): Promise<EvmTransaction<CI>>;
    prepareSmartContractTransaction(smartContractAddress: Address, amount: CurrencyAmount<CI>, data: string): Promise<EvmTransaction<CI>>;
    signMessage(message: string): Promise<string>;
}
