import { ExcludeFieldT } from './utils';
import { RawChangeT } from './types';
export declare type PrefilterT = (path: Array<string>, key: string) => boolean;
export declare type StackT = {
    lhs: any;
    rhs: any;
};
export declare type DeepDiffOptsT = {
    prefilter: PrefilterT;
    orderIndependent: boolean;
    key?: string;
    path?: Array<string>;
    stack?: Array<StackT>;
};
export declare const deepDiff: (lhs: any, rhs: any, changes: RawChangeT[] | undefined, opts: DeepDiffOptsT) => void;
export declare const revertChanges: (target: any, changes: Array<RawChangeT>) => any;
export default class MHD {
    static orderIndependent: boolean;
    static excludedFields: Array<ExcludeFieldT>;
    static findDiff(lhs: any, rhs: any): Array<RawChangeT>;
}
