declare type PrependNextNum> = A['length'] extends infer T ? ((t: T, ...a: A) => void) extends ((...x: infer X) => void) ? X : never : never; declare type EnumerateInternal, N extends number> = { 0: A; 1: EnumerateInternal, N>; }[N extends A['length'] ? 0 : 1]; export declare type Enumerate = EnumerateInternal<[], N> extends (infer E)[] ? E : never; export declare type Range = Exclude, Enumerate>; export {};