/** * Text Functions — Native RuntimeValue implementations. */ import type { RuntimeValue } from "../runtime/values.js"; /** Type alias for a native text function. */ type NativeFn = (args: RuntimeValue[]) => RuntimeValue; export declare const fnCONCATENATE: NativeFn; export declare const fnCONCAT: NativeFn; export declare const fnTEXTJOIN: NativeFn; export declare const fnLEFT: NativeFn; export declare const fnRIGHT: NativeFn; export declare const fnMID: NativeFn; export declare const fnLEN: NativeFn; export declare const fnTRIM: NativeFn; export declare const fnLOWER: NativeFn; export declare const fnUPPER: NativeFn; export declare const fnPROPER: NativeFn; export declare const fnSUBSTITUTE: NativeFn; export declare const fnREPLACE: NativeFn; export declare const fnFIND: NativeFn; export declare const fnSEARCH: NativeFn; export declare const fnREPT: NativeFn; export declare const fnTEXT: NativeFn; export declare const fnVALUE: NativeFn; export declare const fnEXACT: NativeFn; export declare const fnCODE: NativeFn; export declare const fnCHAR: NativeFn; export declare const fnCLEAN: NativeFn; export declare const fnT: NativeFn; export declare const fnUNICHAR: NativeFn; export declare const fnUNICODE: NativeFn; export declare const fnBAHTTEXT: NativeFn; export declare const fnDOLLAR: NativeFn; export declare const fnFIXED: NativeFn; export declare const fnASC: NativeFn; export declare const fnDBCS: NativeFn; export declare const fnJIS: NativeFn; export declare const fnPHONETIC: NativeFn; export declare const fnNUMBERVALUE: NativeFn; export declare const fnTEXTBEFORE: NativeFn; export declare const fnTEXTAFTER: NativeFn; export declare const fnTEXTSPLIT: NativeFn; /** * REGEXTEST(text, pattern, [case_sensitivity]) — returns TRUE iff the * regex matches any substring of `text`. */ export declare const fnREGEXTEST: NativeFn; /** * REGEXEXTRACT(text, pattern, [return_mode], [case_sensitivity]) — * return_mode = 0 (default) → first match as a string * return_mode = 1 → all matches as a 1-column array * return_mode = 2 → capture groups of the first match as a 1-row array */ export declare const fnREGEXEXTRACT: NativeFn; /** * REGEXREPLACE(text, pattern, replacement, [occurrence], [case_sensitivity]) — * occurrence = 0 (default) → replace all * occurrence = n (positive) → replace only the n-th match * occurrence = n (negative) → replace only the n-th-last match */ export declare const fnREGEXREPLACE: NativeFn; /** * VALUETOTEXT(value, [format]) — format a scalar or 1×1 array as text. * For multi-cell arrays, this applies implicit intersection at the * evaluator layer — so by the time we see args[0] it is already scalar. */ export declare const fnVALUETOTEXT: NativeFn; /** * ARRAYTOTEXT(array, [format]) — flatten an array to a delimited text * representation. * * Format 0 (concise, default): row-major join with ", ". * Format 1 (strict): wraps output in `{…}`, rows separated by `;`, * cells by `,`; strings inside quoted. */ export declare const fnARRAYTOTEXT: NativeFn; /** * ENCODEURL(text) — percent-encode a string for URL use. * * Excel follows RFC 3986's "unreserved" character rule: A-Z, a-z, 0-9, * and `- _ . ~` are kept verbatim; everything else is encoded as * `%HH` using the UTF-8 byte sequence. This is exactly what JavaScript's * `encodeURIComponent` does, so we delegate to it. */ export declare const fnENCODEURL: NativeFn; export {};