fmp-node-api 0.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,1431 @@
1
+ import { AxiosRequestConfig, AxiosInstance } from 'axios';
2
+
3
+ interface APIResponse<T = unknown> {
4
+ success: boolean;
5
+ data?: T;
6
+ error?: string;
7
+ status?: number;
8
+ }
9
+ interface SuccessResponse<T> extends APIResponse<T> {
10
+ success: true;
11
+ data: T;
12
+ status: number;
13
+ }
14
+ interface ErrorResponse extends APIResponse<never> {
15
+ success: false;
16
+ error: string;
17
+ status: number;
18
+ }
19
+ interface FMPConfig {
20
+ apiKey: string;
21
+ baseURL?: string;
22
+ timeout?: number;
23
+ }
24
+ interface SymbolParams {
25
+ symbol: string;
26
+ }
27
+ interface DateRangeParams {
28
+ from?: string;
29
+ to?: string;
30
+ }
31
+ interface PaginationParams {
32
+ limit?: number;
33
+ page?: number;
34
+ }
35
+ interface PeriodParams {
36
+ period?: 'annual' | 'quarter';
37
+ }
38
+ interface HistoricalPriceData {
39
+ date: string;
40
+ open: number;
41
+ high: number;
42
+ low: number;
43
+ close: number;
44
+ adjClose: number;
45
+ volume: number;
46
+ unadjustedVolume: number;
47
+ change: number;
48
+ changePercent: number;
49
+ vwap: number;
50
+ label: string;
51
+ changeOverTime: number;
52
+ }
53
+ interface HistoricalPriceResponse {
54
+ symbol: string;
55
+ historical: HistoricalPriceData[];
56
+ }
57
+ interface QueryParams {
58
+ [key: string]: string | number | boolean | undefined;
59
+ }
60
+ interface Quote {
61
+ symbol: string;
62
+ price: number;
63
+ change: number;
64
+ changePercent: number;
65
+ dayLow: number;
66
+ dayHigh: number;
67
+ yearLow: number;
68
+ yearHigh: number;
69
+ marketCap: number;
70
+ priceAvg50: number;
71
+ priceAvg200: number;
72
+ volume: number;
73
+ avgVolume: number;
74
+ exchange: string;
75
+ open: number;
76
+ previousClose: number;
77
+ eps: number;
78
+ pe: number;
79
+ earningsAnnouncement: string;
80
+ sharesOutstanding: number;
81
+ timestamp: number;
82
+ }
83
+ interface CompanyProfile {
84
+ symbol: string;
85
+ price: number;
86
+ beta: number;
87
+ volAvg: number;
88
+ marketCap: number;
89
+ lastDiv: number;
90
+ range: string;
91
+ changes: number;
92
+ companyName: string;
93
+ currency: string;
94
+ cik: string;
95
+ isin: string;
96
+ cusip: string;
97
+ exchange: string;
98
+ exchangeShortName: string;
99
+ industry: string;
100
+ website: string;
101
+ description: string;
102
+ ceo: string;
103
+ sector: string;
104
+ country: string;
105
+ fullTimeEmployees: string;
106
+ phone: string;
107
+ address: string;
108
+ city: string;
109
+ state: string;
110
+ zip: string;
111
+ dcfDiff: number;
112
+ dcf: number;
113
+ image: string;
114
+ ipoDate: string;
115
+ defaultImage: boolean;
116
+ isEtf: boolean;
117
+ isActivelyTrading: boolean;
118
+ isAdr: boolean;
119
+ isFund: boolean;
120
+ }
121
+ declare const FMP_STABLE_URL = "https://financialmodelingprep.com/stable";
122
+
123
+ type StockQuote = Quote;
124
+ interface StockQuoteParams extends SymbolParams {
125
+ }
126
+ interface StockProfileParams extends SymbolParams {
127
+ }
128
+ interface StockHistoricalPriceParams extends SymbolParams, DateRangeParams {
129
+ timeseries?: number;
130
+ }
131
+ interface StockMarketCapParams extends SymbolParams {
132
+ }
133
+ interface StockEarningsCalendarParams {
134
+ from?: string;
135
+ to?: string;
136
+ }
137
+ interface StockSplitsParams extends SymbolParams {
138
+ }
139
+ interface StockDividendParams extends SymbolParams {
140
+ }
141
+ interface StockInsiderTradingParams extends SymbolParams, PaginationParams {
142
+ }
143
+ interface StockInstitutionalHoldersParams extends SymbolParams {
144
+ }
145
+ interface StockMutualFundHoldersParams extends SymbolParams {
146
+ }
147
+ interface StockMajorHoldersParams extends SymbolParams {
148
+ }
149
+ interface StockAnalystEstimatesParams extends SymbolParams, PaginationParams {
150
+ }
151
+ interface StockPriceTargetParams extends SymbolParams {
152
+ }
153
+ interface StockRatingParams extends SymbolParams {
154
+ }
155
+ interface StockGradeParams extends SymbolParams {
156
+ }
157
+ interface StockSectorPerformanceParams {
158
+ }
159
+ interface StockLosersParams {
160
+ }
161
+ interface StockGainersParams {
162
+ }
163
+ interface StockMostActiveParams {
164
+ }
165
+ interface StockSplit {
166
+ date: string;
167
+ label: string;
168
+ numerator: number;
169
+ denominator: number;
170
+ }
171
+ interface StockDividend {
172
+ date: string;
173
+ label: string;
174
+ adjDividend: number;
175
+ dividend: number;
176
+ recordDate: string;
177
+ paymentDate: string;
178
+ declarationDate: string;
179
+ }
180
+ interface InsiderTrading {
181
+ symbol: string;
182
+ companyName: string;
183
+ cik: string;
184
+ ownerName: string;
185
+ ownerCik: string;
186
+ ownerTitle: string;
187
+ transactionDate: string;
188
+ transactionCode: string;
189
+ transactionAmount: number;
190
+ transactionPrice: number;
191
+ transactionAcquiredDisposed: string;
192
+ postTransactionAmount: number;
193
+ secLink: string;
194
+ }
195
+ interface InstitutionalHolder {
196
+ holder: string;
197
+ shares: number;
198
+ dateReported: string;
199
+ change: number;
200
+ weightPercent: number;
201
+ }
202
+ interface MutualFundHolder {
203
+ holder: string;
204
+ shares: number;
205
+ dateReported: string;
206
+ change: number;
207
+ weightPercent: number;
208
+ }
209
+ interface MajorHolder {
210
+ holder: string;
211
+ shares: number;
212
+ dateReported: string;
213
+ change: number;
214
+ weightPercent: number;
215
+ }
216
+ interface AnalystEstimate {
217
+ symbol: string;
218
+ date: string;
219
+ estimatedRevenueLow: number;
220
+ estimatedRevenueHigh: number;
221
+ estimatedRevenueAvg: number;
222
+ estimatedEbitdaLow: number;
223
+ estimatedEbitdaHigh: number;
224
+ estimatedEbitdaAvg: number;
225
+ estimatedEbitLow: number;
226
+ estimatedEbitHigh: number;
227
+ estimatedEbitAvg: number;
228
+ estimatedNetIncomeLow: number;
229
+ estimatedNetIncomeHigh: number;
230
+ estimatedNetIncomeAvg: number;
231
+ estimatedSgaExpenseLow: number;
232
+ estimatedSgaExpenseHigh: number;
233
+ estimatedSgaExpenseAvg: number;
234
+ estimatedEpsAvg: number;
235
+ estimatedEpsHigh: number;
236
+ estimatedEpsLow: number;
237
+ numberAnalystEstimatedRevenue: number;
238
+ numberAnalystsEstimatedEps: number;
239
+ }
240
+ interface PriceTarget {
241
+ symbol: string;
242
+ targetMean: number;
243
+ targetMedian: number;
244
+ targetHigh: number;
245
+ targetLow: number;
246
+ targetCount: number;
247
+ }
248
+ interface StockRating {
249
+ symbol: string;
250
+ date: string;
251
+ rating: string;
252
+ ratingScore: number;
253
+ ratingRecommendation: string;
254
+ ratingDetailsDCFScore: number;
255
+ ratingDetailsDCFRecommendation: string;
256
+ ratingDetailsROEScore: number;
257
+ ratingDetailsROERecommendation: string;
258
+ ratingDetailsROAScore: number;
259
+ ratingDetailsROARecommendation: string;
260
+ ratingDetailsDEScore: number;
261
+ ratingDetailsDERecommendation: string;
262
+ ratingDetailsPEScore: number;
263
+ ratingDetailsPERecommendation: string;
264
+ ratingDetailsPBScore: number;
265
+ ratingDetailsPBRecommendation: string;
266
+ }
267
+ interface StockGrade {
268
+ symbol: string;
269
+ date: string;
270
+ gradingCompany: string;
271
+ previousGrade: string;
272
+ newGrade: string;
273
+ grade: string;
274
+ }
275
+ interface SectorPerformance {
276
+ sector: string;
277
+ changesPercentage: number;
278
+ }
279
+ interface StockList {
280
+ symbol: string;
281
+ name: string;
282
+ currency: string;
283
+ stockExchange: string;
284
+ exchangeShortName: string;
285
+ }
286
+ interface MarketCap {
287
+ symbol: string;
288
+ date: string;
289
+ marketCap: number;
290
+ }
291
+ interface EarningsCalendar {
292
+ date: string;
293
+ symbol: string;
294
+ eps: number;
295
+ estimatedEps: number;
296
+ time: string;
297
+ revenue: number;
298
+ estimatedRevenue: number;
299
+ fiscalDateEnding: string;
300
+ updatedFromDate: string;
301
+ }
302
+ interface StockHistoricalPriceData extends HistoricalPriceData {
303
+ }
304
+ interface StockHistoricalPriceResponse extends HistoricalPriceResponse {
305
+ historical: StockHistoricalPriceData[];
306
+ }
307
+
308
+ interface FinancialStatementsParams extends SymbolParams, PeriodParams {
309
+ limit?: number;
310
+ }
311
+ interface IncomeStatementParams extends FinancialStatementsParams {
312
+ }
313
+ interface BalanceSheetParams extends FinancialStatementsParams {
314
+ }
315
+ interface CashFlowParams extends FinancialStatementsParams {
316
+ }
317
+ interface FinancialGrowthParams extends FinancialStatementsParams {
318
+ }
319
+ interface KeyMetricsParams extends FinancialStatementsParams {
320
+ }
321
+ interface FinancialRatiosParams extends FinancialStatementsParams {
322
+ }
323
+ interface EnterpriseValueParams extends FinancialStatementsParams {
324
+ }
325
+ interface CompanyValuationParams extends FinancialStatementsParams {
326
+ }
327
+ interface FinancialStatement {
328
+ date: string;
329
+ symbol: string;
330
+ reportedCurrency: string;
331
+ cik: string;
332
+ fillingDate: string;
333
+ acceptedDate: string;
334
+ calendarYear: string;
335
+ period: string;
336
+ link: string;
337
+ finalLink: string;
338
+ [key: string]: string | number | boolean;
339
+ }
340
+ interface IncomeStatement extends FinancialStatement {
341
+ revenue: number;
342
+ costOfRevenue: number;
343
+ grossProfit: number;
344
+ grossProfitRatio: number;
345
+ researchAndDevelopmentExpenses: number;
346
+ generalAndAdministrativeExpenses: number;
347
+ sellingAndMarketingExpenses: number;
348
+ sellingGeneralAndAdministrativeExpenses: number;
349
+ otherExpenses: number;
350
+ operatingExpenses: number;
351
+ costAndExpenses: number;
352
+ interestExpense: number;
353
+ depreciationAndAmortization: number;
354
+ ebitda: number;
355
+ ebitdaratio: number;
356
+ operatingIncome: number;
357
+ operatingIncomeRatio: number;
358
+ totalOtherIncomeExpensesNet: number;
359
+ incomeBeforeTax: number;
360
+ incomeBeforeTaxRatio: number;
361
+ incomeTaxExpense: number;
362
+ netIncome: number;
363
+ netIncomeRatio: number;
364
+ eps: number;
365
+ epsDiluted: number;
366
+ ebit: number;
367
+ ebitRatio: number;
368
+ }
369
+ interface BalanceSheet extends FinancialStatement {
370
+ cashAndCashEquivalents: number;
371
+ shortTermInvestments: number;
372
+ cashAndShortTermInvestments: number;
373
+ netReceivables: number;
374
+ inventory: number;
375
+ totalCurrentAssets: number;
376
+ propertyPlantEquipmentNet: number;
377
+ goodwill: number;
378
+ intangibleAssets: number;
379
+ goodwillAndIntangibleAssets: number;
380
+ longTermInvestments: number;
381
+ taxAssets: number;
382
+ otherNonCurrentAssets: number;
383
+ totalNonCurrentAssets: number;
384
+ otherAssets: number;
385
+ totalAssets: number;
386
+ accountPayables: number;
387
+ shortTermDebt: number;
388
+ taxPayables: number;
389
+ deferredRevenue: number;
390
+ otherCurrentLiabilities: number;
391
+ totalCurrentLiabilities: number;
392
+ longTermDebt: number;
393
+ deferredRevenueNonCurrent: number;
394
+ deferredTaxLiabilitiesNonCurrent: number;
395
+ otherNonCurrentLiabilities: number;
396
+ totalNonCurrentLiabilities: number;
397
+ otherLiabilities: number;
398
+ capitalLeaseObligations: number;
399
+ totalLiabilities: number;
400
+ preferredStock: number;
401
+ commonStock: number;
402
+ retainedEarnings: number;
403
+ accumulatedOtherComprehensiveIncomeLoss: number;
404
+ othertotalStockholdersEquity: number;
405
+ totalStockholdersEquity: number;
406
+ totalEquity: number;
407
+ totalLiabilitiesAndStockholdersEquity: number;
408
+ minorityInterest: number;
409
+ totalLiabilitiesAndTotalEquity: number;
410
+ totalInvestments: number;
411
+ totalDebt: number;
412
+ netDebt: number;
413
+ }
414
+ interface CashFlowStatement extends FinancialStatement {
415
+ netIncome: number;
416
+ depreciationAndAmortization: number;
417
+ deferredIncomeTax: number;
418
+ changeInWorkingCapital: number;
419
+ accountsReceivables: number;
420
+ inventory: number;
421
+ accountsPayables: number;
422
+ otherWorkingCapital: number;
423
+ otherNonCashItems: number;
424
+ netCashProvidedByOperatingActivities: number;
425
+ investmentsInPropertyPlantAndEquipment: number;
426
+ acquisitionsNet: number;
427
+ purchasesOfInvestments: number;
428
+ salesMaturitiesOfInvestments: number;
429
+ otherInvestingActivites: number;
430
+ netCashUsedForInvestingActivites: number;
431
+ debtRepayment: number;
432
+ commonStockIssued: number;
433
+ commonStockRepurchased: number;
434
+ dividendsPaid: number;
435
+ otherFinancingActivites: number;
436
+ netCashUsedProvidedByFinancingActivities: number;
437
+ effectOfForexChangesOnCash: number;
438
+ netChangeInCash: number;
439
+ cashAtEndOfPeriod: number;
440
+ cashAtBeginningOfPeriod: number;
441
+ operatingCashFlow: number;
442
+ capitalExpenditure: number;
443
+ freeCashFlow: number;
444
+ }
445
+ interface KeyMetrics {
446
+ symbol: string;
447
+ date: string;
448
+ period: string;
449
+ revenuePerShare: number;
450
+ netIncomePerShare: number;
451
+ operatingCashFlowPerShare: number;
452
+ freeCashFlowPerShare: number;
453
+ cashPerShare: number;
454
+ bookValuePerShare: number;
455
+ tangibleBookValuePerShare: number;
456
+ shareholdersEquityPerShare: number;
457
+ interestDebtPerShare: number;
458
+ marketCap: number;
459
+ enterpriseValue: number;
460
+ peRatio: number;
461
+ priceToSalesRatio: number;
462
+ pocfratio: number;
463
+ pfcfRatio: number;
464
+ pbRatio: number;
465
+ ptbRatio: number;
466
+ evToSales: number;
467
+ enterpriseValueOverEBITDA: number;
468
+ evToOperatingCashFlow: number;
469
+ evToFreeCashFlow: number;
470
+ earningsYield: number;
471
+ freeCashFlowYield: number;
472
+ debtToEquity: number;
473
+ debtToAssets: number;
474
+ netDebtToEBITDA: number;
475
+ currentRatio: number;
476
+ interestCoverage: number;
477
+ incomeQuality: number;
478
+ dividendYield: number;
479
+ payoutRatio: number;
480
+ salesGeneralAndAdministrativeToRevenue: number;
481
+ researchAndDevelopmentToRevenue: number;
482
+ intangiblesToTotalAssets: number;
483
+ capexToOperatingCashFlow: number;
484
+ capexToRevenue: number;
485
+ capexToDepreciation: number;
486
+ stockBasedCompensationToRevenue: number;
487
+ grahamNumber: number;
488
+ roic: number;
489
+ returnOnTangibleAssets: number;
490
+ grahamNetNet: number;
491
+ workingCapital: number;
492
+ tangibleAssetValue: number;
493
+ netCurrentAssetValue: number;
494
+ investedCapital: number;
495
+ averageReceivables: number;
496
+ averagePayables: number;
497
+ averageInventory: number;
498
+ daysSalesOutstanding: number;
499
+ daysPayablesOutstanding: number;
500
+ daysOfInventoryOnHand: number;
501
+ receivablesTurnover: number;
502
+ payablesTurnover: number;
503
+ inventoryTurnover: number;
504
+ roe: number;
505
+ capexPerShare: number;
506
+ }
507
+ interface FinancialRatios {
508
+ symbol: string;
509
+ date: string;
510
+ period: string;
511
+ currentRatio: number;
512
+ quickRatio: number;
513
+ cashRatio: number;
514
+ daysOfSalesOutstanding: number;
515
+ daysOfInventoryOutstanding: number;
516
+ operatingCycle: number;
517
+ daysOfPayablesOutstanding: number;
518
+ cashConversionCycle: number;
519
+ grossProfitMargin: number;
520
+ operatingProfitMargin: number;
521
+ pretaxProfitMargin: number;
522
+ netProfitMargin: number;
523
+ effectiveTaxRate: number;
524
+ returnOnAssets: number;
525
+ returnOnEquity: number;
526
+ returnOnCapitalEmployed: number;
527
+ netIncomePerEBT: number;
528
+ ebtPerEbit: number;
529
+ ebitPerRevenue: number;
530
+ debtRatio: number;
531
+ debtEquityRatio: number;
532
+ longTermDebtToCapitalization: number;
533
+ totalDebtToCapitalization: number;
534
+ interestCoverage: number;
535
+ cashFlowToDebtRatio: number;
536
+ companyEquityMultiplier: number;
537
+ receivablesTurnover: number;
538
+ payablesTurnover: number;
539
+ inventoryTurnover: number;
540
+ fixedAssetTurnover: number;
541
+ assetTurnover: number;
542
+ operatingCashFlowPerShare: number;
543
+ freeCashFlowPerShare: number;
544
+ cashPerShare: number;
545
+ payoutRatio: number;
546
+ operatingCashFlowSalesRatio: number;
547
+ freeCashFlowOperatingCashFlowRatio: number;
548
+ cashFlowCoverageRatios: number;
549
+ shortTermCoverageRatios: number;
550
+ capitalExpenditureCoverageRatio: number;
551
+ dividendPaidAndCapexCoverageRatio: number;
552
+ dividendPayoutRatio: number;
553
+ priceBookValueRatio: number;
554
+ priceToBookRatio: number;
555
+ priceToSalesRatio: number;
556
+ priceEarningsRatio: number;
557
+ priceToFreeCashFlowsRatio: number;
558
+ priceToOperatingCashFlowsRatio: number;
559
+ priceCashFlowRatio: number;
560
+ priceEarningsToGrowthRatio: number;
561
+ priceSalesRatio: number;
562
+ dividendYield: number;
563
+ enterpriseValueMultiple: number;
564
+ priceFairValue: number;
565
+ }
566
+ interface EnterpriseValue {
567
+ symbol: string;
568
+ date: string;
569
+ stockPrice: number;
570
+ numberOfShares: number;
571
+ marketCapitalization: number;
572
+ minusCashAndCashEquivalents: number;
573
+ addTotalDebt: number;
574
+ enterpriseValue: number;
575
+ }
576
+
577
+ interface ForexQuoteParams extends SymbolParams {
578
+ }
579
+ interface ForexHistoricalParams extends SymbolParams, DateRangeParams {
580
+ timeseries?: number;
581
+ }
582
+ interface ForexListParams {
583
+ }
584
+ interface ForexQuote {
585
+ symbol: string;
586
+ price: number;
587
+ changesPercentage: number;
588
+ change: number;
589
+ dayLow: number;
590
+ dayHigh: number;
591
+ yearLow: number;
592
+ yearHigh: number;
593
+ marketCap: number;
594
+ priceAvg50: number;
595
+ priceAvg200: number;
596
+ volume: number;
597
+ avgVolume: number;
598
+ exchange: string;
599
+ open: number;
600
+ previousClose: number;
601
+ eps: number;
602
+ pe: number;
603
+ earningsAnnouncement: string;
604
+ sharesOutstanding: number;
605
+ timestamp: number;
606
+ }
607
+ interface ForexPair {
608
+ symbol: string;
609
+ name: string;
610
+ currency: string;
611
+ stockExchange: string;
612
+ exchangeShortName: string;
613
+ }
614
+
615
+ interface CryptoQuoteParams extends SymbolParams {
616
+ }
617
+ interface CryptoHistoricalParams extends SymbolParams, DateRangeParams {
618
+ timeseries?: number;
619
+ }
620
+ interface CryptoListParams {
621
+ }
622
+ interface CryptoQuote {
623
+ symbol: string;
624
+ price: number;
625
+ changesPercentage: number;
626
+ change: number;
627
+ dayLow: number;
628
+ dayHigh: number;
629
+ yearLow: number;
630
+ yearHigh: number;
631
+ marketCap: number;
632
+ priceAvg50: number;
633
+ priceAvg200: number;
634
+ volume: number;
635
+ avgVolume: number;
636
+ exchange: string;
637
+ open: number;
638
+ previousClose: number;
639
+ eps: number;
640
+ pe: number;
641
+ earningsAnnouncement: string;
642
+ sharesOutstanding: number;
643
+ timestamp: number;
644
+ }
645
+ interface CryptoCurrency {
646
+ symbol: string;
647
+ name: string;
648
+ currency: string;
649
+ stockExchange: string;
650
+ exchangeShortName: string;
651
+ }
652
+
653
+ interface ETFQuoteParams extends SymbolParams {
654
+ }
655
+ interface ETFProfileParams extends SymbolParams {
656
+ }
657
+ interface ETFHoldersParams extends SymbolParams, PaginationParams {
658
+ }
659
+ interface ETFListParams {
660
+ }
661
+ interface ETFQuote {
662
+ symbol: string;
663
+ price: number;
664
+ changesPercentage: number;
665
+ change: number;
666
+ dayLow: number;
667
+ dayHigh: number;
668
+ yearLow: number;
669
+ yearHigh: number;
670
+ marketCap: number;
671
+ priceAvg50: number;
672
+ priceAvg200: number;
673
+ volume: number;
674
+ avgVolume: number;
675
+ exchange: string;
676
+ open: number;
677
+ previousClose: number;
678
+ eps: number;
679
+ pe: number;
680
+ earningsAnnouncement: string;
681
+ sharesOutstanding: number;
682
+ timestamp: number;
683
+ }
684
+ interface ETFProfile {
685
+ symbol: string;
686
+ price: number;
687
+ beta: number;
688
+ volAvg: number;
689
+ marketCap: number;
690
+ lastDiv: number;
691
+ range: string;
692
+ changes: number;
693
+ companyName: string;
694
+ currency: string;
695
+ cik: string;
696
+ isin: string;
697
+ cusip: string;
698
+ exchange: string;
699
+ exchangeShortName: string;
700
+ industry: string;
701
+ website: string;
702
+ description: string;
703
+ ceo: string;
704
+ sector: string;
705
+ country: string;
706
+ fullTimeEmployees: string;
707
+ phone: string;
708
+ address: string;
709
+ city: string;
710
+ state: string;
711
+ zip: string;
712
+ dcfDiff: number;
713
+ dcf: number;
714
+ image: string;
715
+ ipoDate: string;
716
+ defaultImage: boolean;
717
+ isEtf: boolean;
718
+ isActivelyTrading: boolean;
719
+ isAdr: boolean;
720
+ isFund: boolean;
721
+ }
722
+ interface ETFHolding {
723
+ asset: string;
724
+ weightPercent: number;
725
+ shares: number;
726
+ marketValue: number;
727
+ }
728
+ interface ETFList {
729
+ symbol: string;
730
+ name: string;
731
+ currency: string;
732
+ stockExchange: string;
733
+ exchangeShortName: string;
734
+ }
735
+
736
+ interface MutualFundQuoteParams extends SymbolParams {
737
+ }
738
+ interface MutualFundProfileParams extends SymbolParams {
739
+ }
740
+ interface MutualFundHoldersParams extends SymbolParams, PaginationParams {
741
+ }
742
+ interface MutualFundListParams {
743
+ }
744
+ interface MutualFundQuote {
745
+ symbol: string;
746
+ price: number;
747
+ changesPercentage: number;
748
+ change: number;
749
+ dayLow: number;
750
+ dayHigh: number;
751
+ yearLow: number;
752
+ yearHigh: number;
753
+ marketCap: number;
754
+ priceAvg50: number;
755
+ priceAvg200: number;
756
+ volume: number;
757
+ avgVolume: number;
758
+ exchange: string;
759
+ open: number;
760
+ previousClose: number;
761
+ eps: number;
762
+ pe: number;
763
+ earningsAnnouncement: string;
764
+ sharesOutstanding: number;
765
+ timestamp: number;
766
+ }
767
+ interface MutualFundProfile {
768
+ symbol: string;
769
+ price: number;
770
+ beta: number;
771
+ volAvg: number;
772
+ marketCap: number;
773
+ lastDiv: number;
774
+ range: string;
775
+ changes: number;
776
+ companyName: string;
777
+ currency: string;
778
+ cik: string;
779
+ isin: string;
780
+ cusip: string;
781
+ exchange: string;
782
+ exchangeShortName: string;
783
+ industry: string;
784
+ website: string;
785
+ description: string;
786
+ ceo: string;
787
+ sector: string;
788
+ country: string;
789
+ fullTimeEmployees: string;
790
+ phone: string;
791
+ address: string;
792
+ city: string;
793
+ state: string;
794
+ zip: string;
795
+ dcfDiff: number;
796
+ dcf: number;
797
+ image: string;
798
+ ipoDate: string;
799
+ defaultImage: boolean;
800
+ isEtf: boolean;
801
+ isActivelyTrading: boolean;
802
+ isAdr: boolean;
803
+ isFund: boolean;
804
+ }
805
+ interface MutualFundHolding {
806
+ asset: string;
807
+ weightPercent: number;
808
+ shares: number;
809
+ marketValue: number;
810
+ }
811
+ interface MutualFundList {
812
+ symbol: string;
813
+ name: string;
814
+ currency: string;
815
+ stockExchange: string;
816
+ exchangeShortName: string;
817
+ }
818
+
819
+ interface BondQuoteParams extends SymbolParams {
820
+ }
821
+ interface BondHistoricalParams extends SymbolParams, DateRangeParams {
822
+ timeseries?: number;
823
+ }
824
+ interface BondListParams {
825
+ }
826
+ interface BondQuote {
827
+ symbol: string;
828
+ price: number;
829
+ changesPercentage: number;
830
+ change: number;
831
+ dayLow: number;
832
+ dayHigh: number;
833
+ yearLow: number;
834
+ yearHigh: number;
835
+ marketCap: number;
836
+ priceAvg50: number;
837
+ priceAvg200: number;
838
+ volume: number;
839
+ avgVolume: number;
840
+ exchange: string;
841
+ open: number;
842
+ previousClose: number;
843
+ eps: number;
844
+ pe: number;
845
+ earningsAnnouncement: string;
846
+ sharesOutstanding: number;
847
+ timestamp: number;
848
+ }
849
+ interface BondList {
850
+ symbol: string;
851
+ name: string;
852
+ currency: string;
853
+ stockExchange: string;
854
+ exchangeShortName: string;
855
+ }
856
+
857
+ interface EconomicIndicatorParams extends DateRangeParams {
858
+ }
859
+ interface TreasuryRateParams extends EconomicIndicatorParams {
860
+ }
861
+ interface FederalFundsRateParams extends EconomicIndicatorParams {
862
+ }
863
+ interface CPIParams extends EconomicIndicatorParams {
864
+ }
865
+ interface GDPParams extends EconomicIndicatorParams {
866
+ }
867
+ interface UnemploymentParams extends EconomicIndicatorParams {
868
+ }
869
+ interface EconomicIndicator {
870
+ date: string;
871
+ value: number;
872
+ change: number;
873
+ changePercent: number;
874
+ }
875
+ interface TreasuryRate {
876
+ date: string;
877
+ month1: number;
878
+ month2: number;
879
+ month3: number;
880
+ month6: number;
881
+ year1: number;
882
+ year2: number;
883
+ year3: number;
884
+ year5: number;
885
+ year7: number;
886
+ year10: number;
887
+ year20: number;
888
+ year30: number;
889
+ }
890
+ interface FederalFundsRate {
891
+ date: string;
892
+ value: number;
893
+ }
894
+ interface CPI {
895
+ date: string;
896
+ value: number;
897
+ change: number;
898
+ changePercent: number;
899
+ }
900
+ interface GDP {
901
+ date: string;
902
+ value: number;
903
+ change: number;
904
+ changePercent: number;
905
+ }
906
+ interface Unemployment {
907
+ date: string;
908
+ value: number;
909
+ change: number;
910
+ changePercent: number;
911
+ }
912
+
913
+ interface MarketHoursParams {
914
+ }
915
+ interface MarketPerformanceParams {
916
+ }
917
+ interface MarketGainersParams {
918
+ }
919
+ interface MarketLosersParams {
920
+ }
921
+ interface MarketMostActiveParams {
922
+ }
923
+ interface MarketSectorPerformanceParams {
924
+ }
925
+ interface MarketIndexParams extends DateRangeParams {
926
+ }
927
+ interface MarketHours {
928
+ stockExchangeName: string;
929
+ stockMarketHours: {
930
+ openingHour: string;
931
+ closingHour: string;
932
+ gmtOffset: number;
933
+ };
934
+ holidays: string[];
935
+ isTheStockMarketOpen: boolean;
936
+ isTheEuronextMarketOpen: boolean;
937
+ isTheForexMarketOpen: boolean;
938
+ isTheCryptoMarketOpen: boolean;
939
+ }
940
+ interface MarketPerformance {
941
+ ticker: string;
942
+ companyName: string;
943
+ price: number;
944
+ changesPercentage: number;
945
+ changes: number;
946
+ dayLow: number;
947
+ dayHigh: number;
948
+ yearLow: number;
949
+ yearHigh: number;
950
+ marketCap: number;
951
+ priceAvg50: number;
952
+ priceAvg200: number;
953
+ volume: number;
954
+ avgVolume: number;
955
+ exchange: string;
956
+ open: number;
957
+ previousClose: number;
958
+ eps: number;
959
+ pe: number;
960
+ earningsAnnouncement: string;
961
+ sharesOutstanding: number;
962
+ timestamp: number;
963
+ }
964
+ interface MarketSectorPerformance {
965
+ sector: string;
966
+ changesPercentage: number;
967
+ }
968
+ interface MarketIndex {
969
+ symbol: string;
970
+ name: string;
971
+ price: number;
972
+ changesPercentage: number;
973
+ change: number;
974
+ dayLow: number;
975
+ dayHigh: number;
976
+ yearLow: number;
977
+ yearHigh: number;
978
+ marketCap: number;
979
+ priceAvg50: number;
980
+ priceAvg200: number;
981
+ volume: number;
982
+ avgVolume: number;
983
+ exchange: string;
984
+ open: number;
985
+ previousClose: number;
986
+ eps: number;
987
+ pe: number;
988
+ earningsAnnouncement: string;
989
+ sharesOutstanding: number;
990
+ timestamp: number;
991
+ }
992
+
993
+ declare class FMPClient {
994
+ private client;
995
+ private apiKey;
996
+ private baseURL;
997
+ constructor(config: FMPConfig);
998
+ /**
999
+ * Make a GET request to the API
1000
+ */
1001
+ get<T = any>(endpoint: string, params?: Record<string, any>): Promise<APIResponse<T>>;
1002
+ /**
1003
+ * Make a POST request to the API
1004
+ */
1005
+ post<T = any>(endpoint: string, data?: any, config?: AxiosRequestConfig): Promise<APIResponse<T>>;
1006
+ /**
1007
+ * Get the underlying axios instance for advanced usage
1008
+ */
1009
+ getAxiosInstance(): AxiosInstance;
1010
+ }
1011
+
1012
+ declare class StockEndpoints {
1013
+ private client;
1014
+ constructor(client: FMPClient);
1015
+ /**
1016
+ * Get real-time stock quote
1017
+ */
1018
+ getQuote({ symbol }: {
1019
+ symbol: string;
1020
+ }): Promise<APIResponse<StockQuote[]>>;
1021
+ /**
1022
+ * Get company profile
1023
+ */
1024
+ getCompanyProfile({ symbol }: {
1025
+ symbol: string;
1026
+ }): Promise<APIResponse<CompanyProfile[]>>;
1027
+ /**
1028
+ * Get historical stock prices
1029
+ */
1030
+ getHistoricalPrice({ symbol, from, to, }: {
1031
+ symbol: string;
1032
+ from?: string;
1033
+ to?: string;
1034
+ }): Promise<APIResponse<StockHistoricalPriceResponse>>;
1035
+ /**
1036
+ * Get list of all stocks
1037
+ */
1038
+ getStockList(): Promise<APIResponse<StockList[]>>;
1039
+ /**
1040
+ * Get market capitalization
1041
+ */
1042
+ getMarketCap({ symbol }: {
1043
+ symbol: string;
1044
+ }): Promise<APIResponse<MarketCap[]>>;
1045
+ /**
1046
+ * Get earnings calendar
1047
+ */
1048
+ getEarningsCalendar(params: {
1049
+ from?: string;
1050
+ to?: string;
1051
+ }): Promise<APIResponse<EarningsCalendar[]>>;
1052
+ /**
1053
+ * Get stock splits
1054
+ */
1055
+ getStockSplits({ symbol }: {
1056
+ symbol: string;
1057
+ }): Promise<APIResponse<StockSplit[]>>;
1058
+ /**
1059
+ * Get dividend history
1060
+ */
1061
+ getDividendHistory({ symbol }: {
1062
+ symbol: string;
1063
+ }): Promise<APIResponse<StockDividend[]>>;
1064
+ }
1065
+
1066
+ declare class FinancialEndpoints {
1067
+ private client;
1068
+ constructor(client: FMPClient);
1069
+ /**
1070
+ * Get income statement
1071
+ */
1072
+ getIncomeStatement({ symbol, period, limit, }: FinancialStatementsParams): Promise<APIResponse<FinancialStatement[]>>;
1073
+ /**
1074
+ * Get balance sheet
1075
+ */
1076
+ getBalanceSheet({ symbol, period, limit, }: FinancialStatementsParams): Promise<APIResponse<FinancialStatement[]>>;
1077
+ /**
1078
+ * Get cash flow statement
1079
+ */
1080
+ getCashFlowStatement({ symbol, period, limit, }: FinancialStatementsParams): Promise<APIResponse<FinancialStatement[]>>;
1081
+ /**
1082
+ * Get key metrics
1083
+ */
1084
+ getKeyMetrics({ symbol, period, limit, }: KeyMetricsParams): Promise<APIResponse<KeyMetrics[]>>;
1085
+ /**
1086
+ * Get financial ratios
1087
+ */
1088
+ getFinancialRatios({ symbol, period, limit, }: FinancialRatiosParams): Promise<APIResponse<FinancialRatios[]>>;
1089
+ /**
1090
+ * Get enterprise value
1091
+ */
1092
+ getEnterpriseValue({ symbol, period, limit, }: EnterpriseValueParams): Promise<APIResponse<EnterpriseValue[]>>;
1093
+ }
1094
+
1095
+ declare class ForexEndpoints {
1096
+ private client;
1097
+ constructor(client: FMPClient);
1098
+ /**
1099
+ * Get real-time forex quote
1100
+ */
1101
+ getQuote(params: ForexQuoteParams): Promise<APIResponse<ForexQuote[]>>;
1102
+ /**
1103
+ * Get historical forex data
1104
+ */
1105
+ getHistoricalPrice(params: ForexHistoricalParams): Promise<APIResponse<HistoricalPriceResponse>>;
1106
+ /**
1107
+ * Get list of all forex pairs
1108
+ * Using the forex-specific endpoint
1109
+ */
1110
+ getForexList(): Promise<APIResponse<ForexPair[]>>;
1111
+ /**
1112
+ * Get forex rates for a specific currency
1113
+ */
1114
+ getForexRates(baseCurrency?: string): Promise<APIResponse<Record<string, number>>>;
1115
+ /**
1116
+ * Get forex rates for all currencies
1117
+ */
1118
+ getAllForexRates(): Promise<APIResponse<Record<string, Record<string, number>>>>;
1119
+ }
1120
+
1121
+ declare class CryptoEndpoints {
1122
+ private client;
1123
+ constructor(client: FMPClient);
1124
+ /**
1125
+ * Get real-time crypto quote
1126
+ */
1127
+ getQuote(params: CryptoQuoteParams): Promise<APIResponse<CryptoQuote[]>>;
1128
+ /**
1129
+ * Get historical crypto data
1130
+ */
1131
+ getHistoricalPrice(params: CryptoHistoricalParams): Promise<APIResponse<HistoricalPriceResponse>>;
1132
+ /**
1133
+ * Get list of all cryptocurrencies
1134
+ */
1135
+ getCryptoList(): Promise<APIResponse<CryptoCurrency[]>>;
1136
+ }
1137
+
1138
+ declare class ETFEndpoints {
1139
+ private client;
1140
+ constructor(client: FMPClient);
1141
+ /**
1142
+ * Get real-time ETF quote
1143
+ */
1144
+ getQuote(params: ETFQuoteParams): Promise<APIResponse<ETFQuote[]>>;
1145
+ /**
1146
+ * Get ETF profile
1147
+ */
1148
+ getProfile(params: ETFProfileParams): Promise<APIResponse<ETFProfile[]>>;
1149
+ /**
1150
+ * Get ETF holdings
1151
+ */
1152
+ getHoldings(params: ETFHoldersParams): Promise<APIResponse<ETFHolding[]>>;
1153
+ /**
1154
+ * Get list of all ETFs
1155
+ */
1156
+ getETFList(): Promise<APIResponse<ETFList[]>>;
1157
+ }
1158
+
1159
+ declare class MutualFundEndpoints {
1160
+ private client;
1161
+ constructor(client: FMPClient);
1162
+ /**
1163
+ * Get real-time mutual fund quote
1164
+ */
1165
+ getQuote(params: MutualFundQuoteParams): Promise<APIResponse<MutualFundQuote[]>>;
1166
+ /**
1167
+ * Get mutual fund profile
1168
+ */
1169
+ getProfile(params: MutualFundProfileParams): Promise<APIResponse<MutualFundProfile[]>>;
1170
+ /**
1171
+ * Get mutual fund holdings
1172
+ */
1173
+ getHoldings(params: MutualFundHoldersParams): Promise<APIResponse<MutualFundHolding[]>>;
1174
+ /**
1175
+ * Get list of all mutual funds
1176
+ */
1177
+ getMutualFundList(): Promise<APIResponse<MutualFundList[]>>;
1178
+ }
1179
+
1180
+ declare class BondEndpoints {
1181
+ private client;
1182
+ constructor(client: FMPClient);
1183
+ /**
1184
+ * Get real-time bond quote
1185
+ */
1186
+ getQuote(params: BondQuoteParams): Promise<APIResponse<BondQuote[]>>;
1187
+ /**
1188
+ * Get historical bond data
1189
+ */
1190
+ getHistoricalPrice(params: BondHistoricalParams): Promise<APIResponse<HistoricalPriceResponse>>;
1191
+ /**
1192
+ * Get list of all bonds
1193
+ */
1194
+ getBondList(): Promise<APIResponse<BondList[]>>;
1195
+ }
1196
+
1197
+ declare class EconomicEndpoints {
1198
+ private client;
1199
+ constructor(client: FMPClient);
1200
+ /**
1201
+ * Get treasury rates
1202
+ */
1203
+ getTreasuryRates(params?: TreasuryRateParams): Promise<APIResponse<TreasuryRate[]>>;
1204
+ /**
1205
+ * Get federal funds rate
1206
+ */
1207
+ getFederalFundsRate(params?: FederalFundsRateParams): Promise<APIResponse<FederalFundsRate[]>>;
1208
+ /**
1209
+ * Get CPI data
1210
+ */
1211
+ getCPI(params?: CPIParams): Promise<APIResponse<CPI[]>>;
1212
+ /**
1213
+ * Get GDP data
1214
+ */
1215
+ getGDP(params?: GDPParams): Promise<APIResponse<GDP[]>>;
1216
+ /**
1217
+ * Get unemployment data
1218
+ */
1219
+ getUnemployment(params?: UnemploymentParams): Promise<APIResponse<Unemployment[]>>;
1220
+ }
1221
+
1222
+ declare class MarketEndpoints {
1223
+ private client;
1224
+ constructor(client: FMPClient);
1225
+ /**
1226
+ * Get market hours
1227
+ */
1228
+ getMarketHours(): Promise<APIResponse<MarketHours>>;
1229
+ /**
1230
+ * Get market performance
1231
+ */
1232
+ getMarketPerformance(): Promise<APIResponse<MarketPerformance[]>>;
1233
+ /**
1234
+ * Get market gainers
1235
+ */
1236
+ getGainers(): Promise<APIResponse<MarketPerformance[]>>;
1237
+ /**
1238
+ * Get market losers
1239
+ */
1240
+ getLosers(): Promise<APIResponse<MarketPerformance[]>>;
1241
+ /**
1242
+ * Get most active stocks
1243
+ */
1244
+ getMostActive(): Promise<APIResponse<MarketPerformance[]>>;
1245
+ /**
1246
+ * Get sector performance
1247
+ */
1248
+ getSectorPerformance(): Promise<APIResponse<MarketSectorPerformance[]>>;
1249
+ /**
1250
+ * Get market index data
1251
+ */
1252
+ getMarketIndex(params?: MarketIndexParams): Promise<APIResponse<MarketIndex[]>>;
1253
+ }
1254
+
1255
+ /**
1256
+ * Main FMP API client that provides access to all endpoints
1257
+ *
1258
+ * @example
1259
+ * ```typescript
1260
+ * import { FMP } from 'fmp-node-api';
1261
+ *
1262
+ * const fmp = new FMP({ apiKey: 'your-api-key' });
1263
+ *
1264
+ * // Get stock quote
1265
+ * const quote = await fmp.stock.getQuote({ symbol: 'AAPL' });
1266
+ *
1267
+ * // Get financial statements
1268
+ * const incomeStatement = await fmp.financial.getIncomeStatement({
1269
+ * symbol: 'AAPL',
1270
+ * period: 'annual'
1271
+ * });
1272
+ *
1273
+ * // Get forex data
1274
+ * const forexQuote = await fmp.forex.getQuote({ symbol: 'EURUSD' });
1275
+ * ```
1276
+ */
1277
+ declare class FMP {
1278
+ readonly stock: StockEndpoints;
1279
+ readonly financial: FinancialEndpoints;
1280
+ readonly forex: ForexEndpoints;
1281
+ readonly crypto: CryptoEndpoints;
1282
+ readonly etf: ETFEndpoints;
1283
+ readonly mutualFund: MutualFundEndpoints;
1284
+ readonly bond: BondEndpoints;
1285
+ readonly economic: EconomicEndpoints;
1286
+ readonly market: MarketEndpoints;
1287
+ constructor(config: FMPConfig);
1288
+ /**
1289
+ * Get the underlying client instance for advanced usage
1290
+ */
1291
+ getClient(): FMPClient;
1292
+ }
1293
+
1294
+ /**
1295
+ * Validate date format (YYYY-MM-DD)
1296
+ */
1297
+ declare function validateDate(date: string): void;
1298
+ /**
1299
+ * Validate period parameter
1300
+ */
1301
+ declare function validatePeriod(period: string): void;
1302
+ /**
1303
+ * Validate limit parameter
1304
+ */
1305
+ declare function validateLimit(limit: number): void;
1306
+ /**
1307
+ * Validate page parameter
1308
+ */
1309
+ declare function validatePage(page: number): void;
1310
+
1311
+ /**
1312
+ * Format currency value
1313
+ */
1314
+ declare function formatCurrency(value: number, currency?: string): string;
1315
+ /**
1316
+ * Format percentage value
1317
+ */
1318
+ declare function formatPercentage(value: number, decimals?: number): string;
1319
+ /**
1320
+ * Format large numbers with K, M, B suffixes
1321
+ */
1322
+ declare function formatLargeNumber(value: number): string;
1323
+ /**
1324
+ * Format date to YYYY-MM-DD
1325
+ */
1326
+ declare function formatDate(date: Date | string): string;
1327
+ /**
1328
+ * Format date to readable format
1329
+ */
1330
+ declare function formatReadableDate(date: Date | string): string;
1331
+ /**
1332
+ * Format timestamp to readable format
1333
+ */
1334
+ declare function formatTimestamp(timestamp: number): string;
1335
+ /**
1336
+ * Format number with specified decimal places
1337
+ */
1338
+ declare function formatNumber(value: number, decimals?: number): string;
1339
+ /**
1340
+ * Format volume with appropriate units
1341
+ */
1342
+ declare function formatVolume(volume: number): string;
1343
+
1344
+ declare const DEFAULT_TIMEOUT = 10000;
1345
+ declare const DEFAULT_LIMIT = 100;
1346
+ declare const MAX_LIMIT = 1000;
1347
+ declare const PERIODS: {
1348
+ readonly ANNUAL: "annual";
1349
+ readonly QUARTER: "quarter";
1350
+ };
1351
+ declare const EXCHANGES: {
1352
+ readonly NYSE: "NYSE";
1353
+ readonly NASDAQ: "NASDAQ";
1354
+ readonly AMEX: "AMEX";
1355
+ readonly TSX: "TSX";
1356
+ readonly LSE: "LSE";
1357
+ readonly ASX: "ASX";
1358
+ readonly NSE: "NSE";
1359
+ readonly BSE: "BSE";
1360
+ };
1361
+ declare const SECTORS: {
1362
+ readonly TECHNOLOGY: "Technology";
1363
+ readonly HEALTHCARE: "Healthcare";
1364
+ readonly FINANCIAL: "Financial";
1365
+ readonly CONSUMER_DISCRETIONARY: "Consumer Discretionary";
1366
+ readonly CONSUMER_STAPLES: "Consumer Staples";
1367
+ readonly INDUSTRIALS: "Industrials";
1368
+ readonly ENERGY: "Energy";
1369
+ readonly MATERIALS: "Materials";
1370
+ readonly UTILITIES: "Utilities";
1371
+ readonly REAL_ESTATE: "Real Estate";
1372
+ readonly COMMUNICATION_SERVICES: "Communication Services";
1373
+ };
1374
+ declare const COUNTRIES: {
1375
+ readonly US: "US";
1376
+ readonly CA: "CA";
1377
+ readonly GB: "GB";
1378
+ readonly AU: "AU";
1379
+ readonly IN: "IN";
1380
+ readonly DE: "DE";
1381
+ readonly FR: "FR";
1382
+ readonly JP: "JP";
1383
+ readonly CN: "CN";
1384
+ readonly BR: "BR";
1385
+ };
1386
+ declare const ERROR_MESSAGES: {
1387
+ readonly API_KEY_REQUIRED: "API key is required";
1388
+ readonly SYMBOL_REQUIRED: "Symbol is required";
1389
+ readonly INVALID_SYMBOL: "Invalid symbol format";
1390
+ readonly INVALID_DATE: "Invalid date format. Use YYYY-MM-DD";
1391
+ readonly INVALID_PERIOD: "Period must be either \"annual\" or \"quarter\"";
1392
+ readonly INVALID_LIMIT: "Limit must be between 1 and 1000";
1393
+ readonly INVALID_PAGE: "Page must be a non-negative number";
1394
+ readonly REQUEST_FAILED: "Request failed";
1395
+ readonly RATE_LIMIT_EXCEEDED: "Rate limit exceeded";
1396
+ readonly UNAUTHORIZED: "Unauthorized - Invalid API key";
1397
+ readonly NOT_FOUND: "Resource not found";
1398
+ };
1399
+ declare const HTTP_STATUS: {
1400
+ readonly OK: 200;
1401
+ readonly CREATED: 201;
1402
+ readonly BAD_REQUEST: 400;
1403
+ readonly UNAUTHORIZED: 401;
1404
+ readonly FORBIDDEN: 403;
1405
+ readonly NOT_FOUND: 404;
1406
+ readonly TOO_MANY_REQUESTS: 429;
1407
+ readonly INTERNAL_SERVER_ERROR: 500;
1408
+ };
1409
+
1410
+ declare class FMPError extends Error {
1411
+ status?: number | undefined;
1412
+ code?: string | undefined;
1413
+ constructor(message: string, status?: number | undefined, code?: string | undefined);
1414
+ }
1415
+ declare function validateApiKey(apiKey: string): void;
1416
+ declare function validateSymbol(symbol: string): void;
1417
+ declare const FMP_BASE_URL = "https://financialmodelingprep.com/api/v3";
1418
+ declare const FMP_BASE_URL_V4 = "https://financialmodelingprep.com/api/v4";
1419
+ declare enum Period {
1420
+ ANNUAL = "annual",
1421
+ QUARTER = "quarter"
1422
+ }
1423
+ declare enum Exchange {
1424
+ NYSE = "NYSE",
1425
+ NASDAQ = "NASDAQ",
1426
+ AMEX = "AMEX",
1427
+ TSX = "TSX",
1428
+ LSE = "LSE"
1429
+ }
1430
+
1431
+ export { type APIResponse, type AnalystEstimate, type BalanceSheet, type BalanceSheetParams, BondEndpoints, type BondHistoricalParams, type BondList, type BondListParams, type BondQuote, type BondQuoteParams, COUNTRIES, type CPI, type CPIParams, type CashFlowParams, type CashFlowStatement, type CompanyProfile, type CompanyValuationParams, type CryptoCurrency, CryptoEndpoints, type CryptoHistoricalParams, type CryptoListParams, type CryptoQuote, type CryptoQuoteParams, DEFAULT_LIMIT, DEFAULT_TIMEOUT, type DateRangeParams, ERROR_MESSAGES, ETFEndpoints, type ETFHoldersParams, type ETFHolding, type ETFList, type ETFListParams, type ETFProfile, type ETFProfileParams, type ETFQuote, type ETFQuoteParams, EXCHANGES, type EarningsCalendar, EconomicEndpoints, type EconomicIndicator, type EconomicIndicatorParams, type EnterpriseValue, type EnterpriseValueParams, type ErrorResponse, Exchange, FMP, FMPClient, type FMPConfig, FMPError, FMP_BASE_URL, FMP_BASE_URL_V4, FMP_STABLE_URL, type FederalFundsRate, type FederalFundsRateParams, FinancialEndpoints, type FinancialGrowthParams, type FinancialRatios, type FinancialRatiosParams, type FinancialStatement, type FinancialStatementsParams, ForexEndpoints, type ForexHistoricalParams, type ForexListParams, type ForexPair, type ForexQuote, type ForexQuoteParams, type GDP, type GDPParams, HTTP_STATUS, type HistoricalPriceData, type HistoricalPriceResponse, type IncomeStatement, type IncomeStatementParams, type InsiderTrading, type InstitutionalHolder, type KeyMetrics, type KeyMetricsParams, MAX_LIMIT, type MajorHolder, type MarketCap, MarketEndpoints, type MarketGainersParams, type MarketHours, type MarketHoursParams, type MarketIndex, type MarketIndexParams, type MarketLosersParams, type MarketMostActiveParams, type MarketPerformance, type MarketPerformanceParams, type MarketSectorPerformance, type MarketSectorPerformanceParams, MutualFundEndpoints, type MutualFundHolder, type MutualFundHoldersParams, type MutualFundHolding, type MutualFundList, type MutualFundListParams, type MutualFundProfile, type MutualFundProfileParams, type MutualFundQuote, type MutualFundQuoteParams, PERIODS, type PaginationParams, Period, type PeriodParams, type PriceTarget, type QueryParams, type Quote, SECTORS, type SectorPerformance, type StockAnalystEstimatesParams, type StockDividend, type StockDividendParams, type StockEarningsCalendarParams, StockEndpoints, type StockGainersParams, type StockGrade, type StockGradeParams, type StockHistoricalPriceData, type StockHistoricalPriceParams, type StockHistoricalPriceResponse, type StockInsiderTradingParams, type StockInstitutionalHoldersParams, type StockList, type StockLosersParams, type StockMajorHoldersParams, type StockMarketCapParams, type StockMostActiveParams, type StockMutualFundHoldersParams, type StockPriceTargetParams, type StockProfileParams, type StockQuote, type StockQuoteParams, type StockRating, type StockRatingParams, type StockSectorPerformanceParams, type StockSplit, type StockSplitsParams, type SuccessResponse, type SymbolParams, type TreasuryRate, type TreasuryRateParams, type Unemployment, type UnemploymentParams, formatCurrency, formatDate, formatLargeNumber, formatNumber, formatPercentage, formatReadableDate, formatTimestamp, formatVolume, validateApiKey, validateDate, validateLimit, validatePage, validatePeriod, validateSymbol };