export declare class Objects { static copy(obj: T, cbh?: number): T; static deepSearch(obj: any, ...keys: (string | number)[]): boolean; static isObject(obj: any): boolean; static merge(obj1: T, obj2: K, combineArrays?: boolean, cbh?: number): T & K; static trim(obj: T, cbh?: number): Partial; static compare, K extends Record>(obj1: T, obj2: K, cbh?: number): { updates?: Record, any>; deletions?: Record, any>; additions?: Record, any>; }; static intersect(obj1: any, obj2: any, options?: IIntersectOptions): IGenericObject | undefined; static shuffle(arr: T[], createCopy?: boolean): T[]; static subtract(obj1: any, obj2: any, options?: ISubtractOptions): IGenericObject; static createPath(obj: IGenericObject, ...keys: string[]): IGenericObject; } export interface IGenericObject { [key: string]: any; } export interface IGeneralObjectOptions { cbh?: number; } export interface IIntersectOptions extends IGeneralObjectOptions { onlyMatchingFields?: boolean; } export interface ISubtractOptions extends IGeneralObjectOptions { }