import type { AttributionAxes, AttributionAxisTag } from './types.js'; export interface MerkleFrame { /** Canonically-ordered axes used to derive the leaves. */ axes: AttributionAxes; leaves: { D: Buffer; P: Buffer; G: Buffer; C: Buffer; }; nodes: { N_content: Buffer; N_auth_infra: Buffer; }; root: Buffer; } /** Build the full tree for a set of axes. Callers pass the raw (possibly * unsorted) axes; we normalize before hashing so the caller can't produce * two different canonical representations of the same logical content. */ export declare function buildMerkleFrame(rawAxes: AttributionAxes): MerkleFrame; /** The sibling path for a projection, in the order §2.2 specifies: * [sibling_leaf_within_pair_hex, sibling_internal_node_hex]. */ export declare function projectionPath(frame: MerkleFrame, axis: AttributionAxisTag): [string, string]; /** Reconstruct the root from an axis's canonical leaf hash and the two-hop * sibling path. §2.3 algorithm. Returns raw bytes so callers can diff the * buffers; hex comparison is lossy under case normalization. */ export declare function reconstructRoot(axisLeaf: Buffer, path: [string, string], axis: AttributionAxisTag): Buffer; //# sourceMappingURL=merkle.d.ts.map