import type { WasmSource } from '../wasm-source.js'; export declare function sha3Init(source: WasmSource): Promise; export type { WasmSource }; export { isInitialized } from '../init.js'; export declare class SHA3_256 { private readonly x; constructor(); hash(msg: Uint8Array): Uint8Array; dispose(): void; } export declare class SHA3_512 { private readonly x; constructor(); hash(msg: Uint8Array): Uint8Array; dispose(): void; } export declare class SHA3_384 { private readonly x; constructor(); hash(msg: Uint8Array): Uint8Array; dispose(): void; } export declare class SHA3_224 { private readonly x; constructor(); hash(msg: Uint8Array): Uint8Array; dispose(): void; } /** * SHAKE128 XOF, extendable output, multi-squeeze capable. * * Holds exclusive access to the `sha3` WASM module from construction until * `dispose()`. Constructing a second SHAKE128/SHAKE256 or any other sha3 * user while this instance is live throws. Call `dispose()` when done. */ export declare class SHAKE128 { private readonly x; private readonly _rate; private _squeezing; private _block; private _blockPos; private _tok; constructor(); reset(): this; absorb(msg: Uint8Array): this; squeeze(n: number): Uint8Array; hash(msg: Uint8Array, outputLength: number): Uint8Array; dispose(): void; } /** * SHAKE256 XOF, extendable output, multi-squeeze capable. * * Holds exclusive access to the `sha3` WASM module from construction until * `dispose()`. Constructing a second SHAKE128/SHAKE256 or any other sha3 * user while this instance is live throws. Call `dispose()` when done. */ export declare class SHAKE256 { private readonly x; private readonly _rate; private _squeezing; private _block; private _blockPos; private _tok; constructor(); reset(): this; absorb(msg: Uint8Array): this; squeeze(n: number): Uint8Array; hash(msg: Uint8Array, outputLength: number): Uint8Array; dispose(): void; } /** * Incremental SHA3-256. Construct, `update()` chunks (any size), `finalize()` * to get the 32-byte digest. Finalize disposes the instance. * * Holds exclusive access to the `sha3` WASM module from construction until * `dispose()` or `finalize()`. Mirrors SHAKE128 lifecycle. */ export declare class SHA3_256Stream { private readonly x; private _tok; constructor(); update(chunk: Uint8Array): this; finalize(): Uint8Array; dispose(): void; } /** * Incremental SHA3-512. Construct, `update()` chunks (any size), `finalize()` * to get the 64-byte digest. Finalize disposes the instance. * * Holds exclusive access to the `sha3` WASM module from construction until * `dispose()` or `finalize()`. Mirrors SHAKE128 lifecycle. */ export declare class SHA3_512Stream { private readonly x; private _tok; constructor(); update(chunk: Uint8Array): this; finalize(): Uint8Array; dispose(): void; } /** * Single-shot streaming SHAKE128. `outputLen` is bound at construction; * `update()` absorbs chunks of any size, `finalize()` pads and squeezes * exactly `outputLen` bytes, then disposes the instance. * * Used by `createRunningHash` in the sign layer: each StreamableSignatureSuite * with `prehashAlgorithm: 'shake-128'` declares its `prehashSize` and that * value is passed in here at construction time. The multi-squeeze * `SHAKE128` class above remains for the XOF surface; this class is the * fixed-output cousin that matches the RunningHash contract. * * Holds exclusive access to the `sha3` WASM module from construction until * `dispose()` or `finalize()`. Mirrors `SHA3_256Stream` lifecycle. */ export declare class SHAKE128Stream { private readonly x; private readonly _rate; private readonly outputLen; private _tok; constructor(outputLen: number); update(chunk: Uint8Array): this; finalize(): Uint8Array; dispose(): void; } /** * Single-shot streaming SHAKE256. `outputLen` is bound at construction; * mirrors `SHAKE128Stream`. See that class for usage notes. */ export declare class SHAKE256Stream { private readonly x; private readonly _rate; private readonly outputLen; private _tok; constructor(outputLen: number); update(chunk: Uint8Array): this; finalize(): Uint8Array; dispose(): void; } export { SHA3_256Hash } from './hash.js'; export { CSHAKE128, CSHAKE256, KMAC128, KMAC256, KMACXOF128, KMACXOF256 } from './kmac.js';