/*! Copyright 2025 the gnablib contributors MPL-1.1 */ import { U64MutArray } from '../../primitive/number/U64.js'; import { IBlockCrypt } from '../interfaces/IBlockCrypt.js'; export declare class Tweak { private readonly t8; readonly t64: U64MutArray; private _lock; constructor(tweak?: Uint8Array); set isFirst(value: boolean); set isLast(value: boolean); set lock(value: boolean); incr(by: number): void; makeCfg(blockSize: number): void; makeKdf(): void; makeMsg(): void; makeOut(): void; static NewKey(): Tweak; } export declare class Key { private readonly k8; readonly k64: U64MutArray; private _lock; private constructor(); get length(): number; set lock(value: boolean); static fromSize(size: number): Key; static fromKey(key: Uint8Array): Key; } declare abstract class AThreefish { #private; readonly qr: number; private readonly t; readonly blockSize: number; constructor(qr: number, key: Key, t: Tweak); protected addRk(d: U64MutArray, r: number): void; protected subRk(d: U64MutArray, r: number): void; protected abstract _encBlock(data: Uint8Array): void; protected abstract _decBlock(data: Uint8Array): void; encryptBlock(block: Uint8Array, offset?: number): void; decryptBlock(block: Uint8Array, offset?: number): void; } export declare class Threefish256 extends AThreefish implements IBlockCrypt { constructor(key: Key | Uint8Array, tweak: Tweak | Uint8Array); private swap; private mixPerm; private permUnmix; protected _encBlock(data: Uint8Array): void; protected _decBlock(data: Uint8Array): void; } export declare class Threefish512 extends AThreefish implements IBlockCrypt { constructor(key: Key | Uint8Array, tweak: Tweak | Uint8Array); private swap; private unswap; private mixPerm; private permUnmix; protected _encBlock(data: Uint8Array): void; protected _decBlock(data: Uint8Array): void; } export declare class Threefish1024 extends AThreefish implements IBlockCrypt { constructor(key: Key | Uint8Array, tweak: Tweak | Uint8Array); private swap; private unswap; private mixPerm; private permUnmix; protected _encBlock(data: Uint8Array): void; protected _decBlock(data: Uint8Array): void; } export {};