import { Wallet, providers } from 'ethers';
import { Address } from './primitives';
/**
 * Manager for EthersJS Wallets
 * Ethersjs wallets can be connect to a provider, then convenience functions like getBalance work
 * This will auto connect wallets to a provider if it was specified in a constructor
 */
export declare class WalletManager {
    readonly defaultProvider?: providers.Provider | undefined;
    protected readonly wallets: Map<Address, Wallet>;
    constructor(privateKeys?: ReadonlyArray<string>, defaultProvider?: providers.Provider | undefined);
    addFromPrivateKey(privateKey: string): void;
    addFromMnemonic(mnemonic: string, dp?: string): void;
    addWallet(wallet: Wallet): Wallet;
    getWalletForAddress(address: Address): Wallet | undefined;
    createEmptyWallet(): Wallet;
    /**
     * Do not track this wallet in wallets map so it won't be possible find it's private key (sign any message)
     */
    createEmptyUntrackedWallet(): Wallet;
    getWallets(): Wallet[];
}
