export declare function compose(f: (a: A) => B, g: (b: B) => C): (x: A) => C; export declare function invoke(f: (...args: any[]) => R, args: ArrayLike): R; /** * Pipe operator for functional composition. * Manually unrolled for performance optimization up to 12 arguments. * Falls back to loop for more than 12 arguments. */ export declare const op: Op; export interface Op { (a: A): A; (a: A, ab: (_: A) => B): B; (a: A, ab: (_: A) => B, bc: (_: B) => C): C; (a: A, ab: (_: A) => B, bc: (_: B) => C, cd: (_: C) => D): D; (a: A, ab: (_: A) => B, bc: (_: B) => C, cd: (_: C) => D, de: (_: D) => E): E; (a: A, ab: (_: A) => B, bc: (_: B) => C, cd: (_: C) => D, de: (_: D) => E, ef: (_: E) => F): F; (a: A, ab: (_: A) => B, bc: (_: B) => C, cd: (_: C) => D, de: (_: D) => E, ef: (_: E) => F, fg: (_: F) => G): G; (a: A, ab: (_: A) => B, bc: (_: B) => C, cd: (_: C) => D, de: (_: D) => E, ef: (_: E) => F, fg: (_: F) => G, gh: (_: G) => H): H; (a: A, ab: (_: A) => B, bc: (_: B) => C, cd: (_: C) => D, de: (_: D) => E, ef: (_: E) => F, fg: (_: F) => G, gh: (_: G) => H, hi: (_: H) => I): I; (a: A, ab: (_: A) => B, bc: (_: B) => C, cd: (_: C) => D, de: (_: D) => E, ef: (_: E) => F, fg: (_: F) => G, gh: (_: G) => H, hi: (_: H) => I, ij: (_: I) => J): J; (a: A, ab: (_: A) => B, bc: (_: B) => C, cd: (_: C) => D, de: (_: D) => E, ef: (_: E) => F, fg: (_: F) => G, gh: (_: G) => H, hi: (_: H) => I, ij: (_: I) => J, jk: (_: J) => K): K; (a: A, ab: (_: A) => B, bc: (_: B) => C, cd: (_: C) => D, de: (_: D) => E, ef: (_: E) => F, fg: (_: F) => G, gh: (_: G) => H, hi: (_: H) => I, ij: (_: I) => J, jk: (_: J) => K, kl: (_: K) => L): L; (a: A, ab: (_: A) => B, bc: (_: B) => C, cd: (_: C) => D, de: (_: D) => E, ef: (_: E) => F, fg: (_: F) => G, gh: (_: G) => H, hi: (_: H) => I, ij: (_: I) => J, jk: (_: J) => K, kl: (_: K) => L, lm: (_: L) => M): M; } export interface Curried2 { (): Curried2; (a: A, b: B): C; (a: A): (b: B) => C; } export declare function curry2(f: (a: A, b: B) => C): Curried2; export interface Curried3 { (): Curried3; (a: A): Curried2; (a: A, b: B): (c: C) => D; (a: A, b: B, c: C): D; } export declare function curry3(f: (a: A, b: B, c: C) => D): Curried3; export interface Curried4 { (): Curried4; (a: A): Curried3; (a: A, b: B): Curried2; (a: A, b: B, c: C): (d: D) => E; (a: A, b: B, c: C, d: D): E; } export declare function curry4(f: (a: A, b: B, c: C, d: D) => E): Curried4; /** * Function composition operator. * Composes functions from left to right for later application. * o(f, g, h)(x) === h(g(f(x))) */ export declare const o: O; export interface O { (): (a: A) => A; (ab: (_: A) => B): (_: A) => B; (ab: (_: A) => B, bc: (_: B) => C): (_: A) => C; (ab: (_: A) => B, bc: (_: B) => C, cd: (_: C) => D): (_: A) => D; (ab: (_: A) => B, bc: (_: B) => C, cd: (_: C) => D, de: (_: D) => E): (_: A) => E; (ab: (_: A) => B, bc: (_: B) => C, cd: (_: C) => D, de: (_: D) => E, ef: (_: E) => F): (_: A) => F; (ab: (_: A) => B, bc: (_: B) => C, cd: (_: C) => D, de: (_: D) => E, ef: (_: E) => F, fg: (_: F) => G): (_: A) => G; (ab: (_: A) => B, bc: (_: B) => C, cd: (_: C) => D, de: (_: D) => E, ef: (_: E) => F, fg: (_: F) => G, gh: (_: G) => H): (_: A) => H; (ab: (_: A) => B, bc: (_: B) => C, cd: (_: C) => D, de: (_: D) => E, ef: (_: E) => F, fg: (_: F) => G, gh: (_: G) => H, hi: (_: H) => I): (_: A) => I; (ab: (_: A) => B, bc: (_: B) => C, cd: (_: C) => D, de: (_: D) => E, ef: (_: E) => F, fg: (_: F) => G, gh: (_: G) => H, hi: (_: H) => I, ij: (_: I) => J): (_: A) => J; (ab: (_: A) => B, bc: (_: B) => C, cd: (_: C) => D, de: (_: D) => E, ef: (_: E) => F, fg: (_: F) => G, gh: (_: G) => H, hi: (_: H) => I, ij: (_: I) => J, jk: (_: J) => K): (_: A) => K; (ab: (_: A) => B, bc: (_: B) => C, cd: (_: C) => D, de: (_: D) => E, ef: (_: E) => F, fg: (_: F) => G, gh: (_: G) => H, hi: (_: H) => I, ij: (_: I) => J, jk: (_: J) => K, kl: (_: K) => L): (_: A) => L; (ab: (_: A) => B, bc: (_: B) => C, cd: (_: C) => D, de: (_: D) => E, ef: (_: E) => F, fg: (_: F) => G, gh: (_: G) => H, hi: (_: H) => I, ij: (_: I) => J, jk: (_: J) => K, kl: (_: K) => L, lm: (_: L) => M): (_: A) => M; }