import { TupleLast } from "./types" type PipeFn = (v: In) => Out /** Combine functions end to end */ export function pipe(f0: (...args: Args) => Ret): (...args: Args) => Ret export function pipe(f0: (...args: Args) => Ret, f1: PipeFn,): (...args: Args) => T0 export function pipe(f0: (...args: Args) => Ret, f1: PipeFn, f2: PipeFn): (...args: Args) => T1 export function pipe(f0: (...args: Args) => Ret, f1: PipeFn, f2: PipeFn, f3: PipeFn): (...args: Args) => T2 export function pipe(f0: (...args: Args) => Ret, f1: PipeFn, f2: PipeFn, f3: PipeFn, f4: PipeFn): (...args: Args) => T3 export function pipe(f0: (...args: Args) => Ret, f1: PipeFn, f2: PipeFn, f3: PipeFn, f4: PipeFn, f5: PipeFn): (...args: Args) => T4 export function pipe(f0: (...args: Args) => Ret, f1: PipeFn, f2: PipeFn, f3: PipeFn, f4: PipeFn, f5: PipeFn, f6: PipeFn): (...args: Args) => T5 export function pipe(f0: (...args: Args) => Ret, f1: PipeFn, f2: PipeFn, f3: PipeFn, f4: PipeFn, f5: PipeFn, f6: PipeFn, f7: PipeFn): (...args: Args) => T6 export function pipe(f0: (...args: Args) => Ret, f1: PipeFn, f2: PipeFn, f3: PipeFn, f4: PipeFn, f5: PipeFn, f6: PipeFn, f7: PipeFn, f8: PipeFn): (...args: Args) => T7 export function pipe(f0: (...args: Args) => Ret, f1: PipeFn, f2: PipeFn, f3: PipeFn, f4: PipeFn, f5: PipeFn, f6: PipeFn, f7: PipeFn, f8: PipeFn, f9: PipeFn): (...args: Args) => T8 export function pipe(f0: (...args: Args) => Ret, f1: PipeFn, f2: PipeFn, f3: PipeFn, f4: PipeFn, f5: PipeFn, f6: PipeFn, f7: PipeFn, f8: PipeFn, f9: PipeFn, f10: PipeFn): (...args: Args) => T9 export function pipe(f0: (...args: Args) => Ret, f1: PipeFn, f2: PipeFn, f3: PipeFn, f4: PipeFn, f5: PipeFn, f6: PipeFn, f7: PipeFn, f8: PipeFn, f9: PipeFn, f10: PipeFn, f11: PipeFn): (...args: Args) => T10 export function pipe(f0: (...args: Args) => Ret, f1: PipeFn, f2: PipeFn, f3: PipeFn, f4: PipeFn, f5: PipeFn, f6: PipeFn, f7: PipeFn, f8: PipeFn, f9: PipeFn, f10: PipeFn, f11: PipeFn, f12: PipeFn): (...args: Args) => T11 export function pipe(f0: (...args: Args) => Ret, f1: PipeFn, f2: PipeFn, f3: PipeFn, f4: PipeFn, f5: PipeFn, f6: PipeFn, f7: PipeFn, f8: PipeFn, f9: PipeFn, f10: PipeFn, f11: PipeFn, f12: PipeFn, f13: PipeFn): (...args: Args) => T12 export function pipe(f0: (...args: Args) => Ret, f1: PipeFn, f2: PipeFn, f3: PipeFn, f4: PipeFn, f5: PipeFn, f6: PipeFn, f7: PipeFn, f8: PipeFn, f9: PipeFn, f10: PipeFn, f11: PipeFn, f12: PipeFn, f13: PipeFn, f14: PipeFn): (...args: Args) => T13 export function pipe(f0: (...args: Args) => Ret, f1: PipeFn, f2: PipeFn, f3: PipeFn, f4: PipeFn, f5: PipeFn, f6: PipeFn, f7: PipeFn, f8: PipeFn, f9: PipeFn, f10: PipeFn, f11: PipeFn, f12: PipeFn, f13: PipeFn, f14: PipeFn, f15: PipeFn): (...args: Args) => T14 export function pipe(f0: (...args: Args) => Ret, f1: PipeFn, f2: PipeFn, f3: PipeFn, f4: PipeFn, f5: PipeFn, f6: PipeFn, f7: PipeFn, f8: PipeFn, f9: PipeFn, f10: PipeFn, f11: PipeFn, f12: PipeFn, f13: PipeFn, f14: PipeFn, f15: PipeFn, f16: PipeFn): (...args: Args) => T15 export function pipe(f0: (...args: Args) => Ret, f1: PipeFn, f2: PipeFn, f3: PipeFn, f4: PipeFn, f5: PipeFn, f6: PipeFn, f7: PipeFn, f8: PipeFn, f9: PipeFn, f10: PipeFn, f11: PipeFn, f12: PipeFn, f13: PipeFn, f14: PipeFn, f15: PipeFn, f16: PipeFn, f17: PipeFn): (...args: Args) => T16 export function pipe(f0: (...args: Args) => Ret, f1: PipeFn, f2: PipeFn, f3: PipeFn, f4: PipeFn, f5: PipeFn, f6: PipeFn, f7: PipeFn, f8: PipeFn, f9: PipeFn, f10: PipeFn, f11: PipeFn, f12: PipeFn, f13: PipeFn, f14: PipeFn, f15: PipeFn, f16: PipeFn, f17: PipeFn, f18: PipeFn): (...args: Args) => T17 export function pipe(f0: (...args: Args) => Ret, f1: PipeFn, f2: PipeFn, f3: PipeFn, f4: PipeFn, f5: PipeFn, f6: PipeFn, f7: PipeFn, f8: PipeFn, f9: PipeFn, f10: PipeFn, f11: PipeFn, f12: PipeFn, f13: PipeFn, f14: PipeFn, f15: PipeFn, f16: PipeFn, f17: PipeFn, f18: PipeFn, f19: PipeFn): (...args: Args) => T18 export function pipe(f0: (...args: Args) => Ret, f1: PipeFn, f2: PipeFn, f3: PipeFn, f4: PipeFn, f5: PipeFn, f6: PipeFn, f7: PipeFn, f8: PipeFn, f9: PipeFn, f10: PipeFn, f11: PipeFn, f12: PipeFn, f13: PipeFn, f14: PipeFn, f15: PipeFn, f16: PipeFn, f17: PipeFn, f18: PipeFn, f19: PipeFn, f20: PipeFn): (...args: Args) => T19 export function pipe(f0: (...args: Args) => Ret, f1: PipeFn, f2: PipeFn, f3: PipeFn, f4: PipeFn, f5: PipeFn, f6: PipeFn, f7: PipeFn, f8: PipeFn, f9: PipeFn, f10: PipeFn, f11: PipeFn, f12: PipeFn, f13: PipeFn, f14: PipeFn, f15: PipeFn, f16: PipeFn, f17: PipeFn, f18: PipeFn, f19: PipeFn, f20: PipeFn, f21: PipeFn): (...args: Args) => T20 export function pipe(f0: (...args: Args) => Ret, f1: PipeFn, f2: PipeFn, f3: PipeFn, f4: PipeFn, f5: PipeFn, f6: PipeFn, f7: PipeFn, f8: PipeFn, f9: PipeFn, f10: PipeFn, f11: PipeFn, f12: PipeFn, f13: PipeFn, f14: PipeFn, f15: PipeFn, f16: PipeFn, f17: PipeFn, f18: PipeFn, f19: PipeFn, f20: PipeFn, f21: PipeFn, f22: PipeFn): (...args: Args) => T21 export function pipe(f0: (...args: Args) => Ret, f1: PipeFn, f2: PipeFn, f3: PipeFn, f4: PipeFn, f5: PipeFn, f6: PipeFn, f7: PipeFn, f8: PipeFn, f9: PipeFn, f10: PipeFn, f11: PipeFn, f12: PipeFn, f13: PipeFn, f14: PipeFn, f15: PipeFn, f16: PipeFn, f17: PipeFn, f18: PipeFn, f19: PipeFn, f20: PipeFn, f21: PipeFn, f22: PipeFn, f23: PipeFn): (...args: Args) => T22 export function pipe(f0: (...args: Args) => Ret, f1: PipeFn, f2: PipeFn, f3: PipeFn, f4: PipeFn, f5: PipeFn, f6: PipeFn, f7: PipeFn, f8: PipeFn, f9: PipeFn, f10: PipeFn, f11: PipeFn, f12: PipeFn, f13: PipeFn, f14: PipeFn, f15: PipeFn, f16: PipeFn, f17: PipeFn, f18: PipeFn, f19: PipeFn, f20: PipeFn, f21: PipeFn, f22: PipeFn, f23: PipeFn, f24: PipeFn): (...args: Args) => T23 export function pipe(f0: (...args: Args) => Ret, f1: PipeFn, f2: PipeFn, f3: PipeFn, f4: PipeFn, f5: PipeFn, f6: PipeFn, f7: PipeFn, f8: PipeFn, f9: PipeFn, f10: PipeFn, f11: PipeFn, f12: PipeFn, f13: PipeFn, f14: PipeFn, f15: PipeFn, f16: PipeFn, f17: PipeFn, f18: PipeFn, f19: PipeFn, f20: PipeFn, f21: PipeFn, f22: PipeFn, f23: PipeFn, f24: PipeFn, f25: PipeFn): (...args: Args) => T24 export function pipe(f0: (...args: Args) => Ret, f1: PipeFn, f2: PipeFn, f3: PipeFn, f4: PipeFn, f5: PipeFn, f6: PipeFn, f7: PipeFn, f8: PipeFn, f9: PipeFn, f10: PipeFn, f11: PipeFn, f12: PipeFn, f13: PipeFn, f14: PipeFn, f15: PipeFn, f16: PipeFn, f17: PipeFn, f18: PipeFn, f19: PipeFn, f20: PipeFn, f21: PipeFn, f22: PipeFn, f23: PipeFn, f24: PipeFn, f25: PipeFn, f26: PipeFn): (...args: Args) => T25 export function pipe(f0: (...args: Args) => Ret, f1: PipeFn, f2: PipeFn, f3: PipeFn, f4: PipeFn, f5: PipeFn, f6: PipeFn, f7: PipeFn, f8: PipeFn, f9: PipeFn, f10: PipeFn, f11: PipeFn, f12: PipeFn, f13: PipeFn, f14: PipeFn, f15: PipeFn, f16: PipeFn, f17: PipeFn, f18: PipeFn, f19: PipeFn, f20: PipeFn, f21: PipeFn, f22: PipeFn, f23: PipeFn, f24: PipeFn, f25: PipeFn, f26: PipeFn, f27: PipeFn): (...args: Args) => T26 export function pipe(f0: (...args: Args) => Ret, f1: PipeFn, f2: PipeFn, f3: PipeFn, f4: PipeFn, f5: PipeFn, f6: PipeFn, f7: PipeFn, f8: PipeFn, f9: PipeFn, f10: PipeFn, f11: PipeFn, f12: PipeFn, f13: PipeFn, f14: PipeFn, f15: PipeFn, f16: PipeFn, f17: PipeFn, f18: PipeFn, f19: PipeFn, f20: PipeFn, f21: PipeFn, f22: PipeFn, f23: PipeFn, f24: PipeFn, f25: PipeFn, f26: PipeFn, f27: PipeFn, f28: PipeFn): (...args: Args) => T27 export function pipe(f0: (...args: Args) => Ret, f1: PipeFn, f2: PipeFn, f3: PipeFn, f4: PipeFn, f5: PipeFn, f6: PipeFn, f7: PipeFn, f8: PipeFn, f9: PipeFn, f10: PipeFn, f11: PipeFn, f12: PipeFn, f13: PipeFn, f14: PipeFn, f15: PipeFn, f16: PipeFn, f17: PipeFn, f18: PipeFn, f19: PipeFn, f20: PipeFn, f21: PipeFn, f22: PipeFn, f23: PipeFn, f24: PipeFn, f25: PipeFn, f26: PipeFn, f27: PipeFn, f28: PipeFn, f29: PipeFn): (...args: Args) => T28 export function pipe(f0: (...args: Args) => Ret, f1: PipeFn, f2: PipeFn, f3: PipeFn, f4: PipeFn, f5: PipeFn, f6: PipeFn, f7: PipeFn, f8: PipeFn, f9: PipeFn, f10: PipeFn, f11: PipeFn, f12: PipeFn, f13: PipeFn, f14: PipeFn, f15: PipeFn, f16: PipeFn, f17: PipeFn, f18: PipeFn, f19: PipeFn, f20: PipeFn, f21: PipeFn, f22: PipeFn, f23: PipeFn, f24: PipeFn, f25: PipeFn, f26: PipeFn, f27: PipeFn, f28: PipeFn, f29: PipeFn, f30: PipeFn): (...args: Args) => T29 export function pipe(f0: (...args: Args) => Ret, f1: PipeFn, f2: PipeFn, f3: PipeFn, f4: PipeFn, f5: PipeFn, f6: PipeFn, f7: PipeFn, f8: PipeFn, f9: PipeFn, f10: PipeFn, f11: PipeFn, f12: PipeFn, f13: PipeFn, f14: PipeFn, f15: PipeFn, f16: PipeFn, f17: PipeFn, f18: PipeFn, f19: PipeFn, f20: PipeFn, f21: PipeFn, f22: PipeFn, f23: PipeFn, f24: PipeFn, f25: PipeFn, f26: PipeFn, f27: PipeFn, f28: PipeFn, f29: PipeFn, f30: PipeFn, f31: PipeFn): (...args: Args) => T30 export function pipe(f0: (...args: Args) => Ret, f1: PipeFn, f2: PipeFn, f3: PipeFn, f4: PipeFn, f5: PipeFn, f6: PipeFn, f7: PipeFn, f8: PipeFn, f9: PipeFn, f10: PipeFn, f11: PipeFn, f12: PipeFn, f13: PipeFn, f14: PipeFn, f15: PipeFn, f16: PipeFn, f17: PipeFn, f18: PipeFn, f19: PipeFn, f20: PipeFn, f21: PipeFn, f22: PipeFn, f23: PipeFn, f24: PipeFn, f25: PipeFn, f26: PipeFn, f27: PipeFn, f28: PipeFn, f29: PipeFn, f30: PipeFn, f31: PipeFn, f32: PipeFn): (...args: Args) => T31 export function pipe[]>(f0: (...args: Args) => Ret, f1: PipeFn, f2: PipeFn, f3: PipeFn, f4: PipeFn, f5: PipeFn, f6: PipeFn, f7: PipeFn, f8: PipeFn, f9: PipeFn, f10: PipeFn, f11: PipeFn, f12: PipeFn, f13: PipeFn, f14: PipeFn, f15: PipeFn, f16: PipeFn, f17: PipeFn, f18: PipeFn, f19: PipeFn, f20: PipeFn, f21: PipeFn, f22: PipeFn, f23: PipeFn, f24: PipeFn, f25: PipeFn, f26: PipeFn, f27: PipeFn, f28: PipeFn, f29: PipeFn, f30: PipeFn, f31: PipeFn, f32: PipeFn, ...fns: Other): (...args: Args) => ReturnType> export function pipe(f0: any, ...fns: any[]): any { return (...args: any) => { let r = f0(...args) for (const f of fns) r = f(r) return r } }