import BigNumber from "bignumber.js";
import { Overrides } from "ethers";
import { PromiEvent } from "../../lib/promiEvent";
import { Asset, DeferHandler, Handler } from "../../types/types";
interface ConstructorOptions {
}
interface AddressOptions {
}
interface BalanceOptions extends AddressOptions {
    address?: string;
}
interface TxOptions extends Overrides {
    approve?: boolean;
}
export declare class ERC20Handler implements Handler<ConstructorOptions, AddressOptions, BalanceOptions, TxOptions> {
    private readonly network;
    private readonly sharedState;
    private _decimals;
    constructor(_privateKey: string, network: string, _options?: ConstructorOptions, sharedState?: any);
    readonly handlesAsset: (asset: Asset) => boolean;
    readonly address: (asset: Asset, options: AddressOptions, deferHandler: DeferHandler) => Promise<string>;
    readonly getBalance: (assetIn: Asset, options: BalanceOptions, deferHandler: DeferHandler) => Promise<BigNumber>;
    readonly getBalanceInSats: (assetIn: Asset, options: BalanceOptions, deferHandler: DeferHandler) => Promise<BigNumber>;
    readonly send: (to: string, valueIn: BigNumber, assetIn: Asset, options: TxOptions, deferHandler: DeferHandler) => PromiEvent<string>;
    readonly sendSats: (to: string, valueIn: BigNumber, assetIn: Asset, options: TxOptions, deferHandler: DeferHandler) => PromiEvent<string>;
    private readonly getContract;
    private readonly decimals;
}
export {};
