type PlainObject = { [key: string]: any; }; type UnionToIntersection = (U extends any ? (k: U) => void : never) extends (k: infer I) => void ? I : never; export declare function merge(target: T, ...sources: U): T & UnionToIntersection; export {};