import { KeyLike, KeyObject, SignKeyObjectInput, SignPrivateKeyInput } from 'crypto'; export declare const CRYPTO: { readonly RSA_SHA384: "RSA-SHA384"; }; export type CRYPTO = (typeof CRYPTO)[keyof typeof CRYPTO]; export type ExtendedJsonWebKey = JsonWebKey & { kid?: string; }; export interface Crypto { generateKeyPair: () => Promise<{ privateKey: string; publicKey: string; }>; createPrivateKeyFromPem: (pem: string) => Promise; createPublicKeyFromPem: (pem: string) => Promise; createJwk: (kid: string, key: KeyObject) => Promise; createPublicKeyFromJwk: (jwk: ExtendedJsonWebKey) => Promise; sign: (privateKey: KeyLike | SignKeyObjectInput | SignPrivateKeyInput, toBeSigned: Uint8Array) => Promise; verify: (publicKey: KeyLike | SignKeyObjectInput, toBeSigned: Uint8Array, signature: Uint8Array) => Promise; } export interface CryptoOptions { modulusLength?: 2048 | 3072 | 4096; use?: 'sig' | 'enc'; }