import type { EntityManager } from '../EntityManager.js'; import { type TransactionOptions } from '../enums.js'; /** * Manages transaction lifecycle and propagation for EntityManager. */ export declare class TransactionManager { private readonly em; constructor(em: EntityManager); /** * Main entry point for handling transactional operations with propagation support. */ handle(cb: (em: EntityManager) => T | Promise, options?: TransactionOptions): Promise; /** * Executes the callback with the specified propagation type. */ private executeWithPropagation; /** * Suspends the current transaction and returns the suspended resources. */ private suspendTransaction; /** * Resumes a previously suspended transaction. */ private resumeTransaction; /** * Executes operation without transaction context. */ private executeWithoutTransaction; /** * Creates new independent transaction, suspending any existing one. */ private executeWithNewTransaction; /** * Creates new transaction context. */ private createNewTransaction; /** * Executes nested transaction with savepoint. */ private executeNestedTransaction; /** * Creates a fork of the EntityManager with the given options. */ private createFork; /** * Determines if changes should be propagated to the upper context. */ private shouldPropagateToUpperContext; /** * Merges entities from fork to parent EntityManager. */ private mergeEntitiesToParent; /** * Registers a deletion handler to unset entity identities after flush. */ private registerDeletionHandler; /** * Processes transaction execution. */ private processTransaction; /** * Executes transaction workflow with entity synchronization. */ private executeTransactionFlow; }