import { SinonStub } from 'sinon';
import { Context, Procedure } from "../../internal";
export declare const MockProcedureClass: {
    new (...args: unknown[]): {};
};
export declare const MockTransactionQueueClass: {
    new (...args: unknown[]): {};
};
export declare const mockProcedureModule: (path: string) => () => Record<string, unknown>;
export declare const mockTransactionQueueModule: (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
 * Restore instances to their original state
 */
export declare function cleanup(): void;
/**
 * @hidden
 * Reinitialize mocks
 */
export declare function reset(): void;
/**
 * @hidden
 * Retrieve a Procedure instance
 */
export declare function getInstance<T, U, S = Record<string, unknown>>(context: Context, storage?: S): Procedure<T, U, S>;
/**
 * @hidden
 * Retrieve the stub of the `addTransaction` method
 */
export declare function getAddTransactionStub(): SinonStub;
/**
 * @hidden
 * Retrieve the stub of the `addBatchTransaction` method
 */
export declare function getAddBatchTransactionStub(): SinonStub;
/**
 * @hidden
 * Retrieve the stub of the `addProcedure` method
 */
export declare function getAddProcedureStub(): SinonStub;
/**
 * @hidden
 * Retrieve the stub of the `prepare` method
 */
export declare function getPrepareStub(): SinonStub;
/**
 * @hidden
 * Retrieve the stub of the TransactionQueue constructor
 */
export declare function getTransactionQueueConstructorStub(): SinonStub;
//# sourceMappingURL=procedure.d.ts.map