import type { InternalBinaryNode } from './internalNode.ts'; import type { StemBinaryNode } from './stemNode.ts'; /** Discriminator for decoded binary tree node variants. */ export type BinaryNodeType = (typeof BinaryNodeType)[keyof typeof BinaryNodeType]; /** Node kind constants: internal branch vs stem leaf bucket. */ export declare const BinaryNodeType: { readonly Internal: 0; readonly Stem: 1; }; /** Maps each {@link BinaryNodeType} to its concrete node class. */ export interface TypedBinaryNode { [BinaryNodeType.Internal]: InternalBinaryNode; [BinaryNodeType.Stem]: StemBinaryNode; } /** Union of all decoded binary tree node types. */ export type BinaryNode = TypedBinaryNode[BinaryNodeType]; /** * Child reference stored in an internal node. * * @param hash Child node commitment hash * @param path Bit path from this internal node to the child */ export type ChildBinaryNode = { hash: Uint8Array; path: number[]; }; interface InternalBinaryNodeOptions { children?: (ChildBinaryNode | null)[]; } interface StemBinaryNodeOptions { stem: Uint8Array; values?: (Uint8Array | null)[]; } /** Constructor options keyed by {@link BinaryNodeType}. */ export interface BinaryNodeOptions { [BinaryNodeType.Internal]: InternalBinaryNodeOptions; [BinaryNodeType.Stem]: StemBinaryNodeOptions; } /** Number of suffix slots in a stem node. */ export declare const NODE_WIDTH = 256; export {}; //# sourceMappingURL=types.d.ts.map