@qtsurfer/api-client 0.14.1 → 0.16.0

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.
package/dist/index.d.ts CHANGED
@@ -96,6 +96,107 @@ type HalLink = {
96
96
  */
97
97
  templated?: boolean;
98
98
  };
99
+ /**
100
+ * Your identity and tier limits. No database call behind this one — safe to fetch on every
101
+ * page load. Live usage against these limits is a separate resource, `GET /account/usage`,
102
+ * deliberately: usage changes on every upload/execution and costs a query to compute, this
103
+ * one doesn't.
104
+ *
105
+ */
106
+ type Account = {
107
+ /**
108
+ * Your account id — the JWT `sub` claim.
109
+ */
110
+ userId: string;
111
+ /**
112
+ * Your current subscription tier.
113
+ */
114
+ tier: string;
115
+ /**
116
+ * Maximum number of active datasets your tier allows.
117
+ */
118
+ maxDatasets: number;
119
+ /**
120
+ * Maximum size, in bytes, of a single dataset version.
121
+ */
122
+ maxDatasetBytes: number;
123
+ /**
124
+ * Maximum combined storage, in bytes, across every dataset, strategy-execution signal,
125
+ * and registered strategy on your account — one shared pool, not a separate cap per
126
+ * resource type, since they all compete for the same underlying storage. See `GET
127
+ * /account/usage`'s `storageBytesUsed` for your current usage against this number.
128
+ *
129
+ */
130
+ maxTotalStorageBytes: number;
131
+ _links: AccountLinks;
132
+ };
133
+ /**
134
+ * HAL `_links` for `GET /account`
135
+ */
136
+ type AccountLinks = {
137
+ /**
138
+ * Link to this resource.
139
+ */
140
+ self: HalLink;
141
+ /**
142
+ * Link to your live usage, `GET /account/usage`.
143
+ */
144
+ usage: HalLink;
145
+ };
146
+ /**
147
+ * Your live usage of the shared storage pool `GET /account`'s `maxTotalStorageBytes` caps.
148
+ * Not guaranteed real-time — a just-completed upload or strategy execution may take a short
149
+ * moment to be reflected here.
150
+ *
151
+ */
152
+ type AccountUsage = {
153
+ /**
154
+ * Active datasets counted — the same set `GET /account`'s `maxDatasets` limits.
155
+ */
156
+ datasetsUsed: number;
157
+ /**
158
+ * Combined bytes of every active dataset's current version.
159
+ */
160
+ datasetBytesUsed: number;
161
+ /**
162
+ * Recorded strategy-execution signal uploads.
163
+ */
164
+ signalsUsed: number;
165
+ /**
166
+ * Combined bytes of every recorded signal upload.
167
+ */
168
+ signalBytesUsed: number;
169
+ /**
170
+ * Registered strategies (see `GET /strategies`).
171
+ */
172
+ strategiesUsed: number;
173
+ /**
174
+ * Combined bytes of each registered strategy's source plus its latest compiled
175
+ * bytecode. Superseded (non-latest) compilations aren't counted.
176
+ *
177
+ */
178
+ strategyBytesUsed: number;
179
+ /**
180
+ * `datasetBytesUsed + signalBytesUsed + strategyBytesUsed` — the number checked
181
+ * against `GET /account`'s `maxTotalStorageBytes`.
182
+ *
183
+ */
184
+ storageBytesUsed: number;
185
+ _links: AccountUsageLinks;
186
+ };
187
+ /**
188
+ * HAL `_links` for `GET /account/usage`
189
+ */
190
+ type AccountUsageLinks = {
191
+ /**
192
+ * Link to this resource.
193
+ */
194
+ self: HalLink;
195
+ /**
196
+ * Link to your tier limits, `GET /account`.
197
+ */
198
+ account: HalLink;
199
+ };
99
200
  /**
100
201
  * Exchange instrument with per-data-type coverage and market info
101
202
  */
@@ -216,14 +317,22 @@ type PrepareRequest = {
216
317
  */
217
318
  to: string;
218
319
  /**
219
- * Output bar cadence for the prepared range. Defaults to the publisher's
220
- * native cadence (`1s`); coarser cadences are produced on demand via
221
- * resampling and stored alongside the native blob in cache. Coarser-than-
222
- * source values must be exact multiples of the source cadence — invalid
223
- * labels return `400`.
320
+ * Output bar cadence for the prepared range. Coarser cadences are produced on demand by
321
+ * resampling the source and stored alongside the native blob in cache. A target finer
322
+ * than the source, or not an exact multiple of it, returns `400`. What's accepted, and
323
+ * what omitting it means, depends on the source:
324
+ *
325
+ * * Managed exchange — one of `1s`, `5s`, `1m`, `3m`, `5m`, `15m`, `30m`, `1h`, `2h`,
326
+ * `4h`, `8h`, `12h`, `1d`, `1w`, `1q`; any other label returns `400`. Omitted = `1s`,
327
+ * the publisher's native cadence.
328
+ * * Dataset (`exchangeId: user`) — omitted = the dataset version's own discovered
329
+ * `cadence` (see `DatasetVersion.cadence`), served as-is. Any cadence equal to or
330
+ * coarser than it and an exact multiple of it is accepted, including ones outside the
331
+ * managed-exchange list (e.g. `15s`); an `rt` dataset can be resampled to any fixed
332
+ * cadence.
224
333
  *
225
334
  */
226
- cadence?: "1s" | "5s" | "1m" | "3m" | "5m" | "15m" | "30m" | "1h" | "2h" | "4h" | "8h" | "12h" | "1d" | "1w" | "1q";
335
+ cadence?: string;
227
336
  };
228
337
  /**
229
338
  * Information about a single job
@@ -237,7 +346,8 @@ type JobState = {
237
346
  * Current status of the job. Treat `Completed | Aborted | Failed` as
238
347
  * terminal; `New | Started` mean keep polling. A single-instrument prepare
239
348
  * is always terminal (`Completed`) — decide from
240
- * `PrepareJobState.coverageRatio`, not by polling.
349
+ * `PrepareJobState.coverageRatio` (or `dataFrom`/`dataTo` against an `rt` dataset,
350
+ * which has no ratio), not by polling.
241
351
  *
242
352
  */
243
353
  status: "New" | "Started" | "Completed" | "Aborted" | "Failed";
