declare function pipe(): (x: A) => A;
declare function pipe(fn: (x: A) => R): (x: A) => R;
declare function pipe(fn1: (x: A) => R1, fn2: (x: R1) => R2): (x: A) => R2;
declare function pipe(fn1: (x: A) => R1, fn2: (x: R1) => R2, fn3: (x: R2) => R3): (x: A) => R3;
declare function pipe(fn1: (x: A) => R1, fn2: (x: R1) => R2, fn3: (x: R2) => R3, fn4: (x: R3) => R4): (x: A) => R4;
declare function pipe(fn1: (x: A) => R1, fn2: (x: R1) => R2, fn3: (x: R2) => R3, fn4: (x: R3) => R4, fn5: (x: R4) => R5): (x: A) => R5;
declare function pipe(fn1: (x: A) => R1, fn2: (x: R1) => R2, fn3: (x: R2) => R3, fn4: (x: R3) => R4, fn5: (x: R4) => R5, fn6: (x: R5) => R6): (x: A) => R6;
declare function pipe(...fns: Array<(x: T) => T>): (x: T) => T;
export { pipe };