/*! Copyright 2023-2024 the gnablib contributors MPL-1.1 */
import { U64 } from '../../primitive/number/U64.js';
import { IFullCrypt } from '../interfaces/IFullCrypt.js';
declare class Salsa implements IFullCrypt {
    #private;
    readonly blockSize = 64;
    private readonly _count;
    constructor(key: Uint8Array, nonce: Uint8Array, count: U64, rounds: number);
    private block;
    decryptInto(plain: Uint8Array, enc: Uint8Array): void;
    encryptInto(enc: Uint8Array, plain: Uint8Array): void;
    encryptSize(plainLen: number): number;
}
declare class XSalsa extends Salsa {
    constructor(key: Uint8Array, nonce: Uint8Array, count: U64, rounds: number);
}
export declare class Salsa20 extends Salsa {
    constructor(key: Uint8Array, nonce: Uint8Array, count?: U64);
}
export declare function hSalsa20(output: Uint8Array, key: Uint8Array, input: Uint8Array): void;
export declare class XSalsa20 extends XSalsa {
    constructor(key: Uint8Array, nonce: Uint8Array, count?: U64);
}
export {};
