/** * Creates a function which pipes its input through a sequence of functions in left-to-right order. * * A higher-order function that takes any number of functions as its arguments and returns a new function that applies * each function in sequence, passing the result of each function as the argument to the next function. * * ## Example * * In this example, we first define three functions: `addOne`, `double`, and `square`. We then use the `flow` function * to create a new function `composedFn` that composes these three functions together. We can then call `composedFn` * with an argument to get the result of applying the composed functions in sequence. * * Note that the flow function applies the functions in left to right order, so the first function given as an argument * is applied first. * * ```ts * import { flow } from 'tightrope/fn/flow'; * * // Define some functions to compose * function addOne(n: number): number { * return n + 1; * } * * function double(n: number): number { * return n * 2; * } * * function square(n: number): number { * return n * n; * } * * // Use flow to create a new function that composes the other functions * const composedFn = flow(addOne, double, square); * * // Call the composed function with an argument * const result = composedFn(3); // returns 64 * ``` * * @tags composition */ export declare function flow(): never; export declare function flow(fn1: (...args: A) => B): (...args: A) => B; export declare function flow(fn1: (...args: A) => B, fn2: (arg: B) => C): (...args: A) => C; export declare function flow(fn1: (...args: A) => B, fn2: (arg: B) => C, fn3: (arg: C) => D): (...args: A) => D; export declare function flow(fn1: (...args: A) => B, fn2: (arg: B) => C, fn3: (arg: C) => D, fn4: (arg: D) => E): (...args: A) => E; export declare function flow(fn1: (...args: A) => B, fn2: (arg: B) => C, fn3: (arg: C) => D, fn4: (arg: D) => E, fn5: (arg: E) => F): (...args: A) => F; export declare function flow(fn1: (...args: A) => B, fn2: (arg: B) => C, fn3: (arg: C) => D, fn4: (arg: D) => E, fn5: (arg: E) => F, fn6: (arg: F) => G): (...args: A) => G; export declare function flow(fn1: (...args: A) => B, fn2: (arg: B) => C, fn3: (arg: C) => D, fn4: (arg: D) => E, fn5: (arg: E) => F, fn6: (arg: F) => G, fn7: (arg: G) => H): (...args: A) => H; export declare function flow(fn1: (...args: A) => B, fn2: (arg: B) => C, fn3: (arg: C) => D, fn4: (arg: D) => E, fn5: (arg: E) => F, fn6: (arg: F) => G, fn7: (arg: G) => H, fn8: (arg: H) => I): (...args: A) => I; export declare function flow(fn1: (...args: A) => B, fn2: (arg: B) => C, fn3: (arg: C) => D, fn4: (arg: D) => E, fn5: (arg: E) => F, fn6: (arg: F) => G, fn7: (arg: G) => H, fn8: (arg: H) => I, fn9: (arg: I) => J): (...args: A) => J;