import { Equals } from "@tsplus/stdlib/structure/Equals"; import { Hash } from "@tsplus/stdlib/structure/Hash"; import { pipe } from "@tsplus/stdlib/data/Function"; import { HKT } from "@tsplus/stdlib/prelude/HKT"; import { Chunk } from "@tsplus/stdlib/collections/Chunk/definition"; export declare const TreeTypeId: unique symbol; export type TreeTypeId = typeof TreeTypeId; export type Forest = Tree.Forest; /** * @tsplus type Tree * @tsplus companion Tree.Ops */ export declare class Tree implements Equals { readonly value: A; readonly forest: Forest; readonly [TreeTypeId]: TreeTypeId; constructor(value: A, forest: Forest); [Equals.sym](this: this, other: unknown): boolean; [Hash.sym](this: this): number; } export interface TreeF extends HKT { readonly type: Tree; } export declare namespace Tree { type HKT = TreeF; type Forest = Chunk>; } /** * @tsplus type Tree.Aspects */ export interface TreeAspects { } /** * @tsplus static Tree.Ops $ * @tsplus location "@tsplus/stdlib/collections/Tree/definition" */ export declare const TreeAspects: TreeAspects; /** * @tsplus static Tree.Ops __call * @tsplus location "@tsplus/stdlib/collections/Tree/definition" */ export declare function make(value: A, forest?: Forest): Tree; /** * Type guard * @tsplus static Tree.Ops isTree * @tsplus location "@tsplus/stdlib/collections/Tree/definition" */ export declare function isTree(t: unknown): t is Tree; //# sourceMappingURL=definition.d.ts.map