/** * Platform currency registry (v1: CZK + EUR, all exponent 2). * Extensible via this module + seed — not a Prisma enum. */ export declare const CURRENCY_CODES: readonly ["CZK", "EUR"]; export type CurrencyCode = (typeof CURRENCY_CODES)[number]; export declare const PLATFORM_DEFAULT_CURRENCY: CurrencyCode; export declare const CURRENCY_MINOR_EXPONENT: 2; export type CurrencyAcceptanceMode = 'SINGLE' | 'MULTI'; export declare function isCurrencyCode(value: unknown): value is CurrencyCode; /** Runtime shopper initial: CZK if allowed, else sole allow-list currency. */ export declare function resolveRuntimeDefaultCurrency(allowedCurrencies: readonly string[]): CurrencyCode | null; export declare function assertCurrencyCode(value: string): CurrencyCode; /** Normalize SP/tenant accepted list to registry codes (deduped, uppercased). */ export declare function normalizeAcceptedCurrencies(acceptedCurrencies: readonly string[] | null | undefined): CurrencyCode[]; /** * Prefer tenant defaultCurrency if registry (+ ⊆ allow when allow non-empty); else runtime-default of allow; else PLATFORM_DEFAULT_CURRENCY. */ export declare function resolveHealPreferredDefault(input: { readonly defaultCurrency?: string | null; readonly allowedCurrencies?: readonly string[] | null; }): CurrencyCode; /** * Non-empty accepted list for public shop/checkout. * Prefer SP accepted when non-empty (preferredDefault ignored — only used when accepted empty); * else preferredDefault if registry; else CZK. */ export declare function ensureAcceptedCurrenciesForCheckout(acceptedCurrencies: readonly string[] | null | undefined, preferredDefault?: string | null): CurrencyCode[]; /** * Show checkout currency picker when SP is MULTI and ≥2 accepted currencies. */ export declare function shouldShowCheckoutCurrencyPicker(mode: string | null | undefined, acceptedCurrencies: readonly string[] | null | undefined): boolean; export interface CatalogPriceRowLike { readonly currency: string; readonly amountMajor: number; } /** * Dual list prices: prefer ProductPrice-shaped row matching session currency. * When session currency is set: never soft-fall back to Product.price for a * missing currency (esp. EUR) — that would show a CZK-shaped amount. * Legacy `price` fallback only when session currency is absent/empty, or when * prices[] was never projected and session is CZK (admin/list convenience). */ export declare function resolveCatalogUnitPriceMajor(product: { readonly price: number; readonly prices?: readonly CatalogPriceRowLike[] | null; }, sessionCurrency: string | null | undefined): number; //# sourceMappingURL=index.d.ts.map