type Primitive = string | number | boolean | bigint | null | undefined; /** * Recursively freezes an object and all its properties to make it immutable. * This function also handles circular references by using a `WeakSet` to track visited objects. * * @param obj - The object to freeze. * @param visitedObjects - A `WeakSet` to track objects that have already been visited (used internally). */ export declare function deepFreeze(obj: any, visitedObjects?: WeakSet): void; /** * Customizer function for `cloneDeepWith` to handle specific cloning rules. * * - Properties starting with `_` are not deeply cloned; their references are copied instead. * - Properties flagged with `ignoreCloneSymbol` are not cloned. * * @param value - The value being cloned. * @param prop - The property name or index of the value being cloned. * @param target - The target object containing the property being cloned. * @returns The value to use for the cloned property, or `undefined` to use the default cloning behavior. */ export declare function deepCloneCustomizer(value: any, prop?: string | number, target?: object): any; /** * Creates a deep clone of an object, applying custom cloning rules defined in `deepCloneCustomizer`. * * @param obj - The object to clone. * @returns A deep clone of the input object. */ export declare function deepClone(obj: object): any; /** * Determines if a value is a primitive type. * * @param value - The value to check. * @returns `true` if the value is a primitive type, otherwise `false`. */ export declare function isPrimitive(value: any): value is Primitive; /** * Determines if a value is a function. * * @param value - The value to check. * @returns `true` if the value is a function, otherwise `false`. */ export declare function isFunction(value: any): value is Function; /** * Checks if a property name represents a virtual property. * Virtual properties are identified by the prefix `__brain`. * * @param prop - The property name to check. * @returns `true` if the property is a virtual property, otherwise `false`. */ export declare function isVirtualProperty(prop: string): boolean; /** * Checks if a function name represents a constructor. * * @param prop - The property name to check. * @returns `true` if the property is a virtual property, otherwise `false`. */ export declare function isConstructor(prop: string): boolean; /** * Checks if a property should be ignored during certain operations. * Ignored properties are either symbols or start with `_` (unless they are virtual properties). * * @param prop - The property name or symbol to check. * @returns `true` if the property should be ignored, otherwise `false`. */ export declare function isIgnoredProperty(target: any, prop: string | symbol): boolean; /** * Checks if a property on a target object is flagged to be ignored during cloning. * * @param target - The object containing the property. * @param prop - The property name or index to check. * @returns `true` if the property is flagged to be ignored, otherwise `false`. */ export declare function isFlagedIgnoreClone(target: any, prop?: string | number): any; /** * Checks if a property on a target object is flagged to be totally ignored by brain. * * @param target - The object containing the property. * @param prop - The property name or index to check. * @returns `true` if the property is flagged to be ignored, otherwise `false`. */ export declare function isFlagedIgnore(target: any, prop?: string | number): any; /** * Determines if a value is of a supported type. * Unsupported types include `WeakMap`, `WeakSet`, `Map`, and `Set`. * * @param value - The value to check. * @returns `true` if the value is of a supported type, otherwise `false`. */ export declare function isTypeSupported(value: any): boolean; /** * Checks if a target object implements the iterator protocol. * * @param target - The object to check. * @returns `true` if the target is an iterator, otherwise `false`. */ export declare function isIterator(target: any): boolean; export {};