@qtsurfer/api-client 0.16.0 → 0.17.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
@@ -272,8 +272,17 @@ type Exchange = {
272
272
  };
273
273
  /**
274
274
  * Managed exchange data sources available for backtesting.
275
+ *
276
+ * * `ticker` — trades. Can be prepared, executed and swept.
277
+ * * `kline` — aggregated bars (candlesticks). Can be prepared, executed and swept. A run reads
278
+ * bars of the `cadence` the data was prepared at: you choose the bar width when you prepare,
279
+ * and the strategy does not fix it. See `PrepareRequest.cadence` for the accepted values.
280
+ * * `funding` — funding rates. Can be **prepared but not executed or swept yet**: a `funding`
281
+ * request to `execute` or `executeSweep` is rejected with `400` before anything is queued,
282
+ * and the message names the sources that can be run.
283
+ *
275
284
  */
276
- type DataSourceType = "ticker";
285
+ type DataSourceType = "ticker" | "kline" | "funding";
277
286
  /**
278
287
  * Two shapes, chosen by the `exchangeId` path segment. Against a managed exchange,
279
288
  * `instrument` is required and `datasetId`/`datasetVersionId` are ignored. Against the
@@ -322,9 +331,14 @@ type PrepareRequest = {
322
331
  * than the source, or not an exact multiple of it, returns `400`. What's accepted, and
323
332
  * what omitting it means, depends on the source:
324
333
  *
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.
334
+ * * Managed exchange, `ticker` or `funding` — one of `1s`, `5s`, `1m`, `3m`, `5m`, `15m`,
335
+ * `30m`, `1h`, `2h`, `4h`, `8h`, `12h`, `1d`, `1w`, `1q`; any other label returns `400`.
336
+ * Omitted = `1s`, the publisher's native cadence.
337
+ * * Managed exchange, `kline` — one of `1s`, `1m`, `5m`, `15m`, `30m`, `1h`, `4h`, `1d`;
338
+ * any other label, including `5s`, `3m` and `8h`, returns `400` and names the accepted
339
+ * ones. Omitted = `1s`. This is the width of the bars a run reads: it is chosen here,
340
+ * once, and the same strategy can be run at several cadences by preparing the range at
341
+ * each.
328
342
  * * Dataset (`exchangeId: user`) — omitted = the dataset version's own discovered
329
343
  * `cadence` (see `DatasetVersion.cadence`), served as-is. Any cadence equal to or
330
344
  * coarser than it and an exact multiple of it is accepted, including ones outside the
@@ -1045,8 +1059,9 @@ type EquityCurveResult = {
1045
1059
  };
1046
1060
  /**
1047
1061
  * Unique identifier for a compiled strategy, derived from the source itself: the same code
1048
- * always yields the same id, for every caller, whatever its formatting. See
1049
- * `POST /strategy` for exactly which rewrites preserve it and which do not.
1062
+ * always yields the same id, for every caller. How much formatting the id ignores depends on
1063
+ * the language — see `POST /strategy` for exactly which rewrites preserve it and which do
1064
+ * not.
1050
1065
  *
1051
1066
  */
1052
1067
  type StrategyId = string;
@@ -1663,6 +1678,239 @@ type AuthTokenError = {
1663
1678
  */
1664
1679
  message: string;
1665
1680
  };
