export type SupportedCurrency = 'CHF' | 'DKK' | 'EUR'; export declare const SUPPORTED_CURRENCIES: SupportedCurrency[]; export declare const BASE_CURRENCY: SupportedCurrency; /** * CHF-based exchange rates. `rates[currency]` is "how many units of * `currency` equal 1 CHF" — so `rates.CHF` is always `1`. */ export interface CurrencyRates { base: 'CHF'; rates: Record; fetchedAt: number; } /** * Live CHF-based exchange rates for DKK/EUR, sourced from the Frankfurter API * (ECB reference rates — the same market rates Google Finance quotes). Used * to convert the CHF-denominated pricing model into a user's preferred * display currency; billing itself always stays in CHF. */ export declare class CueCurrency { private _cached; private _pending; /** * Fetches the current rates, cached in-memory for one hour. Concurrent * calls share a single in-flight request. If a refetch fails and a * previous rate set is cached, the stale rates are served instead of * throwing — a transient network blip shouldn't break the pricing UI. */ getRates(forceRefresh?: boolean): Promise; private _fetchRates; /** Converts an amount in CHF into `currency` using `rates`. */ fromBase(amountChf: number, currency: SupportedCurrency, rates: CurrencyRates): number; /** Converts an amount in `currency` back into CHF using `rates`. */ toBase(amount: number, currency: SupportedCurrency, rates: CurrencyRates): number; }