export type Operation = "REPLACE" | "COMBINE" | "APPEND" | "PREPEND";
export type PathSegment = string | number;
export type Path = PathSegment[];
export type MergeReport = {
    path: Path;
    operation: Operation;
    count?: number;
};
export type MergedWithReport = {
    merged: unknown;
    report: {
        updatedPaths: MergeReport[];
    };
};
export declare const JSONObjectMerge: (target: unknown, source: unknown, rules?: Record<string, Operation>, report?: boolean) => unknown | MergedWithReport;
