///
import { Readable } from 'stream';
import { SQLQuery } from '@databases/sql';
import { Driver } from '@databases/shared';
import PgClient from './types/PgClient';
import TransactionOptions from './types/TransactionOptions';
import EventHandlers from './types/EventHandlers';
import QueryStreamOptions from './types/QueryStreamOptions';
export default class PgDriver implements Driver {
readonly acquireLockTimeoutMilliseconds: number;
readonly client: PgClient;
private readonly _handlers;
private _endCalled;
private readonly _disposed;
private _canRecycleConnection;
constructor(client: PgClient, handlers: EventHandlers, acquireLockTimeoutMilliseconds: number);
private _isIdle;
private _idleError;
private _removeFromPool;
private _idleErrorEventHandler;
private readonly _onIdleError;
private _throwPendingIdleError;
onAddingToPool(removeFromPool: undefined | (() => void), idleErrorEventHandler: undefined | ((err: Error) => void)): void;
onActive(): void;
onIdle(): void;
connect(): Promise;
dispose(): Promise;
canRecycleConnectionAfterError(_err: Error): Promise;
beginTransaction(options?: TransactionOptions): Promise;
commitTransaction(): Promise;
rollbackTransaction(): Promise;
shouldRetryTransactionFailure(transactionOptions: TransactionOptions | undefined, ex: Error, failureCount: number): Promise;
createSavepoint(savepointName: string): Promise;
releaseSavepoint(savepointName: string): Promise;
rollbackToSavepoint(savepointName: string): Promise;
private _executeQuery;
executeAndReturnAll(queries: SQLQuery[]): Promise;
executeAndReturnLast(queries: SQLQuery[]): Promise;
queryNodeStream(query: SQLQuery, options: {
highWaterMark?: number;
}): Readable;
queryStream(query: SQLQuery, { batchSize, signal }?: QueryStreamOptions): AsyncGenerator;
}