import type { DatabaseAdapterId } from '../../types.js'; import type { Logger } from '../../ui/logger.js'; export interface DbTargetInspection { exists: boolean; objects: string[]; } export interface ProvisionArgs { adminUrl: string; database: string; user: string; password: string; reset: boolean; logger: Pick; } export interface BaselineArgs { applicationUrl: string; migrationsFolder: string; logger: Pick; } export interface DbProvisioner { readonly adapter: DatabaseAdapterId; verifyAdminConnection(adminUrl: string): Promise; inspectTarget(adminUrl: string, database: string): Promise; provisionTarget(args: ProvisionArgs): Promise; applyBaseline(args: BaselineArgs): Promise; } export type DatabaseProvisionerRegistry = Readonly>; export declare const DATABASE_PROVISIONERS: { readonly postgres: DbProvisioner; readonly mysql: DbProvisioner; }; export declare function databaseProvisioner(adapter: DatabaseAdapterId, registry?: DatabaseProvisionerRegistry): DbProvisioner; export declare function isValidDatabaseIdentifier(adapter: DatabaseAdapterId, kind: 'database' | 'user', value: string): boolean; export declare function databaseIdentifierRequirement(adapter: DatabaseAdapterId, kind: 'database' | 'user'): string; //# sourceMappingURL=provisioner.d.ts.map