import * as ChaChaNoble from '@noble/ciphers/chacha';
import { BytesOrCopiable, Copied } from '../../libs/copiable/index.js';

declare function fromNoble(noble: typeof ChaChaNoble): {
    Cipher: {
        new (key: Uint8Array): {
            readonly key: Uint8Array;
            encryptOrThrow(message: BytesOrCopiable, nonce: BytesOrCopiable<12>): Copied<number>;
            decryptOrThrow(message: BytesOrCopiable, nonce: BytesOrCopiable<12>): Copied<number>;
            [Symbol.dispose](): void;
        };
        create(key: Uint8Array): {
            readonly key: Uint8Array;
            encryptOrThrow(message: BytesOrCopiable, nonce: BytesOrCopiable<12>): Copied<number>;
            decryptOrThrow(message: BytesOrCopiable, nonce: BytesOrCopiable<12>): Copied<number>;
            [Symbol.dispose](): void;
        };
        importOrThrow(key: BytesOrCopiable<32>): {
            readonly key: Uint8Array;
            encryptOrThrow(message: BytesOrCopiable, nonce: BytesOrCopiable<12>): Copied<number>;
            decryptOrThrow(message: BytesOrCopiable, nonce: BytesOrCopiable<12>): Copied<number>;
            [Symbol.dispose](): void;
        };
    };
};

export { fromNoble };
