@sheetxl/formulas 0.8.0-beta.1 → 0.8.0-beta.11

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (134) hide show
  1. package/README.md +15 -22
  2. package/browser/esm/{BM1YhvA2ppUZ3QLB.mjs → BAu7VttBhgl5A9Ux.mjs} +1 -1
  3. package/{node/esm/CG1Fn8D-2DrQZoD5.mjs → browser/esm/BL3CLO1ngbZPNUSj.mjs} +1 -1
  4. package/{node/esm/-f-RKKojiLg94hp9.mjs → browser/esm/BL5O9xv74605fjZ0.mjs} +51 -11
  5. package/browser/esm/{CVv3DuciDQrnFFeu.mjs → BTOiKBFUYxECGgpN.mjs} +1 -1
  6. package/browser/esm/Bjdqhk-JMohE4sBN.mjs +5722 -0
  7. package/browser/esm/{Bsb5i9Jq-Q8RTmvi.mjs → CCTNn0CmYTRTR9uu.mjs} +1 -1
  8. package/browser/esm/{BzNFsi4RXuJrn_1n.mjs → CJVp8EBHRn_OMdXr.mjs} +1 -1
  9. package/browser/esm/{Cyvobf2wi0quDD3U.mjs → CS2YxGzDK80pF1TP.mjs} +1 -1
  10. package/browser/esm/{0amsHACCOHE_JjXI.mjs → CkvBF6_lFpJ8lzWn.mjs} +1 -1
  11. package/browser/esm/{BYRjnggsufwbb27W.mjs → Cm5b94jC90pgvgEQ.mjs} +1 -1
  12. package/browser/esm/{Cdl7ZalV6WPZHHRE.mjs → CpKG2VMt7bLP4_Az.mjs} +1 -1
  13. package/browser/esm/{BR2ai1V5dGPphpRf.mjs → CpyKqbMxs8fgNUrm.mjs} +2 -5
  14. package/browser/esm/{Ct1gudv1TKk-5FMO.mjs → D0PDit-Emky4tG76.mjs} +48 -2
  15. package/browser/esm/{B3pEie3jQN0SvV5B.mjs → D5lfhEj0O0vGXGIU.mjs} +1 -1
  16. package/browser/esm/{HgVmqQQhKQ_2v0HD.mjs → DE0FWfy3dgRhUs6j.mjs} +2 -2
  17. package/browser/esm/{CWAtVXxcIz86XLzE.mjs → DY3Yp4g7FpjDC4Ux.mjs} +1 -1
  18. package/browser/esm/{DtqLXxtPFISlNoUd.mjs → DatkcV-D0mA7WYmb.mjs} +1 -1
  19. package/{node/esm/C7mAHEhFYDwSEU6O.mjs → browser/esm/Dz2Vh5VXT4u2caUb.mjs} +1 -1
  20. package/browser/esm/{CltdofO5ik8g_wQ8.mjs → LWIfDqgl4BWsGN40.mjs} +1 -1
  21. package/{node/esm/CkG4LZN-kb7plKXG.mjs → browser/esm/TdOBTLcfAEs2lvw1.mjs} +69 -4
  22. package/browser/esm/{DKFABgVKeBMflym9.mjs → _haW8KO4uxcUjPNq.mjs} +1 -1
  23. package/browser/esm/declarations.mjs +106 -0
  24. package/browser/esm/index.mjs +4527 -10911
  25. package/browser/esm/{D2miaIrotHbpdWei.mjs → nW1VYp24XfapwOYa.mjs} +1 -1
  26. package/browser/esm/{B7750ljsJF3qA9kU.mjs → qzngIvn0BfOU7J6v.mjs} +37 -3
  27. package/{node/esm/CCGjvL3YYwY09qF-.mjs → browser/esm/zNQMTF4Mftkd8m3i.mjs} +1 -1
  28. package/licenses/dependencies.txt +0 -33
  29. package/node/esm/515xLSpvB54fgWJI.mjs +5722 -0
  30. package/node/esm/{ZUay0bTGgyrF8e04.mjs → BBP--4zd6B0_Rt4G.mjs} +1 -1
  31. package/{browser/esm/CG1Fn8D-2DrQZoD5.mjs → node/esm/BL3CLO1ngbZPNUSj.mjs} +1 -1
  32. package/node/esm/{CVv3DuciDQrnFFeu.mjs → BTOiKBFUYxECGgpN.mjs} +1 -1
  33. package/node/esm/{DxRD19RVMzj2YvKF.mjs → BjhGKO4xoRsWtL_b.mjs} +1 -1
  34. package/node/esm/{DDajoVNkJB39_Fkx.mjs → CI_lC0jwf_Z5jdqc.mjs} +1 -1
  35. package/node/esm/{BzNFsi4RXuJrn_1n.mjs → CJVp8EBHRn_OMdXr.mjs} +1 -1
  36. package/node/esm/{Cyvobf2wi0quDD3U.mjs → CS2YxGzDK80pF1TP.mjs} +1 -1
  37. package/node/esm/{Cdl7ZalV6WPZHHRE.mjs → CpKG2VMt7bLP4_Az.mjs} +1 -1
  38. package/node/esm/{BR2ai1V5dGPphpRf.mjs → CpyKqbMxs8fgNUrm.mjs} +2 -5
  39. package/node/esm/{Ct1gudv1TKk-5FMO.mjs → D0jAK0A5JwzRhV5i.mjs} +48 -2
  40. package/node/esm/{HgVmqQQhKQ_2v0HD.mjs → DE0FWfy3dgRhUs6j.mjs} +2 -2
  41. package/node/esm/{CWAtVXxcIz86XLzE.mjs → DY3Yp4g7FpjDC4Ux.mjs} +1 -1
  42. package/node/esm/{DtqLXxtPFISlNoUd.mjs → DatkcV-D0mA7WYmb.mjs} +1 -1
  43. package/node/esm/{B8rSUcOwH6g4MUgm.mjs → DgrvMX5JkTolu68g.mjs} +1 -1
  44. package/{browser/esm/C7mAHEhFYDwSEU6O.mjs → node/esm/Dz2Vh5VXT4u2caUb.mjs} +1 -1
  45. package/node/esm/{CltdofO5ik8g_wQ8.mjs → LWIfDqgl4BWsGN40.mjs} +1 -1
  46. package/{browser/esm/CkG4LZN-kb7plKXG.mjs → node/esm/TdOBTLcfAEs2lvw1.mjs} +69 -4
  47. package/node/esm/{DKFABgVKeBMflym9.mjs → _haW8KO4uxcUjPNq.mjs} +1 -1
  48. package/node/esm/declarations.mjs +106 -0
  49. package/node/esm/{2TCIoMd-SYs6i4-N.mjs → euzKAV6QFwFyMtRz.mjs} +1 -1
  50. package/node/esm/index.mjs +4842 -9389
  51. package/node/esm/{D2miaIrotHbpdWei.mjs → nW1VYp24XfapwOYa.mjs} +1 -1
  52. package/{browser/esm/-f-RKKojiLg94hp9.mjs → node/esm/qFHh9pVgQa0ZMumi.mjs} +51 -11
  53. package/node/esm/{B7750ljsJF3qA9kU.mjs → qzngIvn0BfOU7J6v.mjs} +37 -3
  54. package/{browser/esm/CCGjvL3YYwY09qF-.mjs → node/esm/zNQMTF4Mftkd8m3i.mjs} +1 -1
  55. package/package.json +12 -8
  56. package/types/declarations.d.ts +4 -0
  57. package/types/src/.generated/decl/dateTime/Date.decl.d.ts +2 -1
  58. package/types/src/.generated/decl/information/Information.decl.d.ts +2 -1
  59. package/types/src/.generated/decl/lookupReference/Reference.decl.d.ts +2 -1
  60. package/types/src/.generated/decl/mathTrig/Math.decl.d.ts +2 -1
  61. package/types/src/.generated/declarations.d.ts +7 -0
  62. package/types/src/.generated/desc/dateTime/Date.desc.d.ts +2 -1
  63. package/types/src/.generated/desc/information/Information.desc.d.ts +2 -1
  64. package/types/src/.generated/desc/lookupReference/Reference.desc.d.ts +2 -1
  65. package/types/src/.generated/desc/mathTrig/Math.desc.d.ts +2 -1
  66. package/types/src/_utils/AValues.d.ts +30 -0
  67. package/types/src/_utils/AggregateIFS.d.ts +3 -1
  68. package/types/src/_utils/Arithmetic.d.ts +36 -0
  69. package/types/src/_utils/Combinatorics.d.ts +20 -0
  70. package/types/src/_utils/Distributions.d.ts +93 -0
  71. package/types/src/_utils/Errors.d.ts +1 -20
  72. package/types/src/_utils/FirstCell.d.ts +32 -0
  73. package/types/src/_utils/Matrix.d.ts +31 -0
  74. package/types/src/_utils/SpecialFunctions.d.ts +91 -0
  75. package/types/src/_utils/X87.d.ts +28 -0
  76. package/types/src/database/Database.d.ts +25 -25
  77. package/types/src/dateTime/Date.d.ts +250 -41
  78. package/types/src/engineering/Bessel.d.ts +9 -9
  79. package/types/src/engineering/Bitwise.d.ts +35 -35
  80. package/types/src/engineering/Convert.d.ts +3 -3
  81. package/types/src/engineering/Engineering.d.ts +5 -5
  82. package/types/src/engineering/Error.d.ts +9 -9
  83. package/types/src/engineering/Imaginary.d.ts +54 -54
  84. package/types/src/information/Information.d.ts +118 -49
  85. package/types/src/japanese/Date.d.ts +2 -2
  86. package/types/src/japanese/Text.d.ts +1 -1
  87. package/types/src/logical/Logical.d.ts +45 -39
  88. package/types/src/lookupReference/Reference.d.ts +213 -87
  89. package/types/src/mathTrig/Math.d.ts +499 -152
  90. package/types/src/mathTrig/Trig.d.ts +26 -22
  91. package/types/src/operators/Operators.d.ts +15 -15
  92. package/types/src/statistical/Distribution.d.ts +157 -161
  93. package/types/src/statistical/Statistical.d.ts +37 -37
  94. package/types/src/testing/Testing.d.ts +2 -2
  95. package/types/src/text/Text.d.ts +119 -54
  96. package/types/src/thai/Text.d.ts +1 -1
  97. package/types/src/web/FilterXML.d.ts +1 -1
  98. package/types/src/web/Web.d.ts +2 -2
  99. package/browser/cjs/1XrWGMP3GmsQOMIX.cjs +0 -1
  100. package/browser/cjs/49_x589Na12sizKK.cjs +0 -1
  101. package/browser/cjs/4nReftSsKWmnRdtf.cjs +0 -1
  102. package/browser/cjs/507hQYooKKjnRzsZ.cjs +0 -1
  103. package/browser/cjs/BAxVLKkxFgI6cXnR.cjs +0 -1
  104. package/browser/cjs/BK0SCfN_VZYqBxoQ.cjs +0 -1
  105. package/browser/cjs/Btc0Nzu40VYOpzLX.cjs +0 -1
  106. package/browser/cjs/C9C-pr-T_ThweQX9.cjs +0 -1
  107. package/browser/cjs/CJYewYJ5Z3iojl7J.cjs +0 -1
  108. package/browser/cjs/CRx1WvmgBjT8WVyB.cjs +0 -1
  109. package/browser/cjs/CV4KQsHluMqo1I2Q.cjs +0 -1
  110. package/browser/cjs/CXlzsh_WHCOsErJ1.cjs +0 -1
  111. package/browser/cjs/CpJJh4UnFl1_qFui.cjs +0 -1
  112. package/browser/cjs/CrZlUtdX1h2RUnCP.cjs +0 -1
  113. package/browser/cjs/D8-KovdJ0LjxqCe2.cjs +0 -1
  114. package/browser/cjs/DCIlWcGDrp-5PDoA.cjs +0 -1
  115. package/browser/cjs/DDnGLOLTqLFsdUDS.cjs +0 -1
  116. package/browser/cjs/DG2kqsWRUtVugjay.cjs +0 -1
  117. package/browser/cjs/DM7-R_ltoLbA9jde.cjs +0 -1
  118. package/browser/cjs/DNKyaSruDogoBd2H.cjs +0 -1
  119. package/browser/cjs/Du4jBiFxRIF1OjD4.cjs +0 -1
  120. package/browser/cjs/EeOVMRq7TuptFKTc.cjs +0 -1
  121. package/browser/cjs/Kvn916ebqGc4t6hv.cjs +0 -1
  122. package/browser/cjs/aONv0Ys3C8xmnaR8.cjs +0 -1
  123. package/browser/cjs/index.cjs +0 -1
  124. package/browser/cjs/z_rZE1OHFPpdGBh4.cjs +0 -1
  125. package/browser/esm/C9jpXFBeugwmOTbx.mjs +0 -21
  126. package/browser/esm/Crb70T1Sp1S4uzq4.mjs +0 -24
  127. package/node/esm/C9jpXFBeugwmOTbx.mjs +0 -21
  128. package/node/esm/Crb70T1Sp1S4uzq4.mjs +0 -24
  129. package/types/src/.generated/decl/lookupReference/GroupBy.decl.d.ts +0 -4
  130. package/types/src/.generated/decl/lookupReference/PivotBy.decl.d.ts +0 -4
  131. package/types/src/.generated/desc/lookupReference/GroupBy.desc.d.ts +0 -4
  132. package/types/src/.generated/desc/lookupReference/PivotBy.desc.d.ts +0 -4
  133. package/types/src/lookupReference/GroupBy.d.ts +0 -19
  134. package/types/src/lookupReference/PivotBy.d.ts +0 -24
