import { ACTOR_KEY, TRANSACTION_SESSION, TRANSACTION_SIGNATURE } from '../../utils/constants/symbol-keys.constant'; import type { TransactionModel } from '../types/transaction-model.type'; import type { PerformParameters, PerformAwaitedResult, PerformUsecase } from '../types/performer.type'; import type { AnyActor } from '../../actor/types/utility.type'; /** * Encapsulates an actor's execution context with * session data, providing methods to perform use * cases and override session state */ export declare class Transaction implements TransactionModel { readonly [TRANSACTION_SIGNATURE] = 1; get [ACTOR_KEY](): Actor; get [TRANSACTION_SESSION](): Readonly; constructor(data: Data, actor: Actor); /** * Retrieves Session data based from "name" key parameter. * * @param name Key of session data * @returns value of store session data. Or, undefined if not found */ get(name: Key): Data[Key] | undefined; /** * Creates new transaction with overridden Session data * * @param overrides session data overrides * @returns Transaction */ override(overrides: Overrides): Transaction; /** * Performs a Use-case and returns result of the Use-case handler. * * @param usecase The Use-case to perform allowed by Roles * @param params Use case handler parameters * @returns Result of perform Use-case */ perform>(usecase: Usecase, ...params: PerformParameters): Promise>; }