import { Connection } from 'typeorm';
import { Transaction, ITransaction, ITransactionOptions, ITransactionOptionsExtended } from './Transaction';
export declare class TransactionManager implements ITransactionManager {
    protected readonly _options: ITransactionOptionsExtended;
    private _connection;
    constructor(_options?: ITransactionOptionsExtended);
    createTransaction(options?: ITransactionOptions): Transaction;
    transaction(options?: ITransactionOptions): Promise<Transaction>;
    transaction<R = unknown>(cb: (transaction: Transaction) => Promise<R>, options?: ITransactionOptions): Promise<R>;
    autoTransaction<R = unknown>(cb: (transaction: Transaction) => Promise<R>, options?: ITransactionOptions): Promise<R>;
    get connection(): Connection;
    protected _getDefaultOptions<O extends ITransactionOptions>(options?: O): O;
}
export interface ITransactionManager {
    createTransaction(options?: ITransactionOptions): ITransaction;
    transaction(options?: ITransactionOptions): Promise<ITransaction>;
    transaction<R = unknown>(cb: TransactionCallback<R>, options?: ITransactionOptions): Promise<R>;
    autoTransaction<R = unknown>(cb: TransactionCallback<R>, options?: ITransactionOptions): Promise<R>;
}
export declare type TransactionCallback<R = unknown> = (transaction: ITransaction) => Promise<R>;
