/** * Shared money formatter for the kit's "price in minor units" convention. * * Every component that renders a price takes the amount as an integer in * the smallest currency unit (cents / centesimi) plus an ISO-4217 * `currencyCode`, and the KIT does the formatting — the consumer never * hands the kit a pre-rendered string. Lifted from the file-local * duplicate in `contact-profile-card.tsx` when PracticeResults adopted * the same convention, so both surfaces render an identical price for * identical input. * * Not to be confused with `formatPaymentAmount` (payment-form): that one * is the checkout formatter and falls back to an `en` currency string so * a raw integer can never leak into a payment UI. This is the lightweight * leaf helper for read-only price captions — it lives in `_shared` so a * SERP card can use it without pulling the payment-form module graph in. * Both apply the same zero-decimal divisor rule; only the failure * behaviour differs. */ export declare function formatPrice(minorUnits: number, currency: string, locale: string): string; /** * A first-visit price caption: `0` means the visit is free, so it reads as * the caller's translated word ("Free" / "Gratuito"), never as "€0.00". * Any other amount goes through {@link formatPrice} unchanged. */ export declare function formatPriceOrFree(minorUnits: number, currency: string, locale: string, freeLabel: string): string; /** * The same amount as {@link formatPrice}, but broken into its typed parts so * a renderer can treat the fraction differently from the rest. * * Splitting a formatted price with a regex is not safe across locales: in * `it-IT` the group separator is `.` and the decimal is `,`, so `1.000 €` * would read as a fraction of `000` and a "drop the zero fraction" rule * would render it as `1 €`. `Intl.NumberFormat.formatToParts` labels each * piece, so the fraction is whatever the locale says it is, wherever it * sits relative to the currency symbol. * * Returns `null` when the locale or currency is rejected — callers fall * back to {@link formatPrice}, which keeps the zero-decimal rule. */ export declare function formatPriceParts(minorUnits: number, currency: string, locale: string, options?: Pick): Intl.NumberFormatPart[] | null; //# sourceMappingURL=format-price.d.ts.map