/** * @hidden */ export type Combinator = (acc: U, curr: T) => U; /** * @hidden */ export type Reducer = (reduce: Combinator) => Transformer; /** * @hidden */ export type TransformerResult = { __value: T, reduced: boolean }; /** * @hidden */ export type Transformer = (acc: U, curr: T, index: number) => U | TransformerResult; /** * A type which represents a function that returns a Boolean value. * * @example * ```ts-no-run * const isGreaterThanTen: Predicate = (num: number) => num > 10; * isGreaterThanTen(2); // false * isGreaterThanTen(20); // true * ``` */ export type Predicate = (x: T) => boolean; export type Preprocessors = { [P in keyof T]?: (value: T[P]) => any; };