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 };