/** * Assign properties, constructors, etc. to an object * * @param target - The target object that gets `sources` assigned to it * @param sources - The sources to be assigned to the target object * @return An object representing the union of the target and sources objects */ export declare const assign: (target: object, ...sources: object[]) => object; /** * Deep clone an object. * * @param source - Object to be cloned. * @return Cloned `source` object. */ export declare const deepClone: (source: object) => object; /** * Extend an object with another object. * * @param target - Target object or `undefined` if a new object should * be created. * @param source - Object to be cloned. * @return Cloned `source` object */ export declare const extend: (target: object | undefined, source: object) => object; /** * Update the target object by the source object. Besides extending that target * object, properties that are not present in the source object. * * @param target - Target object * be created. * @param source - Object to be cloned. * @return Cloned `source` object */ export declare const update: (target: object, source: object) => object; /** * Invert an object by swapping its keys and values. * * @example * ```js * invert({ a: 'cool', b: 'sweet' }); * // => { cool: 'a', sweet: 'b' } * ``` * * @param obj - The object to be inverted. * @return Inverted object */ export declare const invert: (obj: Record) => Record;