import type { Bytes } from './types.js'; interface CryptoEncoding { concatBytes(...parts: Uint8Array[]): Uint8Array; toBytes(value: Uint8Array | string): Uint8Array; utf8ToBytes(value: string): Uint8Array; } export declare function createCrypto(encoding: CryptoEncoding): { deriveAesMaterial(sharedSecret: Bytes, challenge: string, kemId: string): { key: Bytes; nonce: Bytes; }; encryptAesGcm(key: Bytes, nonce: Bytes, plaintext: Bytes, aad?: Bytes | string): Bytes; decryptAesGcm(key: Bytes, nonce: Bytes, data: Bytes, aad?: Bytes | string): Bytes; jsonToBytes(value: unknown): Bytes; makeFieldAad(keys: readonly PropertyKey[]): Bytes; }; export {}; //# sourceMappingURL=crypto-core.d.ts.map