/**
* Recursively merges own enumerable string keyed properties of source objects into the destination object. Object properties are merged recursively. Source objects are applied from left to right. Subsequent sources overwrite property assignments of previous sources.
*
* **Note:** This function mutates `object`.
*
* Differences from lodash:
* - will overwrite a value with `undefined`
* - only supports arguments that are objects
* - cannot handle circular references
* - when merging an array onto a non-array, the result is a non-array
*
* Contribution to minified bundle size, when it is the only function imported:
* - Lodash: 10,290 bytes
* - Micro-dash: 409 bytes
*/
export declare function merge(object: A, source: B): A & B;
export declare function merge(object: A, source1: B, source2: C): A & B & C;
export declare function merge(object: A, source1: B, source2: C, source3: D): A & B & C & D;
export declare function merge(object: A, source1: B, source2: C, source3: D, source4: E): A & B & C & D & E;
export declare function merge(object: A, source1: B, source2: C, source3: D, source4: E, source5: F): A & B & C & D & E & F;
export declare function merge(object: T, ...sources: Array>): T;