/** * General object utility functions */ /** * Filter out null and undefined values from an object * Keeps all properties that have defined values (including falsy values like 0, '', false) * * @param params - The object to filter * @returns A new object with only non-nullish values * * @example * notNullish({ a: 1, b: null, c: undefined, d: 0 }) // => { a: 1, d: 0 } */ export declare const notNullish: >(params: T) => T; /** * Check if an object is empty (has no own properties) * Returns true for null, undefined, and empty objects {} * Returns false for arrays (even empty ones) and objects with properties * * @param obj - The object to check * @returns true if the object is empty, null, or undefined * * @example * isObjectEmpty({}) // => true * isObjectEmpty(null) // => true * isObjectEmpty({ name: 'test' }) // => false * isObjectEmpty([]) // => false (arrays are not plain objects) */ export declare const isObjectEmpty: (obj: any) => boolean; /** * Extract specific fields from an object based on a filter object * Supports nested object extraction * * @param data - The source object to extract fields from * @param filter - An object where true means include the field, nested objects for nested extraction * @returns A new object containing only the specified fields * * @example * const data = { name: 'hero', id: 123, schema: { title: 'text' } }; * extractFields(data, { name: true, id: true }) // => { name: 'hero', id: 123 } * * @example * // Nested extraction * extractFields(data, { schema: { title: true } }) // => { schema: { title: 'text' } } */ export declare const extractFields: (data: any, filter: any) => any;