import { inspect } from 'node:util';
import type { EntityData, EntityMetadata, EntityDictionary, Primary } from '../typings';
export declare class ChangeSet<T extends object> {
    entity: T;
    type: ChangeSetType;
    payload: EntityDictionary<T>;
    meta: EntityMetadata<T>;
    private primaryKey?;
    private serializedPrimaryKey?;
    constructor(entity: T, type: ChangeSetType, payload: EntityDictionary<T>, meta: EntityMetadata<T>);
    getPrimaryKey(object?: boolean): Primary<T> | null;
    getSerializedPrimaryKey(): string | null;
    /** @ignore */
    [inspect.custom](depth?: number): string;
}
export interface ChangeSet<T> {
    name: string;
    rootName: string;
    collection: string;
    schema?: string;
    type: ChangeSetType;
    entity: T;
    payload: EntityDictionary<T>;
    persisted: boolean;
    originalEntity?: EntityData<T>;
}
export declare enum ChangeSetType {
    CREATE = "create",
    UPDATE = "update",
    DELETE = "delete",
    UPDATE_EARLY = "update_early",
    DELETE_EARLY = "delete_early"
}
