declare type CommonKeys = keyof T; declare type Keys = T extends unknown ? keyof T : never; declare type NonCommonKeys = Exclude, CommonKeys>; declare type Common = Pick>; declare type NonCommon = T extends Partial> ? keyof T extends never ? never : V : never; declare type NonCommons = { [K in NonCommonKeys]?: NonCommon; }; declare type Values = { [K in keyof T]: T[K]; }; export declare type Merge = Values & NonCommons>; export {};