/** * Math / Aggregate Functions — Native RuntimeValue implementation. */ import type { RuntimeValue } from "../runtime/values.js"; export type NativeFn = (args: RuntimeValue[]) => RuntimeValue; export declare const fnSIN: NativeFn; export declare const fnCOS: NativeFn; export declare const fnTAN: NativeFn; export declare const fnASIN: NativeFn; export declare const fnACOS: NativeFn; export declare const fnATAN: NativeFn; export declare const fnATAN2: NativeFn; export declare const fnSINH: NativeFn; export declare const fnCOSH: NativeFn; export declare const fnTANH: NativeFn; export declare const fnASINH: NativeFn; export declare const fnACOSH: NativeFn; export declare const fnATANH: NativeFn; /** * Secondary trigonometric family (SEC / CSC / COT and hyperbolic / * inverse variants). None of these exist on the JavaScript Math object * so we derive them from the standard sin / cos / tan primitives, with * explicit guards at the discontinuities (π/2 for SEC, multiples of π * for CSC / COT, zero for the H variants). */ export declare const fnSEC: NativeFn; export declare const fnCSC: NativeFn; export declare const fnCOT: NativeFn; export declare const fnSECH: NativeFn; export declare const fnCSCH: NativeFn; export declare const fnCOTH: NativeFn; export declare const fnACOT: NativeFn; export declare const fnACOTH: NativeFn; export declare const fnSUM: NativeFn; export declare const fnAVERAGE: NativeFn; export declare const fnMIN: NativeFn; export declare const fnMAX: NativeFn; export declare const fnCOUNT: NativeFn; export declare const fnCOUNTA: NativeFn; export declare const fnCOUNTBLANK: NativeFn; export declare const fnPRODUCT: NativeFn; export declare const fnSUMPRODUCT: NativeFn; export declare const fnABS: NativeFn; export declare const fnCEILING: NativeFn; /** * CEILING.MATH(number, [significance], [mode]) — rounds away from zero * by default, or toward zero when `mode` is non-zero AND `number` is * negative. Significance is always interpreted by absolute value. * * Different from CEILING: negative numbers with positive significance * are valid (Excel does NOT require same sign), and there is an extra * `mode` switch that flips the rounding direction for negatives. */ export declare const fnCEILING_MATH: NativeFn; /** * CEILING.PRECISE / ISO.CEILING — always rounds toward +∞ (irrespective * of sign), using the absolute value of significance. */ export declare const fnCEILING_PRECISE: NativeFn; export declare const fnFLOOR: NativeFn; /** * FLOOR.MATH(number, [significance], [mode]) — rounds toward zero by * default, or away from zero when `mode` is non-zero AND `number` is * negative. Uses `|significance|` so negative significance never * produces #NUM!. */ export declare const fnFLOOR_MATH: NativeFn; /** * FLOOR.PRECISE — always rounds toward −∞ using `|significance|`. */ export declare const fnFLOOR_PRECISE: NativeFn; export declare const fnINT: NativeFn; export declare const fnMOD: NativeFn; export declare const fnPOWER: NativeFn; export declare const fnROUND: NativeFn; export declare const fnROUNDDOWN: NativeFn; export declare const fnROUNDUP: NativeFn; export declare const fnSQRT: NativeFn; /** * SQRTPI(number) — returns the square root of (number × π). Useful in * statistical formulas and Gauss integrals. */ export declare const fnSQRTPI: NativeFn; export declare const fnLN: NativeFn; export declare const fnLOG: NativeFn; export declare const fnLOG10: NativeFn; export declare const fnEXP: NativeFn; export declare const fnPI: NativeFn; export declare const fnRAND: NativeFn; export declare const fnRANDBETWEEN: NativeFn; export declare const fnSIGN: NativeFn; export declare const fnTRUNC: NativeFn; export declare const fnSUMSQ: NativeFn; export declare const fnGCD: NativeFn; export declare const fnLCM: NativeFn; export declare const fnEVEN: NativeFn; export declare const fnODD: NativeFn; export declare const fnMROUND: NativeFn; export declare const fnQUOTIENT: NativeFn; export declare const fnBASE: NativeFn; export declare const fnDECIMAL: NativeFn; export declare const fnROMAN: NativeFn; export declare const fnARABIC: NativeFn; export declare const fnDEGREES: NativeFn; export declare const fnRADIANS: NativeFn; export declare const fnSUMX2MY2: NativeFn; export declare const fnSUMX2PY2: NativeFn; export declare const fnSUMXMY2: NativeFn; export declare const fnMULTINOMIAL: NativeFn; export declare const fnFACT: NativeFn; export declare const fnFACTDOUBLE: NativeFn; export declare const fnCOMBIN: NativeFn; export declare const fnCOMBINA: NativeFn; export declare const fnPERMUT: NativeFn; /** * MMULT(array1, array2) — matrix product. Dimensions must be * (m×k) × (k×n) = (m×n); mismatched sizes return #VALUE!. */ export declare const fnMMULT: NativeFn; /** * MDETERM(array) — determinant of a square matrix via Gaussian * elimination with partial pivoting. Non-square or non-numeric input * returns #VALUE!. */ export declare const fnMDETERM: NativeFn; /** * MINVERSE(array) — inverse of a square matrix via Gauss-Jordan * elimination. Singular matrices return #NUM!; non-square return * #VALUE!. */ export declare const fnMINVERSE: NativeFn; /** * MUNIT(dimension) — n×n identity matrix. */ export declare const fnMUNIT: NativeFn; /** * SERIESSUM(x, n, m, coefficients) — returns the sum of a power series * x^n * coef[0] + x^(n+m) * coef[1] + x^(n+2m) * coef[2] + … */ export declare const fnSERIESSUM: NativeFn;