1681
+ /**
1682
+ * One market feed a live run consumes. Exactly one entry per run today.
1683
+ */
1684
+ type LiveSource = {
1685
+ /**
1686
+ * Venue category. `cx` (centralized exchange) is the only one live runs support today.
1687
+ */
1688
+ venueType: string;
1689
+ exchange: string;
1690
+ segment: string;
1691
+ /**
1692
+ * Both `ticker` and `kline` connect to the lightest (fastest) cadence available for the exchange — today, 1 tick/second on every supported exchange. Choosing a specific cadence is not offered yet.
1693
+ */
1694
+ type: "ticker" | "kline";
1695
+ /**
1696
+ * Instrument symbols, or `["*"]` for every instrument the exchange/segment offers (tier-gated).
1697
+ */
1698
+ instruments: Array<string>;
1699
+ };
1700
+ type StartLiveRequest = {
1701
+ sources: [LiveSource];
1702
+ /**
1703
+ * Strategy parameters to start with. Opaque key/value pairs — see this strategy's own `declaredProperties` (from `POST /strategy`) for the keys it accepts.
1704
+ */
1705
+ params?: {
1706
+ [key: string]: unknown;
1707
+ };
1708
+ /**
1709
+ * A `public` run appears in `GET /live/public` and its signal channel accepts subscriptions from anyone, not only you.
1710
+ */
1711
+ visibility?: "private" | "public";
1712
+ /**
1713
+ * Request that this run's signals be relayed over its WebSocket channel once it reaches the `live` stage — see the "Live execution" guide. Has no effect while the run is still in the `sandbox` stage, regardless of this value.
1714
+ */
1715
+ relay?: boolean;
1716
+ name?: string;
1717
+ description?: string;
1718
+ };
1719
+ type UpdateLiveRequest = {
1720
+ visibility?: "private" | "public";
1721
+ name?: string;
1722
+ description?: string;
1723
+ };
1724
+ type UpdateLiveParamsRequest = {
1725
+ /**
1726
+ * Must be non-empty; every key must be a property your strategy declares.
1727
+ */
1728
+ params: {
1729
+ [key: string]: unknown;
1730
+ };
1731
+ };
1732
+ /**
1733
+ * A live run's full state, as returned by starting, reading, or stopping it through its strategy.
1734
+ */
1735
+ type LiveRun = {
1736
+ strategyId: StrategyId;
1737
+ /**
1738
+ * This run's own id — its canonical identity for `PATCH`/`PUT .../params` and for `GET /live/public`.
1739
+ */
1740
+ runId: string;
1741
+ name?: string;
1742
+ description?: string;
1743
+ visibility: "private" | "public";
1744
+ /**
1745
+ * A new run always starts `SANDBOX` — a trial run compared against a second execution for agreement — and moves to `LIVE` once it passes.
1746
+ */
1747
+ stage: "SANDBOX" | "LIVE";
1748
+ /**
1749
+ * `STARTING` until first observed running; otherwise the runner's own reported state (e.g. `RUNNING`).
1750
+ */
1751
+ state: string;
1752
+ /**
1753
+ * What you last asked for. `state` can lag this briefly after `DELETE`.
1754
+ */
1755
+ desired: "RUNNING" | "STOPPED";
1756
+ /**
1757
+ * Present only when the run stopped because it exceeded its resource allowance.
1758
+ */
1759
+ reason?: string;
1760
+ sources: Array<LiveSource>;
1761
+ params: {
1762
+ [key: string]: unknown;
1763
+ };
1764
+ /**
1765
+ * Increments on every accepted `PUT .../params` call, including one that resends the current values.
1766
+ */
1767
+ paramsVersion: number;
1768
+ /**
1769
+ * Whether this run's signals are being relayed over the WebSocket channel described in the "Live execution" guide, right now. This is the effective value — `false` on a `sandbox` run regardless of what was requested at start; matches the requested value once `stage` reaches `live`.
1770
+ */
1771
+ relay: boolean;
1772
+ /**
1773
+ * Epoch milliseconds.
1774
+ */
1775
+ startedAtMs: number;
1776
+ /**
1777
+ * The sandbox trial's promotion verdict, once one exists. Shape is not yet stabilized as public API — treat as opaque diagnostics.
1778
+ */
1779
+ gate?: {
1780
+ [key: string]: unknown;
1781
+ };
1782
+ };
1783
+ /**
1784
+ * A run's state as returned by `PATCH /live/{runId}` — narrower than `LiveRun` (no `strategyId`, `params`, or `desired`), since this endpoint is addressed by `runId` alone.
1785
+ */
1786
+ type LiveRunCompact = {
1787
+ runId: string;
1788
+ name?: string;
1789
+ description?: string;
1790
+ visibility: "private" | "public";
1791
+ stage: "SANDBOX" | "LIVE";
1792
+ state: string;
1793
+ sources: Array<LiveSource>;
1794
+ };
1795
+ /**
1796
+ * A run as it appears in `GET /live/public` — never reveals who owns it or which strategy it runs.
1797
+ */
1798
+ type PublicLiveRun = {
1799
+ runId: string;
1800
+ name?: string;
1801
+ description?: string;
1802
+ sources: Array<LiveSource>;
1803
+ state: string;
1804
+ createdAtMs: number;
1805
+ };
1806
+ type PublicLiveListResponse = {
1807
+ runs: Array<PublicLiveRun>;
1808
+ _links?: PublicLiveListLinks;
1809
+ };
1810
+ /**
1811
+ * Present only when another page exists.
1812
+ */
1813
+ type PublicLiveListLinks = {
1814
+ next?: PublicLiveNextLink;
1815
+ };
1816
+ type PublicLiveNextLink = {
1817
+ href?: string;
1818
+ };
1819
+ /**
1820
+ * One page of a run's recorded signals, oldest first.
1821
+ */
1822
+ type LiveSignalPage = {
1823
+ signals: Array<LiveSignal>;
1824
+ /**
1825
+ * The oldest moment this run's signals can still be read from. Absent when the run has produced nothing yet. It moves forward over time as older signals are discarded, so a `sinceMs` earlier than this is served from here instead.
1826
+ */
1827
+ availableSinceMs?: number;
1828
+ _links?: PublicLiveListLinks;
1829
+ };
1830
+ /**
1831
+ * One signal, in the same shape the real-time signal channel delivers.
1832
+ */
1833
+ type LiveSignal = {
1834
+ /**
1835
+ * Envelope schema version.
1836
+ */
1837
+ v: number;
1838
+ /**
1839
+ * Stable id for this exact signal — dedupe on it across reconnects or overlapping reads.
1840
+ */
1841
+ signalId: string;
1842
+ runId: string;
1843
+ /**
1844
+ * The stage the run was in when this signal was produced.
1845
+ */
1846
+ stage: "sandbox" | "live";
1847
+ /**
1848
+ * The parameter set in force when this signal was produced.
1849
+ */
1850
+ paramsVersion?: number;
1851
+ type: "hint" | "info" | "marker" | "command";
1852
+ /**
1853
+ * `BUY`/`SELL` for a `hint`, the command name for a `command`, absent otherwise.
1854
+ */
1855
+ kind?: string | null;
1856
+ /**
1857
+ * Market time the signal was produced.
1858
+ */
1859
+ eventTsMs: number;
1860
+ /**
1861
+ * Time it was published — always at or after `eventTsMs`.
1862
+ */
1863
+ emittedAtMs: number;
1864
+ instrument: LiveSignalInstrument;
1865
+ order?: LiveSignalOrder;
1866
+ /**
1867
+ * The signal's own free-form payload.
1868
+ */
1869
+ data?: {
1870
+ [key: string]: unknown;
1871
+ };
1872
+ /**
1873
+ * `true` only for a signal republished to fill a gap in the record.
1874
+ */
1875
+ regenerated?: boolean;
1876
+ /**
1877
+ * Content hash, for checking that two independent deliveries of the same signal agree.
1878
+ */
1879
+ digest: string;
1880
+ };
1881
+ type LiveSignalInstrument = {
1882
+ exchange?: string;
1883
+ segment?: string;
1884
+ /**
1885
+ * Slashed form, e.g. `BTC/USDT`.
1886
+ */
1887
+ symbol?: string;
1888
+ };
1889
+ /**
1890
+ * Present only for a `hint`.
1891
+ */
1892
+ type LiveSignalOrder = {
1893
+ orderKind?: string;
1894
+ price?: string | null;
1895
+ amount?: string | null;
1896
+ stopPrice?: string | null;
1897
+ trailPct?: string | null;
1898
+ } | null;
1899
+ type LiveConnectionToken = {
1900
+ /**
1901
+ * Pass as the `token` field of the WebSocket `connect` command — see the "Live execution" guide.
1902
+ */
1903
+ token: string;
1904
+ expiresAtMs: number;
1905
+ };
1906
+ type LiveParamsUpdateResult = {
1907
+ runId: string;
1908
+ paramsVersion: number;
1909
+ /**
1910
+ * Epoch milliseconds — the earliest moment the new values are guaranteed to be in effect.
1911
+ */
1912
+ effectiveAtMs: number;
1913
+ };
1666
1914
  type AuthenticateData = {
1667
1915
  body?: never;
1668
1916
  path?: never;
@@ -1914,7 +2162,7 @@ type ListStrategiesResponses = {
1914
2162
  type ListStrategiesResponse = ListStrategiesResponses[keyof ListStrategiesResponses];
1915
2163
  type CompileStrategyData = {
1916
2164
  /**
1917
- * Raw strategy Java source code
2165
+ * Raw strategy source code, Java or QTScript
1918
2166
  */
1919
2167
  body: string;
1920
2168
  path?: never;
@@ -1923,7 +2171,8 @@ type CompileStrategyData = {
1923
2171
  };
1924
2172
  type CompileStrategyErrors = {
1925
2173
  /**
1926
- * The source is not valid Java; the message carries the compiler diagnostics. Nothing is
2174
+ * The source is not valid; the message carries the diagnostics — the compiler's for Java,
2175
+ * and for QTScript `Line N, Column M:` entries against your own source. Nothing is
1927
2176
  * registered, so there is no id to look up afterwards.
1928
2177
  *
1929
2178
  */
@@ -2064,7 +2313,7 @@ type GetStrategyCodeResponses = {
2064
2313
  200: {
2065
2314
  strategyId: StrategyId;
2066
2315
  /**
2067
- * Raw strategy Java source code, exactly as registered.
2316
+ * Raw strategy source code (Java or QTScript), exactly as registered.
2068
2317
  */
2069
2318
  code: string;
2070
2319
  };
@@ -2093,7 +2342,9 @@ type PrepareBacktestData = {
2093
2342
  type PrepareBacktestErrors = {
2094
2343
  /**
2095
2344
  * Invalid request or parameters. Also returned when `from` is older than the configured
2096
- * lookback window or `to` is in the future. For `exchangeId: user`, also returned when
2345
+ * lookback window or `to` is in the future, or when `type` is `kline` and `cadence` is not
2346
+ * one of the cadences kline data is available at (the message lists them). For
2347
+ * `exchangeId: user`, also returned when
2097
2348
  * the dataset's current upload has not finished ingesting, or `cadence` asks for a finer
2098
2349
  * granularity than the dataset's own discovered cadence (or one that isn't an exact
2099
2350
  * multiple of it), or the requested range exceeds your tier's range limit.
@@ -2176,7 +2427,9 @@ type ExecuteSweepData = {
2176
2427
  };
2177
2428
  type ExecuteSweepErrors = {
2178
2429
  /**
2179
- * Invalid sweep specification or the expanded grid exceeds the server limit.
2430
+ * Invalid sweep specification, a `type` that cannot be swept yet (`funding`), or the
2431
+ * expanded grid exceeds the server limit.
2432
+ *
2180
2433
  */
2181
2434
  400: ResponseError;
2182
2435
  /**
@@ -2410,7 +2663,9 @@ type ExecuteBacktestData = {
2410
2663
  };
2411
2664
  type ExecuteBacktestErrors = {
2412
2665
  /**
2413
- * Invalid request or parameters
2666
+ * Invalid request or parameters. Also returned for a `type` that cannot be executed yet
2667
+ * (`funding`); the message names the sources that can.
2668
+ *
2414
2669
  */
2415
2670
  400: ResponseError;
2416
2671
  /**
@@ -2795,6 +3050,252 @@ type GetDatasetImportResponses = {
2795
3050
  200: DatasetImportState;
2796
3051
  };
2797
3052
  type GetDatasetImportResponse = GetDatasetImportResponses[keyof GetDatasetImportResponses];
3053
+ type StopLiveData = {
3054
+ body?: never;
3055
+ path: {
3056
+ /**
3057
+ * The id returned by `POST /strategy`
3058
+ */
3059
+ strategyId: StrategyId;
3060
+ };
3061
+ query?: never;
3062
+ url: "/strategy/{strategyId}/live";
3063
+ };
3064
+ type StopLiveErrors = {
3065
+ /**
3066
+ * You have never started a live run for this strategy.
3067
+ */
3068
+ 404: ResponseError;
3069
+ };
3070
+ type StopLiveError = StopLiveErrors[keyof StopLiveErrors];
3071
+ type StopLiveResponses = {
3072
+ /**
3073
+ * Stop requested (or already stopped) — the run's current state
3074
+ */
3075
+ 200: LiveRun;
3076
+ };
3077
+ type StopLiveResponse = StopLiveResponses[keyof StopLiveResponses];
3078
+ type GetLiveData = {
3079
+ body?: never;
3080
+ path: {
3081
+ /**
3082
+ * The id returned by `POST /strategy`
3083
+ */
3084
+ strategyId: StrategyId;
3085
+ };
3086
+ query?: never;
3087
+ url: "/strategy/{strategyId}/live";
3088
+ };
3089
+ type GetLiveErrors = {
3090
+ /**
3091
+ * You have never started a live run for this strategy.
3092
+ */
3093
+ 404: ResponseError;
3094
+ };
3095
+ type GetLiveError = GetLiveErrors[keyof GetLiveErrors];
3096
+ type GetLiveResponses = {
3097
+ /**
3098
+ * The run's current state
3099
+ */
3100
+ 200: LiveRun;
3101
+ };
3102
+ type GetLiveResponse = GetLiveResponses[keyof GetLiveResponses];
3103
+ type StartLiveData = {
3104
+ body: StartLiveRequest;
3105
+ path: {
3106
+ /**
3107
+ * The id returned by `POST /strategy`
3108
+ */
3109
+ strategyId: StrategyId;
3110
+ };
3111
+ query?: never;
3112
+ url: "/strategy/{strategyId}/live";
3113
+ };
3114
+ type StartLiveErrors = {
3115
+ /**
3116
+ * Malformed `sources` (not exactly one entry, missing field, unsupported `type`), or an invalid `visibility`.
3117
+ */
3118
+ 400: ResponseError;
3119
+ /**
3120
+ * No such registered strategy for this user, or it has never been compiled.
3121
+ */
3122
+ 404: ResponseError;
3123
+ /**
3124
+ * A run for this strategy is already active. Stop it first.
3125
+ */
3126
+ 409: ResponseError;
3127
+ /**
3128
+ * Your plan does not include live runs, would exceed your concurrent-run or
3129
+ * instrument-count limit, or the platform is at capacity right now. Carries a
3130
+ * `Retry-After` header.
3131
+ *
3132
+ */
3133
+ 429: ResponseError;
3134
+ };
3135
+ type StartLiveError = StartLiveErrors[keyof StartLiveErrors];
3136
+ type StartLiveResponses = {
3137
+ /**
3138
+ * Started — the run's own state, in the sandbox stage
3139
+ */
3140
+ 201: LiveRun;
3141
+ };
3142
+ type StartLiveResponse = StartLiveResponses[keyof StartLiveResponses];
3143
+ type ListPublicLiveData = {
3144
+ body?: never;
3145
+ path?: never;
3146
+ query?: {
3147
+ /**
3148
+ * The `runId` from a previous page's `_links.next.href`. Omit for the first page.
3149
+ */
3150
+ cursor?: string;
3151
+ /**
3152
+ * Page size. Larger values are capped, not rejected.
3153
+ */
3154
+ limit?: number;
3155
+ };
3156
+ url: "/live/public";
3157
+ };
3158
+ type ListPublicLiveErrors = {
3159
+ /**
3160
+ * An invalid `cursor` or `limit`.
3161
+ */
3162
+ 400: ResponseError;
3163
+ };
3164
+ type ListPublicLiveError = ListPublicLiveErrors[keyof ListPublicLiveErrors];
3165
+ type ListPublicLiveResponses = {
3166
+ /**
3167
+ * A page of public runs
3168
+ */
3169
+ 200: PublicLiveListResponse;
3170
+ };
3171
+ type ListPublicLiveResponse = ListPublicLiveResponses[keyof ListPublicLiveResponses];
3172
+ type UpdateLiveData = {
3173
+ body?: UpdateLiveRequest;
3174
+ path: {
3175
+ /**
3176
+ * The `runId` from `POST`/`GET`/`DELETE` `.../live` or from `GET /live/public`
3177
+ */
3178
+ runId: string;
3179
+ };
3180
+ query?: never;
3181
+ url: "/live/{runId}";
3182
+ };
3183
+ type UpdateLiveErrors = {
3184
+ /**
3185
+ * `visibility` present but not `private`/`public`.
3186
+ */
3187
+ 400: ResponseError;
3188
+ /**
3189
+ * No such run, or you do not own it — the two look identical on purpose.
3190
+ */
3191
+ 404: ResponseError;
3192
+ };
3193
+ type UpdateLiveError = UpdateLiveErrors[keyof UpdateLiveErrors];
3194
+ type UpdateLiveResponses = {
3195
+ /**
3196
+ * Updated
3197
+ */
3198
+ 200: LiveRunCompact;
3199
+ };
3200
+ type UpdateLiveResponse = UpdateLiveResponses[keyof UpdateLiveResponses];
3201
+ type UpdateLiveParamsData = {
3202
+ body: UpdateLiveParamsRequest;
3203
+ path: {
3204
+ runId: string;
3205
+ };
3206
+ query?: never;
3207
+ url: "/live/{runId}/params";
3208
+ };
3209
+ type UpdateLiveParamsErrors = {
3210
+ /**
3211
+ * `params` missing, not an object, empty, or contains a key your strategy does not declare.
3212
+ */
3213
+ 400: ResponseError;
3214
+ /**
3215
+ * No such run, or you do not own it.
3216
+ */
3217
+ 404: ResponseError;
3218
+ /**
3219
+ * This run's compilation has no declared properties on record — recompile the strategy to enable runtime parameter updates.
3220
+ */
3221
+ 409: ResponseError;
3222
+ };
3223
+ type UpdateLiveParamsError = UpdateLiveParamsErrors[keyof UpdateLiveParamsErrors];
3224
+ type UpdateLiveParamsResponses = {
3225
+ /**
3226
+ * Accepted
3227
+ */
3228
+ 200: LiveParamsUpdateResult;
3229
+ };
3230
+ type UpdateLiveParamsResponse = UpdateLiveParamsResponses[keyof UpdateLiveParamsResponses];
3231
+ type GetLiveRunSignalsData = {
3232
+ body?: never;
3233
+ path: {
3234
+ /**
3235
+ * The run whose signals to read.
3236
+ */
3237
+ runId: string;
3238
+ };
3239
+ query?: {
3240
+ /**
3241
+ * Start from this moment (epoch ms). Omitted, or older than the available window, starts at `availableSinceMs`. Ignored when `cursor` is given.
3242
+ */
3243
+ sinceMs?: number;
3244
+ /**
3245
+ * Narrow to one or more instruments. Omitted, or `*`, returns every instrument the run
3246
+ * covers. Accepts a single pair (`BTC/USDT`), either half as a wildcard (`*USDT` for any
3247
+ * base against that quote, `BTC*` for that base against any quote), or a comma-separated
3248
+ * list of pairs (`BTC/USDT,ETH/EUR`). Symbols are matched exactly, case included — pass
3249
+ * them as this API reports them.
3250
+ *
3251
+ */
3252
+ instrument?: string;
3253
+ /**
3254
+ * Continue from a previous page's `_links.next`. Takes precedence over `sinceMs`.
3255
+ */
3256
+ cursor?: string;
3257
+ /**
3258
+ * Page size.
3259
+ */
3260
+ limit?: number;
3261
+ };
3262
+ url: "/live/{runId}/signals";
3263
+ };
3264
+ type GetLiveRunSignalsErrors = {
3265
+ /**
3266
+ * `instrument`, `sinceMs`, `limit` or `cursor` is malformed.
3267
+ */
3268
+ 400: ResponseError;
3269
+ /**
3270
+ * No such run, or not one you may read.
3271
+ */
3272
+ 404: ResponseError;
3273
+ /**
3274
+ * The cursor's position is no longer available — restart from the `availableSinceMs` named in the message.
3275
+ */
3276
+ 410: ResponseError;
3277
+ };
3278
+ type GetLiveRunSignalsError = GetLiveRunSignalsErrors[keyof GetLiveRunSignalsErrors];
3279
+ type GetLiveRunSignalsResponses = {
3280
+ /**
3281
+ * One page of signals
3282
+ */
3283
+ 200: LiveSignalPage;
3284
+ };
3285
+ type GetLiveRunSignalsResponse = GetLiveRunSignalsResponses[keyof GetLiveRunSignalsResponses];
3286
+ type MintLiveConnectionTokenData = {
3287
+ body?: never;
3288
+ path?: never;
3289
+ query?: never;
3290
+ url: "/live/token";
3291
+ };
3292
+ type MintLiveConnectionTokenResponses = {
3293
+ /**
3294
+ * Token minted
3295
+ */
3296
+ 200: LiveConnectionToken;
3297
+ };
3298
+ type MintLiveConnectionTokenResponse = MintLiveConnectionTokenResponses[keyof MintLiveConnectionTokenResponses];
2798
3299
  type ClientOptions = {
2799
3300
  baseUrl: "https://api.qtsurfer.net/v1" | "https://api.qtsurfer.com/v1" | (string & {});
2800
3301
  };
@@ -2928,22 +3429,35 @@ declare const listStrategies: <ThrowOnError extends boolean = false>(options?: O
2928
3429
  * Compile and register a strategy
2929
3430
  * Compiles raw strategy source and registers it, returning its `strategyId`.
2930
3431
  *
2931
- * **This answers one question: is the source valid Java.** It compiles, registers, and hands
3432
+ * The source is either **Java** — a class extending a strategy base class — or **QTScript**
3433
+ * (beta), a compact strategy language whose braced bodies are plain Java. QTScript source
3434
+ * begins with the `strategy` keyword — whitespace and comments (`//` or `* *`) before it
3435
+ * are ignored — and that is how the two are told apart: there is no separate endpoint and
3436
+ * no header to set. Once registered, a strategy is used the same way
3437
+ * whichever language it was written in.
3438
+ *
3439
+ * **This answers one question: is the source valid.** It compiles, registers, and hands
2932
3440
  * back the id — nothing more. Whether the class can actually run is
2933
3441
  * `POST /strategy/{strategyId}/validate`, and everything known about a strategy, validation
2934
3442
  * included, is read from `GET /strategy/{strategyId}`. One place to ask, so there is no second
2935
3443
  * answer to keep in step.
2936
3444
  *
2937
- * The `strategyId` is derived from what the code *means*, not from how it is written. Adding a
2938
- * comment, inserting a blank line, re-indenting, reordering imports, or moving a method around
2939
- * all return the **same** id — you have not created a second strategy. Renaming a variable,
2940
- * changing an identifier's case, reordering fields, or reordering statements inside a method
2941
- * return a **different** one.
3445
+ * For **Java**, the `strategyId` is derived from what the code *means*, not from how it is
3446
+ * written. Adding a comment, inserting a blank line, re-indenting, reordering imports, or
3447
+ * moving a method around all return the **same** id — you have not created a second strategy.
3448
+ * Renaming a variable, changing an identifier's case, reordering fields, or reordering
3449
+ * statements inside a method return a **different** one.
3450
+ *
3451
+ * For **QTScript**, the id is derived from the text, because indentation is part of its
3452
+ * grammar. Only differences that cannot change the strategy are ignored: a byte-order mark, the
3453
+ * style of line endings, whitespace at the end of a line, and blank lines before the first and
3454
+ * after the last line. Anything else — a comment, the indentation, a blank line in between —
3455
+ * returns a **different** id.
2942
3456
  *
2943
3457
  * Two rules follow, and they are worth designing around:
2944
3458
  *
2945
- * - re-submitting a strategy you have only reformatted is free, and gives you back the id you
2946
- * already had, along with any validation already recorded against it;
3459
+ * - re-submitting a Java strategy you have only reformatted is free, and gives you back the id
3460
+ * you already had, along with any validation already recorded against it;
2947
3461
  * - the id says nothing about *behaviour*. Two sources that compute the same thing by
2948
3462
  * different means are two strategies, because deciding otherwise would mean deciding program
2949
3463
  * equivalence.
@@ -3023,6 +3537,10 @@ declare const getStrategyCode: <ThrowOnError extends boolean = false>(options: O
3023
3537
  * The same params always return the same `jobId` (idempotent). Repeated calls with identical
3024
3538
  * params do not enqueue duplicate work — they reuse the existing job.
3025
3539
  *
3540
+ * Every source in `DataSourceType` can be prepared, but not every one can then be run: `funding`
3541
+ * data can be prepared and is rejected by `execute` and `executeSweep`. A `kline` prepare takes
3542
+ * the bar width from `cadence` — see `PrepareRequest`.
3543
+ *
3026
3544
  * **`exchangeId: user` is reserved for your own uploaded data.** Instead of a managed
3027
3545
  * exchange, it prepares from a dataset you created via `POST /datasets` (see the **Dataset**
3028
3546
  * endpoints) — send `datasetId` in place of `instrument`. See `PrepareRequest` below for the
@@ -3046,6 +3564,10 @@ declare const getPrepareStatus: <ThrowOnError extends boolean = false>(options:
3046
3564
  * The backend expands and executes the matrix internally; clients poll the returned
3047
3565
  * `sweepId` for incremental results.
3048
3566
  *
3567
+ * `type` must be `ticker` or `kline`; a `kline` sweep, walk-forward included, runs over bars of
3568
+ * the cadence the request was prepared at. `funding` can be prepared but not swept yet: it is
3569
+ * rejected with `400` before anything is queued.
3570
+ *
3049
3571
  * Supplying `walkForward` runs the sweep in a different mode entirely. Instead of scoring
3050
3572
  * every parameter vector once over the whole range, the data is split into F sequential
3051
3573
  * folds; each fold optimizes the full grid on its own window and then scores only its winner
@@ -3152,6 +3674,11 @@ declare const getSweepRunEquityCurve: <ThrowOnError extends boolean = false>(opt
3152
3674
  * Returns immediately with a `jobId`; poll `GET /backtest/{exchangeId}/{type}/execute/{jobId}`
3153
3675
  * for the result.
3154
3676
  *
3677
+ * `type` must be a source that can be executed: `ticker` or `kline`. A `kline` strategy is fed
3678
+ * bars of the cadence its `prepareJobId` was prepared at — chosen by you when preparing, not by
3679
+ * the strategy. `funding` can be prepared but not executed yet: it is rejected with `400`
3680
+ * before anything is queued.
3681
+ *
3155
3682
  * Optionally takes `params`: strategy properties for this one run, applied without
3156
3683
  * recompiling. This is how a sweep leaderboard winner gets re-run for its `equityCurve` —
3157
3684
  * a sweep row carries the ten ranking metrics but never a curve, whatever its size. Compile
@@ -3337,7 +3864,126 @@ declare const importDataset: <ThrowOnError extends boolean = false>(options: Opt
3337
3864
  *
3338
3865
  */
3339
3866
  declare const getDatasetImport: <ThrowOnError extends boolean = false>(options: Options<GetDatasetImportData, ThrowOnError>) => _hey_api_client_fetch.RequestResult<DatasetImportState, ResponseError, ThrowOnError>;
3867
+ /**
3868
+ * Stop this strategy's live run
3869
+ * Requests a stop. The run winds down at its own next check-in rather than instantly —
3870
+ * poll `GET`/`PATCH` `.../live` and expect `state` to remain `RUNNING` for a short window
3871
+ * after `desired` flips to `STOPPED`. Calling this again on an already-stopped run is not an
3872
+ * error; it returns the same (unchanged) state.
3873
+ *
3874
+ */
3875
+ declare const stopLive: <ThrowOnError extends boolean = false>(options: Options<StopLiveData, ThrowOnError>) => _hey_api_client_fetch.RequestResult<LiveRun, ResponseError, ThrowOnError>;
3876
+ /**
3877
+ * Get this strategy's current (or most recent) live run
3878
+ * The run you last started for this strategy — its most complete state, including `params`
3879
+ * and the promotion `gate` once the sandbox trial has one to report. Returns the run's last
3880
+ * known state even after it has stopped; this endpoint never disappears history.
3881
+ *
3882
+ */
3883
+ declare const getLive: <ThrowOnError extends boolean = false>(options: Options<GetLiveData, ThrowOnError>) => _hey_api_client_fetch.RequestResult<LiveRun, ResponseError, ThrowOnError>;
3884
+ /**
3885
+ * Start a strategy on a live market feed
3886
+ * Starts your strategy against a live market feed. A new run always begins in the **sandbox**
3887
+ * stage — a short trial that compares an independent second execution against the first for
3888
+ * agreement — before it is eligible for promotion to the live stage where it actually
3889
+ * publishes signals other systems can act on. Poll `GET /strategy/{strategyId}/live` (or
3890
+ * `PATCH`/`DELETE` `/live/{runId}` once you have the `runId`) to watch `stage` move from
3891
+ * `SANDBOX` to `LIVE`.
3892
+ *
3893
+ * Only one run per strategy at a time — starting again while one is already running is `409`;
3894
+ * stop the current one first.
3895
+ *
3896
+ * `sources` takes exactly one entry today (multi-source strategies are not supported yet).
3897
+ * `type` is `ticker` or `kline`; anything else is rejected. Both connect to the lightest
3898
+ * (fastest) cadence available for the exchange — today that is 1 tick/second on every
3899
+ * supported exchange; choosing among several cadences is not offered yet.
3900
+ *
3901
+ * `params` is passed straight through to the strategy at start — the same free-form object
3902
+ * `POST /strategy/{strategyId}/validate` and the backtest endpoints already accept. To change
3903
+ * a parameter **while the run is live**, use `PUT /live/{runId}/params` instead; this endpoint
3904
+ * only sets the values a run starts with.
3905
+ *
3906
+ * Consuming a run's own output — its signals, and updating its parameters over a live
3907
+ * connection instead of polling — is a WebSocket protocol on top of these REST endpoints; see
3908
+ * the "Live execution" guide linked from this tag's description for the full flow (minting a
3909
+ * connection token, the channel and RPC method).
3910
+ *
3911
+ */
3912
+ declare const startLive: <ThrowOnError extends boolean = false>(options: Options<StartLiveData, ThrowOnError>) => _hey_api_client_fetch.RequestResult<LiveRun, ResponseError, ThrowOnError>;
3913
+ /**
3914
+ * Browse public live runs
3915
+ * Every run whose owner marked it `public` and is currently live and running — anyone's,
3916
+ * yours included, and listed without revealing who owns it. Most recently started first.
3917
+ *
3918
+ * This is the only `Live Execution` endpoint that needs no `Authorization` header.
3919
+ *
3920
+ */
3921
+ declare const listPublicLive: <ThrowOnError extends boolean = false>(options?: Options<ListPublicLiveData, ThrowOnError>) => _hey_api_client_fetch.RequestResult<PublicLiveListResponse, ResponseError, ThrowOnError>;
3922
+ /**
3923
+ * Change a run's visibility, name, or description
3924
+ * Owner only, addressed by `runId` directly rather than through its strategy — this is a
3925
+ * run's own canonical identity, independent of which strategy started it.
3926
+ *
3927
+ * Setting `visibility` from `public` back to `private` also evicts anyone currently connected
3928
+ * to the run's live signal channel who is not its owner — best-effort; the change to this
3929
+ * record is not rolled back if that eviction fails.
3930
+ *
3931
+ */
3932
+ declare const updateLive: <ThrowOnError extends boolean = false>(options: Options<UpdateLiveData, ThrowOnError>) => _hey_api_client_fetch.RequestResult<LiveRunCompact, ResponseError, ThrowOnError>;
3933
+ /**
3934
+ * Change a running strategy's parameters
3935
+ * Updates one or more parameters of a run **while it stays live** — unlike `params` on
3936
+ * `POST /strategy/{strategyId}/live`, which only sets the starting values. Owner only.
3937
+ *
3938
+ * Every key in `params` must be one your strategy declares (see `declaredProperties` on
3939
+ * `POST /strategy`) as of the compilation this run is executing — recompiling the strategy
3940
+ * later never changes what an already-running instance accepts; start a new run for that.
3941
+ *
3942
+ * The change does not take effect the instant this call returns: `effectiveAtMs` is the
3943
+ * earliest moment it is guaranteed to apply, a few seconds out, so both the REST and
3944
+ * WebSocket paths to this same update (see the "Live execution" guide) land on the exact same
3945
+ * value at the exact same moment.
3946
+ *
3947
+ */
3948
+ declare const updateLiveParams: <ThrowOnError extends boolean = false>(options: Options<UpdateLiveParamsData, ThrowOnError>) => _hey_api_client_fetch.RequestResult<LiveParamsUpdateResult, ResponseError, ThrowOnError>;
3949
+ /**
3950
+ * Read a run's signals
3951
+ * Returns one page of the signals a run has already produced, newest-last, optionally from a
3952
+ * given time and narrowed to one or more instruments.
3953
+ *
3954
+ * This is the counterpart to the real-time WebSocket channel: that channel only carries what
3955
+ * happens while you are connected, and only for a run that asked for `relay`. A run's signals
3956
+ * are recorded either way, so this endpoint serves them whether or not `relay` was ever on,
3957
+ * in both the `sandbox` and `live` stages — use it to catch up after a disconnect, to read a
3958
+ * run you never relayed, or to page back over what has already happened.
3959
+ *
3960
+ * **The available window moves.** Signals are kept for a limited span, and the oldest are
3961
+ * continuously discarded as new ones arrive, so how far back you can read is not a fixed
3962
+ * number of hours: on a busy run it can be a good deal shorter. Every response carries
3963
+ * `availableSinceMs`, the oldest moment that can still be answered for. Asking for a
3964
+ * `sinceMs` older than that is not an error — you get everything from `availableSinceMs`
3965
+ * onwards, and that field tells you it happened.
3966
+ *
3967
+ * **A cursor can expire, and on a busy run it expires quickly.** If the position a cursor
3968
+ * points at has since been discarded, the next page answers `410` rather than silently
3969
+ * serving a shortened page that looks complete. Treat that as a normal outcome: read
3970
+ * `availableSinceMs` from the error and start again from there.
3971
+ *
3972
+ * Readable by the run's owner, and by anyone if the run is `public` — the same rule the
3973
+ * signal channel applies to a subscription.
3974
+ *
3975
+ */
3976
+ declare const getLiveRunSignals: <ThrowOnError extends boolean = false>(options: Options<GetLiveRunSignalsData, ThrowOnError>) => _hey_api_client_fetch.RequestResult<LiveSignalPage, ResponseError, ThrowOnError>;
3977
+ /**
3978
+ * Mint a WebSocket connection token
3979
+ * Mints a short-lived token for the WebSocket connection used to receive a run's signals in
3980
+ * real time and to call `live.params` (the WebSocket form of `PUT /live/{runId}/params`) —
3981
+ * see the "Live execution" guide linked from this tag's description for the full protocol.
3982
+ * Carries no request body.
3983
+ *
3984
+ */
3985
+ declare const mintLiveConnectionToken: <ThrowOnError extends boolean = false>(options?: Options<MintLiveConnectionTokenData, ThrowOnError>) => _hey_api_client_fetch.RequestResult<LiveConnectionToken, unknown, ThrowOnError>;
3340
3986
 
3341
3987
  declare const client: _hey_api_client_fetch.Client;
3342
3988
 
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 };
3989
+ 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 GetLiveData, type GetLiveError, type GetLiveErrors, type GetLiveResponse, type GetLiveResponses, type GetLiveRunSignalsData, type GetLiveRunSignalsError, type GetLiveRunSignalsErrors, type GetLiveRunSignalsResponse, type GetLiveRunSignalsResponses, 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 ListPublicLiveData, type ListPublicLiveError, type ListPublicLiveErrors, type ListPublicLiveResponse, type ListPublicLiveResponses, type ListSegmentInstrumentsData, type ListSegmentInstrumentsError, type ListSegmentInstrumentsErrors, type ListSegmentInstrumentsResponse, type ListSegmentInstrumentsResponses, type ListStrategiesData, type ListStrategiesResponse, type ListStrategiesResponses, type LiveConnectionToken, type LiveParamsUpdateResult, type LiveRun, type LiveRunCompact, type LiveSignal, type LiveSignalInstrument, type LiveSignalOrder, type LiveSignalPage, type LiveSource, type MintLiveConnectionTokenData, type MintLiveConnectionTokenResponse, type MintLiveConnectionTokenResponses, 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 PublicLiveListLinks, type PublicLiveListResponse, type PublicLiveNextLink, type PublicLiveRun, type ResponseError, type ResultMap, type ScalarStrategyParamValue, type StartLiveData, type StartLiveError, type StartLiveErrors, type StartLiveRequest, type StartLiveResponse, type StartLiveResponses, type StopLiveData, type StopLiveError, type StopLiveErrors, type StopLiveResponse, type StopLiveResponses, 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 UpdateLiveData, type UpdateLiveError, type UpdateLiveErrors, type UpdateLiveParamsData, type UpdateLiveParamsError, type UpdateLiveParamsErrors, type UpdateLiveParamsRequest, type UpdateLiveParamsResponse, type UpdateLiveParamsResponses, type UpdateLiveRequest, type UpdateLiveResponse, type UpdateLiveResponses, 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, getLive, getLiveRunSignals, getPrepareStatus, getStrategy, getStrategyCode, getSweepResult, getSweepRunEquityCurve, getSweepSensitivity, importDataset, listDatasets, listExchanges, listInstruments, listPublicLive, listSegmentInstruments, listStrategies, mintLiveConnectionToken, openDatasetUpload, prepareBacktest, startLive, stopLive, updateLive, updateLiveParams, validateStrategy };