@tradejs/infra 1.0.9 → 1.0.10

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.
@@ -1,5 +1,5 @@
1
1
  import { Pool } from 'pg';
2
- import { DerivativesInterval, DerivativesRow, KlineChartData, SpreadRow } from '@tradejs/types';
2
+ import { DerivativesInterval, DerivativesRow, MarketFeatureInterval, MarketBreadthRow, MarketCmcExchangeLiquidityContextRow, MarketCmcFearGreedContextRow, MarketCmcIndexContextRow, MarketGlobalContextRow, MarketReferenceAssetContextRow, MarketTradeFlowRow, KlineChartData, SpreadRow } from '@tradejs/types';
3
3
 
4
4
  declare global {
5
5
  var __pgPool__: Pool | undefined;
@@ -15,7 +15,12 @@ type CandleRow = {
15
15
  close: number;
16
16
  volume?: number | null;
17
17
  turnover?: number | null;
18
+ takerBuyBaseVolume?: number | null;
19
+ takerBuyQuoteVolume?: number | null;
20
+ takerSellBaseVolume?: number | null;
21
+ takerSellQuoteVolume?: number | null;
18
22
  };
23
+ declare const closeTimescalePool: () => Promise<void>;
19
24
  declare const toRows: (provider: string, symbol: string, interval: number, data: KlineChartData) => CandleRow[];
20
25
  declare function upsertCandles(rows: CandleRow[]): Promise<void>;
21
26
  declare function upsertDerivatives(rows: DerivativesRow[]): Promise<void>;
@@ -24,18 +29,224 @@ declare function getDerivativesDataEdgesForSymbols(symbols: string[], interval:
24
29
  min?: number;
25
30
  max?: number;
26
31
  }>>;
32
+ declare function getDerivativesBackfillCoverage(params: {
33
+ source: string;
34
+ symbols: string[];
35
+ interval: DerivativesInterval;
36
+ fromMs: number;
37
+ toMs: number;
38
+ }): Promise<{
39
+ symbol: string;
40
+ interval: DerivativesInterval;
41
+ fromMs: number;
42
+ toMs: number;
43
+ rowsCount: number;
44
+ }[]>;
45
+ declare function upsertDerivativesBackfillCoverage(rows: Array<{
46
+ source: string;
47
+ symbol: string;
48
+ interval: DerivativesInterval;
49
+ fromMs: number;
50
+ toMs: number;
51
+ rowsCount: number;
52
+ }>): Promise<void>;
27
53
  declare function getDerivativesWindow(params: {
28
54
  symbol: string;
29
55
  intervals: DerivativesInterval[];
30
56
  endMs: number;
31
57
  lookbackMs: number;
32
58
  }): Promise<Partial<Record<DerivativesInterval, DerivativesRow[]>>>;
33
- declare function getDerivativesSummary(hours?: number, limit?: number): Promise<{
34
- rows: any[];
35
- aggregates: any[];
59
+ declare function getDerivativesSummary(hours?: number, limit?: number, symbols?: string[]): Promise<{
36
60
  hours: number;
61
+ items: {
62
+ symbol: string;
63
+ interval: string;
64
+ points: number;
65
+ last_ts: string | Date;
66
+ first_ts: string | Date;
67
+ latest_open_interest: number | null;
68
+ first_open_interest: number | null;
69
+ oi_change: number | null;
70
+ oi_change_pct: number | null;
71
+ latest_funding_rate: number | null;
72
+ first_funding_rate: number | null;
73
+ funding_change: number | null;
74
+ sum_liq_long: number | null;
75
+ sum_liq_short: number | null;
76
+ sum_liq_total: number | null;
77
+ }[];
37
78
  }>;
38
79
  declare function upsertSpreadRows(rows: SpreadRow[]): Promise<void>;
80
+ declare function upsertMarketTradeFlowRows(rows: MarketTradeFlowRow[]): Promise<void>;
81
+ declare function upsertMarketBreadthRows(rows: MarketBreadthRow[]): Promise<void>;
82
+ declare function upsertMarketGlobalContextRows(rows: MarketGlobalContextRow[]): Promise<void>;
83
+ declare function upsertMarketReferenceAssetContextRows(rows: MarketReferenceAssetContextRow[]): Promise<void>;
84
+ declare function upsertMarketCmcExchangeLiquidityContextRows(rows: MarketCmcExchangeLiquidityContextRow[]): Promise<void>;
85
+ declare function upsertMarketCmcFearGreedContextRows(rows: MarketCmcFearGreedContextRow[]): Promise<void>;
86
+ declare function upsertMarketCmcIndexContextRows(rows: MarketCmcIndexContextRow[]): Promise<void>;
87
+ declare function getMarketContextBackfillCoverage(params: {
88
+ source: string;
89
+ scopes: string[];
90
+ interval: string;
91
+ fromMs: number;
92
+ toMs: number;
93
+ }): Promise<Array<{
94
+ source: string;
95
+ scope: string;
96
+ interval: string;
97
+ fromMs: number;
98
+ toMs: number;
99
+ rowsCount: number;
100
+ }>>;
101
+ declare function upsertMarketContextBackfillCoverage(rows: Array<{
102
+ source: string;
103
+ scope: string;
104
+ interval: string;
105
+ fromMs: number;
106
+ toMs: number;
107
+ rowsCount: number;
108
+ }>): Promise<void>;
109
+ type MarketFeatureAsOf<T> = T & {
110
+ ageMs: number | null;
111
+ stale: boolean;
112
+ };
113
+ declare function getLatestMarketTradeFlow(params: {
114
+ symbol: string;
115
+ interval: MarketFeatureInterval;
116
+ atMs: number;
117
+ maxAgeMs?: number;
118
+ }): Promise<MarketFeatureAsOf<MarketTradeFlowRow> | null>;
119
+ declare function getLatestMarketBreadth(params: {
120
+ universe: string;
121
+ interval: MarketFeatureInterval;
122
+ atMs: number;
123
+ maxAgeMs?: number;
124
+ }): Promise<MarketFeatureAsOf<MarketBreadthRow> | null>;
125
+ declare function getLatestMarketGlobalContext(params: {
126
+ source?: MarketGlobalContextRow['source'];
127
+ atMs: number;
128
+ maxAgeMs?: number;
129
+ }): Promise<(MarketFeatureAsOf<MarketGlobalContextRow> & {
130
+ btcDominanceChange24hPct: number | null;
131
+ ethDominanceChange24hPct: number | null;
132
+ altMarketCapChange24hPct: number | null;
133
+ altVolumeChange24hPct: number | null;
134
+ }) | null>;
135
+ declare function getMarketGlobalContextCoverage(params: {
136
+ source: MarketGlobalContextRow['source'];
137
+ startMs: number;
138
+ endMs: number;
139
+ }): Promise<{
140
+ firstMs: number;
141
+ lastMs: number;
142
+ rows: number;
143
+ } | null>;
144
+ declare function getMarketReferenceAssetContextCoverage(params: {
145
+ source: MarketReferenceAssetContextRow['source'];
146
+ symbols: string[];
147
+ interval: MarketReferenceAssetContextRow['interval'];
148
+ startMs: number;
149
+ endMs: number;
150
+ }): Promise<Map<string, {
151
+ firstMs: number;
152
+ lastMs: number;
153
+ rows: number;
154
+ }>>;
155
+ declare function getLatestMarketReferenceAssetContexts(params: {
156
+ source?: MarketReferenceAssetContextRow['source'];
157
+ symbols: string[];
158
+ interval?: MarketReferenceAssetContextRow['interval'];
159
+ atMs: number;
160
+ maxAgeMs?: number;
161
+ }): Promise<Map<string, MarketFeatureAsOf<MarketReferenceAssetContextRow>>>;
162
+ declare function getLatestMarketCmcExchangeLiquidityContext(params: {
163
+ source?: MarketCmcExchangeLiquidityContextRow['source'];
164
+ interval?: MarketCmcExchangeLiquidityContextRow['interval'];
165
+ atMs: number;
166
+ maxAgeMs?: number;
167
+ }): Promise<(MarketFeatureAsOf<MarketCmcExchangeLiquidityContextRow> & {
168
+ totalVolumeChange24hPct: number | null;
169
+ }) | null>;
170
+ declare function getLatestMarketCmcIndexContexts(params: {
171
+ source?: MarketCmcIndexContextRow['source'];
172
+ indexSlugs: MarketCmcIndexContextRow['indexSlug'][];
173
+ interval?: MarketCmcIndexContextRow['interval'];
174
+ atMs: number;
175
+ maxAgeMs?: number;
176
+ }): Promise<Map<MarketCmcIndexContextRow['indexSlug'], MarketFeatureAsOf<MarketCmcIndexContextRow> & {
177
+ valueChange24hPct: number | null;
178
+ }>>;
179
+ declare function getLatestMarketCmcFearGreedContext(params: {
180
+ source?: MarketCmcFearGreedContextRow['source'];
181
+ interval?: MarketCmcFearGreedContextRow['interval'];
182
+ atMs: number;
183
+ maxAgeMs?: number;
184
+ }): Promise<(MarketFeatureAsOf<MarketCmcFearGreedContextRow> & {
185
+ valueChange24h: number | null;
186
+ valueChange7d: number | null;
187
+ }) | null>;
188
+ declare function getMarketCmcFearGreedContextCoverage(params: {
189
+ source: MarketCmcFearGreedContextRow['source'];
190
+ interval: MarketCmcFearGreedContextRow['interval'];
191
+ startMs: number;
192
+ endMs: number;
193
+ }): Promise<{
194
+ firstMs: number;
195
+ lastMs: number;
196
+ rows: number;
197
+ } | null>;
198
+ declare function getMarketCmcExchangeLiquidityContextCoverage(params: {
199
+ source: MarketCmcExchangeLiquidityContextRow['source'];
200
+ interval: MarketCmcExchangeLiquidityContextRow['interval'];
201
+ startMs: number;
202
+ endMs: number;
203
+ }): Promise<{
204
+ firstMs: number;
205
+ lastMs: number;
206
+ rows: number;
207
+ } | null>;
208
+ declare function getMarketCmcIndexContextCoverage(params: {
209
+ source: MarketCmcIndexContextRow['source'];
210
+ indexSlugs: MarketCmcIndexContextRow['indexSlug'][];
211
+ interval: MarketCmcIndexContextRow['interval'];
212
+ startMs: number;
213
+ endMs: number;
214
+ }): Promise<Map<MarketCmcIndexContextRow['indexSlug'], {
215
+ firstMs: number;
216
+ lastMs: number;
217
+ rows: number;
218
+ }>>;
219
+ declare function getMarketTradeFlowCoverage(params: {
220
+ symbols: string[];
221
+ interval: MarketFeatureInterval;
222
+ startMs: number;
223
+ endMs: number;
224
+ }): Promise<Map<string, {
225
+ firstMs: number;
226
+ lastMs: number;
227
+ rows: number;
228
+ }>>;
229
+ type DeprecatedMarketContextCleanupItem = {
230
+ kind: 'table' | 'rows';
231
+ name: string;
232
+ rows: number;
233
+ action: 'drop_table' | 'delete_rows';
234
+ applied: boolean;
235
+ };
236
+ declare function cleanupDeprecatedMarketContext(params?: {
237
+ apply?: boolean;
238
+ }): Promise<DeprecatedMarketContextCleanupItem[]>;
239
+ declare function getMarketBreadthCoverage(params: {
240
+ universe: string;
241
+ interval: MarketFeatureInterval;
242
+ startMs: number;
243
+ endMs: number;
244
+ }): Promise<{
245
+ firstMs: number;
246
+ lastMs: number;
247
+ rows: number;
248
+ btcAltMetricsRows: number;
249
+ } | null>;
39
250
  declare function getSpreadRangeForSymbols(symbols: string[], interval: DerivativesInterval, startMs: number, endMs: number): Promise<any[]>;
40
251
  declare function getSpreadSummary(hours?: number, limit?: number): Promise<{
41
252
  rows: any[];
@@ -47,6 +258,10 @@ declare function getDataEdges(provider: string, symbol: string, interval: number
47
258
  min: number | undefined;
48
259
  max: number | undefined;
49
260
  }>;
261
+ declare function getDataEdgesForSymbols(provider: string, symbols: string[], interval: number): Promise<Map<string, {
262
+ min?: number;
263
+ max?: number;
264
+ }>>;
50
265
  declare function waitForDbReady(attempts?: number, delayMs?: number): Promise<void>;
51
266
  declare function deleteCandles(provider: string, symbol: string, interval: number): Promise<void>;
52
267
  declare function findContinuityGap(provider: string, symbol: string, interval: number): Promise<{
@@ -55,4 +270,4 @@ declare function findContinuityGap(provider: string, symbol: string, interval: n
55
270
  diffSeconds: number;
56
271
  } | null>;
57
272
 
58
- export { type CandleRow, deleteCandles, findContinuityGap, getCandlesRange, getDataEdges, getDerivativesDataEdgesForSymbols, getDerivativesRangeForSymbols, getDerivativesSummary, getDerivativesWindow, getSpreadRangeForSymbols, getSpreadSummary, toRows, upsertCandles, upsertDerivatives, upsertSpreadRows, waitForDbReady };
273
+ export { type CandleRow, type DeprecatedMarketContextCleanupItem, type MarketFeatureAsOf, cleanupDeprecatedMarketContext, closeTimescalePool, deleteCandles, findContinuityGap, getCandlesRange, getDataEdges, getDataEdgesForSymbols, getDerivativesBackfillCoverage, getDerivativesDataEdgesForSymbols, getDerivativesRangeForSymbols, getDerivativesSummary, getDerivativesWindow, getLatestMarketBreadth, getLatestMarketCmcExchangeLiquidityContext, getLatestMarketCmcFearGreedContext, getLatestMarketCmcIndexContexts, getLatestMarketGlobalContext, getLatestMarketReferenceAssetContexts, getLatestMarketTradeFlow, getMarketBreadthCoverage, getMarketCmcExchangeLiquidityContextCoverage, getMarketCmcFearGreedContextCoverage, getMarketCmcIndexContextCoverage, getMarketContextBackfillCoverage, getMarketGlobalContextCoverage, getMarketReferenceAssetContextCoverage, getMarketTradeFlowCoverage, getSpreadRangeForSymbols, getSpreadSummary, toRows, upsertCandles, upsertDerivatives, upsertDerivativesBackfillCoverage, upsertMarketBreadthRows, upsertMarketCmcExchangeLiquidityContextRows, upsertMarketCmcFearGreedContextRows, upsertMarketCmcIndexContextRows, upsertMarketContextBackfillCoverage, upsertMarketGlobalContextRows, upsertMarketReferenceAssetContextRows, upsertMarketTradeFlowRows, upsertSpreadRows, waitForDbReady };
@@ -1,5 +1,5 @@
1
1
  import { Pool } from 'pg';
2
- import { DerivativesInterval, DerivativesRow, KlineChartData, SpreadRow } from '@tradejs/types';
2
+ import { DerivativesInterval, DerivativesRow, MarketFeatureInterval, MarketBreadthRow, MarketCmcExchangeLiquidityContextRow, MarketCmcFearGreedContextRow, MarketCmcIndexContextRow, MarketGlobalContextRow, MarketReferenceAssetContextRow, MarketTradeFlowRow, KlineChartData, SpreadRow } from '@tradejs/types';
3
3
 
4
4
  declare global {
5
5
  var __pgPool__: Pool | undefined;
@@ -15,7 +15,12 @@ type CandleRow = {
15
15
  close: number;
16
16
  volume?: number | null;
17
17
  turnover?: number | null;
18
+ takerBuyBaseVolume?: number | null;
19
+ takerBuyQuoteVolume?: number | null;
20
+ takerSellBaseVolume?: number | null;
21
+ takerSellQuoteVolume?: number | null;
18
22
  };
23
+ declare const closeTimescalePool: () => Promise<void>;
19
24
  declare const toRows: (provider: string, symbol: string, interval: number, data: KlineChartData) => CandleRow[];
20
25
  declare function upsertCandles(rows: CandleRow[]): Promise<void>;
21
26
  declare function upsertDerivatives(rows: DerivativesRow[]): Promise<void>;
@@ -24,18 +29,224 @@ declare function getDerivativesDataEdgesForSymbols(symbols: string[], interval:
24
29
  min?: number;
25
30
  max?: number;
26
31
  }>>;
32
+ declare function getDerivativesBackfillCoverage(params: {
33
+ source: string;
34
+ symbols: string[];
35
+ interval: DerivativesInterval;
36
+ fromMs: number;
37
+ toMs: number;
38
+ }): Promise<{
39
+ symbol: string;
40
+ interval: DerivativesInterval;
41
+ fromMs: number;
42
+ toMs: number;
43
+ rowsCount: number;
44
+ }[]>;
45
+ declare function upsertDerivativesBackfillCoverage(rows: Array<{
46
+ source: string;
47
+ symbol: string;
48
+ interval: DerivativesInterval;
49
+ fromMs: number;
50
+ toMs: number;
51
+ rowsCount: number;
52
+ }>): Promise<void>;
27
53
  declare function getDerivativesWindow(params: {
28
54
  symbol: string;
29
55
  intervals: DerivativesInterval[];
30
56
  endMs: number;
31
57
  lookbackMs: number;
32
58
  }): Promise<Partial<Record<DerivativesInterval, DerivativesRow[]>>>;
33
- declare function getDerivativesSummary(hours?: number, limit?: number): Promise<{
34
- rows: any[];
35
- aggregates: any[];
59
+ declare function getDerivativesSummary(hours?: number, limit?: number, symbols?: string[]): Promise<{
36
60
  hours: number;
61
+ items: {
62
+ symbol: string;
63
+ interval: string;
64
+ points: number;
65
+ last_ts: string | Date;
66
+ first_ts: string | Date;
67
+ latest_open_interest: number | null;
68
+ first_open_interest: number | null;
69
+ oi_change: number | null;
70
+ oi_change_pct: number | null;
71
+ latest_funding_rate: number | null;
72
+ first_funding_rate: number | null;
73
+ funding_change: number | null;
74
+ sum_liq_long: number | null;
75
+ sum_liq_short: number | null;
76
+ sum_liq_total: number | null;
77
+ }[];
37
78
  }>;
38
79
  declare function upsertSpreadRows(rows: SpreadRow[]): Promise<void>;
80
+ declare function upsertMarketTradeFlowRows(rows: MarketTradeFlowRow[]): Promise<void>;
81
+ declare function upsertMarketBreadthRows(rows: MarketBreadthRow[]): Promise<void>;
82
+ declare function upsertMarketGlobalContextRows(rows: MarketGlobalContextRow[]): Promise<void>;
83
+ declare function upsertMarketReferenceAssetContextRows(rows: MarketReferenceAssetContextRow[]): Promise<void>;
84
+ declare function upsertMarketCmcExchangeLiquidityContextRows(rows: MarketCmcExchangeLiquidityContextRow[]): Promise<void>;
85
+ declare function upsertMarketCmcFearGreedContextRows(rows: MarketCmcFearGreedContextRow[]): Promise<void>;
86
+ declare function upsertMarketCmcIndexContextRows(rows: MarketCmcIndexContextRow[]): Promise<void>;
87
+ declare function getMarketContextBackfillCoverage(params: {
88
+ source: string;
89
+ scopes: string[];
90
+ interval: string;
91
+ fromMs: number;
92
+ toMs: number;
93
+ }): Promise<Array<{
94
+ source: string;
95
+ scope: string;
96
+ interval: string;
97
+ fromMs: number;
98
+ toMs: number;
99
+ rowsCount: number;
100
+ }>>;
101
+ declare function upsertMarketContextBackfillCoverage(rows: Array<{
102
+ source: string;
103
+ scope: string;
104
+ interval: string;
105
+ fromMs: number;
106
+ toMs: number;
107
+ rowsCount: number;
108
+ }>): Promise<void>;
109
+ type MarketFeatureAsOf<T> = T & {
110
+ ageMs: number | null;
111
+ stale: boolean;
112
+ };
113
+ declare function getLatestMarketTradeFlow(params: {
114
+ symbol: string;
115
+ interval: MarketFeatureInterval;
116
+ atMs: number;
117
+ maxAgeMs?: number;
118
+ }): Promise<MarketFeatureAsOf<MarketTradeFlowRow> | null>;
119
+ declare function getLatestMarketBreadth(params: {
120
+ universe: string;
121
+ interval: MarketFeatureInterval;
122
+ atMs: number;
123
+ maxAgeMs?: number;
124
+ }): Promise<MarketFeatureAsOf<MarketBreadthRow> | null>;
125
+ declare function getLatestMarketGlobalContext(params: {
126
+ source?: MarketGlobalContextRow['source'];
127
+ atMs: number;
128
+ maxAgeMs?: number;
129
+ }): Promise<(MarketFeatureAsOf<MarketGlobalContextRow> & {
130
+ btcDominanceChange24hPct: number | null;
131
+ ethDominanceChange24hPct: number | null;
132
+ altMarketCapChange24hPct: number | null;
133
+ altVolumeChange24hPct: number | null;
134
+ }) | null>;
135
+ declare function getMarketGlobalContextCoverage(params: {
136
+ source: MarketGlobalContextRow['source'];
137
+ startMs: number;
138
+ endMs: number;
139
+ }): Promise<{
140
+ firstMs: number;
141
+ lastMs: number;
142
+ rows: number;
143
+ } | null>;
144
+ declare function getMarketReferenceAssetContextCoverage(params: {
145
+ source: MarketReferenceAssetContextRow['source'];
146
+ symbols: string[];
147
+ interval: MarketReferenceAssetContextRow['interval'];
148
+ startMs: number;
149
+ endMs: number;
150
+ }): Promise<Map<string, {
151
+ firstMs: number;
152
+ lastMs: number;
153
+ rows: number;
154
+ }>>;
155
+ declare function getLatestMarketReferenceAssetContexts(params: {
156
+ source?: MarketReferenceAssetContextRow['source'];
157
+ symbols: string[];
158
+ interval?: MarketReferenceAssetContextRow['interval'];
159
+ atMs: number;
160
+ maxAgeMs?: number;
161
+ }): Promise<Map<string, MarketFeatureAsOf<MarketReferenceAssetContextRow>>>;
162
+ declare function getLatestMarketCmcExchangeLiquidityContext(params: {
163
+ source?: MarketCmcExchangeLiquidityContextRow['source'];
164
+ interval?: MarketCmcExchangeLiquidityContextRow['interval'];
165
+ atMs: number;
166
+ maxAgeMs?: number;
167
+ }): Promise<(MarketFeatureAsOf<MarketCmcExchangeLiquidityContextRow> & {
168
+ totalVolumeChange24hPct: number | null;
169
+ }) | null>;
170
+ declare function getLatestMarketCmcIndexContexts(params: {
171
+ source?: MarketCmcIndexContextRow['source'];
172
+ indexSlugs: MarketCmcIndexContextRow['indexSlug'][];
173
+ interval?: MarketCmcIndexContextRow['interval'];
174
+ atMs: number;
175
+ maxAgeMs?: number;
176
+ }): Promise<Map<MarketCmcIndexContextRow['indexSlug'], MarketFeatureAsOf<MarketCmcIndexContextRow> & {
177
+ valueChange24hPct: number | null;
178
+ }>>;
179
+ declare function getLatestMarketCmcFearGreedContext(params: {
180
+ source?: MarketCmcFearGreedContextRow['source'];
181
+ interval?: MarketCmcFearGreedContextRow['interval'];
182
+ atMs: number;
183
+ maxAgeMs?: number;
184
+ }): Promise<(MarketFeatureAsOf<MarketCmcFearGreedContextRow> & {
185
+ valueChange24h: number | null;
186
+ valueChange7d: number | null;
187
+ }) | null>;
188
+ declare function getMarketCmcFearGreedContextCoverage(params: {
189
+ source: MarketCmcFearGreedContextRow['source'];
190
+ interval: MarketCmcFearGreedContextRow['interval'];
191
+ startMs: number;
192
+ endMs: number;
193
+ }): Promise<{
194
+ firstMs: number;
195
+ lastMs: number;
196
+ rows: number;
197
+ } | null>;
198
+ declare function getMarketCmcExchangeLiquidityContextCoverage(params: {
199
+ source: MarketCmcExchangeLiquidityContextRow['source'];
200
+ interval: MarketCmcExchangeLiquidityContextRow['interval'];
201
+ startMs: number;
202
+ endMs: number;
203
+ }): Promise<{
204
+ firstMs: number;
205
+ lastMs: number;
206
+ rows: number;
207
+ } | null>;
208
+ declare function getMarketCmcIndexContextCoverage(params: {
209
+ source: MarketCmcIndexContextRow['source'];
210
+ indexSlugs: MarketCmcIndexContextRow['indexSlug'][];
211
+ interval: MarketCmcIndexContextRow['interval'];
212
+ startMs: number;
213
+ endMs: number;
214
+ }): Promise<Map<MarketCmcIndexContextRow['indexSlug'], {
215
+ firstMs: number;
216
+ lastMs: number;
217
+ rows: number;
218
+ }>>;
219
+ declare function getMarketTradeFlowCoverage(params: {
220
+ symbols: string[];
221
+ interval: MarketFeatureInterval;
222
+ startMs: number;
223
+ endMs: number;
224
+ }): Promise<Map<string, {
225
+ firstMs: number;
226
+ lastMs: number;
227
+ rows: number;
228
+ }>>;
229
+ type DeprecatedMarketContextCleanupItem = {
230
+ kind: 'table' | 'rows';
231
+ name: string;
232
+ rows: number;
233
+ action: 'drop_table' | 'delete_rows';
234
+ applied: boolean;
235
+ };
236
+ declare function cleanupDeprecatedMarketContext(params?: {
237
+ apply?: boolean;
238
+ }): Promise<DeprecatedMarketContextCleanupItem[]>;
239
+ declare function getMarketBreadthCoverage(params: {
240
+ universe: string;
241
+ interval: MarketFeatureInterval;
242
+ startMs: number;
243
+ endMs: number;
244
+ }): Promise<{
245
+ firstMs: number;
246
+ lastMs: number;
247
+ rows: number;
248
+ btcAltMetricsRows: number;
249
+ } | null>;
39
250
  declare function getSpreadRangeForSymbols(symbols: string[], interval: DerivativesInterval, startMs: number, endMs: number): Promise<any[]>;
40
251
  declare function getSpreadSummary(hours?: number, limit?: number): Promise<{
41
252
  rows: any[];
@@ -47,6 +258,10 @@ declare function getDataEdges(provider: string, symbol: string, interval: number
47
258
  min: number | undefined;
48
259
  max: number | undefined;
49
260
  }>;
261
+ declare function getDataEdgesForSymbols(provider: string, symbols: string[], interval: number): Promise<Map<string, {
262
+ min?: number;
263
+ max?: number;
264
+ }>>;
50
265
  declare function waitForDbReady(attempts?: number, delayMs?: number): Promise<void>;
51
266
  declare function deleteCandles(provider: string, symbol: string, interval: number): Promise<void>;
52
267
  declare function findContinuityGap(provider: string, symbol: string, interval: number): Promise<{
@@ -55,4 +270,4 @@ declare function findContinuityGap(provider: string, symbol: string, interval: n
55
270
  diffSeconds: number;
56
271
  } | null>;
57
272
 
58
- export { type CandleRow, deleteCandles, findContinuityGap, getCandlesRange, getDataEdges, getDerivativesDataEdgesForSymbols, getDerivativesRangeForSymbols, getDerivativesSummary, getDerivativesWindow, getSpreadRangeForSymbols, getSpreadSummary, toRows, upsertCandles, upsertDerivatives, upsertSpreadRows, waitForDbReady };
273
+ export { type CandleRow, type DeprecatedMarketContextCleanupItem, type MarketFeatureAsOf, cleanupDeprecatedMarketContext, closeTimescalePool, deleteCandles, findContinuityGap, getCandlesRange, getDataEdges, getDataEdgesForSymbols, getDerivativesBackfillCoverage, getDerivativesDataEdgesForSymbols, getDerivativesRangeForSymbols, getDerivativesSummary, getDerivativesWindow, getLatestMarketBreadth, getLatestMarketCmcExchangeLiquidityContext, getLatestMarketCmcFearGreedContext, getLatestMarketCmcIndexContexts, getLatestMarketGlobalContext, getLatestMarketReferenceAssetContexts, getLatestMarketTradeFlow, getMarketBreadthCoverage, getMarketCmcExchangeLiquidityContextCoverage, getMarketCmcFearGreedContextCoverage, getMarketCmcIndexContextCoverage, getMarketContextBackfillCoverage, getMarketGlobalContextCoverage, getMarketReferenceAssetContextCoverage, getMarketTradeFlowCoverage, getSpreadRangeForSymbols, getSpreadSummary, toRows, upsertCandles, upsertDerivatives, upsertDerivativesBackfillCoverage, upsertMarketBreadthRows, upsertMarketCmcExchangeLiquidityContextRows, upsertMarketCmcFearGreedContextRows, upsertMarketCmcIndexContextRows, upsertMarketContextBackfillCoverage, upsertMarketGlobalContextRows, upsertMarketReferenceAssetContextRows, upsertMarketTradeFlowRows, upsertSpreadRows, waitForDbReady };