import { type TArg, type TRet } from "@li0ard/gost3413";
/**
 * Encrypts data using the Multilinear Galois Mode (MGM) with Kuznyechik cipher.
 * @param key Encryption key
 * @param data Data to be encrypted and authenticated
 * @param iv Initialization vector
 * @param additionalData Additional data to be authenticated
 */
export declare const encryptMGM: (key: TArg<Uint8Array>, data: TArg<Uint8Array>, iv: TArg<Uint8Array>, additionalData?: TArg<Uint8Array>) => TRet<Uint8Array>;
/**
 * Decrypts data using the Multilinear Galois Mode (MGM) with Kuznyechik cipher.
 * @param key Encryption key
 * @param data Data to be decrypted and authenticated
 * @param iv Initialization vector
 * @param additionalData Additional data to be authenticated
 */
export declare const decryptMGM: (key: TArg<Uint8Array>, data: TArg<Uint8Array>, iv: TArg<Uint8Array>, additionalData?: TArg<Uint8Array>) => TRet<Uint8Array>;
