/** * Range guard — the throwing counterpart of the scale-range producers. * * A precondition validator in the same family as `parseCardinalValue` / * `resolveOptions`: the language calls it and it throws on a value past the * form's ceiling, e.g. `checkMax(integerPart, cardinalMax, decimalPart)`. The * `*Max` it consumes is produced by the pure helpers in `scale.js`. * @module check-max */ /** * Throws a `RangeError` when `value` — or its integer-spelled fraction — * reaches a form's ceiling (`max`, the smallest value the form refuses). * * Runs at the entry point: an O(1) short-circuit before any spelling is built — * the in-range path is just the bigint comparison, plus a single * `BigInt(fraction)` parse when an integer-spelled fraction is supplied. The * message renders `10^N - 1` when the ceiling is an exact power of ten, * otherwise the raw maximum. * @param {bigint} value The integer magnitude to test (integer part, dollars, …) * @param {bigint | null} max The form's ceiling, or `null` for no limit (never throws) * @param {string} [fraction] The decimal digit string — pass it **only** when the * fraction is spelled via the scale builder; digit-by-digit and ordinal / * currency forms omit it so long fractions stay valid. * @throws {RangeError} when the value is out of range */ export declare function checkMax(value: bigint, max: bigint | null, fraction?: string): void;