/** * Named connection registry for `@atlex/orm`. * * Stores configured connections and provides access to named/default instances. */ import type { Knex } from 'knex'; import { Connection, type DatabaseConfig } from './Connection.js'; export declare class ConnectionRegistry { private static singleton; private readonly connections; private defaultName; /** @internal Active outer transaction for test isolation (see `@atlex/testing` `useDatabase`). */ private testTransaction; private constructor(); /** * Get the singleton registry instance. * * @returns The `ConnectionRegistry` singleton. * @example * const registry = ConnectionRegistry.instance() */ static instance(): ConnectionRegistry; /** * Register a named connection from a config. * * @param name - Connection name. * @param config - Database configuration for the connection. * @returns void * @example * ConnectionRegistry.instance().register('default', { driver: 'pg', host: 'localhost', database: 'app' }) */ register(name: string, config: DatabaseConfig): void; /** * Register a pre-built `Connection` instance under a name. * * @param name - Connection name. * @param conn - Pre-built connection. * @returns void * @example * ConnectionRegistry.instance().extend('analytics', conn) */ extend(name: string, conn: Connection): void; /** * Get a connection by name, or return the default connection when no name is provided. * * @param name - Optional connection name. * @returns A `Connection` instance. * @example * const conn = ConnectionRegistry.instance().connection() */ connection(name?: string): Connection; /** * Get the default connection (alias for `connection()`). * * @returns Default `Connection`. * @example * const conn = ConnectionRegistry.instance().default() */ default(): Connection; /** * @internal Binds an open Knex transaction so new {@link import("./db.js").db} builders run queries on it. * * @param trx - Open transaction (do not commit; roll back in test teardown). */ bindTestTransaction(trx: Knex.Transaction): void; /** * @internal Clears the transaction bound by {@link bindTestTransaction}. */ unbindTestTransaction(): void; /** * @internal Returns the transaction from {@link bindTestTransaction}, if any. */ activeTestTransaction(): Knex.Transaction | null; /** * @internal Resets the registry singleton and default connection (Vitest only). */ static resetForTests(): void; } //# sourceMappingURL=ConnectionRegistry.d.ts.map