export type Serializable = T extends Function ? never : T extends Array ? Serializable[] : T extends object ? { [K in keyof T as T[K] extends Function ? never : K]: Serializable; } : T; export declare const containsPrimitivesOnly: (obj: any) => boolean; export type SerializableSkeleton = Partial>>> | boolean; export declare const makeSerializable: (obj: T, skeleton?: SerializableSkeleton, includeFalsyKeys?: boolean, // TODO : use that arg seen?: WeakMap>) => Serializable;