/** * ICU MessageFormat support for the i18n module. * * Implements the subset of ICU MessageFormat that bQuery commits to as a * documented, stable contract: * * - **Simple arguments** — `{name}` * - **`plural`** — cardinal plurals via `Intl.PluralRules`, with `offset:N`, * exact `=N` selectors, and the `#` token (locale-formatted `value - offset`) * - **`selectordinal`** — ordinal plurals via `Intl.PluralRules` (`{ type: 'ordinal' }`) * - **`select`** — keyed string selection (e.g. grammatical gender) * - **Nested arguments** — sub-messages may contain further arguments and `#` * - **Apostrophe escaping** — `'{'`, `'}'`, `'#'` literals and `''` for a literal apostrophe * * Inline `number`/`date`/`time` argument types (skeletons) are intentionally * **not** supported — use the instance `n()` / `d()` helpers instead. See the * i18n guide for the full coverage statement and its known limitations. * * @module bquery/i18n * @internal */ import type { TranslateParams } from './types'; /** * Detects whether a template uses ICU MessageFormat typed arguments * (`plural`, `selectordinal`, or `select`). Plain `{name}` interpolation and * pipe-delimited plurals are deliberately excluded so the legacy fast path * stays untouched. * * @internal */ export declare const isICUMessage: (template: string) => boolean; /** * Formats an ICU MessageFormat string. Parsed ASTs are cached by template so * repeated translations of the same key avoid re-parsing. * * @internal */ export declare const formatICU: (template: string, params: TranslateParams, locale: string) => string; //# sourceMappingURL=icu.d.ts.map