/** * Creates a new object with all properties from the source except those with empty values. * Empty values are defined as null, undefined, or empty strings. * * @see {@link compactObject} for a recursive alternative that only removes `null` and `undefined` (keeps empty strings). * * @param obj - The source object to filter. * @returns A new object containing only properties with non-empty values. * * @example * // Basic usage * const obj = { a: 1, b: null, c: '', d: undefined, e: 'value' }; * removeEmptyValues(obj); * // { a: 1, e: 'value' } * * @example * // Nested objects and arrays * const data = { * user: { name: 'Alice', age: null }, * tags: ['valid', '', null], * active: true * }; * removeEmptyValues(data); * // { user: { name: 'Alice' }, tags: ['valid'], active: true } * * @example * // Zero and false are preserved * removeEmptyValues({ a: 0, b: false, c: null, d: '' }); * // { a: 0, b: false } * * @example * // Empty arrays and objects are preserved * removeEmptyValues({ arr: [], obj: {}, value: null }); * // { arr: [], obj: {} } * * @example * // Real-world: Clean API response before saving * const apiResponse = { * id: 123, * name: 'Product', * description: '', * metadata: null, * tags: ['electronics', '', 'gadgets'] * }; * const cleaned = removeEmptyValues(apiResponse); * // { id: 123, name: 'Product', tags: ['electronics', 'gadgets'] } * * @note Creates a new object and doesn't modify the original. * @note Zero, false, and empty arrays/objects are NOT considered empty values. * @note Recursively filters nested objects and arrays. * @note Empty strings (''), null, and undefined are removed. * @note Useful for cleaning form data and API responses. * * @complexity Time: O(n), Space: O(n) - Where n is total values including nested */ export declare function removeEmptyValues(obj: Record): Partial>; //# sourceMappingURL=removeEmptyValues.d.ts.map