import { AnyEntity, EntityData, EntityMetadata, EntityProperty, IMetadataStorage } from '../typings'; import { Platform } from '../platforms'; export declare class EntityComparator { private readonly metadata; private readonly platform; constructor(metadata: IMetadataStorage, platform: Platform); /** * Computes difference between two entities. First calls `prepareEntity` on both, then uses the `diff` method. */ diffEntities>(a: T, b: T): EntityData; /** * Removes ORM specific code from entities and prepares it for serializing. Used before change set computation. * References will be mapped to primary keys, collections to arrays of primary keys. */ prepareEntity>(entity: T): EntityData; /** * should be used only for `meta.comparableProps` that are defined based on the static `isComparable` helper */ private shouldIgnoreProperty; /** * perf: used to generate list of comparable properties during discovery, so we speed up the runtime comparison */ static isComparable>(prop: EntityProperty, root: EntityMetadata): boolean; }