import type { UnionToIntersection } from "type-fest" type LastOf = UnionToIntersection void : never> extends (x: infer Last) => void ? Last : never export type UnionToTuple> = [T] extends [never] ? [] : [...UnionToTuple>, Last]