import type { PoolOptions } from 'mysql2/promise'; import type { PoolConfig } from 'pg'; import type { ClassType } from '../types'; import { BaseDatabase, type BaseDatabaseOptions } from './database'; import type { DatabaseDriver } from './driver'; import { type MySQLPoolLike, type PgPoolLike } from './drivers'; import type { EntityClass } from './metadata'; export type DatabaseDialect = 'mysql' | 'postgres'; export interface SharedDatabaseConfig extends BaseDatabaseOptions { enableLocksTable?: boolean; } export interface MySQLDatabaseConfig extends PoolOptions, BaseDatabaseOptions { enableLocksTable?: boolean; } export interface PostgresDatabaseConfig extends PoolConfig, BaseDatabaseOptions { enableLocksTable?: boolean; } export declare function createDatabaseClass(driverFactory: () => DatabaseDriver, entities?: EntityClass[], options?: BaseDatabaseOptions): ClassType; export declare function createMySQLDatabase(config?: MySQLDatabaseConfig | MySQLPoolLike, entities?: EntityClass[]): ClassType; export declare function createPostgresDatabase(config?: PostgresDatabaseConfig | PgPoolLike, entities?: EntityClass[]): ClassType; export declare function createDatabase(config?: SharedDatabaseConfig, entities?: EntityClass[]): ClassType; export declare function createDatabase(dialect: 'mysql', config?: MySQLDatabaseConfig | MySQLPoolLike, entities?: EntityClass[]): ClassType; export declare function createDatabase(dialect: 'postgres', config?: PostgresDatabaseConfig | PgPoolLike, entities?: EntityClass[]): ClassType; //# sourceMappingURL=factory.d.ts.map