type ObjectLike<T = unknown> = Record<string, T>;
/**
 * Check if the variable contains an object strictly rejecting arrays
 * @param obj an object
 * @returns `true` if obj is an object
 */
declare function isObjectNotArray<T extends ObjectLike>(obj: unknown | unknown[]): obj is T;
/**
 * Pure function - doesn't mutate either parameter!
 * Merges two objects together deeply, overwriting the properties in first with the properties in second
 * @param first The first object
 * @param second The second object
 * @returns a new object
 */
export declare function deepMerge(first?: ObjectLike, second?: ObjectLike): Record<string, unknown>;
export { isObjectNotArray };
//# sourceMappingURL=deepMerge.d.ts.map