import { type Modify } from "../index.js"; /** * Create a new subset object without the provided keys * * @example * ```ts * const newObject = omit({ a:"foo", b:"bar", c: "baz" }, 'a', 'b') * newObject // => { c: "baz" } * ``` */ export declare const omit: (object: O, ...keys: K[]) => Omit; /** * Create a new subset object with only the provided keys * * @example * ```ts * const newObject = pick({ a:"foo", b:"bar", c: "baz" }, 'a', 'b') * newObject // => { a:"foo", b:"bar" } * ``` */ export declare const pick: (object: O, ...keys: K[]) => Pick; /** * Get a single property value of an object by specifying a path to it. */ export declare function get(obj: O, key: K): O[K]; export declare function get(obj: O, k1: K1, k2: K2): O[K1][K2]; export declare function get(obj: O, k1: K1, k2: K2, k3: K3): O[K1][K2][K3]; export declare function get(obj: O, k1: K1, k2: K2, k3: K3, k4: K4): O[K1][K2][K3][K4]; export declare function get(obj: O, k1: K1, k2: K2, k3: K3, k4: K4, k5: K5): O[K1][K2][K3][K4][K5]; export declare function get(obj: O, k1: K1, k2: K2, k3: K3, k4: K4, k5: K5, k6: K6): O[K1][K2][K3][K4][K5][K6]; /** * Split object properties by keys into multiple object copies with a subset of selected properties. * * @param object original object * @param ...keys keys to pick from the source, or multiple arrays of keys *(for splitting into more than 2 objects)* * ```ts * (keyof object)[][] | (keyof object)[] * ``` * @returns array of subset objects */ export declare function split(object: T, ...keys: K[]): [Pick, Omit]; export declare function split(object: T, ...keys: [K1[], K2[]]): [Pick, Pick, Omit]; export declare function split(object: T, ...keys: [K1[], K2[], K3[]]): [Pick, Pick, Pick, Omit]; export declare function split(object: T, ...keys: [K1[], K2[], K3[], K4[]]): [Pick, Pick, Pick, Pick, Omit]; export declare function split(object: T, ...keys: [K1[], K2[], K3[], K4[], K5[]]): [ Pick, Pick, Pick, Pick, Pick, Omit ]; /** * Merges multiple objects into a single one. Only the first level of properties is merged. An alternative to `{ ...a, ...b, ...c }`. * @param ...objects objects to merge * @example * const d = merge(a, b, c) */ export declare function merge(a: A, b: B): Modify; export declare function merge(a: A, b: B, c: C): Modify, C>; export declare function merge(a: A, b: B, c: C, d: D): Modify, C>, D>; export declare function merge(a: A, b: B, c: C, d: D, e: E): Modify, C>, D>, E>; export declare function merge(a: A, b: B, c: C, d: D, e: E, f: F): Modify, C>, D>, E>, F>;