/** @module function/compose.ts */ import { ExtractFunctionArguments, ExtractFunctionReturnValue } from '../helper-types'; export declare function compose(entry: Fn): (...args: ExtractFunctionArguments) => ExtractFunctionReturnValue; export declare function compose(first: (a: ExtractFunctionReturnValue) => A, entry: Fn): (...args: ExtractFunctionArguments) => A; export declare function compose(ab: (a: A) => B, first: (a: ExtractFunctionReturnValue) => A, entry: Fn): (...args: ExtractFunctionArguments) => B; export declare function compose(bc: (b: B) => C, ab: (a: A) => B, first: (a: ExtractFunctionReturnValue) => A, entry: Fn): (...args: ExtractFunctionArguments) => C; export declare function compose(cd: (c: C) => D, bc: (b: B) => C, ab: (a: A) => B, first: (a: ExtractFunctionReturnValue) => A, entry: Fn): (...args: ExtractFunctionArguments) => D; export declare function compose(de: (d: D) => E, cd: (c: C) => D, bc: (b: B) => C, ab: (a: A) => B, first: (a: ExtractFunctionReturnValue) => A, entry: Fn): (...args: ExtractFunctionArguments) => E; export declare function compose(ef: (e: E) => F, de: (d: D) => E, cd: (c: C) => D, bc: (b: B) => C, ab: (a: A) => B, first: (a: ExtractFunctionReturnValue) => A, entry: Fn): (...args: ExtractFunctionArguments) => F; export declare function compose(fg: (f: F) => G, ef: (e: E) => F, de: (d: D) => E, cd: (c: C) => D, bc: (b: B) => C, ab: (a: A) => B, first: (a: ExtractFunctionReturnValue) => A, entry: Fn): (...args: ExtractFunctionArguments) => G; export declare function compose(gh: (g: G) => H, fg: (f: F) => G, ef: (e: E) => F, de: (d: D) => E, cd: (c: C) => D, bc: (b: B) => C, ab: (a: A) => B, first: (a: ExtractFunctionReturnValue) => A, entry: Fn): (...args: ExtractFunctionArguments) => H; export declare function compose(hi: (h: H) => I, gh: (g: G) => H, fg: (f: F) => G, ef: (e: E) => F, de: (d: D) => E, cd: (c: C) => D, bc: (b: B) => C, ab: (a: A) => B, first: (a: ExtractFunctionReturnValue) => A, entry: Fn): (...args: ExtractFunctionArguments) => I; export declare function compose(ij: (i: I) => J, hi: (h: H) => I, gh: (g: G) => H, fg: (f: F) => G, ef: (e: E) => F, de: (d: D) => E, cd: (c: C) => D, bc: (b: B) => C, ab: (a: A) => B, first: (a: ExtractFunctionReturnValue) => A, entry: Fn): (...args: ExtractFunctionArguments) => J; export declare function compose(jk: (j: J) => K, ij: (i: I) => J, hi: (h: H) => I, gh: (g: G) => H, fg: (f: F) => G, ef: (e: E) => F, de: (d: D) => E, cd: (c: C) => D, bc: (b: B) => C, ab: (a: A) => B, first: (a: ExtractFunctionReturnValue) => A, entry: Fn): (...args: ExtractFunctionArguments) => K; export declare function compose(kl: (k: K) => L, jk: (j: J) => K, ij: (i: I) => J, hi: (h: H) => I, gh: (g: G) => H, fg: (f: F) => G, ef: (e: E) => F, de: (d: D) => E, cd: (c: C) => D, bc: (b: B) => C, ab: (a: A) => B, first: (a: ExtractFunctionReturnValue) => A, entry: Fn): (...args: ExtractFunctionArguments) => L; export declare function compose(lm: (l: L) => M, kl: (k: K) => L, jk: (j: J) => K, ij: (i: I) => J, hi: (h: H) => I, gh: (g: G) => H, fg: (f: F) => G, ef: (e: E) => F, de: (d: D) => E, cd: (c: C) => D, bc: (b: B) => C, ab: (a: A) => B, first: (a: ExtractFunctionReturnValue) => A, entry: Fn): (...args: ExtractFunctionArguments) => M; export declare function compose(mn: (m: M) => N, lm: (l: L) => M, kl: (k: K) => L, jk: (j: J) => K, ij: (i: I) => J, hi: (h: H) => I, gh: (g: G) => H, fg: (f: F) => G, ef: (e: E) => F, de: (d: D) => E, cd: (c: C) => D, bc: (b: B) => C, ab: (a: A) => B, first: (a: ExtractFunctionReturnValue) => A, entry: Fn): (...args: ExtractFunctionArguments) => N; export declare function compose(no: (n: N) => O, mn: (m: M) => N, lm: (l: L) => M, kl: (k: K) => L, jk: (j: J) => K, ij: (i: I) => J, hi: (h: H) => I, gh: (g: G) => H, fg: (f: F) => G, ef: (e: E) => F, de: (d: D) => E, cd: (c: C) => D, bc: (b: B) => C, ab: (a: A) => B, first: (a: ExtractFunctionReturnValue) => A, entry: Fn): (...args: ExtractFunctionArguments) => O; export declare function compose(op: (o: O) => P, no: (n: N) => O, mn: (m: M) => N, lm: (l: L) => M, kl: (k: K) => L, jk: (j: J) => K, ij: (i: I) => J, hi: (h: H) => I, gh: (g: G) => H, fg: (f: F) => G, ef: (e: E) => F, de: (d: D) => E, cd: (c: C) => D, bc: (b: B) => C, ab: (a: A) => B, first: (a: ExtractFunctionReturnValue) => A, entry: Fn): (...args: ExtractFunctionArguments) => P; export declare function compose(pq: (p: P) => Q, op: (o: O) => P, no: (n: N) => O, mn: (m: M) => N, lm: (l: L) => M, kl: (k: K) => L, jk: (j: J) => K, ij: (i: I) => J, hi: (h: H) => I, gh: (g: G) => H, fg: (f: F) => G, ef: (e: E) => F, de: (d: D) => E, cd: (c: C) => D, bc: (b: B) => C, ab: (a: A) => B, first: (a: ExtractFunctionReturnValue) => A, entry: Fn): (...args: ExtractFunctionArguments) => Q; export declare function compose(qr: (q: Q) => R, pq: (p: P) => Q, op: (o: O) => P, no: (n: N) => O, mn: (m: M) => N, lm: (l: L) => M, kl: (k: K) => L, jk: (j: J) => K, ij: (i: I) => J, hi: (h: H) => I, gh: (g: G) => H, fg: (f: F) => G, ef: (e: E) => F, de: (d: D) => E, cd: (c: C) => D, bc: (b: B) => C, ab: (a: A) => B, first: (a: ExtractFunctionReturnValue) => A, entry: Fn): (...args: ExtractFunctionArguments) => R; export declare function compose(rs: (r: R) => S, qr: (q: Q) => R, pq: (p: P) => Q, op: (o: O) => P, no: (n: N) => O, mn: (m: M) => N, lm: (l: L) => M, kl: (k: K) => L, jk: (j: J) => K, ij: (i: I) => J, hi: (h: H) => I, gh: (g: G) => H, fg: (f: F) => G, ef: (e: E) => F, de: (d: D) => E, cd: (c: C) => D, bc: (b: B) => C, ab: (a: A) => B, first: (a: ExtractFunctionReturnValue) => A, entry: Fn): (...args: ExtractFunctionArguments) => S; export declare function compose(st: (s: S) => T, rs: (r: R) => S, qr: (q: Q) => R, pq: (p: P) => Q, op: (o: O) => P, no: (n: N) => O, mn: (m: M) => N, lm: (l: L) => M, kl: (k: K) => L, jk: (j: J) => K, ij: (i: I) => J, hi: (h: H) => I, gh: (g: G) => H, fg: (f: F) => G, ef: (e: E) => F, de: (d: D) => E, cd: (c: C) => D, bc: (b: B) => C, ab: (a: A) => B, first: (a: ExtractFunctionReturnValue) => A, entry: Fn): (...args: ExtractFunctionArguments) => T; export declare function compose(tu: (t: T) => U, st: (s: S) => T, rs: (r: R) => S, qr: (q: Q) => R, pq: (p: P) => Q, op: (o: O) => P, no: (n: N) => O, mn: (m: M) => N, lm: (l: L) => M, kl: (k: K) => L, jk: (j: J) => K, ij: (i: I) => J, hi: (h: H) => I, gh: (g: G) => H, fg: (f: F) => G, ef: (e: E) => F, de: (d: D) => E, cd: (c: C) => D, bc: (b: B) => C, ab: (a: A) => B, first: (a: ExtractFunctionReturnValue) => A, entry: Fn): (...args: ExtractFunctionArguments) => U; export declare function compose(uv: (u: U) => V, tu: (t: T) => U, st: (s: S) => T, rs: (r: R) => S, qr: (q: Q) => R, pq: (p: P) => Q, op: (o: O) => P, no: (n: N) => O, mn: (m: M) => N, lm: (l: L) => M, kl: (k: K) => L, jk: (j: J) => K, ij: (i: I) => J, hi: (h: H) => I, gh: (g: G) => H, fg: (f: F) => G, ef: (e: E) => F, de: (d: D) => E, cd: (c: C) => D, bc: (b: B) => C, ab: (a: A) => B, first: (a: ExtractFunctionReturnValue) => A, entry: Fn): (...args: ExtractFunctionArguments) => V; export declare function compose(vw: (v: V) => W, uv: (u: U) => V, tu: (t: T) => U, st: (s: S) => T, rs: (r: R) => S, qr: (q: Q) => R, pq: (p: P) => Q, op: (o: O) => P, no: (n: N) => O, mn: (m: M) => N, lm: (l: L) => M, kl: (k: K) => L, jk: (j: J) => K, ij: (i: I) => J, hi: (h: H) => I, gh: (g: G) => H, fg: (f: F) => G, ef: (e: E) => F, de: (d: D) => E, cd: (c: C) => D, bc: (b: B) => C, ab: (a: A) => B, first: (a: ExtractFunctionReturnValue) => A, entry: Fn): (...args: ExtractFunctionArguments) => W; export declare function compose(wx: (w: W) => X, vw: (v: V) => W, uv: (u: U) => V, tu: (t: T) => U, st: (s: S) => T, rs: (r: R) => S, qr: (q: Q) => R, pq: (p: P) => Q, op: (o: O) => P, no: (n: N) => O, mn: (m: M) => N, lm: (l: L) => M, kl: (k: K) => L, jk: (j: J) => K, ij: (i: I) => J, hi: (h: H) => I, gh: (g: G) => H, fg: (f: F) => G, ef: (e: E) => F, de: (d: D) => E, cd: (c: C) => D, bc: (b: B) => C, ab: (a: A) => B, first: (a: ExtractFunctionReturnValue) => A, entry: Fn): (...args: ExtractFunctionArguments) => X; export declare function compose(xy: (x: X) => Y, wx: (w: W) => X, vw: (v: V) => W, uv: (u: U) => V, tu: (t: T) => U, st: (s: S) => T, rs: (r: R) => S, qr: (q: Q) => R, pq: (p: P) => Q, op: (o: O) => P, no: (n: N) => O, mn: (m: M) => N, lm: (l: L) => M, kl: (k: K) => L, jk: (j: J) => K, ij: (i: I) => J, hi: (h: H) => I, gh: (g: G) => H, fg: (f: F) => G, ef: (e: E) => F, de: (d: D) => E, cd: (c: C) => D, bc: (b: B) => C, ab: (a: A) => B, first: (a: ExtractFunctionReturnValue) => A, entry: Fn): (...args: ExtractFunctionArguments) => Y; export declare function compose(yz: (y: Y) => Z, xy: (x: X) => Y, wx: (w: W) => X, vw: (v: V) => W, uv: (u: U) => V, tu: (t: T) => U, st: (s: S) => T, rs: (r: R) => S, qr: (q: Q) => R, pq: (p: P) => Q, op: (o: O) => P, no: (n: N) => O, mn: (m: M) => N, lm: (l: L) => M, kl: (k: K) => L, jk: (j: J) => K, ij: (i: I) => J, hi: (h: H) => I, gh: (g: G) => H, fg: (f: F) => G, ef: (e: E) => F, de: (d: D) => E, cd: (c: C) => D, bc: (b: B) => C, ab: (a: A) => B, first: (a: ExtractFunctionReturnValue) => A, entry: Fn): (...args: ExtractFunctionArguments) => Z; export default compose;