import HookedWalletSubprovider from "web3-provider-engine/subproviders/hooked-wallet";
import { Remote } from "./util";
import ProviderEngine from "web3-provider-engine";
import { AbstractProvider } from 'web3-core';
export interface MnemonicOptions {
    mnemonic: string;
    rpc: string;
    path?: string;
    numberOfAccounts?: number;
}
export interface LedgerOptions {
    rpc: string;
    path?: string;
    numberOfAccounts?: number;
    accountsOffset?: number;
    askConfirm?: boolean;
}
export declare class HDWalletProvider implements AbstractProvider {
    readonly getAddresses: () => Promise<string[]>;
    readonly engine: ProviderEngine;
    static mnemonic(options: MnemonicOptions): HDWalletProvider;
    static ledgerHID(options: LedgerOptions): Promise<HDWalletProvider>;
    static ledgerBLE(options: LedgerOptions): Promise<HDWalletProvider>;
    /**
     * Initialize HDWallet using some sort of provider.
     */
    constructor(signer: HookedWalletSubprovider, remote: Remote);
    send(payload: ProviderEngine.JsonRPCRequest, callback: ProviderEngine.Callback<ProviderEngine.JsonRPCResponse>): void;
    sendAsync(payload: ProviderEngine.JsonRPCRequest, callback: ProviderEngine.Callback<ProviderEngine.JsonRPCResponse>): void;
}
//# sourceMappingURL=hdwallet.provider.d.ts.map