import { PoolClient } from 'pg';
import { ClientDetails } from './client';
/**
 * How have we implemented transaction - with database transaction or with a
 * savepoint
 */
declare enum TransactionMode {
    Transaction = 0,
    Savepoint = 1
}
export declare function beginTransaction({ client, clientMode }: ClientDetails): Promise<TransactionMode>;
interface TransactionDetails {
    client: PoolClient;
    transactionMode: TransactionMode;
}
export declare function commitTransaction({ client, transactionMode }: TransactionDetails): Promise<unknown>;
export declare function cancelTransaction({ client, transactionMode }: TransactionDetails): Promise<unknown>;
export {};
