/** * Checks whether the given object has any properties. */ export declare function isEmptyObject(obj: unknown): boolean; /** * Recursively removes all properties with an empty object or array as its value from the given object. * * Null-tolerant: skips `null` values without recursing into them. * `typeof null === 'object'` in JavaScript, so without an explicit guard * the recursion would call `Object.keys(null)` and throw. */ export declare function removeEmptyObjects(obj: Record): void; /** * Recursively removes all properties with `undefined` as its value from the given object. * * Mutates `obj` in place and descends into nested objects. Null-tolerant: * `null` values are left in place but not recursed into (`typeof null === * 'object'` in JavaScript, so without the guard the recursion would call * `Object.keys(null)` and throw). Use {@link omitUndefined} when you * want an immutable, shallow, type-preserving alternative. * * @see {@link omitUndefined} for the non-mutating, typed, shallow variant used * by higher-level packages like `@enbox/api` to normalize call-site options. */ export declare function removeUndefinedProperties(obj: Record): void; /** * Returns a new object containing only the entries of `input` whose values are * not `undefined`. Pure — never mutates the input. Shallow — does not descend * into nested objects. * * Companion to {@link removeUndefinedProperties}, which mutates and recurses. * Pick the variant that matches the call site: * * | Helper | Mutates? | Recursive? | Typed? | * |------------------------------|----------|------------|------------------| * | `removeUndefinedProperties` | yes | yes | no (`Record`) | * | `omitUndefined` | no | no | yes (preserves T)| * * Both helpers are the single source of truth for the monorepo — * `@enbox/dwn-sdk-js/utils/object.ts` re-exports them rather than holding * its own copy. New shape-transform helpers belong here. * * @example * ```ts * omitUndefined({ a: 1, b: undefined, c: 'x' }); * // → { a: 1, c: 'x' } * * // Useful when building option payloads where `undefined` keys would break * // assertion equality in tests: * const opts = omitUndefined({ password: input.password, sync: input.sync }); * ``` */ export declare function omitUndefined(input: T): Partial; //# sourceMappingURL=object.d.ts.map