import type { QueryCompiler } from '../query-compiler/query-compiler.js'; import type { Log } from '../util/log.js'; import type { DatabaseConnection } from './database-connection.js'; import type { Driver, TransactionSettings } from './driver.js'; /** * A small wrapper around {@link Driver} that makes sure the driver is * initialized before it is used, only initialized and destroyed * once etc. */ export declare class RuntimeDriver implements Driver { #private; constructor(driver: Driver, log: Log); /** * Initializes the driver. * * After calling this method the driver should be usable and `acquireConnection` etc. * methods should be callable. */ init(): Promise; /** * Acquires a new connection from the pool. */ acquireConnection(): Promise; /** * Releases a connection back to the pool. */ releaseConnection(connection: DatabaseConnection): 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; /** * Destroys the driver and releases all resources. */ destroy(): Promise; }