/** * Traverse the object deeply, calling callback on all properties that are not object * Arrays and objects are both considered object * Removes circular references * Limits the traversal depth to prevent excessive recursion * Note: Mutates the obj passed in * @param obj The object to traverse and mutate * @param callback Function to call on each non-object property * @param maxDepth Maximum depth to traverse (default: 100) * @param currentDepth Current depth of traversal (used internally) * @param seen Set of already seen objects (used for circular reference detection) * @returns The mutated object */ export declare function traverseAndMutateObject(obj: Record, callback: (key: string, value: unknown) => unknown, maxDepth?: number, currentDepth?: number, seen?: Set): unknown; /** * Remove from obj, all properties list redactedProperties. * Recursively remove from nested properties as well * @param redactedProperties * @param clonedObj */ export declare function redactProperties>(redactedProperties: Array, obj: T): T; /** * Checks if the given value is a plain object. * A plain object is an object created by the Object constructor or one with a [[Prototype]] of null. * * @param value - The value to check * @returns True if the value is a plain object, false otherwise */ export declare function isPlainObject(value: unknown): value is Record;