import { MergeCode } from "./merge-low";
import { DetailConfig, MergeConfig } from "./merge-conf";
export type MergeResult<T = any> = {
    path: string;
    op: "add" | "remove" | "replace";
    value?: Readonly<T>;
    prev?: Readonly<T>;
    code: MergeCode;
};
export declare function customMergePatch<T extends object>(target: T, source: Partial<T>, mergeConf: MergeConfig | MergeCode, excludeKeys?: string[]): MergeResult[] | false;
export declare function bypassMergePatch<T extends object>(target: T, source: Partial<T>): MergeResult[] | false;
export declare function deepMergeLog(lhsObj: {
    [key: string]: any;
}, rhsObj: {
    [key: string]: any;
}, mergeCodes?: DetailConfig): MergeResult[];
export declare function selectPathCode(mergeCodes: DetailConfig, pathParts: string[]): MergeCode;
//# sourceMappingURL=merge-patch.d.ts.map