import { IBankAdapter } from '../bank/bank-adapter.service'; import { BankAdapterResult, TransactionContext } from '../bank/types'; /** * Invokes bank adapter implementation. */ export declare class BankAdapterInvoker { protected creditAdapter: IBankAdapter; protected debitAdapter: IBankAdapter; constructor(creditAdapter: IBankAdapter, debitAdapter: IBankAdapter); /** * Invoke bank adapter phase implementation * based on a given transaction context. * * @param context transaction context * @returns job result */ invoke(context: TransactionContext): Promise; /** * Returns credit or debit bank adapter * implementation based on an entry schema. * * @param context transaction context * @returns bank adapter */ protected getBankAdapter(context: TransactionContext): IBankAdapter; /** * Returns bank adapter method implementing * current phase based on a command action. * * @param adapter bank adapter * @param context transaction context * @returns callable */ protected getBankAdapterPhase(adapter: IBankAdapter, context: TransactionContext): any; }