import { Transaction } from '../transaction/TransactionManager';
export declare abstract class DBTransaction {
    protected transaction: Transaction;
    protected rolledBack: boolean;
    /**
     *
     * @param transaction
     */
    constructor(transaction: Transaction);
    begin(): Promise<void>;
    query(sql: string, ...bindArrs: any[]): Promise<any>;
    queryAssoc(sql: string, bindObj: object): Promise<any>;
    protected abstract runQueryPrivate(sql: string, bindArrs?: any[]): Promise<any>;
    protected abstract runQueryAssocPrivate(sql: string, bindObj?: object): Promise<any>;
    doTransactionBegin(): Promise<void>;
    getTransactionBeginSQL(): string;
    doTransactionCommit(): Promise<void>;
    getTransactionCommitSQL(): string;
    doTransactionRollback(): Promise<void>;
    getTransactionRollbackSQL(): string;
    abstract doTransactionEnd(): Promise<void>;
    end(): Promise<void>;
    isRolledBack(): boolean;
}
