/** * Applies changes to an object in an immutable way. The `dest` object will adopt the properties of * the `src` object. Object identity is preserved if the operation results in a no-op. */ export declare function update(dest: T, src: Partial): T; /** * Applies changes to an object in an immutable way. The `dest` object will adopt the properties of * the `src` object. If `dest` is undefined, `src` will be used. Object identity is preserved if * the operation results in a no-op. */ export declare function updateOrCreate(dest: T | null | undefined, src: NonNullable): T; /** * Inserts a value in an immutable array. */ export declare function insert(array: readonly T[], value: T, index: number): T[]; /** * Updates a value in an immutable array. */ export declare function updateArray(array: readonly T[], value: T, index: number): T[]; /** * Removes a value in an immutable array. */ export declare function remove(array: readonly T[], index: number): T[]; /** * Removes a set of properties from an object in an immutable way. Object identity is preserved if * the operation results in a no-op. */ export declare function omit(obj: T, ...keys: readonly K[]): Omit; /** * Returns an object created from `obj` with only the specified `keys`. Object identity is preserved if * the operation results in a no-op. */ export declare function take>(obj: T, ...keys: readonly K[]): Omit>; /** * Returns an array without any of its items equal to `value`. Object identity is preserved if * the operation results in a no-op. */ export declare function without(array: readonly T[], value: T): readonly T[];