import { Arity0, Arity1, Arity2, Arity3, Arity4, Curry2, Curry3, Curry4 } from '../types'; export declare type PlaceHolder = { readonly ['@@placeholder']: true; }; export declare type PartialFn = { (f: Arity0, args: Array): Arity0; (f: Arity1, args: [A]): Arity0; (f: Arity1, args: [PlaceHolder]): typeof f; (f: Arity1, args: Array): typeof f; (f: Arity2, args: [A, B]): Arity0; (f: Arity2, args: [A]): Arity1; (f: Arity2, args: Array): Curry2; (f: Arity2, args: [PlaceHolder, B]): Arity1; (f: Arity2, args: [A, PlaceHolder]): Arity1; (f: Arity2, args: [PlaceHolder]): Curry2; (f: Arity2, args: [PlaceHolder, PlaceHolder]): Curry2; (f: Arity3, args: [A, B, C]): Arity0; (f: Arity3, args: [A, B]): Arity1; (f: Arity3, args: [A]): Curry2; (f: Arity3, args: Array): Curry3; (f: Arity3, args: [PlaceHolder, B, C]): Arity1; (f: Arity3, args: [PlaceHolder, PlaceHolder, C]): Curry2; (f: Arity3, args: [PlaceHolder, B, PlaceHolder]): Curry2; (f: Arity3, args: [A, PlaceHolder, C]): Arity1; (f: Arity3, args: [A, PlaceHolder, PlaceHolder]): Curry2; (f: Arity3, args: [A, B, PlaceHolder]): Arity1; (f: Arity3, args: [PlaceHolder, PlaceHolder, PlaceHolder]): Curry3; (f: Arity4, args: [A, B, C, D]): Arity0; (f: Arity4, args: [A, B, C]): Arity1; (f: Arity4, args: [A, B]): Curry2; (f: Arity4, args: [A]): Curry3; (f: Arity4, args: Array): Curry4; (f: Arity4, args: [PlaceHolder, B, C, D]): Arity1; (f: Arity4, args: [PlaceHolder, PlaceHolder, C, D]): Curry2; (f: Arity4, args: [PlaceHolder, B, PlaceHolder, D]): Curry2; (f: Arity4, args: [PlaceHolder, B, C, PlaceHolder]): Curry2; (f: Arity4, args: [A, PlaceHolder, C, D]): Arity1; (f: Arity4, args: [A, PlaceHolder, PlaceHolder, D]): Curry2; (f: Arity4, args: [A, PlaceHolder, C, PlaceHolder]): Curry2; (f: Arity4, args: [A, B, PlaceHolder, D]): Arity1; (f: Arity4, args: [A, B, PlaceHolder, PlaceHolder]): Curry2; (f: Arity4, args: [A, B, C, PlaceHolder]): Arity1; (f: Arity4, args: [PlaceHolder, PlaceHolder, PlaceHolder, PlaceHolder]): Curry4; (f: Arity4, args: [PlaceHolder, PlaceHolder, PlaceHolder, D]): Curry3; (f: Arity4, args: [PlaceHolder, PlaceHolder, C, PlaceHolder]): Curry3; (f: Arity4, args: [PlaceHolder, B, PlaceHolder, PlaceHolder]): Curry3; (f: Arity4, args: [A, PlaceHolder, PlaceHolder, PlaceHolder]): Curry3; (f: Arity0): Arity0Partial; (f: Arity1): Arity1Partial; (f: Arity2): Arity2Partial; (f: Arity3): Arity3Partial; (f: Arity4): Arity4Partial; }; export declare type Arity0Partial = { (args: Array): Arity0; }; export declare type Arity1Partial = { (args: [A]): Arity0; (args: [PlaceHolder]): Arity1; (args: Array): Arity1; }; export declare type Arity2Partial = { (args: [A, B]): Arity0; (args: [A]): Arity1; (args: Array): Curry2; (args: [PlaceHolder, B]): Arity1; (args: [A, PlaceHolder]): Arity1; (args: [PlaceHolder]): Curry2; (args: [PlaceHolder, PlaceHolder]): Curry2; }; export declare type Arity3Partial = { (args: [A, B, C]): Arity0; (args: [A, B]): Arity1; (args: [A]): Curry2; (args: Array): Curry3; (args: [PlaceHolder, B, C]): Arity1; (args: [PlaceHolder, PlaceHolder, C]): Curry2; (args: [PlaceHolder, B, PlaceHolder]): Curry2; (args: [A, PlaceHolder, C]): Arity1; (args: [A, PlaceHolder, PlaceHolder]): Curry2; (args: [A, B, PlaceHolder]): Arity1; }; export declare type Arity4Partial = { (args: [A, B, C, D]): Arity0; (args: [A, B, C]): Arity1; (args: [A, B]): Curry2; (args: [A]): Curry3; (args: Array): Curry4; (args: [PlaceHolder, B, C, D]): Arity1; (args: [PlaceHolder, PlaceHolder, C, D]): Curry2; (args: [PlaceHolder, B, PlaceHolder, D]): Curry2; (args: [PlaceHolder, B, C, PlaceHolder]): Curry2; (args: [A, PlaceHolder, C, D]): Arity1; (args: [A, PlaceHolder, PlaceHolder, D]): Curry2; (args: [A, PlaceHolder, C, PlaceHolder]): Curry2; (args: [A, B, PlaceHolder, D]): Arity1; (args: [A, B, PlaceHolder, PlaceHolder]): Curry2; (args: [A, B, C, PlaceHolder]): Arity1; (args: [PlaceHolder, PlaceHolder, PlaceHolder, PlaceHolder]): Curry4; (args: [PlaceHolder, PlaceHolder, PlaceHolder, D]): Curry3; (args: [PlaceHolder, PlaceHolder, C, PlaceHolder]): Curry3; (args: [PlaceHolder, B, PlaceHolder, PlaceHolder]): Curry3; (args: [A, PlaceHolder, PlaceHolder, PlaceHolder]): Curry3; };