import { Connection } from 'typeorm'; import { IDbSet } from '../repository/interfaces'; import { IInternalDbSet } from '../repository/_internal.interface'; import { QuerySpecificationEvaluatorConstructor, QueryType } from '../specification/specification.interface'; import { ISavedTransaction, IDbContext, IDbContextOptionsBuilder } from './interfaces'; import { DbContextModelBuilder } from './model-builder'; import { IInternalDbContext, ProxyMetaDataInstance } from './_internal.interface'; interface IEntity { id?: any; } export declare abstract class DbContext implements IDbContext, IInternalDbContext { protected _connection: Connection; protected evaluator: QuerySpecificationEvaluatorConstructor; private _entitySets; private _new; private _dirty; private _deleted; private _queryRunner; private _modelBuilder; private _optionsBuilder; private _isUserTransaction; constructor(_connection: Connection, evaluator: QuerySpecificationEvaluatorConstructor); private _initialise; protected abstract onModelCreation(builder: DbContextModelBuilder): void; protected abstract onConfiguring(optionsBuilder: IDbContextOptionsBuilder): void; set(type: new (...args: any) => T): IDbSet; add(...entities: T[]): void; unTrack(entity: T): void; update(...entities: T[]): void; remove(...entities: T[]): void; private _throwIfNullFound; find(type: any, id: any): Promise; rollback(entityType?: any): void; saveChanges(): Promise; transactionIsOpen(): boolean; openTransaction(): Promise; commitTransaction(): Promise; rollbackTransaction(): Promise; query(query: string, parameters: any[]): Promise; loadRelatedData(type: new (...args: []) => T, entity: T): Promise; execute(queryable: IInternalDbSet, type?: QueryType, ignoreFilters?: boolean): Promise; getMetadata(type: new (...args: any[]) => T, includePaths: string[]): Promise>; dispose(): void; private _tryOpenConnection; private _tryCloseConenction; private _dispose; private _setUnderlyingEntityType; private _getUpdates; private _commitDeleted; private _commitDirty; private _commitDirtyAll; private _commitNew; private _getSQLBuilder; private _getRepository; } export declare abstract class UnitOfWork extends DbContext implements Omit, 'getMetadata'> { } export {};