export declare type CurriedFunction2 = { (p0: P0): { (p1: P1): R; }; (p0: P0, p1: P1): R; }; export declare type CurriedFunction3 = { (p0: P0, p1: P1, p2: P2): R; (p0: P0, p1: P1): { (p2: P2): R; }; (p0: P0): CurriedFunction2; }; export declare type CurriedFunction4 = { (p0: P0, p1: P1, p2: P2, p3: P3): R; (p0: P0, p1: P1, p2: P2): { (p3: P3): R; }; (p0: P0, p1: P1): CurriedFunction2; (p0: P0): CurriedFunction3; }; export declare function curry2(fn: (p0: P0, p1: P1) => R): CurriedFunction2; export declare function curry3(fn: (p0: P0, p1: P1, p2: P2) => R): CurriedFunction3; export declare function curry4(fn: (p0: P0, p1: P1, p2: P2, p3: P3) => R): CurriedFunction4;