/** BLAKE3 WASM exports. */ export interface Blake3Exports { memory: WebAssembly.Memory; getModuleId: () => number; getMemoryPages: () => number; getInputStagingOffset: () => number; getOutputStagingOffset: () => number; getCvOffset: () => number; getMsgOffset: () => number; getCounterOffset: () => number; getBlockLenOffset: () => number; getFlagsOffset: () => number; getCompressOutOffset: () => number; getKeyedKeyOffset: () => number; getDeriveCvOffset: () => number; getCompress4CvInOffset: () => number; getCompress4MsgInOffset: () => number; getCompress4CtrInOffset: () => number; getCompress4OutOffset: () => number; getCompress4BlenInOffset: () => number; getCompress4FlagsInOffset: () => number; getModeCvOffset: () => number; FLAG_CHUNK_START: { value: number; }; FLAG_CHUNK_END: { value: number; }; FLAG_PARENT: { value: number; }; FLAG_ROOT: { value: number; }; FLAG_KEYED_HASH: { value: number; }; FLAG_DERIVE_KEY_CONTEXT: { value: number; }; FLAG_DERIVE_KEY_MATERIAL: { value: number; }; BLAKE3_IV0: { value: number; }; BLAKE3_IV1: { value: number; }; BLAKE3_IV2: { value: number; }; BLAKE3_IV3: { value: number; }; BLAKE3_IV4: { value: number; }; BLAKE3_IV5: { value: number; }; BLAKE3_IV6: { value: number; }; BLAKE3_IV7: { value: number; }; compress: (cvOff: number, blockOff: number, counterLo: number, counterHi: number, blockLen: number, flags: number, outOff: number) => void; compress4: () => void; chunkInit: (chunkIndex: bigint) => void; chunkUpdate: (blockOff: number, blockLen: number) => void; chunkFinalize: (outCvOff: number, isRootSoloChunk: number) => void; treeInit: () => void; treePushChunk: (chunkCvOff: number) => void; treeFinalizeRoot: (outOff: number) => void; hash: (inputOff: number, inputLen: number, outOff: number, outLen: number) => void; hashKeyed: (keyOff: number, inputOff: number, inputLen: number, outOff: number, outLen: number) => void; deriveKey: (contextOff: number, contextLen: number, materialOff: number, materialLen: number, outOff: number, outLen: number) => void; squeezeXofBlock: (counterLo: number, counterHi: number, outOff: number) => void; wipeBuffers: () => void; } /** * BLAKE3 WASM internal test exports. NOT part of the consumer surface, * NOT re-exported from `src/ts/blake3/index.ts`. Wired exclusively for * the tree-internals test suite (`test/unit/blake3/blake3-tree-internals * .test.ts`) and the Merkle-tree substrate * (`src/ts/merkle/blake3-tree.ts`) which casts * `Blake3Exports & Blake3TestExports` inside the merkle module. * * Tests obtain these via `test/unit/blake3/helpers.ts`, which casts the * public `Blake3Exports` to `Blake3Exports & Blake3TestExports`. Consumer * code never sees the `_test*` surface. */ export interface Blake3TestExports { _testChunkCV: (inputOff: number, inputLen: number, chunkIndex: bigint, startCvOff: number, modeFlags: number, outCvOff: number) => void; _testParentCV: (leftCvOff: number, rightCvOff: number, startCvOff: number, modeFlags: number, isRoot: number, outCvOff: number) => void; _testDeriveContextCV: (contextOff: number, contextLen: number, outCcvOff: number) => void; _getBatch4CallCount: () => number; _resetBatch4CallCount: () => void; _getParentBatch4CallCount: () => number; _resetParentBatch4CallCount: () => void; }