import type { Predicate } from "../Function";
import type { Filter, FreeMonoid, Map } from "./model";
/**
* @category Destructors
* @since 1.0.0
*/
export declare const fold_: (
f: FreeMonoid,
patterns: {
Empty: () => R;
Element: (value: A) => R;
Filter: (fa: FreeMonoid, f: Predicate) => R;
Map: (fa: FreeMonoid, f: (a: A) => A) => R;
Combine: (l: FreeMonoid, r: FreeMonoid) => R;
}
) => R;
/**
* @category Destructors
* @since 1.0.0
*/
export declare const fold: (patterns: {
Empty: () => R;
Element: (value: A) => R;
Filter: (fa: FreeMonoid, f: Predicate) => R;
Map: (fa: FreeMonoid, f: (a: A) => A) => R;
Combine: (l: FreeMonoid, r: FreeMonoid) => R;
}) => (f: FreeMonoid) => R;
/**
* https://github.com/Matechs-Garage/matechs-effect/blob/master/packages/system/src/FreeAssociative/index.ts
*
* @category Destructors
* @since 1.0.0
*/
export declare const toArray: (fs: FreeMonoid) => readonly A[];
//# sourceMappingURL=destructors.d.ts.map