import type { Applicative, Monad } from "@principia/prelude";
import type * as HKT from "@principia/prelude/HKT";
import type { Forest, Tree } from "./model";
export declare const make: (value: A, forest: Forest) => Tree;
/**
* Build a tree from a seed value
*
* @category constructors
* @since 1.0.0
*/
export declare function unfoldTree(b: B, f: (b: B) => [A, Array]): Tree;
/**
* Build a tree from a seed value
*
* @category constructors
* @since 1.0.0
*/
export declare function unfoldForest(bs: Array, f: (b: B) => [A, Array]): Forest;
export declare function unfoldTreeM(
M: Applicative & Monad
): (
b: B,
f: (b: B) => HKT.Kind]>
) => HKT.Kind>;
export declare function unfoldForestM(
M: Applicative & Monad
): (
bs: ReadonlyArray,
f: (b: B) => HKT.Kind]>
) => HKT.Kind>;
//# sourceMappingURL=constructors.d.ts.map