import type { EntityData, EntityMetadata, EntityProperty, IHydrator } from '../typings.js'; import type { EntityFactory } from '../entity/EntityFactory.js'; import type { Platform } from '../platforms/Platform.js'; import type { MetadataStorage } from '../metadata/MetadataStorage.js'; import type { Configuration } from '../utils/Configuration.js'; /** Abstract base class for hydrating entity instances from raw database data. */ export declare abstract class Hydrator implements IHydrator { protected readonly metadata: MetadataStorage; protected readonly platform: Platform; protected readonly config: Configuration; protected running: boolean; constructor(metadata: MetadataStorage, platform: Platform, config: Configuration); /** * @inheritDoc */ hydrate(entity: T, meta: EntityMetadata, data: EntityData, factory: EntityFactory, type: 'full' | 'reference', newEntity?: boolean, convertCustomTypes?: boolean, schema?: string, parentSchema?: string): void; /** * @inheritDoc */ hydrateReference(entity: T, meta: EntityMetadata, data: EntityData, factory: EntityFactory, convertCustomTypes?: boolean, schema?: string, parentSchema?: string): void; /** Returns whether the hydrator is currently in the middle of hydrating an entity. */ isRunning(): boolean; protected getProperties(meta: EntityMetadata, type: 'full' | 'reference'): EntityProperty[]; protected hydrateProperty(entity: T, prop: EntityProperty, data: EntityData, factory: EntityFactory, newEntity?: boolean, convertCustomTypes?: boolean): void; }