export default class ObjectUtils { /** * Merges multiples objects with each other deep. * Note that symbols and not enumerable properties are ignored. * @param objects * @param override */ static deepMergeObjects(objects: object[], override?: boolean): object; /** * Merges an object with another object deep. * Note that symbols and not enumerable properties are ignored. * @param mainObj * @param toMergeObj * @param override */ static deepMergeTwoObjects(mainObj: object, toMergeObj: object, override?: boolean): object; /** * Merges the root layer of an object with another. * Note that symbols and not enumerable properties are ignored. * @param mainObj * @param addObj * @param overwrite */ static mergeTwoObjects(mainObj: object, addObj: object, overwrite?: boolean): void; /** * Merges the root layer of an object with another (also symbols). * Note that not enumerable properties are ignored. * @param mainObj * @param addObj * @param overwrite */ static mergeTwoObjectsFull(mainObj: object, addObj: object, overwrite?: boolean): void; /** * Returns all values of an object in an array. * @param obj */ static getObjValues(obj: object): any[]; /** * Returns if the object owns one of the property keys. * @param obj * @param keys */ static hasOneOf(obj: object, keys: string[]): boolean; /** * Finds all keys in a specific scope of keys in an object. * @param obj * @param scope */ static findKeysOfScope(obj: object, scope: string[]): string[]; /** * Filters specific scope of properties from an object * and returns the filtered properties in a new object. * @param obj * @param keys */ static filterObjectProps(obj: T, ...keys: K): { [K2 in Extract]: T[K2]; }; /** * Adds props to the prototype of the class. * Note that symbols and not enumerable properties are ignored. * @param classValue * @param props * @param skipUndefined */ static addPropsToClass(classValue: any, props: Record, skipUndefined: boolean): void; /** * Sets unchangeable properties to an object. * @param object * @param props */ static setConstProperties(object: object, props: object): void; }