import type { ConvertedObject, ConvertObjectOptions, GenericObject, NumericDotKey } from './types'; /** * * Converts the values of specified keys in an object to `"string"` or `"number"`. * * Supports nested objects using dot-notation keys. * * @param data The object to convert. * @param options Options object specifying the conversion mapping. * - `keys`: The keys in the objects to be converted (dot-notation supported). * - `convertTo`: The target type, either `"string"` or `"number"`. * @returns The modified object with the converted values as `"string"` or `"number"`. */ export declare function convertObjectValues, C extends 'string' | 'number'>(data: T, options: ConvertObjectOptions): ConvertedObject; /** * * Converts the values of specified keys in an array of objects to `"string"` or `"number"`. * * Supports nested objects using dot-notation keys. * * @param data The array of objects to convert. * @param options Options object specifying the conversion mapping. * - `keys`: The keys in the objects to be converted (dot-notation supported). * - `convertTo`: The target type, either `"string"` or `"number"`. * @returns The modified array of objects with the converted values as `"string"` or `"number"`. */ export declare function convertObjectValues, C extends 'string' | 'number'>(data: Array, options: ConvertObjectOptions): Array>; /** * * Pick specific fields from an object and create a new object with specified fields. * * @description This function creates a new object containing only the specified fields from the source object. * It is useful for creating a new object with a subset of properties from an existing object. * * @param T The type of the source object. * @param U The type of the keys to pick from the source object. * * @param source The source object from which to pick fields. * @param keys The keys of the fields to pick from the source object. * * @returns An object containing only the picked fields. */ export declare function pickFields(source: T, keys: U[]): { [K in U]: T[K]; }; /** * * Create a new object by removing specific keys from the source object. * * @param source - The original (source) object from which to delete fields. * @param keys - An array of keys (fields) to remove from the object. * * @returns A new object without the specified keys. * * @example * deleteFields({ a: 1, b: 2, c: 3 }, ['b']) * // => { a: 1, c: 3 } * * @notes * - Does not mutate the original object. * - Useful for excluding sensitive or unwanted fields. */ export declare function deleteFields(source: T, keys: readonly U[]): { [K in Exclude]: T[K]; }; /** * * Pick specific fields from an object based on a given condition. * * @description This function creates a new object containing only the fields that satisfy the given condition. * The condition can be based on the field's value or type, depending on the implementation. * * @param T The type of the source object. * * @param source The source object from which to pick fields. * @param condition A function that takes the key and value of a property and returns a boolean indicating whether the property should be picked. * * @returns An object containing only the fields that satisfy the condition. */ export declare function pickObjectFieldsByCondition(source: T, condition: (key: keyof T, value: T[keyof T]) => boolean): Partial; /** * * Remap fields from one object to another. * @description This function creates a new object with fields remapped from the source object to the target object based on the provided field map. * * @param source The source object from which to remap fields. * @param fieldMap An object that maps target keys to source keys. * @returns An object with fields remapped according to the field map. */ export declare function remapFields>(source: Source, fieldMap: Target): { [K in keyof Target]: Source[Target[K]]; };