type TuplePrepend = [ NewElement, ...Tuple ]; type Consumer = (value: Value) => void; type IntersectionFromUnion = (Union extends unknown ? Consumer : never) extends Consumer ? ResultIntersection : never; type OverloadedConsumerFromUnion = IntersectionFromUnion : never>; type UnionLast = OverloadedConsumerFromUnion extends (a: infer A) => void ? A : never; type UnionExcludingLast = Exclude>; type TupleFromUnionRec = [RemainingUnion] extends [never] ? CurrentTuple : TupleFromUnionRec, TuplePrepend>>; export type TupleFromUnion = TupleFromUnionRec; export {}; //# sourceMappingURL=tuple-from-union.d.ts.map