import TronWeb from 'tronweb';
import { BalanceResult, BasePayments, FeeOption, ResolvedFeeOption, Payport, FromTo, ResolveablePayport } from '@faast/payments-common';
import { TronTransactionInfo, TronUnsignedTransaction, TronSignedTransaction, TronBroadcastResult, CreateTransactionOptions, GetPayportOptions, BaseTronPaymentsConfig } from './types';
import { TronPaymentsUtils } from './TronPaymentsUtils';
export declare abstract class BaseTronPayments<Config extends BaseTronPaymentsConfig> extends TronPaymentsUtils implements BasePayments<Config, TronUnsignedTransaction, TronSignedTransaction, TronBroadcastResult, TronTransactionInfo> {
    fullNode: string;
    solidityNode: string;
    eventServer: string;
    tronweb: TronWeb;
    constructor(config: Config);
    abstract getFullConfig(): Config;
    abstract getPublicConfig(): Config;
    abstract getAccountId(index: number): string;
    abstract getAccountIds(): string[];
    abstract getPayport(index: number, options?: GetPayportOptions): Promise<Payport>;
    abstract getPrivateKey(index: number): Promise<string>;
    requiresBalanceMonitor(): boolean;
    getBalance(resolveablePayport: ResolveablePayport): Promise<BalanceResult>;
    resolveFeeOption(feeOption: FeeOption): Promise<ResolvedFeeOption>;
    createSweepTransaction(from: number, to: ResolveablePayport, options?: CreateTransactionOptions): Promise<TronUnsignedTransaction>;
    createTransaction(from: number, to: ResolveablePayport, amountTrx: string, options?: CreateTransactionOptions): Promise<TronUnsignedTransaction>;
    signTransaction(unsignedTx: TronUnsignedTransaction): Promise<TronSignedTransaction>;
    broadcastTransaction(tx: TronSignedTransaction): Promise<TronBroadcastResult>;
    getTransactionInfo(txid: string): Promise<TronTransactionInfo>;
    private canSweepBalance;
    private extractTxFields;
    resolvePayport(payport: ResolveablePayport): Promise<Payport>;
    resolveFromTo(from: number, to: ResolveablePayport): Promise<FromTo>;
}
export default BaseTronPayments;
