import { Fn } from './Fn'; import { Invoke } from './Invoke'; import { IfInvoking, Input } from './utils'; export interface If, True extends Fn, False extends Fn> extends Fn { out: IfInvoking>, True['out']>; } export type IfRaw, True extends Fn, False extends Fn, In extends Condition['in']> = Invoke extends true ? True : False, In>;