import { EntityManager } from '../EntityManager'; import { AnyEntity, EntityData, EntityMetadata, EntityProperty } from '../typings'; import { EntityFactory } from '../entity'; export declare abstract class Hydrator { protected readonly factory: EntityFactory; protected readonly em: EntityManager; constructor(factory: EntityFactory, em: EntityManager); /** * Hydrates the whole entity. This process handles custom type conversions, creating missing Collection instances, * mapping FKs to entity instances, as well as merging those entities. */ hydrate>(entity: T, meta: EntityMetadata, data: EntityData, newEntity?: boolean, convertCustomTypes?: boolean): void; /** * Hydrates primary keys only */ hydrateReference>(entity: T, meta: EntityMetadata, data: EntityData, convertCustomTypes?: boolean): void; private getProperties; protected abstract hydrateProperty>(entity: T, prop: EntityProperty, value: EntityData, newEntity?: boolean, convertCustomTypes?: boolean): void; }