declare const GRANULARITY: Record; type ListDiffStatus = "added" | "equal" | "moved" | "deleted" | "updated"; type ObjectDiffStatus = "added" | "equal" | "deleted" | "updated"; type ObjectData = Record | undefined | null; type ListData = any; type ObjectStatusTuple = readonly [ "added", "equal", "deleted", "updated" ]; type ListStatusTuple = readonly [ "added", "equal", "deleted", "moved", "updated" ]; type isEqualOptions = { ignoreArrayOrder?: boolean; }; type ObjectOptions = { ignoreArrayOrder?: boolean; showOnly?: { statuses: Array; granularity?: typeof GRANULARITY[keyof typeof GRANULARITY]; }; }; type ListOptions = { showOnly?: Array; }; type ListDiff = { type: "list"; status: ListDiffStatus; diff: { value: ListData; prevIndex: number | null; newIndex: number | null; indexDiff: number | null; status: ListDiffStatus; }[]; }; type SubProperties = { property: string; previousValue: any; currentValue: any; status: ObjectDiffStatus; subPropertiesDiff?: SubProperties[]; }; type ObjectDiff = { type: "object"; status: ObjectDiffStatus; diff: { property: string; previousValue: any; currentValue: any; status: ObjectDiffStatus; subPropertiesDiff?: SubProperties[]; }[]; }; declare function getObjectDiff(prevData: ObjectData, nextData: ObjectData, options?: ObjectOptions): ObjectDiff; declare const getListDiff: (prevList: ListData[] | undefined | null, nextList: ListData[] | undefined | null, options?: ListOptions) => ListDiff; declare function isEqual(a: any, b: any, options?: isEqualOptions): boolean; declare function isObject(value: any): value is Record; export { getListDiff, getObjectDiff, isEqual, isObject };