/**
 * encrypt AES 256 GCM;
 * where the tag tag is suffixed to the ciphertext
 * */
export function aesEncryptGCM(plaintext: any, key: any, iv: any, additionalData: any): Buffer<ArrayBuffer>;
/**
 * decrypt AES 256 GCM;
 * where the auth tag is suffixed to the ciphertext
 * */
export function aesDecryptGCM(ciphertext: any, key: any, iv: any, additionalData: any): Buffer<ArrayBuffer>;
export function aesEncryptCTR(plaintext: any, key: any, iv: any): Buffer<ArrayBuffer>;
export function aesDecryptCTR(ciphertext: any, key: any, iv: any): Buffer<ArrayBuffer>;
/** decrypt AES 256 CBC; where the IV is prefixed to the buffer */
export function aesDecrypt(buffer: any, key: any): Buffer<ArrayBuffer>;
/** decrypt AES 256 CBC */
export function aesDecryptWithIV(buffer: any, key: any, IV: any): Buffer<ArrayBuffer>;
export function aesEncrypt(buffer: any, key: any): Buffer<ArrayBuffer>;
export function aesEncrypWithIV(buffer: any, key: any, IV: any): Buffer<ArrayBuffer>;
export function hmacSign(buffer: any, key: any, variant?: string): NonSharedBuffer;
export function sha256(buffer: any): NonSharedBuffer;
export function derivePairingCodeKey(pairingCode: any, salt: any): Promise<Buffer<ArrayBuffer>>;
export function generateSignalPubKey(pubKey: any): any;
export namespace Curve {
    function generateKeyPair(): {
        private: Buffer<ArrayBuffer>;
        public: Buffer<ArrayBuffer>;
    };
    function sharedKey(privateKey: any, publicKey: any): Buffer<ArrayBuffer>;
    function sign(privateKey: any, buf: any): Uint8Array<ArrayBufferLike>;
    function verify(pubKey: any, message: any, signature: any): boolean;
}
export function signedKeyPair(identityKeyPair: any, keyId: any): {
    keyPair: {
        private: Buffer<ArrayBuffer>;
        public: Buffer<ArrayBuffer>;
    };
    signature: Uint8Array<ArrayBufferLike>;
    keyId: any;
};
