import { Api } from 'chaingate-client';
import { CurrencyProviders } from './CurrencyProviders';
import { CurrencyInfo } from './CurrencyInfo';
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 {
    protected readonly api: Api;
    protected readonly currencyProviders: CurrencyProviders;
    protected readonly currencyInfo: CurrencyInfo;
    readonly fromAddress: string;
    readonly toAddress: string;
    readonly amount: CurrencyAmount;
    protected constructor(api: Api, currencyProviders: CurrencyProviders, currencyInfo: CurrencyInfo, 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>;
}
