type _Reverse = (T extends [infer U, ...infer Rest] ? _Reverse : Result); export type Reverse = _Reverse; export type SafeOmit = Omit; export type StrictExtract = Extract; export type StrictExclude = Exclude; export type DistributivePick = T extends T ? Pick : never; export type DistributiveSafeOmit = T extends T ? SafeOmit : never; export {};