@@ -0,0 +1,91 @@
1
+ /**
2
+ * Log-gamma. Lanczos with `g = 671/128` and fourteen coefficients.
3
+ *
4
+ * The six-coefficient form this was seeded with holds about ten digits, and every function here
5
+ * reads its answer through an `exp`, so those ten were the ceiling under the whole distribution
6
+ * library — `ibetainv` cannot find a root more accurately than the `ibeta` it is inverting.
7
+ */
8
+ export declare function gammaln(x: number): number;
9
+ /** Gamma, by the rational approximation — `Infinity` past the double's last representable value. */
10
+ export declare function gammafn(x: number): number;
11
+ /** The beta function. */
12
+ export declare function betafn(x: number, y: number): number | undefined;
13
+ /** The argument above which {@link stirlerr}'s series is good to the last bit. */
14
+ export declare const StirlingFloor = 30;
15
+ /**
16
+ * `ln B(x, y)`.
17
+ *
18
+ * `ln G(x) + ln G(y) - ln G(x + y)` is a difference of large numbers whenever either argument is
19
+ * large, and the answer is not large — the loss is total enough to be the whole story behind the
20
+ * F and t families' five-digit plateau at a degrees of freedom of 1E10. Above
21
+ * {@link StirlingFloor} the larger argument is folded into {@link lgammaDelta} instead, which
22
+ * never forms it. Below it the expression is the original one, so nothing else changes.
23
+ */
24
+ export declare const betaln: (x: number, y: number) => number;
25
+ /** The error function, by Chebyshev approximation. */
26
+ export declare const erf: (x: number) => number;
27
+ /** The complementary error function. */
28
+ export declare const erfc: (x: number) => number;
29
+ /** The inverse of {@link erfc}. */
30
+ export declare function erfcinv(p: number): number;
31
+ /**
32
+ * The lower regularized incomplete gamma, `P(a, x)`.
33
+ *
34
+ * The iteration count is a formula rather than a convergence test — both branches simply run
35
+ * `ITMAX` times. The cap is sized from the shape, so both also stop as soon as the accumulator
36
+ * has stopped moving; without that a large shape walks the cap one term at a time for no gain
37
+ * (a shape of 1e9 takes ten seconds).
38
+ *
39
+ * Past {@link TemmeShape} neither branch is asked at all — see {@link temmeQ}.
40
+ */
41
+ export declare const lowRegGamma: (a: number, x: number) => number;
42
+ /**
43
+ * `Q(a, x) = 1 - P(a, x)`, on the branch that does not cancel.
44
+ *
45
+ * The continued fraction computes `Q` and the series computes `P`, so spelling either one as
46
+ * `1 -` the other throws the smaller of the two away — for a far tail that is the entire answer.
47
+ */
48
+ export declare const upRegGamma: (a: number, x: number) => number;
49
+ /**
50
+ * `ln` of the `Gamma(a, 1)` density at `x`, written so that nothing in it cancels.
51
+ *
52
+ * The direct spelling `(a-1) ln x - x - ln G(a)` is a sum of terms the size of `a ln a` — 1.6E8
53
+ * at a shape of 1E7 — that has to come out near zero, so it holds seven digits there whatever
54
+ * `ln G` is asked. Folding Stirling's form for `ln G(a)` in symbolically leaves
55
+ *
56
+ * ```
57
+ * -a (u - ln(1+u)) - ln(1+u) - ln(a)/2 - ln(2 pi)/2 - stirlerr(a), u = x/a - 1
58
+ * ```
59
+ *
60
+ * whose every term is the size of the answer. It is Excel's form: `GAMMA.DIST(1E7,1E7,1,FALSE)`
61
+ * is exactly the value this returns.
62
+ */
63
+ export declare function gammaLogPdf(a: number, x: number): number;
64
+ /** The inverse of {@link lowRegGamma} in its second argument. */
65
+ export declare function gammapinv(p: number, a: number): number;
66
+ /**
67
+ * The continued fraction of the incomplete beta, by modified Lentz's method.
68
+ *
69
+ * The stop is an ulp of the ratio. The single-precision `3e-7` it was seeded with put a floor
70
+ * under every F and t answer at about seven digits — visible wherever a body asked for eight.
71
+ */
72
+ export declare function betacf(x: number, a: number, b: number): number;
73
+ /**
74
+ * The regularized incomplete beta, `I_x(a, b)`.
75
+ *
76
+ * The front factor goes through {@link betaln}, which does not cancel at a large argument.
77
+ */
78
+ export declare const ibeta: (x: number, a: number, b: number) => number;
79
+ /**
80
+ * `I_x(a, b)` where the caller supplies `1 - x` as well as `x`.
81
+ *
82
+ * A caller that has both in closed form has a far better `1 - x` than the subtraction does: an
83
+ * `x` of `dof/(dof + t^2)` is `1 - 2.25E-10` at a degrees of freedom of 1E10, and recovering
84
+ * that complement by subtracting leaves six of its digits, which is the whole answer on this
85
+ * branch. {@link ibeta} passes the subtraction, which is all there is to pass when `x` is what
86
+ * the caller was given.
87
+ */
88
+ export declare function ibetaAt(x: number, cx: number, a: number, b: number): number;
89
+ /** The inverse of {@link ibeta} in its first argument. */
90
+ export declare function ibetainv(p: number, a: number, b: number): number;
91
+ //# sourceMappingURL=SpecialFunctions.d.ts.map
@@ -0,0 +1,28 @@
1
+ /**
2
+ * Excel's circular trigonometry, which is not the platform library's.
3
+ *
4
+ * Excel's `SIN` `COS` `TAN` disagree with a correctly-rounded library in the FOURTH significant
5
+ * digit near a multiple of pi/2 — `SIN(PI())` is 1.22514845490862E-16 where the true sine of the
6
+ * double `PI()` is 1.2246467991473532E-16 — because Excel reduces the argument against pi
7
+ * ROUNDED TO A 64-BIT SIGNIFICAND (the x87 80-bit extended constant) rather than against pi. The
8
+ * difference is a constant, not noise to be tolerated at 15 digits.
9
+ *
10
+ * The reduction has to be carried at more than double precision: `k` reaches 2^27/(pi/2), about
11
+ * 8.5E7, so `k * PI_HI/2` needs the exact product rather than the rounded one. That is what the
12
+ * double-double helpers below are for. The answer is re-evaluated from the reduced argument
13
+ * rather than perturbed from the library's: perturbing keeps the ordinary arguments exact and
14
+ * loses the reduced ones.
15
+ */
16
+ /** `|x|` at or above which Excel refuses a circular trig argument outright. */
17
+ export declare const MAX_TRIG_ARGUMENT: number;
18
+ /** Excel's sine. The caller owns the {@link MAX_TRIG_ARGUMENT} refusal. */
19
+ export declare function x87Sin(x: number): number;
20
+ /** Excel's cosine. The caller owns the {@link MAX_TRIG_ARGUMENT} refusal. */
21
+ export declare function x87Cos(x: number): number;
22
+ /**
23
+ * Excel's tangent, which is the quotient of the two above and not a function of its own.
24
+ * `TAN(x)` is exactly `SIN(x)/COS(x)` everywhere, including at the poles, where the quotient is
25
+ * what produces the large finite answer (`TAN(PI()/2)` is 1.6324552277619072E16).
26
+ */
27
+ export declare const x87Tan: (x: number) => number;
28
+ //# sourceMappingURL=X87.d.ts.map
@@ -1,86 +1,86 @@
1
- import { AcceptError, AcceptRefError, Scalar, IRange, IReferenceRange } from '@sheetxl/primitives';
1
+ import { AcceptError, NoLift, Omittable, Scalar, IRange, IReferenceRange } from '@sheetxl/primitives';
2
2
  /**
3
- * @summary Averages the values in a column in a list or database that match conditions you specify.
3
+ * Averages the values in a column in a list or database that match conditions you specify.
4
4
  * @param database is the range of cells that makes up the list or database. A database is a list of related data.
5
5
  * @param field is either the label of the column in double quotation marks or a number that represents the column's position in the list.
6
6
  * @param criteria is the range of cells that contains the conditions you specify. The range includes a column label and one cell below the label for a condition.
7
7
  */
