import type { Sha3Exports } from '../mlkem/types.js'; /** Absorb msg into the sponge in ≤168-byte chunks. Caller must have * already invoked the appropriate Init function (shake128Init etc.). */ export declare function sha3Absorb(sx: Sha3Exports, msg: Uint8Array): void; /** SHAKE256(msg, n), fixed-length output. Resets sha3 state. */ export declare function shake256Hash(sx: Sha3Exports, msg: Uint8Array, n: number): Uint8Array; /** SHAKE256(p₀ ‖ p₁ ‖ … ‖ p_{n-1}, outLen). Avoids the temporary buffer * callers would otherwise allocate just to concatenate fixed-size pieces. * Used for keygen's H(ξ ‖ k_byte ‖ ℓ_byte, 128). */ export declare function shake256HashConcat(sx: Sha3Exports, parts: readonly Uint8Array[], outLen: number): Uint8Array; /** * Set up SHAKE128 over `seed` and return an incremental block-squeezer. * Each call returns the next 168-byte block as a Uint8Array view into the * sha3 OUT region (lifetime: until the next squeeze call). Callers copy * into the consuming module's XOF buffer before invoking the rejection * sampler. Used by ExpandA (FIPS 204 Algorithm 32, RejNTTPoly driver). */ export declare function shake128Squeezer(sx: Sha3Exports, seed: Uint8Array): { rate: number; squeeze: () => Uint8Array; }; /** * Set up SHAKE256 over `seed` and return an incremental block-squeezer. * Same shape as shake128Squeezer with rate 136. Used by ExpandS * (FIPS 204 Algorithm 33, RejBoundedPoly driver). */ export declare function shake256Squeezer(sx: Sha3Exports, seed: Uint8Array): { rate: number; squeeze: () => Uint8Array; };