import { MetadataStorage } from '../metadata'; import { AnyEntity } from '../typings'; import { ChangeSet } from './ChangeSet'; import { Transaction } from '../connections'; import { Configuration } from '../utils'; import { IDatabaseDriver } from '../drivers'; import { Hydrator } from '../hydration'; export declare class ChangeSetPersister { private readonly driver; private readonly metadata; private readonly hydrator; private readonly config; constructor(driver: IDatabaseDriver, metadata: MetadataStorage, hydrator: Hydrator, config: Configuration); executeInserts>(changeSets: ChangeSet[], ctx?: Transaction): Promise; executeUpdates>(changeSets: ChangeSet[], ctx?: Transaction): Promise; executeDeletes>(changeSets: ChangeSet[], ctx?: Transaction): Promise; private processProperties; private persistNewEntity; private persistManagedEntity; private mapPrimaryKey; /** * Sets populate flag to new entities so they are serialized like if they were loaded from the db */ private markAsPopulated; private updateEntity; private processOptimisticLock; private processProperty; /** * Maps values returned via `returning` statement (postgres) or the inserted id (other sql drivers). * No need to handle composite keys here as they need to be set upfront. * We do need to map to the change set payload too, as it will be used in the originalEntityData for new entities. */ private mapReturnedValues; }