///
///
import BufferAead from '../types/BufferAead';
import crypto from 'crypto';
import DecryptionInput from '../types/DecryptionInput';
import EncryptionInput from '../types/EncryptionInput';
import EncryptionOutput from '../types/EncryptionOutput';
declare abstract class AbstractBufferAead implements BufferAead {
private readonly keyLength;
private readonly nonceLength;
constructor({ keyLength, nonceLength }: {
keyLength: number;
nonceLength: number;
});
keyGen(): Buffer;
nonceGen(): Buffer;
abstract encrypt(input: EncryptionInput): EncryptionOutput;
abstract decrypt(input: DecryptionInput): Buffer;
protected static decryptIfAuthentic(decrypter: crypto.DecipherCCM | crypto.DecipherGCM, ciphertext: Buffer): Buffer;
}
export default AbstractBufferAead;