8
- export declare function DAVERAGE(database: AcceptError<IReferenceRange>, field: AcceptRefError<Scalar>, criteria: AcceptRefError<IRange>): Scalar;
8
+ export declare function DAVERAGE(database: AcceptError<IReferenceRange>, field: NoLift<AcceptError<Scalar>>, criteria: AcceptError<IRange>): Scalar;
9
9
  /**
10
- * @summary Counts the cells containing numbers in the field (column) of records in the database that match the conditions you specify.
10
+ * Counts the cells containing numbers in the field (column) of records in the database that match the conditions you specify.
11
11
  * @param database is the range of cells that makes up the list or database. A database is a list of related data.
12
12
  * @param field is either the label of the column in double quotation marks or a number that represents the column's position in the list.
13
13
  * @param criteria is the range of cells that contains the conditions you specify. The range includes a column label and one cell below the label for a condition.
14
14
  */
15
- export declare function DCOUNT(database: AcceptError<IReferenceRange>, field: AcceptRefError<Scalar>, criteria: AcceptRefError<IRange>): Scalar;
15
+ export declare function DCOUNT(database: AcceptError<IReferenceRange>, field: NoLift<Omittable<AcceptError<Scalar>>>, criteria: AcceptError<IRange>): Scalar;
16
16
  /**
17
- * @summary Counts nonblank cells in the field (column) of records in the database that match the conditions you specify.
17
+ * Counts nonblank cells in the field (column) of records in the database that match the conditions you specify.
18
18
  * @param database is the range of cells that makes up the list or database. A database is a list of related data.
19
19
  * @param field is either the label of the column in double quotation marks or a number that represents the column's position in the list.
20
20
  * @param criteria is the range of cells that contains the conditions you specify. The range includes a column label and one cell below the label for a condition.
21
21
  */
