import * as O from '../option';
import { Group, Monoid } from '../../typeclass/groups';
export declare const reduce: (f: (acc: B, item: A) => B, initial: B) => (fa: Generator) => B;
export declare const some: (f: (a: A) => boolean) => (fa: Generator) => boolean;
export declare const every: (f: (a: A) => boolean) => (fa: Generator) => boolean;
export declare const find: (f: (a: A) => boolean) => (fa: Generator) => O.Option;
export declare const includes: (a: A) => (fa: Generator) => boolean;
export declare const fold: (m: Monoid) => (fa: Generator) => A;
export declare const sum: (fa: Generator) => number;
export declare const product: (fa: Generator) => number;
export declare const min: (fa: Generator) => number;
export declare const max: (fa: Generator) => number;
export declare const alternateFold: (g: Group) => (fa: Generator) => A;
export declare const alternateSum: (fa: Generator) => number;
export declare const alternateProduct: (fa: Generator) => number;
export declare const average: (fa: Generator) => number;
export declare const count: (fa: Generator) => number;
export declare const unzip: (fa: Generator<[A, B], any, unknown>) => [A[], B[]];
export declare const partition: (f: (a: A) => boolean) => (fa: Generator) => [A[], A[]];
export declare const collect: (fa: Generator) => A[];
export declare const collectSet: (fa: Generator) => Set;
export declare const collectMap: (fa: Generator<[A, B], any, unknown>) => Map;