import { Address } from '../../Wallet/entities/Address';
import { Transports } from './Transports';
import { Transaction } from './Transaction';
import { CurrencyUtils } from '../CurrencyUtils/CurrencyUtils';
import { CurrencyAmount } from '../CurrencyUtils';
import { CurrencyInfo } from '../CurrencyInfo';
export declare abstract class CurrencyWallet<CI extends CurrencyInfo> {
    readonly utils: CurrencyUtils<CI>;
    protected transports: Transports;
    protected constructor(utils: CurrencyUtils<CI>, transports: Transports);
    abstract getAddress(): Promise<string>;
    abstract getBalance(): Promise<{
        confirmed: CurrencyAmount<CI>;
        unconfirmed: CurrencyAmount<CI>;
    }>;
    abstract createTransfer(toAddress: Address, amount: CurrencyAmount<CI>): Promise<Transaction<CI>>;
    getPublicKey(): Promise<import("../../Wallet/entities/PublicKey").PublicKey>;
    getPrivateKey(): Promise<import("../../Wallet/entities/Secret/implementations/PrivateKey").PrivateKey>;
    signMessage(message: string | Uint8Array): Promise<string>;
}
