type Comparable = any[] | Obj;
type Options = {
    valueForEqualArrElement?: any;
    valueForRemovedObjField?: any;
    complexTypesIsEqual?: <T extends Obj>(a: T, b: T) => boolean;
};
declare const SYMBOL__VALUES_EQUAL: unique symbol;
declare const SYMBOL__OBJECT_FIELD_REMOVED: unique symbol;
/**
 * Performs deep comparsion of any JSON like objects
 *
 * @param a Comparable object
 * @param b Object to compare with
 * @param options Options to help to resolve corner cases
 * @returns Diff result
 */
declare function diff(a: Comparable, b: Comparable, options?: Options): Comparable | typeof SYMBOL__VALUES_EQUAL;
export default diff;
export { SYMBOL__VALUES_EQUAL, SYMBOL__OBJECT_FIELD_REMOVED };
