import { Service } from '../../../Service';
import BigNumber from 'bignumber.js';
import { ABI } from '../../../interfaces/Enums';
import { Tx } from '../../../interfaces/Tx';
import { IERC20DerivativeService } from '../../../interfaces/IERC20DerivativeService';
import { IERC20Extend } from '../../../interfaces/IERC20Extend';
export declare class ERC20DerivativeService extends Service implements IERC20DerivativeService, IERC20Extend {
    static create(productAddress: string, abi?: ABI): Promise<ERC20DerivativeService>;
    private erc20;
    constructor(productAddress: string, abi: ABI);
    getPrice(): Promise<BigNumber>;
    decimals(): Promise<BigNumber>;
    getTotalWeiAssetsValue(): Promise<BigNumber>;
    balanceOf(address: string): Promise<BigNumber>;
    approve(toAddress: string, amount: number, gasPrice: number): Promise<Tx>;
    calculateApprovalGas(toAddress: string, amount: number): Promise<number>;
    getTotalSupply(): Promise<BigNumber>;
    valueOf(address: string): Promise<BigNumber>;
    getTokensAddresses(): Promise<string[]>;
    paused(): Promise<boolean>;
    redeem(redeemAmount: number, gasPrice?: number): Promise<Tx | null>;
    invest(investAmount: number, gasPrice?: number): Promise<Tx | null>;
}
