import Mapping from './Mapping';
import ClassMetadata from './Mapping/ClassMetadata';
declare type Id = string | number;
declare type StringKeyObject = Record<string, any>;
declare class UnitOfWork {
    #private;
    mapping: Mapping;
    constructor(mapping: Mapping, enabled?: boolean);
    registerClean(id: Id, entity: Record<string, unknown>): void;
    getDirtyEntity(id: Id): Record<string, unknown>;
    clear(id: Id): void;
    getDirtyData(newSerializedModel: Record<string, unknown>, oldSerializedModel: Record<string, unknown>, classMetadata: ClassMetadata): StringKeyObject;
    private _getDirtyFieldsForAttribute;
    private _getDirtyFieldsForManyToOne;
    private _getDirtyFieldsForOneToMany;
    private _getDirtyFields;
}
export default UnitOfWork;
