import BigNumber from 'bignumber.js';
import { PolymeshTransaction } from "../../internal";
import { Mocked } from "../types";
import { PayingAccount, TransactionStatus } from "../../types";
declare type MockTransaction = Mocked<PolymeshTransaction<unknown[]>>;
interface MockTransactionSpec {
    isCritical: boolean;
    autoResolve: TransactionStatus.Failed | TransactionStatus.Succeeded | false;
    fees?: {
        protocol: BigNumber;
        gas: BigNumber;
    };
    payingAccount?: PayingAccount;
    supportsSubsidy?: boolean;
}
export declare const mockPolymeshTransactionModule: (path: string) => () => Record<string, unknown>;
/**
 * @hidden
 *
 * Initialize the factory by adding default all-purpose functionality to the mock manager
 */
export declare function initMocks(): void;
/**
 * @hidden
 * Reinitialize mocks
 */
export declare function reset(): void;
/**
 * @hidden
 * Determine the next set of transactions that will be created when the PolymeshTransaction
 * constructor is used
 *
 * @param specs - transactions that will be constructed
 */
export declare function setupNextTransactions(specs: MockTransactionSpec[]): MockTransaction[];
/**
 * @hidden
 * Update the status of an existing mock transaction. Will throw an exception if the transaction has already been resolved
 *
 * @param transaction - transaction to update
 * @param status - new status
 */
export declare function updateTransactionStatus(transaction: MockTransaction, status: TransactionStatus): void;
export {};
//# sourceMappingURL=polymeshTransaction.d.ts.map