@agg-build/sdk 1.2.13 → 2.0.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
@@ -68,13 +68,31 @@ declare enum OrderStatus {
68
68
  pending_bridge = "pending_bridge",
69
69
  submitting = "submitting",
70
70
  submitted = "submitted",
71
+ open = "open",
72
+ partially_filled_open = "partially_filled_open",
73
+ cancel_pending = "cancel_pending",
71
74
  filled = "filled",
72
- partial_fill = "partial_fill"
75
+ partial_fill = "partial_fill",
76
+ failed = "failed",
77
+ expired = "expired",
78
+ cancelled = "cancelled"
73
79
  }
74
80
  declare enum TradeSide$1 {
75
81
  Buy = "buy",
76
82
  Sell = "sell"
77
83
  }
84
+ declare enum OrderType {
85
+ Market = "market",
86
+ Limit = "limit"
87
+ }
88
+ declare enum TimeInForce {
89
+ GTC = "GTC",
90
+ GTD = "GTD",
91
+ FOK = "FOK",
92
+ FAK = "FAK",
93
+ IOC = "IOC",
94
+ ALO = "ALO"
95
+ }
78
96
 
79
97
  /**
80
98
  * Standalone type definitions — no Zod dependency.
@@ -375,6 +393,8 @@ type WalletChainBalance = {
375
393
  chainId: number;
376
394
  tokenAddress: string;
377
395
  balanceRaw: string;
396
+ heldRaw?: string | undefined;
397
+ availableRaw?: string | undefined;
378
398
  decimals: number;
379
399
  lastSyncedAt: string;
380
400
  tokenSymbol?: string | undefined;
@@ -382,11 +402,15 @@ type WalletChainBalance = {
382
402
  type WalletTokenBalance = {
383
403
  tokenSymbol: string;
384
404
  totalRaw: string;
405
+ availableRaw?: string | undefined;
406
+ reservedRaw?: string | undefined;
385
407
  decimals: number;
386
408
  chains: {
387
409
  chainId: number;
388
410
  tokenAddress: string;
389
411
  balanceRaw: string;
412
+ heldRaw?: string | undefined;
413
+ availableRaw?: string | undefined;
390
414
  decimals: number;
391
415
  lastSyncedAt: string;
392
416
  }[];
@@ -404,11 +428,15 @@ type UnifiedBalanceResponse = {
404
428
  cash: {
405
429
  tokenSymbol: string;
406
430
  totalRaw: string;
431
+ availableRaw?: string | undefined;
432
+ reservedRaw?: string | undefined;
407
433
  decimals: number;
408
434
  chains: {
409
435
  chainId: number;
410
436
  tokenAddress: string;
411
437
  balanceRaw: string;
438
+ heldRaw?: string | undefined;
439
+ availableRaw?: string | undefined;
412
440
  decimals: number;
413
441
  lastSyncedAt: string;
414
442
  }[];
@@ -587,6 +615,10 @@ type VenueMarket = {
587
615
  endDate?: string | null | undefined;
588
616
  creationDate?: string | null | undefined;
589
617
  resolutionDate?: string | null | undefined;
618
+ /** Sports market classification for type-aware sorting (moneyline, spread, total, etc.). */
619
+ sportsMarketType?: string | null | undefined;
620
+ /** Sort rank within a sports section (0=moneyline, 1=spread, 2=total, 3+=other). */
621
+ sectionRank?: number | null | undefined;
590
622
  matchedVenueMarkets?: {
591
623
  id: string;
592
624
  venue: Venue;
@@ -626,6 +658,7 @@ type VenueEvent = {
626
658
  category: {
627
659
  id: string;
628
660
  name: string;
661
+ displayName: string | null;
629
662
  parentId: string | null;
630
663
  eventCount: number;
631
664
  };
@@ -645,10 +678,12 @@ type VenueEvent = {
645
678
  /**
646
679
  * ISO-8601 duration denormalized from Series.recurrence. `null` means
647
680
  * the event has no recurring schedule (one-off). Use this value with
648
- * the `?recurrence=` filter on /venue-events; discover all available
649
- * values via GET /recurrences.
681
+ * the `?recurrence=` filter on /venue-events using public recurrence
682
+ * enum values.
650
683
  */
651
684
  recurrence?: string | null | undefined;
685
+ /** Type-aware structure classification used to sort markets under this event. */
686
+ structureType?: "candidate" | "sport" | "axis" | "dates" | null | undefined;
652
687
  };
653
688
  type Orderbook = {
654
689
  bids: {
@@ -829,6 +864,7 @@ type ComputeSplitsResponse = {
829
864
  type Category = {
830
865
  id: string;
831
866
  name: string;
867
+ displayName: string | null;
832
868
  parentId: string | null;
833
869
  eventCount: number;
834
870
  };
@@ -865,6 +901,7 @@ type ValidateManagedRequest = {
865
901
  amount: number;
866
902
  };
867
903
  type WithdrawTokenSymbol$1 = "USDC" | "USDC.e" | "USDT";
904
+ type WithdrawalSourceTokenSymbol$1 = WithdrawTokenSymbol$1 | "pUSD";
868
905
  type WithdrawManagedRequest = {
869
906
  /** Positive integer string in the token's native decimals (e.g. "100000" = 0.1 USDC). */
870
907
  amountRaw: string;
@@ -878,7 +915,7 @@ type WithdrawalSourceStatus$1 = "pending" | "submitted" | "confirmed" | "failed"
878
915
  type WithdrawalSourceItem = {
879
916
  sourceId: string;
880
917
  chainId: number;
881
- tokenSymbol: WithdrawTokenSymbol$1;
918
+ tokenSymbol: WithdrawalSourceTokenSymbol$1;
882
919
  /** On-chain token address on `chainId`. */
883
920
  tokenAddress: string;
884
921
  /**
@@ -1414,7 +1451,28 @@ interface WsWithdrawalLifecycleEvent {
1414
1451
  /** @unit milliseconds (raw from server — NOT converted like other WS types) */
1415
1452
  timestamp: number;
1416
1453
  }
1417
- type WsServerMessage = WsOrderbookSnapshot | WsOrderbookDelta | WsTrade | WsSubscribed | WsUnsubscribed | WsConnected | WsAuthenticated | WsHeartbeat | WsMarketResolved | WsError | WsOrderSubmitted | WsBalanceUpdate | WsOrderEvent | WsRedeemEvent | WsWithdrawalLifecycleEvent;
1454
+ interface WsArbMarketUpdate {
1455
+ type: "arb_market_update";
1456
+ marketId: string;
1457
+ venueEventId: string | null;
1458
+ arbReturn: number;
1459
+ ts: number;
1460
+ }
1461
+ interface WsArbFeedEntry {
1462
+ marketId: string;
1463
+ venueEventId: string | null;
1464
+ arbReturn: number;
1465
+ ts: number;
1466
+ }
1467
+ interface WsArbFeedBatch {
1468
+ type: "arb_feed_batch";
1469
+ feed: "arb";
1470
+ entries: WsArbFeedEntry[];
1471
+ flushTs: number;
1472
+ chunk: number;
1473
+ chunkCount: number;
1474
+ }
1475
+ type WsServerMessage = WsOrderbookSnapshot | WsOrderbookDelta | WsTrade | WsSubscribed | WsUnsubscribed | WsConnected | WsAuthenticated | WsHeartbeat | WsMarketResolved | WsError | WsOrderSubmitted | WsBalanceUpdate | WsOrderEvent | WsRedeemEvent | WsWithdrawalLifecycleEvent | WsArbMarketUpdate | WsArbFeedBatch;
1418
1476
  type WsClientMessage = {
1419
1477
  action: "subscribe";
1420
1478
  channel: "orderbook" | "trades";
@@ -1427,6 +1485,20 @@ type WsClientMessage = {
1427
1485
  action: "resnapshot";
1428
1486
  channel: "orderbook";
1429
1487
  outcomeIds: string[];
1488
+ } | {
1489
+ action: "subscribe";
1490
+ channel: "arb";
1491
+ marketIds: string[];
1492
+ } | {
1493
+ action: "unsubscribe";
1494
+ channel: "arb";
1495
+ marketIds: string[];
1496
+ } | {
1497
+ action: "subscribe";
1498
+ channel: "arb-feed";
1499
+ } | {
1500
+ action: "unsubscribe";
1501
+ channel: "arb-feed";
1430
1502
  } | {
1431
1503
  action: "authenticate";
1432
1504
  token: string;
@@ -1534,6 +1606,8 @@ interface AggWebSocketCallbacks {
1534
1606
  onOrderEvent?: (msg: WsOrderEvent) => void;
1535
1607
  onRedeemEvent?: (msg: WsRedeemEvent) => void;
1536
1608
  onWithdrawalLifecycle?: (msg: WsWithdrawalLifecycleEvent) => void;
1609
+ onArbMarket?: (msg: WsArbMarketUpdate) => void;
1610
+ onArbFeed?: (batch: WsArbFeedBatch) => void;
1537
1611
  onDiagnostics?: DiagnosticCallback;
1538
1612
  onConnectionStateChange?: (connected: boolean) => void;
1539
1613
  }
@@ -1561,7 +1635,13 @@ declare class AggWebSocket {
1561
1635
  private readonly pendingFlushUnsubs;
1562
1636
  private readonly pendingFlushTradeSubs;
1563
1637
  private readonly pendingFlushTradeUnsubs;
1638
+ private readonly pendingFlushArbSubs;
1639
+ private readonly pendingFlushArbUnsubs;
1564
1640
  private flushScheduled;
1641
+ private readonly arbSubs;
1642
+ private readonly arbFeedCbs;
1643
+ /** Latest arb market update per marketId (last-value-wins, loss-tolerant). */
1644
+ private readonly latestArb;
1565
1645
  private readonly books;
1566
1646
  /** Markets currently resyncing (awaiting snapshot after seq gap / checksum mismatch). */
1567
1647
  private readonly resyncing;
@@ -1580,6 +1660,20 @@ declare class AggWebSocket {
1580
1660
  getBook(outcomeId: string): OrderbookState | null;
1581
1661
  /** Whether an outcome is currently resyncing (waiting for fresh snapshot). */
1582
1662
  isResyncing(outcomeId: string): boolean;
1663
+ /** Get the latest arb update for a market (or null if none received yet). */
1664
+ getArb(marketId: string): WsArbMarketUpdate | null;
1665
+ /**
1666
+ * Subscribe to per-market arb updates for a given marketId.
1667
+ * Ref-counted: multiple callers for the same marketId share one server subscription.
1668
+ * Returns an unsubscribe function.
1669
+ */
1670
+ subscribeArb(marketId: string, cb: (m: WsArbMarketUpdate) => void): () => void;
1671
+ /**
1672
+ * Subscribe to the global arb-feed batches.
1673
+ * Only one server subscription is maintained regardless of how many callers.
1674
+ * Returns an unsubscribe function.
1675
+ */
1676
+ subscribeArbFeed(cb: (b: WsArbFeedBatch) => void): () => void;
1583
1677
  /**
1584
1678
  * Subscribe to a feed by outcome ID.
1585
1679
  * @param outcomeId The venueMarketOutcomeId to subscribe to.
@@ -1638,6 +1732,7 @@ declare class AggWebSocket {
1638
1732
  private send;
1639
1733
  private activeOrderbookMarkets;
1640
1734
  private activeTradeMarkets;
1735
+ private activeArbMarkets;
1641
1736
  private emitDiagnostic;
1642
1737
  private summarizeTopLevels;
1643
1738
  private debugOrderbook;
@@ -1890,6 +1985,209 @@ interface MatchedOrderbookMarket extends VenueMarketRef {
1890
1985
  * - `none` — no mark available
1891
1986
  */
1892
1987
  type MarkSource = "local" | "local_merged" | "local_one_sided" | "sibling" | "local_boundary" | "none";
1988
+ declare const RECURRENCE_CADENCES: readonly ["PT5M", "PT10M", "PT15M", "PT1H", "P1D", "P1W", "P1M", "P1Y"];
1989
+ type RecurrenceCadence = (typeof RECURRENCE_CADENCES)[number];
1990
+ type RecurrenceFilter = RecurrenceCadence | "null";
1991
+ type RecurringCryptoDuration = "PT5M" | "PT15M" | "PT1H" | "P1D";
1992
+ type RecurringCryptoDurationInput = RecurringCryptoDuration | "5m" | "15m" | "1h" | "1d";
1993
+ type RecurringCryptoSourceConfidence = "verified" | "inferred" | "missing";
1994
+ interface ListRecurringCryptoMarketsOptions {
1995
+ assets?: string[];
1996
+ durations?: RecurringCryptoDurationInput[];
1997
+ interval?: RecurringCryptoDurationInput;
1998
+ window?: "current";
1999
+ venues?: Venue[];
2000
+ status?: MarketStatus[];
2001
+ windowStartFrom?: string;
2002
+ windowStartTo?: string;
2003
+ cursor?: string;
2004
+ limit?: number;
2005
+ includeOrderbookPrices?: boolean;
2006
+ includeReferencePrices?: boolean;
2007
+ includeDirectVenueMarkets?: boolean;
2008
+ }
2009
+ interface RecurringCryptoOutcome {
2010
+ /**
2011
+ * Canonical Agg outcome id. Null for direct live venue rows because those
2012
+ * rows are discovery data and cannot be passed to smart order routing.
2013
+ */
2014
+ venueMarketOutcomeId: string | null;
2015
+ /** Venue-native outcome id or synthetic external id for direct live rows. */
2016
+ externalOutcomeId: string | null;
2017
+ /** False for this endpoint; live crypto markets are not smart-route inputs. */
2018
+ routeable: boolean;
2019
+ /** False for this endpoint; split-order routing is not supported here. */
2020
+ splitOrdersAllowed: boolean;
2021
+ label: string;
2022
+ title: string | null;
2023
+ midpoint: number | null;
2024
+ bestBid: number | null;
2025
+ bestAsk: number | null;
2026
+ markSource: MarkSource | string | null;
2027
+ lastKnownPrice: number | null;
2028
+ }
2029
+ interface RecurringCryptoMarketMetrics {
2030
+ volume: number | null;
2031
+ volume24h: number | null;
2032
+ openInterest: number | null;
2033
+ liquidity: number | null;
2034
+ spread: number | null;
2035
+ }
2036
+ interface RecurringCryptoResolution {
2037
+ sourceName: string | null;
2038
+ sourceUrl: string | null;
2039
+ sourceDomain: string | null;
2040
+ rawCriteria: unknown;
2041
+ confidence: RecurringCryptoSourceConfidence;
2042
+ }
2043
+ interface RecurringCryptoReferencePrice {
2044
+ asset: string;
2045
+ quoteAsset: "USD";
2046
+ raw: string | null;
2047
+ decimals: number | null;
2048
+ normalized: number | null;
2049
+ timestamp: string | null;
2050
+ provider: string | null;
2051
+ providerMarketId: string | null;
2052
+ confidence: RecurringCryptoSourceConfidence;
2053
+ fetchedAt?: string | null;
2054
+ ageMs?: number | null;
2055
+ refreshing?: boolean;
2056
+ stale?: boolean;
2057
+ }
2058
+ type CryptoReferencePriceTarget = {
2059
+ type: "venueMarket";
2060
+ venueMarketId: string;
2061
+ } | {
2062
+ type: "venueEvent";
2063
+ venueEventId: string;
2064
+ } | {
2065
+ type: "externalVenueMarket";
2066
+ venue: Venue;
2067
+ externalMarketId: string;
2068
+ } | {
2069
+ type: "market";
2070
+ venue: Venue;
2071
+ venueEventId?: string;
2072
+ venueMarketId: string;
2073
+ externalEventId?: string | null;
2074
+ externalMarketId?: string;
2075
+ asset: string;
2076
+ quoteAsset?: "USD";
2077
+ resolution: RecurringCryptoResolution;
2078
+ };
2079
+ interface CryptoReferencePriceExternalMarketInput {
2080
+ venue: Venue;
2081
+ externalMarketId: string;
2082
+ }
2083
+ interface CryptoReferencePriceMarketInput extends RecurringCryptoVenueMarket {
2084
+ asset: string;
2085
+ quoteAsset?: "USD";
2086
+ }
2087
+ interface GetCryptoReferencePricesOptions {
2088
+ targets?: CryptoReferencePriceTarget[];
2089
+ venueMarketIds?: string[];
2090
+ venueEventIds?: string[];
2091
+ externalMarkets?: CryptoReferencePriceExternalMarketInput[];
2092
+ markets?: CryptoReferencePriceMarketInput[];
2093
+ windowMarkets?: RecurringCryptoWindowMarket[];
2094
+ signal?: AbortSignal;
2095
+ }
2096
+ interface CryptoReferencePriceError {
2097
+ code: "not_found" | "not_recurring_crypto" | "reference_feed_missing" | "price_unavailable" | "stale_price";
2098
+ message: string;
2099
+ }
2100
+ interface CryptoReferencePriceSource {
2101
+ provider: string | null;
2102
+ providerMarketId: string | null;
2103
+ confidence: RecurringCryptoSourceConfidence;
2104
+ }
2105
+ interface CryptoReferencePriceResult {
2106
+ target: CryptoReferencePriceTarget;
2107
+ venue: Venue | null;
2108
+ venueEventId: string | null;
2109
+ venueMarketId: string | null;
2110
+ externalEventId: string | null;
2111
+ externalMarketId: string | null;
2112
+ asset: string | null;
2113
+ quoteAsset: "USD" | null;
2114
+ raw: string | null;
2115
+ decimals: number | null;
2116
+ normalized: number | null;
2117
+ providerTimestamp: string | null;
2118
+ fetchedAt: string | null;
2119
+ ageMs: number | null;
2120
+ refreshing: boolean;
2121
+ stale: boolean;
2122
+ source: CryptoReferencePriceSource;
2123
+ error: CryptoReferencePriceError | null;
2124
+ }
2125
+ interface CryptoReferencePricesResponse {
2126
+ data: CryptoReferencePriceResult[];
2127
+ softRefreshMs: number;
2128
+ hardMaxAgeMs: number;
2129
+ }
2130
+ type RecurringCryptoComparisonPriceSource = "referencePrice" | "midpoint" | "lastKnownPrice";
2131
+ interface RecurringCryptoComparisonPoint {
2132
+ venue: Venue;
2133
+ venueMarketId: string;
2134
+ value: number;
2135
+ label: string | null;
2136
+ source: RecurringCryptoComparisonPriceSource;
2137
+ provider: string | null;
2138
+ providerMarketId: string | null;
2139
+ timestamp: string | null;
2140
+ confidence: RecurringCryptoSourceConfidence | null;
2141
+ }
2142
+ interface RecurringCryptoPriceComparison {
2143
+ count: number;
2144
+ min: RecurringCryptoComparisonPoint | null;
2145
+ max: RecurringCryptoComparisonPoint | null;
2146
+ spread: number | null;
2147
+ spreadBps: number | null;
2148
+ byVenue: RecurringCryptoComparisonPoint[];
2149
+ }
2150
+ interface RecurringCryptoWindowComparisons {
2151
+ referencePrice: RecurringCryptoPriceComparison;
2152
+ outcomePrices: {
2153
+ up: RecurringCryptoPriceComparison;
2154
+ down: RecurringCryptoPriceComparison;
2155
+ };
2156
+ }
2157
+ interface RecurringCryptoVenueMarket {
2158
+ venue: Venue;
2159
+ venueEventId: string;
2160
+ venueMarketId: string;
2161
+ externalEventId: string | null;
2162
+ externalMarketId: string;
2163
+ question: string;
2164
+ status: MarketStatus;
2165
+ priceSource: "snag" | "direct";
2166
+ /** False for this endpoint; live crypto markets are not smart-route inputs. */
2167
+ routeable: boolean;
2168
+ /** False for this endpoint; split-order routing is not supported here. */
2169
+ splitOrdersAllowed: boolean;
2170
+ outcomes: RecurringCryptoOutcome[];
2171
+ metrics: RecurringCryptoMarketMetrics;
2172
+ resolution: RecurringCryptoResolution;
2173
+ referencePrice: RecurringCryptoReferencePrice;
2174
+ }
2175
+ interface RecurringCryptoWindowMarket {
2176
+ id: string;
2177
+ asset: string;
2178
+ quoteAsset: "USD";
2179
+ duration: RecurringCryptoDuration;
2180
+ windowStart: string;
2181
+ windowEnd: string;
2182
+ status: MarketStatus;
2183
+ markets: RecurringCryptoVenueMarket[];
2184
+ comparisons: RecurringCryptoWindowComparisons;
2185
+ }
2186
+ interface RecurringCryptoMarketsResponse {
2187
+ data: RecurringCryptoWindowMarket[];
2188
+ nextCursor: string | null;
2189
+ hasMore: boolean;
2190
+ }
1893
2191
  /** Per-venue orderbook entry with native tick spacing. */
1894
2192
  interface VenueOrderbookEntry {
1895
2193
  venueMarketId: string;
@@ -2082,13 +2380,15 @@ interface QuoteManagedResponse {
2082
2380
  }
2083
2381
  interface ExecuteManagedParams {
2084
2382
  quoteId: string;
2383
+ /** Trading mode. Defaults to live. */
2384
+ mode?: ExecutionMode;
2085
2385
  /**
2086
2386
  * Optional intent fallback. When the supplied `quoteId` has expired in the
2087
2387
  * cache (e.g. user clicked Buy after a tab was inactive), the server
2088
- * resolves the latest live quote for this intent and refreshes/executes
2089
- * against that instead of returning 400 `quote_not_found`. Same intent =
2090
- * same buttons the user pressed in the UI; a different `maxSpend` is a
2091
- * different intent and won't match.
2388
+ * resolves the latest quote for this intent and refreshes/executes against
2389
+ * that instead of returning 400 `quote_not_found`. Same intent = same buttons
2390
+ * the user pressed in the UI; a different `maxSpend`, mode, or venue scope is
2391
+ * a different intent and won't match.
2092
2392
  */
2093
2393
  fallbackToLatest?: {
2094
2394
  outcomeId: string;
@@ -2116,6 +2416,7 @@ interface ValidateManagedResponse {
2116
2416
  bridgeAmountRaw?: string;
2117
2417
  }
2118
2418
  type WithdrawTokenSymbol = "USDC" | "USDC.e" | "USDT";
2419
+ type WithdrawalSourceTokenSymbol = WithdrawTokenSymbol | "pUSD";
2119
2420
  interface WithdrawManagedParams {
2120
2421
  /** Positive integer string in the token's native decimals (e.g. "100000" = 0.1 USDC). */
2121
2422
  amountRaw: string;
@@ -2143,7 +2444,7 @@ interface WithdrawalLeg {
2143
2444
  interface WithdrawManagedSourceItem {
2144
2445
  sourceId: string;
2145
2446
  chainId: number;
2146
- tokenSymbol: WithdrawTokenSymbol;
2447
+ tokenSymbol: WithdrawalSourceTokenSymbol;
2147
2448
  /** On-chain token address on `chainId`. */
2148
2449
  tokenAddress: string;
2149
2450
  /**
@@ -2219,6 +2520,7 @@ interface GetPositionsParams {
2219
2520
  cursor?: string;
2220
2521
  limit?: number;
2221
2522
  status?: "active" | "closed";
2523
+ mode?: ExecutionMode;
2222
2524
  }
2223
2525
  interface GetOrdersParams {
2224
2526
  status?: string;
@@ -2246,10 +2548,17 @@ interface OrderbookQuoteResponse {
2246
2548
  slippage: number | null;
2247
2549
  fills: OrderbookQuoteFill[];
2248
2550
  }
2249
- type ExecutionOrdersQuery = GetOrdersQuery;
2551
+ type ExecutionOrdersQuery = GetOrdersQuery & {
2552
+ mode?: ExecutionMode;
2553
+ };
2250
2554
  type ExecutionOrderItem = OrderListItem;
2251
- type ExecutionPositionsQuery = GetPositionsQuery;
2555
+ type ExecutionPositionsQuery = GetPositionsQuery & {
2556
+ mode?: ExecutionMode;
2557
+ };
2252
2558
  type ExecutionPositionGroup = PositionGroup;
2559
+ type ManagedBalancesParams = {
2560
+ mode?: ExecutionMode;
2561
+ };
2253
2562
  type UserActivityType = "trade" | "withdrawal" | "bridge" | "deposit" | "user_op" | "redeem";
2254
2563
  interface UserActivityBase {
2255
2564
  id: string;
@@ -2453,6 +2762,8 @@ interface VenueSoloQuote {
2453
2762
  type SmartRouteSide = "yes" | "no";
2454
2763
  /** Trade direction for order routing. "buy" (default) reads asks, "sell" reads bids. */
2455
2764
  type TradeSide = "buy" | "sell";
2765
+ /** Trading mode for normal execution endpoints. Defaults to live. */
2766
+ type ExecutionMode = "live" | "paper";
2456
2767
  /** Request params for GET /orderbook/:venueMarketOutcomeId/route. */
2457
2768
  interface SmartRouteParams {
2458
2769
  venueMarketOutcomeId?: string;
@@ -2464,6 +2775,8 @@ interface SmartRouteParams {
2464
2775
  side?: SmartRouteSide;
2465
2776
  /** Trade direction: "buy" (default) or "sell". */
2466
2777
  tradeSide?: TradeSide;
2778
+ /** Trading mode. Defaults to live. */
2779
+ mode?: ExecutionMode;
2467
2780
  maxSpend?: number;
2468
2781
  /** Sell only: target number of contracts to sell. Required for sell unless maxSpend is given. */
2469
2782
  sellShares?: number;
@@ -2891,7 +3204,7 @@ declare class AggClient {
2891
3204
  /** List execution positions for the authenticated user (cursor pagination). */
2892
3205
  getExecutionPositions(params?: ExecutionPositionsQuery): Promise<PaginatedResponse<ExecutionPositionGroup>>;
2893
3206
  /** Get managed wallet balances, including per-chain cash balances and per-venue position balances. */
2894
- getManagedBalances(): Promise<UnifiedBalanceResponse>;
3207
+ getManagedBalances(params?: ManagedBalancesParams): Promise<UnifiedBalanceResponse>;
2895
3208
  /** Cancel a pending managed execution by order id. */
2896
3209
  cancelManagedOrder(orderId: string, options?: {
2897
3210
  signal?: AbortSignal;
@@ -2905,7 +3218,7 @@ declare class AggClient {
2905
3218
  status?: MarketStatus[];
2906
3219
  sortBy?: string;
2907
3220
  sortDir?: string;
2908
- recurrence?: string;
3221
+ recurrence?: RecurrenceFilter | RecurrenceFilter[];
2909
3222
  limit?: number;
2910
3223
  cursor?: string;
2911
3224
  minYesPrice?: number;
@@ -2917,6 +3230,12 @@ declare class AggClient {
2917
3230
  getVenueEventById(id: string, options?: {
2918
3231
  signal?: AbortSignal;
2919
3232
  }): Promise<VenueEvent>;
3233
+ /** List deterministic recurring crypto window markets across venues. Requires appId or admin auth. */
3234
+ listRecurringCryptoMarkets(options?: ListRecurringCryptoMarketsOptions & {
3235
+ signal?: AbortSignal;
3236
+ }): Promise<RecurringCryptoMarketsResponse>;
3237
+ /** Poll fresh reference prices for recurring crypto markets. Requires appId or admin auth. */
3238
+ getCryptoReferencePrices(options: GetCryptoReferencePricesOptions): Promise<CryptoReferencePricesResponse>;
2920
3239
  /** List venue markets with optional filters. Requires appId or admin auth. Supports cursor-based pagination. */
2921
3240
  getVenueMarkets(options?: {
2922
3241
  venue?: Venue;
@@ -3141,4 +3460,4 @@ declare function aggregateMidpoint(midpoints: (number | null | undefined)[]): nu
3141
3460
 
3142
3461
  declare function createAggClient(options: AggClientOptions): AggClient;
3143
3462
 
3144
- export { type Account, AccountProvider, AccountType, type AggAuthDeliveryMode, type AggAuthProviderType, type AggAuthStartBody, type AggAuthStartResult, type AggAuthVerifyBody, AggClient, type AggClientAuthOptions, type AggClientSessionInput, type AggLinkAccountBody, type AggLinkAccountConfirmResult, type AggLinkAccountResult, type AggSessionUser, AggWebSocket, type AggWebSocketCallbacks, type AggWebSocketOptions, type AggregatedOrderbookLevel, type AggregatedOrderbookResponse, type App, type AppClientConfigResponse, type AttributedOrderbook, type AttributedOrderbookLevel, type AuthCodeResponse, type AuthStatus, type AuthTokenResponse, type AuthUser, type BatchMidpointsResponse, type BatchOrderbooksResponse, type BuildVenueUrlOpts, CONFIRMED_MATCH_STATUSES, type CancelManagedExecutionResponse, type Candle, CandleBuilder, type CandleInterval, type Category, Chain, type ChartBarsResponse, type ChartCandle, type ChartResolution, type ChartVenueCandles, type ComputeSplitsRequest, type ComputeSplitsResponse, type ComputeSplitsSelection, type CorrelatedMarketCascadeItem, type CorrelatedMarketCascadeResponse, type CorrelatedMarketQueryResult, type CorrelatedMarketSide, type CorrelatedMarketSignal, type CorrelatedMarketSignalBatch, type CorrelatedMarketSignalDirection, type CorrelatedMarketsStatus, type CreateApp, type DepositAddressesPendingResponse, type DepositAddressesReadyResponse, type DepositAddressesResponse, type DepositAddressesSupportedChain, type DepositAddressesToken, type DepositStep, type DiagnosticCallback, type DiagnosticEvent, type ExecuteManagedParams, type ExecuteManagedRequest, type ExecuteManagedResponse, type ExecuteTradeRequest, type ExecuteTradeResponse, type ExecutionOrderItem, type ExecutionOrdersQuery, type ExecutionPositionGroup, type ExecutionPositionsQuery, type GetBalanceQuery, type GetBalanceResponse, type GetHoldingsQuery, type GetHoldingsResponse, type GetOrdersParams, type GetOrdersQuery, type GetPositionsParams, type GetPositionsQuery, type HelloResponse, IMAGE_SIZES, ImageSize, type MarkSource, type MarketPriceHistory, MarketStatus, MatchStatus, MatchType, type MatchedMidpoint, type MatchedMidpointOutcome, type MatchedOrderbookMarket, type MatchedVenueMarketOutcomeRef, type MatchingReport, type MidpointItem, type MidpointRow, type NonceResponse, type OrderListItem, type OrderListQuery, OrderStatus, type Orderbook, type OrderbookBatchItemError, type OrderbookBatchItemErrorCode, type OrderbookBatchItemStatus, type OrderbookHistoryPoint, type OrderbookHistoryResponse, type OrderbookLevel, type OrderbookQuoteFill, type OrderbookQuoteParams, type OrderbookQuoteResponse, type OrderbookServiceUnavailableError, type OrderbookState, type OrderbooksOnlyError, type OutcomeMidpoint, type OutcomeMidpointRow, type OutcomeOrderbookResponse, type PaginatedResponse, type PersistedAuthSnapshot, type PositionGroup, type PositionRedeemStatus, type PricePoint, type PriceSource, type PricesHistoryResponse, type QuoteManagedParams, type QuoteManagedRequest, type QuoteManagedResponse, type QuoteManagedSplit, type QuoteManagedStep, type QuoteSplit, type QuoteStep, type RampQuote, type RampQuoteRequest, type RampSessionRequest, type RampWidgetSession, type RedeemLegResult, type RedeemLegStatus, type RedeemRequest, type RedeemResponse, type RequestedOrderbookMarket, type ResolveCorrelatedMarketsParams, type ResolveCorrelatedMarketsResponse, type ResolvedCorrelatedMarketsResponse, type SafeParseFailure, type SafeParseResult, type SafeParseSuccess, type ServerWallet, type SettlementSource, type SetupDepositAddressStep, type SetupVenueKeyStep, type SimpleOrderbookLevel, type SmartRouteAllocation, type SmartRouteBridgeStep, type SmartRouteFeeBreakdown, type SmartRouteFill, type SmartRouteParams, type SmartRouteResponse, type SmartRouteSetupCostLine, type SmartRouteSide, type SmartRouteStatus, type SmartRouteVenueFill, type SplitsByAmountResult, type SyncBalancesResponse, type TradeExecutorOrder, type TradeExecutorOrderListResponse, TradeSide$1 as TradeSide, type TradeSplit, type TradeStep, TurnstileChallengeError, type UnifiedBalanceResponse, type UpdateUserBody, type UpsertVenueKey, type UserActivityBridge, type UserActivityDeposit, type UserActivityItem, type UserActivityQuery, type UserActivityRedeem, type UserActivityRedeemLeg, type UserActivityTrade, type UserActivityType, type UserActivityUserOp, type UserActivityWithdrawal, type UserHolding, type UserProfile, VENUES, type ValidateBalanceOnClientStep, type ValidateManagedParams, type ValidateManagedRequest, type ValidateManagedResponse, type ValidateTradeRequest, type ValidateTradeResponse, Venue, type VenueEvent, type VenueEventListItem, type VenueEventWithMarkets, type VenueKeySummary, type VenueMarket, type VenueMarketClusterNode, type VenueMarketListItem, type VenueMarketOutcome, type VenueMarketRef, type VenueOrderbookEntry, type VenueOrderbookLevel, type VenuePositionBalance, type VenuePriceInfo, type VenueSoloQuote, type VerifyBody, type VerifyResponse, type WalletChainBalance, type WalletTokenBalance, type WithdrawManagedParams, type WithdrawManagedRequest, type WithdrawManagedResponse, type WithdrawManagedSourceItem, type WithdrawTokenSymbol, type WithdrawalExpected, type WithdrawalLeg, type WithdrawalLegStatus, type WithdrawalLegType, type WithdrawalLifecycleStatus, type WithdrawalSource, type WithdrawalSourceItem, type WithdrawalSourceStatus, type WsAttributedLevel, type WsAuthenticated, type WsBalanceUpdate, type WsCandleInterval, type WsClientMessage, type WsConnected, type WsError, type WsHeartbeat, type WsMarkSource, type WsMarketResolved, type WsOrderEvent, type WsOrderEventType, type WsOrderSubmitted, type WsOrderbookDelta, type WsOrderbookSnapshot, type WsRedeemEvent, type WsServerMessage, type WsSubscribed, type WsTrade, type WsUnsubscribed, type WsVenueBook, type WsVenueInfo, type WsVenueLevel, type WsWithdrawalLegStatus, type WsWithdrawalLifecycleEvent, type WsWithdrawalLifecycleLeg, type WsWithdrawalLifecycleStatus, aggregateMidpoint, applyOrderbookDelta, buildVenueUrl, computeBestSplitsByAmount, computeChecksum, createAggClient, enumGuard, formatMarketQuestion, formatOutcomeLabel, formatOutcomeTitle, getWalletAddressFromUserProfile, hasShape, isEmail, isEnum, isFiniteNonNeg, isNonEmptyString, mergeCandles, mergeClosedCandles, normalizeVenueMarketCluster, optimizedImageUrl, parse, parseEmail, parseEmailStrict, safeParse, snapshotToOrderbook, sortVenues };
3463
+ export { type Account, AccountProvider, AccountType, type AggAuthDeliveryMode, type AggAuthProviderType, type AggAuthStartBody, type AggAuthStartResult, type AggAuthVerifyBody, AggClient, type AggClientAuthOptions, type AggClientSessionInput, type AggLinkAccountBody, type AggLinkAccountConfirmResult, type AggLinkAccountResult, type AggSessionUser, AggWebSocket, type AggWebSocketCallbacks, type AggWebSocketOptions, type AggregatedOrderbookLevel, type AggregatedOrderbookResponse, type App, type AppClientConfigResponse, type AttributedOrderbook, type AttributedOrderbookLevel, type AuthCodeResponse, type AuthStatus, type AuthTokenResponse, type AuthUser, type BatchMidpointsResponse, type BatchOrderbooksResponse, type BuildVenueUrlOpts, CONFIRMED_MATCH_STATUSES, type CancelManagedExecutionResponse, type Candle, CandleBuilder, type CandleInterval, type Category, Chain, type ChartBarsResponse, type ChartCandle, type ChartResolution, type ChartVenueCandles, type ComputeSplitsRequest, type ComputeSplitsResponse, type ComputeSplitsSelection, type CorrelatedMarketCascadeItem, type CorrelatedMarketCascadeResponse, type CorrelatedMarketQueryResult, type CorrelatedMarketSide, type CorrelatedMarketSignal, type CorrelatedMarketSignalBatch, type CorrelatedMarketSignalDirection, type CorrelatedMarketsStatus, type CreateApp, type CryptoReferencePriceError, type CryptoReferencePriceExternalMarketInput, type CryptoReferencePriceMarketInput, type CryptoReferencePriceResult, type CryptoReferencePriceSource, type CryptoReferencePriceTarget, type CryptoReferencePricesResponse, type DepositAddressesPendingResponse, type DepositAddressesReadyResponse, type DepositAddressesResponse, type DepositAddressesSupportedChain, type DepositAddressesToken, type DepositStep, type DiagnosticCallback, type DiagnosticEvent, type ExecuteManagedParams, type ExecuteManagedRequest, type ExecuteManagedResponse, type ExecuteTradeRequest, type ExecuteTradeResponse, type ExecutionMode, type ExecutionOrderItem, type ExecutionOrdersQuery, type ExecutionPositionGroup, type ExecutionPositionsQuery, type GetBalanceQuery, type GetBalanceResponse, type GetCryptoReferencePricesOptions, type GetHoldingsQuery, type GetHoldingsResponse, type GetOrdersParams, type GetOrdersQuery, type GetPositionsParams, type GetPositionsQuery, type HelloResponse, IMAGE_SIZES, ImageSize, type ListRecurringCryptoMarketsOptions, type ManagedBalancesParams, type MarkSource, type MarketPriceHistory, MarketStatus, MatchStatus, MatchType, type MatchedMidpoint, type MatchedMidpointOutcome, type MatchedOrderbookMarket, type MatchedVenueMarketOutcomeRef, type MatchingReport, type MidpointItem, type MidpointRow, type NonceResponse, type OrderListItem, type OrderListQuery, OrderStatus, OrderType, type Orderbook, type OrderbookBatchItemError, type OrderbookBatchItemErrorCode, type OrderbookBatchItemStatus, type OrderbookHistoryPoint, type OrderbookHistoryResponse, type OrderbookLevel, type OrderbookQuoteFill, type OrderbookQuoteParams, type OrderbookQuoteResponse, type OrderbookServiceUnavailableError, type OrderbookState, type OrderbooksOnlyError, type OutcomeMidpoint, type OutcomeMidpointRow, type OutcomeOrderbookResponse, type PaginatedResponse, type PersistedAuthSnapshot, type PositionGroup, type PositionRedeemStatus, type PricePoint, type PriceSource, type PricesHistoryResponse, type QuoteManagedParams, type QuoteManagedRequest, type QuoteManagedResponse, type QuoteManagedSplit, type QuoteManagedStep, type QuoteSplit, type QuoteStep, RECURRENCE_CADENCES, type RampQuote, type RampQuoteRequest, type RampSessionRequest, type RampWidgetSession, type RecurrenceCadence, type RecurrenceFilter, type RecurringCryptoComparisonPoint, type RecurringCryptoComparisonPriceSource, type RecurringCryptoDuration, type RecurringCryptoDurationInput, type RecurringCryptoMarketMetrics, type RecurringCryptoMarketsResponse, type RecurringCryptoOutcome, type RecurringCryptoPriceComparison, type RecurringCryptoReferencePrice, type RecurringCryptoResolution, type RecurringCryptoSourceConfidence, type RecurringCryptoVenueMarket, type RecurringCryptoWindowComparisons, type RecurringCryptoWindowMarket, type RedeemLegResult, type RedeemLegStatus, type RedeemRequest, type RedeemResponse, type RequestedOrderbookMarket, type ResolveCorrelatedMarketsParams, type ResolveCorrelatedMarketsResponse, type ResolvedCorrelatedMarketsResponse, type SafeParseFailure, type SafeParseResult, type SafeParseSuccess, type ServerWallet, type SettlementSource, type SetupDepositAddressStep, type SetupVenueKeyStep, type SimpleOrderbookLevel, type SmartRouteAllocation, type SmartRouteBridgeStep, type SmartRouteFeeBreakdown, type SmartRouteFill, type SmartRouteParams, type SmartRouteResponse, type SmartRouteSetupCostLine, type SmartRouteSide, type SmartRouteStatus, type SmartRouteVenueFill, type SplitsByAmountResult, type SyncBalancesResponse, TimeInForce, type TradeExecutorOrder, type TradeExecutorOrderListResponse, TradeSide$1 as TradeSide, type TradeSplit, type TradeStep, TurnstileChallengeError, type UnifiedBalanceResponse, type UpdateUserBody, type UpsertVenueKey, type UserActivityBridge, type UserActivityDeposit, type UserActivityItem, type UserActivityQuery, type UserActivityRedeem, type UserActivityRedeemLeg, type UserActivityTrade, type UserActivityType, type UserActivityUserOp, type UserActivityWithdrawal, type UserHolding, type UserProfile, VENUES, type ValidateBalanceOnClientStep, type ValidateManagedParams, type ValidateManagedRequest, type ValidateManagedResponse, type ValidateTradeRequest, type ValidateTradeResponse, Venue, type VenueEvent, type VenueEventListItem, type VenueEventWithMarkets, type VenueKeySummary, type VenueMarket, type VenueMarketClusterNode, type VenueMarketListItem, type VenueMarketOutcome, type VenueMarketRef, type VenueOrderbookEntry, type VenueOrderbookLevel, type VenuePositionBalance, type VenuePriceInfo, type VenueSoloQuote, type VerifyBody, type VerifyResponse, type WalletChainBalance, type WalletTokenBalance, type WithdrawManagedParams, type WithdrawManagedRequest, type WithdrawManagedResponse, type WithdrawManagedSourceItem, type WithdrawTokenSymbol, type WithdrawalExpected, type WithdrawalLeg, type WithdrawalLegStatus, type WithdrawalLegType, type WithdrawalLifecycleStatus, type WithdrawalSource, type WithdrawalSourceItem, type WithdrawalSourceStatus, type WithdrawalSourceTokenSymbol, type WsArbFeedBatch, type WsArbFeedEntry, type WsArbMarketUpdate, type WsAttributedLevel, type WsAuthenticated, type WsBalanceUpdate, type WsCandleInterval, type WsClientMessage, type WsConnected, type WsError, type WsHeartbeat, type WsMarkSource, type WsMarketResolved, type WsOrderEvent, type WsOrderEventType, type WsOrderSubmitted, type WsOrderbookDelta, type WsOrderbookSnapshot, type WsRedeemEvent, type WsServerMessage, type WsSubscribed, type WsTrade, type WsUnsubscribed, type WsVenueBook, type WsVenueInfo, type WsVenueLevel, type WsWithdrawalLegStatus, type WsWithdrawalLifecycleEvent, type WsWithdrawalLifecycleLeg, type WsWithdrawalLifecycleStatus, aggregateMidpoint, applyOrderbookDelta, buildVenueUrl, computeBestSplitsByAmount, computeChecksum, createAggClient, enumGuard, formatMarketQuestion, formatOutcomeLabel, formatOutcomeTitle, getWalletAddressFromUserProfile, hasShape, isEmail, isEnum, isFiniteNonNeg, isNonEmptyString, mergeCandles, mergeClosedCandles, normalizeVenueMarketCluster, optimizedImageUrl, parse, parseEmail, parseEmailStrict, safeParse, snapshotToOrderbook, sortVenues };