/** * Returns the longer of the two tuples. Indefinite tuples will always be considered longest. */ type _Longest = any[] extends T1 ? T1 : any[] extends T2 ? T2 : Exclude extends never ? T2 : T1; /** * Returns the longest of up to 10 different tuples. */ export type Longest = _Longest<_Longest<_Longest<_Longest, _Longest>, _Longest<_Longest, _Longest>>, _Longest>; /** * A rigorous type alias for a class. */ export type Class = (abstract new (...args: any[]) => InstanceType) & StaticType; export {};