22
- export declare function DCOUNTA(database: AcceptError<IReferenceRange>, field: AcceptRefError<Scalar>, criteria: AcceptRefError<IRange>): Scalar;
22
+ export declare function DCOUNTA(database: AcceptError<IReferenceRange>, field: NoLift<Omittable<AcceptError<Scalar>>>, criteria: AcceptError<IRange>): Scalar;
23
23
  /**
24
- * @summary Extracts from a database a single record that matches the conditions you specify.
24
+ * Extracts from a database a single record that matches the conditions you specify.
25
25
  * @param database is the range of cells that makes up the list or database. A database is a list of related data.
26
26
  * @param field is either the label of the column in double quotation marks or a number that represents the column's position in the list.
27
27
  * @param criteria is the range of cells that contains the conditions you specify. The range includes a column label and one cell below the label for a condition.
28
28
  */
29
- export declare function DGET(database: AcceptError<IReferenceRange>, field: AcceptRefError<Scalar>, criteria: AcceptRefError<IRange>): Scalar;
29
+ export declare function DGET(database: AcceptError<IReferenceRange>, field: NoLift<AcceptError<Scalar>>, criteria: AcceptError<IRange>): Scalar;
30
30
  /**
31
- * @summary Returns the largest number in the field (column) of records in the database that match the conditions you specify.
31
+ * Returns the largest number in the field (column) of records in the database that match the conditions you specify.
32
32
  * @param database is the range of cells that makes up the list or database. A database is a list of related data.
33
33
  * @param field is either the label of the column in double quotation marks or a number that represents the column's position in the list.
34
34
  * @param criteria is the range of cells that contains the conditions you specify. The range includes a column label and one cell below the label for a condition.
35
35
  */
36
- export declare function DMAX(database: AcceptError<IReferenceRange>, field: AcceptRefError<Scalar>, criteria: AcceptRefError<IRange>): Scalar;
36
+ export declare function DMAX(database: AcceptError<IReferenceRange>, field: NoLift<AcceptError<Scalar>>, criteria: AcceptError<IRange>): Scalar;
37
37
  /**
38
- * @summary Returns the smallest number in the field (column) of records in the database that match the conditions you specify.
38
+ * Returns the smallest number in the field (column) of records in the database that match the conditions you specify.
39
39
  * @param database is the range of cells that makes up the list or database. A database is a list of related data.
40
40
  * @param field is either the label of the column in double quotation marks or a number that represents the column's position in the list.
41
41
  * @param criteria is the range of cells that contains the conditions you specify. The range includes a column label and one cell below the label for a condition.
42
42
  */
