import { Fn } from '../Fn'; import { Invoke } from '../Invoke'; import { HandleNever, IfInvoking, Input } from '../utils'; export interface FlatMap> extends Fn { out: IfInvoking>, T['out'][number][]>; } export type InvokeFlatMap, In extends T['in'][]> = Internal; type Internal, In extends T['in'][], Acc extends T['out'][number][]> = In extends [infer First extends T['in'], ...infer Rest extends T['in'][]] ? Internal>]> : Acc; export {};