import type { BinaryLike, Cipher, CipherCCM, CipherCCMOptions, CipherGCM, CipherGCMOptions, Decipher, DecipherCCM, DecipherGCM } from 'node:crypto';
import type { TransformOptions } from 'node:stream';
import { BaseCipher } from '../../base';
import type { AesCipherAlgorithm, AesCipherEncodingOptions, AesCipherMode, HasAuthTagAesCipherEncodingOptions } from '../../types';
export declare const keyLengthToBitsMap: Readonly<Record<number, 128 | 192 | 256>>;
export declare abstract class BaseAesCipher<EncodingOptions extends HasAuthTagAesCipherEncodingOptions = AesCipherEncodingOptions> extends BaseCipher<EncodingOptions> {
    #private;
    constructor(key: BinaryLike, mode: AesCipherMode, encodingOptions?: EncodingOptions);
    get algorithm(): AesCipherAlgorithm;
    protected createCipher(iv: BinaryLike, options: CipherCCMOptions): CipherCCM;
    protected createCipher(iv: BinaryLike, options: CipherGCMOptions): CipherGCM;
    protected createCipher(iv: BinaryLike | null, options?: TransformOptions): Cipher;
    protected createDecipher(iv: BinaryLike, options: CipherCCMOptions): DecipherCCM;
    protected createDecipher(iv: BinaryLike, options: CipherGCMOptions): DecipherGCM;
    protected createDecipher(iv: BinaryLike | null, options?: TransformOptions): Decipher;
}
//# sourceMappingURL=index.d.ts.map