43
- export declare function DMIN(database: AcceptError<IReferenceRange>, field: AcceptRefError<Scalar>, criteria: AcceptRefError<IRange>): Scalar;
43
+ export declare function DMIN(database: AcceptError<IReferenceRange>, field: NoLift<AcceptError<Scalar>>, criteria: AcceptError<IRange>): Scalar;
44
44
  /**
45
- * @summary Multiplies the values in the field (column) of records in the database that match the conditions you specify.
45
+ * Multiplies the values in the field (column) of records in the database that match the conditions you specify.
46
46
  * @param database is the range of cells that makes up the list or database. A database is a list of related data.
47
47
  * @param field is either the label of the column in double quotation marks or a number that represents the column's position in the list.
48
48
  * @param criteria is the range of cells that contains the conditions you specify. The range includes a column label and one cell below the label for a condition.
49
49
  */
50
- export declare function DPRODUCT(database: AcceptError<IReferenceRange>, field: AcceptRefError<Scalar>, criteria: AcceptRefError<IRange>): Scalar;
50
+ export declare function DPRODUCT(database: AcceptError<IReferenceRange>, field: NoLift<AcceptError<Scalar>>, criteria: AcceptError<IRange>): Scalar;
51
51
  /**
52
- * @summary Estimates the standard deviation based on a sample from selected database entries.
52
+ * Estimates the standard deviation based on a sample from selected database entries.
53
53
  * @param database is the range of cells that makes up the list or database. A database is a list of related data.
54
54
  * @param field is either the label of the column in double quotation marks or a number that represents the column's position in the list.
55
55
  * @param criteria is the range of cells that contains the conditions you specify. The range includes a column label and one cell below the label for a condition.
56
56
  */
57
- export declare function DSTDEV(database: AcceptError<IReferenceRange>, field: AcceptRefError<Scalar>, criteria: AcceptRefError<IRange>): Scalar;
57
+ export declare function DSTDEV(database: AcceptError<IReferenceRange>, field: NoLift<AcceptError<Scalar>>, criteria: AcceptError<IRange>): Scalar;
58
58
  /**
59
- * @summary Calculates the standard deviation based on the entire population of selected database entries.
59
+ * Calculates the standard deviation based on the entire population of selected database entries.
60
60
  * @param database is the range of cells that makes up the list or database. A database is a list of related data.
61
61
  * @param field is either the label of the column in double quotation marks or a number that represents the column's position in the list.
62
62
  * @param criteria is the range of cells that contains the conditions you specify. The range includes a column label and one cell below the label for a condition.
63
63
  */
64
- export declare function DSTDEVP(database: AcceptError<IReferenceRange>, field: AcceptRefError<Scalar>, criteria: AcceptRefError<IRange>): Scalar;
64
+ export declare function DSTDEVP(database: AcceptError<IReferenceRange>, field: NoLift<AcceptError<Scalar>>, criteria: AcceptError<IRange>): Scalar;
65
65
  /**
66
- * @summary Adds the numbers in the field (column) of records in the database that match the conditions you specify.
66
+ * Adds the numbers in the field (column) of records in the database that match the conditions you specify.
67
67
  * @param database is the range of cells that makes up the list or database. A database is a list of related data.
68
68
  * @param field is either the label of the column in double quotation marks or a number that represents the column's position in the list.
69
69
  * @param criteria is the range of cells that contains the conditions you specify. The range includes a column label and one cell below the label for a condition.
70
70
  */
71
- export declare function DSUM(database: AcceptError<IReferenceRange>, field: AcceptRefError<Scalar>, criteria: AcceptRefError<IRange>): Scalar;
71
+ export declare function DSUM(database: AcceptError<IReferenceRange>, field: NoLift<AcceptError<Scalar>>, criteria: AcceptError<IRange>): Scalar;
72
72
  /**
73
- * @summary Estimates variance based on a sample from selected database entries.
73
+ * Estimates variance based on a sample from selected database entries.
74
74
  * @param database is the range of cells that makes up the list or database. A database is a list of related data.
75
75
  * @param field is either the label of the column in double quotation marks or a number that represents the column's position in the list.
76
76
  * @param criteria is the range of cells that contains the conditions you specify. The range includes a column label and one cell below the label for a condition.
77
77
  */
78
- export declare function DVAR(database: AcceptError<IReferenceRange>, field: AcceptRefError<Scalar>, criteria: AcceptRefError<IRange>): Scalar;
78
+ export declare function DVAR(database: AcceptError<IReferenceRange>, field: NoLift<AcceptError<Scalar>>, criteria: AcceptError<IRange>): Scalar;
79
79
  /**
80
- * @summary Calculates variance based on the entire population of selected database entries.
80
+ * Calculates variance based on the entire population of selected database entries.
81
81
  * @param database is the range of cells that makes up the list or database. A database is a list of related data.
82
82
  * @param field is either the label of the column in double quotation marks or a number that represents the column's position in the list.
83
83
  * @param criteria is the range of cells that contains the conditions you specify. The range includes a column label and one cell below the label for a condition.
84
84
  */
85
- export declare function DVARP(database: AcceptError<IReferenceRange>, field: AcceptRefError<Scalar>, criteria: AcceptRefError<IRange>): Scalar;
85
+ export declare function DVARP(database: AcceptError<IReferenceRange>, field: NoLift<AcceptError<Scalar>>, criteria: AcceptError<IRange>): Scalar;
86
86
  //# sourceMappingURL=Database.d.ts.map
@@ -1,139 +1,348 @@
1
- import { AcceptError, Scalar, Flatten, Omittable } from '@sheetxl/primitives';
1
+ import { AcceptError, Scalar, Volatile, Flatten, Omittable, NoLift, ReportType } from '@sheetxl/primitives';
2
2
  /**
3
- * @summary Returns the number that represents the date in date-time code.
3
+ * Returns the number that represents the date in date-time code.
4
4
  * @param year is a number from 1900 or 1904 (depending on the workbook's date system) to 9999.
5
5
  * @param month is a number from 1 to 12 representing the month of the year.
6
6
  * @param day is a number from 1 to 31 representing the day of the month.
7
7
  */
