export declare const when: (...args: import("../..").Cast boolean, whenTrueFn?: (a: any) => unknown, x?: any]>) => { 0: (...args: import("../..").Cast, [pred: (a: any) => boolean, whenTrueFn: (a: any) => unknown, x: any]>, any[]>>>) => { 0: (...args: import("../..").Cast, import("../..").Cast, [pred: (a: any) => boolean, whenTrueFn: (a: any) => unknown, x: any]>, any[]>>, any[]>>>) => { 0: (...args: import("../..").Cast, import("../..").Cast, import("../..").Cast, [pred: (a: any) => boolean, whenTrueFn: (a: any) => unknown, x: any]>, any[]>>, any[]>>, any[]>>>) => { 0: (...args: import("../..").Cast, import("../..").Cast, import("../..").Cast, import("../..").Cast, [pred: (a: any) => boolean, whenTrueFn: (a: any) => unknown, x: any]>, any[]>>, any[]>>, any[]>>, any[]>>>) => { 0: (...args: import("../..").Cast, import("../..").Cast, import("../..").Cast, import("../..").Cast, import("../..").Cast, [pred: (a: any) => boolean, whenTrueFn: (a: any) => unknown, x: any]>, any[]>>, any[]>>, any[]>>, any[]>>, any[]>>>) => { 0: (...args: import("../..").Cast, import("../..").Cast, import("../..").Cast, import("../..").Cast, import("../..").Cast, import("../..").Cast, [pred: (a: any) => boolean, whenTrueFn: (a: any) => unknown, x: any]>, any[]>>, any[]>>, any[]>>, any[]>>, any[]>>, any[]>>>) => { 0: (...args: import("../..").Cast, import("../..").Cast, import("../..").Cast, import("../..").Cast, import("../..").Cast, import("../..").Cast, import("../..").Cast, [pred: (a: any) => boolean, whenTrueFn: (a: any) => unknown, x: any]>, any[]>>, any[]>>, any[]>>, any[]>>, any[]>>, any[]>>, any[]>>>) => { 0: (...args: import("../..").Cast, import("../..").Cast, import("../..").Cast, import("../..").Cast, import("../..").Cast, import("../..").Cast, import("../..").Cast, import("../..").Cast, [pred: (a: any) => boolean, whenTrueFn: (a: any) => unknown, x: any]>, any[]>>, any[]>>, any[]>>, any[]>>, any[]>>, any[]>>, any[]>>, any[]>>>) => { 0: (...args: import("../..").Cast, import("../..").Cast, import("../..").Cast, import("../..").Cast, import("../..").Cast, import("../..").Cast, import("../..").Cast, import("../..").Cast, import("../..").Cast, [pred: (a: any) => boolean, whenTrueFn: (a: any) => unknown, x: any]>, any[]>>, any[]>>, any[]>>, any[]>>, any[]>>, any[]>>, any[]>>, any[]>>, any[]>>>) => { 0: (...args: import("../..").Cast, import("../..").Cast, import("../..").Cast, import("../..").Cast, import("../..").Cast, import("../..").Cast, import("../..").Cast, import("../..").Cast, import("../..").Cast, import("../..").Cast, [pred: (a: any) => boolean, whenTrueFn: (a: any) => unknown, x: any]>, any[]>>, any[]>>, any[]>>, any[]>>, any[]>>, any[]>>, any[]>>, any[]>>, any[]>>, any[]>>>) => { 0: /*elided*/ any; 1: any; }[import("../..").Drop, import("../..").Cast, import("../..").Cast, import("../..").Cast, import("../..").Cast, import("../..").Cast, import("../..").Cast, import("../..").Cast, import("../..").Cast, import("../..").Cast, import("../..").Cast, [pred: (a: any) => boolean, whenTrueFn: (a: any) => unknown, x: any]>, any[]>>, any[]>>, any[]>>, any[]>>, any[]>>, any[]>>, any[]>>, any[]>>, any[]>>, any[]>> extends [any, ...any[]] ? 0 : 1]; 1: any; }[import("../..").Drop, import("../..").Cast, import("../..").Cast, import("../..").Cast, import("../..").Cast, import("../..").Cast, import("../..").Cast, import("../..").Cast, import("../..").Cast, import("../..").Cast, [pred: (a: any) => boolean, whenTrueFn: (a: any) => unknown, x: any]>, any[]>>, any[]>>, any[]>>, any[]>>, any[]>>, any[]>>, any[]>>, any[]>>, any[]>> extends [any, ...any[]] ? 0 : 1]; 1: any; }[import("../..").Drop, import("../..").Cast, import("../..").Cast, import("../..").Cast, import("../..").Cast, import("../..").Cast, import("../..").Cast, import("../..").Cast, import("../..").Cast, [pred: (a: any) => boolean, whenTrueFn: (a: any) => unknown, x: any]>, any[]>>, any[]>>, any[]>>, any[]>>, any[]>>, any[]>>, any[]>>, any[]>> extends [any, ...any[]] ? 0 : 1]; 1: any; }[import("../..").Drop, import("../..").Cast, import("../..").Cast, import("../..").Cast, import("../..").Cast, import("../..").Cast, import("../..").Cast, import("../..").Cast, [pred: (a: any) => boolean, whenTrueFn: (a: any) => unknown, x: any]>, any[]>>, any[]>>, any[]>>, any[]>>, any[]>>, any[]>>, any[]>> extends [any, ...any[]] ? 0 : 1]; 1: any; }[import("../..").Drop, import("../..").Cast, import("../..").Cast, import("../..").Cast, import("../..").Cast, import("../..").Cast, import("../..").Cast, [pred: (a: any) => boolean, whenTrueFn: (a: any) => unknown, x: any]>, any[]>>, any[]>>, any[]>>, any[]>>, any[]>>, any[]>> extends [any, ...any[]] ? 0 : 1]; 1: any; }[import("../..").Drop, import("../..").Cast, import("../..").Cast, import("../..").Cast, import("../..").Cast, import("../..").Cast, [pred: (a: any) => boolean, whenTrueFn: (a: any) => unknown, x: any]>, any[]>>, any[]>>, any[]>>, any[]>>, any[]>> extends [any, ...any[]] ? 0 : 1]; 1: any; }[import("../..").Drop, import("../..").Cast, import("../..").Cast, import("../..").Cast, import("../..").Cast, [pred: (a: any) => boolean, whenTrueFn: (a: any) => unknown, x: any]>, any[]>>, any[]>>, any[]>>, any[]>> extends [any, ...any[]] ? 0 : 1]; 1: any; }[import("../..").Drop, import("../..").Cast, import("../..").Cast, import("../..").Cast, [pred: (a: any) => boolean, whenTrueFn: (a: any) => unknown, x: any]>, any[]>>, any[]>>, any[]>> extends [any, ...any[]] ? 0 : 1]; 1: any; }[import("../..").Drop, import("../..").Cast, import("../..").Cast, [pred: (a: any) => boolean, whenTrueFn: (a: any) => unknown, x: any]>, any[]>>, any[]>> extends [any, ...any[]] ? 0 : 1]; 1: any; }[import("../..").Drop, import("../..").Cast, [pred: (a: any) => boolean, whenTrueFn: (a: any) => unknown, x: any]>, any[]>> extends [any, ...any[]] ? 0 : 1]; 1: any; }[import("../..").Drop, [pred: (a: any) => boolean, whenTrueFn: (a: any) => unknown, x: any]> extends [any, ...any[]] ? 0 : 1];