export declare function compose<T = any>(...funcs: Function[]): (...args: T[]) => T[];
export declare function composeRight<T = any>(...funcs: Function[]): (...args: T[]) => T[];
export declare function pipe<T = any>(...funcs: Function[]): (...args: T[]) => T[];
export declare function curry<T = any>(func: Function): Function;
export declare function unary<T = any>(func: Function): Function;
export declare function cycleArray<A>(array: A[], offset: number): A;
export declare function cycleArrayNext<A>(array: A[]): Function;
export declare function debounce(func: Function, delayInSeconds: number): Function;
export declare function delay<T = void>(callback: Function, delayInSeconds: number): Promise<T>;
export declare function fillArraysToLargestLength(filler: unknown, ...arrays: unknown[][]): number;
export declare function getMinArraysLength(...arrays: unknown[][]): number;
export declare function isEmptyObject(object?: any): object is {};
export declare function isObject(object?: any): object is Object;
export declare function isPromise<T>(thing?: any): thing is Promise<T>;
export declare function isPromise(...things: any[]): boolean;
export declare function memo<T>(func: Function, cache: Map<string, T>): Function;
export declare function once(fn: Function): Function;
export declare function promiseChain(...funcs: (() => Promise<void>)[]): Promise<void>;
export declare function promiseEach<A>(array: A[], func: (value: A) => Promise<void>): Promise<void>;
export declare function randomChoice<A>(...choices: A[]): A;
export declare function sleep(timeInSeconds: number): Promise<void>;
export declare function throttle(func: Function, thresholdInSeconds: number): Function;
export declare function truthChain(...funcs: (() => boolean)[]): boolean;