8
8
  export declare function DATE(year: number, month: number, day: number): number;
9
9
  /**
10
- * @summary Converts a date in the form of text to a number that represents the date as a date-time code.
10
+ * Converts a date in the form of text to a number that represents the date as a date-time code.
11
11
  * @param dateText is text that represents a date in date format, between 1/1/1900 or 1/1/1904 (depending on the workbook's date system) and 12/31/9999.
12
12
  */
13
13
  export declare function DATEVALUE(dateText: string): number;
14
14
  /**
15
- * @summary Returns the day of the month, a number from 1 to 31.
15
+ * Returns the day of the month, a number from 1 to 31.
16
16
  * @param serialNumber is a number in the date-time code or text in time format, such as 16:48:00 or 4:48:00 PM.
17
17
  */
18
18
  export declare function DAY(serialNumber: number): number;
19
19
  /**
20
- * @summary Returns the number of days between the two dates.
20
+ * Returns the number of days between the two dates.
21
21
  * @param endDate startDate and endDate are the two dates between which you want to know the number of days.
22
22
  * @param startDate startDate and endDate are the two dates between which you want to know the number of days.
23
23
  */
24
- export declare function DAYS(endDate: number, // date
25
- startDate: number): number;
24
+ export declare function DAYS(endDate: Scalar, // date
25
+ startDate: Scalar): number;
26
26
  /**
27
- * @summary Returns the serial number of the date that is the indicated number of months before or after the start date.
27
+ * Returns the serial number of the date that is the indicated number of months before or after the start date.
28
28
  * @param startDate is a serial date number that represents the start date.
29
29
  * @param months is the number of months before or after startDate.
30
+ * @remarks
31
+ * The ATP refusal: `EDATE(A1:A3,1)` is `#VALUE!` — a multi-cell reference does not broadcast at
32
+ * an `any` slot — while an ARRAY constant still lifts. Shared with `EOMONTH` and `WEEKNUM`; the
33
+ * native `DAY`/`WEEKDAY`/`DAYS` of the same category all spill.
30
34
  */
31
- export declare function EDATE(startDate: Scalar, months: Scalar): number;
35
+ export declare function EDATE(startDate: NoLift<Omittable<Scalar>>, months: NoLift<Omittable<Scalar>>): number;
32
36
  /**
33
- * @summary Returns the serial number of the last day of the month before or after a specified number of months.
37
+ * Returns the serial number of the last day of the month before or after a specified number of months.
34
38
  * @param startDate is a serial date number that represents the start date.
35
39
  * @param months is the number of months before or after the startDate.
36
40
  */
37
- export declare function EOMONTH(startDate: Scalar, months: Scalar): number;
41
+ export declare function EOMONTH(startDate: NoLift<Omittable<Scalar>>, months: NoLift<Omittable<Scalar>>): number;
38
42
  /**
39
- * @summary Returns the hour as a number from 0 (12:00 A.M.) to 23 (11:00 P.M.).
43
+ * Returns the hour as a number from 0 (12:00 A.M.) to 23 (11:00 P.M.).
40
44
  * @param serialNumber is a number in the date-time code or text in time format, such as 16:48:00 or 4:48:00 PM.
41
45
  */
42
46
  export declare function HOUR(serialNumber: number): number;
43
47
  /**
44
- * @summary Returns the ISO week number in the year for a given date.
48
+ * Returns the ISO week number in the year for a given date.
45
49
  * @param date is a number in the date-time code or text in time format, such as 16:48:00 or 4:48:00 PM.
46
50
  */
47
51
  export declare function ISOWEEKNUM(date: number): number;
48
52
  /**
49
- * @summary Returns the minute, a number from 0 to 59.
53
+ * Returns the minute, a number from 0 to 59.
50
54
  * @param serialNumber is a number in the date-time code or text in time format, such as 16:48:00 or 4:48:00 PM.
51
55
  */
52
56
  export declare function MINUTE(serialNumber: number): number;
53
57
  /**
54
- * @summary Returns the month, a number from 1 (January) to 12 (December).
58
+ * Returns the month, a number from 1 (January) to 12 (December).
55
59
  * @param serialNumber is a number in the date-time code or text in date format.
56
60
  */
57
61
  export declare function MONTH(serialNumber: number): number;
58
62
  /**
59
- * @summary Returns the number of whole workdays between two dates.
63
+ * Returns the number of whole workdays between two dates.
60
64
  * @param startDate is a serial date number that represents the start date.
61
65
  * @param endDate is a serial date number that represents the end date.
62
66
  * @param holidays is an optional set of one or more serial date numbers to exclude from the working calendar, such as state and federal holidays and floating holidays.
63
67
  */
64
- export declare function NETWORKDAYS(startDate: number, // date
65
- endDate: number, // date
66
- holidays?: Omittable<Flatten<Scalar>>): number;
68
+ export declare function NETWORKDAYS(startDate: NoLift<Omittable<AcceptError<Scalar>>>, // date
69
+ endDate: NoLift<Omittable<AcceptError<Scalar>>>, // date
70
+ holidays?: Omittable<Flatten<AcceptError<Scalar>>>): number;
67
71
  /**
72
+ * The days a weekend falls on, for NETWORKDAYS.INTL and WORKDAY.INTL.
73
+ *
74
+ * @remarks
75
+ * Documents the codes only: the slot is `Weekend | Scalar`, because a seven-character mask
76
+ * (`"0000011"`, Monday first) is just as legal and the body reads either itself. No gate.
77
+ */
78
+ declare enum Weekend {
79
+ /**
80
+ * The weekend is Saturday and Sunday.
81
+ * @name Saturday, Sunday
82
+ */
83
+ SaturdaySunday = 1,
84
+ /**
85
+ * The weekend is Sunday and Monday.
86
+ * @name Sunday, Monday
87
+ */
88
+ SundayMonday = 2,
89
+ /**
90
+ * The weekend is Monday and Tuesday.
91
+ * @name Monday, Tuesday
92
+ */
93
+ MondayTuesday = 3,
94
+ /**
95
+ * The weekend is Tuesday and Wednesday.
96
+ * @name Tuesday, Wednesday
97
+ */
98
+ TuesdayWednesday = 4,
99
+ /**
100
+ * The weekend is Wednesday and Thursday.
101
+ * @name Wednesday, Thursday
102
+ */
103
+ WednesdayThursday = 5,
104
+ /**
105
+ * The weekend is Thursday and Friday.
106
+ * @name Thursday, Friday
107
+ */
108
+ ThursdayFriday = 6,
109
+ /**
110
+ * The weekend is Friday and Saturday.
111
+ * @name Friday, Saturday
112
+ */
113
+ FridaySaturday = 7,
114
+ /**
115
+ * The weekend is Sunday alone.
116
+ * @name Sunday only
117
+ */
118
+ SundayOnly = 11,
119
+ /**
120
+ * The weekend is Monday alone.
121
+ * @name Monday only
122
+ */
123
+ MondayOnly = 12,
124
+ /**
125
+ * The weekend is Tuesday alone.
126
+ * @name Tuesday only
127
+ */
128
+ TuesdayOnly = 13,
129
+ /**
130
+ * The weekend is Wednesday alone.
131
+ * @name Wednesday only
132
+ */
133
+ WednesdayOnly = 14,
134
+ /**
135
+ * The weekend is Thursday alone.
136
+ * @name Thursday only
137
+ */
138
+ ThursdayOnly = 15,
139
+ /**
140
+ * The weekend is Friday alone.
141
+ * @name Friday only
142
+ */
143
+ FridayOnly = 16,
144
+ /**
145
+ * The weekend is Saturday alone.
146
+ * @name Saturday only
147
+ */
148
+ SaturdayOnly = 17
149
+ }
150
+ /**
151
+ * Returns the number of whole workdays between two dates with custom weekend parameters.
68
152
  * @name NETWORKDAYS.INTL
69
- * @summary Returns the number of whole workdays between two dates with custom weekend parameters.
70
153
  * @param startDate is a serial date number that represents the start date.
71
154
  * @param endDate is a serial date number that represents the end date.
72
155
  * @param weekend is a number or string specifying when weekends occur.
73
156
  * @param holidays is an optional set of one or more serial date numbers to exclude from the working calendar, such as state and federal holidays and floating holidays.
74
157
  */
