Here is the code: (question follows)
export type SomeType = T extends [infer A, infer B] ? (fst: A, snd:B) => Promise