export declare type Equal = (() => U extends Left ? 1 : 0) extends () => U extends Right ? 1 : 0 ? true : false; export declare type Same = Left extends Right ? Right extends Left ? true : false : false; export declare type IfNotAny = 0 extends 1 & T ? never : T; export declare type IfNotUndefined = Exclude extends never ? never : T; export declare type IsNotAnyOrUndefined = IfNotUndefined> extends never ? false : true; export declare type UnionToIntersection = (U extends any ? (k: U) => void : never) extends (k: infer I) => void ? I : never; export declare type IfNotUnion = UnionToIntersection extends never ? void : Equal> extends true ? MaybeUnion : void; export declare type EntityOrArrayToUnion = T extends infer S | Array ? S : never; export declare type IfNotString = string extends T ? never : T;