import { type SQL, type AnyColumn } from "drizzle-orm"; /** * TiDB / MySQL encryption and compression expressions for Drizzle `sql` fragments. * @see https://docs.pingcap.com/tidb/stable/encryption-and-compression-functions * * TiDB does not support the `kdf_name`, `salt`, and `iterations` arguments for `AES_ENCRYPT` / * `AES_DECRYPT` that MySQL 8.0.30+ added. `SM3()` is a TiDB extension (not in MySQL). */ export type EncryptSqlInput = SQL | AnyColumn | string | number | boolean; /** `AES_DECRYPT(data, key [, iv])` */ export declare function aesDecrypt(data: EncryptSqlInput, key: EncryptSqlInput, iv?: EncryptSqlInput): SQL; /** `AES_ENCRYPT(data, key [, iv])` */ export declare function aesEncrypt(data: EncryptSqlInput, key: EncryptSqlInput, iv?: EncryptSqlInput): SQL; /** `COMPRESS(expr)` */ export declare function compress(expr: EncryptSqlInput): SQL; /** `MD5(expr)` */ export declare function md5(expr: EncryptSqlInput): SQL; /** * `PASSWORD(str)` — deprecated; prefer proper key derivation outside SQL. * @deprecated In MySQL 8.0 removed; deprecated in TiDB. */ export declare function sqlPassword(str: EncryptSqlInput): SQL; /** `RANDOM_BYTES(n)` */ export declare function randomBytes(n: EncryptSqlInput): SQL; /** `SHA(expr)` — alias of `SHA1` */ export declare function sha(expr: EncryptSqlInput): SQL; /** `SHA1(expr)` */ export declare function sha1(expr: EncryptSqlInput): SQL; /** Second argument to `SHA2(str, n)` per TiDB / MySQL. */ export type Sha2Bits = 0 | 224 | 256 | 384 | 512; /** `SHA2(str, n)` */ export declare function sha2(str: EncryptSqlInput, n: Sha2Bits): SQL; /** `SM3(str)` — TiDB extension (SM3-256 digest as hex string). */ export declare function sm3(str: EncryptSqlInput): SQL; /** `UNCOMPRESS(data)` */ export declare function uncompress(data: EncryptSqlInput): SQL; /** `UNCOMPRESSED_LENGTH(data)` */ export declare function uncompressedLength(data: EncryptSqlInput): SQL; /** `VALIDATE_PASSWORD_STRENGTH(str)` — depends on `validate_password.*` system variables. */ export declare function validatePasswordStrength(str: EncryptSqlInput): SQL; //# sourceMappingURL=EncryptTiDB.d.ts.map