@mixxtor/currencyx-js
Version:
Modern TypeScript currency converter with type inference and multiple providers (Google Finance, Fixer.io). Framework agnostic with clean architecture.
1,376 lines (1,375 loc) • 268 kB
TypeScript
/**
* Main contract that all currency exchanges must implement
*/
interface CurrencyExchangeContract {
/**
* Base currency code. Default is 'USD'.
*/
base: CurrencyCode;
/**
* Get supported currencies
*/
getList(): CurrencyInfo[];
/**
* Set base currency
*/
setBase?(currency: CurrencyCode): this;
/**
* Set API key (if required by exchange)
*/
setKey?(key: string): this;
/**
* Retrieves the latest currency conversion rates.
*
* @param {ExchangeRatesParams} params - The parameters for getting exchange rates.
* @param {CurrencyCode} params.base - The base currency code to retrieve rates for.
* @param {CurrencyCode[]} params.codes - The currency codes to retrieve rates for.
*/
latestRates(params?: ExchangeRatesParams): Promise<ExchangeRatesResult>;
/**
* Retrieves the currency conversion rate.
*
* @param {ConvertParams} params - The parameters for converting currency.
* @param {number} params.amount - The amount to convert.
* @param {CurrencyCode} params.from - The currency code to convert from.
* @param {CurrencyCode} params.to - The currency code to convert to. Defaults to 'USD'.
*/
convert(params: ConvertParams): Promise<ConversionResult>;
/**
* Retrieves the currency conversion rate.
*
* @param {CurrencyCode} from - The currency code to convert from.
* @param {CurrencyCode} to - The currency code to convert to. Defaults to 'USD'.
*/
getConvertRate(from: CurrencyCode, to: CurrencyCode, currencyList?: Record<string, any>[]): Promise<number | undefined>;
/**
* Round currency value
*
* @param {number} value - Currency value
* @param {TRoundOptions} options
* @param {number} options.precision - Decimal precision
* @param {string} options.direction - Round direction
*/
round(value: number, options?: TRoundOptions): number;
}
declare abstract class BaseCurrencyExchange implements CurrencyExchangeContract {
/**
* Exchange name - must be implemented by subclasses
*/
abstract readonly name: string;
/**
* Base currency code. Default is 'USD'.
*/
base: CurrencyCode;
/**
* Get all supported currency codes
*/
get currencies(): ("AED" | "AFN" | "ALL" | "AMD" | "ANG" | "AOA" | "ARS" | "AUD" | "AWG" | "AZN" | "BAM" | "BBD" | "BDT" | "BGN" | "BHD" | "BIF" | "BMD" | "BND" | "BOB" | "BRL" | "BSD" | "BTC" | "BTN" | "BWP" | "BYR" | "BYN" | "BZD" | "CAD" | "CDF" | "CHF" | "CLF" | "CLP" | "CNY" | "COP" | "CRC" | "CUC" | "CUP" | "CVE" | "CZK" | "DJF" | "DKK" | "DOP" | "DZD" | "EGP" | "ERN" | "ETB" | "EUR" | "FJD" | "FKP" | "GBP" | "GEL" | "GHS" | "GIP" | "GMD" | "GNF" | "GTQ" | "GYD" | "HKD" | "HNL" | "HRK" | "HTG" | "HUF" | "IDR" | "ILS" | "INR" | "IQD" | "IRR" | "ISK" | "JMD" | "JOD" | "JPY" | "KES" | "KGS" | "KHR" | "KMF" | "KPW" | "KRW" | "KWD" | "KYD" | "KZT" | "LAK" | "LBP" | "LKR" | "LRD" | "LSL" | "LTL" | "LVL" | "LYD" | "MAD" | "MDL" | "MGA" | "MKD" | "MMK" | "MNT" | "MOP" | "MRO" | "MUR" | "MVR" | "MWK" | "MXN" | "MYR" | "MZN" | "NAD" | "NGN" | "NIO" | "NOK" | "NPR" | "NZD" | "OMR" | "PAB" | "PEN" | "PGK" | "PHP" | "PKR" | "PLN" | "PYG" | "QAR" | "RON" | "RUB" | "RWF" | "SAR" | "SBD" | "SCR" | "SDG" | "SEK" | "SGD" | "SHP" | "SOS" | "SRD" | "STN" | "STD" | "SVC" | "SYP" | "SZL" | "THB" | "TJS" | "TMT" | "TND" | "TOP" | "TRY" | "TTD" | "TWD" | "TZS" | "UAH" | "UGX" | "USD" | "UYU" | "UZS" | "VED" | "VEF" | "VND" | "VUV" | "WST" | "XAF" | "XAG" | "XAU" | "XCD" | "XDR" | "XOF" | "XPF" | "YER" | "ZAR" | "ZMK" | "ZMW" | "ZWL")[];
/**
* Get all constant currencies
*/
getList(): ({
readonly code: "AED";
readonly numeric_code: "784";
readonly name: "United Arab Emirates dirham";
readonly symbol: "د.إ";
readonly round: 1;
readonly decimal: 2;
readonly delimiter: ".";
readonly short_format: "Dhs. {{amount}}";
readonly explicit_format: "Dhs. {{amount}} AED";
readonly countries: readonly ["AE"];
} | {
readonly code: "AFN";
readonly numeric_code: "971";
readonly name: "Afghan afghani";
readonly symbol: "؋";
readonly round: 100;
readonly decimal: 2;
readonly delimiter: ",";
readonly short_format: "{{amount}}؋";
readonly explicit_format: "{{amount}}؋ AFN";
readonly countries: readonly ["AF"];
} | {
readonly code: "ALL";
readonly numeric_code: "008";
readonly name: "Albanian lek";
readonly symbol: "Lek";
readonly round: 100;
readonly decimal: 2;
readonly delimiter: ",";
readonly short_format: "Lek {{amount}}";
readonly explicit_format: "Lek {{amount}} ALL";
readonly countries: readonly ["AL"];
} | {
readonly code: "AMD";
readonly numeric_code: "051";
readonly name: "Armenian dram";
readonly symbol: "֏";
readonly round: 100;
readonly decimal: 2;
readonly delimiter: ",";
readonly short_format: "{{amount}} AMD";
readonly explicit_format: "{{amount}} AMD";
readonly countries: readonly ["AM"];
} | {
readonly code: "ANG";
readonly numeric_code: "532";
readonly name: "Netherlands Antillean guilder";
readonly symbol: "ƒ";
readonly round: 1;
readonly decimal: 2;
readonly delimiter: ",";
readonly short_format: "ƒ;{{amount}}";
readonly explicit_format: "{{amount}} NAƒ;";
readonly countries: readonly ["CW", "SX"];
} | {
readonly code: "AOA";
readonly numeric_code: "973";
readonly name: "Angolan kwanza";
readonly symbol: "Kz";
readonly round: 100;
readonly decimal: 2;
readonly delimiter: ",";
readonly short_format: "Kz{{amount}}";
readonly explicit_format: "Kz{{amount}} AOA";
readonly countries: readonly ["AO"];
} | {
readonly code: "ARS";
readonly numeric_code: "032";
readonly name: "Argentine peso";
readonly symbol: "AR$";
readonly round: 1;
readonly decimal: 2;
readonly delimiter: ",";
readonly short_format: "${{amount}}";
readonly explicit_format: "${{amount}} ARS";
readonly countries: readonly ["AR"];
} | {
readonly code: "AUD";
readonly numeric_code: "036";
readonly name: "Australian dollar";
readonly symbol: "AU$";
readonly round: 1;
readonly decimal: 2;
readonly delimiter: ",";
readonly short_format: "${{amount}}";
readonly explicit_format: "${{amount}} AUD";
readonly countries: readonly ["AU", "CX", "CC", "HM", "KI", "NR", "NF", "TV"];
} | {
readonly code: "AWG";
readonly numeric_code: "533";
readonly name: "Aruban florin";
readonly symbol: "Afl.";
readonly round: 1;
readonly decimal: 2;
readonly delimiter: ",";
readonly short_format: "Afl{{amount}}";
readonly explicit_format: "Afl{{amount}} AWG";
readonly countries: readonly ["AW"];
} | {
readonly code: "AZN";
readonly numeric_code: "944";
readonly name: "Azerbaijani manat";
readonly symbol: "₼";
readonly round: 1;
readonly decimal: 2;
readonly delimiter: ",";
readonly short_format: "m.{{amount}}";
readonly explicit_format: "m.{{amount}} AZN";
readonly countries: readonly ["AZ"];
} | {
readonly code: "BAM";
readonly numeric_code: "977";
readonly name: "Bosnia and Herzegovina convertible mark";
readonly symbol: "KM";
readonly round: 1;
readonly decimal: 2;
readonly delimiter: ",";
readonly short_format: "KM {{amount}}";
readonly explicit_format: "KM {{amount}} BAM";
readonly countries: readonly ["BA"];
} | {
readonly code: "BBD";
readonly numeric_code: "052";
readonly name: "Barbados dollar";
readonly symbol: "$";
readonly round: 1;
readonly decimal: 2;
readonly delimiter: ",";
readonly short_format: "${{amount}}";
readonly explicit_format: "${{amount}} Bds";
readonly countries: readonly ["BB"];
} | {
readonly code: "BDT";
readonly numeric_code: "050";
readonly name: "Bangladeshi taka";
readonly symbol: "৳";
readonly round: 100;
readonly decimal: 2;
readonly delimiter: ",";
readonly short_format: "Tk {{amount}}";
readonly explicit_format: "Tk {{amount}} BDT";
readonly countries: readonly ["BD"];
} | {
readonly code: "BGN";
readonly numeric_code: "975";
readonly name: "Bulgarian lev";
readonly symbol: "лв";
readonly round: 1;
readonly decimal: 2;
readonly delimiter: ",";
readonly short_format: "{{amount}} лв";
readonly explicit_format: "{{amount}} лв BGN";
readonly countries: readonly ["BG"];
} | {
readonly code: "BHD";
readonly numeric_code: "048";
readonly name: "Bahraini dinar";
readonly symbol: ".د.ب";
readonly round: 0;
readonly decimal: 0;
readonly delimiter: ",";
readonly short_format: "{{amount}} BD";
readonly explicit_format: "{{amount}} BHD";
readonly countries: readonly ["BH"];
} | {
readonly code: "BIF";
readonly numeric_code: "108";
readonly name: "Burundian franc";
readonly symbol: "FBu";
readonly round: 1000;
readonly decimal: 0;
readonly delimiter: ",";
readonly short_format: "FBu. {{amount}}";
readonly explicit_format: "FBu. {{amount}} BIF";
readonly countries: readonly ["BI"];
} | {
readonly code: "BMD";
readonly numeric_code: "060";
readonly name: "Bermudian dollar";
readonly symbol: "$";
readonly round: 1;
readonly decimal: 2;
readonly delimiter: ",";
readonly short_format: "BD${{amount}}";
readonly explicit_format: "BD${{amount}} BMD";
readonly countries: readonly ["BM"];
} | {
readonly code: "BND";
readonly numeric_code: "096";
readonly name: "Brunei dollar";
readonly symbol: "BN$";
readonly round: 1;
readonly decimal: 2;
readonly delimiter: ",";
readonly short_format: "${{amount}}";
readonly explicit_format: "${{amount}} BND";
readonly countries: readonly ["BN"];
} | {
readonly code: "BOB";
readonly numeric_code: "068";
readonly name: "Boliviano";
readonly symbol: "Bs";
readonly round: 1;
readonly decimal: 2;
readonly delimiter: ",";
readonly short_format: "Bs{{amount}}";
readonly explicit_format: "Bs{{amount}} BOB";
readonly countries: readonly ["BO"];
} | {
readonly code: "BRL";
readonly numeric_code: "986";
readonly name: "Brazilian real";
readonly symbol: "R$";
readonly round: 1;
readonly decimal: 2;
readonly delimiter: ",";
readonly short_format: "R$ {{amount}}";
readonly explicit_format: "R$ {{amount}} BRL";
readonly countries: readonly ["BR"];
} | {
readonly code: "BSD";
readonly numeric_code: "044";
readonly name: "Bahamian dollar";
readonly symbol: "$";
readonly round: 1;
readonly decimal: 2;
readonly delimiter: ",";
readonly short_format: "BS${{amount}}";
readonly explicit_format: "BS${{amount}} BSD";
readonly countries: readonly ["BS"];
} | {
readonly code: "BTC";
readonly numeric_code: "BTC";
readonly name: "Bitcoin";
readonly symbol: "₿";
readonly round: 9999999;
readonly decimal: 111111;
readonly delimiter: "DE_LI";
readonly short_format: "FORSHRT";
readonly explicit_format: "FORMEX";
readonly countries: readonly [];
} | {
readonly code: "BTN";
readonly numeric_code: "064";
readonly name: "Bhutanese ngultrum";
readonly symbol: "Nu.";
readonly round: 0;
readonly decimal: 0;
readonly delimiter: ",";
readonly short_format: "Nu {{amount}}";
readonly explicit_format: "Nu {{amount}} BTN";
readonly countries: readonly ["BT"];
} | {
readonly code: "BWP";
readonly numeric_code: "072";
readonly name: "Botswana pula";
readonly symbol: "P";
readonly round: 1;
readonly decimal: 2;
readonly delimiter: ",";
readonly short_format: "P{{amount}}";
readonly explicit_format: "P{{amount}} BWP";
readonly countries: readonly ["BW"];
} | {
readonly code: "BYR";
readonly numeric_code: "974";
readonly name: "Belarusian ruble (pre-2016)";
readonly symbol: "Rbl";
readonly round: 0;
readonly decimal: 0;
readonly delimiter: ",";
readonly short_format: "Br {{amount}}";
readonly explicit_format: "Br {{amount}} BYR";
readonly countries: readonly ["BY"];
} | {
readonly code: "BYN";
readonly numeric_code: "933";
readonly name: "Belarusian ruble";
readonly symbol: "Rbl";
readonly round: 0;
readonly decimal: 0;
readonly delimiter: ",";
readonly short_format: "Br {{amount}}";
readonly explicit_format: "Br {{amount}} BYN";
readonly countries: readonly ["BY"];
} | {
readonly code: "BZD";
readonly numeric_code: "084";
readonly name: "Belize dollar";
readonly symbol: "BZ$";
readonly round: 1;
readonly decimal: 2;
readonly delimiter: ",";
readonly short_format: "BZ${{amount}}";
readonly explicit_format: "BZ${{amount}} BZD";
readonly countries: readonly ["BZ"];
} | {
readonly code: "CAD";
readonly numeric_code: "124";
readonly name: "Canadian dollar";
readonly symbol: "CA$";
readonly round: 1;
readonly decimal: 2;
readonly delimiter: ",";
readonly short_format: "${{amount}}";
readonly explicit_format: "${{amount}} CAD";
readonly countries: readonly ["CA"];
} | {
readonly code: "CDF";
readonly numeric_code: "976";
readonly name: "Congolese franc";
readonly symbol: "FC";
readonly round: 1000;
readonly decimal: 2;
readonly delimiter: ",";
readonly short_format: "FC{{amount}}";
readonly explicit_format: "FC{{amount}} CDF";
readonly countries: readonly ["CD"];
} | {
readonly code: "CHF";
readonly numeric_code: "756";
readonly name: "Swiss franc";
readonly symbol: "S₣";
readonly round: 1;
readonly decimal: 2;
readonly delimiter: ",";
readonly short_format: "S₣{{amount}}";
readonly explicit_format: "S₣{{amount}} CHF";
readonly countries: readonly ["CH", "LI"];
} | {
readonly code: "CLF";
readonly numeric_code: "990";
readonly name: "Chilean Unit of Account (UF)";
readonly symbol: "UF";
readonly round: 0;
readonly decimal: 0;
readonly delimiter: ",";
readonly short_format: "UF {{amount}}";
readonly explicit_format: "UF{{amount}} CLF";
readonly countries: readonly ["CL"];
} | {
readonly code: "CLP";
readonly numeric_code: "152";
readonly name: "Chilean peso";
readonly symbol: "CL$";
readonly round: 100;
readonly decimal: 0;
readonly delimiter: ",";
readonly short_format: "${{amount}}";
readonly explicit_format: "${{amount}} CLP";
readonly countries: readonly ["CL"];
} | {
readonly code: "CNY";
readonly numeric_code: "156";
readonly name: "Renminbi";
readonly symbol: "CN¥";
readonly round: 1;
readonly decimal: 2;
readonly delimiter: ",";
readonly short_format: "¥{{amount}}";
readonly explicit_format: "¥{{amount}} CNY";
readonly countries: readonly ["CN"];
} | {
readonly code: "COP";
readonly numeric_code: "170";
readonly name: "Colombian peso";
readonly symbol: "CO$";
readonly round: 1000;
readonly decimal: 2;
readonly delimiter: ",";
readonly short_format: "${{amount}}";
readonly explicit_format: "${{amount}} COP";
readonly countries: readonly ["CO"];
} | {
readonly code: "CRC";
readonly numeric_code: "188";
readonly name: "Costa Rican colon";
readonly symbol: "₡";
readonly round: 100;
readonly decimal: 2;
readonly delimiter: ",";
readonly short_format: "₡{{amount}}";
readonly explicit_format: "₡ {{amount}} CRC";
readonly countries: readonly ["CR"];
} | {
readonly code: "CUC";
readonly numeric_code: "931";
readonly name: "Cuban convertible peso (pre-2022)";
readonly symbol: "$";
readonly round: 0;
readonly decimal: 0;
readonly delimiter: ",";
readonly short_format: "${{amount}}";
readonly explicit_format: "CUC${{amount}} CUC";
readonly countries: readonly ["CU"];
} | {
readonly code: "CUP";
readonly numeric_code: "192";
readonly name: "Cuban peso";
readonly symbol: "$";
readonly round: 10;
readonly decimal: 2;
readonly delimiter: ",";
readonly short_format: "${{amount}}";
readonly explicit_format: "$MN {{amount}} CUP";
readonly countries: readonly ["CU"];
} | {
readonly code: "CVE";
readonly numeric_code: "132";
readonly name: "Cape Verdean escudo";
readonly symbol: "CV$";
readonly round: 100;
readonly decimal: 2;
readonly delimiter: ",";
readonly short_format: "{{amount}}$";
readonly explicit_format: "{{amount}}$ CVE";
readonly countries: readonly ["CV"];
} | {
readonly code: "CZK";
readonly numeric_code: "203";
readonly name: "Czech koruna";
readonly symbol: "Kč";
readonly round: 1;
readonly decimal: 2;
readonly delimiter: ",";
readonly short_format: "{{amount}} Kč";
readonly explicit_format: "{{amount}} Kč";
readonly countries: readonly ["CZ"];
} | {
readonly code: "DJF";
readonly numeric_code: "262";
readonly name: "Djiboutian franc";
readonly symbol: "Fdj";
readonly round: 100;
readonly decimal: 0;
readonly delimiter: ",";
readonly short_format: "{{amount}} Fdj";
readonly explicit_format: "{{amount}} DJF";
readonly countries: readonly ["DJ"];
} | {
readonly code: "DKK";
readonly numeric_code: "208";
readonly name: "Danish krone";
readonly symbol: "kr.";
readonly round: 1;
readonly decimal: 2;
readonly delimiter: ",";
readonly short_format: "{{amount}} kr";
readonly explicit_format: "{{amount}} DKK";
readonly countries: readonly ["DK", "FO", "GL"];
} | {
readonly code: "DOP";
readonly numeric_code: "214";
readonly name: "Dominican peso";
readonly symbol: "RD$";
readonly round: 100;
readonly decimal: 2;
readonly delimiter: ",";
readonly short_format: "RD$ {{amount}}";
readonly explicit_format: "RD$ {{amount}}";
readonly countries: readonly ["DO"];
} | {
readonly code: "DZD";
readonly numeric_code: "012";
readonly name: "Algerian dinar";
readonly symbol: "DA";
readonly round: 100;
readonly decimal: 2;
readonly delimiter: ",";
readonly short_format: "DA {{amount}}";
readonly explicit_format: "DA {{amount}} DZD";
readonly countries: readonly ["DZ"];
} | {
readonly code: "EGP";
readonly numeric_code: "818";
readonly name: "Egyptian pound";
readonly symbol: "E£";
readonly round: 1;
readonly decimal: 2;
readonly delimiter: ",";
readonly short_format: "LE {{amount}}";
readonly explicit_format: "LE {{amount}} EGP";
readonly countries: readonly ["EG"];
} | {
readonly code: "ERN";
readonly numeric_code: "232";
readonly name: "Eritrean nakfa";
readonly symbol: "Nfk";
readonly round: 1;
readonly decimal: 2;
readonly delimiter: ",";
readonly short_format: "Nkf {{amount}}";
readonly explicit_format: "Nkf {{amount}} ERN";
readonly countries: readonly ["ER"];
} | {
readonly code: "ETB";
readonly numeric_code: "230";
readonly name: "Ethiopian birr";
readonly symbol: "Br";
readonly round: 1;
readonly decimal: 2;
readonly delimiter: ",";
readonly short_format: "Br{{amount}}";
readonly explicit_format: "Br{{amount}} ETB";
readonly countries: readonly ["ET"];
} | {
readonly code: "EUR";
readonly numeric_code: "978";
readonly name: "Euro";
readonly symbol: "€";
readonly round: 0.95;
readonly decimal: 2;
readonly delimiter: ",";
readonly short_format: "€{{amount}}";
readonly explicit_format: "€{{amount}} EUR";
readonly countries: readonly ["AX", "EU", "AD", "AT", "BE", "HR", "CY", "EE", "FI", "FR", "GF", "TF", "DE", "GR", "GP", "IE", "IT", "XK", "LV", "LT", "LU", "MT", "MQ", "YT", "MC", "ME", "NL", "PT", "RE", "BL", "MF", "PM", "SM", "SK", "SI", "ES", "VA"];
} | {
readonly code: "FJD";
readonly numeric_code: "242";
readonly name: "Fiji dollar";
readonly symbol: "$";
readonly round: 1;
readonly decimal: 2;
readonly delimiter: ",";
readonly short_format: "${{amount}}";
readonly explicit_format: "FJ${{amount}}";
readonly countries: readonly ["FJ"];
} | {
readonly code: "FKP";
readonly numeric_code: "238";
readonly name: "Falkland Islands pound";
readonly symbol: "£";
readonly round: 1;
readonly decimal: 2;
readonly delimiter: ",";
readonly short_format: "£{{amount}}";
readonly explicit_format: "£{{amount}} FKP";
readonly countries: readonly ["FK"];
} | {
readonly code: "GBP";
readonly numeric_code: "826";
readonly name: "Pound sterling";
readonly symbol: "£";
readonly round: 1;
readonly decimal: 2;
readonly delimiter: ",";
readonly short_format: "£{{amount}}";
readonly explicit_format: "£{{amount}} GBP";
readonly countries: readonly ["UK", "IM", "JE", "GG", "SH-TA"];
} | {
readonly code: "GEL";
readonly numeric_code: "981";
readonly name: "Georgian lari";
readonly symbol: "₾";
readonly round: 1;
readonly decimal: 2;
readonly delimiter: ",";
readonly short_format: "₾{{amount}}";
readonly explicit_format: "₾{{amount}} GEL";
readonly countries: readonly ["GE"];
} | {
readonly code: "GHS";
readonly numeric_code: "936";
readonly name: "Ghanaian cedi";
readonly symbol: "GH₵";
readonly round: 1;
readonly decimal: 2;
readonly delimiter: ",";
readonly short_format: "GH₵{{amount}}";
readonly explicit_format: "GH₵{{amount}}";
readonly countries: readonly ["GH"];
} | {
readonly code: "GIP";
readonly numeric_code: "292";
readonly name: "Gibraltar pound";
readonly symbol: "£";
readonly round: 1;
readonly decimal: 2;
readonly delimiter: ",";
readonly short_format: "£{{amount}}";
readonly explicit_format: "£{{amount}} GIP";
readonly countries: readonly ["GI"];
} | {
readonly code: "GMD";
readonly numeric_code: "270";
readonly name: "Gambian dalasi";
readonly symbol: "D";
readonly round: 1;
readonly decimal: 2;
readonly delimiter: ",";
readonly short_format: "D {{amount}}";
readonly explicit_format: "D {{amount}} GMD";
readonly countries: readonly ["GM"];
} | {
readonly code: "GNF";
readonly numeric_code: "324";
readonly name: "Guinean franc";
readonly symbol: "FG";
readonly round: 1000;
readonly decimal: 0;
readonly delimiter: ",";
readonly short_format: "FG {{amount}}";
readonly explicit_format: "FG {{amount}} GNF";
readonly countries: readonly ["GN"];
} | {
readonly code: "GTQ";
readonly numeric_code: "320";
readonly name: "Guatemalan quetzal";
readonly symbol: "Q";
readonly round: 1;
readonly decimal: 2;
readonly delimiter: ",";
readonly short_format: "Q {{amount}}";
readonly explicit_format: "Q{{amount}} GTQ";
readonly countries: readonly ["GT"];
} | {
readonly code: "GYD";
readonly numeric_code: "328";
readonly name: "Guyanese dollar";
readonly symbol: "G$";
readonly round: 100;
readonly decimal: 2;
readonly delimiter: ",";
readonly short_format: "G$ ${{amount}}";
readonly explicit_format: "${{amount}} GYD";
readonly countries: readonly ["GY"];
} | {
readonly code: "HKD";
readonly numeric_code: "344";
readonly name: "Hong Kong dollar";
readonly symbol: "HK$";
readonly round: 1;
readonly decimal: 2;
readonly delimiter: ",";
readonly short_format: "${{amount}}";
readonly explicit_format: "HK${{amount}}";
readonly countries: readonly ["HK"];
} | {
readonly code: "HNL";
readonly numeric_code: "340";
readonly name: "Honduran lempira";
readonly symbol: "L";
readonly round: 1;
readonly decimal: 2;
readonly delimiter: ",";
readonly short_format: "L{{amount}}";
readonly explicit_format: "L {{amount}} HNL";
readonly countries: readonly ["HN"];
} | {
readonly code: "HRK";
readonly numeric_code: "191";
readonly name: "Croatian dinar (pre-2023)";
readonly symbol: "kn";
readonly round: 1;
readonly decimal: 2;
readonly delimiter: ",";
readonly short_format: "kn{{amount}}";
readonly explicit_format: "kn{{amount}} HRK";
readonly countries: readonly ["HR"];
} | {
readonly code: "HTG";
readonly numeric_code: "332";
readonly name: "Haitian gourde";
readonly symbol: "G";
readonly round: 100;
readonly decimal: 2;
readonly delimiter: ",";
readonly short_format: "G {{amount}}";
readonly explicit_format: "{{amount}} HTG";
readonly countries: readonly ["HT"];
} | {
readonly code: "HUF";
readonly numeric_code: "348";
readonly name: "Hungarian forint";
readonly symbol: "Ft";
readonly round: 100;
readonly decimal: 2;
readonly delimiter: ",";
readonly short_format: "{{amount}} Ft";
readonly explicit_format: "{{amount}} Ft";
readonly countries: readonly ["HU"];
} | {
readonly code: "IDR";
readonly numeric_code: "360";
readonly name: "Indonesian rupiah";
readonly symbol: "Rp";
readonly round: 1000;
readonly decimal: 2;
readonly delimiter: ",";
readonly short_format: "Rp {{amount}}";
readonly explicit_format: "Rp {{amount}} IDR";
readonly countries: readonly ["ID"];
} | {
readonly code: "ILS";
readonly numeric_code: "376";
readonly name: "Israeli new shekel";
readonly symbol: "₪";
readonly round: 1;
readonly decimal: 2;
readonly delimiter: ",";
readonly short_format: "₪{{amount}}";
readonly explicit_format: "{{amount}} NIS";
readonly countries: readonly ["IL"];
} | {
readonly code: "INR";
readonly numeric_code: "356";
readonly name: "Indian rupee";
readonly symbol: "₹";
readonly round: 100;
readonly decimal: 2;
readonly delimiter: ",";
readonly short_format: "₹{{amount}}";
readonly explicit_format: "Rs. {{amount}}";
readonly countries: readonly ["IN", "BT"];
} | {
readonly code: "IQD";
readonly numeric_code: "368";
readonly name: "Iraqi dinar";
readonly symbol: "د.ع";
readonly round: 0;
readonly decimal: 0;
readonly delimiter: ",";
readonly short_format: "{{amount}} IQD";
readonly explicit_format: "{{amount}} IQD";
readonly countries: readonly ["IQ"];
} | {
readonly code: "IRR";
readonly numeric_code: "364";
readonly name: "Iranian rial";
readonly symbol: "﷼";
readonly round: 1000;
readonly decimal: 0;
readonly delimiter: ",";
readonly short_format: "﷼ {{amount}}";
readonly explicit_format: "﷼ {{amount}} IRR";
readonly countries: readonly ["IR"];
} | {
readonly code: "ISK";
readonly numeric_code: "352";
readonly name: "Icelandic króna (plural: krónur)";
readonly symbol: "Ikr";
readonly round: 100;
readonly decimal: 0;
readonly delimiter: ",";
readonly short_format: "{{amount}} kr";
readonly explicit_format: "{{amount}} ISK";
readonly countries: readonly ["IS"];
} | {
readonly code: "JMD";
readonly numeric_code: "388";
readonly name: "Jamaican dollar";
readonly symbol: "J$";
readonly round: 100;
readonly decimal: 2;
readonly delimiter: ",";
readonly short_format: "${{amount}}";
readonly explicit_format: "${{amount}} JMD";
readonly countries: readonly ["JM"];
} | {
readonly code: "JOD";
readonly numeric_code: "400";
readonly name: "Jordanian dinar";
readonly symbol: "د.أ";
readonly round: 0;
readonly decimal: 0;
readonly delimiter: ",";
readonly short_format: "{{amount}} JD";
readonly explicit_format: "{{amount}} JOD";
readonly countries: readonly ["JO"];
} | {
readonly code: "JPY";
readonly numeric_code: "392";
readonly name: "Japanese yen";
readonly symbol: "¥";
readonly round: 100;
readonly decimal: 0;
readonly delimiter: ",";
readonly short_format: "¥{{amount}}";
readonly explicit_format: "¥{{amount}} JPY";
readonly countries: readonly ["JP"];
} | {
readonly code: "KES";
readonly numeric_code: "404";
readonly name: "Kenyan shilling";
readonly symbol: "Ksh";
readonly round: 100;
readonly decimal: 2;
readonly delimiter: ",";
readonly short_format: "KSh{{amount}}";
readonly explicit_format: "KSh{{amount}}";
readonly countries: readonly ["KE"];
} | {
readonly code: "KGS";
readonly numeric_code: "417";
readonly name: "Kyrgyzstani som";
readonly symbol: "лв";
readonly round: 100;
readonly decimal: 2;
readonly delimiter: ",";
readonly short_format: "лв{{amount}}";
readonly explicit_format: "лв{{amount}}";
readonly countries: readonly ["KG"];
} | {
readonly code: "KHR";
readonly numeric_code: "116";
readonly name: "Cambodian riel";
readonly symbol: "៛";
readonly round: 1000;
readonly decimal: 2;
readonly delimiter: ",";
readonly short_format: "KHR{{amount}}";
readonly explicit_format: "KHR{{amount}}";
readonly countries: readonly ["KH"];
} | {
readonly code: "KMF";
readonly numeric_code: "174";
readonly name: "Comoro franc";
readonly symbol: "CF";
readonly round: 100;
readonly decimal: 0;
readonly delimiter: ",";
readonly short_format: "{{amount}} CF";
readonly explicit_format: "{{amount}} CF";
readonly countries: readonly ["KM"];
} | {
readonly code: "KPW";
readonly numeric_code: "408";
readonly name: "North Korean won";
readonly symbol: "₩";
readonly round: 0;
readonly decimal: 0;
readonly delimiter: ",";
readonly short_format: "₩{{amount}}";
readonly explicit_format: "₩{{amount}} KPW";
readonly countries: readonly ["KP"];
} | {
readonly code: "KRW";
readonly numeric_code: "410";
readonly name: "South Korean won";
readonly symbol: "₩";
readonly round: 1000;
readonly decimal: 0;
readonly delimiter: ",";
readonly short_format: "₩{{amount}}";
readonly explicit_format: "₩{{amount}} KRW";
readonly countries: readonly ["KR"];
} | {
readonly code: "KWD";
readonly numeric_code: "414";
readonly name: "Kuwaiti dinar";
readonly symbol: "KD";
readonly round: 0;
readonly decimal: 0;
readonly delimiter: ",";
readonly short_format: "{{amount}} KD";
readonly explicit_format: "{{amount}} KWD";
readonly countries: readonly ["KW"];
} | {
readonly code: "KYD";
readonly numeric_code: "136";
readonly name: "Cayman Islands dollar";
readonly symbol: "CI$";
readonly round: 1;
readonly decimal: 2;
readonly delimiter: ",";
readonly short_format: "${{amount}}";
readonly explicit_format: "${{amount}} KYD";
readonly countries: readonly ["KY"];
} | {
readonly code: "KZT";
readonly numeric_code: "398";
readonly name: "Kazakhstani tenge";
readonly symbol: "₸";
readonly round: 100;
readonly decimal: 2;
readonly delimiter: ",";
readonly short_format: "₸{{amount}}";
readonly explicit_format: "₸{{amount}} KZT";
readonly countries: readonly ["KZ"];
} | {
readonly code: "LAK";
readonly numeric_code: "418";
readonly name: "Lao kip";
readonly symbol: "₭";
readonly round: 1000;
readonly decimal: 2;
readonly delimiter: ",";
readonly short_format: "₭{{amount}}";
readonly explicit_format: "₭{{amount}} LAK";
readonly countries: readonly ["LA"];
} | {
readonly code: "LBP";
readonly numeric_code: "422";
readonly name: "Lebanese pound";
readonly symbol: "ل";
readonly round: 1000;
readonly decimal: 2;
readonly delimiter: ",";
readonly short_format: "L£{{amount}}";
readonly explicit_format: "L£{{amount}} LBP";
readonly countries: readonly ["LB"];
} | {
readonly code: "LKR";
readonly numeric_code: "144";
readonly name: "Sri Lankan rupee";
readonly symbol: "රු";
readonly round: 100;
readonly decimal: 2;
readonly delimiter: ",";
readonly short_format: "Rs {{amount}}";
readonly explicit_format: "Rs {{amount}} LKR";
readonly countries: readonly ["LK"];
} | {
readonly code: "LRD";
readonly numeric_code: "430";
readonly name: "Liberian dollar";
readonly symbol: "L$";
readonly round: 100;
readonly decimal: 2;
readonly delimiter: ",";
readonly short_format: "L${{amount}}";
readonly explicit_format: "L${{amount}} LRD";
readonly countries: readonly ["LR"];
} | {
readonly code: "LSL";
readonly numeric_code: "426";
readonly name: "Lesotho loti";
readonly symbol: "M";
readonly round: 1;
readonly decimal: 2;
readonly delimiter: ",";
readonly short_format: "M{{amount}}";
readonly explicit_format: "M{{amount}} LSL";
readonly countries: readonly ["LS"];
} | {
readonly code: "LTL";
readonly numeric_code: "440";
readonly name: "Lithuanian litas (pre-1993)";
readonly symbol: "Lt";
readonly round: 0;
readonly decimal: 0;
readonly delimiter: ",";
readonly short_format: "Lt {{amount}}";
readonly explicit_format: "Lt {{amount}} LTL";
readonly countries: readonly ["LT"];
} | {
readonly code: "LVL";
readonly numeric_code: "428";
readonly name: "Latvian lats (pre-1993)";
readonly symbol: "ℒ︁𝓈";
readonly round: 0;
readonly decimal: 0;
readonly delimiter: ",";
readonly short_format: "Ls {{amount}}";
readonly explicit_format: "Ls {{amount}} LVL";
readonly countries: readonly ["LV"];
} | {
readonly code: "LYD";
readonly numeric_code: "434";
readonly name: "Libyan dinar";
readonly symbol: "ل.د";
readonly round: 0;
readonly decimal: 0;
readonly delimiter: ",";
readonly short_format: "LD {{amount}}";
readonly explicit_format: "LD {{amount}} LYD";
readonly countries: readonly ["LY"];
} | {
readonly code: "MAD";
readonly numeric_code: "504";
readonly name: "Moroccan dirham";
readonly symbol: ".د.م";
readonly round: 1;
readonly decimal: 2;
readonly delimiter: ",";
readonly short_format: "{{amount}} dh";
readonly explicit_format: "Dh {{amount}} MAD";
readonly countries: readonly ["MA", "EH"];
} | {
readonly code: "MDL";
readonly numeric_code: "498";
readonly name: "Moldovan leu";
readonly symbol: "MDL";
readonly round: 1;
readonly decimal: 2;
readonly delimiter: ",";
readonly short_format: "{{amount}} MDL";
readonly explicit_format: "{{amount}} MDL";
readonly countries: readonly ["MD"];
} | {
readonly code: "MGA";
readonly numeric_code: "969";
readonly name: "Malagasy ariary";
readonly symbol: "Ar";
readonly round: 0;
readonly decimal: 0;
readonly delimiter: ",";
readonly short_format: "Ar {{amount}}";
readonly explicit_format: "Ar {{amount}} MGA";
readonly countries: readonly ["MG"];
} | {
readonly code: "MKD";
readonly numeric_code: "807";
readonly name: "Macedonian denar";
readonly symbol: "MKD";
readonly round: 100;
readonly decimal: 2;
readonly delimiter: ",";
readonly short_format: "ден{{amount}}";
readonly explicit_format: "ден{{amount}} MKD";
readonly countries: readonly ["MK"];
} | {
readonly code: "MMK";
readonly numeric_code: "104";
readonly name: "Myanmar kyat";
readonly symbol: "K";
readonly round: 1000;
readonly decimal: 2;
readonly delimiter: ",";
readonly short_format: "K{{amount}}";
readonly explicit_format: "K{{amount}} MMK";
readonly countries: readonly ["MM"];
} | {
readonly code: "MNT";
readonly numeric_code: "496";
readonly name: "Mongolian tögrög";
readonly symbol: "₮";
readonly round: 1000;
readonly decimal: 2;
readonly delimiter: ",";
readonly short_format: "{{amount}} ₮";
readonly explicit_format: "{{amount}} MNT";
readonly countries: readonly ["MN"];
} | {
readonly code: "MOP";
readonly numeric_code: "446";
readonly name: "Macanese pataca";
readonly symbol: "MOP$";
readonly round: 1;
readonly decimal: 2;
readonly delimiter: ",";
readonly short_format: "MOP${{amount}}";
readonly explicit_format: "MOP${{amount}}";
readonly countries: readonly ["MO"];
} | {
readonly code: "MRO";
readonly numeric_code: "478";
readonly name: "Mauritanian ouguiya (legacy code) [1973–2017]";
readonly symbol: "UM";
readonly round: 9999999;
readonly decimal: 111111;
readonly delimiter: "DE_LI";
readonly short_format: "FORSHRT";
readonly explicit_format: "FORMEX";
readonly countries: readonly ["MR"];
} | {
readonly code: "MUR";
readonly numeric_code: "480";
readonly name: "Mauritian rupee";
readonly symbol: "MURs";
readonly round: 9999999;
readonly decimal: 111111;
readonly delimiter: "DE_LI";
readonly short_format: "FORSHRT";
readonly explicit_format: "FORMEX";
readonly countries: readonly ["MU"];
} | {
readonly code: "MVR";
readonly numeric_code: "462";
readonly name: "Maldivian rufiyaa";
readonly symbol: "MVR";
readonly round: 9999999;
readonly decimal: 111111;
readonly delimiter: "DE_LI";
readonly short_format: "FORSHRT";
readonly explicit_format: "FORMEX";
readonly countries: readonly ["MV"];
} | {
readonly code: "MWK";
readonly numeric_code: "454";
readonly name: "Malawian kwacha";
readonly symbol: "MWK";
readonly round: 9999999;
readonly decimal: 111111;
readonly delimiter: "DE_LI";
readonly short_format: "FORSHRT";
readonly explicit_format: "FORMEX";
readonly countries: readonly ["MW"];
} | {
readonly code: "MXN";
readonly numeric_code: "484";
readonly name: "Mexican peso";
readonly symbol: "MX$";
readonly round: 9999999;
readonly decimal: 111111;
readonly delimiter: "DE_LI";
readonly short_format: "FORSHRT";
readonly explicit_format: "FORMEX";
readonly countries: readonly ["MX"];
} | {
readonly code: "MYR";
readonly numeric_code: "458";
readonly name: "Malaysian ringgit";
readonly symbol: "RM";
readonly round: 9999999;
readonly decimal: 111111;
readonly delimiter: "DE_LI";
readonly short_format: "FORSHRT";
readonly explicit_format: "FORMEX";
readonly countries: readonly ["MY"];
} | {
readonly code: "MZN";
readonly numeric_code: "943";
readonly name: "Mozambican metical";
readonly symbol: "MTn";
readonly round: 9999999;
readonly decimal: 111111;
readonly delimiter: "DE_LI";
readonly short_format: "FORSHRT";
readonly explicit_format: "FORMEX";
readonly countries: readonly ["MZ"];
} | {
readonly code: "NAD";
readonly numeric_code: "516";
readonly name: "Namibian dollar";
readonly symbol: "N$";
readonly round: 9999999;
readonly decimal: 111111;
readonly delimiter: "DE_LI";
readonly short_format: "FORSHRT";
readonly explicit_format: "FORMEX";
readonly countries: readonly ["NA"];
} | {
readonly code: "NGN";
readonly numeric_code: "566";
readonly name: "Nigerian naira";
readonly symbol: "₦";
readonly round: 9999999;
readonly decimal: 111111;
readonly delimiter: "DE_LI";
readonly short_format: "FORSHRT";
readonly explicit_format: "FORMEX";
readonly countries: readonly ["NG"];
} | {
readonly code: "NIO";
readonly numeric_code: "558";
readonly name: "Nicaraguan córdoba";
readonly symbol: "C$";
readonly round: 9999999;
readonly decimal: 111111;
readonly delimiter: "DE_LI";
readonly short_format: "FORSHRT";
readonly explicit_format: "FORMEX";
readonly countries: readonly ["NI"];
} | {
readonly code: "NOK";
readonly numeric_code: "578";
readonly name: "Norwegian krone";
readonly symbol: "Nkr";
readonly round: 9999999;
readonly decimal: 111111;
readonly delimiter: "DE_LI";
readonly short_format: "FORSHRT";
readonly explicit_format: "FORMEX";
readonly countries: readonly ["NO", "SJ", "BV"];
} | {
readonly code: "NPR";
readonly numeric_code: "524";
readonly name: "Nepalese rupee";
readonly symbol: "NPRs";
readonly round: 9999999;
readonly decimal: 111111;
readonly delimiter: "DE_LI";
readonly short_format: "FORSHRT";
readonly explicit_format: "FORMEX";
readonly countries: readonly ["NP"];
} | {
readonly code: "NZD";
readonly numeric_code: "554";
readonly name: "New Zealand dollar";
readonly symbol: "NZ$";
readonly round: 9999999;
readonly decimal: 111111;
readonly delimiter: "DE_LI";
readonly short_format: "FORSHRT";
readonly explicit_format: "FORMEX";
readonly countries: readonly ["NZ", "CK", "NU", "PN", "TK"];
} | {
readonly code: "OMR";
readonly numeric_code: "512";
readonly name: "Omani rial";
readonly symbol: "OMR";
readonly round: 9999999;
readonly decimal: 111111;
readonly delimiter: "DE_LI";
readonly short_format: "FORSHRT";
readonly explicit_format: "FORMEX";
readonly countries: readonly ["OM"];
} | {
readonly code: "PAB";
readonly numeric_code: "590";
readonly name: "Panamanian balboa";
readonly symbol: "B/.";
readonly round: 9999999;
readonly decimal: 111111;
readonly delimiter: "DE_LI";
readonly short_format: "FORSHRT";
readonly explicit_format: "FORMEX";
readonly countries: readonly ["PA"];
} | {
readonly code: "PEN";
readonly numeric_code: "604";
readonly name: "Peruvian sol";
readonly symbol: "S/.";
readonly round: 9999999;
readonly decimal: 111111;
readonly delimiter: "DE_LI";
readonly short_format: "FORSHRT";
readonly explicit_format: "FORMEX";
readonly countries: readonly ["PE"];
} | {
readonly code: "PGK";
readonly numeric_code: "598";
readonly name: "Papua New Guinean kina";
readonly symbol: "PGK";
readonly round: 9999999;
readonly decimal: 111111;
readonly delimiter: "DE_LI";
readonly short_format: "FORSHRT";
readonly explicit_format: "FORMEX";
readonly countries: readonly ["PG"];
} | {
readonly code: "PHP";
readonly numeric_code: "608";
readonly name: "Philippine peso";
readonly symbol: "₱";
readonly round: 9999999;
readonly decimal: 111111;
readonly delimiter: "DE_LI";
readonly short_format: "FORSHRT";
readonly explicit_format: "FORMEX";
readonly countries: readonly ["PH"];
} | {
readonly code: "PKR";
readonly numeric_code: "586";
readonly name: "Pakistani rupee";
readonly symbol: "PKRs";
readonly round: 9999999;
readonly decimal: 111111;
readonly delimiter: "DE_LI";
readonly short_format: "FORSHRT";
readonly explicit_format: "FORMEX";
readonly countries: readonly ["PK"];
} | {
readonly code: "PLN";
readonly numeric_code: "985";
readonly name: "Polish złoty";
readonly symbol: "zł";
readonly round: 9999999;
readonly decimal: 111111;
readonly delimiter: "DE_LI";
readonly short_format: "FORSHRT";
readonly explicit_format: "FORMEX";
readonly countries: readonly ["PL"];
} | {
readonly code: "PYG";
readonly numeric_code: "600";
readonly name: "Paraguayan guaraní";
readonly symbol: "₲";
readonly round: 9999999;
readonly decimal: 111111;
readonly delimiter: "DE_LI";
readonly short_format: "FORSHRT";
readonly explicit_format: "FORMEX";
readonly countries: readonly ["PY"];
} | {
readonly code: "QAR";
readonly numeric_code: "634";
readonly name: "Qatari riyal";
readonly symbol: "QR";
readonly round: 9999999;
readonly decimal: 111111;
readonly delimiter: "DE_LI";
readonly short_format: "FORSHRT";
readonly explicit_format: "FORMEX";
readonly countries: readonly ["QA"];
} | {
readonly code: "RON";
readonly numeric_code: "946";
readonly name: "Romanian leu";
readonly symbol: "RON";
readonly round: 9999999;
readonly decimal: 111111;
readonly delimiter: "DE_LI";
readonly short_format: "FORSHRT";
readonly explicit_format: "FORMEX";
readonly countries: readonly ["RO"];
} | {
readonly code: "RUB";
readonly numeric_code: "643";
readonly name: "Russian ruble";
readonly symbol: "RUB";
readonly round: 9999999;
readonly decimal: