/**
 * Sets the propagation mode for a transaction.
 */
export declare enum Propagation {
    /**
     * (default) Reuse the existing transaction or create a new one if none exists.
     */
    Required = "REQUIRED",
    /**
     * Create a new transaction even if one already exists. The new transaction is committed independently of the existing one.
     */
    RequiresNew = "REQUIRES_NEW",
    /**
     * Run without a transaction even if one exists. The existing transaction is resumed once the callback completes.
     */
    NotSupported = "NOT_SUPPORTED",
    /**
     * Reuse an existing transaction, throw an exception otherwise.
     */
    Mandatory = "MANDATORY",
    /**
     * Run without a transaction, throw an exception if one already exists.
     */
    Never = "NEVER",
    /**
     * Reuse the existing transaction or continue without a transaction if none exists.
     */
    Supports = "SUPPORTS",
    /**
     * Create a subtransaction if supported; otherwise, reuse the existing transaction or create a new one if none exists.
     */
    Nested = "NESTED"
}
/**
 * Base error for transaction propagation errors.
 */
export declare class TransactionPropagationError extends Error {
    name: string;
}
/**
 * Error thrown when a attempting to start a transaction in mode NEVER, but an existing transaction is already active.
 */
export declare class TransactionAlreadyActiveError extends TransactionPropagationError {
    name: string;
    constructor(methodName: string);
}
/**
 * Error thrown when a attempting to start a transaction in mode MANDATORY, but no existing transaction is active.
 */
export declare class TransactionNotActiveError extends TransactionPropagationError {
    name: string;
    constructor(methodName?: string);
}
//# sourceMappingURL=propagation.d.ts.map