UNPKG

@scottlexium/finpro

Version:

🚀 FinPro.js by Scott Lexium - The most comprehensive TypeScript library for financial data operations. Features 154+ currencies, 250+ countries, MongoDB-style queries, dual ESM/CommonJS support, and flag integration. Created by Scott Lexium for modern Ja

1,146 lines (1,132 loc) 31.1 kB
declare const continents: { readonly AF: "Africa"; readonly AN: "Antarctica"; readonly AS: "Asia"; readonly EU: "Europe"; readonly NA: "North America"; readonly OC: "Oceania"; readonly SA: "South America"; }; declare const countries: Record<string, ICountry>; declare const languages: { readonly aa: { readonly name: "Afar"; readonly native: "Afar"; }; readonly ab: { readonly name: "Abkhazian"; readonly native: "Аҧсуа"; }; readonly af: { readonly name: "Afrikaans"; readonly native: "Afrikaans"; }; readonly ak: { readonly name: "Akan"; readonly native: "Akana"; }; readonly am: { readonly name: "Amharic"; readonly native: "አማርኛ"; }; readonly an: { readonly name: "Aragonese"; readonly native: "Aragonés"; }; readonly ar: { readonly name: "Arabic"; readonly native: "العربية"; readonly rtl: 1; }; readonly as: { readonly name: "Assamese"; readonly native: "অসমীয়া"; }; readonly av: { readonly name: "Avar"; readonly native: "Авар"; }; readonly ay: { readonly name: "Aymara"; readonly native: "Aymar"; }; readonly az: { readonly name: "Azerbaijani"; readonly native: "Azərbaycanca / آذربايجان"; }; readonly ba: { readonly name: "Bashkir"; readonly native: "Башҡорт"; }; readonly be: { readonly name: "Belarusian"; readonly native: "Беларуская"; }; readonly bg: { readonly name: "Bulgarian"; readonly native: "Български"; }; readonly bh: { readonly name: "Bihari"; readonly native: "भोजपुरी"; }; readonly bi: { readonly name: "Bislama"; readonly native: "Bislama"; }; readonly bm: { readonly name: "Bambara"; readonly native: "Bamanankan"; }; readonly bn: { readonly name: "Bengali"; readonly native: "বাংলা"; }; readonly bo: { readonly name: "Tibetan"; readonly native: "བོད་ཡིག / Bod skad"; }; readonly br: { readonly name: "Breton"; readonly native: "Brezhoneg"; }; readonly bs: { readonly name: "Bosnian"; readonly native: "Bosanski"; }; readonly ca: { readonly name: "Catalan"; readonly native: "Català"; }; readonly ce: { readonly name: "Chechen"; readonly native: "Нохчийн"; }; readonly ch: { readonly name: "Chamorro"; readonly native: "Chamoru"; }; readonly co: { readonly name: "Corsican"; readonly native: "Corsu"; }; readonly cr: { readonly name: "Cree"; readonly native: "Nehiyaw"; }; readonly cs: { readonly name: "Czech"; readonly native: "Čeština"; }; readonly cu: { readonly name: "Old Church Slavonic / Old Bulgarian"; readonly native: "словѣньскъ / slověnĭskŭ"; }; readonly cv: { readonly name: "Chuvash"; readonly native: "Чăваш"; }; readonly cy: { readonly name: "Welsh"; readonly native: "Cymraeg"; }; readonly da: { readonly name: "Danish"; readonly native: "Dansk"; }; readonly de: { readonly name: "German"; readonly native: "Deutsch"; }; readonly dv: { readonly name: "Divehi"; readonly native: "ދިވެހިބަސް"; readonly rtl: 1; }; readonly dz: { readonly name: "Dzongkha"; readonly native: "ཇོང་ཁ"; }; readonly ee: { readonly name: "Ewe"; readonly native: "Ɛʋɛ"; }; readonly el: { readonly name: "Greek"; readonly native: "Ελληνικά"; }; readonly en: { readonly name: "English"; readonly native: "English"; }; readonly eo: { readonly name: "Esperanto"; readonly native: "Esperanto"; }; readonly es: { readonly name: "Spanish"; readonly native: "Español"; }; readonly et: { readonly name: "Estonian"; readonly native: "Eesti"; }; readonly eu: { readonly name: "Basque"; readonly native: "Euskara"; }; readonly fa: { readonly name: "Persian"; readonly native: "فارسی"; readonly rtl: 1; }; readonly ff: { readonly name: "Peul"; readonly native: "Fulfulde"; }; readonly fi: { readonly name: "Finnish"; readonly native: "Suomi"; }; readonly fj: { readonly name: "Fijian"; readonly native: "Na Vosa Vakaviti"; }; readonly fo: { readonly name: "Faroese"; readonly native: "Føroyskt"; }; readonly fr: { readonly name: "French"; readonly native: "Français"; }; readonly fy: { readonly name: "West Frisian"; readonly native: "Frysk"; }; readonly ga: { readonly name: "Irish"; readonly native: "Gaeilge"; }; readonly gd: { readonly name: "Scottish Gaelic"; readonly native: "Gàidhlig"; }; readonly gl: { readonly name: "Galician"; readonly native: "Galego"; }; readonly gn: { readonly name: "Guarani"; readonly native: "Avañe'ẽ"; }; readonly gu: { readonly name: "Gujarati"; readonly native: "ગુજરાતી"; }; readonly gv: { readonly name: "Manx"; readonly native: "Gaelg"; }; readonly ha: { readonly name: "Hausa"; readonly native: "هَوُسَ"; readonly rtl: 1; }; readonly he: { readonly name: "Hebrew"; readonly native: "עברית"; readonly rtl: 1; }; readonly hi: { readonly name: "Hindi"; readonly native: "हिन्दी"; }; readonly ho: { readonly name: "Hiri Motu"; readonly native: "Hiri Motu"; }; readonly hr: { readonly name: "Croatian"; readonly native: "Hrvatski"; }; readonly ht: { readonly name: "Haitian"; readonly native: "Krèyol ayisyen"; }; readonly hu: { readonly name: "Hungarian"; readonly native: "Magyar"; }; readonly hy: { readonly name: "Armenian"; readonly native: "Հայերեն"; }; readonly hz: { readonly name: "Herero"; readonly native: "Otsiherero"; }; readonly ia: { readonly name: "Interlingua"; readonly native: "Interlingua"; }; readonly id: { readonly name: "Indonesian"; readonly native: "Bahasa Indonesia"; }; readonly ie: { readonly name: "Interlingue"; readonly native: "Interlingue"; }; readonly ig: { readonly name: "Igbo"; readonly native: "Igbo"; }; readonly ii: { readonly name: "Sichuan Yi"; readonly native: "ꆇꉙ / 四川彝语"; }; readonly ik: { readonly name: "Inupiak"; readonly native: "Iñupiak"; }; readonly io: { readonly name: "Ido"; readonly native: "Ido"; }; readonly is: { readonly name: "Icelandic"; readonly native: "Íslenska"; }; readonly it: { readonly name: "Italian"; readonly native: "Italiano"; }; readonly iu: { readonly name: "Inuktitut"; readonly native: "ᐃᓄᒃᑎᑐᑦ"; }; readonly ja: { readonly name: "Japanese"; readonly native: "日本語"; }; readonly jv: { readonly name: "Javanese"; readonly native: "Basa Jawa"; }; readonly ka: { readonly name: "Georgian"; readonly native: "ქართული"; }; readonly kg: { readonly name: "Kongo"; readonly native: "KiKongo"; }; readonly ki: { readonly name: "Kikuyu"; readonly native: "Gĩkũyũ"; }; readonly kj: { readonly name: "Kuanyama"; readonly native: "Kuanyama"; }; readonly kk: { readonly name: "Kazakh"; readonly native: "Қазақша"; }; readonly kl: { readonly name: "Greenlandic"; readonly native: "Kalaallisut"; }; readonly km: { readonly name: "Cambodian"; readonly native: "ភាសាខ្មែរ"; }; readonly kn: { readonly name: "Kannada"; readonly native: "ಕನ್ನಡ"; }; readonly ko: { readonly name: "Korean"; readonly native: "한국어"; }; readonly kr: { readonly name: "Kanuri"; readonly native: "Kanuri"; }; readonly ks: { readonly name: "Kashmiri"; readonly native: "कश्मीरी / كشميري"; readonly rtl: 1; }; readonly ku: { readonly name: "Kurdish"; readonly native: "Kurdî / كوردی"; readonly rtl: 1; }; readonly kv: { readonly name: "Komi"; readonly native: "Коми"; }; readonly kw: { readonly name: "Cornish"; readonly native: "Kernewek"; }; readonly ky: { readonly name: "Kyrgyz"; readonly native: "Кыргызча"; }; readonly la: { readonly name: "Latin"; readonly native: "Latina"; }; readonly lb: { readonly name: "Luxembourgish"; readonly native: "Lëtzebuergesch"; }; readonly lg: { readonly name: "Ganda"; readonly native: "Luganda"; }; readonly li: { readonly name: "Limburgian"; readonly native: "Limburgs"; }; readonly ln: { readonly name: "Lingala"; readonly native: "Lingála"; }; readonly lo: { readonly name: "Laotian"; readonly native: "ລາວ / Pha xa lao"; }; readonly lt: { readonly name: "Lithuanian"; readonly native: "Lietuvių"; }; readonly lu: { readonly name: "Luba-Katanga"; readonly native: "Tshiluba"; }; readonly lv: { readonly name: "Latvian"; readonly native: "Latviešu"; }; readonly mg: { readonly name: "Malagasy"; readonly native: "Malagasy"; }; readonly mh: { readonly name: "Marshallese"; readonly native: "Kajin Majel / Ebon"; }; readonly mi: { readonly name: "Maori"; readonly native: "Māori"; }; readonly mk: { readonly name: "Macedonian"; readonly native: "Македонски"; }; readonly ml: { readonly name: "Malayalam"; readonly native: "മലയാളം"; }; readonly mn: { readonly name: "Mongolian"; readonly native: "Монгол"; }; readonly mo: { readonly name: "Moldovan"; readonly native: "Moldovenească"; }; readonly mr: { readonly name: "Marathi"; readonly native: "मराठी"; }; readonly ms: { readonly name: "Malay"; readonly native: "Bahasa Melayu"; }; readonly mt: { readonly name: "Maltese"; readonly native: "bil-Malti"; }; readonly my: { readonly name: "Burmese"; readonly native: "မြန်မာစာ"; }; readonly na: { readonly name: "Nauruan"; readonly native: "Dorerin Naoero"; }; readonly nb: { readonly name: "Norwegian Bokmål"; readonly native: "Norsk bokmål"; }; readonly nd: { readonly name: "North Ndebele"; readonly native: "Sindebele"; }; readonly ne: { readonly name: "Nepali"; readonly native: "नेपाली"; }; readonly ng: { readonly name: "Ndonga"; readonly native: "Oshiwambo"; }; readonly nl: { readonly name: "Dutch"; readonly native: "Nederlands"; }; readonly nn: { readonly name: "Norwegian Nynorsk"; readonly native: "Norsk nynorsk"; }; readonly no: { readonly name: "Norwegian"; readonly native: "Norsk"; }; readonly nr: { readonly name: "South Ndebele"; readonly native: "isiNdebele"; }; readonly nv: { readonly name: "Navajo"; readonly native: "Diné bizaad"; }; readonly ny: { readonly name: "Chichewa"; readonly native: "Chi-Chewa"; }; readonly oc: { readonly name: "Occitan"; readonly native: "Occitan"; }; readonly oj: { readonly name: "Ojibwa"; readonly native: "ᐊᓂᔑᓈᐯᒧᐎᓐ / Anishinaabemowin"; }; readonly om: { readonly name: "Oromo"; readonly native: "Oromoo"; }; readonly or: { readonly name: "Oriya"; readonly native: "ଓଡ଼ିଆ"; }; readonly os: { readonly name: "Ossetian / Ossetic"; readonly native: "Иронау"; }; readonly pa: { readonly name: "Panjabi / Punjabi"; readonly native: "ਪੰਜਾਬੀ / पंजाबी / پنجابي"; }; readonly pi: { readonly name: "Pali"; readonly native: "Pāli / पाऴि"; }; readonly pl: { readonly name: "Polish"; readonly native: "Polski"; }; readonly ps: { readonly name: "Pashto"; readonly native: "پښتو"; readonly rtl: 1; }; readonly pt: { readonly name: "Portuguese"; readonly native: "Português"; }; readonly qu: { readonly name: "Quechua"; readonly native: "Runa Simi"; }; readonly rm: { readonly name: "Raeto Romance"; readonly native: "Rumantsch"; }; readonly rn: { readonly name: "Kirundi"; readonly native: "Kirundi"; }; readonly ro: { readonly name: "Romanian"; readonly native: "Română"; }; readonly ru: { readonly name: "Russian"; readonly native: "Русский"; }; readonly rw: { readonly name: "Rwandi"; readonly native: "Kinyarwandi"; }; readonly sa: { readonly name: "Sanskrit"; readonly native: "संस्कृतम्"; }; readonly sc: { readonly name: "Sardinian"; readonly native: "Sardu"; }; readonly sd: { readonly name: "Sindhi"; readonly native: "सिनधि"; }; readonly se: { readonly name: "Northern Sami"; readonly native: "Sámegiella"; }; readonly sg: { readonly name: "Sango"; readonly native: "Sängö"; }; readonly sh: { readonly name: "Serbo-Croatian"; readonly native: "Srpskohrvatski / Српскохрватски"; }; readonly si: { readonly name: "Sinhalese"; readonly native: "සිංහල"; }; readonly sk: { readonly name: "Slovak"; readonly native: "Slovenčina"; }; readonly sl: { readonly name: "Slovenian"; readonly native: "Slovenščina"; }; readonly sm: { readonly name: "Samoan"; readonly native: "Gagana Samoa"; }; readonly sn: { readonly name: "Shona"; readonly native: "chiShona"; }; readonly so: { readonly name: "Somalia"; readonly native: "Soomaaliga"; }; readonly sq: { readonly name: "Albanian"; readonly native: "Shqip"; }; readonly sr: { readonly name: "Serbian"; readonly native: "Српски"; }; readonly ss: { readonly name: "Swati"; readonly native: "SiSwati"; }; readonly st: { readonly name: "Southern Sotho"; readonly native: "Sesotho"; }; readonly su: { readonly name: "Sundanese"; readonly native: "Basa Sunda"; }; readonly sv: { readonly name: "Swedish"; readonly native: "Svenska"; }; readonly sw: { readonly name: "Swahili"; readonly native: "Kiswahili"; }; readonly ta: { readonly name: "Tamil"; readonly native: "தமிழ்"; }; readonly te: { readonly name: "Telugu"; readonly native: "తెలుగు"; }; readonly tg: { readonly name: "Tajik"; readonly native: "Тоҷикӣ"; }; readonly th: { readonly name: "Thai"; readonly native: "ไทย / Phasa Thai"; }; readonly ti: { readonly name: "Tigrinya"; readonly native: "ትግርኛ"; }; readonly tk: { readonly name: "Turkmen"; readonly native: "Туркмен / تركمن"; }; readonly tl: { readonly name: "Tagalog / Filipino"; readonly native: "Tagalog"; }; readonly tn: { readonly name: "Tswana"; readonly native: "Setswana"; }; readonly to: { readonly name: "Tonga"; readonly native: "Lea Faka-Tonga"; }; readonly tr: { readonly name: "Turkish"; readonly native: "Türkçe"; }; readonly ts: { readonly name: "Tsonga"; readonly native: "Xitsonga"; }; readonly tt: { readonly name: "Tatar"; readonly native: "Tatarça"; }; readonly tw: { readonly name: "Twi"; readonly native: "Twi"; }; readonly ty: { readonly name: "Tahitian"; readonly native: "Reo Mā`ohi"; }; readonly ug: { readonly name: "Uyghur"; readonly native: "Uyƣurqə / ئۇيغۇرچە"; }; readonly uk: { readonly name: "Ukrainian"; readonly native: "Українська"; }; readonly ur: { readonly name: "Urdu"; readonly native: "اردو"; readonly rtl: 1; }; readonly uz: { readonly name: "Uzbek"; readonly native: "O'zbekcha"; }; readonly ve: { readonly name: "Venda"; readonly native: "Tshivenḓa"; }; readonly vi: { readonly name: "Vietnamese"; readonly native: "Tiếng Việt"; }; readonly vo: { readonly name: "Volapük"; readonly native: "Volapük"; }; readonly wa: { readonly name: "Walloon"; readonly native: "Walon"; }; readonly wo: { readonly name: "Wolof"; readonly native: "Wollof"; }; readonly xh: { readonly name: "Xhosa"; readonly native: "isiXhosa"; }; readonly yi: { readonly name: "Yiddish"; readonly native: "ייִדיש"; readonly rtl: 1; }; readonly yo: { readonly name: "Yoruba"; readonly native: "Yorùbá"; }; readonly za: { readonly name: "Zhuang"; readonly native: "Cuengh / Tôô / 壮语"; }; readonly zh: { readonly name: "Chinese"; readonly native: "中文"; }; readonly zu: { readonly name: "Zulu"; readonly native: "isiZulu"; }; }; interface CryptoCurrency { readonly id: string; readonly symbol: string; readonly name: string; readonly type: 'crypto'; readonly blockchain: string; readonly decimals: number; readonly isActive: boolean; readonly marketCap?: number; readonly totalSupply?: number; readonly circulatingSupply?: number; readonly contractAddress?: string; readonly website?: string; readonly whitepaper?: string; } interface DeFiToken extends CryptoCurrency { readonly protocol: string; readonly category: 'defi' | 'lending' | 'dex' | 'yield-farming' | 'stablecoin'; readonly apr?: number; readonly tvl?: number; } interface NFT { readonly id: string; readonly tokenId: string; readonly contractAddress: string; readonly name: string; readonly description?: string; readonly image: string; readonly blockchain: string; readonly collection: string; readonly owner: string; readonly attributes: Array<{ trait_type: string; value: string | number; }>; } declare class CryptoModule { private cryptoData; private defiData; private nftData; constructor(); crypto(): QueryBuilder<CryptoCurrency>; cryptos(): QueryBuilder<CryptoCurrency>; defi(): QueryBuilder<DeFiToken>; defis(): QueryBuilder<DeFiToken>; nft(): QueryBuilder<NFT>; nfts(): QueryBuilder<NFT>; getPrice(symbol: string): Promise<number | null>; getMarketData(symbol: string): Promise<any>; } interface Commodity { readonly id: string; readonly symbol: string; readonly name: string; readonly type: 'commodity'; readonly category: 'metals' | 'energy' | 'agriculture' | 'livestock'; readonly unit: string; readonly exchange: string; readonly isActive: boolean; readonly description?: string; } interface PreciousMetal extends Commodity { readonly category: 'metals'; readonly subCategory: 'precious' | 'industrial'; readonly purity?: string; readonly weight?: string; } interface Energy extends Commodity { readonly category: 'energy'; readonly subCategory: 'oil' | 'gas' | 'renewable'; readonly region?: string; } interface Agriculture extends Commodity { readonly category: 'agriculture'; readonly subCategory: 'grains' | 'soft' | 'livestock'; readonly season?: string; readonly origin?: string; } declare class CommoditiesModule { private commodityData; private metalsData; private energyData; private agricultureData; constructor(); commodity(): QueryBuilder<Commodity>; commodities(): QueryBuilder<Commodity>; metal(): QueryBuilder<PreciousMetal>; metals(): QueryBuilder<PreciousMetal>; energy(): QueryBuilder<Energy>; energies(): QueryBuilder<Energy>; agriculture(): QueryBuilder<Agriculture>; agricultures(): QueryBuilder<Agriculture>; getPrice(symbol: string): Promise<number | null>; getHistoricalData(symbol: string, period: string): Promise<any>; } type TContinentCode = keyof typeof continents; type TCountryCode = keyof typeof countries; type TLanguageCode = keyof typeof languages; /** * Core types for FinPro.js */ interface Entity { readonly id?: string; } interface Currency extends Entity { readonly id: string; readonly type: 'fiat'; readonly code: string; readonly symbol: string; readonly name: string; readonly decimals: number; readonly isActive: boolean; readonly countries: readonly string[]; readonly region?: string; readonly centralBank?: string; } interface Country extends Entity { readonly name: string; readonly native: string; readonly phone: readonly number[]; readonly continent: string; readonly capital: string; readonly currency: readonly string[]; readonly languages: readonly string[]; } interface State extends Entity { readonly code: string; readonly name: string; readonly type: string; readonly country_code: string; } interface Language extends Entity { readonly name: string; readonly native: string; readonly rtl?: number; } interface QueryOptions { readonly limit?: number; readonly skip?: number; readonly sort?: Record<string, 1 | -1>; } interface FindOptions extends QueryOptions { readonly populate?: string[]; } type QueryFilter<T> = { [K in keyof T]?: T[K] | { $in?: T[K][]; } | { $regex?: string | RegExp; } | { $gt?: T[K]; } | { $gte?: T[K]; } | { $lt?: T[K]; } | { $lte?: T[K]; }; }; interface QueryBuilder<T extends Entity> { find(filter?: Partial<T>): QueryBuilder<T>; findOne(filter?: Partial<T>): T | null; findById(id: string): T | null; where<K extends keyof T>(field: K, value?: any): QueryBuilder<T>; equals(value: any): QueryBuilder<T>; in(values: any[]): QueryBuilder<T>; regex(pattern: string | RegExp, options?: string): QueryBuilder<T>; gt(value: any): QueryBuilder<T>; gte(value: any): QueryBuilder<T>; lt(value: any): QueryBuilder<T>; lte(value: any): QueryBuilder<T>; sort(options: string | Partial<Record<keyof T, 1 | -1>>): QueryBuilder<T>; limit(count: number): QueryBuilder<T>; skip(count: number): QueryBuilder<T>; populate(field: string): QueryBuilder<T>; exec(): T[]; count(): number; } interface FormatOptions { readonly locale?: string; readonly style?: 'currency' | 'decimal' | 'percent'; readonly minimumFractionDigits?: number; readonly maximumFractionDigits?: number; readonly useGrouping?: boolean; } interface FlagOptions { readonly format?: 'svg' | 'png'; readonly size?: 'w20' | 'w40' | 'w80' | 'w160' | 'w320' | 'w640' | 'w1280'; } interface CurrencyWithFlags extends Currency { readonly flag?: string; readonly flags?: { readonly svg?: string; readonly png?: Record<string, string>; readonly allCountries?: Record<string, string>; }; } interface ILanguage { /** * Language name in English. */ name: string; /** * Language name written natively. */ native: string; /** * Specified if Language is RTL. */ rtl?: number; } interface ICountry { /** * Country name in English. */ name: string; /** * Country name written natively. */ native: string; /** * Calling phone codes. */ phone: number[]; /** * Main continent alpha-2 code. */ continent: TContinentCode; /** * Continent list alpha-2 codes (for transcontinental countries). */ continents?: TContinentCode[]; /** * Capital city of the country. */ capital: string; /** * Currency alpha-3 codes. */ currency: string[]; /** * List of Country's spoken Languages (alpha-2 codes). */ languages: TLanguageCode[]; /** * Specified in cases when entity is currently a part of another one. * Example: Åland is an autonomous and demilitarised region of Finland and has own ISO code. * @see: https://en.wikipedia.org/wiki/Åland * @todo: Type should be TCountryCode, but need to resolve cyclic referencing on dynamically generated type. */ partOf?: string; /** * Specified in cases when entity is not a part of the main ISO 3166-1 standart, but a User assigned code. * @see: https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2#User-assigned_code_elements */ userAssigned?: boolean; } declare class FiatModule { private currencyData; constructor(); currency(): QueryBuilder<Currency>; currencies(): QueryBuilder<Currency>; getCurrencyWithFlags(code: string, options?: FlagOptions): CurrencyWithFlags | null; formatCurrency(code: string, amount: number, options?: FormatOptions): string | null; } declare class GeographyModule { private countryData; private stateData; private languageData; constructor(); country(): QueryBuilder<ICountry & { id: string; }>; countries(): QueryBuilder<ICountry & { id: string; }>; state(): QueryBuilder<State>; states(): QueryBuilder<State>; language(): QueryBuilder<ILanguage & { id: string; }>; languages(): QueryBuilder<ILanguage & { id: string; }>; } declare class Finance { readonly fiat: FiatModule; readonly geography: GeographyModule; readonly crypto: CryptoModule; readonly commodities: CommoditiesModule; constructor(); currency(): QueryBuilder<Currency>; currencies(): QueryBuilder<Currency>; country(): QueryBuilder<ICountry & { id: string; }>; countries(): QueryBuilder<ICountry & { id: string; }>; state(): QueryBuilder<State>; states(): QueryBuilder<State>; language(): QueryBuilder<ILanguage & { id: string; }>; languages(): QueryBuilder<ILanguage & { id: string; }>; getCurrencyWithFlags(code: string, options?: any): CurrencyWithFlags | null; formatCurrency(code: string, amount: number, options?: any): string | null; } declare class Query<T extends Entity> implements QueryBuilder<T> { private data; private filters; private sortOptions; private limitCount?; private skipCount?; private currentField?; constructor(data: T[]); find(filter?: Partial<T>): QueryBuilder<T>; findOne(filter?: Partial<T>): T | null; findById(id: string): T | null; where<K extends keyof T>(field: K): QueryBuilder<T>; equals(value: any): QueryBuilder<T>; in(values: any[]): QueryBuilder<T>; regex(pattern: string | RegExp): QueryBuilder<T>; gt(value: any): QueryBuilder<T>; gte(value: any): QueryBuilder<T>; lt(value: any): QueryBuilder<T>; lte(value: any): QueryBuilder<T>; sort(options: string | Partial<Record<keyof T, 1 | -1>>): QueryBuilder<T>; limit(count: number): QueryBuilder<T>; skip(count: number): QueryBuilder<T>; populate(): QueryBuilder<T>; exec(): T[]; count(): number; } /** * FinPro.js - Financial data library with query-based API */ declare const finance: Finance; declare const getCurrency: (code: string) => Currency | null; declare const getAllCurrencies: () => Currency[]; declare const findCurrencies: (filter: Partial<Currency>) => Currency[]; declare const getCountry: (code: string) => (ICountry & { id: string; }) | null; declare const getAllCountries: () => (ICountry & { id: string; })[]; declare const findCountries: (filter: Partial<ICountry & { id: string; }>) => (ICountry & { id: string; })[]; declare const getState: (code: string) => State | null; declare const getAllStates: () => State[]; declare const findStates: (filter: Partial<State>) => State[]; declare const getLanguage: (code: string) => (ILanguage & { id: string; }) | null; declare const getAllLanguages: () => (ILanguage & { id: string; })[]; declare const findLanguages: (filter: Partial<ILanguage & { id: string; }>) => (ILanguage & { id: string; })[]; export { CommoditiesModule, CryptoModule, FiatModule, Finance, GeographyModule, Query, finance, findCountries, findCurrencies, findLanguages, findStates, getAllCountries, getAllCurrencies, getAllLanguages, getAllStates, getCountry, getCurrency, getLanguage, getState }; export type { Agriculture, Commodity, Country, CryptoCurrency, Currency, CurrencyWithFlags, DeFiToken, Energy, Entity, FindOptions, FlagOptions, FormatOptions, ICountry, ILanguage, Language, NFT, PreciousMetal, QueryBuilder, QueryFilter, QueryOptions, State, TContinentCode, TCountryCode, TLanguageCode };