import { Knex } from 'knex'; import { KnexTransaction } from './KnexTransaction.js'; import { Database } from '../../Database.js'; import type { DbConfig } from '../../types.js'; /** * Represents a KnexDatabase class that extends Database and provides methods for interacting with a Knex database. */ export declare class KnexDatabase extends Database { /** * A static property that provides a Knex instance based on the given configuration. * @param {knex.Knex.Config} config - The configuration object for Knex. * @returns {knex.Knex} A Knex instance based on the provided configuration. */ private static knexProvider; /** * Represents a Knex client for interacting with a database. * @type {Knex} */ readonly client: Knex; /** * Constructor for creating a new instance of a database connection using Knex. * @param {DbConfig<'knex'>} config - The configuration object for the Knex database. * @returns None */ constructor(config: DbConfig<'knex'>); /** * Constructs a Knex configuration object based on the provided DbConfig. * @param {DbConfig<'knex'>} config - The database configuration object. * @returns The Knex configuration object with appropriate settings based on the input config. */ private constructConfig; /** * Override method to start a new transaction using KnexTransactionImpl. * @returns {Promise} A promise that resolves to a KnexTransaction object. */ transaction(): Promise; }