interface CleanOptions { /** Custom predicate to determine if value should be kept */ predicate?: (value: unknown, key: string, path: string) => boolean; /** Keep empty arrays (default: false) */ preserveEmptyArrays?: boolean; /** Keep empty objects (default: false) */ preserveEmptyObjects?: boolean; /** Keep empty strings (default: false - they are removed) */ preserveEmptyStrings?: boolean; /** Paths to exclude from cleaning (supports wildcards) */ exclude?: string[]; /** Transform values while cleaning */ transform?: (value: unknown, key: string) => unknown; } /** * Deeply cleans an object by removing null, undefined, and empty string values. * Preserves 0 and false. */ declare function clean(input: T, options?: CleanOptions): T; export { type CleanOptions, clean, clean as cleanObject, clean as default };