import type { AnyObject } from './types'; type OptionalPropertyNames = { [K in keyof T]-?: AnyObject extends { [P in K]: T[K]; } ? K : never; }[keyof T]; type SpreadProperties = { [P in K]: L[P] | Exclude; }; type Id = T extends infer U ? { [K in keyof U]: U[K]; } : never; type SpreadTwo = Id> & Pick>> & Pick, keyof L>> & SpreadProperties & keyof L>>; type Assign = A extends [infer L, ...infer R] ? SpreadTwo> : unknown; /** * assigns properties of one or more source objects onto target object * @example * assign({ a: 1, b: 2 }, { b: 4, c: 5 }) * // returns { a: 1, b: 4, c: 5 } */ export default function assign(...args: [...T]): Assign; export {}; //# sourceMappingURL=assign.d.ts.map