//#region src/utils/objects.d.ts declare function isNotNull(value: T): value is NonNullable; type DeepPartial = T extends object ? (T extends any[] ? { [P in keyof T]: DeepPartial } : { [P in keyof T]?: DeepPartial }) : T; type DeepRequired = T extends object ? { [P in keyof T]-?: DeepRequired } : T; type DeepRequiredOrUndefined = T extends object ? { [P in keyof { [K in keyof T]-?: K }]: DeepRequiredOrUndefined } : T; /** * Assumes both objects are primitives, arrays, or non-function plain objects, and compares them deeply. * * Note that since they are assumed to be plain objects, this function does not compare prototypes. */ declare function deepPlainEquals(obj1: T, obj2: unknown, options?: { ignoreUndefinedValues?: boolean; }): obj2 is T; declare function isCloneable(obj: T): obj is Exclude; declare function shallowClone(obj: T): T; declare function deepPlainClone(obj: T): T; type DeepMerge = U extends any ? DeepMergeNonDistributive : never; type DeepMergeNonDistributive = Omit & Omit & DeepMergeInner, Pick>; type DeepMergeInner = { [K in { [Ki in keyof U]-?: Ki }[keyof U]]: undefined extends U[K] ? K extends keyof T ? T[K] extends object ? Exclude extends object ? DeepMerge> : T[K] | Exclude : T[K] | Exclude : Exclude : K extends keyof T ? T[K] extends object ? U[K] extends object ? DeepMerge : U[K] : U[K] : U[K] }; declare function deepMerge(baseObj: T, mergeObj: U): DeepMerge; type DeepOmit = T extends object ? { [K in keyof T]: K extends keyof U ? (T[K] extends U[K] ? undefined : T[K]) : T[K] } : (T extends U ? undefined : T); declare function typedEntries(obj: T): [Exclude, T[keyof T]][]; declare function typedFromEntries(entries: (readonly [K, V])[]): Record; declare function typedKeys(obj: T): (Exclude)[]; declare function typedValues(obj: T): T[keyof T][]; declare function typedAssign(target: T, source: U): T & U; type FilterUndefined = { [k in keyof T as (undefined extends T[k] ? (T[k] extends undefined | void ? never : k) : never)]+?: T[k] & ({} | null) } & { [k in keyof T as (undefined extends T[k] ? never : k)]: T[k] & ({} | null) }; /** * Returns a new object with all undefined values removed. Useful when spreading optional parameters on an object, as * TypeScript's `Partial` type allows `undefined` values. */ declare function filterUndefined(obj: T): FilterUndefined; type FilterUndefinedOrNull = FilterUndefined<{ [k in keyof T]: null extends T[k] ? NonNullable | undefined : T[k] }>; /** * Returns a new object with all undefined and null values removed. Useful when spreading optional parameters on an object, as * TypeScript's `Partial` type allows `undefined` values. */ declare function filterUndefinedOrNull(obj: T): FilterUndefinedOrNull; type DeepFilterUndefined = T extends object ? FilterUndefined<{ [K in keyof T]: DeepFilterUndefined }> : T; declare function deepFilterUndefined(obj: T): DeepFilterUndefined; declare function pick(obj: T, keys: K[]): Pick; declare function omit(obj: T, keys: K[]): Omit; declare function split(obj: T, keys: K[]): [Pick, Omit]; declare function mapValues(obj: T, fn: (value: T extends (infer E)[] ? E : T[keyof T], key: keyof T) => U): Record; declare function sortKeys(obj: T): T; declare function deepSortKeys(obj: T): T; declare function set(obj: T, key: K, value: T[K & keyof T]): void; declare function get(obj: T, key: K): T[K & keyof T]; declare function getOrUndefined(obj: T, key: K): T[K & keyof T] | undefined; declare function has(obj: T, key: K): obj is T & { [k in K & keyof T]: unknown }; declare function hasAndNotUndefined(obj: T, key: K): obj is T & { [k in K]: Exclude }; declare function deleteKey(obj: T, key: K): void; /** * Returns true iff the value is an object or a function, but not null. */ declare function isObjectLike(value: unknown): value is object | Function; //#endregion export { split as A, isObjectLike as C, set as D, pick as E, typedValues as F, typedEntries as M, typedFromEntries as N, shallowClone as O, typedKeys as P, isNotNull as S, omit as T, get as _, DeepRequired as a, hasAndNotUndefined as b, FilterUndefinedOrNull as c, deepPlainClone as d, deepPlainEquals as f, filterUndefinedOrNull as g, filterUndefined as h, DeepPartial as i, typedAssign as j, sortKeys as k, deepFilterUndefined as l, deleteKey as m, DeepMerge as n, DeepRequiredOrUndefined as o, deepSortKeys as p, DeepOmit as r, FilterUndefined as s, DeepFilterUndefined as t, deepMerge as u, getOrUndefined as v, mapValues as w, isCloneable as x, has as y }; //# sourceMappingURL=objects-DkCkeBWE.d.ts.map