@@ -274,8 +384,10 @@ type JobState = {
274
384
  * dataset-backed prepare (`exchangeId: user`), coverage is reported on the dataset's own
275
385
  * cadence grid instead — hour-walking a daily dataset would report `1/24` and read as
276
386
  * broken — via `cadence`/`gaps`/`largestGapSteps`; `totalHours`/`hoursWithData`/
277
- * `hoursWithoutData` are absent in that case. `dataFrom`/`dataTo`/`coverageRatio` are present
278
- * either way, computed accordingly.
387
+ * `hoursWithoutData` are absent in that case. `dataFrom`/`dataTo` are present either way, and
388
+ * `coverageRatio` too, computed accordingly — except against a dataset whose `cadence` is `rt`:
389
+ * with no fixed step there is no expected row count to measure against, so `coverageRatio`
390
+ * is absent and `gaps`/`largestGapSteps` are `0`.
279
391
  *
280
392
  */
281
393
  type PrepareJobState = JobState & {
@@ -292,7 +404,8 @@ type PrepareJobState = JobState & {
292
404
  * `totalHours` is 0), the fraction of hours in the requested range that have served
293
405
  * data. Against a dataset (`exchangeId: user`): `rows / expectedStepsAtCadence`
294
406
  * over the dataset version's own range — echoing what ingest computed once, not
295
- * recomputed against a narrower prepare request.
407
+ * recomputed against a narrower prepare request. Absent for an `rt` dataset (no
408
+ * fixed step, so no expected row count).
296
409
  *
297
410
  */
298
411
  coverageRatio?: number;
@@ -309,20 +422,21 @@ type PrepareJobState = JobState & {
309
422
  */
310
423
  hoursWithData?: number;
311
424
  /**
312
- * The dataset version's own discovered cadence (e.g. `1m`, `1h`). Only present for a
313
- * dataset-backed prepare (`exchangeId: user`).
425
+ * The dataset version's own discovered cadence — a fixed grid (e.g. `1m`, `1h`) or
426
+ * `rt` (see `DatasetVersion.cadence`). Only present for a dataset-backed prepare
427
+ * (`exchangeId: user`).
314
428
  *
315
429
  */
316
430
  cadence?: string;
317
431
  /**
318
432
  * Number of gaps in the dataset version at its own cadence, as discovered at ingest
319
- * time. Only present for a dataset-backed prepare.
433
+ * time. `0` for `rt`. Only present for a dataset-backed prepare.
320
434
  *
321
435
  */
322
436
  gaps?: number;
323
437
  /**
324
- * The largest gap in the dataset version, in units of its own cadence step. Only
325
- * present for a dataset-backed prepare.
438
+ * The largest gap in the dataset version, in units of its own cadence step. `0` for
439
+ * `rt`. Only present for a dataset-backed prepare.
326
440
  *
327
441
  */
328
442
  largestGapSteps?: number;
@@ -1104,9 +1218,10 @@ type StrategyState = {
1104
1218
  * A dataset's own metadata — not its data. `currentVersionId` is what a prepare against
1105
1219
  * `exchangeId: user` reads by default; see `DatasetVersion` for what a version carries.
1106
1220
  *
1107
- * `from`/`to`/`cadence` mirror that current version's own discovered range and cadence, so
1108
- * you don't need a second call to `GET /datasets/{datasetId}/uploads/{uploadId}` just to see
1109
- * what a dataset covers. Absent until a version exists.
1221
+ * `from`/`to`/`cadence`/`timestampUnit`/`bytes`/`rows`/`gaps`/`largestGapSteps` mirror that
1222
+ * current version's own discovered range, cadence, timestamp unit and metrics, so you don't
1223
+ * need a second call to `GET /datasets/{datasetId}/uploads/{uploadId}` just to see what a
1224
+ * dataset covers.
1110
1225
  *
1111
1226
  */
1112
1227
  type Dataset = {
@@ -1119,9 +1234,12 @@ type Dataset = {
1119
1234
  */
1120
1235
  name: string;
1121
1236
  /**
1122
- * Always `ticker` in v1.
1237
+ * `ticker` for an upload or a `dex` import with no `cadence` requested (native per-trade
1238
+ * data). `klines` for a `dex` import that requested a candle `cadence` — pre-aggregated
1239
+ * bars rather than raw ticks. Purely informational; both shapes are read the same way.
1240
+ *
1123
1241
  */
1124
- type: "ticker";
1242
+ type: "ticker" | "klines";
1125
1243
  instrument: Instrument;
1126
1244
  /**
1127
1245
  * When the dataset was created.
@@ -1150,11 +1268,52 @@ type Dataset = {
1150
1268
  */
1151
1269
  to?: string;
1152
1270
  /**
1153
- * `currentVersionId`'s own discovered bar cadence (e.g. `1s`, `1m`, `1h`). Absent until a
1154
- * version exists.
1271
+ * `currentVersionId`'s own discovered cadence — a fixed grid (e.g. `1s`, `1m`, `1h`) or
1272
+ * `rt` (see `DatasetVersion.cadence`). Absent until a version exists.
1155
1273
  *
1156
1274
  */
1157
1275
  cadence?: string;
1276
+ /**
1277
+ * `currentVersionId`'s own timestamp unit (see `DatasetVersion.timestampUnit`) — decode
1278
+ * the `timestamp` column of `dataUrl`'s file accordingly. Present only when `status` is
1279
+ * `ready`.
1280
+ *
1281
+ */
1282
+ timestampUnit?: "iso" | "s" | "ms" | "us";
1283
+ /**
1284
+ * * `ready` — `currentVersionId` is set; `from`/`to`/`cadence`/`bytes`/`rows`/`gaps`/
1285
+ * `largestGapSteps` describe it.
1286
+ * * `failed` — the most recent upload/import attempt failed. `currentVersionId` and the
1287
+ * fields above are absent — there is nothing to read yet. See `error`.
1288
+ * * `pending` — nothing has ever been attempted (just created, or an upload was never
1289
+ * finalized).
1290
+ *
1291
+ */
1292
+ status: "ready" | "failed" | "pending";
1293
+ /**
1294
+ * Size of `currentVersionId`'s own stored file. Present only when `status` is `ready` —
1295
+ * see `DatasetVersion.bytes` for what it measures exactly.
1296
+ *
1297
+ */
1298
+ bytes?: number;
1299
+ /**
1300
+ * `currentVersionId`'s own row count. Present only when `status` is `ready`.
1301
+ */
1302
+ rows?: number;
1303
+ /**
1304
+ * `currentVersionId`'s own gap count at its discovered cadence. Present only when `status` is `ready`.
1305
+ */
1306
+ gaps?: number;
1307
+ /**
1308
+ * `currentVersionId`'s own largest gap, in units of its discovered cadence step. Present only when `status` is `ready`.
1309
+ */
1310
+ largestGapSteps?: number;
1311
+ /**
1312
+ * A human-readable reason the most recent upload/import attempt failed. Present only
1313
+ * when `status` is `failed`.
1314
+ *
1315
+ */
1316
+ error?: string;
1158
1317
  };
1159
1318
  /**
1160
1319
  * A `Dataset` plus a self link. Returned by `GET /datasets/{datasetId}`.
@@ -1172,8 +1331,9 @@ type DatasetWithLinks = Dataset & {
1172
1331
  /**
1173
1332
  * Which format `dataUrl` is actually in — check this rather than assuming it
1174
1333
  * matches how you uploaded it. `lastra` — our native columnar format — for a CSV (or
1175
- * gzip/zip of one) upload, always converted on ingest. `parquet` for a parquet
1176
- * upload, stored as-is today.
1334
+ * gzip/zip of one) upload, always converted on ingest, or for a lastra upload,
1335
+ * stored as-is (the value alone doesn't tell you which). `parquet` for a parquet
1336
+ * upload, also stored as-is today.
1177
1337
  *
1178
1338
  */
1179
1339
  dataFormat?: "lastra" | "parquet";
@@ -1256,7 +1416,13 @@ type DatasetVersion = {
1256
1416
  */
1257
1417
  rows?: number;
1258
1418
  /**
1259
- * The discovered bar cadence (e.g. `1s`, `1m`, `1h`).
1419
+ * The cadence discovered from the data's own timestamps. Either a fixed grid — `1s`,
1420
+ * `5s`, `15s`, `1m`, `5m`, `15m`, `30m`, `1h`, `4h`, `1d` — when at least half the
1421
+ * intervals between consecutive rows fall on that step (small clock jitter tolerated), or
1422
+ * `rt`: native data at the rate it was captured, each row at its own timestamp with no
1423
+ * fixed step — per-trade on-chain swaps, block-spaced or sub-second ticks, irregular
1424
+ * intervals. An `rt` dataset can be resampled to any fixed cadence at prepare time.
1425
+ *
1260
1426
  */
1261
1427
  cadence?: string;
1262
1428
  /**
@@ -1266,11 +1432,11 @@ type DatasetVersion = {
1266
1432
  */
1267
1433
  timestampUnit?: "iso" | "s" | "ms" | "us";
1268
1434
  /**
1269
- * Number of gaps at the discovered cadence.
1435
+ * Number of gaps at the discovered cadence. Always `0` for `rt`.
1270
1436
  */
1271
1437
  gaps?: number;
1272
1438
  /**
1273
- * The largest gap, in units of the discovered cadence step.
1439
+ * The largest gap, in units of the discovered cadence step. Always `0` for `rt`.
1274
1440
  */
1275
1441
  largestGapSteps?: number;
1276
1442
  /**
@@ -1284,8 +1450,9 @@ type DatasetVersion = {
1284
1450
  /**
1285
1451
  * Which format `dataUrl` is actually in — check this rather than assuming it matches
1286
1452
  * how you uploaded it. `lastra` — our native columnar format — for a CSV (or gzip/zip
1287
- * of one) upload, always converted on ingest. `parquet` for a parquet upload, stored
1288
- * as-is today.
1453
+ * of one) upload, always converted on ingest, or for a lastra upload, stored as-is
1454
+ * (the value alone doesn't tell you which). `parquet` for a parquet upload, also
1455
+ * stored as-is today.
1289
1456
  *
1290
1457
  */
1291
1458
  dataFormat?: "lastra" | "parquet";
@@ -1312,6 +1479,150 @@ type DatasetUploadState = {
1312
1479
  * The ingest job id, while `status` is `ingesting`.
1313
1480
  */
1314
1481
  jobId?: string;
1482
+ /**
1483
+ * A human-readable reason, present when `status` is `failed` (e.g. bad CSV contract,
1484
+ * mixed timestamp units, a `.zip` with no file inside or more than one). Durably
1485
+ * recorded alongside the failure itself, so it stays available however long after the
1486
+ * fact you poll — not tied to how recently the failure happened.
1487
+ *
1488
+ */
1489
+ error?: string;
1490
+ /**
1491
+ * Present when `status` is `ready` or `failed`.
1492
+ */
1493
+ version?: DatasetVersion;
1494
+ };
1495
+ /**
1496
+ * `POST /datasets/imports`'s request body. A common block plus one type-specific block,
1497
+ * selected by `type` — `dex` is the only value today.
1498
+ *
1499
+ */
1500
+ type DatasetImportRequest = {
1501
+ /**
1502
+ * A name unique among your datasets. `409` if already taken.
1503
+ */
1504
+ name: string;
1505
+ instrument: Instrument;
1506
+ /**
1507
+ * Start of the range to fetch, inclusive. Must be before `to`.
1508
+ */
1509
+ from: string;
1510
+ /**
1511
+ * End of the range to fetch, exclusive. The total span is capped by your tier — a
1512
+ * request wider than that ceiling is `400`, regardless of source type.
1513
+ *
1514
+ */
1515
+ to: string;
1516
+ /**
1517
+ * Optional. Omitted/blank keeps native per-trade event cadence — each swap at its own
1518
+ * timestamp, so the resulting version's `cadence` is `rt` unless the swaps happen to sit
1519
+ * on a fixed grid (see `DatasetVersion.cadence`). Set to `1s`, `1m` or
1520
+ * `5m` instead to get pre-aggregated candles at that width rather than raw trades (the
1521
+ * resulting dataset's `type` becomes `klines`); any other value is `400`. Not every
1522
+ * network supports every cadence — an unsupported combination fails asynchronously, not
1523
+ * at request time (see `DatasetImportState.error`).
1524
+ *
1525
+ */
1526
+ cadence?: "1s" | "1m" | "5m";
1527
+ /**
1528
+ * The source to fetch from. `dex` is the only value today.
1529
+ */
1530
+ type: "dex";
1531
+ dex?: DatasetImportDexRequest;
1532
+ };
1533
+ /**
1534
+ * The `dex` source's own fields — required when `type` is `dex`. `id`/`version` are required
1535
+ * for a plain (native-cadence) import; both are ignored if the top-level `cadence` requested
1536
+ * pre-aggregated candles instead, since that path needs neither a protocol nor a version
1537
+ * distinction.
1538
+ *
1539
+ */
1540
+ type DatasetImportDexRequest = {
1541
+ /**
1542
+ * Which chain the pool/pair lives on.
1543
+ */
1544
+ network: "ethereum" | "robinhood";
1545
+ /**
1546
+ * Which on-chain DEX protocol `contract` implements. Required unless the top-level
1547
+ * `cadence` requested pre-aggregated candles, in which case it's ignored.
1548
+ *
1549
+ */
1550
+ id?: "uniswap";
1551
+ /**
1552
+ * Uniswap version the pool/pair contract implements. Required unless the top-level
1553
+ * `cadence` requested pre-aggregated candles, in which case it's ignored.
1554
+ *
1555
+ */
1556
+ version?: "v2" | "v3";
1557
+ /**
1558
+ * The pool (v3) or pair (v2) contract address.
1559
+ */
1560
+ contract: string;
1561
+ /**
1562
+ * The factory that deployed `contract`. Optional — when omitted, it is discovered
1563
+ * on-chain from `contract` itself at fetch time. Supply it explicitly only if you
1564
+ * already know it, or the pool/pair belongs to a factory other than the canonical one
1565
+ * for `network`/`version`. Either way, the pool/pair is validated against whichever
1566
+ * factory is used before anything is fetched — a wrong or unrelated factory fails the
1567
+ * import rather than silently fetching from the wrong pool. Ignored if the top-level
1568
+ * `cadence` requested pre-aggregated candles.
1569
+ *
1570
+ */
1571
+ factory?: string;
1572
+ };
1573
+ /**
1574
+ * The response to `POST /datasets/imports` — the dataset now exists, and its fetch has started.
1575
+ */
1576
+ type DatasetImportCreated = {
1577
+ /**
1578
+ * Opaque id of the newly created dataset — same id space as `POST /datasets`.
1579
+ */
1580
+ datasetId: string;
1581
+ /**
1582
+ * Identifies this import. Pass to `GET /datasets/{datasetId}/imports/{importId}` to poll
1583
+ * it — there is no separate "finalize" step the way an upload has.
1584
+ *
1585
+ */
1586
+ importId: string;
1587
+ /**
1588
+ * The fetch/ingest job id.
1589
+ */
1590
+ jobId: string;
1591
+ /**
1592
+ * Always `fetching` in this response — the fetch has only just started.
1593
+ */
1594
+ status: "fetching";
1595
+ };
1596
+ /**
1597
+ * Progress of one import, from fetching through ingest. `fetching` is the one status only an
1598
+ * import ever reports — an upload's file already exists by the time you can poll it; an
1599
+ * import's doesn't, until this source finishes fetching it.
1600
+ *
1601
+ */
1602
+ type DatasetImportState = {
1603
+ importId: string;
1604
+ /**
1605
+ * * `fetching` — reading from the source; nothing staged yet.
1606
+ * * `ingesting` — fetch complete, staged, and re-entered the same ingest chain an
1607
+ * upload uses; the worker is parsing and validating it.
1608
+ * * `ready` — ingested successfully. `version` carries the result.
1609
+ * * `failed` — the fetch or the ingest that followed it was rejected. `error` names why.
1610
+ *
1611
+ */
1612
+ status: "fetching" | "ingesting" | "ready" | "failed";
1613
+ /**
1614
+ * The fetch/ingest job id, while `status` is `fetching` or `ingesting`.
1615
+ */
1616
+ jobId?: string;
1617
+ /**
1618
+ * A human-readable reason, present when `status` is `failed` — an unresolvable
1619
+ * pool/pair, no data in the requested range, a range older than the configured source
1620
+ * retains, the fetch exceeding your tier's time ceiling, or any of
1621
+ * `DatasetUploadState.error`'s own ingest-side reasons once fetching hands off to it.
1622
+ * Durably recorded, same as on the upload path.
1623
+ *
1624
+ */
1625
+ error?: string;
1315
1626
  /**
1316
1627
  * Present when `status` is `ready` or `failed`.
1317
1628
  */
@@ -1376,6 +1687,32 @@ type AuthenticateResponses = {
1376
1687
  200: AuthTokenResponse;
1377
1688
  };
1378
1689
  type AuthenticateResponse = AuthenticateResponses[keyof AuthenticateResponses];
1690
+ type GetAccountData = {
1691
+ body?: never;
1692
+ path?: never;
1693
+ query?: never;
1694
+ url: "/account";
1695
+ };
1696
+ type GetAccountResponses = {
1697
+ /**
1698
+ * Your account
1699
+ */
1700
+ 200: Account;
1701
+ };
1702
+ type GetAccountResponse = GetAccountResponses[keyof GetAccountResponses];
1703
+ type GetAccountUsageData = {
1704
+ body?: never;
1705
+ path?: never;
1706
+ query?: never;
1707
+ url: "/account/usage";
1708
+ };
1709
+ type GetAccountUsageResponses = {
1710
+ /**
1711
+ * Your current usage
1712
+ */
1713
+ 200: AccountUsage;
1714
+ };
1715
+ type GetAccountUsageResponse = GetAccountUsageResponses[keyof GetAccountUsageResponses];
1379
1716
  type ListExchangesData = {
1380
1717
  body?: never;
1381
1718
  path?: never;
@@ -1758,8 +2095,8 @@ type PrepareBacktestErrors = {
1758
2095
  * Invalid request or parameters. Also returned when `from` is older than the configured
1759
2096
  * lookback window or `to` is in the future. For `exchangeId: user`, also returned when
1760
2097
  * the dataset's current upload has not finished ingesting, or `cadence` asks for a finer
1761
- * granularity than the dataset's own discovered cadence, or the requested range exceeds
1762
- * your tier's range limit.
2098
+ * granularity than the dataset's own discovered cadence (or one that isn't an exact
2099
+ * multiple of it), or the requested range exceeds your tier's range limit.
1763
2100
  *
1764
2101
  */
1765
2102
  400: ResponseError;
@@ -2023,6 +2360,16 @@ type ExecuteBacktestData = {
2023
2360
  */
2024
2361
  storeSignals?: boolean;
2025
2362
  equityCurve?: EquityCurveOptions;
2363
+ /**
2364
+ * Capital/fee/position-size overrides for this one run — the same shape
2365
+ * `executeSweep`'s `baseConfig` accepts. Omit to run at the platform defaults
2366
+ * (`initialFunding: 100`, `feeRate: 0.001`). `buyFeeRate`/`sellFeeRate`/`feeLeg`
2367
+ * are accepted for shape compatibility with a sweep's `baseConfig`, but this
2368
+ * endpoint has one fee-rate slot: a value that implies asymmetric buy/sell fees,
2369
+ * or a non-default `feeLeg`, is rejected with `400`.
2370
+ *
2371
+ */
2372
+ baseConfig?: SweepBaseConfig;
2026
2373
  /**
2027
2374
  * Strategy properties to apply to this run. Omit to run the strategy's declared
2028
2375
  * defaults, which is exactly what a request without this field has always done.
@@ -2328,6 +2675,12 @@ type FinalizeDatasetUploadErrors = {
2328
2675
  * The uploaded file exceeds your tier's size limit for a dataset.
2329
2676
  */
2330
2677
  413: ResponseError;
2678
+ /**
2679
+ * Your account's total storage limit (`GET /account`'s `maxTotalStorageBytes`) is
2680
+ * reached or would be exceeded. Delete a dataset to free space, or upgrade.
2681
+ *
2682
+ */
2683
+ 429: ResponseError;
2331
2684
  };
2332
2685
  type FinalizeDatasetUploadError = FinalizeDatasetUploadErrors[keyof FinalizeDatasetUploadErrors];
2333
2686
  type FinalizeDatasetUploadResponses = {
@@ -2370,6 +2723,78 @@ type GetDatasetUploadResponses = {
2370
2723
  200: DatasetUploadState;
2371
2724
  };
2372
2725
  type GetDatasetUploadResponse = GetDatasetUploadResponses[keyof GetDatasetUploadResponses];
2726
+ type ImportDatasetData = {
2727
+ /**
2728
+ * What to fetch, and where from
2729
+ */
2730
+ body: DatasetImportRequest;
2731
+ path?: never;
2732
+ query?: never;
2733
+ url: "/datasets/imports";
2734
+ };
2735
+ type ImportDatasetErrors = {
2736
+ /**
2737
+ * Invalid request; `instrument` isn't a plain spot pair; `from >= to`; `cadence` present
2738
+ * but not one of its supported values; the requested range exceeds your tier's import
2739
+ * range ceiling; the requested range's rough size estimate exceeds your tier's row limit;
2740
+ * `dex.network`/`dex.id` not one of their supported values; `dex.contract`/`dex.factory`
2741
+ * fail basic shape validation; or, when `cadence` is omitted, `dex.id`/`dex.version`
2742
+ * missing. Whether the pool/pair actually exists and resolves — and, for a candle
2743
+ * `cadence`, whether that combination is actually servable on the requested `network` —
2744
+ * is checked later, asynchronously — see the `failed` status on the poll endpoint below.
2745
+ *
2746
+ */
2747
+ 400: ResponseError;
2748
+ /**
2749
+ * You already have a dataset with this `name`
2750
+ */
2751
+ 409: ResponseError;
2752
+ /**
2753
+ * Your tier's dataset count limit is reached, or your account's total storage limit
2754
+ * (`GET /account`'s `maxTotalStorageBytes`) is already reached. Delete a dataset to free
2755
+ * a slot or space, or upgrade.
2756
+ *
2757
+ */
2758
+ 429: ResponseError;
2759
+ };
2760
+ type ImportDatasetError = ImportDatasetErrors[keyof ImportDatasetErrors];
2761
+ type ImportDatasetResponses = {
2762
+ /**
2763
+ * Dataset created, fetch started
2764
+ */
2765
+ 202: DatasetImportCreated;
2766
+ };
2767
+ type ImportDatasetResponse = ImportDatasetResponses[keyof ImportDatasetResponses];
2768
+ type GetDatasetImportData = {
2769
+ body?: never;
2770
+ path: {
2771
+ /**
2772
+ * The id returned by `POST /datasets/imports`
2773
+ */
2774
+ datasetId: string;
2775
+ /**
2776
+ * The `importId` returned by `POST /datasets/imports`
2777
+ */
2778
+ importId: string;
2779
+ };
2780
+ query?: never;
2781
+ url: "/datasets/{datasetId}/imports/{importId}";
2782
+ };
2783
+ type GetDatasetImportErrors = {
2784
+ /**
2785
+ * No such dataset for this user, or genuinely nothing is known about this `importId`.
2786
+ *
2787
+ */
2788
+ 404: ResponseError;
2789
+ };
2790
+ type GetDatasetImportError = GetDatasetImportErrors[keyof GetDatasetImportErrors];
2791
+ type GetDatasetImportResponses = {
2792
+ /**
2793
+ * Current fetch/ingest state
2794
+ */
2795
+ 200: DatasetImportState;
2796
+ };
2797
+ type GetDatasetImportResponse = GetDatasetImportResponses[keyof GetDatasetImportResponses];
2373
2798
  type ClientOptions = {
2374
2799
  baseUrl: "https://api.qtsurfer.net/v1" | "https://api.qtsurfer.com/v1" | (string & {});
2375
2800
  };
@@ -2400,6 +2825,24 @@ type Options<TData extends TDataShape = TDataShape, ThrowOnError extends boolean
2400
2825
  *
2401
2826
  */
2402
2827
  declare const authenticate: <ThrowOnError extends boolean = false>(options?: Options<AuthenticateData, ThrowOnError>) => _hey_api_client_fetch.RequestResult<AuthTokenResponse, unknown, ThrowOnError>;
2828
+ /**
2829
+ * Get your account's identity and tier limits
2830
+ * Your userId, current tier, and that tier's limits — no database call, safe to fetch on
2831
+ * every page load. For live usage against these limits, see `_links.usage`
2832
+ * (`GET /account/usage`).
2833
+ *
2834
+ */
2835
+ declare const getAccount: <ThrowOnError extends boolean = false>(options?: Options<GetAccountData, ThrowOnError>) => _hey_api_client_fetch.RequestResult<Account, unknown, ThrowOnError>;
2836
+ /**
2837
+ * Get your live storage usage
2838
+ * How much of your account's shared storage pool (`GET /account`'s `maxTotalStorageBytes`)
2839
+ * you're currently using. Datasets, strategy-execution signals, and registered strategies
2840
+ * all count against the same total — they compete for the same underlying storage, so
2841
+ * there's one number to watch, not one per resource type. Not guaranteed real-time — a
2842
+ * just-completed upload or strategy execution may take a short moment to be reflected here.
2843
+ *
2844
+ */
2845
+ declare const getAccountUsage: <ThrowOnError extends boolean = false>(options?: Options<GetAccountUsageData, ThrowOnError>) => _hey_api_client_fetch.RequestResult<AccountUsage, unknown, ThrowOnError>;
2403
2846
  /**
2404
2847
  * List the available exchanges
2405
2848
  */
@@ -2716,15 +3159,22 @@ declare const getSweepRunEquityCurve: <ThrowOnError extends boolean = false>(opt
2716
3159
  * backtest result with the curve included.
2717
3160
  *
2718
3161
  * The same request (same `prepareJobId`, `strategyId`, `storeSignals`, `equityCurve`,
2719
- * `params`) always returns the same `jobId` (idempotent) — a request that omits `equityCurve`
2720
- * or `params` dedupes exactly as it did before those fields existed. Two different `params`
2721
- * vectors over one prepare are two different jobs, and `9` and `9.0` are the same one.
3162
+ * `baseConfig`, `params`) always returns the same `jobId` (idempotent) — a request that omits
3163
+ * `equityCurve`, `baseConfig` or `params` dedupes exactly as it did before those fields
3164
+ * existed. Two different `params` vectors over one prepare are two different jobs, and `9`
3165
+ * and `9.0` are the same one.
2722
3166
  *
2723
3167
  * The re-run is an independent execution rather than a replay of the sweep trial — the two
2724
3168
  * paths do not share a simulator — but they are pinned to agree: one vector run both ways
2725
3169
  * matches on every leaderboard metric, asserted as a regression test. Treat a difference as a
2726
3170
  * bug worth reporting, not as expected behaviour.
2727
3171
  *
3172
+ * Optionally takes `baseConfig`, the same `SweepBaseConfig` shape `executeSweep` accepts —
3173
+ * `initialFunding`, `feeRate`, `percentAmountToLock`, etc. — so the same object can be reused
3174
+ * against either endpoint. This endpoint has one effective fee rate rather than a sweep's
3175
+ * independent buy/sell legs: a `baseConfig` that resolves to different buy/sell rates, or sets
3176
+ * a non-default `feeLeg`, is rejected with `400` rather than silently collapsed to one side.
3177
+ *
2728
3178
  * Works unchanged for a dataset-backed prepare (`exchangeId: user`) — the request body is
2729
3179
  * identical either way, since the instrument and range are recovered from `prepareJobId`.
2730
3180
  *
@@ -2777,16 +3227,21 @@ declare const listDatasets: <ThrowOnError extends boolean = false>(options?: Opt
2777
3227
  * response. `instrument` must be a plain spot pair (`BASE/QUOTE`, exactly one `/`); derivative
2778
3228
  * forms (e.g. `BTC/USDT:USDT`) are rejected.
2779
3229
  *
2780
- * **Upload format.** A CSV with a header row, or a parquet file with the same columns by
2781
- * name. Required: `timestamp` (ISO-8601, or numeric epoch seconds/millis/micros — detected
2782
- * from the first row, then enforced for every later row), `close`. Optional: `open`, `high`,
2783
- * `low`, `volume`, `quoteVolume`, `bid`, `bidSize`, `ask`, `askSize`. Cadence and timestamp
2784
- * unit are discovered from the data, not declared.
3230
+ * **Upload format.** A CSV with a header row, a parquet file with the same columns by
3231
+ * name, or a lastra file — our own native columnar format, the same one a dataset's
3232
+ * `dataUrl` hands back by default, so a downloaded dataset can be handed to another user to
3233
+ * upload with no conversion in between. For CSV/parquet, required: `timestamp` (ISO-8601, or
3234
+ * numeric epoch seconds/millis/micros — detected from the first row, then enforced for every
3235
+ * later row), `close`. Optional: `open`, `high`, `low`, `volume`, `quoteVolume`, `bid`,
3236
+ * `bidSize`, `ask`, `askSize`. A lastra upload carries its own fixed column set instead and
3237
+ * only needs a timestamp series and a close series present. Cadence and timestamp unit are
3238
+ * discovered from the data, not declared, for all three.
2785
3239
  *
2786
3240
  * A CSV upload is converted to our native columnar format (`lastra`) for storage. A parquet
2787
- * upload is stored as-is today. Either way, always check `dataFormat` on
3241
+ * or lastra upload is stored as-is today. Either way, always check `dataFormat` on
2788
3242
  * `GET /datasets/{datasetId}` and `GET /datasets/{datasetId}/uploads/{uploadId}` for which
2789
- * one `dataUrl` actually is, rather than assuming from how you uploaded it.
3243
+ * one `dataUrl` actually is, rather than assuming from how you uploaded it (a converted CSV
3244
+ * and an uploaded lastra file both report `dataFormat: "lastra"`).
2790
3245
  *
2791
3246
  * The bytes PUT to `upload.url` may be that file directly, gzipped (`.gz`), or zipped
2792
3247
  * (`.zip`, exactly one file inside — a dataset is one file regardless of how it travels).
@@ -2848,7 +3303,41 @@ declare const finalizeDatasetUpload: <ThrowOnError extends boolean = false>(opti
2848
3303
  *
2849
3304
  */
2850
3305
  declare const getDatasetUpload: <ThrowOnError extends boolean = false>(options: Options<GetDatasetUploadData, ThrowOnError>) => _hey_api_client_fetch.RequestResult<DatasetUploadState, ResponseError, ThrowOnError>;
3306
+ /**
3307
+ * Create a dataset by importing history instead of uploading it
3308
+ * A second way to get data into a dataset, alongside `POST /datasets`: instead of `PUT`ting a
3309
+ * file yourself, ask the API to go fetch history on your behalf. Creates the dataset and
3310
+ * starts the fetch in the same call — there is no separate upload step, and the result lands
3311
+ * as a dataset version indistinguishable from an uploaded one once it's ready. Poll
3312
+ * `GET /datasets/{datasetId}/imports/{importId}` for progress.
3313
+ *
3314
+ * `type` selects the source. `dex` — history over a pool/pair's own on-chain market — is the
3315
+ * only value today; other source types join this same endpoint later.
3316
+ *
3317
+ * A `dex` import has two data shapes, chosen by the top-level `cadence`:
3318
+ *
3319
+ * * Omitted/blank (default) — on-chain swap history, replayed directly from the pool/pair's
3320
+ * own chain. Cadence is native, not resampled: each swap keeps the timestamp it happened
3321
+ * at rather than being bucketed into candles, so the resulting version's `cadence` is `rt`
3322
+ * unless the swaps happen to sit on a fixed grid (see `DatasetVersion.cadence`).
3323
+ * * One of `1s` / `1m` / `5m` — pre-aggregated candles at that width instead of raw trades.
3324
+ * The resulting dataset's `type` is `klines`, not `ticker`. Not every network supports every
3325
+ * cadence yet — an unsupported combination fails asynchronously, same as an unresolvable
3326
+ * pool (see the `failed` status on the poll endpoint below).
3327
+ *
3328
+ */
3329
+ declare const importDataset: <ThrowOnError extends boolean = false>(options: Options<ImportDatasetData, ThrowOnError>) => _hey_api_client_fetch.RequestResult<DatasetImportCreated, ResponseError, ThrowOnError>;
3330
+ /**
3331
+ * Get the state of an import/ingest
3332
+ * Poll after `POST /datasets/imports` until `status` is `ready` or `failed`. An import spends
3333
+ * real time fetching from its source before anything is even staged — `fetching` is the one
3334
+ * status only an import ever reports; `ingesting`/`ready`/`failed` mean exactly what they do
3335
+ * on `GET /datasets/{datasetId}/uploads/{uploadId}`, since an import re-enters that same
3336
+ * ingest chain once it has fetched and staged its data.
3337
+ *
3338
+ */
3339
+ declare const getDatasetImport: <ThrowOnError extends boolean = false>(options: Options<GetDatasetImportData, ThrowOnError>) => _hey_api_client_fetch.RequestResult<DatasetImportState, ResponseError, ThrowOnError>;
2851
3340
 
2852
3341
  declare const client: _hey_api_client_fetch.Client;
2853
3342
 
2854
- export { type AcceptedJob, type AuthTokenError, type AuthTokenResponse, type AuthenticateData, type AuthenticateError, type AuthenticateErrors, type AuthenticateResponse, type AuthenticateResponses, type BacktestJobResult, type CancelBacktestData, type CancelBacktestError, type CancelBacktestErrors, type CancelBacktestResponse, type CancelBacktestResponses, type CancelSweepData, type CancelSweepError, type CancelSweepErrors, type CancelSweepResponse, type CancelSweepResponses, type ClientOptions, type CompileStrategyData, type CompileStrategyError, type CompileStrategyErrors, type CompileStrategyResponse, type CompileStrategyResponses, type CoverageWindow, type CreateDatasetData, type CreateDatasetError, type CreateDatasetErrors, type CreateDatasetResponse, type CreateDatasetResponses, type DataSourceType, type Dataset, type DatasetCreated, type DatasetUploadSession, type DatasetUploadState, type DatasetUploadTarget, type DatasetVersion, type DatasetWithLinks, type DeclaredProperty, type DeleteDatasetData, type DeleteDatasetError, type DeleteDatasetErrors, type DeleteDatasetResponse, type DeleteDatasetResponses, type DeleteStrategyData, type DeleteStrategyError, type DeleteStrategyErrors, type DeleteStrategyResponse, type DeleteStrategyResponses, type DownloadKlinesData, type DownloadKlinesError, type DownloadKlinesErrors, type DownloadKlinesResponse, type DownloadKlinesResponses, type DownloadTickersData, type DownloadTickersError, type DownloadTickersErrors, type DownloadTickersResponse, type DownloadTickersResponses, type EquityCurveMeta, type EquityCurveOptions, type EquityCurveOutMode, type EquityCurveRequest, type EquityCurveResult, type EquityPoint, type Exchange, type ExecuteBacktestData, type ExecuteBacktestError, type ExecuteBacktestErrors, type ExecuteBacktestResponse, type ExecuteBacktestResponses, type ExecuteSweepAccepted, type ExecuteSweepData, type ExecuteSweepError, type ExecuteSweepErrors, type ExecuteSweepRequest, type ExecuteSweepResponse, type ExecuteSweepResponses, type ExecuteSweepResult, type FinalizeDatasetUploadData, type FinalizeDatasetUploadError, type FinalizeDatasetUploadErrors, type FinalizeDatasetUploadResponse, type FinalizeDatasetUploadResponses, type GetBacktestResultData, type GetBacktestResultError, type GetBacktestResultErrors, type GetBacktestResultResponse, type GetBacktestResultResponses, type GetDatasetData, type GetDatasetError, type GetDatasetErrors, type GetDatasetResponse, type GetDatasetResponses, type GetDatasetUploadData, type GetDatasetUploadError, type GetDatasetUploadErrors, type GetDatasetUploadResponse, type GetDatasetUploadResponses, type GetPrepareStatusData, type GetPrepareStatusError, type GetPrepareStatusErrors, type GetPrepareStatusResponse, type GetPrepareStatusResponses, type GetStrategyCodeData, type GetStrategyCodeError, type GetStrategyCodeErrors, type GetStrategyCodeResponse, type GetStrategyCodeResponses, type GetStrategyData, type GetStrategyError, type GetStrategyErrors, type GetStrategyResponse, type GetStrategyResponses, type GetSweepResultData, type GetSweepResultError, type GetSweepResultErrors, type GetSweepResultResponse, type GetSweepResultResponses, type GetSweepRunEquityCurveData, type GetSweepRunEquityCurveError, type GetSweepRunEquityCurveErrors, type GetSweepRunEquityCurveResponse, type GetSweepRunEquityCurveResponses, type GetSweepSensitivityData, type GetSweepSensitivityError, type GetSweepSensitivityErrors, type GetSweepSensitivityResponse, type GetSweepSensitivityResponses, type HalLink, type Instrument, type InstrumentCoverage, type InstrumentDetail, type InstrumentLinks, type InstrumentListMeta, type InstrumentListResponse, type JobState, type ListDatasetsData, type ListDatasetsResponse, type ListDatasetsResponses, type ListExchangesData, type ListExchangesResponse, type ListExchangesResponses, type ListInstrumentsData, type ListInstrumentsError, type ListInstrumentsErrors, type ListInstrumentsResponse, type ListInstrumentsResponses, type ListSegmentInstrumentsData, type ListSegmentInstrumentsError, type ListSegmentInstrumentsErrors, type ListSegmentInstrumentsResponse, type ListSegmentInstrumentsResponses, type ListStrategiesData, type ListStrategiesResponse, type ListStrategiesResponses, type Notice, type OpenDatasetUploadData, type OpenDatasetUploadError, type OpenDatasetUploadErrors, type OpenDatasetUploadResponse, type OpenDatasetUploadResponses, type Options, type PrepareBacktestData, type PrepareBacktestError, type PrepareBacktestErrors, type PrepareBacktestResponse, type PrepareBacktestResponses, type PrepareJobState, type PrepareRequest, type ResponseError, type ResultMap, type ScalarStrategyParamValue, type StrategyId, type StrategyLinks, type StrategyState, type StrategySummary, type SweepAxis, type SweepBaseConfig, type SweepHeatmap, type SweepHeatmapCell, type SweepMarginal, type SweepMarginalPoint, type SweepProgress, type SweepRunRow, type SweepSensitivity, type SweepSpecRequest, type ValidateStrategyData, type ValidateStrategyError, type ValidateStrategyErrors, type ValidateStrategyResponse, type ValidateStrategyResponses, type WalkForwardAccepted, type WalkForwardFold, type WalkForwardRequest, type WalkForwardResult, authenticate, cancelBacktest, cancelSweep, client, compileStrategy, createDataset, deleteDataset, deleteStrategy, downloadKlines, downloadTickers, executeBacktest, executeSweep, finalizeDatasetUpload, getBacktestResult, getDataset, getDatasetUpload, getPrepareStatus, getStrategy, getStrategyCode, getSweepResult, getSweepRunEquityCurve, getSweepSensitivity, listDatasets, listExchanges, listInstruments, listSegmentInstruments, listStrategies, openDatasetUpload, prepareBacktest, validateStrategy };
3343
+ export { type AcceptedJob, type Account, type AccountLinks, type AccountUsage, type AccountUsageLinks, type AuthTokenError, type AuthTokenResponse, type AuthenticateData, type AuthenticateError, type AuthenticateErrors, type AuthenticateResponse, type AuthenticateResponses, type BacktestJobResult, type CancelBacktestData, type CancelBacktestError, type CancelBacktestErrors, type CancelBacktestResponse, type CancelBacktestResponses, type CancelSweepData, type CancelSweepError, type CancelSweepErrors, type CancelSweepResponse, type CancelSweepResponses, type ClientOptions, type CompileStrategyData, type CompileStrategyError, type CompileStrategyErrors, type CompileStrategyResponse, type CompileStrategyResponses, type CoverageWindow, type CreateDatasetData, type CreateDatasetError, type CreateDatasetErrors, type CreateDatasetResponse, type CreateDatasetResponses, type DataSourceType, type Dataset, type DatasetCreated, type DatasetImportCreated, type DatasetImportDexRequest, type DatasetImportRequest, type DatasetImportState, type DatasetUploadSession, type DatasetUploadState, type DatasetUploadTarget, type DatasetVersion, type DatasetWithLinks, type DeclaredProperty, type DeleteDatasetData, type DeleteDatasetError, type DeleteDatasetErrors, type DeleteDatasetResponse, type DeleteDatasetResponses, type DeleteStrategyData, type DeleteStrategyError, type DeleteStrategyErrors, type DeleteStrategyResponse, type DeleteStrategyResponses, type DownloadKlinesData, type DownloadKlinesError, type DownloadKlinesErrors, type DownloadKlinesResponse, type DownloadKlinesResponses, type DownloadTickersData, type DownloadTickersError, type DownloadTickersErrors, type DownloadTickersResponse, type DownloadTickersResponses, type EquityCurveMeta, type EquityCurveOptions, type EquityCurveOutMode, type EquityCurveRequest, type EquityCurveResult, type EquityPoint, type Exchange, type ExecuteBacktestData, type ExecuteBacktestError, type ExecuteBacktestErrors, type ExecuteBacktestResponse, type ExecuteBacktestResponses, type ExecuteSweepAccepted, type ExecuteSweepData, type ExecuteSweepError, type ExecuteSweepErrors, type ExecuteSweepRequest, type ExecuteSweepResponse, type ExecuteSweepResponses, type ExecuteSweepResult, type FinalizeDatasetUploadData, type FinalizeDatasetUploadError, type FinalizeDatasetUploadErrors, type FinalizeDatasetUploadResponse, type FinalizeDatasetUploadResponses, type GetAccountData, type GetAccountResponse, type GetAccountResponses, type GetAccountUsageData, type GetAccountUsageResponse, type GetAccountUsageResponses, type GetBacktestResultData, type GetBacktestResultError, type GetBacktestResultErrors, type GetBacktestResultResponse, type GetBacktestResultResponses, type GetDatasetData, type GetDatasetError, type GetDatasetErrors, type GetDatasetImportData, type GetDatasetImportError, type GetDatasetImportErrors, type GetDatasetImportResponse, type GetDatasetImportResponses, type GetDatasetResponse, type GetDatasetResponses, type GetDatasetUploadData, type GetDatasetUploadError, type GetDatasetUploadErrors, type GetDatasetUploadResponse, type GetDatasetUploadResponses, type GetPrepareStatusData, type GetPrepareStatusError, type GetPrepareStatusErrors, type GetPrepareStatusResponse, type GetPrepareStatusResponses, type GetStrategyCodeData, type GetStrategyCodeError, type GetStrategyCodeErrors, type GetStrategyCodeResponse, type GetStrategyCodeResponses, type GetStrategyData, type GetStrategyError, type GetStrategyErrors, type GetStrategyResponse, type GetStrategyResponses, type GetSweepResultData, type GetSweepResultError, type GetSweepResultErrors, type GetSweepResultResponse, type GetSweepResultResponses, type GetSweepRunEquityCurveData, type GetSweepRunEquityCurveError, type GetSweepRunEquityCurveErrors, type GetSweepRunEquityCurveResponse, type GetSweepRunEquityCurveResponses, type GetSweepSensitivityData, type GetSweepSensitivityError, type GetSweepSensitivityErrors, type GetSweepSensitivityResponse, type GetSweepSensitivityResponses, type HalLink, type ImportDatasetData, type ImportDatasetError, type ImportDatasetErrors, type ImportDatasetResponse, type ImportDatasetResponses, type Instrument, type InstrumentCoverage, type InstrumentDetail, type InstrumentLinks, type InstrumentListMeta, type InstrumentListResponse, type JobState, type ListDatasetsData, type ListDatasetsResponse, type ListDatasetsResponses, type ListExchangesData, type ListExchangesResponse, type ListExchangesResponses, type ListInstrumentsData, type ListInstrumentsError, type ListInstrumentsErrors, type ListInstrumentsResponse, type ListInstrumentsResponses, type ListSegmentInstrumentsData, type ListSegmentInstrumentsError, type ListSegmentInstrumentsErrors, type ListSegmentInstrumentsResponse, type ListSegmentInstrumentsResponses, type ListStrategiesData, type ListStrategiesResponse, type ListStrategiesResponses, type Notice, type OpenDatasetUploadData, type OpenDatasetUploadError, type OpenDatasetUploadErrors, type OpenDatasetUploadResponse, type OpenDatasetUploadResponses, type Options, type PrepareBacktestData, type PrepareBacktestError, type PrepareBacktestErrors, type PrepareBacktestResponse, type PrepareBacktestResponses, type PrepareJobState, type PrepareRequest, type ResponseError, type ResultMap, type ScalarStrategyParamValue, type StrategyId, type StrategyLinks, type StrategyState, type StrategySummary, type SweepAxis, type SweepBaseConfig, type SweepHeatmap, type SweepHeatmapCell, type SweepMarginal, type SweepMarginalPoint, type SweepProgress, type SweepRunRow, type SweepSensitivity, type SweepSpecRequest, type ValidateStrategyData, type ValidateStrategyError, type ValidateStrategyErrors, type ValidateStrategyResponse, type ValidateStrategyResponses, type WalkForwardAccepted, type WalkForwardFold, type WalkForwardRequest, type WalkForwardResult, authenticate, cancelBacktest, cancelSweep, client, compileStrategy, createDataset, deleteDataset, deleteStrategy, downloadKlines, downloadTickers, executeBacktest, executeSweep, finalizeDatasetUpload, getAccount, getAccountUsage, getBacktestResult, getDataset, getDatasetImport, getDatasetUpload, getPrepareStatus, getStrategy, getStrategyCode, getSweepResult, getSweepRunEquityCurve, getSweepSensitivity, importDataset, listDatasets, listExchanges, listInstruments, listSegmentInstruments, listStrategies, openDatasetUpload, prepareBacktest, validateStrategy };