export declare const when: <T extends any[]>(...args: import("../..").Cast<T, [pred?: (a: any) => boolean, whenTrueFn?: (a: any) => unknown, x?: any]>) => {
    0: <T_1 extends any[]>(...args: import("../..").Cast<T_1, Partial<import("../..").Cast<import("../..").Drop<import("../..").Length<T>, [pred: (a: any) => boolean, whenTrueFn: (a: any) => unknown, x: any]>, any[]>>>) => {
        0: <T_2 extends any[]>(...args: import("../..").Cast<T_2, Partial<import("../..").Cast<import("../..").Drop<import("../..").Length<T_1>, import("../..").Cast<import("../..").Drop<import("../..").Length<T>, [pred: (a: any) => boolean, whenTrueFn: (a: any) => unknown, x: any]>, any[]>>, any[]>>>) => {
            0: <T_3 extends any[]>(...args: import("../..").Cast<T_3, Partial<import("../..").Cast<import("../..").Drop<import("../..").Length<T_2>, import("../..").Cast<import("../..").Drop<import("../..").Length<T_1>, import("../..").Cast<import("../..").Drop<import("../..").Length<T>, [pred: (a: any) => boolean, whenTrueFn: (a: any) => unknown, x: any]>, any[]>>, any[]>>, any[]>>>) => {
                0: <T_4 extends any[]>(...args: import("../..").Cast<T_4, Partial<import("../..").Cast<import("../..").Drop<import("../..").Length<T_3>, import("../..").Cast<import("../..").Drop<import("../..").Length<T_2>, import("../..").Cast<import("../..").Drop<import("../..").Length<T_1>, import("../..").Cast<import("../..").Drop<import("../..").Length<T>, [pred: (a: any) => boolean, whenTrueFn: (a: any) => unknown, x: any]>, any[]>>, any[]>>, any[]>>, any[]>>>) => {
                    0: <T_5 extends any[]>(...args: import("../..").Cast<T_5, Partial<import("../..").Cast<import("../..").Drop<import("../..").Length<T_4>, import("../..").Cast<import("../..").Drop<import("../..").Length<T_3>, import("../..").Cast<import("../..").Drop<import("../..").Length<T_2>, import("../..").Cast<import("../..").Drop<import("../..").Length<T_1>, import("../..").Cast<import("../..").Drop<import("../..").Length<T>, [pred: (a: any) => boolean, whenTrueFn: (a: any) => unknown, x: any]>, any[]>>, any[]>>, any[]>>, any[]>>, any[]>>>) => {
                        0: <T_6 extends any[]>(...args: import("../..").Cast<T_6, Partial<import("../..").Cast<import("../..").Drop<import("../..").Length<T_5>, import("../..").Cast<import("../..").Drop<import("../..").Length<T_4>, import("../..").Cast<import("../..").Drop<import("../..").Length<T_3>, import("../..").Cast<import("../..").Drop<import("../..").Length<T_2>, import("../..").Cast<import("../..").Drop<import("../..").Length<T_1>, import("../..").Cast<import("../..").Drop<import("../..").Length<T>, [pred: (a: any) => boolean, whenTrueFn: (a: any) => unknown, x: any]>, any[]>>, any[]>>, any[]>>, any[]>>, any[]>>, any[]>>>) => {
                            0: <T_7 extends any[]>(...args: import("../..").Cast<T_7, Partial<import("../..").Cast<import("../..").Drop<import("../..").Length<T_6>, import("../..").Cast<import("../..").Drop<import("../..").Length<T_5>, import("../..").Cast<import("../..").Drop<import("../..").Length<T_4>, import("../..").Cast<import("../..").Drop<import("../..").Length<T_3>, import("../..").Cast<import("../..").Drop<import("../..").Length<T_2>, import("../..").Cast<import("../..").Drop<import("../..").Length<T_1>, import("../..").Cast<import("../..").Drop<import("../..").Length<T>, [pred: (a: any) => boolean, whenTrueFn: (a: any) => unknown, x: any]>, any[]>>, any[]>>, any[]>>, any[]>>, any[]>>, any[]>>, any[]>>>) => {
                                0: <T_8 extends any[]>(...args: import("../..").Cast<T_8, Partial<import("../..").Cast<import("../..").Drop<import("../..").Length<T_7>, import("../..").Cast<import("../..").Drop<import("../..").Length<T_6>, import("../..").Cast<import("../..").Drop<import("../..").Length<T_5>, import("../..").Cast<import("../..").Drop<import("../..").Length<T_4>, import("../..").Cast<import("../..").Drop<import("../..").Length<T_3>, import("../..").Cast<import("../..").Drop<import("../..").Length<T_2>, import("../..").Cast<import("../..").Drop<import("../..").Length<T_1>, import("../..").Cast<import("../..").Drop<import("../..").Length<T>, [pred: (a: any) => boolean, whenTrueFn: (a: any) => unknown, x: any]>, any[]>>, any[]>>, any[]>>, any[]>>, any[]>>, any[]>>, any[]>>, any[]>>>) => {
                                    0: <T_9 extends any[]>(...args: import("../..").Cast<T_9, Partial<import("../..").Cast<import("../..").Drop<import("../..").Length<T_8>, import("../..").Cast<import("../..").Drop<import("../..").Length<T_7>, import("../..").Cast<import("../..").Drop<import("../..").Length<T_6>, import("../..").Cast<import("../..").Drop<import("../..").Length<T_5>, import("../..").Cast<import("../..").Drop<import("../..").Length<T_4>, import("../..").Cast<import("../..").Drop<import("../..").Length<T_3>, import("../..").Cast<import("../..").Drop<import("../..").Length<T_2>, import("../..").Cast<import("../..").Drop<import("../..").Length<T_1>, import("../..").Cast<import("../..").Drop<import("../..").Length<T>, [pred: (a: any) => boolean, whenTrueFn: (a: any) => unknown, x: any]>, any[]>>, any[]>>, any[]>>, any[]>>, any[]>>, any[]>>, any[]>>, any[]>>, any[]>>>) => {
                                        0: <T_10 extends any[]>(...args: import("../..").Cast<T_10, Partial<import("../..").Cast<import("../..").Drop<import("../..").Length<T_9>, import("../..").Cast<import("../..").Drop<import("../..").Length<T_8>, import("../..").Cast<import("../..").Drop<import("../..").Length<T_7>, import("../..").Cast<import("../..").Drop<import("../..").Length<T_6>, import("../..").Cast<import("../..").Drop<import("../..").Length<T_5>, import("../..").Cast<import("../..").Drop<import("../..").Length<T_4>, import("../..").Cast<import("../..").Drop<import("../..").Length<T_3>, import("../..").Cast<import("../..").Drop<import("../..").Length<T_2>, import("../..").Cast<import("../..").Drop<import("../..").Length<T_1>, import("../..").Cast<import("../..").Drop<import("../..").Length<T>, [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("../..").Length<T_10>, import("../..").Cast<import("../..").Drop<import("../..").Length<T_9>, import("../..").Cast<import("../..").Drop<import("../..").Length<T_8>, import("../..").Cast<import("../..").Drop<import("../..").Length<T_7>, import("../..").Cast<import("../..").Drop<import("../..").Length<T_6>, import("../..").Cast<import("../..").Drop<import("../..").Length<T_5>, import("../..").Cast<import("../..").Drop<import("../..").Length<T_4>, import("../..").Cast<import("../..").Drop<import("../..").Length<T_3>, import("../..").Cast<import("../..").Drop<import("../..").Length<T_2>, import("../..").Cast<import("../..").Drop<import("../..").Length<T_1>, import("../..").Cast<import("../..").Drop<import("../..").Length<T>, [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("../..").Length<T_9>, import("../..").Cast<import("../..").Drop<import("../..").Length<T_8>, import("../..").Cast<import("../..").Drop<import("../..").Length<T_7>, import("../..").Cast<import("../..").Drop<import("../..").Length<T_6>, import("../..").Cast<import("../..").Drop<import("../..").Length<T_5>, import("../..").Cast<import("../..").Drop<import("../..").Length<T_4>, import("../..").Cast<import("../..").Drop<import("../..").Length<T_3>, import("../..").Cast<import("../..").Drop<import("../..").Length<T_2>, import("../..").Cast<import("../..").Drop<import("../..").Length<T_1>, import("../..").Cast<import("../..").Drop<import("../..").Length<T>, [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("../..").Length<T_8>, import("../..").Cast<import("../..").Drop<import("../..").Length<T_7>, import("../..").Cast<import("../..").Drop<import("../..").Length<T_6>, import("../..").Cast<import("../..").Drop<import("../..").Length<T_5>, import("../..").Cast<import("../..").Drop<import("../..").Length<T_4>, import("../..").Cast<import("../..").Drop<import("../..").Length<T_3>, import("../..").Cast<import("../..").Drop<import("../..").Length<T_2>, import("../..").Cast<import("../..").Drop<import("../..").Length<T_1>, import("../..").Cast<import("../..").Drop<import("../..").Length<T>, [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("../..").Length<T_7>, import("../..").Cast<import("../..").Drop<import("../..").Length<T_6>, import("../..").Cast<import("../..").Drop<import("../..").Length<T_5>, import("../..").Cast<import("../..").Drop<import("../..").Length<T_4>, import("../..").Cast<import("../..").Drop<import("../..").Length<T_3>, import("../..").Cast<import("../..").Drop<import("../..").Length<T_2>, import("../..").Cast<import("../..").Drop<import("../..").Length<T_1>, import("../..").Cast<import("../..").Drop<import("../..").Length<T>, [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("../..").Length<T_6>, import("../..").Cast<import("../..").Drop<import("../..").Length<T_5>, import("../..").Cast<import("../..").Drop<import("../..").Length<T_4>, import("../..").Cast<import("../..").Drop<import("../..").Length<T_3>, import("../..").Cast<import("../..").Drop<import("../..").Length<T_2>, import("../..").Cast<import("../..").Drop<import("../..").Length<T_1>, import("../..").Cast<import("../..").Drop<import("../..").Length<T>, [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("../..").Length<T_5>, import("../..").Cast<import("../..").Drop<import("../..").Length<T_4>, import("../..").Cast<import("../..").Drop<import("../..").Length<T_3>, import("../..").Cast<import("../..").Drop<import("../..").Length<T_2>, import("../..").Cast<import("../..").Drop<import("../..").Length<T_1>, import("../..").Cast<import("../..").Drop<import("../..").Length<T>, [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("../..").Length<T_4>, import("../..").Cast<import("../..").Drop<import("../..").Length<T_3>, import("../..").Cast<import("../..").Drop<import("../..").Length<T_2>, import("../..").Cast<import("../..").Drop<import("../..").Length<T_1>, import("../..").Cast<import("../..").Drop<import("../..").Length<T>, [pred: (a: any) => boolean, whenTrueFn: (a: any) => unknown, x: any]>, any[]>>, any[]>>, any[]>>, any[]>> extends [any, ...any[]] ? 0 : 1];
                1: any;
            }[import("../..").Drop<import("../..").Length<T_3>, import("../..").Cast<import("../..").Drop<import("../..").Length<T_2>, import("../..").Cast<import("../..").Drop<import("../..").Length<T_1>, import("../..").Cast<import("../..").Drop<import("../..").Length<T>, [pred: (a: any) => boolean, whenTrueFn: (a: any) => unknown, x: any]>, any[]>>, any[]>>, any[]>> extends [any, ...any[]] ? 0 : 1];
            1: any;
        }[import("../..").Drop<import("../..").Length<T_2>, import("../..").Cast<import("../..").Drop<import("../..").Length<T_1>, import("../..").Cast<import("../..").Drop<import("../..").Length<T>, [pred: (a: any) => boolean, whenTrueFn: (a: any) => unknown, x: any]>, any[]>>, any[]>> extends [any, ...any[]] ? 0 : 1];
        1: any;
    }[import("../..").Drop<import("../..").Length<T_1>, import("../..").Cast<import("../..").Drop<import("../..").Length<T>, [pred: (a: any) => boolean, whenTrueFn: (a: any) => unknown, x: any]>, any[]>> extends [any, ...any[]] ? 0 : 1];
    1: any;
}[import("../..").Drop<import("../..").Length<T>, [pred: (a: any) => boolean, whenTrueFn: (a: any) => unknown, x: any]> extends [any, ...any[]] ? 0 : 1];
