import { UnwrapPromiseTuple } from "../utils/PromiseProvider";
import { AbstractPoolQueryRunner } from "./AbstractPoolQueryRunner";
import { QueryRunner } from "./QueryRunner";
export declare abstract class ManagedTransactionPoolQueryRunner extends AbstractPoolQueryRunner {
    executeInTransaction<P extends Promise<any>[]>(fn: () => [...P], outermostQueryRunner: QueryRunner): Promise<UnwrapPromiseTuple<P>>;
    executeInTransaction<T>(fn: () => Promise<T>, outermostQueryRunner: QueryRunner): Promise<T>;
    executeInTransaction(fn: () => Promise<any>[] | Promise<any>, outermostQueryRunner: QueryRunner): Promise<any>;
    executeCombined<R1, R2>(fn1: () => Promise<R1>, fn2: () => Promise<R2>): Promise<[R1, R2]>;
    protected abstract createAllPromise<P extends Promise<any>[]>(promises: [...P]): Promise<UnwrapPromiseTuple<P>>;
}
