import { type DockerContainer } from '@omnitron-dev/testing/docker'; import type { DatabaseModuleOptions } from '@omnitron-dev/titan-database'; export interface DatabaseTestOptions { dialect?: 'postgres' | 'mysql' | 'mariadb' | 'sqlite'; database?: string; user?: string; password?: string; dockerPath?: string; forceSqlite?: boolean; verbose?: boolean; port?: number | 'auto'; } export interface DatabaseTestContext { connection: DatabaseModuleOptions['connection']; dialect: 'postgres' | 'mysql' | 'mariadb' | 'sqlite'; container?: DockerContainer; cleanup: () => Promise; isDocker: boolean; } export declare function isDockerAvailable(dockerPath?: string): boolean; export declare function createTestDatabase(options?: DatabaseTestOptions): Promise; export declare function withTestDatabase(options: DatabaseTestOptions, testFn: (context: DatabaseTestContext) => Promise): Promise; export declare function createTestDatabaseConfigs(dialects: Array<'postgres' | 'mysql' | 'mariadb' | 'sqlite'>, options?: Omit): Promise Promise; }>>; export declare function cleanupTestDatabaseConfigs(configs: Array<{ cleanup: () => Promise; }>): Promise; export declare function getRecommendedTestDatabase(options?: DatabaseTestOptions): Promise;