import IERC20ServiceInterface from '../interfaces/ERC20';
import { Configuration, SmartBCHTransactionTypeExtended, tSmartBCHAddress, tStringCurrencyUnits, tStringDecimalUnits, TokenMetadataType } from '../types';
import { IERC20Detailed } from '../contract-types';
import BaseService from './BaseService';
export default class ERC20Service extends BaseService<IERC20Detailed> implements IERC20ServiceInterface {
    readonly tokenDecimals: {
        [address: string]: number;
    };
    constructor(config: Configuration);
    approve: (user: tSmartBCHAddress, token: tSmartBCHAddress, spender: tSmartBCHAddress, amount: tStringDecimalUnits) => SmartBCHTransactionTypeExtended;
    isApproved: (token: tSmartBCHAddress, userAddress: tSmartBCHAddress, spender: tSmartBCHAddress, amount: tStringCurrencyUnits) => Promise<boolean>;
    decimalsOf: (token: tSmartBCHAddress) => Promise<number>;
    getTokenData: (token: tSmartBCHAddress) => Promise<TokenMetadataType>;
}
