/*! Copyright 2023-2025 the gnablib contributors MPL-1.1 */
import type { IHash } from '../interfaces/IHash.js';
import { U64 } from '../../primitive/number/U64.js';
declare class Blake2_32bit implements IHash {
    #private;
    private readonly params;
    get size(): number;
    readonly blockSize: number;
    private _ingestBytes;
    private _bPos;
    constructor(key: Uint8Array, params: Uint8Array);
    get keyLen(): number;
    get fanOut(): number;
    get maxDepth(): number;
    get leafLen(): number;
    get nodeOffset(): U64;
    get nodeDepth(): number;
    get innerLen(): number;
    get salt(): Uint8Array;
    get personalization(): Uint8Array;
    private mix;
    private hash;
    write(data: Uint8Array): void;
    sum(): Uint8Array;
    sumIn(): Uint8Array;
    reset(): void;
    newEmpty(): IHash;
    clone(): IHash;
}
declare class Blake2_64bit implements IHash {
    #private;
    private readonly params;
    private readonly p32;
    get size(): number;
    readonly blockSize: number;
    private _ingestBytes;
    private _bPos;
    constructor(key: Uint8Array, params: Uint8Array);
    get keyLen(): number;
    get fanOut(): number;
    get maxDepth(): number;
    get leafLen(): number;
    get nodeOffset(): U64;
    get nodeDepth(): number;
    get innerLen(): number;
    get salt(): Uint8Array;
    get personalization(): Uint8Array;
    private mix;
    private hash;
    write(data: Uint8Array): void;
    sum(): Uint8Array;
    sumIn(): Uint8Array;
    reset(): void;
    newEmpty(): IHash;
    clone(): IHash;
}
export declare class Blake2s extends Blake2_32bit {
    constructor(digestSize: number, fanOut: number, maxDepth: number, leafMaxLen: number, nodeOffset: U64, nodeDepth: number, innerHashLen: number, key?: Uint8Array, salt?: Uint8Array, personalization?: Uint8Array);
    static Sequential(digestSizeBytes: number, key?: Uint8Array, salt?: Uint8Array, personalization?: Uint8Array): Blake2s;
}
export declare class Blake2b extends Blake2_64bit {
    constructor(digestSize: number, fanOut: number, maxDepth: number, leafMaxLen: number, nodeOffset: U64, nodeDepth: number, innerHashLen: number, key?: Uint8Array, salt?: Uint8Array, personalization?: Uint8Array);
    static Sequential(digestSizeBytes: number, key?: Uint8Array, salt?: Uint8Array, personalization?: Uint8Array): Blake2b;
}
export declare class Blake2s_224 extends Blake2s {
    constructor(key?: Uint8Array, salt?: Uint8Array, personalization?: Uint8Array);
}
export declare class Blake2s_256 extends Blake2s {
    constructor(key?: Uint8Array, salt?: Uint8Array, personalization?: Uint8Array);
}
export declare class Blake2b_256 extends Blake2b {
    constructor(key?: Uint8Array, salt?: Uint8Array, personalization?: Uint8Array);
}
export declare class Blake2b_384 extends Blake2b {
    constructor(key?: Uint8Array, salt?: Uint8Array, personalization?: Uint8Array);
}
export declare class Blake2b_512 extends Blake2b {
    constructor(key?: Uint8Array, salt?: Uint8Array, personalization?: Uint8Array);
}
export {};
