type AF = (...args: any) => any; type GetLastItem = T extends [ ...any, infer C extends T[number] ] ? C : never; type PipeFunctions any)[]> = (...args: R[0] extends (...args: any) => any ? Parameters : any) => GetLastItem extends never ? any : ReturnType>; type ArrayLength = T extends { length: infer C; } ? C : never; export declare function pipeline(): never; export declare function pipeline(fn1: (input: A) => B): (input: A) => B; export declare function pipeline(fn1: (input: A) => B, fn2: (input: B) => C): (input: A) => C; export declare function pipeline(fn1: (input: A) => B, fn2: (input: B) => C, fn3: (input: C) => D): (input: A) => D; export declare function pipeline(fn1: (input: A) => B, fn2: (input: B) => C, fn3: (input: C) => D, fn4: (input: D) => E): (input: A) => E; export declare function pipeline(...funcs: ArrayLength extends 1 | 2 | 3 | 4 ? [] : T): PipeFunctions; export {}; //# sourceMappingURL=pipeline.d.ts.map