import { DataSource, EntitySubscriberInterface, Repository } from 'typeorm'; import { TypeOrmModuleOptions } from '../interfaces'; import { EntityClassOrSchema } from '../interfaces/entity-class-or-schema.type'; import { RepositoryMixinDefinition } from '../repository'; export declare class DataSourceManager { private options; private dataSource; private readonly logger; private mixinRegistry; private setupCompleted; constructor(options: TypeOrmModuleOptions, dataSource: DataSource); setup(): void; addSubscriber(subscriber: EntitySubscriberInterface): void; /** * TODO: Known limitation: "all" will only patch all entities within the current collection. * A "global all" is not possible yet. */ addMixin(mixin: RepositoryMixinDefinition, entity: EntityClassOrSchema | 'all'): void; private applyMixin; getRepository(entity: EntityClassOrSchema): Repository; private findCustomRepositoryClass; private createCustomRepositoryClass; private propagateRepoClassToTypeOrm; private assertValidRepositoryClass; private isTreeEntity; }