import { PrepareResult } from "../processor"; /** * An object containing a secret and salt. * @property secret A secret string used to encrypt and decrypt content. * @property salt A salt string used to encrypt and decrypt content. */ export interface SecretAndSalt { secret: string; salt: string; } /** * Generates a random 256 bit secret and salt for use in symmetric encryption. * @returns An array containing the secret and salt as {@link SecretAndSalt}. */ export declare function generateRandomSecretAndSalt(): SecretAndSalt; /** * Creates a function that encrypts and decrypts content using AES encryption, * used in a SQL template literal. The encryption is symmetric, meaning the same * secret is used to both encrypt and decrypt content. * * Note: this is, in part, a demonstration of how to implement your own * processor; it is not recommended to use this in production as more secure * options exist. * @param secret A secret string used to encrypt and decrypt content. * @param salt A salt string used to encrypt and decrypt content. * @returns An instance of {@link PrepareResult}. */ export declare function symmetricEncrypt(secret: string, salt: string): PrepareResult;