import type { Nullable } from './type'; /** iterates keys in `schema` and creates an object with values at null */ export declare function setNull(schema: Schema): Nullable; export declare function recursiveAssign(obj: any, paths: (string | number)[], value: any): void; export declare function recursivePush(obj: any, paths: (string | number)[], value: any): void; export declare function recursivePull(obj: any, paths: (string | number)[], index: number): void; export declare function recursiveGet(obj: any, paths: (string | number)[]): any; export declare function recursiveSet(obj: any, paths: (string | number)[], value: any): void; export declare function recursiveDelete(obj: any, paths: (string | number)[]): void; export declare function clone(value: T, exceptKey?: string[]): T; export declare function walkObject(fn: (value: T, key: string) => void, obj: { [key: string]: T; }): void; export declare function arrayToObject(array: T[], idKey?: K): { [key: string]: T; }; export declare function objectToArray(obj: { [key: string]: T; }, idKey?: string): (T & { _id: string; })[]; export declare function circularReplacer(): (key: string, value: any) => any; export declare function group(list: T[], key: ((obj: T) => string) | K): { [key: string]: T[]; }; export declare function pluck(items: T[], fn: (obj: T) => R): R[]; /** * Sort array if needed, order matters */ export declare function isDeepEql(a: any, b: any): boolean; /** * Sets a value at a nested path in an object using dot notation. * @param obj - The object to modify * @param path - The dot-separated path (e.g., 'a.b.c') * @param value - The value to set at the path */ export declare function setByPath(obj: Record, path: string, value: any): void; /** * Deletes a value at a dot-separated path in an object. * For array elements, removes the element at the specified index. * @param obj - The object to modify * @param path - The dot-separated path (e.g., 'a.b.c' or 'items.0') */ export declare function deleteByPath(obj: Record, path: string): void; /** * Adds/pushes a value to an array at a dot-separated path in an object. * @param obj - The object to modify * @param path - The dot-separated path to the array (e.g., 'items') * @param value - The value to push to the array */ export declare function addByPath(obj: Record, path: string, value: any): void;