75
- export declare function NETWORKDAYS_INTL(startDate: number, // date
76
- endDate: number, // date
77
- weekend?: Omittable<AcceptError<Scalar>>, holidays?: Omittable<Flatten<Scalar>>): number;
158
+ export declare function NETWORKDAYS_INTL(startDate: NoLift<Omittable<AcceptError<Scalar>>>, // date
159
+ endDate: NoLift<Omittable<AcceptError<Scalar>>>, // date
160
+ weekend?: Omittable<AcceptError<Weekend | Scalar>>, holidays?: Omittable<Flatten<AcceptError<Scalar>>>): number;
78
161
  /**
79
- * @summary Returns the current date and time formatted as a date and time.
162
+ * Returns the current date and time formatted as a date and time.
80
163
  */
81
- export declare function NOW(): number;
164
+ export declare function NOW(): Volatile<number>;
82
165
  /**
83
- * @summary Returns the second, a number from 0 to 59.
166
+ * Returns the second, a number from 0 to 59.
84
167
  * @param serialNumber is a number in the date-time code or text in time format, such as 16:48:23 or 4:48:47 PM.
85
168
  */
86
169
  export declare function SECOND(serialNumber: number): number;
87
170
  /**
88
- * @summary Converts hours, minutes, and seconds given as numbers to a date code, formatted with a time format.
171
+ * Converts hours, minutes, and seconds given as numbers to a date code, formatted with a time format.
89
172
  * @param hour is a number from 0 to 23 representing the hour.
90
173
  * @param minute is a number from 0 to 59 representing the minute.
91
174
  * @param second is a number from 0 to 59 representing the second.
92
175
  */
93
176
  export declare function TIME(hour: number, minute: number, second: number): number;
94
177
  /**
95
- * @summary Converts a text time to a date code for a time, a number from 0 (12:00:00 AM) to 0.999988426 (11:59:59 PM). Format the number with a time format after entering the formula.
178
+ * Converts a text time to a date code for a time, a number from 0 (12:00:00 AM) to 0.999988426 (11:59:59 PM). Format the number with a time format after entering the formula.
96
179
  * @param timeText is a text string that gives a time in any one of the time formats (date information in the string is ignored).
97
180
  */
98
181
  export declare function TIMEVALUE(timeText: string): number;
99
182
  /**
100
- * @summary Returns the current date formatted as a date.
183
+ * Returns the current date formatted as a date.
184
+ */
185
+ export declare function TODAY(): Volatile<number>;
186
+ /**
187
+ * How WEEKDAY numbers the days of the week.
188
+ *
189
+ * @remarks
190
+ * Declared `ReportType`, as every numeric built-in enum is: Excel TRUNCATES this argument (`2.9`
191
+ * is 2) and answers #NUM! outside the set, which an enum's gate does not, so the body keeps the
192
+ * verdict. Members that mean the same thing share Excel's label (2 and 11, 1 and 17), and so share
193
+ * one descriptor entry.
101
194
  */
102
- export declare function TODAY(): number;
195
+ declare enum WeekdayType {
196
+ /**
197
+ * Sunday is 1 and Saturday is 7.
198
+ * @name Sunday (1) through Saturday (7)
199
+ */
200
+ SundayFirst = 1,
201
+ /**
202
+ * Monday is 1 and Sunday is 7.
203
+ * @name Monday (1) through Sunday (7)
204
+ */
205
+ MondayFirst = 2,
206
+ /**
207
+ * Monday is 0 and Sunday is 6.
208
+ * @name Monday (0) through Sunday (6)
209
+ */
210
+ MondayZero = 3,
211
+ /**
212
+ * Monday is 1 and Sunday is 7.
213
+ * @name Monday (1) through Sunday (7)
214
+ */
215
+ MondayOne = 11,
216
+ /**
217
+ * Tuesday is 1 and Monday is 7.
218
+ * @name Tuesday (1) through Monday (7)
219
+ */
220
+ TuesdayOne = 12,
221
+ /**
222
+ * Wednesday is 1 and Tuesday is 7.
223
+ * @name Wednesday (1) through Tuesday (7)
224
+ */
225
+ WednesdayOne = 13,
226
+ /**
227
+ * Thursday is 1 and Wednesday is 7.
228
+ * @name Thursday (1) through Wednesday (7)
229
+ */
230
+ ThursdayOne = 14,
231
+ /**
232
+ * Friday is 1 and Thursday is 7.
233
+ * @name Friday (1) through Thursday (7)
234
+ */
235
+ FridayOne = 15,
236
+ /**
237
+ * Saturday is 1 and Friday is 7.
238
+ * @name Saturday (1) through Friday (7)
239
+ */
240
+ SaturdayOne = 16,
241
+ /**
242
+ * Sunday is 1 and Saturday is 7.
243
+ * @name Sunday (1) through Saturday (7)
244
+ */
245
+ SundayOne = 17
246
+ }
103
247
  /**
104
- * @summary Returns a number from 1 to 7 identifying the day of the week of a date.
248
+ * Returns a number from 1 to 7 identifying the day of the week of a date.
105
249
  * @param serialNumber is a number that represents a date.
106
250
  * @param returnType is a number: for Sunday=1 through Saturday=7, use 1; for Monday=1 through Sunday=7, use 2; for Monday=0 through Sunday=6, use 3.
107
251
  */
