import type { EntityData, EntityMetadata } from '../typings.js';
import { Hydrator } from './Hydrator.js';
import type { EntityFactory } from '../entity/EntityFactory.js';
type EntityHydrator<T extends object> = (entity: T, data: EntityData<T>, factory: EntityFactory, newEntity: boolean, convertCustomTypes: boolean, schema?: string, parentSchema?: string, normalizeAccessors?: boolean) => void;
/** @internal JIT-compiled hydrator that converts raw database rows into entity instances with optimized generated code. */
export declare class ObjectHydrator extends Hydrator {
    #private;
    /**
     * @inheritDoc
     */
    hydrate<T extends object>(entity: T, meta: EntityMetadata<T>, data: EntityData<T>, factory: EntityFactory, type: 'full' | 'reference', newEntity?: boolean, convertCustomTypes?: boolean, schema?: string, parentSchema?: string, normalizeAccessors?: boolean): void;
    /**
     * @inheritDoc
     */
    hydrateReference<T extends object>(entity: T, meta: EntityMetadata<T>, data: EntityData<T>, factory: EntityFactory, convertCustomTypes?: boolean, schema?: string, parentSchema?: string, normalizeAccessors?: boolean): void;
    /**
     * @internal Highly performance-sensitive method.
     */
    getEntityHydrator<T extends object>(meta: EntityMetadata<T>, type: 'full' | 'reference', normalizeAccessors?: boolean): EntityHydrator<T>;
    private createCollectionItemMapper;
    private wrap;
    private safeKey;
}
export {};
