import { SubmittableExtrinsic } from '@polkadot/api/types';
import { ISubmittableResult } from '@polkadot/types/types';
import BigNumber from 'bignumber.js';
import { Context, PolymeshTransactionBase } from "../internal";
import { TxTag } from "../types";
import { MapMaybePostTransactionValue, TransactionSpec } from "../types/internal";
/**
 * Wrapper class for a Polymesh Transaction
 */
export declare class PolymeshTransaction<Args extends unknown[] | [] = unknown[], Values extends unknown[] = unknown[]> extends PolymeshTransactionBase<Values> {
    /**
     * @hidden
     *
     * unwrapped arguments (available right before execution)
     */
    private unwrappedArgs?;
    /**
     * @hidden
     *
     * underlying transaction to be executed
     */
    private transaction;
    /**
     * @hidden
     *
     * amount by which the protocol fees are multiplied. The total fees of some transactions depend on the size of the input.
     *   For example, when adding documents to a Security Token, the fees are proportional to the amount of documents being added
     *
     * @note defaults to 1
     */
    protected feeMultiplier: number;
    /**
     * arguments for the transaction. Available after the transaction starts running
     * (may be Post Transaction Values from a previous transaction in the queue that haven't resolved yet)
     */
    inputArgs: MapMaybePostTransactionValue<Args>;
    /**
     * type of transaction represented by this instance (mostly for display purposes)
     */
    tag: TxTag;
    /**
     * @hidden
     */
    constructor(transactionSpec: TransactionSpec<Args, Values>, context: Context);
    /**
     * arguments for the transaction
     */
    get args(): Args;
    protected composeTx(): SubmittableExtrinsic<'promise', ISubmittableResult>;
    protected getProtocolFees(): Promise<BigNumber>;
    protected ignoresSubsidy(): boolean;
    supportsSubsidy(): boolean;
}
//# sourceMappingURL=PolymeshTransaction.d.ts.map