/*! Copyright 2025 the gnablib contributors MPL-1.1 */
import { IBlockCrypt } from '../interfaces/IBlockCrypt.js';
import type { IHash } from '../interfaces/IHash.js';
import { Key, Tweak } from '../sym/Threefish.js';
interface threefishConstructor {
    new (key: Key, tweak: Tweak): IBlockCrypt;
}
declare class SkeinCore {
    readonly blockSize: number;
    readonly size: number;
    private _hasData;
    private readonly _block;
    private readonly _b64;
    private _bPos;
    private readonly _cfgBackup;
    private readonly _hVal;
    private readonly _tweak;
    private readonly _tfConstructor;
    private readonly _c;
    constructor(blockSize: number, digestSize: number, ctor: threefishConstructor, key: Uint8Array, kdf: Uint8Array);
    private ubi;
    private hash;
    private finalize;
    write(data: Uint8Array): void;
    clone(): SkeinCore;
    sum(): Uint8Array;
    sumIn(): Uint8Array;
    reset(): void;
    newEmpty(): IHash;
}
declare class Skein256Core extends SkeinCore implements IHash {
    constructor(digestSize: number, key: Uint8Array);
}
declare class Skein512Core extends SkeinCore implements IHash {
    constructor(digestSize: number, key: Uint8Array);
}
declare class Skein1024Core extends SkeinCore implements IHash {
    constructor(digestSize: number, key: Uint8Array);
}
export declare class Skein256 extends Skein256Core {
    constructor(sizeBytes?: number);
    static New128(): Skein256;
    static New160(): Skein256;
    static New224(): Skein256;
    static New256(): Skein256;
}
export declare class Skein512 extends Skein512Core {
    constructor(sizeBytes?: number);
    static New128(): Skein512;
    static New160(): Skein512;
    static New224(): Skein512;
    static New256(): Skein512;
    static New384(): Skein512;
    static New512(): Skein512;
}
export declare class Skein1024 extends Skein1024Core {
    constructor(sizeBytes?: number);
    static New384(): Skein1024;
    static New512(): Skein1024;
    static New1024(): Skein1024;
}
export declare class SkeinMac256 extends Skein256Core {
    constructor(key: Uint8Array);
}
export declare class SkeinMac512 extends Skein512Core {
    constructor(key: Uint8Array);
}
export declare class SkeinMac1024 extends Skein1024Core {
    constructor(key: Uint8Array);
}
export declare class SkeinXof256 extends Skein256Core {
    constructor(outputSize: number);
}
export declare class SkeinXof512 extends Skein512Core {
    constructor(outputSize: number);
}
export declare class SkeinXof1024 extends Skein1024Core {
    constructor(outputSize: number);
}
export declare class SkeinKdf256 extends SkeinCore implements IHash {
    constructor(len: number, ikm: Uint8Array, salt: Uint8Array);
}
export declare class SkeinKdf512 extends SkeinCore implements IHash {
    constructor(len: number, ikm: Uint8Array, salt: Uint8Array);
}
export declare class SkeinKdf1024 extends SkeinCore implements IHash {
    constructor(len: number, ikm: Uint8Array, salt: Uint8Array);
}
export {};
