/*! Copyright 2023-2025 the gnablib contributors MPL-1.1 */
import { IFullCrypt } from '../interfaces/IFullCrypt.js';
import { IBlockCrypt } from '../interfaces/IBlockCrypt.js';
export declare class IncrBytes implements Iterable<Uint8Array> {
    private readonly _iv;
    constructor(iv: Uint8Array);
    get length(): number;
    [Symbol.iterator](): Iterator<Uint8Array>;
}
export declare class Concat32 implements Iterable<Uint8Array> {
    private readonly _iv;
    private readonly _count;
    constructor(iv: Uint8Array, count?: number);
    get length(): number;
    [Symbol.iterator](): Iterator<Uint8Array>;
}
export declare class Ctr implements IFullCrypt {
    private readonly _crypt;
    private readonly _counter;
    constructor(crypt: IBlockCrypt, counter: IncrBytes | Concat32);
    get blockSize(): number;
    decryptInto(plain: Uint8Array, enc: Uint8Array): void;
    encryptInto(enc: Uint8Array, plain: Uint8Array): void;
    encryptSize(plainLen: number): number;
}
