///
import type { JWKInterface } from "../common/lib/wallet.js";
import type { SignatureOptions } from "../common/lib/crypto/crypto-interface.js";
import type CryptoInterface from "../common/lib/crypto/crypto-interface.js";
export declare class NodeCryptoDriver implements CryptoInterface {
readonly keyLength = 4096;
readonly publicExponent = 65537;
readonly hashAlgorithm = "sha256";
readonly encryptionAlgorithm = "aes-256-cbc";
generateJWK(): Promise;
sign(jwk: object, data: Uint8Array, { saltLength }?: SignatureOptions): Promise;
verify(publicModulus: string, data: Uint8Array, signature: Uint8Array): Promise;
hash(data: Uint8Array, algorithm?: string): Promise;
/**
* If a key is passed as a buffer it *must* be exactly 32 bytes.
* If a key is passed as a string then any length may be used.
*
* @param {Buffer} data
* @param {(string | Buffer)} key
* @returns {Promise}
*/
encrypt(data: Buffer, key: string | Buffer, salt?: string): Promise;
/**
* If a key is passed as a buffer it *must* be exactly 32 bytes.
* If a key is passed as a string then any length may be used.
*
* @param {Buffer} encrypted
* @param {(string | Buffer)} key
* @returns {Promise}
*/
decrypt(encrypted: Buffer, key: string | Buffer, salt?: string): Promise;
jwkToPem(jwk: object): string;
private pemToJWK;
private parseHashAlgorithm;
}
export default NodeCryptoDriver;