import { type SQL, type AnyColumn } from "drizzle-orm"; /** * TiDB / MySQL string expressions for use inside Drizzle `sql` fragments. * Mirrors TiDB string functions documented at https://docs.pingcap.com/tidb/stable/string-functions */ export type StringSqlInput = SQL | AnyColumn | string | number | boolean; /** `ASCII(str)` */ export declare function ascii(str: StringSqlInput): SQL; /** `BIN(expr)` */ export declare function bin(expr: StringSqlInput): SQL; /** `BIT_LENGTH(str)` */ export declare function bitLength(str: StringSqlInput): SQL; /** `CHAR(code [, ...codes])` */ export declare function charCodes(...codes: number[]): SQL; /** `CHAR_LENGTH(str)` */ export declare function charLength(str: StringSqlInput): SQL; /** Synonym for `CHAR_LENGTH` — `CHARACTER_LENGTH(str)` */ export declare function characterLength(str: StringSqlInput): SQL; /** `CONCAT(str1, str2, ...)` */ export declare function concat(...parts: StringSqlInput[]): SQL; /** `CONCAT_WS(separator, str1, str2, ...)` */ export declare function concatWs(separator: StringSqlInput, ...parts: StringSqlInput[]): SQL; /** `ELT(index, str1, str2, ...)` */ export declare function elt(index: StringSqlInput, ...choices: StringSqlInput[]): SQL; /** `EXPORT_SET(bits, on, off [, separator [, number_of_bits]])` */ export declare function exportSet(bits: StringSqlInput, on: StringSqlInput, off: StringSqlInput, separator?: StringSqlInput, numberOfBits?: StringSqlInput): SQL; /** `FIELD(needle, str1, str2, ...)` */ export declare function field(needle: StringSqlInput, ...list: StringSqlInput[]): SQL; /** `FIND_IN_SET(str, strlist)` */ export declare function findInSet(str: StringSqlInput, strlist: StringSqlInput): SQL; /** `FORMAT(x, d [, locale])` */ export declare function formatSql(x: StringSqlInput, d: StringSqlInput, locale?: StringSqlInput): SQL; /** `FROM_BASE64(str)` */ export declare function fromBase64(str: StringSqlInput): SQL; /** `HEX(expr)` */ export declare function hex(expr: StringSqlInput): SQL; /** `INSERT(str, pos, len, newstr)` */ export declare function insert(str: StringSqlInput, pos: StringSqlInput, len: StringSqlInput, newstr: StringSqlInput): SQL; /** `INSTR(str, substr)` */ export declare function instr(str: StringSqlInput, substr: StringSqlInput): SQL; /** `LCASE(str)` — synonym for `LOWER` */ export declare function lcase(str: StringSqlInput): SQL; /** `LEFT(str, len)` */ export declare function left(str: StringSqlInput, len: StringSqlInput): SQL; /** `LENGTH(str)` */ export declare function length(str: StringSqlInput): SQL; /** `expr LIKE pat` */ export declare function sqlLike(expr: StringSqlInput, pat: StringSqlInput): SQL; /** `expr LIKE pat ESCAPE esc` */ export declare function sqlLikeEscape(expr: StringSqlInput, pat: StringSqlInput, esc: StringSqlInput): SQL; /** `expr NOT LIKE pat` */ export declare function sqlNotLike(expr: StringSqlInput, pat: StringSqlInput): SQL; /** `expr NOT LIKE pat ESCAPE esc` */ export declare function sqlNotLikeEscape(expr: StringSqlInput, pat: StringSqlInput, esc: StringSqlInput): SQL; /** `LOCATE(substr, str [, pos])` */ export declare function locate(substr: StringSqlInput, str: StringSqlInput, pos?: StringSqlInput): SQL; /** `LOWER(str)` */ export declare function lower(str: StringSqlInput): SQL; /** `LPAD(str, len, padstr)` */ export declare function lpad(str: StringSqlInput, len: StringSqlInput, padstr: StringSqlInput): SQL; /** `LTRIM(str)` */ export declare function ltrim(str: StringSqlInput): SQL; /** `MAKE_SET(bits, str1, str2, ...)` */ export declare function makeSet(bits: StringSqlInput, ...strs: StringSqlInput[]): SQL; /** `MID(str, pos [, len])` — TiDB v8.4+ supports the two-argument form */ export declare function mid(str: StringSqlInput, pos: StringSqlInput, len?: StringSqlInput): SQL; /** `expr REGEXP pat` */ export declare function sqlRegExp(expr: StringSqlInput, pat: StringSqlInput): SQL; /** `expr NOT REGEXP pat` */ export declare function sqlNotRegExp(expr: StringSqlInput, pat: StringSqlInput): SQL; /** Synonym for `sqlRegExp` — `expr RLIKE pat` */ export declare function sqlRLike(expr: StringSqlInput, pat: StringSqlInput): SQL; /** `OCT(n)` */ export declare function oct(n: StringSqlInput): SQL; /** `OCTET_LENGTH(str)` — synonym for `LENGTH` */ export declare function octetLength(str: StringSqlInput): SQL; /** `ORD(str)` */ export declare function ord(str: StringSqlInput): SQL; /** `POSITION(substr IN str)` — synonym for `LOCATE(substr, str)` */ export declare function position(substr: StringSqlInput, str: StringSqlInput): SQL; /** `QUOTE(str)` */ export declare function quote(str: StringSqlInput): SQL; export interface RegexpInstrOptions { start?: StringSqlInput; occurrence?: StringSqlInput; returnOption?: StringSqlInput; matchType?: StringSqlInput; } /** `REGEXP_INSTR(str, regexp [, start [, occurrence [, return_option [, match_type]]]])` */ export declare function regexpInstr(str: StringSqlInput, regexp: StringSqlInput, options?: RegexpInstrOptions): SQL; /** `REGEXP_LIKE(str, regexp [, match_type])` */ export declare function regexpLike(str: StringSqlInput, regexp: StringSqlInput, matchType?: StringSqlInput): SQL; export interface RegexpReplaceOptions { start?: StringSqlInput; occurrence?: StringSqlInput; matchType?: StringSqlInput; } /** `REGEXP_REPLACE(str, regexp, replace [, start [, occurrence [, match_type]]])` */ export declare function regexpReplace(str: StringSqlInput, regexp: StringSqlInput, replace: StringSqlInput, options?: RegexpReplaceOptions): SQL; /** `REGEXP_SUBSTR(str, regexp [, start [, occurrence [, match_type]]])` */ export declare function regexpSubstr(str: StringSqlInput, regexp: StringSqlInput, start?: StringSqlInput, occurrence?: StringSqlInput, matchType?: StringSqlInput): SQL; /** `REPEAT(str, count)` */ export declare function repeat(str: StringSqlInput, count: StringSqlInput): SQL; /** `REPLACE(str, from_str, to_str)` */ export declare function replace(str: StringSqlInput, fromStr: StringSqlInput, toStr: StringSqlInput): SQL; /** `REVERSE(str)` */ export declare function reverse(str: StringSqlInput): SQL; /** `RIGHT(str, len)` */ export declare function right(str: StringSqlInput, len: StringSqlInput): SQL; /** `RPAD(str, len, padstr)` */ export declare function rpad(str: StringSqlInput, len: StringSqlInput, padstr: StringSqlInput): SQL; /** `RTRIM(str)` */ export declare function rtrim(str: StringSqlInput): SQL; /** `SPACE(n)` */ export declare function space(n: StringSqlInput): SQL; /** `STRCMP(str1, str2)` */ export declare function strcmp(str1: StringSqlInput, str2: StringSqlInput): SQL; /** `SUBSTRING(str, pos [, len])` */ export declare function substring(str: StringSqlInput, pos: StringSqlInput, len?: StringSqlInput): SQL; /** `SUBSTR(str, pos [, len])` — synonym in SQL; emitted as `SUBSTR` (not `SUBSTRING`) */ export declare function substr(str: StringSqlInput, pos: StringSqlInput, len?: StringSqlInput): SQL; /** `SUBSTRING_INDEX(str, delim, count)` */ export declare function substringIndex(str: StringSqlInput, delim: StringSqlInput, count: StringSqlInput): SQL; /** `TO_BASE64(str)` */ export declare function toBase64(str: StringSqlInput): SQL; /** `TRANSLATE(str, from_str, to_str)` */ export declare function translate(str: StringSqlInput, fromStr: StringSqlInput, toStr: StringSqlInput): SQL; /** `TRIM(str)` */ export declare function trim(str: StringSqlInput): SQL; /** `TRIM(BOTH remstr FROM str)` */ export declare function trimBoth(str: StringSqlInput, remstr: StringSqlInput): SQL; /** `TRIM(LEADING remstr FROM str)` — omit `remstr` for space-only trimming via `ltrim` */ export declare function trimLeadingFrom(str: StringSqlInput, remstr: StringSqlInput): SQL; /** `TRIM(TRAILING remstr FROM str)` */ export declare function trimTrailingFrom(str: StringSqlInput, remstr: StringSqlInput): SQL; /** `UCASE(str)` — synonym for `UPPER` */ export declare function ucase(str: StringSqlInput): SQL; /** `UNHEX(str)` */ export declare function unhex(str: StringSqlInput): SQL; /** `UPPER(str)` */ export declare function upper(str: StringSqlInput): SQL; /** `WEIGHT_STRING(str)` */ export declare function weightString(str: StringSqlInput): SQL; /** `WEIGHT_STRING(str AS CHAR(n))` */ export declare function weightStringAsChar(str: StringSqlInput, n: StringSqlInput): SQL; /** `WEIGHT_STRING(str AS BINARY(n))` */ export declare function weightStringAsBinary(str: StringSqlInput, n: StringSqlInput): SQL; //# sourceMappingURL=StringTiDB.d.ts.map