export declare function isPlainObject(value: unknown): value is Record<string, unknown>;
export declare function deepEqual(objA: unknown, objB: unknown, options?: {
    strict?: boolean;
}): boolean;
export declare const isShallowEqual: <T>(a: React.PropsWithChildren<T> | undefined | null, b: React.PropsWithChildren<T> | undefined | null) => boolean;
type DeepClone<T> = T extends Primitive ? T : T extends Date ? Date : T extends RegExp ? RegExp : T extends Map<infer K, infer V> ? Map<DeepClone<K>, DeepClone<V>> : T extends Set<infer U> ? Set<DeepClone<U>> : T extends Array<infer U> ? DeepCloneArray<U> : T extends object ? DeepCloneObject<T> : T;
type Primitive = string | number | boolean | bigint | symbol | null | undefined;
interface DeepCloneArray<T> extends Array<DeepClone<T>> {
}
type DeepCloneObject<T> = {
    [K in keyof T]: DeepClone<T[K]>;
};
export declare function cloneDeep<T>(value: T, seen?: WeakMap<object, unknown>): DeepClone<T>;
type DeepFreeze<T> = T extends (...args: any[]) => unknown ? T : T extends Array<infer U> ? ReadonlyArray<DeepFreeze<U>> : T extends Map<infer K, infer V> ? ReadonlyMap<DeepFreeze<K>, DeepFreeze<V>> : T extends Set<infer U> ? ReadonlySet<DeepFreeze<U>> : T extends object ? {
    readonly [K in keyof T]: DeepFreeze<T[K]>;
} : T;
export declare function deepFreeze<T>(obj: T): DeepFreeze<T>;
export declare function stableStringify(obj: unknown): string;
export {};
