export declare class Placeholder {
}
export declare const _: Placeholder;
export declare const isPlaceholder: (placeholder: any) => placeholder is Placeholder;
export declare const pappSlots: (...placeholders: any[]) => (fn: (...a: any[]) => A) => (...fillers: any[]) => A;
/**
* Works on conjunction with `_` (a `Placeholder` instance) from this library
* to provide a placeholder parameter that will be invoked at a later time.
* @param fn foobar
* @example
* import { _, placeholder } from 'soultrain'
* const friendlyTemplate = (name: string, message: string) : string => `Hello ${name}! ${message}`
* const welcome = placeholder( friendlyTemplate, _ ,'Welcome to Oregon!')
* welcome('Roxanne') // Hello Roxanne! Welcome to Oregon!
*
*/
export declare function placeholder(fn: (a: A, b: B) => Z, a: Placeholder, b: B): (p: A) => Z;
export declare function placeholder(fn: (a: A, b: B) => Z, a: A, b: Placeholder): (p: B) => Z;
export declare function placeholder(fn: (a: A, b: B, c: C) => Z, a: Placeholder, b: B, c: C): (p: A) => Z;
export declare function placeholder(fn: (a: A, b: B, c: C) => Z, a: A, b: Placeholder, c: C): (p: B) => Z;
export declare function placeholder(fn: (a: A, b: B, c: C) => Z, a: A, b: B, c: Placeholder): (p: C) => Z;
export declare function placeholder(fn: (a: A, b: B, c: C, d: D) => Z, a: Placeholder, b: B, c: C, d: D): (p: A) => Z;
export declare function placeholder(fn: (a: A, b: B, c: C, d: D) => Z, a: A, b: Placeholder, c: C, d: D): (p: B) => Z;
export declare function placeholder(fn: (a: A, b: B, c: C, d: D) => Z, a: A, b: B, c: Placeholder, d: D): (p: C) => Z;
export declare function placeholder(fn: (a: A, b: B, c: C, d: D) => Z, a: A, b: B, c: C, d: Placeholder): (p: D) => Z;
export declare function placeholder(fn: (a: A, b: B, c: C, d: D, e: E) => Z, a: Placeholder, b: B, c: C, d: D, e: E): (p: A) => Z;
export declare function placeholder(fn: (a: A, b: B, c: C, d: D, e: E) => Z, a: A, b: Placeholder, c: C, d: D, e: E): (p: B) => Z;
export declare function placeholder(fn: (a: A, b: B, c: C, d: D, e: E) => Z, a: A, b: B, c: Placeholder, d: D, e: E): (p: C) => Z;
export declare function placeholder(fn: (a: A, b: B, c: C, d: D, e: E) => Z, a: A, b: B, c: C, d: Placeholder, e: E): (p: D) => Z;
export declare function placeholder(fn: (a: A, b: B, c: C, d: D, e: E) => Z, a: A, b: B, c: C, d: D, e: Placeholder): (p: E) => Z;
export declare function papp(fn: (...a: B[]) => A, ...partials: B[]): (...args: B[]) => A;
export declare function papp(fn: (...a: B[]) => A): (...partials: B[]) => (...args: B[]) => A;
export declare function pappRight(fn: (...a: B[]) => A, ...partials: any[]): (...args: B[]) => A;
export declare function pappRight(fn: (...a: B[]) => A): (...partials: any[]) => (...args: B[]) => A;
export declare const pappSlotsCurried: (...placeholders: any[]) => (fn: any) => (...fills: any[]) => any;