import type { RoundingMode } from "./RoundingMode.js"; import type { RoundingPriority } from "./RoundingPriority.js"; import type { SignDisplay } from "./SignDisplay.js"; import type { TrailingZeroDisplay } from "./TrailingZeroDisplay.js"; import type { UseGrouping } from "./UseGrouping.js"; /** * A numeric column's `number_format` (`columns_config` value) — * `Intl.NumberFormat`-shaped options, written by the Style tab's number * format editor and read by `createNumberFormatter`. The `style` and * `notation` families ([`NumberFormatStyle`] / [`Notation`]) are serde- * FLATTENED into this object but `#[ts(skip)]`'d (ts-rs cannot flatten * `Option`) — the package's `NumberFormatConfig` re-composes the * full wire type as `CustomNumberFormatConfig & Partial * & Partial` (see `column-format.ts`). */ export type CustomNumberFormatConfig = { minimumIntegerDigits?: number | null; minimumFractionDigits?: number | null; maximumFractionDigits?: number | null; minimumSignificantDigits?: number | null; maximumSignificantDigits?: number | null; roundingPriority?: RoundingPriority | null; roundingIncrement?: number | null; roundingMode?: RoundingMode | null; trailingZeroDisplay?: TrailingZeroDisplay | null; /** * NOTE (audit 2026-08-05): serialized values are the STRINGS * `"always"`/`"auto"`/`"min2"` or the untagged BOOLEAN `false` — * the former hand-written TS `useGrouping?: boolean` was wrong for * the string cases. */ useGrouping?: UseGrouping | null; signDisplay?: SignDisplay | null; };