import { isNonNullObject } from "./objects.js"; export type TupleToIntersection = T extends [infer A] ? A : T extends [infer A, infer B] ? A & B : T extends [infer A, infer B, infer C] ? A & B & C : T extends [infer A, infer B, infer C, infer D] ? A & B & C & D : T extends [infer A, infer B, infer C, infer D, infer E] ? A & B & C & D & E : T extends (infer U)[] ? U : any; export declare function mergeDeep(...sources: T): TupleToIntersection; export declare function mergeDeepArray(sources: T[]): T; export type ReconcilerFunction = (this: DeepMerger, target: Record, source: Record, property: string | number, ...context: TContextArgs) => any; export declare class DeepMerger { private reconciler; constructor(reconciler?: ReconcilerFunction); merge(target: any, source: any, ...context: TContextArgs): any; isObject: typeof isNonNullObject; private pastCopies; shallowCopyForMerge(value: T): T; } //# sourceMappingURL=mergeDeep.d.ts.map