import { type Configuration } from '../utils';
import type { MetadataStorage } from '../metadata';
import type { AnyEntity } from '../typings';
import { ChangeSet } from './ChangeSet';
import { type Collection, type EntityValidator } from '../entity';
import type { Platform } from '../platforms';
import type { EntityManager } from '../EntityManager';
export declare class ChangeSetComputer {
    private readonly validator;
    private readonly collectionUpdates;
    private readonly metadata;
    private readonly platform;
    private readonly config;
    private readonly em;
    private readonly comparator;
    constructor(validator: EntityValidator, collectionUpdates: Set<Collection<AnyEntity>>, metadata: MetadataStorage, platform: Platform, config: Configuration, em: EntityManager);
    computeChangeSet<T extends object>(entity: T): ChangeSet<T> | null;
    /**
     * Traverses entity graph and executes `onCreate` and `onUpdate` methods, assigning the values to given properties.
     */
    private processPropertyInitializers;
    private computePayload;
    private processProperty;
    private processToOne;
    private processToMany;
}
