import { BytesOrCopiable, Copiable } from '../../libs/copiable/index.js';

declare abstract class Cipher implements Disposable {
    constructor(..._: any[]);
    static importOrThrow(bytes: BytesOrCopiable<32>): Cipher;
    abstract [Symbol.dispose](): void;
    abstract encryptOrThrow(message: BytesOrCopiable, nonce: BytesOrCopiable<12>): Copiable;
    abstract decryptOrThrow(message: BytesOrCopiable, nonce: BytesOrCopiable<12>): Copiable;
}

export { Cipher };
