@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.
@@ -287,8 +287,17 @@ export type Exchange = {
287
287
 
288
288
  /**
289
289
  * Managed exchange data sources available for backtesting.
290
+ *
291
+ * * `ticker` — trades. Can be prepared, executed and swept.
292
+ * * `kline` — aggregated bars (candlesticks). Can be prepared, executed and swept. A run reads
293
+ * bars of the `cadence` the data was prepared at: you choose the bar width when you prepare,
294
+ * and the strategy does not fix it. See `PrepareRequest.cadence` for the accepted values.
295
+ * * `funding` — funding rates. Can be **prepared but not executed or swept yet**: a `funding`
296
+ * request to `execute` or `executeSweep` is rejected with `400` before anything is queued,
297
+ * and the message names the sources that can be run.
298
+ *
290
299
  */
291
- export type DataSourceType = "ticker";
300
+ export type DataSourceType = "ticker" | "kline" | "funding";
292
301
 
293
302
  /**
294
303
  * Two shapes, chosen by the `exchangeId` path segment. Against a managed exchange,
@@ -338,9 +347,14 @@ export type PrepareRequest = {
338
347
  * than the source, or not an exact multiple of it, returns `400`. What's accepted, and
339
348
  * what omitting it means, depends on the source:
340
349
  *
341
- * * Managed exchange — one of `1s`, `5s`, `1m`, `3m`, `5m`, `15m`, `30m`, `1h`, `2h`,
342
- * `4h`, `8h`, `12h`, `1d`, `1w`, `1q`; any other label returns `400`. Omitted = `1s`,
343
- * the publisher's native cadence.
350
+ * * Managed exchange, `ticker` or `funding` — one of `1s`, `5s`, `1m`, `3m`, `5m`, `15m`,
351
+ * `30m`, `1h`, `2h`, `4h`, `8h`, `12h`, `1d`, `1w`, `1q`; any other label returns `400`.
352
+ * Omitted = `1s`, the publisher's native cadence.
353
+ * * Managed exchange, `kline` — one of `1s`, `1m`, `5m`, `15m`, `30m`, `1h`, `4h`, `1d`;
354
+ * any other label, including `5s`, `3m` and `8h`, returns `400` and names the accepted
355
+ * ones. Omitted = `1s`. This is the width of the bars a run reads: it is chosen here,
356
+ * once, and the same strategy can be run at several cadences by preparing the range at
357
+ * each.
344
358
  * * Dataset (`exchangeId: user`) — omitted = the dataset version's own discovered
345
359
  * `cadence` (see `DatasetVersion.cadence`), served as-is. Any cadence equal to or
346
360
  * coarser than it and an exact multiple of it is accepted, including ones outside the
@@ -1092,8 +1106,9 @@ export type EquityCurveResult = {
1092
1106
 
1093
1107
  /**
1094
1108
  * Unique identifier for a compiled strategy, derived from the source itself: the same code
1095
- * always yields the same id, for every caller, whatever its formatting. See
1096
- * `POST /strategy` for exactly which rewrites preserve it and which do not.
1109
+ * always yields the same id, for every caller. How much formatting the id ignores depends on
1110
+ * the language — see `POST /strategy` for exactly which rewrites preserve it and which do
1111
+ * not.
1097
1112
  *
1098
1113
  */
1099
1114
  export type StrategyId = string;
@@ -1728,6 +1743,255 @@ export type AuthTokenError = {
1728
1743
  message: string;
1729
1744
  };
1730
1745
 
1746
+ /**
1747
+ * One market feed a live run consumes. Exactly one entry per run today.
1748
+ */
1749
+ export type LiveSource = {
1750
+ /**
1751
+ * Venue category. `cx` (centralized exchange) is the only one live runs support today.
1752
+ */
1753
+ venueType: string;
1754
+ exchange: string;
1755
+ segment: string;
1756
+ /**
1757
+ * 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.
1758
+ */
1759
+ type: "ticker" | "kline";
1760
+ /**
1761
+ * Instrument symbols, or `["*"]` for every instrument the exchange/segment offers (tier-gated).
1762
+ */
1763
+ instruments: Array<string>;
1764
+ };
1765
+
1766
+ export type StartLiveRequest = {
1767
+ sources: [LiveSource];
1768
+ /**
1769
+ * Strategy parameters to start with. Opaque key/value pairs — see this strategy's own `declaredProperties` (from `POST /strategy`) for the keys it accepts.
1770
+ */
1771
+ params?: {
1772
+ [key: string]: unknown;
1773
+ };
1774
+ /**
1775
+ * A `public` run appears in `GET /live/public` and its signal channel accepts subscriptions from anyone, not only you.
1776
+ */
1777
+ visibility?: "private" | "public";
1778
+ /**
1779
+ * 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.
1780
+ */
1781
+ relay?: boolean;
1782
+ name?: string;
1783
+ description?: string;
1784
+ };
1785
+
1786
+ export type UpdateLiveRequest = {
1787
+ visibility?: "private" | "public";
1788
+ name?: string;
1789
+ description?: string;
1790
+ };
1791
+
1792
+ export type UpdateLiveParamsRequest = {
1793
+ /**
1794
+ * Must be non-empty; every key must be a property your strategy declares.
1795
+ */
1796
+ params: {
1797
+ [key: string]: unknown;
1798
+ };
1799
+ };
1800
+
1801
+ /**
1802
+ * A live run's full state, as returned by starting, reading, or stopping it through its strategy.
1803
+ */
1804
+ export type LiveRun = {
1805
+ strategyId: StrategyId;
1806
+ /**
1807
+ * This run's own id — its canonical identity for `PATCH`/`PUT .../params` and for `GET /live/public`.
1808
+ */
1809
+ runId: string;
1810
+ name?: string;
1811
+ description?: string;
1812
+ visibility: "private" | "public";
1813
+ /**
1814
+ * A new run always starts `SANDBOX` — a trial run compared against a second execution for agreement — and moves to `LIVE` once it passes.
1815
+ */
1816
+ stage: "SANDBOX" | "LIVE";
1817
+ /**
1818
+ * `STARTING` until first observed running; otherwise the runner's own reported state (e.g. `RUNNING`).
1819
+ */
1820
+ state: string;
1821
+ /**
1822
+ * What you last asked for. `state` can lag this briefly after `DELETE`.
1823
+ */
1824
+ desired: "RUNNING" | "STOPPED";
1825
+ /**
1826
+ * Present only when the run stopped because it exceeded its resource allowance.
1827
+ */
1828
+ reason?: string;
1829
+ sources: Array<LiveSource>;
1830
+ params: {
1831
+ [key: string]: unknown;
1832
+ };
1833
+ /**
1834
+ * Increments on every accepted `PUT .../params` call, including one that resends the current values.
1835
+ */
1836
+ paramsVersion: number;
1837
+ /**
1838
+ * 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`.
1839
+ */
1840
+ relay: boolean;
1841
+ /**
1842
+ * Epoch milliseconds.
1843
+ */
1844
+ startedAtMs: number;
1845
+ /**
1846
+ * The sandbox trial's promotion verdict, once one exists. Shape is not yet stabilized as public API — treat as opaque diagnostics.
1847
+ */
1848
+ gate?: {
1849
+ [key: string]: unknown;
1850
+ };
1851
+ };
1852
+
1853
+ /**
1854
+ * 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.
1855
+ */
1856
+ export type LiveRunCompact = {
1857
+ runId: string;
1858
+ name?: string;
1859
+ description?: string;
1860
+ visibility: "private" | "public";
1861
+ stage: "SANDBOX" | "LIVE";
1862
+ state: string;
1863
+ sources: Array<LiveSource>;
1864
+ };
1865
+
1866
+ /**
1867
+ * A run as it appears in `GET /live/public` — never reveals who owns it or which strategy it runs.
1868
+ */
1869
+ export type PublicLiveRun = {
1870
+ runId: string;
1871
+ name?: string;
1872
+ description?: string;
1873
+ sources: Array<LiveSource>;
1874
+ state: string;
1875
+ createdAtMs: number;
1876
+ };
1877
+
1878
+ export type PublicLiveListResponse = {
1879
+ runs: Array<PublicLiveRun>;
1880
+ _links?: PublicLiveListLinks;
1881
+ };
1882
+
1883
+ /**
1884
+ * Present only when another page exists.
1885
+ */
1886
+ export type PublicLiveListLinks = {
1887
+ next?: PublicLiveNextLink;
1888
+ };
1889
+
1890
+ export type PublicLiveNextLink = {
1891
+ href?: string;
1892
+ };
1893
+
1894
+ /**
1895
+ * One page of a run's recorded signals, oldest first.
1896
+ */
1897
+ export type LiveSignalPage = {
1898
+ signals: Array<LiveSignal>;
1899
+ /**
1900
+ * 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.
1901
+ */
1902
+ availableSinceMs?: number;
1903
+ _links?: PublicLiveListLinks;
1904
+ };
1905
+
1906
+ /**
1907
+ * One signal, in the same shape the real-time signal channel delivers.
1908
+ */
1909
+ export type LiveSignal = {
1910
+ /**
1911
+ * Envelope schema version.
1912
+ */
1913
+ v: number;
1914
+ /**
1915
+ * Stable id for this exact signal — dedupe on it across reconnects or overlapping reads.
1916
+ */
1917
+ signalId: string;
1918
+ runId: string;
1919
+ /**
1920
+ * The stage the run was in when this signal was produced.
1921
+ */
1922
+ stage: "sandbox" | "live";
1923
+ /**
1924
+ * The parameter set in force when this signal was produced.
1925
+ */
1926
+ paramsVersion?: number;
1927
+ type: "hint" | "info" | "marker" | "command";
1928
+ /**
1929
+ * `BUY`/`SELL` for a `hint`, the command name for a `command`, absent otherwise.
1930
+ */
1931
+ kind?: string | null;
1932
+ /**
1933
+ * Market time the signal was produced.
1934
+ */
1935
+ eventTsMs: number;
1936
+ /**
1937
+ * Time it was published — always at or after `eventTsMs`.
1938
+ */
1939
+ emittedAtMs: number;
1940
+ instrument: LiveSignalInstrument;
1941
+ order?: LiveSignalOrder;
1942
+ /**
1943
+ * The signal's own free-form payload.
1944
+ */
1945
+ data?: {
1946
+ [key: string]: unknown;
1947
+ };
1948
+ /**
1949
+ * `true` only for a signal republished to fill a gap in the record.
1950
+ */
1951
+ regenerated?: boolean;
1952
+ /**
1953
+ * Content hash, for checking that two independent deliveries of the same signal agree.
1954
+ */
1955
+ digest: string;
1956
+ };
1957
+
1958
+ export type LiveSignalInstrument = {
1959
+ exchange?: string;
1960
+ segment?: string;
1961
+ /**
1962
+ * Slashed form, e.g. `BTC/USDT`.
1963
+ */
1964
+ symbol?: string;
1965
+ };
1966
+
1967
+ /**
1968
+ * Present only for a `hint`.
1969
+ */
1970
+ export type LiveSignalOrder = {
1971
+ orderKind?: string;
1972
+ price?: string | null;
1973
+ amount?: string | null;
1974
+ stopPrice?: string | null;
1975
+ trailPct?: string | null;
1976
+ } | null;
1977
+
1978
+ export type LiveConnectionToken = {
1979
+ /**
1980
+ * Pass as the `token` field of the WebSocket `connect` command — see the "Live execution" guide.
1981
+ */
1982
+ token: string;
1983
+ expiresAtMs: number;
1984
+ };
1985
+
1986
+ export type LiveParamsUpdateResult = {
1987
+ runId: string;
1988
+ paramsVersion: number;
1989
+ /**
1990
+ * Epoch milliseconds — the earliest moment the new values are guaranteed to be in effect.
1991
+ */
1992
+ effectiveAtMs: number;
1993
+ };
1994
+
1731
1995
  export type AuthenticateData = {
1732
1996
  body?: never;
1733
1997
  path?: never;
@@ -2028,7 +2292,7 @@ export type ListStrategiesResponse =
2028
2292
 
2029
2293
  export type CompileStrategyData = {
2030
2294
  /**
2031
- * Raw strategy Java source code
2295
+ * Raw strategy source code, Java or QTScript
2032
2296
  */
2033
2297
  body: string;
2034
2298
  path?: never;
@@ -2038,7 +2302,8 @@ export type CompileStrategyData = {
2038
2302
 
2039
2303
  export type CompileStrategyErrors = {
2040
2304
  /**
2041
- * The source is not valid Java; the message carries the compiler diagnostics. Nothing is
2305
+ * The source is not valid; the message carries the diagnostics — the compiler's for Java,
2306
+ * and for QTScript `Line N, Column M:` entries against your own source. Nothing is
2042
2307
  * registered, so there is no id to look up afterwards.
2043
2308
  *
2044
2309
  */
@@ -2209,7 +2474,7 @@ export type GetStrategyCodeResponses = {
2209
2474
  200: {
2210
2475
  strategyId: StrategyId;
2211
2476
  /**
2212
- * Raw strategy Java source code, exactly as registered.
2477
+ * Raw strategy source code (Java or QTScript), exactly as registered.
2213
2478
  */
2214
2479
  code: string;
2215
2480
  };
@@ -2242,7 +2507,9 @@ export type PrepareBacktestData = {
2242
2507
  export type PrepareBacktestErrors = {
2243
2508
  /**
2244
2509
  * Invalid request or parameters. Also returned when `from` is older than the configured
2245
- * lookback window or `to` is in the future. For `exchangeId: user`, also returned when
2510
+ * lookback window or `to` is in the future, or when `type` is `kline` and `cadence` is not
2511
+ * one of the cadences kline data is available at (the message lists them). For
2512
+ * `exchangeId: user`, also returned when
2246
2513
  * the dataset's current upload has not finished ingesting, or `cadence` asks for a finer
2247
2514
  * granularity than the dataset's own discovered cadence (or one that isn't an exact
2248
2515
  * multiple of it), or the requested range exceeds your tier's range limit.
@@ -2339,7 +2606,9 @@ export type ExecuteSweepData = {
2339
2606
 
2340
2607
  export type ExecuteSweepErrors = {
2341
2608
  /**
2342
- * Invalid sweep specification or the expanded grid exceeds the server limit.
2609
+ * Invalid sweep specification, a `type` that cannot be swept yet (`funding`), or the
2610
+ * expanded grid exceeds the server limit.
2611
+ *
2343
2612
  */
2344
2613
  400: ResponseError;
2345
2614
  /**
@@ -2606,7 +2875,9 @@ export type ExecuteBacktestData = {
2606
2875
 
2607
2876
  export type ExecuteBacktestErrors = {
2608
2877
  /**
2609
- * Invalid request or parameters
2878
+ * Invalid request or parameters. Also returned for a `type` that cannot be executed yet
2879
+ * (`funding`); the message names the sources that can.
2880
+ *
2610
2881
  */
2611
2882
  400: ResponseError;
2612
2883
  /**
@@ -3066,6 +3337,297 @@ export type GetDatasetImportResponses = {
3066
3337
  export type GetDatasetImportResponse =
3067
3338
  GetDatasetImportResponses[keyof GetDatasetImportResponses];
3068
3339
 
3340
+ export type StopLiveData = {
3341
+ body?: never;
3342
+ path: {
3343
+ /**
3344
+ * The id returned by `POST /strategy`
3345
+ */
3346
+ strategyId: StrategyId;
3347
+ };
3348
+ query?: never;
3349
+ url: "/strategy/{strategyId}/live";
3350
+ };
3351
+
3352
+ export type StopLiveErrors = {
3353
+ /**
3354
+ * You have never started a live run for this strategy.
3355
+ */
3356
+ 404: ResponseError;
3357
+ };
3358
+
3359
+ export type StopLiveError = StopLiveErrors[keyof StopLiveErrors];
3360
+
3361
+ export type StopLiveResponses = {
3362
+ /**
3363
+ * Stop requested (or already stopped) — the run's current state
3364
+ */
3365
+ 200: LiveRun;
3366
+ };
3367
+
3368
+ export type StopLiveResponse = StopLiveResponses[keyof StopLiveResponses];
3369
+
3370
+ export type GetLiveData = {
3371
+ body?: never;
3372
+ path: {
3373
+ /**
3374
+ * The id returned by `POST /strategy`
3375
+ */
3376
+ strategyId: StrategyId;
3377
+ };
3378
+ query?: never;
3379
+ url: "/strategy/{strategyId}/live";
3380
+ };
3381
+
3382
+ export type GetLiveErrors = {
3383
+ /**
3384
+ * You have never started a live run for this strategy.
3385
+ */
3386
+ 404: ResponseError;
3387
+ };
3388
+
3389
+ export type GetLiveError = GetLiveErrors[keyof GetLiveErrors];
3390
+
3391
+ export type GetLiveResponses = {
3392
+ /**
3393
+ * The run's current state
3394
+ */
3395
+ 200: LiveRun;
3396
+ };
3397
+
3398
+ export type GetLiveResponse = GetLiveResponses[keyof GetLiveResponses];
3399
+
3400
+ export type StartLiveData = {
3401
+ body: StartLiveRequest;
3402
+ path: {
3403
+ /**
3404
+ * The id returned by `POST /strategy`
3405
+ */
3406
+ strategyId: StrategyId;
3407
+ };
3408
+ query?: never;
3409
+ url: "/strategy/{strategyId}/live";
3410
+ };
3411
+
3412
+ export type StartLiveErrors = {
3413
+ /**
3414
+ * Malformed `sources` (not exactly one entry, missing field, unsupported `type`), or an invalid `visibility`.
3415
+ */
3416
+ 400: ResponseError;
3417
+ /**
3418
+ * No such registered strategy for this user, or it has never been compiled.
3419
+ */
3420
+ 404: ResponseError;
3421
+ /**
3422
+ * A run for this strategy is already active. Stop it first.
3423
+ */
3424
+ 409: ResponseError;
3425
+ /**
3426
+ * Your plan does not include live runs, would exceed your concurrent-run or
3427
+ * instrument-count limit, or the platform is at capacity right now. Carries a
3428
+ * `Retry-After` header.
3429
+ *
3430
+ */
3431
+ 429: ResponseError;
3432
+ };
3433
+
3434
+ export type StartLiveError = StartLiveErrors[keyof StartLiveErrors];
3435
+
3436
+ export type StartLiveResponses = {
3437
+ /**
3438
+ * Started — the run's own state, in the sandbox stage
3439
+ */
3440
+ 201: LiveRun;
3441
+ };
3442
+
3443
+ export type StartLiveResponse = StartLiveResponses[keyof StartLiveResponses];
3444
+
3445
+ export type ListPublicLiveData = {
3446
+ body?: never;
3447
+ path?: never;
3448
+ query?: {
3449
+ /**
3450
+ * The `runId` from a previous page's `_links.next.href`. Omit for the first page.
3451
+ */
3452
+ cursor?: string;
3453
+ /**
3454
+ * Page size. Larger values are capped, not rejected.
3455
+ */
3456
+ limit?: number;
3457
+ };
3458
+ url: "/live/public";
3459
+ };
3460
+
3461
+ export type ListPublicLiveErrors = {
3462
+ /**
3463
+ * An invalid `cursor` or `limit`.
3464
+ */
3465
+ 400: ResponseError;
3466
+ };
3467
+
3468
+ export type ListPublicLiveError =
3469
+ ListPublicLiveErrors[keyof ListPublicLiveErrors];
3470
+
3471
+ export type ListPublicLiveResponses = {
3472
+ /**
3473
+ * A page of public runs
3474
+ */
3475
+ 200: PublicLiveListResponse;
3476
+ };
3477
+
3478
+ export type ListPublicLiveResponse =
3479
+ ListPublicLiveResponses[keyof ListPublicLiveResponses];
3480
+
3481
+ export type UpdateLiveData = {
3482
+ body?: UpdateLiveRequest;
3483
+ path: {
3484
+ /**
3485
+ * The `runId` from `POST`/`GET`/`DELETE` `.../live` or from `GET /live/public`
3486
+ */
3487
+ runId: string;
3488
+ };
3489
+ query?: never;
3490
+ url: "/live/{runId}";
3491
+ };
3492
+
3493
+ export type UpdateLiveErrors = {
3494
+ /**
3495
+ * `visibility` present but not `private`/`public`.
3496
+ */
3497
+ 400: ResponseError;
3498
+ /**
3499
+ * No such run, or you do not own it — the two look identical on purpose.
3500
+ */
3501
+ 404: ResponseError;
3502
+ };
3503
+
3504
+ export type UpdateLiveError = UpdateLiveErrors[keyof UpdateLiveErrors];
3505
+
3506
+ export type UpdateLiveResponses = {
3507
+ /**
3508
+ * Updated
3509
+ */
3510
+ 200: LiveRunCompact;
3511
+ };
3512
+
3513
+ export type UpdateLiveResponse = UpdateLiveResponses[keyof UpdateLiveResponses];
3514
+
3515
+ export type UpdateLiveParamsData = {
3516
+ body: UpdateLiveParamsRequest;
3517
+ path: {
3518
+ runId: string;
3519
+ };
3520
+ query?: never;
3521
+ url: "/live/{runId}/params";
3522
+ };
3523
+
3524
+ export type UpdateLiveParamsErrors = {
3525
+ /**
3526
+ * `params` missing, not an object, empty, or contains a key your strategy does not declare.
3527
+ */
3528
+ 400: ResponseError;
3529
+ /**
3530
+ * No such run, or you do not own it.
3531
+ */
3532
+ 404: ResponseError;
3533
+ /**
3534
+ * This run's compilation has no declared properties on record — recompile the strategy to enable runtime parameter updates.
3535
+ */
3536
+ 409: ResponseError;
3537
+ };
3538
+
3539
+ export type UpdateLiveParamsError =
3540
+ UpdateLiveParamsErrors[keyof UpdateLiveParamsErrors];
3541
+
3542
+ export type UpdateLiveParamsResponses = {
3543
+ /**
3544
+ * Accepted
3545
+ */
3546
+ 200: LiveParamsUpdateResult;
3547
+ };
3548
+
3549
+ export type UpdateLiveParamsResponse =
3550
+ UpdateLiveParamsResponses[keyof UpdateLiveParamsResponses];
3551
+
3552
+ export type GetLiveRunSignalsData = {
3553
+ body?: never;
3554
+ path: {
3555
+ /**
3556
+ * The run whose signals to read.
3557
+ */
3558
+ runId: string;
3559
+ };
3560
+ query?: {
3561
+ /**
3562
+ * Start from this moment (epoch ms). Omitted, or older than the available window, starts at `availableSinceMs`. Ignored when `cursor` is given.
3563
+ */
3564
+ sinceMs?: number;
3565
+ /**
3566
+ * Narrow to one or more instruments. Omitted, or `*`, returns every instrument the run
3567
+ * covers. Accepts a single pair (`BTC/USDT`), either half as a wildcard (`*USDT` for any
3568
+ * base against that quote, `BTC*` for that base against any quote), or a comma-separated
3569
+ * list of pairs (`BTC/USDT,ETH/EUR`). Symbols are matched exactly, case included — pass
3570
+ * them as this API reports them.
3571
+ *
3572
+ */
3573
+ instrument?: string;
3574
+ /**
3575
+ * Continue from a previous page's `_links.next`. Takes precedence over `sinceMs`.
3576
+ */
3577
+ cursor?: string;
3578
+ /**
3579
+ * Page size.
3580
+ */
3581
+ limit?: number;
3582
+ };
3583
+ url: "/live/{runId}/signals";
3584
+ };
3585
+
3586
+ export type GetLiveRunSignalsErrors = {
3587
+ /**
3588
+ * `instrument`, `sinceMs`, `limit` or `cursor` is malformed.
3589
+ */
3590
+ 400: ResponseError;
3591
+ /**
3592
+ * No such run, or not one you may read.
3593
+ */
3594
+ 404: ResponseError;
3595
+ /**
3596
+ * The cursor's position is no longer available — restart from the `availableSinceMs` named in the message.
3597
+ */
3598
+ 410: ResponseError;
3599
+ };
3600
+
3601
+ export type GetLiveRunSignalsError =
3602
+ GetLiveRunSignalsErrors[keyof GetLiveRunSignalsErrors];
3603
+
3604
+ export type GetLiveRunSignalsResponses = {
3605
+ /**
3606
+ * One page of signals
3607
+ */
3608
+ 200: LiveSignalPage;
3609
+ };
3610
+
3611
+ export type GetLiveRunSignalsResponse =
3612
+ GetLiveRunSignalsResponses[keyof GetLiveRunSignalsResponses];
3613
+
3614
+ export type MintLiveConnectionTokenData = {
3615
+ body?: never;
3616
+ path?: never;
3617
+ query?: never;
3618
+ url: "/live/token";
3619
+ };
3620
+
3621
+ export type MintLiveConnectionTokenResponses = {
3622
+ /**
3623
+ * Token minted
3624
+ */
3625
+ 200: LiveConnectionToken;
3626
+ };
3627
+
3628
+ export type MintLiveConnectionTokenResponse =
3629
+ MintLiveConnectionTokenResponses[keyof MintLiveConnectionTokenResponses];
3630
+
3069
3631
  export type ClientOptions = {
3070
3632
  baseUrl:
3071
3633
  | "https://api.qtsurfer.net/v1"