type ChangedData = { difference?: any; key: keyof T; maxDepthReached?: boolean; newValue?: any; oldValue?: any; reactElementChanged?: boolean; }; type Changed = Array>; export type PropsDifference = { added: Array; changed: Changed; removed: Array; }; export type ShallowPropsDifference = { added: Array; changed: Array; removed: Array; }; export declare const getKeys: (obj: T) => Array; export declare const getKeysAddedRemovedCommon: (object1: T, object2: T) => { added: (keyof T & keyof (T & {}))[]; common: (keyof T & keyof (T & {}))[]; removed: (keyof T & keyof (T & {}))[]; }; export declare const serializeValue: (value: T[keyof T]) => string | (T[keyof T] & {}) | { type: string; keys: string[]; } | undefined; export declare const getPropsDifference: (object1: T, object2: T, curDepth?: number, maxDepth?: number, keysToIgnore?: Array) => PropsDifference; export declare const getShallowPropsDifference: (object1: T, object2: T) => ShallowPropsDifference; export {};