import { BalanceResult, ResolveablePayport, Payport } from '@faast/payments-common';
import { BaseErc20PaymentsConfig, EthereumUnsignedTransaction, EthereumTransactionOptions, EthereumTransactionInfo } from '../types';
import { BaseEthereumPayments } from '../BaseEthereumPayments';
import { Numeric } from '@faast/ts-common';
export declare abstract class BaseErc20Payments<Config extends BaseErc20PaymentsConfig> extends BaseEthereumPayments<Config> {
    tokenAddress: string;
    depositKeyIndex: number;
    masterAddress: string;
    constructor(config: Config);
    abstract getAddressSalt(index: number): string;
    abstract getPayport(index: number): Promise<Payport>;
    private newContract;
    getBalance(resolveablePayport: ResolveablePayport): Promise<BalanceResult>;
    isSweepableBalance(balance: Numeric): Promise<boolean>;
    createTransaction(from: number | string, to: ResolveablePayport, amountMain: string, options?: EthereumTransactionOptions): Promise<EthereumUnsignedTransaction>;
    createSweepTransaction(from: string | number, to: ResolveablePayport, options?: EthereumTransactionOptions): Promise<EthereumUnsignedTransaction>;
    private getErc20TransferLogAmount;
    getTransactionInfo(txid: string): Promise<EthereumTransactionInfo>;
    getNextSequenceNumber(payport: ResolveablePayport): Promise<string>;
    private getEthBaseBalance;
    private logTopicToAddress;
}
export default BaseErc20Payments;
