/** Merge types of two objects. */ export type Spread = TTarget extends void ? TSource : TSource extends void ? TTarget : Omit & Omit & SpreadRequiredProperties & keyof TTarget> & SpreadRequiredProperties & keyof TSource> & SpreadOptionalProperties & OptionalKeys>; type RequiredKeys = { [Key in keyof TRecord]-?: {} extends Pick ? never : Key; }[keyof TRecord]; type OptionalKeys = { [Key in keyof TRecord]-?: {} extends Pick ? Key : never; }[keyof TRecord]; type SpreadRequiredProperties = { [Key in TKeys]: Exclude | Exclude; }; type SpreadOptionalProperties = { [Key in TKeys]?: TTarget[Key] | TSource[Key]; }; export {}; //# sourceMappingURL=_spread.d.ts.map