import type { ControlConnectionProvider, DatabaseConnection, QueryResult } from '../../driver/database-connection.js'; import type { Driver, TransactionSettings } from '../../driver/driver.js'; import { CompiledQuery } from '../../query-compiler/compiled-query.js'; import type { QueryCompiler } from '../../query-compiler/query-compiler.js'; import type { AbortableOperationOptions } from '../../util/abort.js'; import type { PostgresClientConstructor, PostgresCursorConstructor, PostgresDialectConfig, PostgresPoolClient } from './postgres-dialect-config.js'; declare const PRIVATE_RELEASE_METHOD: unique symbol; export declare class PostgresDriver implements Driver { #private; constructor(config: PostgresDialectConfig); /** * Initializes the driver. * * After calling this method the driver should be usable and `acquireConnection` etc. * methods should be callable. */ init(options?: AbortableOperationOptions): Promise; /** * Acquires a new connection from the pool. */ acquireConnection(options?: AbortableOperationOptions): Promise; /** * Begins a transaction. */ beginTransaction(connection: DatabaseConnection, settings: TransactionSettings): Promise; /** * Commits a transaction. */ commitTransaction(connection: DatabaseConnection): Promise; /** * Rolls back a transaction. */ rollbackTransaction(connection: DatabaseConnection): Promise; savepoint(connection: DatabaseConnection, savepointName: string, compileQuery: QueryCompiler['compileQuery']): Promise; rollbackToSavepoint(connection: DatabaseConnection, savepointName: string, compileQuery: QueryCompiler['compileQuery']): Promise; releaseSavepoint(connection: DatabaseConnection, savepointName: string, compileQuery: QueryCompiler['compileQuery']): Promise; /** * Releases a connection back to the pool. */ releaseConnection(connection: PostgresConnection): Promise; /** * Destroys the driver and releases all resources. */ destroy(): Promise; } interface PostgresConnectionOptions { controlClient?: PostgresClientConstructor; cursor: PostgresCursorConstructor | null; poolOptions: object; } declare class PostgresConnection implements DatabaseConnection { #private; constructor(client: PostgresPoolClient, options: PostgresConnectionOptions); cancelQuery(controlConnectionProvider: ControlConnectionProvider): Promise; collectSessionInfo(): Promise; executeQuery(compiledQuery: CompiledQuery): Promise>; killSession(controlConnectionProvider: ControlConnectionProvider): Promise; streamQuery(compiledQuery: CompiledQuery, chunkSize: number): AsyncIterableIterator>; [PRIVATE_RELEASE_METHOD](): void; } export {};