import type { OnModuleDestroy, OnModuleInit } from '@nl-framework/core'; import type { LoggerFactory } from '@nl-framework/logger'; import type { DocumentClass, DocumentMetadata } from './document'; import type { OrmRepository } from './repository'; import type { SeedHistoryStore } from './seeding'; import type { WriteNotifier } from '../events/write-notifier'; export interface OrmConnection extends OnModuleInit, OnModuleDestroy { registerEntity(entity: DocumentClass): void; getRegisteredEntities(): DocumentMetadata[]; ensureConnection(): Promise; getDatabase(): unknown; getWriteNotifier(): WriteNotifier; } export interface SeedHistoryFactoryOptions { connectionName: string; environment: string; } export interface OrmDriver { readonly name: string; createConnection(connectionName: string, loggerFactory: LoggerFactory): OrmConnection; createRepository(connection: OrmConnection, entity: DocumentClass): Promise>; createSeedHistory(connection: OrmConnection, options: SeedHistoryFactoryOptions): Promise; } //# sourceMappingURL=driver.d.ts.map