/// 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; }