export type Assert = T; export type HasAllKeys = Exclude extends never ? true : false; export type HasNoKeys = Extract extends never ? true : false; export type IsExactly = [Actual] extends [Expected] ? [Expected] extends [Actual] ? true : false : false; type DistributiveOmit = T extends unknown ? Omit : never; type HasSamePropsExcept = IsExactly, DistributiveOmit>; export type HasLegacyOnly = HasAllKeys extends true ? HasNoKeys extends true ? HasAllKeys extends true ? HasNoKeys extends true ? HasSamePropsExcept : false : false : false : false; export type HasRemovedLegacyOnly = HasAllKeys extends true ? HasNoKeys : false; export type HasLegacyWithCompatibleNew = HasAllKeys extends true ? HasNoKeys extends true ? HasAllKeys extends true ? HasNoKeys extends true ? HasSamePropsExcept : false : false : false : false; export type HasLegacyExportOnly = HasAllKeys extends true ? HasNoKeys : false; export {};