import type { ClearDatabaseOptions, DropSchemaOptions, EntityMetadata, ISchemaGenerator, UpdateSchemaOptions, CreateSchemaOptions, RefreshDatabaseOptions, EnsureDatabaseOptions } from '../typings.js'; import { type EntityManagerType, type IDatabaseDriver } from '../drivers/IDatabaseDriver.js'; import type { MetadataStorage } from '../metadata/MetadataStorage.js'; import type { Configuration } from './Configuration.js'; export declare abstract class AbstractSchemaGenerator implements ISchemaGenerator { protected readonly em?: D[typeof EntityManagerType]; protected readonly driver: D; protected readonly config: Configuration; protected readonly metadata: MetadataStorage; protected readonly platform: ReturnType; protected readonly connection: ReturnType; constructor(em: D | D[typeof EntityManagerType]); create(options?: CreateSchemaOptions): Promise; /** * Returns true if the database was created. */ ensureDatabase(options?: EnsureDatabaseOptions): Promise; refresh(options?: RefreshDatabaseOptions): Promise; clear(options?: ClearDatabaseOptions): Promise; protected clearIdentityMap(): void; getCreateSchemaSQL(options?: CreateSchemaOptions): Promise; drop(options?: DropSchemaOptions): Promise; getDropSchemaSQL(options?: Omit): Promise; update(options?: UpdateSchemaOptions): Promise; getUpdateSchemaSQL(options?: UpdateSchemaOptions): Promise; getUpdateSchemaMigrationSQL(options?: UpdateSchemaOptions): Promise<{ up: string; down: string; }>; /** * creates new database and connects to it */ createDatabase(name?: string): Promise; dropDatabase(name?: string): Promise; execute(query: string): Promise; ensureIndexes(): Promise; protected getOrderedMetadata(schema?: string): EntityMetadata[]; protected notImplemented(): never; }