108
252
  export declare function WEEKDAY(serialNumber: number, // date
109
- returnType?: number): number;
253
+ returnType?: ReportType<WeekdayType>): number;
254
+ /**
255
+ * The day a week begins on, for WEEKNUM.
256
+ *
257
+ * @remarks
258
+ * Documents the values only: the slot is `WeekNumType | Scalar`, because the body reads the raw
259
+ * argument itself (ATP coercion) — truncating, and answering #NUM! outside the set. No gate.
260
+ * Members that mean the same thing share a label (2 and 11, 1 and 17).
261
+ */
262
+ declare enum WeekNumType {
263
+ /**
264
+ * Weeks begin on Sunday; week 1 is the week containing January 1.
265
+ * @name Week begins on Sunday
266
+ */
267
+ Sunday = 1,
268
+ /**
269
+ * Weeks begin on Monday; week 1 is the week containing January 1.
270
+ * @name Week begins on Monday
271
+ */
272
+ Monday = 2,
273
+ /**
274
+ * Weeks begin on Monday; week 1 is the week containing January 1.
275
+ * @name Week begins on Monday
276
+ */
277
+ MondayStart = 11,
278
+ /**
279
+ * Weeks begin on Tuesday; week 1 is the week containing January 1.
280
+ * @name Week begins on Tuesday
281
+ */
282
+ TuesdayStart = 12,
283
+ /**
284
+ * Weeks begin on Wednesday; week 1 is the week containing January 1.
285
+ * @name Week begins on Wednesday
286
+ */
287
+ WednesdayStart = 13,
288
+ /**
289
+ * Weeks begin on Thursday; week 1 is the week containing January 1.
290
+ * @name Week begins on Thursday
291
+ */
292
+ ThursdayStart = 14,
293
+ /**
294
+ * Weeks begin on Friday; week 1 is the week containing January 1.
295
+ * @name Week begins on Friday
296
+ */
297
+ FridayStart = 15,
298
+ /**
299
+ * Weeks begin on Saturday; week 1 is the week containing January 1.
300
+ * @name Week begins on Saturday
301
+ */
302
+ SaturdayStart = 16,
303
+ /**
304
+ * Weeks begin on Sunday; week 1 is the week containing January 1.
305
+ * @name Week begins on Sunday
306
+ */
307
+ SundayStart = 17,
308
+ /**
309
+ * Weeks begin on Monday; week 1 is the week containing the first Thursday of the year.
310
+ * @name Week begins on Monday (ISO 8601)
311
+ */
312
+ Iso = 21
313
+ }
110
314
  /**
111
- * @summary Returns the week number in the year.
315
+ * Returns the week number in the year.
112
316
  * @param serialNumber is the date-time code used for date and time calculation.
113
317
  * @param returnType is a number (1 or 2) that determines the type of the return value.
318
+ * @remarks
319
+ * The ATP refusal is WEEKNUM's alone in this category: `WEEKNUM(A1:A3,1)` is `#VALUE!` while
320
+ * `ISOWEEKNUM(A1:A3)`, `WEEKDAY(A1:A3,1)` and `DAYS(A1:A3,x)` all spill, and an ARRAY constant
321
+ * still lifts here (`WEEKNUM({43496;43497},1)` spills two).
114
322
  */
115
- export declare function WEEKNUM(serialNumber: Omittable<Scalar>, returnType?: Omittable<Scalar>): number;
323
+ export declare function WEEKNUM(serialNumber: NoLift<Omittable<Scalar>>, returnType?: NoLift<Omittable<WeekNumType | Scalar>>): number;
116
324
  /**
117
- * @summary Returns the serial number of the date before or after a specified number of workdays.
325
+ * Returns the serial number of the date before or after a specified number of workdays.
118
326
  * @param startDate is a serial date number that represents the start date.
119
327
  * @param days is the number of nonweekend and non-holiday days before or after startDate.
120
328
  * @param holidays is an optional array of one or more serial date numbers to exclude from the working calendar, such as state and federal holidays and floating holidays.
121
329
  */
122
- export declare function WORKDAY(startDate: number, // date
123
- days: number, holidays?: Omittable<Flatten<Scalar>>): number;
330
+ export declare function WORKDAY(startDate: NoLift<Omittable<Scalar>>, // date
331
+ days: NoLift<Omittable<Scalar>>, holidays?: Omittable<Flatten<Scalar>>): number;
124
332
  /**
333
+ * Returns the serial number of the date before or after a specified number of workdays with custom weekend parameters.
125
334
  * @name WORKDAY.INTL
126
- * @summary Returns the serial number of the date before or after a specified number of workdays with custom weekend parameters.
127
335
  * @param startDate is a serial date number that represents the start date.
128
336
  * @param days is the number of nonweekend and non-holiday days before or after startDate.
129
337
  * @param weekend is a number or string specifying when weekends occur.
130
338
  * @param holidays is an optional array of one or more serial date numbers to exclude from the working calendar, such as state and federal holidays and floating holidays.
131
339
  */
132
- export declare function WORKDAY_INTL(startDate: number, // date
133
- days: number, weekend?: Omittable<AcceptError<Scalar>>, holidays?: Omittable<Flatten<Scalar>>): number;
340
+ export declare function WORKDAY_INTL(startDate: NoLift<Omittable<Scalar>>, // date
341
+ days: NoLift<Omittable<Scalar>>, weekend?: NoLift<Omittable<AcceptError<Weekend | Scalar>>>, holidays?: Omittable<Flatten<Scalar>>): number;
134
342
  /**
135
- * @summary Returns the year of a date, an integer in the range 1900 - 9999.
343
+ * Returns the year of a date, an integer in the range 1900 - 9999.
136
344
  * @param serialNumber is a number in the date-time code used for date and time calculation.
137
345
  */
138
346
  export declare function YEAR(serialNumber: number): number;
347
+ export {};
139
348
  //# sourceMappingURL=Date.d.ts.map