// type Nullable = T | null | undefined // declare function KtSingleton(): T & (abstract new() => any); // export declare namespace com.icure.kryptom.crypto.external { // interface XAesKey { // readonly aesKey?: any; // readonly algorithm: string; // } // } // export declare namespace com.icure.kryptom.crypto.external { // interface XAesService { // generateKey(algorithm: string, size: number): Promise; // exportKey(key: com.icure.kryptom.crypto.external.XAesKey): Promise; // loadKey(algorithm: string, bytes: Int8Array): Promise; // encrypt(data: Int8Array, key: com.icure.kryptom.crypto.external.XAesKey, iv: Nullable): Promise; // decrypt(ivAndEncryptedData: Int8Array, key: com.icure.kryptom.crypto.external.XAesKey): Promise; // } // } // export declare namespace com.icure.kryptom.crypto.external { // interface XDigestService { // sha256(data: Int8Array): Promise; // sha512(data: Int8Array): Promise; // } // } // export declare namespace com.icure.kryptom.crypto.external { // interface XHmacKey { // readonly hmacKey?: any; // readonly keySize: number; // readonly algorithm: string; // } // } // export declare namespace com.icure.kryptom.crypto.external { // interface XHmacService { // generateKey(algorithm: string, keySize: Nullable): Promise; // exportKey(key: com.icure.kryptom.crypto.external.XHmacKey): Promise; // loadKey(algorithm: string, bytes: Int8Array): Promise; // sign(data: Int8; // verify(signature: Int8Array, data: Int8Array, key: com.icure.kryptom.crypto.external.XHmacKey): Promise; // } // } // export declare namespace com.icure.kryptom.crypto.external { // interface XRsaKeypair { // readonly private: XPrivateRsaKey; // readonly public: XPublicRsaKey; // } // } // export declare namespace com.icure.kryptom.crypto.external { // interface PartialXRsaService { // generateKeyPair(algorithm: string, keySize: number): Promise; // exportPrivateKeyPkcs8(key: XPrivateRsaKey): Promise; // exportPublicKeySpki(key: XPublicRsaKey): Promise; // loadPrivateKeyPkcs8(algorithm: string, privateKeyPkcs8: Int8Array): Promise; // loadPublicKeySpki(algorithm: string, publicKeySpki: Int8Array): Promise; // encrypt(data: Int8Array, publicKey: XPublicRsaKey): Promise; // decrypt(data: Int8Array, privateKey: XPrivateRsaKey): Promise; // sign(data: Int8Array, privateKey: XPrivateRsaKey): Promise; // verifySignature(signature: Int8Array, data: Int8Array, publicKey: XPublicRsaKey): Promise; // } // interface XRsaService extends com.icure.kryptom.crypto.external.PartialXRsaService { // loadKeyPairPkcs8(algorithm: string, privateKeyPkcs8: Int8Array): Promise; // exportPrivateKeyJwk(key: XPrivateRsaKey): Promise; // exportPublicKeyJwk(key: XPublicRsaKey): Promise; // loadPrivateKeyJwk(privateKeyJwk: JsonWebKey): Promise; // loadPublicKeyJwk(publicKeyJwk: JsonWebKey): Promise; // } // } // export declare namespace com.icure.kryptom.crypto.external { // interface PartialXStrongRandom { // randomBytes(length: number): Int8Array; // } // interface XStrongRandom extends com.icure.kryptom.crypto.external.PartialXStrongRandom { // randomUUID(): string; // fill(array: Int8Array): void; // } // } // export declare namespace com.icure.kryptom.utils { // function demo(external: PartialXCryptoService): Promise; // } // export as namespace com_icure_kryptom_lib;