import { Address } from '../Address';
import { CurrencyAmount } from './CurrencyAmount';
import { FeeLevel } from './FeeLevel';
import { CurrencyFee } from './CurrencyFee';
import { ConfirmedTransaction } from './ConfirmedTransaction';
export declare abstract class CurrencyPreparedTransaction {
    readonly fromAddress: string;
    readonly toAddress: string;
    readonly amount: CurrencyAmount;
    protected constructor(fromAddress: Address, toAddress: Address, amount: CurrencyAmount);
    protected abstract buildSuggestedFees(): Promise<Record<FeeLevel, CurrencyFee>>;
    protected _suggestedFees: Record<FeeLevel, CurrencyFee>;
    getSuggestedFees(): Promise<Record<FeeLevel, CurrencyFee>>;
    abstract broadcast(fee: FeeLevel | unknown): Promise<ConfirmedTransaction>;
    abstract fee(...args: unknown[]): Promise<CurrencyFee>;
}
