import { Builder } from '@contember/dic'; import { Connection, DatabaseMetadataResolver } from '@contember/database'; import { DatabaseContext, DatabaseContextFactory, ProjectInitializer, SchemaProvider, SystemMigrationsRunner } from '@contember/engine-system-api'; import { Logger } from '@contember/logger'; import { ProjectConfig } from './config'; import { ContentSchemaResolver } from '../content'; import { Providers } from '../providers'; import { Plugin } from '../plugin/Plugin'; import { ProjectDatabaseMetadataResolver } from './ProjectDatabaseMetadataResolver'; export interface ProjectContainer { systemDatabaseContextFactory: DatabaseContextFactory; systemDatabaseContext: DatabaseContext; systemReadDatabaseContext: DatabaseContext; project: ProjectConfig; logger: Logger; connection: Connection; readConnection: Connection; contentSchemaResolver: ContentSchemaResolver; projectInitializer: ProjectInitializer; projectDatabaseMetadataResolver: ProjectDatabaseMetadataResolver; } export declare class ProjectContainerFactoryFactory { private readonly plugins; private readonly providers; private readonly databaseMetadataResolver; constructor(plugins: Plugin[], providers: Providers, databaseMetadataResolver: DatabaseMetadataResolver); create(schemaProvider: SchemaProvider, logger: Logger): ProjectContainerFactory; } interface ProjectContainerFactoryArgs { project: ProjectConfig; } export declare class ProjectContainerFactory { private readonly plugins; private readonly schemaProvider; private readonly providers; private readonly logger; private readonly databaseMetadataResolver; constructor(plugins: Plugin[], schemaProvider: SchemaProvider, providers: Providers, logger: Logger, databaseMetadataResolver: DatabaseMetadataResolver); createContainer(args: ProjectContainerFactoryArgs): ProjectContainer; protected createBuilder({ project }: ProjectContainerFactoryArgs): Builder<{ logger: Logger; } & { project: ProjectConfig; } & { connection: Connection; } & { readConnection: Connection; } & { contentSchemaResolver: ContentSchemaResolver; } & { systemSchemaName: string; } & { systemDatabaseContextFactory: DatabaseContextFactory; } & { systemDatabaseContext: DatabaseContext>; } & { systemReadDatabaseContext: DatabaseContext>; } & { systemMigrationGroups: { [k: string]: import("@contember/database-migrations").MigrationGroup; }; } & { systemMigrationsRunner: SystemMigrationsRunner; } & { projectInitializer: ProjectInitializer; } & { projectDatabaseMetadataResolver: ProjectDatabaseMetadataResolver; }>; } export {}; //# sourceMappingURL=ProjectContainer.d.ts.map