@agg-build/hooks 1.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.
@@ -0,0 +1,4640 @@
1
+ import * as _tanstack_react_query from '@tanstack/react-query';
2
+ import { QueryClient } from '@tanstack/react-query';
3
+ export { QueryClient, QueryClientProvider, useQueryClient } from '@tanstack/react-query';
4
+ import * as _agg_build_sdk from '@agg-build/sdk';
5
+ import { CandleBuilder, AggAuthStartBody, AggAuthStartResult, AggClientSessionInput, AggClient, RampQuote, RampQuoteRequest, RampWidgetSession, RampSessionRequest, AggWebSocket, WsBalanceUpdate, WsOrderSubmitted, QuoteManagedResponse, QuoteManagedParams, ExecuteManagedResponse, ExecuteManagedParams, WithdrawManagedResponse, WithdrawManagedParams, GetPositionsParams, RedeemResponse, RedeemRequest, WsRedeemEvent, WsCandleInterval, WsTrade, AggregatedOrderbookResponse, AggLinkAccountBody, AggLinkAccountResult, AggLinkAccountConfirmResult, UserActivityQuery, UserActivityItem, CandleInterval, OrderbookState, OrderbookQuoteResponse, OrderListQuery, TradeExecutorOrder, SmartRouteSide, SmartRouteResponse, MidpointRow, BatchMidpointsResponse, AppClientConfigResponse } from '@agg-build/sdk';
6
+ export { TurnstileChallengeError } from '@agg-build/sdk';
7
+ import React, { ReactNode } from 'react';
8
+ export { U as UseDepositAddressesOptions, a as UseSyncBalancesOptions, g as getDepositAddress, u as useDepositAddresses, b as useSyncBalances } from './use-sync-balances-D1Jdkck9.mjs';
9
+
10
+ /** Use these constants instead of hardcoding "kalshi" or "polymarket". */
11
+ declare enum Venue {
12
+ kalshi = "kalshi",
13
+ polymarket = "polymarket",
14
+ limitless = "limitless",
15
+ opinion = "opinion",
16
+ predict = "predict",
17
+ probable = "probable",
18
+ myriad = "myriad",
19
+ hyperliquid = "hyperliquid"
20
+ }
21
+
22
+ declare enum AccountType {
23
+ oauth = "oauth",
24
+ siwe = "siwe",
25
+ siws = "siws",
26
+ email = "email"
27
+ }
28
+ declare enum AccountProvider {
29
+ wallet = "wallet",
30
+ solana_wallet = "solana_wallet",
31
+ google = "google",
32
+ twitter = "twitter",
33
+ apple = "apple",
34
+ email = "email"
35
+ }
36
+
37
+ declare enum Chain {
38
+ evm = "evm",
39
+ svm = "svm"
40
+ }
41
+
42
+ declare enum MatchStatus {
43
+ pending = "pending",
44
+ unmatched = "unmatched",
45
+ review = "review",
46
+ matched = "matched",
47
+ verified = "verified",
48
+ rejected = "rejected"
49
+ }
50
+ declare enum MatchType {
51
+ manual = "manual",
52
+ llm = "llm"
53
+ }
54
+ /** Match statuses considered "confirmed" for user-facing data (orderbooks, listings, aggregation). */
55
+ declare const CONFIRMED_MATCH_STATUSES: MatchStatus[];
56
+ declare enum MarketStatus {
57
+ open = "open",
58
+ closed = "closed",
59
+ resolved = "resolved",
60
+ unopened = "unopened",
61
+ paused = "paused"
62
+ }
63
+
64
+ declare enum OrderStatus {
65
+ pending = "pending",
66
+ signing = "signing",
67
+ pending_bridge = "pending_bridge",
68
+ submitting = "submitting",
69
+ submitted = "submitted",
70
+ filled = "filled",
71
+ partial_fill = "partial_fill"
72
+ }
73
+
74
+ /**
75
+ * Standalone type definitions — no Zod dependency.
76
+ * These mirror the types in types/index.ts but are defined as plain interfaces.
77
+ * Used by the types-only barrel to avoid leaking Zod into SDK/hooks declarations.
78
+ */
79
+
80
+ type UserProfile = {
81
+ id: string;
82
+ username: string | null;
83
+ avatarUrl: string | null;
84
+ externalId: string | null;
85
+ isLocationBlocked: boolean;
86
+ accounts: {
87
+ type: AccountType;
88
+ provider: AccountProvider;
89
+ providerAccountId: string;
90
+ }[];
91
+ wallets: {
92
+ chain: Chain;
93
+ address: string;
94
+ }[];
95
+ venueAccounts: {
96
+ status: string;
97
+ id: string;
98
+ venue: Venue;
99
+ kycStatus: string;
100
+ }[] | null;
101
+ };
102
+ type UnifiedBalanceResponse = {
103
+ cash: {
104
+ tokenSymbol: string;
105
+ totalRaw: string;
106
+ decimals: number;
107
+ chains: {
108
+ chainId: number;
109
+ tokenAddress: string;
110
+ balanceRaw: string;
111
+ decimals: number;
112
+ lastSyncedAt: string;
113
+ }[];
114
+ }[];
115
+ positions: {
116
+ venue: Venue;
117
+ balance: number;
118
+ costBasis: number;
119
+ unrealizedPnl: number;
120
+ realizedPnl: number;
121
+ }[];
122
+ };
123
+ type GetOrdersQuery = {
124
+ status?: OrderStatus | undefined;
125
+ orderId?: string | undefined;
126
+ cursor?: string | undefined;
127
+ limit?: number | undefined;
128
+ };
129
+ type GetPositionsQuery = {
130
+ cursor?: string | undefined;
131
+ limit?: number | undefined;
132
+ status?: "active" | "closed" | undefined;
133
+ };
134
+ type OrderListItem = {
135
+ status: string;
136
+ id: string;
137
+ createdAt: Date;
138
+ updatedAt: Date;
139
+ venue: Venue;
140
+ side: string;
141
+ amountRaw: string;
142
+ slippageBps: number | null;
143
+ quotedPriceRaw: string | null;
144
+ quotedCostRaw: string | null;
145
+ filledAmountRaw: string | null;
146
+ executionPrice: string | null;
147
+ txHash: string | null;
148
+ errorMessage: string | null;
149
+ dagRunId: string | null;
150
+ venueMarket: {
151
+ id: string;
152
+ venueEventId?: string | undefined;
153
+ question: string;
154
+ image: string | null;
155
+ } | null;
156
+ venueMarketOutcome: {
157
+ label: string;
158
+ title: string | null;
159
+ } | null;
160
+ };
161
+ type PositionGroup = {
162
+ venueMarket: {
163
+ venueEventId: string;
164
+ question: string;
165
+ image: string | null;
166
+ status: MarketStatus;
167
+ venueMarketOutcomes: {
168
+ unrealizedPnl: number;
169
+ label: string;
170
+ title: string | null;
171
+ winner: boolean | null;
172
+ venueBreakdown: {
173
+ venue: Venue;
174
+ size: number;
175
+ venueMarketId: string;
176
+ venueMarketOutcomeId?: string | null;
177
+ }[];
178
+ totalSize: number;
179
+ avgEntryPrice: number;
180
+ currentPrice: number;
181
+ totalValue: number;
182
+ unrealizedPnlPercent: number;
183
+ }[];
184
+ };
185
+ targetMarketId: string;
186
+ eventId?: string | undefined;
187
+ redeemStatus: "eligible" | "pending" | "redeemed" | "ineligible";
188
+ status: "active" | "closed";
189
+ resolutionDate: string | null;
190
+ };
191
+ type VenueMarket = {
192
+ id: string;
193
+ venue: Venue;
194
+ question: string;
195
+ venueMarketOutcomes: {
196
+ id: string;
197
+ price: number;
198
+ venueMarketId: string;
199
+ label: string;
200
+ title?: string | null | undefined;
201
+ externalIdentifier?: string | null | undefined;
202
+ winner?: boolean | null | undefined;
203
+ }[];
204
+ externalIdentifier: string;
205
+ status?: MarketStatus | undefined;
206
+ createdAt?: string | null | undefined;
207
+ negRisk?: boolean | undefined;
208
+ marketId?: string | null | undefined;
209
+ conditionId?: string | null | undefined;
210
+ venueEventId?: string | null | undefined;
211
+ image?: string | null | undefined;
212
+ description?: string | null | undefined;
213
+ rulesPrimary?: string | null | undefined;
214
+ rulesSecondary?: string | null | undefined;
215
+ volume?: number | null | undefined;
216
+ startDate?: string | null | undefined;
217
+ endDate?: string | null | undefined;
218
+ creationDate?: string | null | undefined;
219
+ resolutionDate?: string | null | undefined;
220
+ matchedVenueMarkets?: {
221
+ id: string;
222
+ venue: Venue;
223
+ question: string;
224
+ externalIdentifier: string;
225
+ status?: MarketStatus | undefined;
226
+ conditionId?: string | null | undefined;
227
+ venueMarketOutcomes?: {
228
+ id: string;
229
+ price: number;
230
+ venueMarketId: string;
231
+ label: string;
232
+ winner?: boolean | null | undefined;
233
+ }[] | undefined;
234
+ volume?: number | null | undefined;
235
+ venueEvent?: {
236
+ id: string;
237
+ externalIdentifier: string;
238
+ slug?: string | null | undefined;
239
+ series?: {
240
+ id: string;
241
+ venue: string;
242
+ externalIdentifier: string;
243
+ name?: string | null | undefined;
244
+ } | null | undefined;
245
+ } | null | undefined;
246
+ }[] | undefined;
247
+ };
248
+ type VenueEvent = {
249
+ id: string;
250
+ venue: Venue;
251
+ image: string | null;
252
+ title: string;
253
+ externalIdentifier: string;
254
+ categories: {
255
+ id: string;
256
+ category: {
257
+ id: string;
258
+ name: string;
259
+ parentId: string | null;
260
+ eventCount: number;
261
+ };
262
+ }[];
263
+ status?: MarketStatus | undefined;
264
+ updatedAt?: string | null | undefined;
265
+ description?: string | null | undefined;
266
+ volume?: number | null | undefined;
267
+ startDate?: string | null | undefined;
268
+ endDate?: string | null | undefined;
269
+ creationDate?: string | null | undefined;
270
+ slug?: string | null | undefined;
271
+ subtitle?: string | null | undefined;
272
+ venues?: Venue[];
273
+ venueCount?: number | undefined;
274
+ marketCount?: number | undefined;
275
+ };
276
+ type Orderbook = {
277
+ bids: {
278
+ price: number;
279
+ size: number;
280
+ }[];
281
+ asks: {
282
+ price: number;
283
+ size: number;
284
+ }[];
285
+ negRisk?: boolean | undefined;
286
+ };
287
+ type VenueMarketOutcome = {
288
+ id: string;
289
+ price: number;
290
+ venueMarketId: string;
291
+ label: string;
292
+ title?: string | null | undefined;
293
+ externalIdentifier?: string | null | undefined;
294
+ winner?: boolean | null | undefined;
295
+ };
296
+ type VenueEventWithMarkets = VenueEvent & {
297
+ venueMarkets: VenueMarket[];
298
+ };
299
+
300
+ declare function getWalletAddressFromUserProfile(user: UserProfile | undefined): string | undefined;
301
+
302
+ /**
303
+ * Lightweight runtime validation utilities — zero dependencies.
304
+ * Replaces Zod's safeParse/parse for simple type-guard-based validation.
305
+ */
306
+ type SafeParseSuccess<T> = {
307
+ success: true;
308
+ data: T;
309
+ };
310
+ type SafeParseFailure = {
311
+ success: false;
312
+ error?: {
313
+ issues: Array<{
314
+ message: string;
315
+ }>;
316
+ };
317
+ };
318
+ type SafeParseResult<T> = SafeParseSuccess<T> | SafeParseFailure;
319
+ /** Validates + trims email. Returns safeParse-compatible result with error.issues shape. */
320
+ declare function parseEmail(raw: string): SafeParseResult<{
321
+ email: string;
322
+ }>;
323
+ /** Strict email parse — throws with .issues for catch-block compat. */
324
+ declare function parseEmailStrict(raw: string): {
325
+ email: string;
326
+ };
327
+
328
+ /**
329
+ * Rewrite a CDN image URL to use the pre-processed variant closest to `maxPx`.
330
+ *
331
+ * - CDN URLs ending in `/original.webp` or `/{size}.webp` are rewritten.
332
+ * - External URLs (venue logos, non-CDN) pass through unchanged.
333
+ * - Falsy inputs return `undefined`.
334
+ *
335
+ * @param url Full image URL from the API (e.g. `https://assets.agg.market/users/.../original.webp`)
336
+ * @param maxPx Largest dimension the image will be rendered at, in CSS pixels.
337
+ * Pass the **largest** responsive breakpoint size (e.g. 60 for `size-10 md:size-[60px]`).
338
+ */
339
+ declare function optimizedImageUrl(url: string | null | undefined, maxPx: number): string | undefined;
340
+
341
+ declare const sortVenues: <T extends string>(venues: readonly T[]) => T[];
342
+
343
+ /**
344
+ * LRU-bounded store for per-market CandleBuilders.
345
+ * Fed from WS provider (onDelta/onSnapshot/onTrade).
346
+ * Read from useLiveCandles and SDK-only partners.
347
+ */
348
+ declare function getOrCreateBuilder(marketId: string): CandleBuilder;
349
+ declare function getBuilder(marketId: string): CandleBuilder | undefined;
350
+
351
+ type AggVenueLabelKey = `${Venue}`;
352
+ type AggOnboardingFeatureKey = "createAccount" | "linkAccounts" | "bestPrices" | "stayInControl";
353
+ interface AggUiLabels {
354
+ common: {
355
+ close: string;
356
+ loading: string;
357
+ retry: string;
358
+ errorPrefix: string;
359
+ tabsAria: string;
360
+ hiddenTabsAria: string;
361
+ selectAria: string;
362
+ lineChartAria: string;
363
+ candlestickChartAria: string;
364
+ lineChartSeriesSwitchAria: string;
365
+ lineChartSeriesOptionAria: (seriesLabel: string) => string;
366
+ chartTypeSwitchAria: string;
367
+ lineChartType: string;
368
+ candlestickChartType: string;
369
+ };
370
+ venues: Record<AggVenueLabelKey, string>;
371
+ auth: {
372
+ connect: (connectorName?: string) => string;
373
+ signIn: string;
374
+ signingIn: string;
375
+ signInStatement: string;
376
+ emailAddress: string;
377
+ continue: string;
378
+ emailUnavailable: string;
379
+ signInWithMethod: (methodLabel: string) => string;
380
+ socialWalletNotice: string;
381
+ learnMore: string;
382
+ dividerOr: string;
383
+ connectWallet: string;
384
+ terms: string;
385
+ privacyPolicy: string;
386
+ legalNoticePrefix: string;
387
+ legalNoticeSeparator: string;
388
+ deposit: string;
389
+ depositGeoBlocked: string;
390
+ balances: string;
391
+ viewAll: string;
392
+ loadingBalances: string;
393
+ myProfile: string;
394
+ withdraw: string;
395
+ disconnect: string;
396
+ claimWinnings: string;
397
+ claimableWinningsBadge: (count: number) => string;
398
+ claimableWinningsTooltip: (count: number) => string;
399
+ walletMenuFor: (profileLabel: string) => string;
400
+ };
401
+ deposit: {
402
+ title: string;
403
+ back: string;
404
+ balancePrefix: string;
405
+ balanceLabel: string;
406
+ done: string;
407
+ methods: {
408
+ walletTitle: (walletLabel: string) => string;
409
+ walletDescription: string;
410
+ cryptoTitle: string;
411
+ cryptoDescription: string;
412
+ cardTitle: string;
413
+ cardDescription: string;
414
+ };
415
+ walletFlow: {
416
+ title: string;
417
+ tokenLabel: string;
418
+ networkLabel: string;
419
+ amountLabel: string;
420
+ max: string;
421
+ feePrefix: string;
422
+ confirm: string;
423
+ };
424
+ sendCrypto: {
425
+ title: string;
426
+ tokenLabel: string;
427
+ networkLabel: string;
428
+ depositAddressLabel: string;
429
+ copy: string;
430
+ copied: string;
431
+ minDepositPrefix: string;
432
+ warning: string;
433
+ qrPlaceholder: string;
434
+ addressLoadingTitle: string;
435
+ addressLoadingDescription: string;
436
+ };
437
+ cardFlow: {
438
+ title: string;
439
+ amountLabel: string;
440
+ currencyLabel: string;
441
+ tokenLabel: string;
442
+ networkLabel: string;
443
+ destinationWalletLabel: string;
444
+ getQuotes: string;
445
+ minRequired: (amount: string) => string;
446
+ minAmountError: (amount: string) => string;
447
+ selectProviderTitle: string;
448
+ feeLabel: string;
449
+ providerBadges: {
450
+ best: string;
451
+ lowKyc: string;
452
+ };
453
+ successTitle: string;
454
+ successDescription: string;
455
+ pendingTitle: (provider: string) => string;
456
+ pendingDescription: string;
457
+ viewActivity: string;
458
+ chooseAnotherProvider: string;
459
+ summary: {
460
+ provider: string;
461
+ fees: string;
462
+ };
463
+ loadingQuotes: string;
464
+ errorLoadingQuotesTitle: string;
465
+ errorLoadingQuotesDescription: string;
466
+ retry: string;
467
+ noQuotes: string;
468
+ widgetTitle: string;
469
+ };
470
+ processingTitle: string;
471
+ processingSteps: {
472
+ submitting: string;
473
+ submitted: string;
474
+ confirming: string;
475
+ updatingBalance: string;
476
+ fundsAvailable: string;
477
+ };
478
+ successTitle: string;
479
+ successDescription: string;
480
+ summary: {
481
+ amountReceived: string;
482
+ network: string;
483
+ fromWallet: string;
484
+ gasFee: string;
485
+ };
486
+ };
487
+ withdraw: {
488
+ title: string;
489
+ back: string;
490
+ done: string;
491
+ balancePrefix: string;
492
+ methods: {
493
+ cardTitle: string;
494
+ cardDescription: string;
495
+ };
496
+ cardFlow: {
497
+ title: string;
498
+ amountLabel: string;
499
+ currencyLabel: string;
500
+ tokenLabel: string;
501
+ networkLabel: string;
502
+ destinationWalletLabel: string;
503
+ getQuotes: string;
504
+ selectProviderTitle: string;
505
+ feeLabel: string;
506
+ providerBadges: {
507
+ best: string;
508
+ lowKyc: string;
509
+ };
510
+ successTitle: string;
511
+ successDescription: string;
512
+ summary: {
513
+ provider: string;
514
+ toWallet: string;
515
+ fees: string;
516
+ };
517
+ };
518
+ summary: {
519
+ amountReceived: string;
520
+ network: string;
521
+ };
522
+ };
523
+ markets: {
524
+ emptyNoOpen: string;
525
+ emptyResolved: string;
526
+ };
527
+ home: {
528
+ trending: string;
529
+ topMarkets: string;
530
+ newMarkets: string;
531
+ categoryTabsAria: string;
532
+ };
533
+ userProfile: {
534
+ activity: {
535
+ depositType: string;
536
+ withdrawalType: string;
537
+ depositTitles: {
538
+ connectedWallet: string;
539
+ externalWallet: string;
540
+ card: string;
541
+ };
542
+ withdrawalTitle: (tokenSymbol: string) => string;
543
+ };
544
+ positions: {
545
+ totalTradedHeader: string;
546
+ amountWonHeader: string;
547
+ claimHeader: string;
548
+ claim: string;
549
+ claimed: string;
550
+ pending: string;
551
+ won: string;
552
+ lost: string;
553
+ resolved: string;
554
+ marketClosed: string;
555
+ closed: string;
556
+ };
557
+ };
558
+ eventList: {
559
+ matchedTab: string;
560
+ loading: (title: string) => string;
561
+ tabsAria: (title: string) => string;
562
+ emptyAria: string;
563
+ emptyTitle: string;
564
+ emptyDescription: string;
565
+ empty: string;
566
+ errorTitle: string;
567
+ errorDescription: string;
568
+ viewResolved: string;
569
+ hideResolved: string;
570
+ };
571
+ search: {
572
+ placeholder: string;
573
+ inputAria: string;
574
+ resultsAria: string;
575
+ resultAria: (title: string) => string;
576
+ resultsSummary: (countLabel: string, query: string) => string;
577
+ seeAllResults: string;
578
+ loadingResults: string;
579
+ noResultsTitle: string;
580
+ noResultsDescription: string;
581
+ };
582
+ eventItem: {
583
+ loading: string;
584
+ unavailableAria: string;
585
+ unavailableTitle: string;
586
+ unavailableDescription: string;
587
+ arbitrage: string;
588
+ volumeSuffix: string;
589
+ marketSingular: string;
590
+ marketPlural: string;
591
+ venueSingular: string;
592
+ venuePlural: string;
593
+ priceGap: string;
594
+ };
595
+ eventItemDetails: {
596
+ loading: string;
597
+ unavailableAria: string;
598
+ unavailableTitle: string;
599
+ unavailableDescription: string;
600
+ notFoundAria: string;
601
+ notFoundTitle: string;
602
+ notFoundDescription: string;
603
+ chartUnavailableAria: string;
604
+ chartUnavailableTitle: string;
605
+ chartUnavailableDescription: string;
606
+ historicalLineChartAria: (title: string) => string;
607
+ outcomeSelectorAria: string;
608
+ yes: string;
609
+ no: string;
610
+ allTimeRange: string;
611
+ volumeSuffix: string;
612
+ marketSelectPlaceholder: string;
613
+ marketSelectSearchPlaceholder: string;
614
+ marketSelectEmpty: string;
615
+ };
616
+ settlementSummary: {
617
+ title: string;
618
+ readFullDetails: string;
619
+ showLess: string;
620
+ };
621
+ marketDetails: {
622
+ loading: string;
623
+ unavailableAria: string;
624
+ unavailableTitle: string;
625
+ unavailableDescription: string;
626
+ notFoundAria: string;
627
+ notFoundTitle: string;
628
+ notFoundDescription: string;
629
+ chartUnavailableAria: string;
630
+ chartUnavailableTitle: string;
631
+ chartUnavailableDescription: string;
632
+ orderBookEmptyAria: string;
633
+ orderBookEmptyTitle: string;
634
+ orderBookEmptyDescription: string;
635
+ orderBookResolvedAria: string;
636
+ orderBookResolvedTitle: string;
637
+ orderBookResolvedDescription: string;
638
+ orderBookUnavailableAria: string;
639
+ orderBookUnavailableTitle: string;
640
+ orderBookUnavailableDescription: string;
641
+ marketOutcomesAria: string;
642
+ tabsAria: string;
643
+ toggleOpenDetailsAria: (title: string) => string;
644
+ toggleCloseDetailsAria: (title: string) => string;
645
+ loadingOrderbookAria: string;
646
+ loadingOrderbookLabel: string;
647
+ asks: string;
648
+ bids: string;
649
+ spread: string;
650
+ midPrice: string;
651
+ tradePrefix: string;
652
+ priceColumn: string;
653
+ sharesColumn: string;
654
+ totalColumn: string;
655
+ lastPrice: string;
656
+ graphAria: (title: string) => string;
657
+ outcomeSelectorAria: string;
658
+ showOutcomeAria: (label: string) => string;
659
+ viewResolved: string;
660
+ hideResolved: string;
661
+ volumeUnavailable: string;
662
+ tabs: {
663
+ orderBook: string;
664
+ graph: string;
665
+ other: string;
666
+ };
667
+ meta: {
668
+ status: string;
669
+ created: string;
670
+ opens: string;
671
+ closes: string;
672
+ markets: string;
673
+ unknown: string;
674
+ venueSingular: string;
675
+ venuePlural: string;
676
+ volumeSuffix: string;
677
+ };
678
+ };
679
+ trading: {
680
+ settlementSection: string;
681
+ settlementDifferencesTitle: string;
682
+ settlementLoading: string;
683
+ settlementDetailsAria: (venueLabel: string) => string;
684
+ settlementShowMoreAria: (ctaLabel: string, venueLabel: string) => string;
685
+ settlementDescriptionLabel: string;
686
+ settlementRulesPrimaryLabel: string;
687
+ settlementRulesSecondaryLabel: string;
688
+ disclaimer: string;
689
+ geoBlockTermsLink: string;
690
+ geoBlockGenericMessage: string;
691
+ geoBlockVenueMessage: (venueLabel: string) => string;
692
+ geoBlockMessageSuffix: string;
693
+ geoBlockModalAriaLabel: string;
694
+ geoBlockModalTitle: string;
695
+ geoBlockModalDescription: string;
696
+ geoBlockModalConfirm: string;
697
+ averagePrice: (value: number) => string;
698
+ balance: (value: string) => string;
699
+ shares: (value: number) => string;
700
+ slippage: (value: number) => string;
701
+ editSlippage: (value: string) => string;
702
+ collapseSlippage: (value: string) => string;
703
+ resetSlippage: string;
704
+ slippageWarning: (value: number) => string;
705
+ slippageLow: (value: number) => string;
706
+ slippageHigh: (value: number) => string;
707
+ showAdditionalVenues: (count: number) => string;
708
+ hideAdditionalVenues: string;
709
+ quoteExpired: string;
710
+ orderSubmitted: string;
711
+ orderPending: string;
712
+ orderFailed: string;
713
+ orderDisabledEventResolved: string;
714
+ orderDisabledEventClosed: string;
715
+ orderDisabledEventPaused: string;
716
+ orderDisabledEventUnopened: string;
717
+ orderDisabledEventUnavailable: string;
718
+ orderDisabledMarketResolved: string;
719
+ orderDisabledMarketClosed: string;
720
+ orderDisabledMarketPaused: string;
721
+ orderDisabledMarketUnopened: string;
722
+ orderDisabledMarketUnavailable: string;
723
+ orderDisabledNoMarket: string;
724
+ orderDisabledNoOutcome: string;
725
+ orderDisabledNoEvent: string;
726
+ insufficientBalance: string;
727
+ refreshQuote: string;
728
+ confirmOrder: string;
729
+ withdrawSubmitted: string;
730
+ withdrawProcessing: string;
731
+ estimatedCost: (value: string) => string;
732
+ partialFill: (filledSize: number, requestedSize: number) => string;
733
+ insufficientLiquidity: string;
734
+ noMarketSelected: string;
735
+ noOrderbooks: string;
736
+ quoteUnavailable: string;
737
+ selectedVenueUnavailable: string;
738
+ engineUnavailable: string;
739
+ insufficientInputAmount: string;
740
+ minOrderSizeViolated: string;
741
+ minimumOrderAmount: (amount: number) => string;
742
+ insufficientPosition: (totalShares: number) => string;
743
+ insufficientPositionGeneric: string;
744
+ insufficientSellDepth: string;
745
+ noBidsAboveMinPrice: string;
746
+ signInRequired: string;
747
+ kycRequired: string;
748
+ kycNotVerifiedTooltip: string;
749
+ kycVerifyModalTitle: string;
750
+ kycVerifyModalDescription: string;
751
+ kycStartVerification: string;
752
+ kycDoItLater: string;
753
+ kycSuccessTitle: string;
754
+ kycSuccessDescription: string;
755
+ kycSuccessDone: string;
756
+ outcome: (label: string) => string;
757
+ smartRouting: string;
758
+ orderSplitting: string;
759
+ splitOrderDescription: string;
760
+ viewAllRoutes: (count: number) => string;
761
+ hideRoutes: string;
762
+ venueUnavailableInRegion: string;
763
+ toWin: (tab: "buy" | "sell") => string;
764
+ buyingOutcome: (label: string) => string;
765
+ sellingOutcome: (label: string) => string;
766
+ findingBestRoute: string;
767
+ submittingOrderProgress: string;
768
+ orderSubmittedProgress: (orderId: string) => string;
769
+ executingOnVenue: (venueLabel: string) => string;
770
+ confirmTransactionInWallet: string;
771
+ executionConfirmed: string;
772
+ orderSuccessTitle: string;
773
+ orderSuccessDescription: string;
774
+ orderFailureTitle: string;
775
+ orderFailureDescription: (message: string) => string;
776
+ orderDone: string;
777
+ orderNewTrade: string;
778
+ orderShare: string;
779
+ orderRetry: string;
780
+ orderContinue: string;
781
+ orderDismiss: string;
782
+ orderRetryVenue: (venueLabel: string) => string;
783
+ orderPartialFillStatus: (venueLabel: string) => string;
784
+ orderVenueUnavailableStatus: (venueLabel: string) => string;
785
+ orderMarketResolvedStatus: (venueLabel: string) => string;
786
+ orderSummaryShares: string;
787
+ orderSummaryAvgPrice: string;
788
+ orderSummaryEstCost: string;
789
+ orderSummaryVenue: string;
790
+ orderComplete: string;
791
+ orderFilledAtPrice: (venueLabel: string, priceLabel: string) => string;
792
+ orderFilledAtPriceWithAmount: (venueLabel: string, priceLabel: string, amountLabel: string) => string;
793
+ orderPartiallyFilledAtPriceWithAmount: (venueLabel: string, priceLabel: string, amountLabel: string) => string;
794
+ orderSkip: string;
795
+ orderRetryRemaining: string;
796
+ resolvedEarningsTitle: string;
797
+ resolvedSharesLabel: string;
798
+ resolvedTotalPayoutLabel: string;
799
+ claimWinnings: string;
800
+ boughtOutcomeAtPrice: (label: string, priceLabel: string) => string;
801
+ soldOutcomeAtPrice: (label: string, priceLabel: string) => string;
802
+ potentialReturnBonus: (value: string) => string;
803
+ withSmartRouting: string;
804
+ buy: string;
805
+ sell: string;
806
+ amount: (side: "buy" | "sell") => string;
807
+ };
808
+ onboarding: {
809
+ modal: {
810
+ title: string;
811
+ stepHowItWorks: string;
812
+ stepProfileSetup: string;
813
+ stepConnectAccounts: string;
814
+ };
815
+ howItWorks: {
816
+ title: string;
817
+ continue: string;
818
+ features: Record<AggOnboardingFeatureKey, {
819
+ title: string;
820
+ description: string;
821
+ }>;
822
+ };
823
+ profileSetup: {
824
+ title: string;
825
+ uploadProfilePictureAria: string;
826
+ profilePreviewAlt: string;
827
+ usernameLabel: string;
828
+ usernamePlaceholder: string;
829
+ continue: string;
830
+ };
831
+ connectAccounts: {
832
+ title: string;
833
+ connect: string;
834
+ connectAccount: string;
835
+ continue: string;
836
+ onchainTitle: string;
837
+ onchainMobileTitle: (additionalVenueCount: number) => string;
838
+ onchainDescription: string;
839
+ onchainMobileDescription: string;
840
+ kalshiTitle: string;
841
+ kalshiMobileTitle: string;
842
+ kalshiDescription: string;
843
+ kalshiMobileDescription: string;
844
+ };
845
+ connectOnchainModal: {
846
+ ariaLabel: string;
847
+ title: string;
848
+ description: string;
849
+ supportedVenuesLabel: string;
850
+ connect: string;
851
+ cancel: string;
852
+ fallbackError: string;
853
+ };
854
+ connectKalshiModal: {
855
+ ariaLabel: string;
856
+ title: string;
857
+ description: string;
858
+ stepOne: {
859
+ label: string;
860
+ title: string;
861
+ instructions: {
862
+ signIn: string;
863
+ goToProfilePrefix: string;
864
+ profileText: string;
865
+ goToProfileSeparator: string;
866
+ profileUrl: string;
867
+ clickCreateKeyPrefix: string;
868
+ createKeyText: string;
869
+ clickCreateKeySuffix: string;
870
+ selectPermissionsPrefix: string;
871
+ readWriteText: string;
872
+ selectPermissionsSuffix: string;
873
+ createKey: string;
874
+ };
875
+ footerLineOne: string;
876
+ footerLineTwo: string;
877
+ };
878
+ stepTwo: {
879
+ label: string;
880
+ title: string;
881
+ description: string;
882
+ apiKeyIdLabel: string;
883
+ apiKeyIdPlaceholder: string;
884
+ privateKeyLabel: string;
885
+ privateKeyPlaceholder: string;
886
+ };
887
+ help: {
888
+ label: string;
889
+ docsLinkLabel: string;
890
+ tutorialLinkLabel: string;
891
+ };
892
+ actions: {
893
+ cancel: string;
894
+ verifyConnection: string;
895
+ };
896
+ fallbackError: string;
897
+ };
898
+ };
899
+ eventMarketPage: {
900
+ unavailableAria: string;
901
+ unavailableTitle: string;
902
+ unavailableDescription: string;
903
+ loadingSettlementQuestion: string;
904
+ loadingSettlementDifferencesTitle: string;
905
+ loadingSettlementPlaceholder: string;
906
+ tradingResolvedBadge: string;
907
+ tradingResolvedTitle: string;
908
+ tradingResolvedDescription: string;
909
+ tradingClosedBadge: string;
910
+ tradingClosedTitle: string;
911
+ tradingClosedDescription: string;
912
+ tradingPausedBadge: string;
913
+ tradingPausedTitle: string;
914
+ tradingPausedDescription: string;
915
+ tradingUnopenedBadge: string;
916
+ tradingUnopenedTitle: string;
917
+ tradingUnopenedDescription: string;
918
+ tradingUnavailableBadge: string;
919
+ tradingUnavailableTitle: string;
920
+ tradingUnavailableDescription: string;
921
+ resolvedAt: (dateLabel: string) => string;
922
+ closedAt: (dateLabel: string) => string;
923
+ opensAt: (dateLabel: string) => string;
924
+ winningOutcome: (label: string) => string;
925
+ resolvedOutcome: (label: string) => string;
926
+ marketDetailsAriaByDate: (dateLabel: string) => string;
927
+ marketDetailsAriaByQuestion: (question: string) => string;
928
+ };
929
+ header: {
930
+ bannerAria: string;
931
+ logoAria: string;
932
+ };
933
+ }
934
+ type DeepPartial<TValue> = {
935
+ [TKey in keyof TValue]?: TValue[TKey] extends (...args: infer TArgs) => infer TReturn ? (...args: TArgs) => TReturn : TValue[TKey] extends object ? DeepPartial<TValue[TKey]> : TValue[TKey];
936
+ };
937
+ type AggUiLabelsInput = DeepPartial<AggUiLabels>;
938
+ declare const resolveAggUiLabels: (locale: string) => AggUiLabels;
939
+
940
+ type ThemeMode = "light" | "dark";
941
+ type ChartTimeRange = "1H" | "6H" | "1D" | "1W" | "1M" | "ALL";
942
+ interface AggUiGeneralConfig {
943
+ /** Locale for number and date formatting */
944
+ locale: string;
945
+ /** Theme for the UI */
946
+ theme: ThemeMode;
947
+ /** Root class name for the UI */
948
+ rootClassName: string;
949
+ /** Labels for the UI */
950
+ labels: AggUiLabels;
951
+ }
952
+ type AggUiGeneralConfigInput = Partial<Omit<AggUiGeneralConfig, "labels">> & {
953
+ /** Labels overrides for the UI */
954
+ labels?: AggUiLabelsInput;
955
+ };
956
+ interface AggUiFeatureFlagsConfig {
957
+ /** Enable animations */
958
+ enableAnimations: boolean;
959
+ /** Enable live updates */
960
+ enableLiveUpdates: boolean;
961
+ /** Enable gradients */
962
+ enableGradients: boolean;
963
+ }
964
+ type AggUiFeatureFlagsConfigInput = Partial<AggUiFeatureFlagsConfig>;
965
+ interface AggUiMarketConfig {
966
+ /** Arbitrage threshold for the UI */
967
+ arbitrageThreshold: number;
968
+ }
969
+ type AggUiMarketConfigInput = Partial<AggUiMarketConfig>;
970
+ interface AggUiChartConfig {
971
+ /** Default chart time range */
972
+ defaultChartTimeRange: ChartTimeRange;
973
+ /** Currently selected chart time range (persisted to localStorage) */
974
+ selectedChartTimeRange: ChartTimeRange;
975
+ /** Update the selected chart time range */
976
+ setSelectedChartTimeRange: (range: ChartTimeRange) => void;
977
+ }
978
+ type AggUiChartConfigInput = Partial<Pick<AggUiChartConfig, "defaultChartTimeRange">>;
979
+ interface AggUiFormattingConfig {
980
+ /** Format number */
981
+ formatNumber: (value: number) => string;
982
+ /** Format percent */
983
+ formatPercent: (value: number) => string;
984
+ /** Format currency */
985
+ formatCurrency: (value: number) => string;
986
+ /** Format compact currency */
987
+ formatCompactCurrency: (value: number) => string;
988
+ /** Format date */
989
+ formatDate: (value: Date) => string;
990
+ }
991
+ type AggUiFormattingConfigInput = Partial<AggUiFormattingConfig>;
992
+
993
+ interface AggUiSearchConfig {
994
+ /** Search value */
995
+ value: string;
996
+ /** Optional search value change handler invoked as a side-effect (e.g. analytics, URL sync). */
997
+ onChange?: (value: string) => void;
998
+ /** Optional search result select handler invoked as a side-effect (e.g. host-app navigation). */
999
+ onSelect?: (value: VenueEventWithMarkets) => void;
1000
+ /** Optional handler invoked when the full search results view opens. */
1001
+ openResults?: () => void;
1002
+ /** Optional handler invoked when the full search results view closes. */
1003
+ closeResults?: () => void;
1004
+ /** Search result */
1005
+ result: VenueEventWithMarkets | null;
1006
+ /** Whether the full search results view is active */
1007
+ isShowingAllResults: boolean;
1008
+ }
1009
+ type AggUiSearchConfigInput = Partial<AggUiSearchConfig>;
1010
+ interface AggUiConfig {
1011
+ /** Enable AGG development logs */
1012
+ enableLogs: boolean;
1013
+ /** Enable AGG websocket pipeline logs */
1014
+ enableWebsocketsLogs: boolean;
1015
+ /** General UI settings */
1016
+ general: AggUiGeneralConfig;
1017
+ /** UI feature flags */
1018
+ features: AggUiFeatureFlagsConfig;
1019
+ /** Market configuration */
1020
+ market: AggUiMarketConfig;
1021
+ /** Chart configuration */
1022
+ chart: AggUiChartConfig;
1023
+ /** Formatting configuration */
1024
+ formatting: AggUiFormattingConfig;
1025
+ /** Search configuration */
1026
+ search: AggUiSearchConfig;
1027
+ /**
1028
+ * Optional wallet action implementations.
1029
+ * When walletActions.sendToken is provided, DepositModal uses it for the
1030
+ * "Use your wallet" flow instead of requiring an onConfirmWalletDeposit prop.
1031
+ */
1032
+ walletActions?: WalletActions;
1033
+ /**
1034
+ * Optional Solana RPC URL used by the deposit wallet hooks
1035
+ * (@agg-build/hooks/deposit) for reading token balances, building
1036
+ * transactions, and polling signature statuses. Falls back to a permissive
1037
+ * public endpoint when unset.
1038
+ */
1039
+ solanaRpcUrl?: string;
1040
+ }
1041
+ interface AggUiConfigInput {
1042
+ /** Enable AGG development logs */
1043
+ enableLogs?: boolean;
1044
+ /** Enable AGG websocket pipeline logs */
1045
+ enableWebsocketsLogs?: boolean;
1046
+ /** General UI overrides */
1047
+ general?: AggUiGeneralConfigInput;
1048
+ /** Feature flag overrides */
1049
+ features?: AggUiFeatureFlagsConfigInput;
1050
+ /** Market config overrides */
1051
+ market?: AggUiMarketConfigInput;
1052
+ /** Chart config overrides */
1053
+ chart?: AggUiChartConfigInput;
1054
+ /** Formatting overrides */
1055
+ formatting?: AggUiFormattingConfigInput;
1056
+ /** Search config overrides */
1057
+ search?: AggUiSearchConfigInput;
1058
+ /**
1059
+ * Optional wallet action implementations for deposit flows.
1060
+ * Provide this once at the provider level for plug-and-play deposit UX.
1061
+ */
1062
+ walletActions?: WalletActions;
1063
+ /**
1064
+ * Optional Solana RPC URL forwarded to the deposit wallet hooks.
1065
+ */
1066
+ solanaRpcUrl?: string;
1067
+ }
1068
+ interface WalletActionSendTokenParams {
1069
+ /** Target chain ID (numeric, matches useDepositAddresses supportedChains). */
1070
+ chainId: number;
1071
+ /** Token metadata from the deposit addresses response. */
1072
+ token: {
1073
+ symbol: string;
1074
+ address?: string;
1075
+ decimals: number;
1076
+ };
1077
+ /** Destination address from useDepositAddresses (EVM 0x… or SVM base58). */
1078
+ to: string;
1079
+ /** Human-readable amount string, e.g. "10.5". Convert to smallest units internally. */
1080
+ amount: string;
1081
+ }
1082
+ interface WalletActions {
1083
+ /**
1084
+ * Broadcast a token transfer to the deposit address.
1085
+ * Must return { txId } immediately after broadcast — do NOT wait for finality.
1086
+ * Throws on user rejection or insufficient funds; the caller keeps the user on the form.
1087
+ */
1088
+ sendToken: (params: WalletActionSendTokenParams) => Promise<{
1089
+ txId: string;
1090
+ }>;
1091
+ }
1092
+ type SdkUiConfig = AggUiConfig;
1093
+ type SdkUiConfigInput = AggUiConfigInput;
1094
+ interface SdkUiProviderProps {
1095
+ config?: AggUiConfigInput;
1096
+ children: React.ReactNode;
1097
+ }
1098
+
1099
+ interface AggProviderProps {
1100
+ client: AggClient;
1101
+ config?: AggUiConfigInput;
1102
+ children: ReactNode;
1103
+ }
1104
+ interface AggAuthSignInOptions {
1105
+ signMessage: (message: string) => Promise<string>;
1106
+ address: string;
1107
+ chainId?: number | string;
1108
+ /** Wallet chain — "ethereum" (default) or "solana". */
1109
+ chain?: "ethereum" | "solana";
1110
+ statement?: string;
1111
+ /**
1112
+ * Cloudflare Turnstile token. Injected automatically by the auth package when
1113
+ * a prior authStart returned `challenge_required`. Partners using the SDK
1114
+ * directly can pass this to retry the flow after rendering a Turnstile widget.
1115
+ */
1116
+ turnstileToken?: string;
1117
+ }
1118
+ interface AggAuthContextValue {
1119
+ isAuthenticated: boolean;
1120
+ /**
1121
+ * True when the current user has a linked web3 auth provider
1122
+ * (`wallet` or `solana_wallet`). Defaults to true until accounts are hydrated.
1123
+ */
1124
+ isWeb3User: boolean;
1125
+ user: UserProfile | undefined;
1126
+ isLoading: boolean;
1127
+ error: Error | null;
1128
+ signIn: (options: AggAuthSignInOptions) => Promise<void>;
1129
+ startAuth: (options: AggAuthStartBody) => Promise<AggAuthStartResult>;
1130
+ setSession: (session: AggClientSessionInput) => Promise<UserProfile | undefined>;
1131
+ handleAuthCallback: (callbackUrl?: string | URL) => Promise<UserProfile | null>;
1132
+ signOut: () => Promise<void>;
1133
+ clearError: () => void;
1134
+ }
1135
+ interface AggBalanceContextValue {
1136
+ balanceBreakdown: AggBalanceBreakdownItem[];
1137
+ /** Raw response from GET /execution/balances for direct consumer use. */
1138
+ managedBalances: UnifiedBalanceResponse;
1139
+ totalBalance: number;
1140
+ positionsBalanceTotal: number;
1141
+ connectedVenues: Venue[];
1142
+ isLoading: boolean;
1143
+ error: Error | null;
1144
+ refetch: () => void;
1145
+ refetchConnectionStatus: () => void;
1146
+ }
1147
+ interface AggBalanceBreakdownItem {
1148
+ key: string;
1149
+ label: string;
1150
+ balance: number;
1151
+ accountCount: number;
1152
+ /**
1153
+ * Venues currently connected for the user. This is optional so consumers can
1154
+ * safely omit logos when unavailable.
1155
+ */
1156
+ venues?: Venue[];
1157
+ }
1158
+
1159
+ declare const AggProvider: ({ client, config, children }: AggProviderProps) => JSX.Element;
1160
+
1161
+ interface AggBalanceProviderProps {
1162
+ children: ReactNode;
1163
+ }
1164
+ declare function AggBalanceProvider({ children }: AggBalanceProviderProps): JSX.Element;
1165
+
1166
+ type EventListStateSnapshot = {
1167
+ /** Category tab selected in HomePage */
1168
+ categoryTab: string | null;
1169
+ /** Venue/provider tab selected in EventList */
1170
+ venueTab: string | null;
1171
+ /** Scroll offset (pixels from top of document) */
1172
+ scrollY: number;
1173
+ /** Number of infinite query pages that were loaded */
1174
+ loadedPageCount: number;
1175
+ /** Timestamp when state was captured */
1176
+ capturedAt: number;
1177
+ };
1178
+ type EventListStateContextValue = {
1179
+ /** Store a snapshot of the current list state (called before navigating away) */
1180
+ capture: (state: Omit<EventListStateSnapshot, "capturedAt">) => void;
1181
+ /** Return the stored snapshot and clear it (one-time read). Returns null if no snapshot or stale. */
1182
+ consume: () => EventListStateSnapshot | null;
1183
+ };
1184
+ declare function EventListStateProvider({ children }: {
1185
+ children: ReactNode;
1186
+ }): JSX.Element;
1187
+ declare function useEventListState(): EventListStateContextValue;
1188
+
1189
+ declare const AggUiProvider: ({ config, children }: SdkUiProviderProps) => JSX.Element;
1190
+
1191
+ declare const DEFAULT_AGG_ROOT_CLASS_NAME = "agg-root";
1192
+ declare const CHART_TIME_RANGES: ChartTimeRange[];
1193
+
1194
+ declare const useAggClient: () => AggClient;
1195
+ declare const useAggUiConfig: () => AggUiConfig;
1196
+ declare const useAggLabels: () => AggUiLabels;
1197
+ declare const useAggAuthContext: () => AggAuthContextValue;
1198
+ declare const useAggAuthState: () => AggAuthContextValue;
1199
+ declare const useAggBalanceContext: () => AggBalanceContextValue;
1200
+ declare const useAggBalanceState: () => AggBalanceContextValue;
1201
+ declare const useAggBalance: () => AggBalanceContextValue;
1202
+ declare const useSdkUiConfig: () => AggUiConfig;
1203
+ declare const useSdkLabels: () => AggUiLabels;
1204
+ declare const useLabels: () => AggUiLabels;
1205
+
1206
+ declare const defaultAggUiConfig: AggUiConfig;
1207
+
1208
+ type TradingStateKind = "open" | "closed" | "resolved" | "paused" | "unopened" | "unavailable";
1209
+ type TradingStateBase = {
1210
+ kind: TradingStateKind;
1211
+ status: MarketStatus | null;
1212
+ isOpen: boolean;
1213
+ isTradingDisabled: boolean;
1214
+ startsAt: string | null;
1215
+ endsAt: string | null;
1216
+ resolvesAt: string | null;
1217
+ winningOutcome: VenueMarketOutcome | null;
1218
+ };
1219
+ type MarketTradingState = TradingStateBase & {
1220
+ market: VenueMarket | null;
1221
+ };
1222
+ type EventTradingState = TradingStateBase & {
1223
+ displayMarkets: VenueMarket[];
1224
+ tradableMarkets: VenueMarket[];
1225
+ marketStates: Array<{
1226
+ market: VenueMarket;
1227
+ state: MarketTradingState;
1228
+ }>;
1229
+ primaryMarket: VenueMarket | null;
1230
+ };
1231
+ type OrderEligibilityReason = "eligible" | "no_event_selected" | "no_market_selected" | "no_outcome_selected" | "event_resolved" | "event_closed" | "event_paused" | "event_unopened" | "event_unavailable" | "market_resolved" | "market_closed" | "market_paused" | "market_unopened" | "market_unavailable";
1232
+ type OrderEligibility = {
1233
+ canPlaceOrder: boolean;
1234
+ reason: OrderEligibilityReason;
1235
+ };
1236
+ declare const resolveTradingStateKind: (status?: MarketStatus | null) => Exclude<TradingStateKind, "unavailable">;
1237
+ declare const resolveMarketWinningOutcome: (market?: VenueMarket | null) => VenueMarketOutcome | null;
1238
+ declare const resolveMarketTradingState: (market?: VenueMarket | null) => MarketTradingState;
1239
+ declare const resolveEventTradingState: (event?: VenueEventWithMarkets | null) => EventTradingState;
1240
+ declare const resolveOrderEligibility: (params: {
1241
+ event: VenueEventWithMarkets | null;
1242
+ market: VenueMarket | null;
1243
+ outcome: VenueMarketOutcome | null;
1244
+ eventTradingState?: EventTradingState;
1245
+ }) => OrderEligibility;
1246
+ declare function resolveDefaultMarket(event: VenueEventWithMarkets | null): VenueMarket | null;
1247
+
1248
+ interface TradingState {
1249
+ event: VenueEventWithMarkets | null;
1250
+ market: VenueMarket | null;
1251
+ outcome: VenueMarketOutcome | null;
1252
+ }
1253
+ type TradingAction = {
1254
+ type: "INITIALIZE_EVENT";
1255
+ event: VenueEventWithMarkets | null;
1256
+ } | {
1257
+ type: "SYNC_EVENT";
1258
+ event: VenueEventWithMarkets;
1259
+ } | {
1260
+ type: "SELECT_MARKET";
1261
+ marketId: string;
1262
+ market?: VenueMarket;
1263
+ } | {
1264
+ type: "SELECT_OUTCOME";
1265
+ outcomeId: string;
1266
+ } | {
1267
+ type: "SELECT_MARKET_AND_OUTCOME";
1268
+ marketId: string;
1269
+ outcomeId: string;
1270
+ };
1271
+ declare function tradingReducer(state: TradingState, action: TradingAction): TradingState;
1272
+ interface EventTradingContextValue {
1273
+ selectedEvent: VenueEventWithMarkets | null;
1274
+ selectedMarket: VenueMarket | null;
1275
+ selectedOutcome: VenueMarketOutcome | null;
1276
+ selectedEventId: string | null;
1277
+ selectedMarketId: string | null;
1278
+ selectedOutcomeId: string | null;
1279
+ selectedVenue: string | null;
1280
+ initializeFromEvent: (event: VenueEventWithMarkets | null) => void;
1281
+ syncEvent: (event: VenueEventWithMarkets) => void;
1282
+ selectMarket: (marketId: string, market?: VenueMarket) => void;
1283
+ selectOutcome: (outcomeId: string) => void;
1284
+ selectMarketAndOutcome: (marketId: string, outcomeId: string) => void;
1285
+ }
1286
+ declare const useEventTradingContext: () => EventTradingContextValue | undefined;
1287
+
1288
+ type BalanceRefetchType = "active" | "inactive" | "all" | "none";
1289
+ interface InvalidateBalanceQueriesOptions {
1290
+ refetchType?: BalanceRefetchType;
1291
+ }
1292
+ /**
1293
+ * Invalidate every balance cache surface used across hooks and provider contexts.
1294
+ * Use `refetchType: "active"` by default to avoid broad refetch storms.
1295
+ */
1296
+ declare const invalidateBalanceQueries: (queryClient: QueryClient, options?: InvalidateBalanceQueriesOptions) => void;
1297
+ /**
1298
+ * Invalidate every cached position query so the UI re-reads share counts after
1299
+ * a fill. Filled and partially-filled orders mutate the user's outcome-token
1300
+ * holdings, so positions need to be refetched alongside balances.
1301
+ */
1302
+ declare const invalidatePositionQueries: (queryClient: QueryClient, options?: InvalidateBalanceQueriesOptions) => void;
1303
+
1304
+ declare function useRampQuotes(): _tanstack_react_query.UseMutationResult<RampQuote[], Error, RampQuoteRequest, unknown>;
1305
+
1306
+ declare function useRampSession(): _tanstack_react_query.UseMutationResult<RampWidgetSession, Error, RampSessionRequest, unknown>;
1307
+
1308
+ declare function useAggWebSocket(): AggWebSocket | null;
1309
+ declare function useOnOrderSubmitted(callback: ((msg: WsOrderSubmitted) => void) | null): void;
1310
+ declare function useOnBalanceUpdate(callback: ((msg: WsBalanceUpdate) => void) | null): void;
1311
+
1312
+ declare const executionKeys: {
1313
+ all: () => readonly ["execution"];
1314
+ balances: () => readonly ["execution", "balances"];
1315
+ positions: (cursor?: string | null, limit?: number | null, status?: "active" | "closed" | null) => readonly ["execution", "positions", string | null, number | null, "closed" | "active" | null];
1316
+ positionsPrefix: () => readonly ["execution", "positions"];
1317
+ claimableClosedPositionsCount: () => readonly ["execution", "positions", "claimable-count"];
1318
+ orders: (status?: string | null, cursor?: string | null, limit?: number | null) => readonly ["execution", "orders", string | null, string | null, number | null];
1319
+ ordersPrefix: () => readonly ["execution", "orders"];
1320
+ depositAddresses: () => readonly ["execution", "deposit-addresses"];
1321
+ };
1322
+
1323
+ interface UseQuoteManagedOptions {
1324
+ onSuccess?: (data: QuoteManagedResponse) => void;
1325
+ onError?: (error: Error) => void;
1326
+ }
1327
+ /**
1328
+ * Mutation hook for requesting a managed execution quote.
1329
+ * Returns a quote with execution steps, splits, and a 2-minute TTL.
1330
+ */
1331
+ declare function useQuoteManaged(options?: UseQuoteManagedOptions): _tanstack_react_query.UseMutationResult<QuoteManagedResponse, Error, QuoteManagedParams, unknown>;
1332
+
1333
+ interface UseExecuteManagedOptions {
1334
+ onSuccess?: (data: ExecuteManagedResponse) => void;
1335
+ onError?: (error: Error) => void;
1336
+ }
1337
+ /**
1338
+ * Mutation hook for executing a previously quoted managed trade.
1339
+ * On success, invalidates orders, positions, and balances queries.
1340
+ */
1341
+ declare function useExecuteManaged(options?: UseExecuteManagedOptions): _tanstack_react_query.UseMutationResult<ExecuteManagedResponse, Error, ExecuteManagedParams, unknown>;
1342
+
1343
+ interface UseWithdrawManagedOptions {
1344
+ onSuccess?: (data: WithdrawManagedResponse) => void;
1345
+ onError?: (error: Error) => void;
1346
+ }
1347
+ /**
1348
+ * Mutation hook for withdrawing funds from managed wallets.
1349
+ * On success, invalidates balances queries.
1350
+ */
1351
+ declare function useWithdrawManaged(options?: UseWithdrawManagedOptions): _tanstack_react_query.UseMutationResult<WithdrawManagedResponse, Error, WithdrawManagedParams, unknown>;
1352
+
1353
+ interface UseManagedBalancesOptions {
1354
+ enabled?: boolean;
1355
+ }
1356
+ /**
1357
+ * Query hook for fetching unified managed wallet balances across all chains.
1358
+ */
1359
+ declare function useManagedBalances(options?: UseManagedBalancesOptions): {
1360
+ balances: _agg_build_sdk.UnifiedBalanceResponse | undefined;
1361
+ data: _agg_build_sdk.UnifiedBalanceResponse;
1362
+ error: Error;
1363
+ isError: true;
1364
+ isPending: false;
1365
+ isLoading: false;
1366
+ isLoadingError: false;
1367
+ isRefetchError: true;
1368
+ isSuccess: false;
1369
+ isPlaceholderData: false;
1370
+ status: "error";
1371
+ dataUpdatedAt: number;
1372
+ errorUpdatedAt: number;
1373
+ failureCount: number;
1374
+ failureReason: Error | null;
1375
+ errorUpdateCount: number;
1376
+ isFetched: boolean;
1377
+ isFetchedAfterMount: boolean;
1378
+ isFetching: boolean;
1379
+ isInitialLoading: boolean;
1380
+ isPaused: boolean;
1381
+ isRefetching: boolean;
1382
+ isStale: boolean;
1383
+ isEnabled: boolean;
1384
+ refetch: (options?: _tanstack_react_query.RefetchOptions) => Promise<_tanstack_react_query.QueryObserverResult<_agg_build_sdk.UnifiedBalanceResponse, Error>>;
1385
+ fetchStatus: _tanstack_react_query.FetchStatus;
1386
+ promise: Promise<_agg_build_sdk.UnifiedBalanceResponse>;
1387
+ } | {
1388
+ balances: _agg_build_sdk.UnifiedBalanceResponse | undefined;
1389
+ data: _agg_build_sdk.UnifiedBalanceResponse;
1390
+ error: null;
1391
+ isError: false;
1392
+ isPending: false;
1393
+ isLoading: false;
1394
+ isLoadingError: false;
1395
+ isRefetchError: false;
1396
+ isSuccess: true;
1397
+ isPlaceholderData: false;
1398
+ status: "success";
1399
+ dataUpdatedAt: number;
1400
+ errorUpdatedAt: number;
1401
+ failureCount: number;
1402
+ failureReason: Error | null;
1403
+ errorUpdateCount: number;
1404
+ isFetched: boolean;
1405
+ isFetchedAfterMount: boolean;
1406
+ isFetching: boolean;
1407
+ isInitialLoading: boolean;
1408
+ isPaused: boolean;
1409
+ isRefetching: boolean;
1410
+ isStale: boolean;
1411
+ isEnabled: boolean;
1412
+ refetch: (options?: _tanstack_react_query.RefetchOptions) => Promise<_tanstack_react_query.QueryObserverResult<_agg_build_sdk.UnifiedBalanceResponse, Error>>;
1413
+ fetchStatus: _tanstack_react_query.FetchStatus;
1414
+ promise: Promise<_agg_build_sdk.UnifiedBalanceResponse>;
1415
+ } | {
1416
+ balances: _agg_build_sdk.UnifiedBalanceResponse | undefined;
1417
+ data: undefined;
1418
+ error: Error;
1419
+ isError: true;
1420
+ isPending: false;
1421
+ isLoading: false;
1422
+ isLoadingError: true;
1423
+ isRefetchError: false;
1424
+ isSuccess: false;
1425
+ isPlaceholderData: false;
1426
+ status: "error";
1427
+ dataUpdatedAt: number;
1428
+ errorUpdatedAt: number;
1429
+ failureCount: number;
1430
+ failureReason: Error | null;
1431
+ errorUpdateCount: number;
1432
+ isFetched: boolean;
1433
+ isFetchedAfterMount: boolean;
1434
+ isFetching: boolean;
1435
+ isInitialLoading: boolean;
1436
+ isPaused: boolean;
1437
+ isRefetching: boolean;
1438
+ isStale: boolean;
1439
+ isEnabled: boolean;
1440
+ refetch: (options?: _tanstack_react_query.RefetchOptions) => Promise<_tanstack_react_query.QueryObserverResult<_agg_build_sdk.UnifiedBalanceResponse, Error>>;
1441
+ fetchStatus: _tanstack_react_query.FetchStatus;
1442
+ promise: Promise<_agg_build_sdk.UnifiedBalanceResponse>;
1443
+ } | {
1444
+ balances: _agg_build_sdk.UnifiedBalanceResponse | undefined;
1445
+ data: undefined;
1446
+ error: null;
1447
+ isError: false;
1448
+ isPending: true;
1449
+ isLoading: true;
1450
+ isLoadingError: false;
1451
+ isRefetchError: false;
1452
+ isSuccess: false;
1453
+ isPlaceholderData: false;
1454
+ status: "pending";
1455
+ dataUpdatedAt: number;
1456
+ errorUpdatedAt: number;
1457
+ failureCount: number;
1458
+ failureReason: Error | null;
1459
+ errorUpdateCount: number;
1460
+ isFetched: boolean;
1461
+ isFetchedAfterMount: boolean;
1462
+ isFetching: boolean;
1463
+ isInitialLoading: boolean;
1464
+ isPaused: boolean;
1465
+ isRefetching: boolean;
1466
+ isStale: boolean;
1467
+ isEnabled: boolean;
1468
+ refetch: (options?: _tanstack_react_query.RefetchOptions) => Promise<_tanstack_react_query.QueryObserverResult<_agg_build_sdk.UnifiedBalanceResponse, Error>>;
1469
+ fetchStatus: _tanstack_react_query.FetchStatus;
1470
+ promise: Promise<_agg_build_sdk.UnifiedBalanceResponse>;
1471
+ } | {
1472
+ balances: _agg_build_sdk.UnifiedBalanceResponse | undefined;
1473
+ data: undefined;
1474
+ error: null;
1475
+ isError: false;
1476
+ isPending: true;
1477
+ isLoadingError: false;
1478
+ isRefetchError: false;
1479
+ isSuccess: false;
1480
+ isPlaceholderData: false;
1481
+ status: "pending";
1482
+ dataUpdatedAt: number;
1483
+ errorUpdatedAt: number;
1484
+ failureCount: number;
1485
+ failureReason: Error | null;
1486
+ errorUpdateCount: number;
1487
+ isFetched: boolean;
1488
+ isFetchedAfterMount: boolean;
1489
+ isFetching: boolean;
1490
+ isLoading: boolean;
1491
+ isInitialLoading: boolean;
1492
+ isPaused: boolean;
1493
+ isRefetching: boolean;
1494
+ isStale: boolean;
1495
+ isEnabled: boolean;
1496
+ refetch: (options?: _tanstack_react_query.RefetchOptions) => Promise<_tanstack_react_query.QueryObserverResult<_agg_build_sdk.UnifiedBalanceResponse, Error>>;
1497
+ fetchStatus: _tanstack_react_query.FetchStatus;
1498
+ promise: Promise<_agg_build_sdk.UnifiedBalanceResponse>;
1499
+ } | {
1500
+ balances: _agg_build_sdk.UnifiedBalanceResponse | undefined;
1501
+ data: _agg_build_sdk.UnifiedBalanceResponse;
1502
+ isError: false;
1503
+ error: null;
1504
+ isPending: false;
1505
+ isLoading: false;
1506
+ isLoadingError: false;
1507
+ isRefetchError: false;
1508
+ isSuccess: true;
1509
+ isPlaceholderData: true;
1510
+ status: "success";
1511
+ dataUpdatedAt: number;
1512
+ errorUpdatedAt: number;
1513
+ failureCount: number;
1514
+ failureReason: Error | null;
1515
+ errorUpdateCount: number;
1516
+ isFetched: boolean;
1517
+ isFetchedAfterMount: boolean;
1518
+ isFetching: boolean;
1519
+ isInitialLoading: boolean;
1520
+ isPaused: boolean;
1521
+ isRefetching: boolean;
1522
+ isStale: boolean;
1523
+ isEnabled: boolean;
1524
+ refetch: (options?: _tanstack_react_query.RefetchOptions) => Promise<_tanstack_react_query.QueryObserverResult<_agg_build_sdk.UnifiedBalanceResponse, Error>>;
1525
+ fetchStatus: _tanstack_react_query.FetchStatus;
1526
+ promise: Promise<_agg_build_sdk.UnifiedBalanceResponse>;
1527
+ };
1528
+
1529
+ interface UsePositionsOptions extends GetPositionsParams {
1530
+ enabled?: boolean;
1531
+ }
1532
+ /**
1533
+ * Query hook for fetching user positions grouped by matched market.
1534
+ */
1535
+ declare function usePositions(options?: UsePositionsOptions): {
1536
+ positions: _agg_build_sdk.PositionGroup[] | undefined;
1537
+ nextCursor: string | null | undefined;
1538
+ hasMore: boolean;
1539
+ data: _agg_build_sdk.PaginatedResponse<_agg_build_sdk.PositionGroup>;
1540
+ error: Error;
1541
+ isError: true;
1542
+ isPending: false;
1543
+ isLoading: false;
1544
+ isLoadingError: false;
1545
+ isRefetchError: true;
1546
+ isSuccess: false;
1547
+ isPlaceholderData: false;
1548
+ status: "error";
1549
+ dataUpdatedAt: number;
1550
+ errorUpdatedAt: number;
1551
+ failureCount: number;
1552
+ failureReason: Error | null;
1553
+ errorUpdateCount: number;
1554
+ isFetched: boolean;
1555
+ isFetchedAfterMount: boolean;
1556
+ isFetching: boolean;
1557
+ isInitialLoading: boolean;
1558
+ isPaused: boolean;
1559
+ isRefetching: boolean;
1560
+ isStale: boolean;
1561
+ isEnabled: boolean;
1562
+ refetch: (options?: _tanstack_react_query.RefetchOptions) => Promise<_tanstack_react_query.QueryObserverResult<_agg_build_sdk.PaginatedResponse<_agg_build_sdk.PositionGroup>, Error>>;
1563
+ fetchStatus: _tanstack_react_query.FetchStatus;
1564
+ promise: Promise<_agg_build_sdk.PaginatedResponse<_agg_build_sdk.PositionGroup>>;
1565
+ } | {
1566
+ positions: _agg_build_sdk.PositionGroup[] | undefined;
1567
+ nextCursor: string | null | undefined;
1568
+ hasMore: boolean;
1569
+ data: _agg_build_sdk.PaginatedResponse<_agg_build_sdk.PositionGroup>;
1570
+ error: null;
1571
+ isError: false;
1572
+ isPending: false;
1573
+ isLoading: false;
1574
+ isLoadingError: false;
1575
+ isRefetchError: false;
1576
+ isSuccess: true;
1577
+ isPlaceholderData: false;
1578
+ status: "success";
1579
+ dataUpdatedAt: number;
1580
+ errorUpdatedAt: number;
1581
+ failureCount: number;
1582
+ failureReason: Error | null;
1583
+ errorUpdateCount: number;
1584
+ isFetched: boolean;
1585
+ isFetchedAfterMount: boolean;
1586
+ isFetching: boolean;
1587
+ isInitialLoading: boolean;
1588
+ isPaused: boolean;
1589
+ isRefetching: boolean;
1590
+ isStale: boolean;
1591
+ isEnabled: boolean;
1592
+ refetch: (options?: _tanstack_react_query.RefetchOptions) => Promise<_tanstack_react_query.QueryObserverResult<_agg_build_sdk.PaginatedResponse<_agg_build_sdk.PositionGroup>, Error>>;
1593
+ fetchStatus: _tanstack_react_query.FetchStatus;
1594
+ promise: Promise<_agg_build_sdk.PaginatedResponse<_agg_build_sdk.PositionGroup>>;
1595
+ } | {
1596
+ positions: _agg_build_sdk.PositionGroup[] | undefined;
1597
+ nextCursor: string | null | undefined;
1598
+ hasMore: boolean;
1599
+ data: undefined;
1600
+ error: Error;
1601
+ isError: true;
1602
+ isPending: false;
1603
+ isLoading: false;
1604
+ isLoadingError: true;
1605
+ isRefetchError: false;
1606
+ isSuccess: false;
1607
+ isPlaceholderData: false;
1608
+ status: "error";
1609
+ dataUpdatedAt: number;
1610
+ errorUpdatedAt: number;
1611
+ failureCount: number;
1612
+ failureReason: Error | null;
1613
+ errorUpdateCount: number;
1614
+ isFetched: boolean;
1615
+ isFetchedAfterMount: boolean;
1616
+ isFetching: boolean;
1617
+ isInitialLoading: boolean;
1618
+ isPaused: boolean;
1619
+ isRefetching: boolean;
1620
+ isStale: boolean;
1621
+ isEnabled: boolean;
1622
+ refetch: (options?: _tanstack_react_query.RefetchOptions) => Promise<_tanstack_react_query.QueryObserverResult<_agg_build_sdk.PaginatedResponse<_agg_build_sdk.PositionGroup>, Error>>;
1623
+ fetchStatus: _tanstack_react_query.FetchStatus;
1624
+ promise: Promise<_agg_build_sdk.PaginatedResponse<_agg_build_sdk.PositionGroup>>;
1625
+ } | {
1626
+ positions: _agg_build_sdk.PositionGroup[] | undefined;
1627
+ nextCursor: string | null | undefined;
1628
+ hasMore: boolean;
1629
+ data: undefined;
1630
+ error: null;
1631
+ isError: false;
1632
+ isPending: true;
1633
+ isLoading: true;
1634
+ isLoadingError: false;
1635
+ isRefetchError: false;
1636
+ isSuccess: false;
1637
+ isPlaceholderData: false;
1638
+ status: "pending";
1639
+ dataUpdatedAt: number;
1640
+ errorUpdatedAt: number;
1641
+ failureCount: number;
1642
+ failureReason: Error | null;
1643
+ errorUpdateCount: number;
1644
+ isFetched: boolean;
1645
+ isFetchedAfterMount: boolean;
1646
+ isFetching: boolean;
1647
+ isInitialLoading: boolean;
1648
+ isPaused: boolean;
1649
+ isRefetching: boolean;
1650
+ isStale: boolean;
1651
+ isEnabled: boolean;
1652
+ refetch: (options?: _tanstack_react_query.RefetchOptions) => Promise<_tanstack_react_query.QueryObserverResult<_agg_build_sdk.PaginatedResponse<_agg_build_sdk.PositionGroup>, Error>>;
1653
+ fetchStatus: _tanstack_react_query.FetchStatus;
1654
+ promise: Promise<_agg_build_sdk.PaginatedResponse<_agg_build_sdk.PositionGroup>>;
1655
+ } | {
1656
+ positions: _agg_build_sdk.PositionGroup[] | undefined;
1657
+ nextCursor: string | null | undefined;
1658
+ hasMore: boolean;
1659
+ data: undefined;
1660
+ error: null;
1661
+ isError: false;
1662
+ isPending: true;
1663
+ isLoadingError: false;
1664
+ isRefetchError: false;
1665
+ isSuccess: false;
1666
+ isPlaceholderData: false;
1667
+ status: "pending";
1668
+ dataUpdatedAt: number;
1669
+ errorUpdatedAt: number;
1670
+ failureCount: number;
1671
+ failureReason: Error | null;
1672
+ errorUpdateCount: number;
1673
+ isFetched: boolean;
1674
+ isFetchedAfterMount: boolean;
1675
+ isFetching: boolean;
1676
+ isLoading: boolean;
1677
+ isInitialLoading: boolean;
1678
+ isPaused: boolean;
1679
+ isRefetching: boolean;
1680
+ isStale: boolean;
1681
+ isEnabled: boolean;
1682
+ refetch: (options?: _tanstack_react_query.RefetchOptions) => Promise<_tanstack_react_query.QueryObserverResult<_agg_build_sdk.PaginatedResponse<_agg_build_sdk.PositionGroup>, Error>>;
1683
+ fetchStatus: _tanstack_react_query.FetchStatus;
1684
+ promise: Promise<_agg_build_sdk.PaginatedResponse<_agg_build_sdk.PositionGroup>>;
1685
+ } | {
1686
+ positions: _agg_build_sdk.PositionGroup[] | undefined;
1687
+ nextCursor: string | null | undefined;
1688
+ hasMore: boolean;
1689
+ data: _agg_build_sdk.PaginatedResponse<_agg_build_sdk.PositionGroup>;
1690
+ isError: false;
1691
+ error: null;
1692
+ isPending: false;
1693
+ isLoading: false;
1694
+ isLoadingError: false;
1695
+ isRefetchError: false;
1696
+ isSuccess: true;
1697
+ isPlaceholderData: true;
1698
+ status: "success";
1699
+ dataUpdatedAt: number;
1700
+ errorUpdatedAt: number;
1701
+ failureCount: number;
1702
+ failureReason: Error | null;
1703
+ errorUpdateCount: number;
1704
+ isFetched: boolean;
1705
+ isFetchedAfterMount: boolean;
1706
+ isFetching: boolean;
1707
+ isInitialLoading: boolean;
1708
+ isPaused: boolean;
1709
+ isRefetching: boolean;
1710
+ isStale: boolean;
1711
+ isEnabled: boolean;
1712
+ refetch: (options?: _tanstack_react_query.RefetchOptions) => Promise<_tanstack_react_query.QueryObserverResult<_agg_build_sdk.PaginatedResponse<_agg_build_sdk.PositionGroup>, Error>>;
1713
+ fetchStatus: _tanstack_react_query.FetchStatus;
1714
+ promise: Promise<_agg_build_sdk.PaginatedResponse<_agg_build_sdk.PositionGroup>>;
1715
+ };
1716
+
1717
+ type ExecutionProgressPhase = "idle" | "pending" | "order_submitted" | "balance_updated";
1718
+ interface DagStepProgress {
1719
+ dagRunId: string;
1720
+ totalSteps: number;
1721
+ currentSequence: number;
1722
+ currentStepType: string | null;
1723
+ completedSequences: number[];
1724
+ /** Maps sequence number → stepType string for all steps seen so far. */
1725
+ stepTypes: Record<number, string>;
1726
+ status: "running" | "completed" | "failed";
1727
+ errorReason: string | null;
1728
+ }
1729
+ interface ExecutionTerminalOrderEvent {
1730
+ orderId: string;
1731
+ venue: string;
1732
+ event: "filled" | "partial_fill" | "failed";
1733
+ filledAmountRaw?: string;
1734
+ remainingAmountRaw?: string;
1735
+ errorReason?: string;
1736
+ timestamp: number;
1737
+ }
1738
+ interface UseExecutionProgressOptions {
1739
+ orderIds: string[] | null;
1740
+ enabled: boolean;
1741
+ }
1742
+ interface UseExecutionProgressResult {
1743
+ phase: ExecutionProgressPhase;
1744
+ submittedOrders: WsOrderSubmitted[];
1745
+ latestBalance: WsBalanceUpdate | null;
1746
+ dagProgress: DagStepProgress | null;
1747
+ terminalOrderEvents: ExecutionTerminalOrderEvent[];
1748
+ }
1749
+ declare function useExecutionProgress({ orderIds, enabled, }: UseExecutionProgressOptions): UseExecutionProgressResult;
1750
+
1751
+ interface ClosedPositionTotals {
1752
+ totalTraded: number;
1753
+ amountWon: number;
1754
+ returnPct: number;
1755
+ winningOutcomeIds: string[];
1756
+ isPartialWin: boolean;
1757
+ }
1758
+ declare const computeClosedPositionTotals: (group: PositionGroup) => ClosedPositionTotals;
1759
+
1760
+ declare const useRedeem: () => _tanstack_react_query.UseMutationResult<RedeemResponse, Error, RedeemRequest, unknown>;
1761
+
1762
+ type RedeemEvent = WsRedeemEvent;
1763
+ declare const useOnRedeemEvent: (listener: ((event: RedeemEvent) => void) | null) => void;
1764
+
1765
+ declare const useRedeemEligibleCount: () => number;
1766
+
1767
+ interface MarketChartCandle {
1768
+ time: number;
1769
+ open: number;
1770
+ high: number;
1771
+ low: number;
1772
+ close: number;
1773
+ volume: number | null;
1774
+ source: "rest" | "ws" | "trade";
1775
+ }
1776
+ interface MarketChartVenueData {
1777
+ venue: string;
1778
+ /** Venue-scoped outcome IDs that contributed to this venue series. */
1779
+ outcomeIds: string[];
1780
+ candles: MarketChartCandle[];
1781
+ liveCandle: MarketChartCandle | null;
1782
+ lineValue: number | undefined;
1783
+ lastTrade: WsTrade | null;
1784
+ }
1785
+ interface MarketChartData {
1786
+ marketId: string;
1787
+ /** All venue-scoped outcome IDs that were requested for this chart selection. */
1788
+ outcomeIds: string[];
1789
+ /** Venue key for the canonical historical bar series returned by GET /charts/bars. */
1790
+ primaryVenue: string;
1791
+ interval: WsCandleInterval;
1792
+ startTs: number | null;
1793
+ endTs: number | null;
1794
+ /** Per-venue chart state. The primary venue contains the canonical REST history. */
1795
+ venues: Record<string, MarketChartVenueData>;
1796
+ }
1797
+
1798
+ type MarketOrderbookIntegrity = "ok" | "resyncing";
1799
+ interface MarketOrderbookData {
1800
+ marketId: string;
1801
+ orderbook: AggregatedOrderbookResponse["orderbook"];
1802
+ venueOrderbooks: AggregatedOrderbookResponse["venueOrderbooks"];
1803
+ venues: AggregatedOrderbookResponse["venues"];
1804
+ midpoint: number | null;
1805
+ spread: number | null;
1806
+ timestamp: number;
1807
+ snapshotVersion?: number;
1808
+ seq?: number;
1809
+ checksum?: number | null;
1810
+ matchedMarkets?: AggregatedOrderbookResponse["matchedMarkets"];
1811
+ integrity: MarketOrderbookIntegrity;
1812
+ }
1813
+
1814
+ interface GeoBlockState {
1815
+ /** Whether the user's location is blocked at the platform level. */
1816
+ isLocationBlocked: boolean;
1817
+ /** Whether trading is blocked for the user's location. */
1818
+ isTradingBlocked: boolean;
1819
+ /** Whether deposits are blocked for the user's location. */
1820
+ isDepositBlocked: boolean;
1821
+ }
1822
+ /**
1823
+ * Reads geo-block state from the authenticated user's profile.
1824
+ * Returns all-false when the user is not authenticated (no profile available).
1825
+ */
1826
+ declare function useGeoBlock(): GeoBlockState;
1827
+
1828
+ interface UseAggAuthOptions {
1829
+ signMessage?: (message: string) => Promise<string>;
1830
+ address?: string;
1831
+ chainId?: number | string;
1832
+ /** Wallet chain — "ethereum" (default) or "solana". */
1833
+ chain?: "ethereum" | "solana";
1834
+ }
1835
+ interface UseAggAuthReturn {
1836
+ isAuthenticated: boolean;
1837
+ user: UserProfile | undefined;
1838
+ signIn: (statement?: string) => Promise<void>;
1839
+ signOut: () => Promise<void>;
1840
+ isLoading: boolean;
1841
+ error: Error | null;
1842
+ }
1843
+ declare function useAggAuth(options?: UseAggAuthOptions): UseAggAuthReturn;
1844
+
1845
+ interface UseLinkAccountReturn {
1846
+ startLink: (body: AggLinkAccountBody) => Promise<AggLinkAccountResult>;
1847
+ confirmLink: (token: string) => Promise<AggLinkAccountConfirmResult>;
1848
+ isLoading: boolean;
1849
+ error: Error | null;
1850
+ }
1851
+ /**
1852
+ * Hook for initiating and completing an account-link flow (OAuth / email).
1853
+ *
1854
+ * After a `startLink` call, the provider callback redirects the browser back to the
1855
+ * app's `redirectUrl` with a `link_confirm_token` query param. Read that param on
1856
+ * the redirect target route and pass it to `confirmLink`.
1857
+ */
1858
+ declare function useLinkAccount(): UseLinkAccountReturn;
1859
+
1860
+ declare const AUTH_CHOOSER_OPEN_EVENT = "agg-auth:open-chooser";
1861
+ declare const requestAggAuthChooserOpen: () => void;
1862
+
1863
+ interface UseCategoriesOptions {
1864
+ enabled?: boolean;
1865
+ /** Page size when using cursor pagination. Default 20. */
1866
+ limit?: number;
1867
+ }
1868
+ /**
1869
+ * Fetch categories via the API with cursor-based pagination.
1870
+ * Use fetchNextPage for "Load more". Same pattern as useVenueEvents.
1871
+ */
1872
+ declare function useCategories(options?: UseCategoriesOptions): {
1873
+ categories: _agg_build_sdk.Category[];
1874
+ hasNextPage: boolean;
1875
+ data: _tanstack_react_query.InfiniteData<_agg_build_sdk.PaginatedResponse<_agg_build_sdk.Category>, unknown>;
1876
+ error: Error;
1877
+ isError: true;
1878
+ isPending: false;
1879
+ isLoading: false;
1880
+ isLoadingError: false;
1881
+ isRefetchError: true;
1882
+ isSuccess: false;
1883
+ isPlaceholderData: false;
1884
+ status: "error";
1885
+ fetchNextPage: (options?: _tanstack_react_query.FetchNextPageOptions) => Promise<_tanstack_react_query.InfiniteQueryObserverResult<_tanstack_react_query.InfiniteData<_agg_build_sdk.PaginatedResponse<_agg_build_sdk.Category>, unknown>, Error>>;
1886
+ fetchPreviousPage: (options?: _tanstack_react_query.FetchPreviousPageOptions) => Promise<_tanstack_react_query.InfiniteQueryObserverResult<_tanstack_react_query.InfiniteData<_agg_build_sdk.PaginatedResponse<_agg_build_sdk.Category>, unknown>, Error>>;
1887
+ hasPreviousPage: boolean;
1888
+ isFetchNextPageError: boolean;
1889
+ isFetchingNextPage: boolean;
1890
+ isFetchPreviousPageError: boolean;
1891
+ isFetchingPreviousPage: boolean;
1892
+ dataUpdatedAt: number;
1893
+ errorUpdatedAt: number;
1894
+ failureCount: number;
1895
+ failureReason: Error | null;
1896
+ errorUpdateCount: number;
1897
+ isFetched: boolean;
1898
+ isFetchedAfterMount: boolean;
1899
+ isFetching: boolean;
1900
+ isInitialLoading: boolean;
1901
+ isPaused: boolean;
1902
+ isRefetching: boolean;
1903
+ isStale: boolean;
1904
+ isEnabled: boolean;
1905
+ refetch: (options?: _tanstack_react_query.RefetchOptions) => Promise<_tanstack_react_query.QueryObserverResult<_tanstack_react_query.InfiniteData<_agg_build_sdk.PaginatedResponse<_agg_build_sdk.Category>, unknown>, Error>>;
1906
+ fetchStatus: _tanstack_react_query.FetchStatus;
1907
+ promise: Promise<_tanstack_react_query.InfiniteData<_agg_build_sdk.PaginatedResponse<_agg_build_sdk.Category>, unknown>>;
1908
+ } | {
1909
+ categories: _agg_build_sdk.Category[];
1910
+ hasNextPage: boolean;
1911
+ data: _tanstack_react_query.InfiniteData<_agg_build_sdk.PaginatedResponse<_agg_build_sdk.Category>, unknown>;
1912
+ error: null;
1913
+ isError: false;
1914
+ isPending: false;
1915
+ isLoading: false;
1916
+ isLoadingError: false;
1917
+ isRefetchError: false;
1918
+ isFetchNextPageError: false;
1919
+ isFetchPreviousPageError: false;
1920
+ isSuccess: true;
1921
+ isPlaceholderData: false;
1922
+ status: "success";
1923
+ fetchNextPage: (options?: _tanstack_react_query.FetchNextPageOptions) => Promise<_tanstack_react_query.InfiniteQueryObserverResult<_tanstack_react_query.InfiniteData<_agg_build_sdk.PaginatedResponse<_agg_build_sdk.Category>, unknown>, Error>>;
1924
+ fetchPreviousPage: (options?: _tanstack_react_query.FetchPreviousPageOptions) => Promise<_tanstack_react_query.InfiniteQueryObserverResult<_tanstack_react_query.InfiniteData<_agg_build_sdk.PaginatedResponse<_agg_build_sdk.Category>, unknown>, Error>>;
1925
+ hasPreviousPage: boolean;
1926
+ isFetchingNextPage: boolean;
1927
+ isFetchingPreviousPage: boolean;
1928
+ dataUpdatedAt: number;
1929
+ errorUpdatedAt: number;
1930
+ failureCount: number;
1931
+ failureReason: Error | null;
1932
+ errorUpdateCount: number;
1933
+ isFetched: boolean;
1934
+ isFetchedAfterMount: boolean;
1935
+ isFetching: boolean;
1936
+ isInitialLoading: boolean;
1937
+ isPaused: boolean;
1938
+ isRefetching: boolean;
1939
+ isStale: boolean;
1940
+ isEnabled: boolean;
1941
+ refetch: (options?: _tanstack_react_query.RefetchOptions) => Promise<_tanstack_react_query.QueryObserverResult<_tanstack_react_query.InfiniteData<_agg_build_sdk.PaginatedResponse<_agg_build_sdk.Category>, unknown>, Error>>;
1942
+ fetchStatus: _tanstack_react_query.FetchStatus;
1943
+ promise: Promise<_tanstack_react_query.InfiniteData<_agg_build_sdk.PaginatedResponse<_agg_build_sdk.Category>, unknown>>;
1944
+ } | {
1945
+ categories: _agg_build_sdk.Category[];
1946
+ hasNextPage: boolean;
1947
+ data: undefined;
1948
+ error: Error;
1949
+ isError: true;
1950
+ isPending: false;
1951
+ isLoading: false;
1952
+ isLoadingError: true;
1953
+ isRefetchError: false;
1954
+ isFetchNextPageError: false;
1955
+ isFetchPreviousPageError: false;
1956
+ isSuccess: false;
1957
+ isPlaceholderData: false;
1958
+ status: "error";
1959
+ fetchNextPage: (options?: _tanstack_react_query.FetchNextPageOptions) => Promise<_tanstack_react_query.InfiniteQueryObserverResult<_tanstack_react_query.InfiniteData<_agg_build_sdk.PaginatedResponse<_agg_build_sdk.Category>, unknown>, Error>>;
1960
+ fetchPreviousPage: (options?: _tanstack_react_query.FetchPreviousPageOptions) => Promise<_tanstack_react_query.InfiniteQueryObserverResult<_tanstack_react_query.InfiniteData<_agg_build_sdk.PaginatedResponse<_agg_build_sdk.Category>, unknown>, Error>>;
1961
+ hasPreviousPage: boolean;
1962
+ isFetchingNextPage: boolean;
1963
+ isFetchingPreviousPage: boolean;
1964
+ dataUpdatedAt: number;
1965
+ errorUpdatedAt: number;
1966
+ failureCount: number;
1967
+ failureReason: Error | null;
1968
+ errorUpdateCount: number;
1969
+ isFetched: boolean;
1970
+ isFetchedAfterMount: boolean;
1971
+ isFetching: boolean;
1972
+ isInitialLoading: boolean;
1973
+ isPaused: boolean;
1974
+ isRefetching: boolean;
1975
+ isStale: boolean;
1976
+ isEnabled: boolean;
1977
+ refetch: (options?: _tanstack_react_query.RefetchOptions) => Promise<_tanstack_react_query.QueryObserverResult<_tanstack_react_query.InfiniteData<_agg_build_sdk.PaginatedResponse<_agg_build_sdk.Category>, unknown>, Error>>;
1978
+ fetchStatus: _tanstack_react_query.FetchStatus;
1979
+ promise: Promise<_tanstack_react_query.InfiniteData<_agg_build_sdk.PaginatedResponse<_agg_build_sdk.Category>, unknown>>;
1980
+ } | {
1981
+ categories: _agg_build_sdk.Category[];
1982
+ hasNextPage: boolean;
1983
+ data: undefined;
1984
+ error: null;
1985
+ isError: false;
1986
+ isPending: true;
1987
+ isLoading: true;
1988
+ isLoadingError: false;
1989
+ isRefetchError: false;
1990
+ isFetchNextPageError: false;
1991
+ isFetchPreviousPageError: false;
1992
+ isSuccess: false;
1993
+ isPlaceholderData: false;
1994
+ status: "pending";
1995
+ fetchNextPage: (options?: _tanstack_react_query.FetchNextPageOptions) => Promise<_tanstack_react_query.InfiniteQueryObserverResult<_tanstack_react_query.InfiniteData<_agg_build_sdk.PaginatedResponse<_agg_build_sdk.Category>, unknown>, Error>>;
1996
+ fetchPreviousPage: (options?: _tanstack_react_query.FetchPreviousPageOptions) => Promise<_tanstack_react_query.InfiniteQueryObserverResult<_tanstack_react_query.InfiniteData<_agg_build_sdk.PaginatedResponse<_agg_build_sdk.Category>, unknown>, Error>>;
1997
+ hasPreviousPage: boolean;
1998
+ isFetchingNextPage: boolean;
1999
+ isFetchingPreviousPage: boolean;
2000
+ dataUpdatedAt: number;
2001
+ errorUpdatedAt: number;
2002
+ failureCount: number;
2003
+ failureReason: Error | null;
2004
+ errorUpdateCount: number;
2005
+ isFetched: boolean;
2006
+ isFetchedAfterMount: boolean;
2007
+ isFetching: boolean;
2008
+ isInitialLoading: boolean;
2009
+ isPaused: boolean;
2010
+ isRefetching: boolean;
2011
+ isStale: boolean;
2012
+ isEnabled: boolean;
2013
+ refetch: (options?: _tanstack_react_query.RefetchOptions) => Promise<_tanstack_react_query.QueryObserverResult<_tanstack_react_query.InfiniteData<_agg_build_sdk.PaginatedResponse<_agg_build_sdk.Category>, unknown>, Error>>;
2014
+ fetchStatus: _tanstack_react_query.FetchStatus;
2015
+ promise: Promise<_tanstack_react_query.InfiniteData<_agg_build_sdk.PaginatedResponse<_agg_build_sdk.Category>, unknown>>;
2016
+ } | {
2017
+ categories: _agg_build_sdk.Category[];
2018
+ hasNextPage: boolean;
2019
+ data: undefined;
2020
+ error: null;
2021
+ isError: false;
2022
+ isPending: true;
2023
+ isLoadingError: false;
2024
+ isRefetchError: false;
2025
+ isFetchNextPageError: false;
2026
+ isFetchPreviousPageError: false;
2027
+ isSuccess: false;
2028
+ isPlaceholderData: false;
2029
+ status: "pending";
2030
+ fetchNextPage: (options?: _tanstack_react_query.FetchNextPageOptions) => Promise<_tanstack_react_query.InfiniteQueryObserverResult<_tanstack_react_query.InfiniteData<_agg_build_sdk.PaginatedResponse<_agg_build_sdk.Category>, unknown>, Error>>;
2031
+ fetchPreviousPage: (options?: _tanstack_react_query.FetchPreviousPageOptions) => Promise<_tanstack_react_query.InfiniteQueryObserverResult<_tanstack_react_query.InfiniteData<_agg_build_sdk.PaginatedResponse<_agg_build_sdk.Category>, unknown>, Error>>;
2032
+ hasPreviousPage: boolean;
2033
+ isFetchingNextPage: boolean;
2034
+ isFetchingPreviousPage: boolean;
2035
+ dataUpdatedAt: number;
2036
+ errorUpdatedAt: number;
2037
+ failureCount: number;
2038
+ failureReason: Error | null;
2039
+ errorUpdateCount: number;
2040
+ isFetched: boolean;
2041
+ isFetchedAfterMount: boolean;
2042
+ isFetching: boolean;
2043
+ isLoading: boolean;
2044
+ isInitialLoading: boolean;
2045
+ isPaused: boolean;
2046
+ isRefetching: boolean;
2047
+ isStale: boolean;
2048
+ isEnabled: boolean;
2049
+ refetch: (options?: _tanstack_react_query.RefetchOptions) => Promise<_tanstack_react_query.QueryObserverResult<_tanstack_react_query.InfiniteData<_agg_build_sdk.PaginatedResponse<_agg_build_sdk.Category>, unknown>, Error>>;
2050
+ fetchStatus: _tanstack_react_query.FetchStatus;
2051
+ promise: Promise<_tanstack_react_query.InfiniteData<_agg_build_sdk.PaginatedResponse<_agg_build_sdk.Category>, unknown>>;
2052
+ } | {
2053
+ categories: _agg_build_sdk.Category[];
2054
+ hasNextPage: boolean;
2055
+ data: _tanstack_react_query.InfiniteData<_agg_build_sdk.PaginatedResponse<_agg_build_sdk.Category>, unknown>;
2056
+ isError: false;
2057
+ error: null;
2058
+ isPending: false;
2059
+ isLoading: false;
2060
+ isLoadingError: false;
2061
+ isRefetchError: false;
2062
+ isSuccess: true;
2063
+ isPlaceholderData: true;
2064
+ isFetchNextPageError: false;
2065
+ isFetchPreviousPageError: false;
2066
+ status: "success";
2067
+ fetchNextPage: (options?: _tanstack_react_query.FetchNextPageOptions) => Promise<_tanstack_react_query.InfiniteQueryObserverResult<_tanstack_react_query.InfiniteData<_agg_build_sdk.PaginatedResponse<_agg_build_sdk.Category>, unknown>, Error>>;
2068
+ fetchPreviousPage: (options?: _tanstack_react_query.FetchPreviousPageOptions) => Promise<_tanstack_react_query.InfiniteQueryObserverResult<_tanstack_react_query.InfiniteData<_agg_build_sdk.PaginatedResponse<_agg_build_sdk.Category>, unknown>, Error>>;
2069
+ hasPreviousPage: boolean;
2070
+ isFetchingNextPage: boolean;
2071
+ isFetchingPreviousPage: boolean;
2072
+ dataUpdatedAt: number;
2073
+ errorUpdatedAt: number;
2074
+ failureCount: number;
2075
+ failureReason: Error | null;
2076
+ errorUpdateCount: number;
2077
+ isFetched: boolean;
2078
+ isFetchedAfterMount: boolean;
2079
+ isFetching: boolean;
2080
+ isInitialLoading: boolean;
2081
+ isPaused: boolean;
2082
+ isRefetching: boolean;
2083
+ isStale: boolean;
2084
+ isEnabled: boolean;
2085
+ refetch: (options?: _tanstack_react_query.RefetchOptions) => Promise<_tanstack_react_query.QueryObserverResult<_tanstack_react_query.InfiniteData<_agg_build_sdk.PaginatedResponse<_agg_build_sdk.Category>, unknown>, Error>>;
2086
+ fetchStatus: _tanstack_react_query.FetchStatus;
2087
+ promise: Promise<_tanstack_react_query.InfiniteData<_agg_build_sdk.PaginatedResponse<_agg_build_sdk.Category>, unknown>>;
2088
+ };
2089
+
2090
+ declare function useDebouncedValue<T>(value: T, delay: number): T;
2091
+
2092
+ interface UseExecutionOrdersOptions extends Omit<GetOrdersQuery, "cursor"> {
2093
+ enabled?: boolean;
2094
+ refetchIntervalMs?: number | false;
2095
+ }
2096
+ declare function useExecutionOrders(options?: UseExecutionOrdersOptions): {
2097
+ orders: OrderListItem[];
2098
+ hasNextPage: boolean;
2099
+ data: _tanstack_react_query.InfiniteData<_agg_build_sdk.PaginatedResponse<_agg_build_sdk.OrderListItem>, unknown>;
2100
+ error: Error;
2101
+ isError: true;
2102
+ isPending: false;
2103
+ isLoading: false;
2104
+ isLoadingError: false;
2105
+ isRefetchError: true;
2106
+ isSuccess: false;
2107
+ isPlaceholderData: false;
2108
+ status: "error";
2109
+ fetchNextPage: (options?: _tanstack_react_query.FetchNextPageOptions) => Promise<_tanstack_react_query.InfiniteQueryObserverResult<_tanstack_react_query.InfiniteData<_agg_build_sdk.PaginatedResponse<_agg_build_sdk.OrderListItem>, unknown>, Error>>;
2110
+ fetchPreviousPage: (options?: _tanstack_react_query.FetchPreviousPageOptions) => Promise<_tanstack_react_query.InfiniteQueryObserverResult<_tanstack_react_query.InfiniteData<_agg_build_sdk.PaginatedResponse<_agg_build_sdk.OrderListItem>, unknown>, Error>>;
2111
+ hasPreviousPage: boolean;
2112
+ isFetchNextPageError: boolean;
2113
+ isFetchingNextPage: boolean;
2114
+ isFetchPreviousPageError: boolean;
2115
+ isFetchingPreviousPage: boolean;
2116
+ dataUpdatedAt: number;
2117
+ errorUpdatedAt: number;
2118
+ failureCount: number;
2119
+ failureReason: Error | null;
2120
+ errorUpdateCount: number;
2121
+ isFetched: boolean;
2122
+ isFetchedAfterMount: boolean;
2123
+ isFetching: boolean;
2124
+ isInitialLoading: boolean;
2125
+ isPaused: boolean;
2126
+ isRefetching: boolean;
2127
+ isStale: boolean;
2128
+ isEnabled: boolean;
2129
+ refetch: (options?: _tanstack_react_query.RefetchOptions) => Promise<_tanstack_react_query.QueryObserverResult<_tanstack_react_query.InfiniteData<_agg_build_sdk.PaginatedResponse<_agg_build_sdk.OrderListItem>, unknown>, Error>>;
2130
+ fetchStatus: _tanstack_react_query.FetchStatus;
2131
+ promise: Promise<_tanstack_react_query.InfiniteData<_agg_build_sdk.PaginatedResponse<_agg_build_sdk.OrderListItem>, unknown>>;
2132
+ } | {
2133
+ orders: OrderListItem[];
2134
+ hasNextPage: boolean;
2135
+ data: _tanstack_react_query.InfiniteData<_agg_build_sdk.PaginatedResponse<_agg_build_sdk.OrderListItem>, unknown>;
2136
+ error: null;
2137
+ isError: false;
2138
+ isPending: false;
2139
+ isLoading: false;
2140
+ isLoadingError: false;
2141
+ isRefetchError: false;
2142
+ isFetchNextPageError: false;
2143
+ isFetchPreviousPageError: false;
2144
+ isSuccess: true;
2145
+ isPlaceholderData: false;
2146
+ status: "success";
2147
+ fetchNextPage: (options?: _tanstack_react_query.FetchNextPageOptions) => Promise<_tanstack_react_query.InfiniteQueryObserverResult<_tanstack_react_query.InfiniteData<_agg_build_sdk.PaginatedResponse<_agg_build_sdk.OrderListItem>, unknown>, Error>>;
2148
+ fetchPreviousPage: (options?: _tanstack_react_query.FetchPreviousPageOptions) => Promise<_tanstack_react_query.InfiniteQueryObserverResult<_tanstack_react_query.InfiniteData<_agg_build_sdk.PaginatedResponse<_agg_build_sdk.OrderListItem>, unknown>, Error>>;
2149
+ hasPreviousPage: boolean;
2150
+ isFetchingNextPage: boolean;
2151
+ isFetchingPreviousPage: boolean;
2152
+ dataUpdatedAt: number;
2153
+ errorUpdatedAt: number;
2154
+ failureCount: number;
2155
+ failureReason: Error | null;
2156
+ errorUpdateCount: number;
2157
+ isFetched: boolean;
2158
+ isFetchedAfterMount: boolean;
2159
+ isFetching: boolean;
2160
+ isInitialLoading: boolean;
2161
+ isPaused: boolean;
2162
+ isRefetching: boolean;
2163
+ isStale: boolean;
2164
+ isEnabled: boolean;
2165
+ refetch: (options?: _tanstack_react_query.RefetchOptions) => Promise<_tanstack_react_query.QueryObserverResult<_tanstack_react_query.InfiniteData<_agg_build_sdk.PaginatedResponse<_agg_build_sdk.OrderListItem>, unknown>, Error>>;
2166
+ fetchStatus: _tanstack_react_query.FetchStatus;
2167
+ promise: Promise<_tanstack_react_query.InfiniteData<_agg_build_sdk.PaginatedResponse<_agg_build_sdk.OrderListItem>, unknown>>;
2168
+ } | {
2169
+ orders: OrderListItem[];
2170
+ hasNextPage: boolean;
2171
+ data: undefined;
2172
+ error: Error;
2173
+ isError: true;
2174
+ isPending: false;
2175
+ isLoading: false;
2176
+ isLoadingError: true;
2177
+ isRefetchError: false;
2178
+ isFetchNextPageError: false;
2179
+ isFetchPreviousPageError: false;
2180
+ isSuccess: false;
2181
+ isPlaceholderData: false;
2182
+ status: "error";
2183
+ fetchNextPage: (options?: _tanstack_react_query.FetchNextPageOptions) => Promise<_tanstack_react_query.InfiniteQueryObserverResult<_tanstack_react_query.InfiniteData<_agg_build_sdk.PaginatedResponse<_agg_build_sdk.OrderListItem>, unknown>, Error>>;
2184
+ fetchPreviousPage: (options?: _tanstack_react_query.FetchPreviousPageOptions) => Promise<_tanstack_react_query.InfiniteQueryObserverResult<_tanstack_react_query.InfiniteData<_agg_build_sdk.PaginatedResponse<_agg_build_sdk.OrderListItem>, unknown>, Error>>;
2185
+ hasPreviousPage: boolean;
2186
+ isFetchingNextPage: boolean;
2187
+ isFetchingPreviousPage: boolean;
2188
+ dataUpdatedAt: number;
2189
+ errorUpdatedAt: number;
2190
+ failureCount: number;
2191
+ failureReason: Error | null;
2192
+ errorUpdateCount: number;
2193
+ isFetched: boolean;
2194
+ isFetchedAfterMount: boolean;
2195
+ isFetching: boolean;
2196
+ isInitialLoading: boolean;
2197
+ isPaused: boolean;
2198
+ isRefetching: boolean;
2199
+ isStale: boolean;
2200
+ isEnabled: boolean;
2201
+ refetch: (options?: _tanstack_react_query.RefetchOptions) => Promise<_tanstack_react_query.QueryObserverResult<_tanstack_react_query.InfiniteData<_agg_build_sdk.PaginatedResponse<_agg_build_sdk.OrderListItem>, unknown>, Error>>;
2202
+ fetchStatus: _tanstack_react_query.FetchStatus;
2203
+ promise: Promise<_tanstack_react_query.InfiniteData<_agg_build_sdk.PaginatedResponse<_agg_build_sdk.OrderListItem>, unknown>>;
2204
+ } | {
2205
+ orders: OrderListItem[];
2206
+ hasNextPage: boolean;
2207
+ data: undefined;
2208
+ error: null;
2209
+ isError: false;
2210
+ isPending: true;
2211
+ isLoading: true;
2212
+ isLoadingError: false;
2213
+ isRefetchError: false;
2214
+ isFetchNextPageError: false;
2215
+ isFetchPreviousPageError: false;
2216
+ isSuccess: false;
2217
+ isPlaceholderData: false;
2218
+ status: "pending";
2219
+ fetchNextPage: (options?: _tanstack_react_query.FetchNextPageOptions) => Promise<_tanstack_react_query.InfiniteQueryObserverResult<_tanstack_react_query.InfiniteData<_agg_build_sdk.PaginatedResponse<_agg_build_sdk.OrderListItem>, unknown>, Error>>;
2220
+ fetchPreviousPage: (options?: _tanstack_react_query.FetchPreviousPageOptions) => Promise<_tanstack_react_query.InfiniteQueryObserverResult<_tanstack_react_query.InfiniteData<_agg_build_sdk.PaginatedResponse<_agg_build_sdk.OrderListItem>, unknown>, Error>>;
2221
+ hasPreviousPage: boolean;
2222
+ isFetchingNextPage: boolean;
2223
+ isFetchingPreviousPage: boolean;
2224
+ dataUpdatedAt: number;
2225
+ errorUpdatedAt: number;
2226
+ failureCount: number;
2227
+ failureReason: Error | null;
2228
+ errorUpdateCount: number;
2229
+ isFetched: boolean;
2230
+ isFetchedAfterMount: boolean;
2231
+ isFetching: boolean;
2232
+ isInitialLoading: boolean;
2233
+ isPaused: boolean;
2234
+ isRefetching: boolean;
2235
+ isStale: boolean;
2236
+ isEnabled: boolean;
2237
+ refetch: (options?: _tanstack_react_query.RefetchOptions) => Promise<_tanstack_react_query.QueryObserverResult<_tanstack_react_query.InfiniteData<_agg_build_sdk.PaginatedResponse<_agg_build_sdk.OrderListItem>, unknown>, Error>>;
2238
+ fetchStatus: _tanstack_react_query.FetchStatus;
2239
+ promise: Promise<_tanstack_react_query.InfiniteData<_agg_build_sdk.PaginatedResponse<_agg_build_sdk.OrderListItem>, unknown>>;
2240
+ } | {
2241
+ orders: OrderListItem[];
2242
+ hasNextPage: boolean;
2243
+ data: undefined;
2244
+ error: null;
2245
+ isError: false;
2246
+ isPending: true;
2247
+ isLoadingError: false;
2248
+ isRefetchError: false;
2249
+ isFetchNextPageError: false;
2250
+ isFetchPreviousPageError: false;
2251
+ isSuccess: false;
2252
+ isPlaceholderData: false;
2253
+ status: "pending";
2254
+ fetchNextPage: (options?: _tanstack_react_query.FetchNextPageOptions) => Promise<_tanstack_react_query.InfiniteQueryObserverResult<_tanstack_react_query.InfiniteData<_agg_build_sdk.PaginatedResponse<_agg_build_sdk.OrderListItem>, unknown>, Error>>;
2255
+ fetchPreviousPage: (options?: _tanstack_react_query.FetchPreviousPageOptions) => Promise<_tanstack_react_query.InfiniteQueryObserverResult<_tanstack_react_query.InfiniteData<_agg_build_sdk.PaginatedResponse<_agg_build_sdk.OrderListItem>, unknown>, Error>>;
2256
+ hasPreviousPage: boolean;
2257
+ isFetchingNextPage: boolean;
2258
+ isFetchingPreviousPage: boolean;
2259
+ dataUpdatedAt: number;
2260
+ errorUpdatedAt: number;
2261
+ failureCount: number;
2262
+ failureReason: Error | null;
2263
+ errorUpdateCount: number;
2264
+ isFetched: boolean;
2265
+ isFetchedAfterMount: boolean;
2266
+ isFetching: boolean;
2267
+ isLoading: boolean;
2268
+ isInitialLoading: boolean;
2269
+ isPaused: boolean;
2270
+ isRefetching: boolean;
2271
+ isStale: boolean;
2272
+ isEnabled: boolean;
2273
+ refetch: (options?: _tanstack_react_query.RefetchOptions) => Promise<_tanstack_react_query.QueryObserverResult<_tanstack_react_query.InfiniteData<_agg_build_sdk.PaginatedResponse<_agg_build_sdk.OrderListItem>, unknown>, Error>>;
2274
+ fetchStatus: _tanstack_react_query.FetchStatus;
2275
+ promise: Promise<_tanstack_react_query.InfiniteData<_agg_build_sdk.PaginatedResponse<_agg_build_sdk.OrderListItem>, unknown>>;
2276
+ } | {
2277
+ orders: OrderListItem[];
2278
+ hasNextPage: boolean;
2279
+ data: _tanstack_react_query.InfiniteData<_agg_build_sdk.PaginatedResponse<_agg_build_sdk.OrderListItem>, unknown>;
2280
+ isError: false;
2281
+ error: null;
2282
+ isPending: false;
2283
+ isLoading: false;
2284
+ isLoadingError: false;
2285
+ isRefetchError: false;
2286
+ isSuccess: true;
2287
+ isPlaceholderData: true;
2288
+ isFetchNextPageError: false;
2289
+ isFetchPreviousPageError: false;
2290
+ status: "success";
2291
+ fetchNextPage: (options?: _tanstack_react_query.FetchNextPageOptions) => Promise<_tanstack_react_query.InfiniteQueryObserverResult<_tanstack_react_query.InfiniteData<_agg_build_sdk.PaginatedResponse<_agg_build_sdk.OrderListItem>, unknown>, Error>>;
2292
+ fetchPreviousPage: (options?: _tanstack_react_query.FetchPreviousPageOptions) => Promise<_tanstack_react_query.InfiniteQueryObserverResult<_tanstack_react_query.InfiniteData<_agg_build_sdk.PaginatedResponse<_agg_build_sdk.OrderListItem>, unknown>, Error>>;
2293
+ hasPreviousPage: boolean;
2294
+ isFetchingNextPage: boolean;
2295
+ isFetchingPreviousPage: boolean;
2296
+ dataUpdatedAt: number;
2297
+ errorUpdatedAt: number;
2298
+ failureCount: number;
2299
+ failureReason: Error | null;
2300
+ errorUpdateCount: number;
2301
+ isFetched: boolean;
2302
+ isFetchedAfterMount: boolean;
2303
+ isFetching: boolean;
2304
+ isInitialLoading: boolean;
2305
+ isPaused: boolean;
2306
+ isRefetching: boolean;
2307
+ isStale: boolean;
2308
+ isEnabled: boolean;
2309
+ refetch: (options?: _tanstack_react_query.RefetchOptions) => Promise<_tanstack_react_query.QueryObserverResult<_tanstack_react_query.InfiniteData<_agg_build_sdk.PaginatedResponse<_agg_build_sdk.OrderListItem>, unknown>, Error>>;
2310
+ fetchStatus: _tanstack_react_query.FetchStatus;
2311
+ promise: Promise<_tanstack_react_query.InfiniteData<_agg_build_sdk.PaginatedResponse<_agg_build_sdk.OrderListItem>, unknown>>;
2312
+ };
2313
+
2314
+ interface UseUserActivityOptions extends Omit<UserActivityQuery, "cursor"> {
2315
+ enabled?: boolean;
2316
+ }
2317
+ declare function useUserActivity(options?: UseUserActivityOptions): {
2318
+ activities: UserActivityItem[];
2319
+ hasNextPage: boolean;
2320
+ data: _tanstack_react_query.InfiniteData<_agg_build_sdk.PaginatedResponse<UserActivityItem>, unknown>;
2321
+ error: Error;
2322
+ isError: true;
2323
+ isPending: false;
2324
+ isLoading: false;
2325
+ isLoadingError: false;
2326
+ isRefetchError: true;
2327
+ isSuccess: false;
2328
+ isPlaceholderData: false;
2329
+ status: "error";
2330
+ fetchNextPage: (options?: _tanstack_react_query.FetchNextPageOptions) => Promise<_tanstack_react_query.InfiniteQueryObserverResult<_tanstack_react_query.InfiniteData<_agg_build_sdk.PaginatedResponse<UserActivityItem>, unknown>, Error>>;
2331
+ fetchPreviousPage: (options?: _tanstack_react_query.FetchPreviousPageOptions) => Promise<_tanstack_react_query.InfiniteQueryObserverResult<_tanstack_react_query.InfiniteData<_agg_build_sdk.PaginatedResponse<UserActivityItem>, unknown>, Error>>;
2332
+ hasPreviousPage: boolean;
2333
+ isFetchNextPageError: boolean;
2334
+ isFetchingNextPage: boolean;
2335
+ isFetchPreviousPageError: boolean;
2336
+ isFetchingPreviousPage: boolean;
2337
+ dataUpdatedAt: number;
2338
+ errorUpdatedAt: number;
2339
+ failureCount: number;
2340
+ failureReason: Error | null;
2341
+ errorUpdateCount: number;
2342
+ isFetched: boolean;
2343
+ isFetchedAfterMount: boolean;
2344
+ isFetching: boolean;
2345
+ isInitialLoading: boolean;
2346
+ isPaused: boolean;
2347
+ isRefetching: boolean;
2348
+ isStale: boolean;
2349
+ isEnabled: boolean;
2350
+ refetch: (options?: _tanstack_react_query.RefetchOptions) => Promise<_tanstack_react_query.QueryObserverResult<_tanstack_react_query.InfiniteData<_agg_build_sdk.PaginatedResponse<UserActivityItem>, unknown>, Error>>;
2351
+ fetchStatus: _tanstack_react_query.FetchStatus;
2352
+ promise: Promise<_tanstack_react_query.InfiniteData<_agg_build_sdk.PaginatedResponse<UserActivityItem>, unknown>>;
2353
+ } | {
2354
+ activities: UserActivityItem[];
2355
+ hasNextPage: boolean;
2356
+ data: _tanstack_react_query.InfiniteData<_agg_build_sdk.PaginatedResponse<UserActivityItem>, unknown>;
2357
+ error: null;
2358
+ isError: false;
2359
+ isPending: false;
2360
+ isLoading: false;
2361
+ isLoadingError: false;
2362
+ isRefetchError: false;
2363
+ isFetchNextPageError: false;
2364
+ isFetchPreviousPageError: false;
2365
+ isSuccess: true;
2366
+ isPlaceholderData: false;
2367
+ status: "success";
2368
+ fetchNextPage: (options?: _tanstack_react_query.FetchNextPageOptions) => Promise<_tanstack_react_query.InfiniteQueryObserverResult<_tanstack_react_query.InfiniteData<_agg_build_sdk.PaginatedResponse<UserActivityItem>, unknown>, Error>>;
2369
+ fetchPreviousPage: (options?: _tanstack_react_query.FetchPreviousPageOptions) => Promise<_tanstack_react_query.InfiniteQueryObserverResult<_tanstack_react_query.InfiniteData<_agg_build_sdk.PaginatedResponse<UserActivityItem>, unknown>, Error>>;
2370
+ hasPreviousPage: boolean;
2371
+ isFetchingNextPage: boolean;
2372
+ isFetchingPreviousPage: boolean;
2373
+ dataUpdatedAt: number;
2374
+ errorUpdatedAt: number;
2375
+ failureCount: number;
2376
+ failureReason: Error | null;
2377
+ errorUpdateCount: number;
2378
+ isFetched: boolean;
2379
+ isFetchedAfterMount: boolean;
2380
+ isFetching: boolean;
2381
+ isInitialLoading: boolean;
2382
+ isPaused: boolean;
2383
+ isRefetching: boolean;
2384
+ isStale: boolean;
2385
+ isEnabled: boolean;
2386
+ refetch: (options?: _tanstack_react_query.RefetchOptions) => Promise<_tanstack_react_query.QueryObserverResult<_tanstack_react_query.InfiniteData<_agg_build_sdk.PaginatedResponse<UserActivityItem>, unknown>, Error>>;
2387
+ fetchStatus: _tanstack_react_query.FetchStatus;
2388
+ promise: Promise<_tanstack_react_query.InfiniteData<_agg_build_sdk.PaginatedResponse<UserActivityItem>, unknown>>;
2389
+ } | {
2390
+ activities: UserActivityItem[];
2391
+ hasNextPage: boolean;
2392
+ data: undefined;
2393
+ error: Error;
2394
+ isError: true;
2395
+ isPending: false;
2396
+ isLoading: false;
2397
+ isLoadingError: true;
2398
+ isRefetchError: false;
2399
+ isFetchNextPageError: false;
2400
+ isFetchPreviousPageError: false;
2401
+ isSuccess: false;
2402
+ isPlaceholderData: false;
2403
+ status: "error";
2404
+ fetchNextPage: (options?: _tanstack_react_query.FetchNextPageOptions) => Promise<_tanstack_react_query.InfiniteQueryObserverResult<_tanstack_react_query.InfiniteData<_agg_build_sdk.PaginatedResponse<UserActivityItem>, unknown>, Error>>;
2405
+ fetchPreviousPage: (options?: _tanstack_react_query.FetchPreviousPageOptions) => Promise<_tanstack_react_query.InfiniteQueryObserverResult<_tanstack_react_query.InfiniteData<_agg_build_sdk.PaginatedResponse<UserActivityItem>, unknown>, Error>>;
2406
+ hasPreviousPage: boolean;
2407
+ isFetchingNextPage: boolean;
2408
+ isFetchingPreviousPage: boolean;
2409
+ dataUpdatedAt: number;
2410
+ errorUpdatedAt: number;
2411
+ failureCount: number;
2412
+ failureReason: Error | null;
2413
+ errorUpdateCount: number;
2414
+ isFetched: boolean;
2415
+ isFetchedAfterMount: boolean;
2416
+ isFetching: boolean;
2417
+ isInitialLoading: boolean;
2418
+ isPaused: boolean;
2419
+ isRefetching: boolean;
2420
+ isStale: boolean;
2421
+ isEnabled: boolean;
2422
+ refetch: (options?: _tanstack_react_query.RefetchOptions) => Promise<_tanstack_react_query.QueryObserverResult<_tanstack_react_query.InfiniteData<_agg_build_sdk.PaginatedResponse<UserActivityItem>, unknown>, Error>>;
2423
+ fetchStatus: _tanstack_react_query.FetchStatus;
2424
+ promise: Promise<_tanstack_react_query.InfiniteData<_agg_build_sdk.PaginatedResponse<UserActivityItem>, unknown>>;
2425
+ } | {
2426
+ activities: UserActivityItem[];
2427
+ hasNextPage: boolean;
2428
+ data: undefined;
2429
+ error: null;
2430
+ isError: false;
2431
+ isPending: true;
2432
+ isLoading: true;
2433
+ isLoadingError: false;
2434
+ isRefetchError: false;
2435
+ isFetchNextPageError: false;
2436
+ isFetchPreviousPageError: false;
2437
+ isSuccess: false;
2438
+ isPlaceholderData: false;
2439
+ status: "pending";
2440
+ fetchNextPage: (options?: _tanstack_react_query.FetchNextPageOptions) => Promise<_tanstack_react_query.InfiniteQueryObserverResult<_tanstack_react_query.InfiniteData<_agg_build_sdk.PaginatedResponse<UserActivityItem>, unknown>, Error>>;
2441
+ fetchPreviousPage: (options?: _tanstack_react_query.FetchPreviousPageOptions) => Promise<_tanstack_react_query.InfiniteQueryObserverResult<_tanstack_react_query.InfiniteData<_agg_build_sdk.PaginatedResponse<UserActivityItem>, unknown>, Error>>;
2442
+ hasPreviousPage: boolean;
2443
+ isFetchingNextPage: boolean;
2444
+ isFetchingPreviousPage: boolean;
2445
+ dataUpdatedAt: number;
2446
+ errorUpdatedAt: number;
2447
+ failureCount: number;
2448
+ failureReason: Error | null;
2449
+ errorUpdateCount: number;
2450
+ isFetched: boolean;
2451
+ isFetchedAfterMount: boolean;
2452
+ isFetching: boolean;
2453
+ isInitialLoading: boolean;
2454
+ isPaused: boolean;
2455
+ isRefetching: boolean;
2456
+ isStale: boolean;
2457
+ isEnabled: boolean;
2458
+ refetch: (options?: _tanstack_react_query.RefetchOptions) => Promise<_tanstack_react_query.QueryObserverResult<_tanstack_react_query.InfiniteData<_agg_build_sdk.PaginatedResponse<UserActivityItem>, unknown>, Error>>;
2459
+ fetchStatus: _tanstack_react_query.FetchStatus;
2460
+ promise: Promise<_tanstack_react_query.InfiniteData<_agg_build_sdk.PaginatedResponse<UserActivityItem>, unknown>>;
2461
+ } | {
2462
+ activities: UserActivityItem[];
2463
+ hasNextPage: boolean;
2464
+ data: undefined;
2465
+ error: null;
2466
+ isError: false;
2467
+ isPending: true;
2468
+ isLoadingError: false;
2469
+ isRefetchError: false;
2470
+ isFetchNextPageError: false;
2471
+ isFetchPreviousPageError: false;
2472
+ isSuccess: false;
2473
+ isPlaceholderData: false;
2474
+ status: "pending";
2475
+ fetchNextPage: (options?: _tanstack_react_query.FetchNextPageOptions) => Promise<_tanstack_react_query.InfiniteQueryObserverResult<_tanstack_react_query.InfiniteData<_agg_build_sdk.PaginatedResponse<UserActivityItem>, unknown>, Error>>;
2476
+ fetchPreviousPage: (options?: _tanstack_react_query.FetchPreviousPageOptions) => Promise<_tanstack_react_query.InfiniteQueryObserverResult<_tanstack_react_query.InfiniteData<_agg_build_sdk.PaginatedResponse<UserActivityItem>, unknown>, Error>>;
2477
+ hasPreviousPage: boolean;
2478
+ isFetchingNextPage: boolean;
2479
+ isFetchingPreviousPage: boolean;
2480
+ dataUpdatedAt: number;
2481
+ errorUpdatedAt: number;
2482
+ failureCount: number;
2483
+ failureReason: Error | null;
2484
+ errorUpdateCount: number;
2485
+ isFetched: boolean;
2486
+ isFetchedAfterMount: boolean;
2487
+ isFetching: boolean;
2488
+ isLoading: boolean;
2489
+ isInitialLoading: boolean;
2490
+ isPaused: boolean;
2491
+ isRefetching: boolean;
2492
+ isStale: boolean;
2493
+ isEnabled: boolean;
2494
+ refetch: (options?: _tanstack_react_query.RefetchOptions) => Promise<_tanstack_react_query.QueryObserverResult<_tanstack_react_query.InfiniteData<_agg_build_sdk.PaginatedResponse<UserActivityItem>, unknown>, Error>>;
2495
+ fetchStatus: _tanstack_react_query.FetchStatus;
2496
+ promise: Promise<_tanstack_react_query.InfiniteData<_agg_build_sdk.PaginatedResponse<UserActivityItem>, unknown>>;
2497
+ } | {
2498
+ activities: UserActivityItem[];
2499
+ hasNextPage: boolean;
2500
+ data: _tanstack_react_query.InfiniteData<_agg_build_sdk.PaginatedResponse<UserActivityItem>, unknown>;
2501
+ isError: false;
2502
+ error: null;
2503
+ isPending: false;
2504
+ isLoading: false;
2505
+ isLoadingError: false;
2506
+ isRefetchError: false;
2507
+ isSuccess: true;
2508
+ isPlaceholderData: true;
2509
+ isFetchNextPageError: false;
2510
+ isFetchPreviousPageError: false;
2511
+ status: "success";
2512
+ fetchNextPage: (options?: _tanstack_react_query.FetchNextPageOptions) => Promise<_tanstack_react_query.InfiniteQueryObserverResult<_tanstack_react_query.InfiniteData<_agg_build_sdk.PaginatedResponse<UserActivityItem>, unknown>, Error>>;
2513
+ fetchPreviousPage: (options?: _tanstack_react_query.FetchPreviousPageOptions) => Promise<_tanstack_react_query.InfiniteQueryObserverResult<_tanstack_react_query.InfiniteData<_agg_build_sdk.PaginatedResponse<UserActivityItem>, unknown>, Error>>;
2514
+ hasPreviousPage: boolean;
2515
+ isFetchingNextPage: boolean;
2516
+ isFetchingPreviousPage: boolean;
2517
+ dataUpdatedAt: number;
2518
+ errorUpdatedAt: number;
2519
+ failureCount: number;
2520
+ failureReason: Error | null;
2521
+ errorUpdateCount: number;
2522
+ isFetched: boolean;
2523
+ isFetchedAfterMount: boolean;
2524
+ isFetching: boolean;
2525
+ isInitialLoading: boolean;
2526
+ isPaused: boolean;
2527
+ isRefetching: boolean;
2528
+ isStale: boolean;
2529
+ isEnabled: boolean;
2530
+ refetch: (options?: _tanstack_react_query.RefetchOptions) => Promise<_tanstack_react_query.QueryObserverResult<_tanstack_react_query.InfiniteData<_agg_build_sdk.PaginatedResponse<UserActivityItem>, unknown>, Error>>;
2531
+ fetchStatus: _tanstack_react_query.FetchStatus;
2532
+ promise: Promise<_tanstack_react_query.InfiniteData<_agg_build_sdk.PaginatedResponse<UserActivityItem>, unknown>>;
2533
+ };
2534
+
2535
+ interface UseExternalIdOptions {
2536
+ onSuccess?: (profile: UserProfile) => void;
2537
+ onError?: (error: Error) => void;
2538
+ }
2539
+ interface UseExternalIdReturn {
2540
+ linkExternalId: (assertion: {
2541
+ externalId: string;
2542
+ timestamp: number;
2543
+ hmac: string;
2544
+ }) => Promise<UserProfile>;
2545
+ isLoading: boolean;
2546
+ error: Error | null;
2547
+ }
2548
+ declare function useExternalId(options?: UseExternalIdOptions): UseExternalIdReturn;
2549
+
2550
+ interface UseExecutionPositionsOptions extends Omit<GetPositionsQuery, "cursor"> {
2551
+ enabled?: boolean;
2552
+ }
2553
+ declare function useExecutionPositions(options?: UseExecutionPositionsOptions): {
2554
+ positions: PositionGroup[];
2555
+ hasNextPage: boolean;
2556
+ data: _tanstack_react_query.InfiniteData<_agg_build_sdk.PaginatedResponse<_agg_build_sdk.PositionGroup>, unknown>;
2557
+ error: Error;
2558
+ isError: true;
2559
+ isPending: false;
2560
+ isLoading: false;
2561
+ isLoadingError: false;
2562
+ isRefetchError: true;
2563
+ isSuccess: false;
2564
+ isPlaceholderData: false;
2565
+ status: "error";
2566
+ fetchNextPage: (options?: _tanstack_react_query.FetchNextPageOptions) => Promise<_tanstack_react_query.InfiniteQueryObserverResult<_tanstack_react_query.InfiniteData<_agg_build_sdk.PaginatedResponse<_agg_build_sdk.PositionGroup>, unknown>, Error>>;
2567
+ fetchPreviousPage: (options?: _tanstack_react_query.FetchPreviousPageOptions) => Promise<_tanstack_react_query.InfiniteQueryObserverResult<_tanstack_react_query.InfiniteData<_agg_build_sdk.PaginatedResponse<_agg_build_sdk.PositionGroup>, unknown>, Error>>;
2568
+ hasPreviousPage: boolean;
2569
+ isFetchNextPageError: boolean;
2570
+ isFetchingNextPage: boolean;
2571
+ isFetchPreviousPageError: boolean;
2572
+ isFetchingPreviousPage: boolean;
2573
+ dataUpdatedAt: number;
2574
+ errorUpdatedAt: number;
2575
+ failureCount: number;
2576
+ failureReason: Error | null;
2577
+ errorUpdateCount: number;
2578
+ isFetched: boolean;
2579
+ isFetchedAfterMount: boolean;
2580
+ isFetching: boolean;
2581
+ isInitialLoading: boolean;
2582
+ isPaused: boolean;
2583
+ isRefetching: boolean;
2584
+ isStale: boolean;
2585
+ isEnabled: boolean;
2586
+ refetch: (options?: _tanstack_react_query.RefetchOptions) => Promise<_tanstack_react_query.QueryObserverResult<_tanstack_react_query.InfiniteData<_agg_build_sdk.PaginatedResponse<_agg_build_sdk.PositionGroup>, unknown>, Error>>;
2587
+ fetchStatus: _tanstack_react_query.FetchStatus;
2588
+ promise: Promise<_tanstack_react_query.InfiniteData<_agg_build_sdk.PaginatedResponse<_agg_build_sdk.PositionGroup>, unknown>>;
2589
+ } | {
2590
+ positions: PositionGroup[];
2591
+ hasNextPage: boolean;
2592
+ data: _tanstack_react_query.InfiniteData<_agg_build_sdk.PaginatedResponse<_agg_build_sdk.PositionGroup>, unknown>;
2593
+ error: null;
2594
+ isError: false;
2595
+ isPending: false;
2596
+ isLoading: false;
2597
+ isLoadingError: false;
2598
+ isRefetchError: false;
2599
+ isFetchNextPageError: false;
2600
+ isFetchPreviousPageError: false;
2601
+ isSuccess: true;
2602
+ isPlaceholderData: false;
2603
+ status: "success";
2604
+ fetchNextPage: (options?: _tanstack_react_query.FetchNextPageOptions) => Promise<_tanstack_react_query.InfiniteQueryObserverResult<_tanstack_react_query.InfiniteData<_agg_build_sdk.PaginatedResponse<_agg_build_sdk.PositionGroup>, unknown>, Error>>;
2605
+ fetchPreviousPage: (options?: _tanstack_react_query.FetchPreviousPageOptions) => Promise<_tanstack_react_query.InfiniteQueryObserverResult<_tanstack_react_query.InfiniteData<_agg_build_sdk.PaginatedResponse<_agg_build_sdk.PositionGroup>, unknown>, Error>>;
2606
+ hasPreviousPage: boolean;
2607
+ isFetchingNextPage: boolean;
2608
+ isFetchingPreviousPage: boolean;
2609
+ dataUpdatedAt: number;
2610
+ errorUpdatedAt: number;
2611
+ failureCount: number;
2612
+ failureReason: Error | null;
2613
+ errorUpdateCount: number;
2614
+ isFetched: boolean;
2615
+ isFetchedAfterMount: boolean;
2616
+ isFetching: boolean;
2617
+ isInitialLoading: boolean;
2618
+ isPaused: boolean;
2619
+ isRefetching: boolean;
2620
+ isStale: boolean;
2621
+ isEnabled: boolean;
2622
+ refetch: (options?: _tanstack_react_query.RefetchOptions) => Promise<_tanstack_react_query.QueryObserverResult<_tanstack_react_query.InfiniteData<_agg_build_sdk.PaginatedResponse<_agg_build_sdk.PositionGroup>, unknown>, Error>>;
2623
+ fetchStatus: _tanstack_react_query.FetchStatus;
2624
+ promise: Promise<_tanstack_react_query.InfiniteData<_agg_build_sdk.PaginatedResponse<_agg_build_sdk.PositionGroup>, unknown>>;
2625
+ } | {
2626
+ positions: PositionGroup[];
2627
+ hasNextPage: boolean;
2628
+ data: undefined;
2629
+ error: Error;
2630
+ isError: true;
2631
+ isPending: false;
2632
+ isLoading: false;
2633
+ isLoadingError: true;
2634
+ isRefetchError: false;
2635
+ isFetchNextPageError: false;
2636
+ isFetchPreviousPageError: false;
2637
+ isSuccess: false;
2638
+ isPlaceholderData: false;
2639
+ status: "error";
2640
+ fetchNextPage: (options?: _tanstack_react_query.FetchNextPageOptions) => Promise<_tanstack_react_query.InfiniteQueryObserverResult<_tanstack_react_query.InfiniteData<_agg_build_sdk.PaginatedResponse<_agg_build_sdk.PositionGroup>, unknown>, Error>>;
2641
+ fetchPreviousPage: (options?: _tanstack_react_query.FetchPreviousPageOptions) => Promise<_tanstack_react_query.InfiniteQueryObserverResult<_tanstack_react_query.InfiniteData<_agg_build_sdk.PaginatedResponse<_agg_build_sdk.PositionGroup>, unknown>, Error>>;
2642
+ hasPreviousPage: boolean;
2643
+ isFetchingNextPage: boolean;
2644
+ isFetchingPreviousPage: boolean;
2645
+ dataUpdatedAt: number;
2646
+ errorUpdatedAt: number;
2647
+ failureCount: number;
2648
+ failureReason: Error | null;
2649
+ errorUpdateCount: number;
2650
+ isFetched: boolean;
2651
+ isFetchedAfterMount: boolean;
2652
+ isFetching: boolean;
2653
+ isInitialLoading: boolean;
2654
+ isPaused: boolean;
2655
+ isRefetching: boolean;
2656
+ isStale: boolean;
2657
+ isEnabled: boolean;
2658
+ refetch: (options?: _tanstack_react_query.RefetchOptions) => Promise<_tanstack_react_query.QueryObserverResult<_tanstack_react_query.InfiniteData<_agg_build_sdk.PaginatedResponse<_agg_build_sdk.PositionGroup>, unknown>, Error>>;
2659
+ fetchStatus: _tanstack_react_query.FetchStatus;
2660
+ promise: Promise<_tanstack_react_query.InfiniteData<_agg_build_sdk.PaginatedResponse<_agg_build_sdk.PositionGroup>, unknown>>;
2661
+ } | {
2662
+ positions: PositionGroup[];
2663
+ hasNextPage: boolean;
2664
+ data: undefined;
2665
+ error: null;
2666
+ isError: false;
2667
+ isPending: true;
2668
+ isLoading: true;
2669
+ isLoadingError: false;
2670
+ isRefetchError: false;
2671
+ isFetchNextPageError: false;
2672
+ isFetchPreviousPageError: false;
2673
+ isSuccess: false;
2674
+ isPlaceholderData: false;
2675
+ status: "pending";
2676
+ fetchNextPage: (options?: _tanstack_react_query.FetchNextPageOptions) => Promise<_tanstack_react_query.InfiniteQueryObserverResult<_tanstack_react_query.InfiniteData<_agg_build_sdk.PaginatedResponse<_agg_build_sdk.PositionGroup>, unknown>, Error>>;
2677
+ fetchPreviousPage: (options?: _tanstack_react_query.FetchPreviousPageOptions) => Promise<_tanstack_react_query.InfiniteQueryObserverResult<_tanstack_react_query.InfiniteData<_agg_build_sdk.PaginatedResponse<_agg_build_sdk.PositionGroup>, unknown>, Error>>;
2678
+ hasPreviousPage: boolean;
2679
+ isFetchingNextPage: boolean;
2680
+ isFetchingPreviousPage: boolean;
2681
+ dataUpdatedAt: number;
2682
+ errorUpdatedAt: number;
2683
+ failureCount: number;
2684
+ failureReason: Error | null;
2685
+ errorUpdateCount: number;
2686
+ isFetched: boolean;
2687
+ isFetchedAfterMount: boolean;
2688
+ isFetching: boolean;
2689
+ isInitialLoading: boolean;
2690
+ isPaused: boolean;
2691
+ isRefetching: boolean;
2692
+ isStale: boolean;
2693
+ isEnabled: boolean;
2694
+ refetch: (options?: _tanstack_react_query.RefetchOptions) => Promise<_tanstack_react_query.QueryObserverResult<_tanstack_react_query.InfiniteData<_agg_build_sdk.PaginatedResponse<_agg_build_sdk.PositionGroup>, unknown>, Error>>;
2695
+ fetchStatus: _tanstack_react_query.FetchStatus;
2696
+ promise: Promise<_tanstack_react_query.InfiniteData<_agg_build_sdk.PaginatedResponse<_agg_build_sdk.PositionGroup>, unknown>>;
2697
+ } | {
2698
+ positions: PositionGroup[];
2699
+ hasNextPage: boolean;
2700
+ data: undefined;
2701
+ error: null;
2702
+ isError: false;
2703
+ isPending: true;
2704
+ isLoadingError: false;
2705
+ isRefetchError: false;
2706
+ isFetchNextPageError: false;
2707
+ isFetchPreviousPageError: false;
2708
+ isSuccess: false;
2709
+ isPlaceholderData: false;
2710
+ status: "pending";
2711
+ fetchNextPage: (options?: _tanstack_react_query.FetchNextPageOptions) => Promise<_tanstack_react_query.InfiniteQueryObserverResult<_tanstack_react_query.InfiniteData<_agg_build_sdk.PaginatedResponse<_agg_build_sdk.PositionGroup>, unknown>, Error>>;
2712
+ fetchPreviousPage: (options?: _tanstack_react_query.FetchPreviousPageOptions) => Promise<_tanstack_react_query.InfiniteQueryObserverResult<_tanstack_react_query.InfiniteData<_agg_build_sdk.PaginatedResponse<_agg_build_sdk.PositionGroup>, unknown>, Error>>;
2713
+ hasPreviousPage: boolean;
2714
+ isFetchingNextPage: boolean;
2715
+ isFetchingPreviousPage: boolean;
2716
+ dataUpdatedAt: number;
2717
+ errorUpdatedAt: number;
2718
+ failureCount: number;
2719
+ failureReason: Error | null;
2720
+ errorUpdateCount: number;
2721
+ isFetched: boolean;
2722
+ isFetchedAfterMount: boolean;
2723
+ isFetching: boolean;
2724
+ isLoading: boolean;
2725
+ isInitialLoading: boolean;
2726
+ isPaused: boolean;
2727
+ isRefetching: boolean;
2728
+ isStale: boolean;
2729
+ isEnabled: boolean;
2730
+ refetch: (options?: _tanstack_react_query.RefetchOptions) => Promise<_tanstack_react_query.QueryObserverResult<_tanstack_react_query.InfiniteData<_agg_build_sdk.PaginatedResponse<_agg_build_sdk.PositionGroup>, unknown>, Error>>;
2731
+ fetchStatus: _tanstack_react_query.FetchStatus;
2732
+ promise: Promise<_tanstack_react_query.InfiniteData<_agg_build_sdk.PaginatedResponse<_agg_build_sdk.PositionGroup>, unknown>>;
2733
+ } | {
2734
+ positions: PositionGroup[];
2735
+ hasNextPage: boolean;
2736
+ data: _tanstack_react_query.InfiniteData<_agg_build_sdk.PaginatedResponse<_agg_build_sdk.PositionGroup>, unknown>;
2737
+ isError: false;
2738
+ error: null;
2739
+ isPending: false;
2740
+ isLoading: false;
2741
+ isLoadingError: false;
2742
+ isRefetchError: false;
2743
+ isSuccess: true;
2744
+ isPlaceholderData: true;
2745
+ isFetchNextPageError: false;
2746
+ isFetchPreviousPageError: false;
2747
+ status: "success";
2748
+ fetchNextPage: (options?: _tanstack_react_query.FetchNextPageOptions) => Promise<_tanstack_react_query.InfiniteQueryObserverResult<_tanstack_react_query.InfiniteData<_agg_build_sdk.PaginatedResponse<_agg_build_sdk.PositionGroup>, unknown>, Error>>;
2749
+ fetchPreviousPage: (options?: _tanstack_react_query.FetchPreviousPageOptions) => Promise<_tanstack_react_query.InfiniteQueryObserverResult<_tanstack_react_query.InfiniteData<_agg_build_sdk.PaginatedResponse<_agg_build_sdk.PositionGroup>, unknown>, Error>>;
2750
+ hasPreviousPage: boolean;
2751
+ isFetchingNextPage: boolean;
2752
+ isFetchingPreviousPage: boolean;
2753
+ dataUpdatedAt: number;
2754
+ errorUpdatedAt: number;
2755
+ failureCount: number;
2756
+ failureReason: Error | null;
2757
+ errorUpdateCount: number;
2758
+ isFetched: boolean;
2759
+ isFetchedAfterMount: boolean;
2760
+ isFetching: boolean;
2761
+ isInitialLoading: boolean;
2762
+ isPaused: boolean;
2763
+ isRefetching: boolean;
2764
+ isStale: boolean;
2765
+ isEnabled: boolean;
2766
+ refetch: (options?: _tanstack_react_query.RefetchOptions) => Promise<_tanstack_react_query.QueryObserverResult<_tanstack_react_query.InfiniteData<_agg_build_sdk.PaginatedResponse<_agg_build_sdk.PositionGroup>, unknown>, Error>>;
2767
+ fetchStatus: _tanstack_react_query.FetchStatus;
2768
+ promise: Promise<_tanstack_react_query.InfiniteData<_agg_build_sdk.PaginatedResponse<_agg_build_sdk.PositionGroup>, unknown>>;
2769
+ };
2770
+
2771
+ interface ScaledCandlePoint {
2772
+ time: number;
2773
+ open: number;
2774
+ high: number;
2775
+ low: number;
2776
+ close: number;
2777
+ v: number | null;
2778
+ }
2779
+ interface UseLiveCandleOverlayOptions {
2780
+ market: VenueMarket | null;
2781
+ interval?: CandleInterval;
2782
+ mode?: "venue" | "aggregate";
2783
+ startTs?: number;
2784
+ endTs?: number;
2785
+ enabled?: boolean;
2786
+ scale?: number;
2787
+ }
2788
+ interface UseLiveCandleOverlayResult {
2789
+ liveCandle: ScaledCandlePoint | null;
2790
+ scaledCandles: ScaledCandlePoint[];
2791
+ lineValue: number | undefined;
2792
+ live: boolean;
2793
+ isLoading: boolean;
2794
+ }
2795
+ declare function timeRangeToInterval(range: string): CandleInterval;
2796
+ declare function useLiveCandleOverlay(options: UseLiveCandleOverlayOptions): UseLiveCandleOverlayResult;
2797
+
2798
+ /** Unified candle shape returned by this hook. All times in seconds. */
2799
+ interface LiveCandle {
2800
+ time: number;
2801
+ o: number;
2802
+ h: number;
2803
+ l: number;
2804
+ c: number;
2805
+ v: number | null;
2806
+ venue?: string;
2807
+ source: "rest" | "live";
2808
+ }
2809
+ interface UseLiveCandlesOptions {
2810
+ /** The VenueMarket to show candles for. Contains id, marketId, venue, matchedVenueMarkets. */
2811
+ market: VenueMarket | null;
2812
+ /** Candle interval. Default "5m". */
2813
+ interval?: CandleInterval;
2814
+ /** "venue" = this venue only, "aggregate" = merge all matched venues. */
2815
+ mode?: "venue" | "aggregate";
2816
+ /** REST bootstrap time range (ms). */
2817
+ startTs?: number;
2818
+ endTs?: number;
2819
+ }
2820
+ interface UseLiveCandlesResult {
2821
+ /** Merged candles (REST historical + live computed), sorted by time asc. */
2822
+ candles: LiveCandle[];
2823
+ /** Currently forming candle. null if no live data yet. */
2824
+ liveCandle: LiveCandle | null;
2825
+ isLoading: boolean;
2826
+ }
2827
+ /**
2828
+ * Combines REST bootstrap candles with live CandleBuilder-computed candles.
2829
+ *
2830
+ * - REST provides historical candles from Postgres (fetched once).
2831
+ * - CandleBuilder computes live candles from orderbook delta midpoints + trades.
2832
+ * - Dedup: when a live candle has the same openTime as a REST candle, live wins.
2833
+ * - mode "venue": reads from a single CandleBuilder.
2834
+ * - mode "aggregate": merges CandleBuilders from all matched venue markets.
2835
+ */
2836
+ declare function useLiveCandles(options: UseLiveCandlesOptions): UseLiveCandlesResult;
2837
+
2838
+ /**
2839
+ * Subscribes to live orderbook updates for the selected market's outcomes —
2840
+ * including the outcomes of any cross-venue matched twins — so the live cache
2841
+ * fills for every venue the user is actively looking at.
2842
+ *
2843
+ * Unselected markets are *not* kept live. Their midpoints come from REST
2844
+ * polling in the surrounding components (`useMidpoints` for the hero cluster,
2845
+ * `useViewportMidpoints` for the card list) — plenty for list-level display
2846
+ * and avoids hundreds of idle WebSocket subscriptions on large events.
2847
+ *
2848
+ * Honors the `enableLiveUpdates` feature flag.
2849
+ */
2850
+ declare function useEventOrderbookData(venueMarkets: VenueMarket[] | null | undefined, selectedMarketId: string | null): void;
2851
+
2852
+ interface UseLiveMarketResult {
2853
+ orderbook: OrderbookState | null;
2854
+ trades: WsTrade[];
2855
+ isConnected: boolean;
2856
+ integrity: "ok" | "resyncing";
2857
+ }
2858
+ declare function useLiveMarket(canonicalMarketId: string | null): UseLiveMarketResult;
2859
+
2860
+ /**
2861
+ * Subscribe to multiple venue markets and return their CandleBuilder instances.
2862
+ * Each market gets its own WS subscription (refcounted) and CandleBuilder.
2863
+ * Re-renders when ANY builder's onChange fires (batched at ~16ms by CandleBuilder).
2864
+ */
2865
+ declare function useLiveMarketStores(venueMarketIds: string[]): CandleBuilder[];
2866
+
2867
+ /**
2868
+ * Derive live display prices for every outcome across the given venue markets.
2869
+ *
2870
+ * Each outcome has its own live orderbook (the engine emits per-outcome deltas
2871
+ * on `agg.orderbook.outcome`). The midpoint from each outcome's book is its
2872
+ * price — no complement derivation needed.
2873
+ *
2874
+ * Falls back to the static `outcome.price` from the event payload when no
2875
+ * live data is available.
2876
+ *
2877
+ * Returns a stable Map<outcomeId, price> that updates only when cache entries
2878
+ * change.
2879
+ */
2880
+ declare function useLiveOutcomePrices(venueMarkets: VenueMarket[] | null | undefined): Map<string, number>;
2881
+ /**
2882
+ * Look up the live price for a given outcome ID.
2883
+ * Returns undefined when the ID is not found in the map.
2884
+ */
2885
+ declare function findLivePriceById(livePrices: Map<string, number>, id: string): number | undefined;
2886
+
2887
+ /**
2888
+ * Subscribe to real-time trade feed for a canonical market.
2889
+ * Manages a separate trade subscription on the WS (trades use a different channel).
2890
+ * Returns a bounded array of recent trades (max 50, newest first).
2891
+ */
2892
+ declare function useLiveTrades(canonicalMarketId: string | null): WsTrade[];
2893
+
2894
+ interface UseMidpointsResult {
2895
+ /** Map of outcomeId → price. Empty while loading. */
2896
+ prices: Map<string, number>;
2897
+ /** True while the midpoints fetch is in flight. */
2898
+ isLoading: boolean;
2899
+ }
2900
+ /**
2901
+ * Fetches live midpoints for the given venue markets.
2902
+ *
2903
+ * Returns { prices, isLoading } so callers can show a skeleton while loading.
2904
+ *
2905
+ * Uses per-outcome midpoints from the API (each outcome has its own orderbook
2906
+ * midpoint) to avoid the primary-outcome inversion bug. Falls back to the
2907
+ * market-level midpoint with label-based derivation when outcomes are absent.
2908
+ */
2909
+ declare function useMidpoints(venueMarkets: VenueMarket[] | null | undefined): UseMidpointsResult;
2910
+
2911
+ interface UseMarketChartOptions {
2912
+ /** VenueMarketOutcome.id */
2913
+ marketId: string | null;
2914
+ /** Additional venue market outcome IDs to subscribe for WS updates. */
2915
+ venueMarketIds?: string[];
2916
+ interval?: WsCandleInterval;
2917
+ startTs?: number | null;
2918
+ endTs?: number | null;
2919
+ countBack?: number | null;
2920
+ enabled?: boolean;
2921
+ /** Enable live WS updates. Defaults to the global `enableLiveUpdates` config. */
2922
+ live?: boolean;
2923
+ }
2924
+ interface UseMarketChartResult {
2925
+ data: MarketChartData | null;
2926
+ isLoading: boolean;
2927
+ error: Error | null;
2928
+ isLive: boolean;
2929
+ refetch: () => Promise<unknown>;
2930
+ }
2931
+ declare function useMarketChart(options: UseMarketChartOptions): UseMarketChartResult;
2932
+
2933
+ interface UseMarketOrderbookVenueOutcome {
2934
+ venue: VenueMarket["venue"];
2935
+ venueMarketOutcomeId: string;
2936
+ }
2937
+ interface UseMarketOrderbookOptions {
2938
+ marketId: string | null;
2939
+ depth?: number;
2940
+ enabled?: boolean;
2941
+ venueOutcomes?: UseMarketOrderbookVenueOutcome[];
2942
+ /** Override live subscription. When false, skips the internal WS subscription
2943
+ * (useful when a parent already manages subscriptions for this market). */
2944
+ live?: boolean;
2945
+ }
2946
+ interface UseMarketOrderbookResult {
2947
+ data: MarketOrderbookData | null;
2948
+ dataById: Record<string, MarketOrderbookData>;
2949
+ isLoading: boolean;
2950
+ error: Error | null;
2951
+ isLive: boolean;
2952
+ refetch: () => Promise<unknown>;
2953
+ }
2954
+ /**
2955
+ * Subscribe to a live orderbook for the selected outcome(s).
2956
+ *
2957
+ * Entirely WS-driven — subscribes to outcome IDs, receives snapshots +
2958
+ * deltas via the gateway, reads from the React Query live cache that
2959
+ * the ws-provider maintains. No REST fetch needed.
2960
+ *
2961
+ * When switching outcomes, the subscription changes and a new snapshot
2962
+ * arrives for the selected outcome.
2963
+ */
2964
+ declare function useMarketOrderbook(options: UseMarketOrderbookOptions): UseMarketOrderbookResult;
2965
+
2966
+ interface OrderbookResult {
2967
+ market: VenueMarket;
2968
+ outcome: VenueMarketOutcome;
2969
+ orderbook: Orderbook;
2970
+ }
2971
+ interface UseOrderBookOptions {
2972
+ orderbooks: {
2973
+ market: VenueMarket;
2974
+ outcome: VenueMarketOutcome;
2975
+ }[];
2976
+ enabled?: boolean;
2977
+ canonicalMarketId?: string | null;
2978
+ }
2979
+ declare function useOrderBook(options: UseOrderBookOptions): {
2980
+ data: OrderbookResult[] | undefined;
2981
+ isLoading: boolean;
2982
+ error: Error | null;
2983
+ results: _tanstack_react_query.UseQueryResult<_agg_build_sdk.BatchOrderbooksResponse, Error>[];
2984
+ aggregated: AggregatedOrderbookResponse | null;
2985
+ isLive: boolean;
2986
+ };
2987
+
2988
+ interface UseOrderbookQuoteOptions {
2989
+ marketId: string | null;
2990
+ side: "buy" | "sell";
2991
+ size: number;
2992
+ enabled?: boolean;
2993
+ }
2994
+ interface UseOrderbookQuoteResult {
2995
+ data: OrderbookQuoteResponse | null;
2996
+ isLoading: boolean;
2997
+ isFetching: boolean;
2998
+ error: Error | null;
2999
+ }
3000
+ declare function useOrderbookQuote(options: UseOrderbookQuoteOptions): UseOrderbookQuoteResult;
3001
+
3002
+ interface UseOrdersOptions extends OrderListQuery {
3003
+ enabled?: boolean;
3004
+ }
3005
+ declare function useOrders(options?: UseOrdersOptions): {
3006
+ orders: TradeExecutorOrder[];
3007
+ total: number;
3008
+ data: _agg_build_sdk.TradeExecutorOrderListResponse;
3009
+ error: Error;
3010
+ isError: true;
3011
+ isPending: false;
3012
+ isLoading: false;
3013
+ isLoadingError: false;
3014
+ isRefetchError: true;
3015
+ isSuccess: false;
3016
+ isPlaceholderData: false;
3017
+ status: "error";
3018
+ dataUpdatedAt: number;
3019
+ errorUpdatedAt: number;
3020
+ failureCount: number;
3021
+ failureReason: Error | null;
3022
+ errorUpdateCount: number;
3023
+ isFetched: boolean;
3024
+ isFetchedAfterMount: boolean;
3025
+ isFetching: boolean;
3026
+ isInitialLoading: boolean;
3027
+ isPaused: boolean;
3028
+ isRefetching: boolean;
3029
+ isStale: boolean;
3030
+ isEnabled: boolean;
3031
+ refetch: (options?: _tanstack_react_query.RefetchOptions) => Promise<_tanstack_react_query.QueryObserverResult<_agg_build_sdk.TradeExecutorOrderListResponse, Error>>;
3032
+ fetchStatus: _tanstack_react_query.FetchStatus;
3033
+ promise: Promise<_agg_build_sdk.TradeExecutorOrderListResponse>;
3034
+ } | {
3035
+ orders: TradeExecutorOrder[];
3036
+ total: number;
3037
+ data: _agg_build_sdk.TradeExecutorOrderListResponse;
3038
+ error: null;
3039
+ isError: false;
3040
+ isPending: false;
3041
+ isLoading: false;
3042
+ isLoadingError: false;
3043
+ isRefetchError: false;
3044
+ isSuccess: true;
3045
+ isPlaceholderData: false;
3046
+ status: "success";
3047
+ dataUpdatedAt: number;
3048
+ errorUpdatedAt: number;
3049
+ failureCount: number;
3050
+ failureReason: Error | null;
3051
+ errorUpdateCount: number;
3052
+ isFetched: boolean;
3053
+ isFetchedAfterMount: boolean;
3054
+ isFetching: boolean;
3055
+ isInitialLoading: boolean;
3056
+ isPaused: boolean;
3057
+ isRefetching: boolean;
3058
+ isStale: boolean;
3059
+ isEnabled: boolean;
3060
+ refetch: (options?: _tanstack_react_query.RefetchOptions) => Promise<_tanstack_react_query.QueryObserverResult<_agg_build_sdk.TradeExecutorOrderListResponse, Error>>;
3061
+ fetchStatus: _tanstack_react_query.FetchStatus;
3062
+ promise: Promise<_agg_build_sdk.TradeExecutorOrderListResponse>;
3063
+ } | {
3064
+ orders: TradeExecutorOrder[];
3065
+ total: number;
3066
+ data: undefined;
3067
+ error: Error;
3068
+ isError: true;
3069
+ isPending: false;
3070
+ isLoading: false;
3071
+ isLoadingError: true;
3072
+ isRefetchError: false;
3073
+ isSuccess: false;
3074
+ isPlaceholderData: false;
3075
+ status: "error";
3076
+ dataUpdatedAt: number;
3077
+ errorUpdatedAt: number;
3078
+ failureCount: number;
3079
+ failureReason: Error | null;
3080
+ errorUpdateCount: number;
3081
+ isFetched: boolean;
3082
+ isFetchedAfterMount: boolean;
3083
+ isFetching: boolean;
3084
+ isInitialLoading: boolean;
3085
+ isPaused: boolean;
3086
+ isRefetching: boolean;
3087
+ isStale: boolean;
3088
+ isEnabled: boolean;
3089
+ refetch: (options?: _tanstack_react_query.RefetchOptions) => Promise<_tanstack_react_query.QueryObserverResult<_agg_build_sdk.TradeExecutorOrderListResponse, Error>>;
3090
+ fetchStatus: _tanstack_react_query.FetchStatus;
3091
+ promise: Promise<_agg_build_sdk.TradeExecutorOrderListResponse>;
3092
+ } | {
3093
+ orders: TradeExecutorOrder[];
3094
+ total: number;
3095
+ data: undefined;
3096
+ error: null;
3097
+ isError: false;
3098
+ isPending: true;
3099
+ isLoading: true;
3100
+ isLoadingError: false;
3101
+ isRefetchError: false;
3102
+ isSuccess: false;
3103
+ isPlaceholderData: false;
3104
+ status: "pending";
3105
+ dataUpdatedAt: number;
3106
+ errorUpdatedAt: number;
3107
+ failureCount: number;
3108
+ failureReason: Error | null;
3109
+ errorUpdateCount: number;
3110
+ isFetched: boolean;
3111
+ isFetchedAfterMount: boolean;
3112
+ isFetching: boolean;
3113
+ isInitialLoading: boolean;
3114
+ isPaused: boolean;
3115
+ isRefetching: boolean;
3116
+ isStale: boolean;
3117
+ isEnabled: boolean;
3118
+ refetch: (options?: _tanstack_react_query.RefetchOptions) => Promise<_tanstack_react_query.QueryObserverResult<_agg_build_sdk.TradeExecutorOrderListResponse, Error>>;
3119
+ fetchStatus: _tanstack_react_query.FetchStatus;
3120
+ promise: Promise<_agg_build_sdk.TradeExecutorOrderListResponse>;
3121
+ } | {
3122
+ orders: TradeExecutorOrder[];
3123
+ total: number;
3124
+ data: undefined;
3125
+ error: null;
3126
+ isError: false;
3127
+ isPending: true;
3128
+ isLoadingError: false;
3129
+ isRefetchError: false;
3130
+ isSuccess: false;
3131
+ isPlaceholderData: false;
3132
+ status: "pending";
3133
+ dataUpdatedAt: number;
3134
+ errorUpdatedAt: number;
3135
+ failureCount: number;
3136
+ failureReason: Error | null;
3137
+ errorUpdateCount: number;
3138
+ isFetched: boolean;
3139
+ isFetchedAfterMount: boolean;
3140
+ isFetching: boolean;
3141
+ isLoading: boolean;
3142
+ isInitialLoading: boolean;
3143
+ isPaused: boolean;
3144
+ isRefetching: boolean;
3145
+ isStale: boolean;
3146
+ isEnabled: boolean;
3147
+ refetch: (options?: _tanstack_react_query.RefetchOptions) => Promise<_tanstack_react_query.QueryObserverResult<_agg_build_sdk.TradeExecutorOrderListResponse, Error>>;
3148
+ fetchStatus: _tanstack_react_query.FetchStatus;
3149
+ promise: Promise<_agg_build_sdk.TradeExecutorOrderListResponse>;
3150
+ } | {
3151
+ orders: TradeExecutorOrder[];
3152
+ total: number;
3153
+ data: _agg_build_sdk.TradeExecutorOrderListResponse;
3154
+ isError: false;
3155
+ error: null;
3156
+ isPending: false;
3157
+ isLoading: false;
3158
+ isLoadingError: false;
3159
+ isRefetchError: false;
3160
+ isSuccess: true;
3161
+ isPlaceholderData: true;
3162
+ status: "success";
3163
+ dataUpdatedAt: number;
3164
+ errorUpdatedAt: number;
3165
+ failureCount: number;
3166
+ failureReason: Error | null;
3167
+ errorUpdateCount: number;
3168
+ isFetched: boolean;
3169
+ isFetchedAfterMount: boolean;
3170
+ isFetching: boolean;
3171
+ isInitialLoading: boolean;
3172
+ isPaused: boolean;
3173
+ isRefetching: boolean;
3174
+ isStale: boolean;
3175
+ isEnabled: boolean;
3176
+ refetch: (options?: _tanstack_react_query.RefetchOptions) => Promise<_tanstack_react_query.QueryObserverResult<_agg_build_sdk.TradeExecutorOrderListResponse, Error>>;
3177
+ fetchStatus: _tanstack_react_query.FetchStatus;
3178
+ promise: Promise<_agg_build_sdk.TradeExecutorOrderListResponse>;
3179
+ };
3180
+
3181
+ interface UseSearchOptions {
3182
+ /** Search query string. The query is disabled when empty. */
3183
+ q: string;
3184
+ /** Search type: "events" or "markets". */
3185
+ type: "events" | "markets";
3186
+ /** Optional category ID filter. */
3187
+ categoryIds?: string[];
3188
+ /** Page size. Default 20. */
3189
+ limit?: number;
3190
+ /** If provided, enable/disable the query. Defaults to true. */
3191
+ enabled?: boolean;
3192
+ }
3193
+ /**
3194
+ * Search events or markets via the /search endpoint with cursor-based pagination.
3195
+ * Uses `useInfiniteQuery` for "Load more" support. Disabled when `q` is empty.
3196
+ *
3197
+ * Pass a type parameter to narrow the result type, e.g.:
3198
+ * ```ts
3199
+ * const { data } = useSearch<VenueEventWithMarkets>({ q: "...", type: "events" });
3200
+ * ```
3201
+ */
3202
+ declare function useSearch<T = VenueEvent>(options: UseSearchOptions): {
3203
+ data: T[];
3204
+ isLoading: boolean;
3205
+ isError: boolean;
3206
+ error: Error | null;
3207
+ hasNextPage: boolean;
3208
+ fetchNextPage: (options?: _tanstack_react_query.FetchNextPageOptions) => Promise<_tanstack_react_query.InfiniteQueryObserverResult<_tanstack_react_query.InfiniteData<{
3209
+ type: "markets" | "events";
3210
+ data: T[];
3211
+ nextCursor: string | null;
3212
+ hasMore: boolean;
3213
+ }, unknown>, Error>>;
3214
+ isFetchingNextPage: boolean;
3215
+ isPlaceholderData: boolean;
3216
+ };
3217
+
3218
+ interface UseSmartRouteOptions {
3219
+ /** Venue market outcome ID used by the smart-route endpoint. */
3220
+ venueMarketOutcomeId?: string | null;
3221
+ /** @deprecated Use venueMarketOutcomeId. */
3222
+ venueMarketId?: string | null;
3223
+ /** @deprecated Use venueMarketOutcomeId. */
3224
+ outcomeId?: string | null;
3225
+ /** @deprecated Side is ignored for routing and echoed back only for legacy consumers. */
3226
+ side?: SmartRouteSide | null;
3227
+ /** Trade direction: "buy" (default) or "sell". */
3228
+ tradeSide?: "buy" | "sell" | null;
3229
+ /** Maximum USDC spend for the quote. Required for buy; optional for sell when sellShares is given. */
3230
+ maxSpend?: number;
3231
+ /** Sell only: target number of contracts to sell. */
3232
+ sellShares?: number;
3233
+ /** Per-chain USD balances. JSON-serialized in query. */
3234
+ chainBalances?: Record<string, number>;
3235
+ /** Maximum slippage in basis points. */
3236
+ slipCapBps?: number;
3237
+ /** Include venue-by-venue comparison quotes. */
3238
+ compareVenues?: boolean;
3239
+ /** Enable/disable the query. Default true. */
3240
+ enabled?: boolean;
3241
+ }
3242
+ interface UseSmartRouteResult {
3243
+ data: SmartRouteResponse | null;
3244
+ isLoading: boolean;
3245
+ isFetching: boolean;
3246
+ error: Error | null;
3247
+ refetch: () => Promise<unknown>;
3248
+ }
3249
+ /**
3250
+ * Compute optimal order routing across venues via the MILP solver.
3251
+ * Returns a user-scoped quote with per-venue fills and verification timing.
3252
+ *
3253
+ * The query re-fetches when venueMarketOutcomeId, maxSpend, or chainBalances change.
3254
+ * Uses keepPreviousData to avoid flicker during re-computation.
3255
+ */
3256
+ declare function useSmartRoute(options: UseSmartRouteOptions): UseSmartRouteResult;
3257
+
3258
+ interface UseUserHoldingsOptions {
3259
+ venue: Venue;
3260
+ venueMarketId?: string;
3261
+ venueEventId?: string;
3262
+ enabled?: boolean;
3263
+ limit?: number;
3264
+ }
3265
+ /**
3266
+ * Fetch user holdings (positions) for a single venue with cursor-based pagination.
3267
+ * The backend resolves venue-specific identifiers (e.g. conditionId for Polymarket).
3268
+ */
3269
+ declare function useUserHoldings(options: UseUserHoldingsOptions): {
3270
+ holdings: _agg_build_sdk.UserHolding[];
3271
+ hasNextPage: boolean;
3272
+ data: _tanstack_react_query.InfiniteData<_agg_build_sdk.PaginatedResponse<_agg_build_sdk.UserHolding>, unknown>;
3273
+ error: Error;
3274
+ isError: true;
3275
+ isPending: false;
3276
+ isLoading: false;
3277
+ isLoadingError: false;
3278
+ isRefetchError: true;
3279
+ isSuccess: false;
3280
+ isPlaceholderData: false;
3281
+ status: "error";
3282
+ fetchNextPage: (options?: _tanstack_react_query.FetchNextPageOptions) => Promise<_tanstack_react_query.InfiniteQueryObserverResult<_tanstack_react_query.InfiniteData<_agg_build_sdk.PaginatedResponse<_agg_build_sdk.UserHolding>, unknown>, Error>>;
3283
+ fetchPreviousPage: (options?: _tanstack_react_query.FetchPreviousPageOptions) => Promise<_tanstack_react_query.InfiniteQueryObserverResult<_tanstack_react_query.InfiniteData<_agg_build_sdk.PaginatedResponse<_agg_build_sdk.UserHolding>, unknown>, Error>>;
3284
+ hasPreviousPage: boolean;
3285
+ isFetchNextPageError: boolean;
3286
+ isFetchingNextPage: boolean;
3287
+ isFetchPreviousPageError: boolean;
3288
+ isFetchingPreviousPage: boolean;
3289
+ dataUpdatedAt: number;
3290
+ errorUpdatedAt: number;
3291
+ failureCount: number;
3292
+ failureReason: Error | null;
3293
+ errorUpdateCount: number;
3294
+ isFetched: boolean;
3295
+ isFetchedAfterMount: boolean;
3296
+ isFetching: boolean;
3297
+ isInitialLoading: boolean;
3298
+ isPaused: boolean;
3299
+ isRefetching: boolean;
3300
+ isStale: boolean;
3301
+ isEnabled: boolean;
3302
+ refetch: (options?: _tanstack_react_query.RefetchOptions) => Promise<_tanstack_react_query.QueryObserverResult<_tanstack_react_query.InfiniteData<_agg_build_sdk.PaginatedResponse<_agg_build_sdk.UserHolding>, unknown>, Error>>;
3303
+ fetchStatus: _tanstack_react_query.FetchStatus;
3304
+ promise: Promise<_tanstack_react_query.InfiniteData<_agg_build_sdk.PaginatedResponse<_agg_build_sdk.UserHolding>, unknown>>;
3305
+ } | {
3306
+ holdings: _agg_build_sdk.UserHolding[];
3307
+ hasNextPage: boolean;
3308
+ data: _tanstack_react_query.InfiniteData<_agg_build_sdk.PaginatedResponse<_agg_build_sdk.UserHolding>, unknown>;
3309
+ error: null;
3310
+ isError: false;
3311
+ isPending: false;
3312
+ isLoading: false;
3313
+ isLoadingError: false;
3314
+ isRefetchError: false;
3315
+ isFetchNextPageError: false;
3316
+ isFetchPreviousPageError: false;
3317
+ isSuccess: true;
3318
+ isPlaceholderData: false;
3319
+ status: "success";
3320
+ fetchNextPage: (options?: _tanstack_react_query.FetchNextPageOptions) => Promise<_tanstack_react_query.InfiniteQueryObserverResult<_tanstack_react_query.InfiniteData<_agg_build_sdk.PaginatedResponse<_agg_build_sdk.UserHolding>, unknown>, Error>>;
3321
+ fetchPreviousPage: (options?: _tanstack_react_query.FetchPreviousPageOptions) => Promise<_tanstack_react_query.InfiniteQueryObserverResult<_tanstack_react_query.InfiniteData<_agg_build_sdk.PaginatedResponse<_agg_build_sdk.UserHolding>, unknown>, Error>>;
3322
+ hasPreviousPage: boolean;
3323
+ isFetchingNextPage: boolean;
3324
+ isFetchingPreviousPage: boolean;
3325
+ dataUpdatedAt: number;
3326
+ errorUpdatedAt: number;
3327
+ failureCount: number;
3328
+ failureReason: Error | null;
3329
+ errorUpdateCount: number;
3330
+ isFetched: boolean;
3331
+ isFetchedAfterMount: boolean;
3332
+ isFetching: boolean;
3333
+ isInitialLoading: boolean;
3334
+ isPaused: boolean;
3335
+ isRefetching: boolean;
3336
+ isStale: boolean;
3337
+ isEnabled: boolean;
3338
+ refetch: (options?: _tanstack_react_query.RefetchOptions) => Promise<_tanstack_react_query.QueryObserverResult<_tanstack_react_query.InfiniteData<_agg_build_sdk.PaginatedResponse<_agg_build_sdk.UserHolding>, unknown>, Error>>;
3339
+ fetchStatus: _tanstack_react_query.FetchStatus;
3340
+ promise: Promise<_tanstack_react_query.InfiniteData<_agg_build_sdk.PaginatedResponse<_agg_build_sdk.UserHolding>, unknown>>;
3341
+ } | {
3342
+ holdings: _agg_build_sdk.UserHolding[];
3343
+ hasNextPage: boolean;
3344
+ data: undefined;
3345
+ error: Error;
3346
+ isError: true;
3347
+ isPending: false;
3348
+ isLoading: false;
3349
+ isLoadingError: true;
3350
+ isRefetchError: false;
3351
+ isFetchNextPageError: false;
3352
+ isFetchPreviousPageError: false;
3353
+ isSuccess: false;
3354
+ isPlaceholderData: false;
3355
+ status: "error";
3356
+ fetchNextPage: (options?: _tanstack_react_query.FetchNextPageOptions) => Promise<_tanstack_react_query.InfiniteQueryObserverResult<_tanstack_react_query.InfiniteData<_agg_build_sdk.PaginatedResponse<_agg_build_sdk.UserHolding>, unknown>, Error>>;
3357
+ fetchPreviousPage: (options?: _tanstack_react_query.FetchPreviousPageOptions) => Promise<_tanstack_react_query.InfiniteQueryObserverResult<_tanstack_react_query.InfiniteData<_agg_build_sdk.PaginatedResponse<_agg_build_sdk.UserHolding>, unknown>, Error>>;
3358
+ hasPreviousPage: boolean;
3359
+ isFetchingNextPage: boolean;
3360
+ isFetchingPreviousPage: boolean;
3361
+ dataUpdatedAt: number;
3362
+ errorUpdatedAt: number;
3363
+ failureCount: number;
3364
+ failureReason: Error | null;
3365
+ errorUpdateCount: number;
3366
+ isFetched: boolean;
3367
+ isFetchedAfterMount: boolean;
3368
+ isFetching: boolean;
3369
+ isInitialLoading: boolean;
3370
+ isPaused: boolean;
3371
+ isRefetching: boolean;
3372
+ isStale: boolean;
3373
+ isEnabled: boolean;
3374
+ refetch: (options?: _tanstack_react_query.RefetchOptions) => Promise<_tanstack_react_query.QueryObserverResult<_tanstack_react_query.InfiniteData<_agg_build_sdk.PaginatedResponse<_agg_build_sdk.UserHolding>, unknown>, Error>>;
3375
+ fetchStatus: _tanstack_react_query.FetchStatus;
3376
+ promise: Promise<_tanstack_react_query.InfiniteData<_agg_build_sdk.PaginatedResponse<_agg_build_sdk.UserHolding>, unknown>>;
3377
+ } | {
3378
+ holdings: _agg_build_sdk.UserHolding[];
3379
+ hasNextPage: boolean;
3380
+ data: undefined;
3381
+ error: null;
3382
+ isError: false;
3383
+ isPending: true;
3384
+ isLoading: true;
3385
+ isLoadingError: false;
3386
+ isRefetchError: false;
3387
+ isFetchNextPageError: false;
3388
+ isFetchPreviousPageError: false;
3389
+ isSuccess: false;
3390
+ isPlaceholderData: false;
3391
+ status: "pending";
3392
+ fetchNextPage: (options?: _tanstack_react_query.FetchNextPageOptions) => Promise<_tanstack_react_query.InfiniteQueryObserverResult<_tanstack_react_query.InfiniteData<_agg_build_sdk.PaginatedResponse<_agg_build_sdk.UserHolding>, unknown>, Error>>;
3393
+ fetchPreviousPage: (options?: _tanstack_react_query.FetchPreviousPageOptions) => Promise<_tanstack_react_query.InfiniteQueryObserverResult<_tanstack_react_query.InfiniteData<_agg_build_sdk.PaginatedResponse<_agg_build_sdk.UserHolding>, unknown>, Error>>;
3394
+ hasPreviousPage: boolean;
3395
+ isFetchingNextPage: boolean;
3396
+ isFetchingPreviousPage: boolean;
3397
+ dataUpdatedAt: number;
3398
+ errorUpdatedAt: number;
3399
+ failureCount: number;
3400
+ failureReason: Error | null;
3401
+ errorUpdateCount: number;
3402
+ isFetched: boolean;
3403
+ isFetchedAfterMount: boolean;
3404
+ isFetching: boolean;
3405
+ isInitialLoading: boolean;
3406
+ isPaused: boolean;
3407
+ isRefetching: boolean;
3408
+ isStale: boolean;
3409
+ isEnabled: boolean;
3410
+ refetch: (options?: _tanstack_react_query.RefetchOptions) => Promise<_tanstack_react_query.QueryObserverResult<_tanstack_react_query.InfiniteData<_agg_build_sdk.PaginatedResponse<_agg_build_sdk.UserHolding>, unknown>, Error>>;
3411
+ fetchStatus: _tanstack_react_query.FetchStatus;
3412
+ promise: Promise<_tanstack_react_query.InfiniteData<_agg_build_sdk.PaginatedResponse<_agg_build_sdk.UserHolding>, unknown>>;
3413
+ } | {
3414
+ holdings: _agg_build_sdk.UserHolding[];
3415
+ hasNextPage: boolean;
3416
+ data: undefined;
3417
+ error: null;
3418
+ isError: false;
3419
+ isPending: true;
3420
+ isLoadingError: false;
3421
+ isRefetchError: false;
3422
+ isFetchNextPageError: false;
3423
+ isFetchPreviousPageError: false;
3424
+ isSuccess: false;
3425
+ isPlaceholderData: false;
3426
+ status: "pending";
3427
+ fetchNextPage: (options?: _tanstack_react_query.FetchNextPageOptions) => Promise<_tanstack_react_query.InfiniteQueryObserverResult<_tanstack_react_query.InfiniteData<_agg_build_sdk.PaginatedResponse<_agg_build_sdk.UserHolding>, unknown>, Error>>;
3428
+ fetchPreviousPage: (options?: _tanstack_react_query.FetchPreviousPageOptions) => Promise<_tanstack_react_query.InfiniteQueryObserverResult<_tanstack_react_query.InfiniteData<_agg_build_sdk.PaginatedResponse<_agg_build_sdk.UserHolding>, unknown>, Error>>;
3429
+ hasPreviousPage: boolean;
3430
+ isFetchingNextPage: boolean;
3431
+ isFetchingPreviousPage: boolean;
3432
+ dataUpdatedAt: number;
3433
+ errorUpdatedAt: number;
3434
+ failureCount: number;
3435
+ failureReason: Error | null;
3436
+ errorUpdateCount: number;
3437
+ isFetched: boolean;
3438
+ isFetchedAfterMount: boolean;
3439
+ isFetching: boolean;
3440
+ isLoading: boolean;
3441
+ isInitialLoading: boolean;
3442
+ isPaused: boolean;
3443
+ isRefetching: boolean;
3444
+ isStale: boolean;
3445
+ isEnabled: boolean;
3446
+ refetch: (options?: _tanstack_react_query.RefetchOptions) => Promise<_tanstack_react_query.QueryObserverResult<_tanstack_react_query.InfiniteData<_agg_build_sdk.PaginatedResponse<_agg_build_sdk.UserHolding>, unknown>, Error>>;
3447
+ fetchStatus: _tanstack_react_query.FetchStatus;
3448
+ promise: Promise<_tanstack_react_query.InfiniteData<_agg_build_sdk.PaginatedResponse<_agg_build_sdk.UserHolding>, unknown>>;
3449
+ } | {
3450
+ holdings: _agg_build_sdk.UserHolding[];
3451
+ hasNextPage: boolean;
3452
+ data: _tanstack_react_query.InfiniteData<_agg_build_sdk.PaginatedResponse<_agg_build_sdk.UserHolding>, unknown>;
3453
+ isError: false;
3454
+ error: null;
3455
+ isPending: false;
3456
+ isLoading: false;
3457
+ isLoadingError: false;
3458
+ isRefetchError: false;
3459
+ isSuccess: true;
3460
+ isPlaceholderData: true;
3461
+ isFetchNextPageError: false;
3462
+ isFetchPreviousPageError: false;
3463
+ status: "success";
3464
+ fetchNextPage: (options?: _tanstack_react_query.FetchNextPageOptions) => Promise<_tanstack_react_query.InfiniteQueryObserverResult<_tanstack_react_query.InfiniteData<_agg_build_sdk.PaginatedResponse<_agg_build_sdk.UserHolding>, unknown>, Error>>;
3465
+ fetchPreviousPage: (options?: _tanstack_react_query.FetchPreviousPageOptions) => Promise<_tanstack_react_query.InfiniteQueryObserverResult<_tanstack_react_query.InfiniteData<_agg_build_sdk.PaginatedResponse<_agg_build_sdk.UserHolding>, unknown>, Error>>;
3466
+ hasPreviousPage: boolean;
3467
+ isFetchingNextPage: boolean;
3468
+ isFetchingPreviousPage: boolean;
3469
+ dataUpdatedAt: number;
3470
+ errorUpdatedAt: number;
3471
+ failureCount: number;
3472
+ failureReason: Error | null;
3473
+ errorUpdateCount: number;
3474
+ isFetched: boolean;
3475
+ isFetchedAfterMount: boolean;
3476
+ isFetching: boolean;
3477
+ isInitialLoading: boolean;
3478
+ isPaused: boolean;
3479
+ isRefetching: boolean;
3480
+ isStale: boolean;
3481
+ isEnabled: boolean;
3482
+ refetch: (options?: _tanstack_react_query.RefetchOptions) => Promise<_tanstack_react_query.QueryObserverResult<_tanstack_react_query.InfiniteData<_agg_build_sdk.PaginatedResponse<_agg_build_sdk.UserHolding>, unknown>, Error>>;
3483
+ fetchStatus: _tanstack_react_query.FetchStatus;
3484
+ promise: Promise<_tanstack_react_query.InfiniteData<_agg_build_sdk.PaginatedResponse<_agg_build_sdk.UserHolding>, unknown>>;
3485
+ };
3486
+
3487
+ interface UseVenueEventOptions {
3488
+ /** The VenueEvent ID to fetch. */
3489
+ eventId: string;
3490
+ /** Enable/disable the query. Default true. */
3491
+ enabled?: boolean;
3492
+ }
3493
+ /**
3494
+ * Fetch a single venue event by ID via the API.
3495
+ * Returns the event with nested venueMarkets.
3496
+ */
3497
+ declare function useVenueEvent(options: UseVenueEventOptions): {
3498
+ event: VenueEventWithMarkets | undefined;
3499
+ data: _agg_build_sdk.VenueEvent;
3500
+ error: Error;
3501
+ isError: true;
3502
+ isPending: false;
3503
+ isLoading: false;
3504
+ isLoadingError: false;
3505
+ isRefetchError: true;
3506
+ isSuccess: false;
3507
+ isPlaceholderData: false;
3508
+ status: "error";
3509
+ dataUpdatedAt: number;
3510
+ errorUpdatedAt: number;
3511
+ failureCount: number;
3512
+ failureReason: Error | null;
3513
+ errorUpdateCount: number;
3514
+ isFetched: boolean;
3515
+ isFetchedAfterMount: boolean;
3516
+ isFetching: boolean;
3517
+ isInitialLoading: boolean;
3518
+ isPaused: boolean;
3519
+ isRefetching: boolean;
3520
+ isStale: boolean;
3521
+ isEnabled: boolean;
3522
+ refetch: (options?: _tanstack_react_query.RefetchOptions) => Promise<_tanstack_react_query.QueryObserverResult<_agg_build_sdk.VenueEvent, Error>>;
3523
+ fetchStatus: _tanstack_react_query.FetchStatus;
3524
+ promise: Promise<_agg_build_sdk.VenueEvent>;
3525
+ } | {
3526
+ event: VenueEventWithMarkets | undefined;
3527
+ data: _agg_build_sdk.VenueEvent;
3528
+ error: null;
3529
+ isError: false;
3530
+ isPending: false;
3531
+ isLoading: false;
3532
+ isLoadingError: false;
3533
+ isRefetchError: false;
3534
+ isSuccess: true;
3535
+ isPlaceholderData: false;
3536
+ status: "success";
3537
+ dataUpdatedAt: number;
3538
+ errorUpdatedAt: number;
3539
+ failureCount: number;
3540
+ failureReason: Error | null;
3541
+ errorUpdateCount: number;
3542
+ isFetched: boolean;
3543
+ isFetchedAfterMount: boolean;
3544
+ isFetching: boolean;
3545
+ isInitialLoading: boolean;
3546
+ isPaused: boolean;
3547
+ isRefetching: boolean;
3548
+ isStale: boolean;
3549
+ isEnabled: boolean;
3550
+ refetch: (options?: _tanstack_react_query.RefetchOptions) => Promise<_tanstack_react_query.QueryObserverResult<_agg_build_sdk.VenueEvent, Error>>;
3551
+ fetchStatus: _tanstack_react_query.FetchStatus;
3552
+ promise: Promise<_agg_build_sdk.VenueEvent>;
3553
+ } | {
3554
+ event: VenueEventWithMarkets | undefined;
3555
+ data: undefined;
3556
+ error: Error;
3557
+ isError: true;
3558
+ isPending: false;
3559
+ isLoading: false;
3560
+ isLoadingError: true;
3561
+ isRefetchError: false;
3562
+ isSuccess: false;
3563
+ isPlaceholderData: false;
3564
+ status: "error";
3565
+ dataUpdatedAt: number;
3566
+ errorUpdatedAt: number;
3567
+ failureCount: number;
3568
+ failureReason: Error | null;
3569
+ errorUpdateCount: number;
3570
+ isFetched: boolean;
3571
+ isFetchedAfterMount: boolean;
3572
+ isFetching: boolean;
3573
+ isInitialLoading: boolean;
3574
+ isPaused: boolean;
3575
+ isRefetching: boolean;
3576
+ isStale: boolean;
3577
+ isEnabled: boolean;
3578
+ refetch: (options?: _tanstack_react_query.RefetchOptions) => Promise<_tanstack_react_query.QueryObserverResult<_agg_build_sdk.VenueEvent, Error>>;
3579
+ fetchStatus: _tanstack_react_query.FetchStatus;
3580
+ promise: Promise<_agg_build_sdk.VenueEvent>;
3581
+ } | {
3582
+ event: VenueEventWithMarkets | undefined;
3583
+ data: undefined;
3584
+ error: null;
3585
+ isError: false;
3586
+ isPending: true;
3587
+ isLoading: true;
3588
+ isLoadingError: false;
3589
+ isRefetchError: false;
3590
+ isSuccess: false;
3591
+ isPlaceholderData: false;
3592
+ status: "pending";
3593
+ dataUpdatedAt: number;
3594
+ errorUpdatedAt: number;
3595
+ failureCount: number;
3596
+ failureReason: Error | null;
3597
+ errorUpdateCount: number;
3598
+ isFetched: boolean;
3599
+ isFetchedAfterMount: boolean;
3600
+ isFetching: boolean;
3601
+ isInitialLoading: boolean;
3602
+ isPaused: boolean;
3603
+ isRefetching: boolean;
3604
+ isStale: boolean;
3605
+ isEnabled: boolean;
3606
+ refetch: (options?: _tanstack_react_query.RefetchOptions) => Promise<_tanstack_react_query.QueryObserverResult<_agg_build_sdk.VenueEvent, Error>>;
3607
+ fetchStatus: _tanstack_react_query.FetchStatus;
3608
+ promise: Promise<_agg_build_sdk.VenueEvent>;
3609
+ } | {
3610
+ event: VenueEventWithMarkets | undefined;
3611
+ data: undefined;
3612
+ error: null;
3613
+ isError: false;
3614
+ isPending: true;
3615
+ isLoadingError: false;
3616
+ isRefetchError: false;
3617
+ isSuccess: false;
3618
+ isPlaceholderData: false;
3619
+ status: "pending";
3620
+ dataUpdatedAt: number;
3621
+ errorUpdatedAt: number;
3622
+ failureCount: number;
3623
+ failureReason: Error | null;
3624
+ errorUpdateCount: number;
3625
+ isFetched: boolean;
3626
+ isFetchedAfterMount: boolean;
3627
+ isFetching: boolean;
3628
+ isLoading: boolean;
3629
+ isInitialLoading: boolean;
3630
+ isPaused: boolean;
3631
+ isRefetching: boolean;
3632
+ isStale: boolean;
3633
+ isEnabled: boolean;
3634
+ refetch: (options?: _tanstack_react_query.RefetchOptions) => Promise<_tanstack_react_query.QueryObserverResult<_agg_build_sdk.VenueEvent, Error>>;
3635
+ fetchStatus: _tanstack_react_query.FetchStatus;
3636
+ promise: Promise<_agg_build_sdk.VenueEvent>;
3637
+ } | {
3638
+ event: VenueEventWithMarkets | undefined;
3639
+ data: _agg_build_sdk.VenueEvent;
3640
+ isError: false;
3641
+ error: null;
3642
+ isPending: false;
3643
+ isLoading: false;
3644
+ isLoadingError: false;
3645
+ isRefetchError: false;
3646
+ isSuccess: true;
3647
+ isPlaceholderData: true;
3648
+ status: "success";
3649
+ dataUpdatedAt: number;
3650
+ errorUpdatedAt: number;
3651
+ failureCount: number;
3652
+ failureReason: Error | null;
3653
+ errorUpdateCount: number;
3654
+ isFetched: boolean;
3655
+ isFetchedAfterMount: boolean;
3656
+ isFetching: boolean;
3657
+ isInitialLoading: boolean;
3658
+ isPaused: boolean;
3659
+ isRefetching: boolean;
3660
+ isStale: boolean;
3661
+ isEnabled: boolean;
3662
+ refetch: (options?: _tanstack_react_query.RefetchOptions) => Promise<_tanstack_react_query.QueryObserverResult<_agg_build_sdk.VenueEvent, Error>>;
3663
+ fetchStatus: _tanstack_react_query.FetchStatus;
3664
+ promise: Promise<_agg_build_sdk.VenueEvent>;
3665
+ };
3666
+
3667
+ type UseEnrichedVenueEventOptions = UseVenueEventOptions;
3668
+ /**
3669
+ * Fetches a venue event and enriches its venueMarkets with full data
3670
+ * (description, rulesPrimary, rulesSecondary, etc.) from the /venue-markets endpoint.
3671
+ *
3672
+ * The useVenueMarkets call shares the same React Query cache key as MarketDetailsList,
3673
+ * so no extra HTTP request is made.
3674
+ */
3675
+ declare function useEnrichedVenueEvent(options: UseEnrichedVenueEventOptions): {
3676
+ event: VenueEventWithMarkets | undefined;
3677
+ isLoading: boolean;
3678
+ isEnriching: boolean;
3679
+ error: Error | null;
3680
+ data: _agg_build_sdk.VenueEvent;
3681
+ isError: true;
3682
+ isPending: false;
3683
+ isLoadingError: false;
3684
+ isRefetchError: true;
3685
+ isSuccess: false;
3686
+ isPlaceholderData: false;
3687
+ status: "error";
3688
+ dataUpdatedAt: number;
3689
+ errorUpdatedAt: number;
3690
+ failureCount: number;
3691
+ failureReason: Error | null;
3692
+ errorUpdateCount: number;
3693
+ isFetched: boolean;
3694
+ isFetchedAfterMount: boolean;
3695
+ isFetching: boolean;
3696
+ isInitialLoading: boolean;
3697
+ isPaused: boolean;
3698
+ isRefetching: boolean;
3699
+ isStale: boolean;
3700
+ isEnabled: boolean;
3701
+ refetch: (options?: _tanstack_react_query.RefetchOptions) => Promise<_tanstack_react_query.QueryObserverResult<_agg_build_sdk.VenueEvent, Error>>;
3702
+ fetchStatus: _tanstack_react_query.FetchStatus;
3703
+ promise: Promise<_agg_build_sdk.VenueEvent>;
3704
+ } | {
3705
+ event: VenueEventWithMarkets | undefined;
3706
+ isLoading: boolean;
3707
+ isEnriching: boolean;
3708
+ error: Error | null;
3709
+ data: _agg_build_sdk.VenueEvent;
3710
+ isError: false;
3711
+ isPending: false;
3712
+ isLoadingError: false;
3713
+ isRefetchError: false;
3714
+ isSuccess: true;
3715
+ isPlaceholderData: false;
3716
+ status: "success";
3717
+ dataUpdatedAt: number;
3718
+ errorUpdatedAt: number;
3719
+ failureCount: number;
3720
+ failureReason: Error | null;
3721
+ errorUpdateCount: number;
3722
+ isFetched: boolean;
3723
+ isFetchedAfterMount: boolean;
3724
+ isFetching: boolean;
3725
+ isInitialLoading: boolean;
3726
+ isPaused: boolean;
3727
+ isRefetching: boolean;
3728
+ isStale: boolean;
3729
+ isEnabled: boolean;
3730
+ refetch: (options?: _tanstack_react_query.RefetchOptions) => Promise<_tanstack_react_query.QueryObserverResult<_agg_build_sdk.VenueEvent, Error>>;
3731
+ fetchStatus: _tanstack_react_query.FetchStatus;
3732
+ promise: Promise<_agg_build_sdk.VenueEvent>;
3733
+ } | {
3734
+ event: VenueEventWithMarkets | undefined;
3735
+ isLoading: boolean;
3736
+ isEnriching: boolean;
3737
+ error: Error | null;
3738
+ data: undefined;
3739
+ isError: true;
3740
+ isPending: false;
3741
+ isLoadingError: true;
3742
+ isRefetchError: false;
3743
+ isSuccess: false;
3744
+ isPlaceholderData: false;
3745
+ status: "error";
3746
+ dataUpdatedAt: number;
3747
+ errorUpdatedAt: number;
3748
+ failureCount: number;
3749
+ failureReason: Error | null;
3750
+ errorUpdateCount: number;
3751
+ isFetched: boolean;
3752
+ isFetchedAfterMount: boolean;
3753
+ isFetching: boolean;
3754
+ isInitialLoading: boolean;
3755
+ isPaused: boolean;
3756
+ isRefetching: boolean;
3757
+ isStale: boolean;
3758
+ isEnabled: boolean;
3759
+ refetch: (options?: _tanstack_react_query.RefetchOptions) => Promise<_tanstack_react_query.QueryObserverResult<_agg_build_sdk.VenueEvent, Error>>;
3760
+ fetchStatus: _tanstack_react_query.FetchStatus;
3761
+ promise: Promise<_agg_build_sdk.VenueEvent>;
3762
+ } | {
3763
+ event: VenueEventWithMarkets | undefined;
3764
+ isLoading: boolean;
3765
+ isEnriching: boolean;
3766
+ error: Error | null;
3767
+ data: undefined;
3768
+ isError: false;
3769
+ isPending: true;
3770
+ isLoadingError: false;
3771
+ isRefetchError: false;
3772
+ isSuccess: false;
3773
+ isPlaceholderData: false;
3774
+ status: "pending";
3775
+ dataUpdatedAt: number;
3776
+ errorUpdatedAt: number;
3777
+ failureCount: number;
3778
+ failureReason: Error | null;
3779
+ errorUpdateCount: number;
3780
+ isFetched: boolean;
3781
+ isFetchedAfterMount: boolean;
3782
+ isFetching: boolean;
3783
+ isInitialLoading: boolean;
3784
+ isPaused: boolean;
3785
+ isRefetching: boolean;
3786
+ isStale: boolean;
3787
+ isEnabled: boolean;
3788
+ refetch: (options?: _tanstack_react_query.RefetchOptions) => Promise<_tanstack_react_query.QueryObserverResult<_agg_build_sdk.VenueEvent, Error>>;
3789
+ fetchStatus: _tanstack_react_query.FetchStatus;
3790
+ promise: Promise<_agg_build_sdk.VenueEvent>;
3791
+ } | {
3792
+ event: VenueEventWithMarkets | undefined;
3793
+ isLoading: boolean;
3794
+ isEnriching: boolean;
3795
+ error: Error | null;
3796
+ data: undefined;
3797
+ isError: false;
3798
+ isPending: true;
3799
+ isLoadingError: false;
3800
+ isRefetchError: false;
3801
+ isSuccess: false;
3802
+ isPlaceholderData: false;
3803
+ status: "pending";
3804
+ dataUpdatedAt: number;
3805
+ errorUpdatedAt: number;
3806
+ failureCount: number;
3807
+ failureReason: Error | null;
3808
+ errorUpdateCount: number;
3809
+ isFetched: boolean;
3810
+ isFetchedAfterMount: boolean;
3811
+ isFetching: boolean;
3812
+ isInitialLoading: boolean;
3813
+ isPaused: boolean;
3814
+ isRefetching: boolean;
3815
+ isStale: boolean;
3816
+ isEnabled: boolean;
3817
+ refetch: (options?: _tanstack_react_query.RefetchOptions) => Promise<_tanstack_react_query.QueryObserverResult<_agg_build_sdk.VenueEvent, Error>>;
3818
+ fetchStatus: _tanstack_react_query.FetchStatus;
3819
+ promise: Promise<_agg_build_sdk.VenueEvent>;
3820
+ } | {
3821
+ event: VenueEventWithMarkets | undefined;
3822
+ isLoading: boolean;
3823
+ isEnriching: boolean;
3824
+ error: Error | null;
3825
+ data: _agg_build_sdk.VenueEvent;
3826
+ isError: false;
3827
+ isPending: false;
3828
+ isLoadingError: false;
3829
+ isRefetchError: false;
3830
+ isSuccess: true;
3831
+ isPlaceholderData: true;
3832
+ status: "success";
3833
+ dataUpdatedAt: number;
3834
+ errorUpdatedAt: number;
3835
+ failureCount: number;
3836
+ failureReason: Error | null;
3837
+ errorUpdateCount: number;
3838
+ isFetched: boolean;
3839
+ isFetchedAfterMount: boolean;
3840
+ isFetching: boolean;
3841
+ isInitialLoading: boolean;
3842
+ isPaused: boolean;
3843
+ isRefetching: boolean;
3844
+ isStale: boolean;
3845
+ isEnabled: boolean;
3846
+ refetch: (options?: _tanstack_react_query.RefetchOptions) => Promise<_tanstack_react_query.QueryObserverResult<_agg_build_sdk.VenueEvent, Error>>;
3847
+ fetchStatus: _tanstack_react_query.FetchStatus;
3848
+ promise: Promise<_agg_build_sdk.VenueEvent>;
3849
+ };
3850
+
3851
+ interface UseVenueEventsOptions {
3852
+ /** Optional query-key scope to isolate caches across different surfaces. */
3853
+ queryKeyScope?: string;
3854
+ /** If provided, fetch events only from these providers. Omit or empty = both. */
3855
+ venues?: Venue[];
3856
+ /** If provided, filter/search events by this query (relayed to each provider). */
3857
+ search?: string;
3858
+ /** If provided, filter events by category IDs. */
3859
+ categoryIds?: string[];
3860
+ /** If provided, filter by match status. */
3861
+ matchStatus?: MatchStatus[];
3862
+ /** If provided, filter by market status. */
3863
+ status?: MarketStatus[];
3864
+ /** If provided, sort results by this field (e.g. "volume"). */
3865
+ sortBy?: string;
3866
+ /** Sort direction: "asc" or "desc". */
3867
+ sortDir?: string;
3868
+ /** If provided, enable the query. */
3869
+ enabled?: boolean;
3870
+ /** Page size when using cursor pagination. Default 20. */
3871
+ limit?: number;
3872
+ /** If provided, filter by minimum yes price. */
3873
+ minYesPrice?: number;
3874
+ /** If provided, filter by maximum yes price. */
3875
+ maxYesPrice?: number;
3876
+ /** ISO-8601 timestamp. When set, hides events with endDate <= value; NULL-endDate events are kept. */
3877
+ endDateFrom?: string;
3878
+ /**
3879
+ * When restoring from a navigation snapshot, eagerly fetch this many pages
3880
+ * on mount (pages are likely cached by React Query from the prior visit).
3881
+ * Only runs once per mount. Ignored when <= 1.
3882
+ */
3883
+ initialPages?: number;
3884
+ }
3885
+ /**
3886
+ * Fetch venue events from one or both providers (Kalshi, Polymarket) via the API
3887
+ * with cursor-based pagination. Use fetchNextPage for "Load more".
3888
+ */
3889
+ declare function useVenueEvents(options?: UseVenueEventsOptions): {
3890
+ events: VenueEventWithMarkets[];
3891
+ hasNextPage: boolean;
3892
+ loadedPageCount: number;
3893
+ isPlaceholderData: boolean;
3894
+ data: _tanstack_react_query.InfiniteData<_agg_build_sdk.PaginatedResponse<_agg_build_sdk.VenueEvent>, unknown>;
3895
+ error: Error;
3896
+ isError: true;
3897
+ isPending: false;
3898
+ isLoading: false;
3899
+ isLoadingError: false;
3900
+ isRefetchError: true;
3901
+ isSuccess: false;
3902
+ status: "error";
3903
+ fetchNextPage: (options?: _tanstack_react_query.FetchNextPageOptions) => Promise<_tanstack_react_query.InfiniteQueryObserverResult<_tanstack_react_query.InfiniteData<_agg_build_sdk.PaginatedResponse<_agg_build_sdk.VenueEvent>, unknown>, Error>>;
3904
+ fetchPreviousPage: (options?: _tanstack_react_query.FetchPreviousPageOptions) => Promise<_tanstack_react_query.InfiniteQueryObserverResult<_tanstack_react_query.InfiniteData<_agg_build_sdk.PaginatedResponse<_agg_build_sdk.VenueEvent>, unknown>, Error>>;
3905
+ hasPreviousPage: boolean;
3906
+ isFetchNextPageError: boolean;
3907
+ isFetchingNextPage: boolean;
3908
+ isFetchPreviousPageError: boolean;
3909
+ isFetchingPreviousPage: boolean;
3910
+ dataUpdatedAt: number;
3911
+ errorUpdatedAt: number;
3912
+ failureCount: number;
3913
+ failureReason: Error | null;
3914
+ errorUpdateCount: number;
3915
+ isFetched: boolean;
3916
+ isFetchedAfterMount: boolean;
3917
+ isFetching: boolean;
3918
+ isInitialLoading: boolean;
3919
+ isPaused: boolean;
3920
+ isRefetching: boolean;
3921
+ isStale: boolean;
3922
+ isEnabled: boolean;
3923
+ refetch: (options?: _tanstack_react_query.RefetchOptions) => Promise<_tanstack_react_query.QueryObserverResult<_tanstack_react_query.InfiniteData<_agg_build_sdk.PaginatedResponse<_agg_build_sdk.VenueEvent>, unknown>, Error>>;
3924
+ fetchStatus: _tanstack_react_query.FetchStatus;
3925
+ promise: Promise<_tanstack_react_query.InfiniteData<_agg_build_sdk.PaginatedResponse<_agg_build_sdk.VenueEvent>, unknown>>;
3926
+ } | {
3927
+ events: VenueEventWithMarkets[];
3928
+ hasNextPage: boolean;
3929
+ loadedPageCount: number;
3930
+ isPlaceholderData: boolean;
3931
+ data: _tanstack_react_query.InfiniteData<_agg_build_sdk.PaginatedResponse<_agg_build_sdk.VenueEvent>, unknown>;
3932
+ error: null;
3933
+ isError: false;
3934
+ isPending: false;
3935
+ isLoading: false;
3936
+ isLoadingError: false;
3937
+ isRefetchError: false;
3938
+ isFetchNextPageError: false;
3939
+ isFetchPreviousPageError: false;
3940
+ isSuccess: true;
3941
+ status: "success";
3942
+ fetchNextPage: (options?: _tanstack_react_query.FetchNextPageOptions) => Promise<_tanstack_react_query.InfiniteQueryObserverResult<_tanstack_react_query.InfiniteData<_agg_build_sdk.PaginatedResponse<_agg_build_sdk.VenueEvent>, unknown>, Error>>;
3943
+ fetchPreviousPage: (options?: _tanstack_react_query.FetchPreviousPageOptions) => Promise<_tanstack_react_query.InfiniteQueryObserverResult<_tanstack_react_query.InfiniteData<_agg_build_sdk.PaginatedResponse<_agg_build_sdk.VenueEvent>, unknown>, Error>>;
3944
+ hasPreviousPage: boolean;
3945
+ isFetchingNextPage: boolean;
3946
+ isFetchingPreviousPage: boolean;
3947
+ dataUpdatedAt: number;
3948
+ errorUpdatedAt: number;
3949
+ failureCount: number;
3950
+ failureReason: Error | null;
3951
+ errorUpdateCount: number;
3952
+ isFetched: boolean;
3953
+ isFetchedAfterMount: boolean;
3954
+ isFetching: boolean;
3955
+ isInitialLoading: boolean;
3956
+ isPaused: boolean;
3957
+ isRefetching: boolean;
3958
+ isStale: boolean;
3959
+ isEnabled: boolean;
3960
+ refetch: (options?: _tanstack_react_query.RefetchOptions) => Promise<_tanstack_react_query.QueryObserverResult<_tanstack_react_query.InfiniteData<_agg_build_sdk.PaginatedResponse<_agg_build_sdk.VenueEvent>, unknown>, Error>>;
3961
+ fetchStatus: _tanstack_react_query.FetchStatus;
3962
+ promise: Promise<_tanstack_react_query.InfiniteData<_agg_build_sdk.PaginatedResponse<_agg_build_sdk.VenueEvent>, unknown>>;
3963
+ } | {
3964
+ events: VenueEventWithMarkets[];
3965
+ hasNextPage: boolean;
3966
+ loadedPageCount: number;
3967
+ isPlaceholderData: boolean;
3968
+ data: undefined;
3969
+ error: Error;
3970
+ isError: true;
3971
+ isPending: false;
3972
+ isLoading: false;
3973
+ isLoadingError: true;
3974
+ isRefetchError: false;
3975
+ isFetchNextPageError: false;
3976
+ isFetchPreviousPageError: false;
3977
+ isSuccess: false;
3978
+ status: "error";
3979
+ fetchNextPage: (options?: _tanstack_react_query.FetchNextPageOptions) => Promise<_tanstack_react_query.InfiniteQueryObserverResult<_tanstack_react_query.InfiniteData<_agg_build_sdk.PaginatedResponse<_agg_build_sdk.VenueEvent>, unknown>, Error>>;
3980
+ fetchPreviousPage: (options?: _tanstack_react_query.FetchPreviousPageOptions) => Promise<_tanstack_react_query.InfiniteQueryObserverResult<_tanstack_react_query.InfiniteData<_agg_build_sdk.PaginatedResponse<_agg_build_sdk.VenueEvent>, unknown>, Error>>;
3981
+ hasPreviousPage: boolean;
3982
+ isFetchingNextPage: boolean;
3983
+ isFetchingPreviousPage: boolean;
3984
+ dataUpdatedAt: number;
3985
+ errorUpdatedAt: number;
3986
+ failureCount: number;
3987
+ failureReason: Error | null;
3988
+ errorUpdateCount: number;
3989
+ isFetched: boolean;
3990
+ isFetchedAfterMount: boolean;
3991
+ isFetching: boolean;
3992
+ isInitialLoading: boolean;
3993
+ isPaused: boolean;
3994
+ isRefetching: boolean;
3995
+ isStale: boolean;
3996
+ isEnabled: boolean;
3997
+ refetch: (options?: _tanstack_react_query.RefetchOptions) => Promise<_tanstack_react_query.QueryObserverResult<_tanstack_react_query.InfiniteData<_agg_build_sdk.PaginatedResponse<_agg_build_sdk.VenueEvent>, unknown>, Error>>;
3998
+ fetchStatus: _tanstack_react_query.FetchStatus;
3999
+ promise: Promise<_tanstack_react_query.InfiniteData<_agg_build_sdk.PaginatedResponse<_agg_build_sdk.VenueEvent>, unknown>>;
4000
+ } | {
4001
+ events: VenueEventWithMarkets[];
4002
+ hasNextPage: boolean;
4003
+ loadedPageCount: number;
4004
+ isPlaceholderData: boolean;
4005
+ data: undefined;
4006
+ error: null;
4007
+ isError: false;
4008
+ isPending: true;
4009
+ isLoading: true;
4010
+ isLoadingError: false;
4011
+ isRefetchError: false;
4012
+ isFetchNextPageError: false;
4013
+ isFetchPreviousPageError: false;
4014
+ isSuccess: false;
4015
+ status: "pending";
4016
+ fetchNextPage: (options?: _tanstack_react_query.FetchNextPageOptions) => Promise<_tanstack_react_query.InfiniteQueryObserverResult<_tanstack_react_query.InfiniteData<_agg_build_sdk.PaginatedResponse<_agg_build_sdk.VenueEvent>, unknown>, Error>>;
4017
+ fetchPreviousPage: (options?: _tanstack_react_query.FetchPreviousPageOptions) => Promise<_tanstack_react_query.InfiniteQueryObserverResult<_tanstack_react_query.InfiniteData<_agg_build_sdk.PaginatedResponse<_agg_build_sdk.VenueEvent>, unknown>, Error>>;
4018
+ hasPreviousPage: boolean;
4019
+ isFetchingNextPage: boolean;
4020
+ isFetchingPreviousPage: boolean;
4021
+ dataUpdatedAt: number;
4022
+ errorUpdatedAt: number;
4023
+ failureCount: number;
4024
+ failureReason: Error | null;
4025
+ errorUpdateCount: number;
4026
+ isFetched: boolean;
4027
+ isFetchedAfterMount: boolean;
4028
+ isFetching: boolean;
4029
+ isInitialLoading: boolean;
4030
+ isPaused: boolean;
4031
+ isRefetching: boolean;
4032
+ isStale: boolean;
4033
+ isEnabled: boolean;
4034
+ refetch: (options?: _tanstack_react_query.RefetchOptions) => Promise<_tanstack_react_query.QueryObserverResult<_tanstack_react_query.InfiniteData<_agg_build_sdk.PaginatedResponse<_agg_build_sdk.VenueEvent>, unknown>, Error>>;
4035
+ fetchStatus: _tanstack_react_query.FetchStatus;
4036
+ promise: Promise<_tanstack_react_query.InfiniteData<_agg_build_sdk.PaginatedResponse<_agg_build_sdk.VenueEvent>, unknown>>;
4037
+ } | {
4038
+ events: VenueEventWithMarkets[];
4039
+ hasNextPage: boolean;
4040
+ loadedPageCount: number;
4041
+ isPlaceholderData: boolean;
4042
+ data: undefined;
4043
+ error: null;
4044
+ isError: false;
4045
+ isPending: true;
4046
+ isLoadingError: false;
4047
+ isRefetchError: false;
4048
+ isFetchNextPageError: false;
4049
+ isFetchPreviousPageError: false;
4050
+ isSuccess: false;
4051
+ status: "pending";
4052
+ fetchNextPage: (options?: _tanstack_react_query.FetchNextPageOptions) => Promise<_tanstack_react_query.InfiniteQueryObserverResult<_tanstack_react_query.InfiniteData<_agg_build_sdk.PaginatedResponse<_agg_build_sdk.VenueEvent>, unknown>, Error>>;
4053
+ fetchPreviousPage: (options?: _tanstack_react_query.FetchPreviousPageOptions) => Promise<_tanstack_react_query.InfiniteQueryObserverResult<_tanstack_react_query.InfiniteData<_agg_build_sdk.PaginatedResponse<_agg_build_sdk.VenueEvent>, unknown>, Error>>;
4054
+ hasPreviousPage: boolean;
4055
+ isFetchingNextPage: boolean;
4056
+ isFetchingPreviousPage: boolean;
4057
+ dataUpdatedAt: number;
4058
+ errorUpdatedAt: number;
4059
+ failureCount: number;
4060
+ failureReason: Error | null;
4061
+ errorUpdateCount: number;
4062
+ isFetched: boolean;
4063
+ isFetchedAfterMount: boolean;
4064
+ isFetching: boolean;
4065
+ isLoading: boolean;
4066
+ isInitialLoading: boolean;
4067
+ isPaused: boolean;
4068
+ isRefetching: boolean;
4069
+ isStale: boolean;
4070
+ isEnabled: boolean;
4071
+ refetch: (options?: _tanstack_react_query.RefetchOptions) => Promise<_tanstack_react_query.QueryObserverResult<_tanstack_react_query.InfiniteData<_agg_build_sdk.PaginatedResponse<_agg_build_sdk.VenueEvent>, unknown>, Error>>;
4072
+ fetchStatus: _tanstack_react_query.FetchStatus;
4073
+ promise: Promise<_tanstack_react_query.InfiniteData<_agg_build_sdk.PaginatedResponse<_agg_build_sdk.VenueEvent>, unknown>>;
4074
+ } | {
4075
+ events: VenueEventWithMarkets[];
4076
+ hasNextPage: boolean;
4077
+ loadedPageCount: number;
4078
+ isPlaceholderData: boolean;
4079
+ data: _tanstack_react_query.InfiniteData<_agg_build_sdk.PaginatedResponse<_agg_build_sdk.VenueEvent>, unknown>;
4080
+ isError: false;
4081
+ error: null;
4082
+ isPending: false;
4083
+ isLoading: false;
4084
+ isLoadingError: false;
4085
+ isRefetchError: false;
4086
+ isSuccess: true;
4087
+ isFetchNextPageError: false;
4088
+ isFetchPreviousPageError: false;
4089
+ status: "success";
4090
+ fetchNextPage: (options?: _tanstack_react_query.FetchNextPageOptions) => Promise<_tanstack_react_query.InfiniteQueryObserverResult<_tanstack_react_query.InfiniteData<_agg_build_sdk.PaginatedResponse<_agg_build_sdk.VenueEvent>, unknown>, Error>>;
4091
+ fetchPreviousPage: (options?: _tanstack_react_query.FetchPreviousPageOptions) => Promise<_tanstack_react_query.InfiniteQueryObserverResult<_tanstack_react_query.InfiniteData<_agg_build_sdk.PaginatedResponse<_agg_build_sdk.VenueEvent>, unknown>, Error>>;
4092
+ hasPreviousPage: boolean;
4093
+ isFetchingNextPage: boolean;
4094
+ isFetchingPreviousPage: boolean;
4095
+ dataUpdatedAt: number;
4096
+ errorUpdatedAt: number;
4097
+ failureCount: number;
4098
+ failureReason: Error | null;
4099
+ errorUpdateCount: number;
4100
+ isFetched: boolean;
4101
+ isFetchedAfterMount: boolean;
4102
+ isFetching: boolean;
4103
+ isInitialLoading: boolean;
4104
+ isPaused: boolean;
4105
+ isRefetching: boolean;
4106
+ isStale: boolean;
4107
+ isEnabled: boolean;
4108
+ refetch: (options?: _tanstack_react_query.RefetchOptions) => Promise<_tanstack_react_query.QueryObserverResult<_tanstack_react_query.InfiniteData<_agg_build_sdk.PaginatedResponse<_agg_build_sdk.VenueEvent>, unknown>, Error>>;
4109
+ fetchStatus: _tanstack_react_query.FetchStatus;
4110
+ promise: Promise<_tanstack_react_query.InfiniteData<_agg_build_sdk.PaginatedResponse<_agg_build_sdk.VenueEvent>, unknown>>;
4111
+ };
4112
+
4113
+ interface UseVenueMarketsOptions {
4114
+ /** Filter by venue. */
4115
+ venue?: Venue;
4116
+ /** Filter by parent VenueEvent ID. */
4117
+ venueEventId?: string;
4118
+ /** Search by question text. */
4119
+ search?: string;
4120
+ /** Filter by market status. */
4121
+ status?: MarketStatus;
4122
+ /** Filter by match status. */
4123
+ matchStatus?: MatchStatus;
4124
+ /** Filter by category IDs. */
4125
+ categoryIds?: string[];
4126
+ /** Page size when using cursor pagination. Default 20. */
4127
+ limit?: number;
4128
+ /** Enable/disable the query. Default true. */
4129
+ enabled?: boolean;
4130
+ /** Sort by this field. */
4131
+ sortBy?: "volume" | "volume24hr" | "createdAt" | "yesPrice" | "updatedAt";
4132
+ /** Sort direction: "asc" or "desc". */
4133
+ sortDir?: "asc" | "desc";
4134
+ }
4135
+ /**
4136
+ * Fetch venue markets with cursor-based pagination.
4137
+ * Use fetchNextPage for "Load more".
4138
+ */
4139
+ declare function useVenueMarkets(options?: UseVenueMarketsOptions): {
4140
+ markets: _agg_build_sdk.VenueMarket[];
4141
+ hasNextPage: boolean;
4142
+ data: _tanstack_react_query.InfiniteData<_agg_build_sdk.PaginatedResponse<_agg_build_sdk.VenueMarket>, unknown>;
4143
+ error: Error;
4144
+ isError: true;
4145
+ isPending: false;
4146
+ isLoading: false;
4147
+ isLoadingError: false;
4148
+ isRefetchError: true;
4149
+ isSuccess: false;
4150
+ isPlaceholderData: false;
4151
+ status: "error";
4152
+ fetchNextPage: (options?: _tanstack_react_query.FetchNextPageOptions) => Promise<_tanstack_react_query.InfiniteQueryObserverResult<_tanstack_react_query.InfiniteData<_agg_build_sdk.PaginatedResponse<_agg_build_sdk.VenueMarket>, unknown>, Error>>;
4153
+ fetchPreviousPage: (options?: _tanstack_react_query.FetchPreviousPageOptions) => Promise<_tanstack_react_query.InfiniteQueryObserverResult<_tanstack_react_query.InfiniteData<_agg_build_sdk.PaginatedResponse<_agg_build_sdk.VenueMarket>, unknown>, Error>>;
4154
+ hasPreviousPage: boolean;
4155
+ isFetchNextPageError: boolean;
4156
+ isFetchingNextPage: boolean;
4157
+ isFetchPreviousPageError: boolean;
4158
+ isFetchingPreviousPage: boolean;
4159
+ dataUpdatedAt: number;
4160
+ errorUpdatedAt: number;
4161
+ failureCount: number;
4162
+ failureReason: Error | null;
4163
+ errorUpdateCount: number;
4164
+ isFetched: boolean;
4165
+ isFetchedAfterMount: boolean;
4166
+ isFetching: boolean;
4167
+ isInitialLoading: boolean;
4168
+ isPaused: boolean;
4169
+ isRefetching: boolean;
4170
+ isStale: boolean;
4171
+ isEnabled: boolean;
4172
+ refetch: (options?: _tanstack_react_query.RefetchOptions) => Promise<_tanstack_react_query.QueryObserverResult<_tanstack_react_query.InfiniteData<_agg_build_sdk.PaginatedResponse<_agg_build_sdk.VenueMarket>, unknown>, Error>>;
4173
+ fetchStatus: _tanstack_react_query.FetchStatus;
4174
+ promise: Promise<_tanstack_react_query.InfiniteData<_agg_build_sdk.PaginatedResponse<_agg_build_sdk.VenueMarket>, unknown>>;
4175
+ } | {
4176
+ markets: _agg_build_sdk.VenueMarket[];
4177
+ hasNextPage: boolean;
4178
+ data: _tanstack_react_query.InfiniteData<_agg_build_sdk.PaginatedResponse<_agg_build_sdk.VenueMarket>, unknown>;
4179
+ error: null;
4180
+ isError: false;
4181
+ isPending: false;
4182
+ isLoading: false;
4183
+ isLoadingError: false;
4184
+ isRefetchError: false;
4185
+ isFetchNextPageError: false;
4186
+ isFetchPreviousPageError: false;
4187
+ isSuccess: true;
4188
+ isPlaceholderData: false;
4189
+ status: "success";
4190
+ fetchNextPage: (options?: _tanstack_react_query.FetchNextPageOptions) => Promise<_tanstack_react_query.InfiniteQueryObserverResult<_tanstack_react_query.InfiniteData<_agg_build_sdk.PaginatedResponse<_agg_build_sdk.VenueMarket>, unknown>, Error>>;
4191
+ fetchPreviousPage: (options?: _tanstack_react_query.FetchPreviousPageOptions) => Promise<_tanstack_react_query.InfiniteQueryObserverResult<_tanstack_react_query.InfiniteData<_agg_build_sdk.PaginatedResponse<_agg_build_sdk.VenueMarket>, unknown>, Error>>;
4192
+ hasPreviousPage: boolean;
4193
+ isFetchingNextPage: boolean;
4194
+ isFetchingPreviousPage: boolean;
4195
+ dataUpdatedAt: number;
4196
+ errorUpdatedAt: number;
4197
+ failureCount: number;
4198
+ failureReason: Error | null;
4199
+ errorUpdateCount: number;
4200
+ isFetched: boolean;
4201
+ isFetchedAfterMount: boolean;
4202
+ isFetching: boolean;
4203
+ isInitialLoading: boolean;
4204
+ isPaused: boolean;
4205
+ isRefetching: boolean;
4206
+ isStale: boolean;
4207
+ isEnabled: boolean;
4208
+ refetch: (options?: _tanstack_react_query.RefetchOptions) => Promise<_tanstack_react_query.QueryObserverResult<_tanstack_react_query.InfiniteData<_agg_build_sdk.PaginatedResponse<_agg_build_sdk.VenueMarket>, unknown>, Error>>;
4209
+ fetchStatus: _tanstack_react_query.FetchStatus;
4210
+ promise: Promise<_tanstack_react_query.InfiniteData<_agg_build_sdk.PaginatedResponse<_agg_build_sdk.VenueMarket>, unknown>>;
4211
+ } | {
4212
+ markets: _agg_build_sdk.VenueMarket[];
4213
+ hasNextPage: boolean;
4214
+ data: undefined;
4215
+ error: Error;
4216
+ isError: true;
4217
+ isPending: false;
4218
+ isLoading: false;
4219
+ isLoadingError: true;
4220
+ isRefetchError: false;
4221
+ isFetchNextPageError: false;
4222
+ isFetchPreviousPageError: false;
4223
+ isSuccess: false;
4224
+ isPlaceholderData: false;
4225
+ status: "error";
4226
+ fetchNextPage: (options?: _tanstack_react_query.FetchNextPageOptions) => Promise<_tanstack_react_query.InfiniteQueryObserverResult<_tanstack_react_query.InfiniteData<_agg_build_sdk.PaginatedResponse<_agg_build_sdk.VenueMarket>, unknown>, Error>>;
4227
+ fetchPreviousPage: (options?: _tanstack_react_query.FetchPreviousPageOptions) => Promise<_tanstack_react_query.InfiniteQueryObserverResult<_tanstack_react_query.InfiniteData<_agg_build_sdk.PaginatedResponse<_agg_build_sdk.VenueMarket>, unknown>, Error>>;
4228
+ hasPreviousPage: boolean;
4229
+ isFetchingNextPage: boolean;
4230
+ isFetchingPreviousPage: boolean;
4231
+ dataUpdatedAt: number;
4232
+ errorUpdatedAt: number;
4233
+ failureCount: number;
4234
+ failureReason: Error | null;
4235
+ errorUpdateCount: number;
4236
+ isFetched: boolean;
4237
+ isFetchedAfterMount: boolean;
4238
+ isFetching: boolean;
4239
+ isInitialLoading: boolean;
4240
+ isPaused: boolean;
4241
+ isRefetching: boolean;
4242
+ isStale: boolean;
4243
+ isEnabled: boolean;
4244
+ refetch: (options?: _tanstack_react_query.RefetchOptions) => Promise<_tanstack_react_query.QueryObserverResult<_tanstack_react_query.InfiniteData<_agg_build_sdk.PaginatedResponse<_agg_build_sdk.VenueMarket>, unknown>, Error>>;
4245
+ fetchStatus: _tanstack_react_query.FetchStatus;
4246
+ promise: Promise<_tanstack_react_query.InfiniteData<_agg_build_sdk.PaginatedResponse<_agg_build_sdk.VenueMarket>, unknown>>;
4247
+ } | {
4248
+ markets: _agg_build_sdk.VenueMarket[];
4249
+ hasNextPage: boolean;
4250
+ data: undefined;
4251
+ error: null;
4252
+ isError: false;
4253
+ isPending: true;
4254
+ isLoading: true;
4255
+ isLoadingError: false;
4256
+ isRefetchError: false;
4257
+ isFetchNextPageError: false;
4258
+ isFetchPreviousPageError: false;
4259
+ isSuccess: false;
4260
+ isPlaceholderData: false;
4261
+ status: "pending";
4262
+ fetchNextPage: (options?: _tanstack_react_query.FetchNextPageOptions) => Promise<_tanstack_react_query.InfiniteQueryObserverResult<_tanstack_react_query.InfiniteData<_agg_build_sdk.PaginatedResponse<_agg_build_sdk.VenueMarket>, unknown>, Error>>;
4263
+ fetchPreviousPage: (options?: _tanstack_react_query.FetchPreviousPageOptions) => Promise<_tanstack_react_query.InfiniteQueryObserverResult<_tanstack_react_query.InfiniteData<_agg_build_sdk.PaginatedResponse<_agg_build_sdk.VenueMarket>, unknown>, Error>>;
4264
+ hasPreviousPage: boolean;
4265
+ isFetchingNextPage: boolean;
4266
+ isFetchingPreviousPage: boolean;
4267
+ dataUpdatedAt: number;
4268
+ errorUpdatedAt: number;
4269
+ failureCount: number;
4270
+ failureReason: Error | null;
4271
+ errorUpdateCount: number;
4272
+ isFetched: boolean;
4273
+ isFetchedAfterMount: boolean;
4274
+ isFetching: boolean;
4275
+ isInitialLoading: boolean;
4276
+ isPaused: boolean;
4277
+ isRefetching: boolean;
4278
+ isStale: boolean;
4279
+ isEnabled: boolean;
4280
+ refetch: (options?: _tanstack_react_query.RefetchOptions) => Promise<_tanstack_react_query.QueryObserverResult<_tanstack_react_query.InfiniteData<_agg_build_sdk.PaginatedResponse<_agg_build_sdk.VenueMarket>, unknown>, Error>>;
4281
+ fetchStatus: _tanstack_react_query.FetchStatus;
4282
+ promise: Promise<_tanstack_react_query.InfiniteData<_agg_build_sdk.PaginatedResponse<_agg_build_sdk.VenueMarket>, unknown>>;
4283
+ } | {
4284
+ markets: _agg_build_sdk.VenueMarket[];
4285
+ hasNextPage: boolean;
4286
+ data: undefined;
4287
+ error: null;
4288
+ isError: false;
4289
+ isPending: true;
4290
+ isLoadingError: false;
4291
+ isRefetchError: false;
4292
+ isFetchNextPageError: false;
4293
+ isFetchPreviousPageError: false;
4294
+ isSuccess: false;
4295
+ isPlaceholderData: false;
4296
+ status: "pending";
4297
+ fetchNextPage: (options?: _tanstack_react_query.FetchNextPageOptions) => Promise<_tanstack_react_query.InfiniteQueryObserverResult<_tanstack_react_query.InfiniteData<_agg_build_sdk.PaginatedResponse<_agg_build_sdk.VenueMarket>, unknown>, Error>>;
4298
+ fetchPreviousPage: (options?: _tanstack_react_query.FetchPreviousPageOptions) => Promise<_tanstack_react_query.InfiniteQueryObserverResult<_tanstack_react_query.InfiniteData<_agg_build_sdk.PaginatedResponse<_agg_build_sdk.VenueMarket>, unknown>, Error>>;
4299
+ hasPreviousPage: boolean;
4300
+ isFetchingNextPage: boolean;
4301
+ isFetchingPreviousPage: boolean;
4302
+ dataUpdatedAt: number;
4303
+ errorUpdatedAt: number;
4304
+ failureCount: number;
4305
+ failureReason: Error | null;
4306
+ errorUpdateCount: number;
4307
+ isFetched: boolean;
4308
+ isFetchedAfterMount: boolean;
4309
+ isFetching: boolean;
4310
+ isLoading: boolean;
4311
+ isInitialLoading: boolean;
4312
+ isPaused: boolean;
4313
+ isRefetching: boolean;
4314
+ isStale: boolean;
4315
+ isEnabled: boolean;
4316
+ refetch: (options?: _tanstack_react_query.RefetchOptions) => Promise<_tanstack_react_query.QueryObserverResult<_tanstack_react_query.InfiniteData<_agg_build_sdk.PaginatedResponse<_agg_build_sdk.VenueMarket>, unknown>, Error>>;
4317
+ fetchStatus: _tanstack_react_query.FetchStatus;
4318
+ promise: Promise<_tanstack_react_query.InfiniteData<_agg_build_sdk.PaginatedResponse<_agg_build_sdk.VenueMarket>, unknown>>;
4319
+ } | {
4320
+ markets: _agg_build_sdk.VenueMarket[];
4321
+ hasNextPage: boolean;
4322
+ data: _tanstack_react_query.InfiniteData<_agg_build_sdk.PaginatedResponse<_agg_build_sdk.VenueMarket>, unknown>;
4323
+ isError: false;
4324
+ error: null;
4325
+ isPending: false;
4326
+ isLoading: false;
4327
+ isLoadingError: false;
4328
+ isRefetchError: false;
4329
+ isSuccess: true;
4330
+ isPlaceholderData: true;
4331
+ isFetchNextPageError: false;
4332
+ isFetchPreviousPageError: false;
4333
+ status: "success";
4334
+ fetchNextPage: (options?: _tanstack_react_query.FetchNextPageOptions) => Promise<_tanstack_react_query.InfiniteQueryObserverResult<_tanstack_react_query.InfiniteData<_agg_build_sdk.PaginatedResponse<_agg_build_sdk.VenueMarket>, unknown>, Error>>;
4335
+ fetchPreviousPage: (options?: _tanstack_react_query.FetchPreviousPageOptions) => Promise<_tanstack_react_query.InfiniteQueryObserverResult<_tanstack_react_query.InfiniteData<_agg_build_sdk.PaginatedResponse<_agg_build_sdk.VenueMarket>, unknown>, Error>>;
4336
+ hasPreviousPage: boolean;
4337
+ isFetchingNextPage: boolean;
4338
+ isFetchingPreviousPage: boolean;
4339
+ dataUpdatedAt: number;
4340
+ errorUpdatedAt: number;
4341
+ failureCount: number;
4342
+ failureReason: Error | null;
4343
+ errorUpdateCount: number;
4344
+ isFetched: boolean;
4345
+ isFetchedAfterMount: boolean;
4346
+ isFetching: boolean;
4347
+ isInitialLoading: boolean;
4348
+ isPaused: boolean;
4349
+ isRefetching: boolean;
4350
+ isStale: boolean;
4351
+ isEnabled: boolean;
4352
+ refetch: (options?: _tanstack_react_query.RefetchOptions) => Promise<_tanstack_react_query.QueryObserverResult<_tanstack_react_query.InfiniteData<_agg_build_sdk.PaginatedResponse<_agg_build_sdk.VenueMarket>, unknown>, Error>>;
4353
+ fetchStatus: _tanstack_react_query.FetchStatus;
4354
+ promise: Promise<_tanstack_react_query.InfiniteData<_agg_build_sdk.PaginatedResponse<_agg_build_sdk.VenueMarket>, unknown>>;
4355
+ };
4356
+
4357
+ interface UseVenueMarketMidpointsOptions {
4358
+ venueMarketIds: string[];
4359
+ enabled?: boolean;
4360
+ }
4361
+ declare function useVenueMarketMidpoints(options: UseVenueMarketMidpointsOptions): {
4362
+ midpointRows: (MidpointRow & {
4363
+ outcomes: _agg_build_sdk.OutcomeMidpointRow[];
4364
+ matched: MidpointRow[];
4365
+ })[];
4366
+ midpointsByVenueMarketId: Map<string, number | null>;
4367
+ requestedVenueMarketIds: string[];
4368
+ data: BatchMidpointsResponse;
4369
+ error: Error;
4370
+ isError: true;
4371
+ isPending: false;
4372
+ isLoading: false;
4373
+ isLoadingError: false;
4374
+ isRefetchError: true;
4375
+ isSuccess: false;
4376
+ isPlaceholderData: false;
4377
+ status: "error";
4378
+ dataUpdatedAt: number;
4379
+ errorUpdatedAt: number;
4380
+ failureCount: number;
4381
+ failureReason: Error | null;
4382
+ errorUpdateCount: number;
4383
+ isFetched: boolean;
4384
+ isFetchedAfterMount: boolean;
4385
+ isFetching: boolean;
4386
+ isInitialLoading: boolean;
4387
+ isPaused: boolean;
4388
+ isRefetching: boolean;
4389
+ isStale: boolean;
4390
+ isEnabled: boolean;
4391
+ refetch: (options?: _tanstack_react_query.RefetchOptions) => Promise<_tanstack_react_query.QueryObserverResult<BatchMidpointsResponse, Error>>;
4392
+ fetchStatus: _tanstack_react_query.FetchStatus;
4393
+ promise: Promise<BatchMidpointsResponse>;
4394
+ } | {
4395
+ midpointRows: (MidpointRow & {
4396
+ outcomes: _agg_build_sdk.OutcomeMidpointRow[];
4397
+ matched: MidpointRow[];
4398
+ })[];
4399
+ midpointsByVenueMarketId: Map<string, number | null>;
4400
+ requestedVenueMarketIds: string[];
4401
+ data: BatchMidpointsResponse;
4402
+ error: null;
4403
+ isError: false;
4404
+ isPending: false;
4405
+ isLoading: false;
4406
+ isLoadingError: false;
4407
+ isRefetchError: false;
4408
+ isSuccess: true;
4409
+ isPlaceholderData: false;
4410
+ status: "success";
4411
+ dataUpdatedAt: number;
4412
+ errorUpdatedAt: number;
4413
+ failureCount: number;
4414
+ failureReason: Error | null;
4415
+ errorUpdateCount: number;
4416
+ isFetched: boolean;
4417
+ isFetchedAfterMount: boolean;
4418
+ isFetching: boolean;
4419
+ isInitialLoading: boolean;
4420
+ isPaused: boolean;
4421
+ isRefetching: boolean;
4422
+ isStale: boolean;
4423
+ isEnabled: boolean;
4424
+ refetch: (options?: _tanstack_react_query.RefetchOptions) => Promise<_tanstack_react_query.QueryObserverResult<BatchMidpointsResponse, Error>>;
4425
+ fetchStatus: _tanstack_react_query.FetchStatus;
4426
+ promise: Promise<BatchMidpointsResponse>;
4427
+ } | {
4428
+ midpointRows: (MidpointRow & {
4429
+ outcomes: _agg_build_sdk.OutcomeMidpointRow[];
4430
+ matched: MidpointRow[];
4431
+ })[];
4432
+ midpointsByVenueMarketId: Map<string, number | null>;
4433
+ requestedVenueMarketIds: string[];
4434
+ data: undefined;
4435
+ error: Error;
4436
+ isError: true;
4437
+ isPending: false;
4438
+ isLoading: false;
4439
+ isLoadingError: true;
4440
+ isRefetchError: false;
4441
+ isSuccess: false;
4442
+ isPlaceholderData: false;
4443
+ status: "error";
4444
+ dataUpdatedAt: number;
4445
+ errorUpdatedAt: number;
4446
+ failureCount: number;
4447
+ failureReason: Error | null;
4448
+ errorUpdateCount: number;
4449
+ isFetched: boolean;
4450
+ isFetchedAfterMount: boolean;
4451
+ isFetching: boolean;
4452
+ isInitialLoading: boolean;
4453
+ isPaused: boolean;
4454
+ isRefetching: boolean;
4455
+ isStale: boolean;
4456
+ isEnabled: boolean;
4457
+ refetch: (options?: _tanstack_react_query.RefetchOptions) => Promise<_tanstack_react_query.QueryObserverResult<BatchMidpointsResponse, Error>>;
4458
+ fetchStatus: _tanstack_react_query.FetchStatus;
4459
+ promise: Promise<BatchMidpointsResponse>;
4460
+ } | {
4461
+ midpointRows: (MidpointRow & {
4462
+ outcomes: _agg_build_sdk.OutcomeMidpointRow[];
4463
+ matched: MidpointRow[];
4464
+ })[];
4465
+ midpointsByVenueMarketId: Map<string, number | null>;
4466
+ requestedVenueMarketIds: string[];
4467
+ data: undefined;
4468
+ error: null;
4469
+ isError: false;
4470
+ isPending: true;
4471
+ isLoading: true;
4472
+ isLoadingError: false;
4473
+ isRefetchError: false;
4474
+ isSuccess: false;
4475
+ isPlaceholderData: false;
4476
+ status: "pending";
4477
+ dataUpdatedAt: number;
4478
+ errorUpdatedAt: number;
4479
+ failureCount: number;
4480
+ failureReason: Error | null;
4481
+ errorUpdateCount: number;
4482
+ isFetched: boolean;
4483
+ isFetchedAfterMount: boolean;
4484
+ isFetching: boolean;
4485
+ isInitialLoading: boolean;
4486
+ isPaused: boolean;
4487
+ isRefetching: boolean;
4488
+ isStale: boolean;
4489
+ isEnabled: boolean;
4490
+ refetch: (options?: _tanstack_react_query.RefetchOptions) => Promise<_tanstack_react_query.QueryObserverResult<BatchMidpointsResponse, Error>>;
4491
+ fetchStatus: _tanstack_react_query.FetchStatus;
4492
+ promise: Promise<BatchMidpointsResponse>;
4493
+ } | {
4494
+ midpointRows: (MidpointRow & {
4495
+ outcomes: _agg_build_sdk.OutcomeMidpointRow[];
4496
+ matched: MidpointRow[];
4497
+ })[];
4498
+ midpointsByVenueMarketId: Map<string, number | null>;
4499
+ requestedVenueMarketIds: string[];
4500
+ data: undefined;
4501
+ error: null;
4502
+ isError: false;
4503
+ isPending: true;
4504
+ isLoadingError: false;
4505
+ isRefetchError: false;
4506
+ isSuccess: false;
4507
+ isPlaceholderData: false;
4508
+ status: "pending";
4509
+ dataUpdatedAt: number;
4510
+ errorUpdatedAt: number;
4511
+ failureCount: number;
4512
+ failureReason: Error | null;
4513
+ errorUpdateCount: number;
4514
+ isFetched: boolean;
4515
+ isFetchedAfterMount: boolean;
4516
+ isFetching: boolean;
4517
+ isLoading: boolean;
4518
+ isInitialLoading: boolean;
4519
+ isPaused: boolean;
4520
+ isRefetching: boolean;
4521
+ isStale: boolean;
4522
+ isEnabled: boolean;
4523
+ refetch: (options?: _tanstack_react_query.RefetchOptions) => Promise<_tanstack_react_query.QueryObserverResult<BatchMidpointsResponse, Error>>;
4524
+ fetchStatus: _tanstack_react_query.FetchStatus;
4525
+ promise: Promise<BatchMidpointsResponse>;
4526
+ } | {
4527
+ midpointRows: (MidpointRow & {
4528
+ outcomes: _agg_build_sdk.OutcomeMidpointRow[];
4529
+ matched: MidpointRow[];
4530
+ })[];
4531
+ midpointsByVenueMarketId: Map<string, number | null>;
4532
+ requestedVenueMarketIds: string[];
4533
+ data: BatchMidpointsResponse;
4534
+ isError: false;
4535
+ error: null;
4536
+ isPending: false;
4537
+ isLoading: false;
4538
+ isLoadingError: false;
4539
+ isRefetchError: false;
4540
+ isSuccess: true;
4541
+ isPlaceholderData: true;
4542
+ status: "success";
4543
+ dataUpdatedAt: number;
4544
+ errorUpdatedAt: number;
4545
+ failureCount: number;
4546
+ failureReason: Error | null;
4547
+ errorUpdateCount: number;
4548
+ isFetched: boolean;
4549
+ isFetchedAfterMount: boolean;
4550
+ isFetching: boolean;
4551
+ isInitialLoading: boolean;
4552
+ isPaused: boolean;
4553
+ isRefetching: boolean;
4554
+ isStale: boolean;
4555
+ isEnabled: boolean;
4556
+ refetch: (options?: _tanstack_react_query.RefetchOptions) => Promise<_tanstack_react_query.QueryObserverResult<BatchMidpointsResponse, Error>>;
4557
+ fetchStatus: _tanstack_react_query.FetchStatus;
4558
+ promise: Promise<BatchMidpointsResponse>;
4559
+ };
4560
+
4561
+ interface PriceGapMarket {
4562
+ id: string;
4563
+ matchedVenueMarkets?: Array<{
4564
+ id: string;
4565
+ }> | null;
4566
+ }
4567
+ interface ComputePriceGapsInput {
4568
+ markets: PriceGapMarket[];
4569
+ midpointsByVenueMarketId: Map<string, number | null>;
4570
+ }
4571
+ /**
4572
+ * Returns Map<targetVenueMarketId, gapPct> for markets whose gap is >= MIN_PRICE_GAP_PCT.
4573
+ *
4574
+ * Gap = max over matched siblings of
4575
+ * `Math.abs(ownMidpoint - siblingMidpoint) / ownMidpoint * 100`
4576
+ *
4577
+ * Skip markets whose own midpoint is null/<=0. Skip sibling pairings whose
4578
+ * midpoint is null/<=0. Omit markets whose resulting gap is < MIN_PRICE_GAP_PCT.
4579
+ */
4580
+ declare function computePriceGaps(input: ComputePriceGapsInput): Map<string, number>;
4581
+
4582
+ /**
4583
+ * Fetch REST midpoints for a *dynamic* set of venue markets and cache them
4584
+ * for the hook lifetime.
4585
+ *
4586
+ * Designed for viewport-driven use cases (e.g. an IntersectionObserver-gated
4587
+ * list) where `visibleMarkets` changes as the user scrolls. Guarantees:
4588
+ *
4589
+ * • A market that was already fetched in this hook instance is **not**
4590
+ * refetched when the visible set changes — scrolling out and back in
4591
+ * reuses the cached value instead of re-hitting the network.
4592
+ * • Markets that become visible for the first time are batched into a
4593
+ * single request on the next render.
4594
+ *
4595
+ * The returned `prices` map is keyed by outcome id — "Yes" outcomes get the
4596
+ * aggregated best midpoint across matched venues; "No" outcomes get its
4597
+ * complement (1 - midpoint).
4598
+ */
4599
+ declare function useViewportMidpoints(visibleMarkets: VenueMarket[]): {
4600
+ prices: Map<string, number>;
4601
+ };
4602
+
4603
+ interface UseVisibleIdsOptions {
4604
+ /** IntersectionObserver root margin. Expand to pre-fetch just off-screen. */
4605
+ rootMargin?: string;
4606
+ /** IntersectionObserver threshold. Default 0 (fires on any overlap). */
4607
+ threshold?: number | number[];
4608
+ }
4609
+ interface UseVisibleIdsResult {
4610
+ /** Ids whose observed elements currently intersect the viewport. */
4611
+ visibleIds: Set<string>;
4612
+ /**
4613
+ * Returns a React callback ref for the element keyed by `id`. Attach it to
4614
+ * the card's DOM root; detaching (null) removes the id from observation.
4615
+ */
4616
+ register: (id: string) => (el: Element | null) => void;
4617
+ }
4618
+ /**
4619
+ * Track which ids are currently visible via IntersectionObserver. Useful for
4620
+ * gating expensive per-item work (e.g. polling) to on-screen items only.
4621
+ *
4622
+ * Callers pass a stable `id` per registered element; `visibleIds` updates as
4623
+ * elements enter and leave the viewport.
4624
+ */
4625
+ declare function useVisibleIds(options?: UseVisibleIdsOptions): UseVisibleIdsResult;
4626
+
4627
+ interface UseAppConfigResult {
4628
+ disabledVenues: AppClientConfigResponse["disabledVenues"];
4629
+ disabledCategoryPresets: AppClientConfigResponse["disabledCategoryPresets"];
4630
+ earlyAccessEnabled: AppClientConfigResponse["earlyAccessEnabled"];
4631
+ isLoading: boolean;
4632
+ error: unknown;
4633
+ }
4634
+ /**
4635
+ * Fetch the current App's UI config (disabled venues + category presets).
4636
+ * Cached for 5 minutes — config rarely changes at runtime.
4637
+ */
4638
+ declare function useAppConfig(): UseAppConfigResult;
4639
+
4640
+ export { AUTH_CHOOSER_OPEN_EVENT, type AggAuthContextValue, type AggAuthSignInOptions, type AggBalanceContextValue, AggBalanceProvider, AggProvider, type AggProviderProps, AggProvider as AggSdkProvider, type AggProviderProps as AggSdkProviderProps, type AggUiConfig, type AggUiConfigInput, type AggUiLabels, type AggUiLabelsInput, AggUiProvider, CHART_TIME_RANGES, CONFIRMED_MATCH_STATUSES, type ChartTimeRange, type ClosedPositionTotals, type ComputePriceGapsInput, DEFAULT_AGG_ROOT_CLASS_NAME, type DagStepProgress, type EventListStateContextValue, EventListStateProvider, type EventListStateSnapshot, type EventTradingContextValue, type EventTradingState, type ExecutionProgressPhase, type ExecutionTerminalOrderEvent, type GeoBlockState, type GetOrdersQuery, type GetPositionsQuery, type LiveCandle, type MarketChartCandle, type MarketChartData, type MarketChartVenueData, type MarketOrderbookData, type MarketOrderbookIntegrity, MarketStatus, type MarketTradingState, MatchStatus, MatchType, type OrderEligibility, type OrderEligibilityReason, type OrderListItem, type OrderbookResult, type PositionGroup, type PriceGapMarket, type RedeemEvent, type ScaledCandlePoint, type SdkUiConfig, type SdkUiConfigInput, type SdkUiProviderProps, type ThemeMode, type TradingAction, type TradingState, type TradingStateBase, type TradingStateKind, type UseAggAuthOptions, type UseAggAuthReturn, type UseAppConfigResult, type UseCategoriesOptions, type UseEnrichedVenueEventOptions, type UseExecuteManagedOptions, type UseExecutionOrdersOptions, type UseExecutionPositionsOptions, type UseExecutionProgressOptions, type UseExecutionProgressResult, type UseExternalIdOptions, type UseExternalIdReturn, type UseLinkAccountReturn, type UseLiveCandleOverlayOptions, type UseLiveCandleOverlayResult, type UseLiveCandlesOptions, type UseLiveCandlesResult, type UseLiveMarketResult, type UseManagedBalancesOptions, type UseMarketChartOptions, type UseMarketChartResult, type UseMarketOrderbookOptions, type UseMarketOrderbookResult, type UseMarketOrderbookVenueOutcome, type UseOrderBookOptions, type UseOrderbookQuoteOptions, type UseOrderbookQuoteResult, type UseOrdersOptions, type UsePositionsOptions, type UseQuoteManagedOptions, type UseSearchOptions, type UseSmartRouteOptions, type UseSmartRouteResult, type UseUserActivityOptions, type UseUserHoldingsOptions, type UseVenueEventOptions, type UseVenueEventsOptions, type UseVenueMarketMidpointsOptions, type UseVenueMarketsOptions, type UseVisibleIdsOptions, type UseVisibleIdsResult, type UseWithdrawManagedOptions, Venue, type VenueEvent, type VenueEventWithMarkets, type VenueMarket, type VenueMarketOutcome, type WalletActionSendTokenParams, type WalletActions, computeClosedPositionTotals, computePriceGaps, defaultAggUiConfig, defaultAggUiConfig as defaultSdkUiConfig, executionKeys, findLivePriceById, getBuilder, getOrCreateBuilder, getWalletAddressFromUserProfile, invalidateBalanceQueries, invalidatePositionQueries, optimizedImageUrl, parseEmail, parseEmailStrict, requestAggAuthChooserOpen, resolveAggUiLabels, resolveDefaultMarket as resolveDefaultTradingMarket, resolveEventTradingState, resolveMarketTradingState, resolveMarketWinningOutcome, resolveOrderEligibility, resolveTradingStateKind, sortVenues, timeRangeToInterval, tradingReducer, useAggAuth, useAggAuthContext, useAggAuthState, useAggBalance, useAggBalanceContext, useAggBalanceState, useAggClient, useAggLabels, useAggUiConfig, useAggWebSocket, useAppConfig, useCategories, useDebouncedValue, useEnrichedVenueEvent, useEventListState, useEventOrderbookData, useEventTradingContext, useExecuteManaged, useExecutionOrders, useExecutionPositions, useExecutionProgress, useExternalId, useGeoBlock, useLabels, useLinkAccount, useLiveCandleOverlay, useLiveCandles, useLiveMarket, useLiveMarketStores, useLiveOutcomePrices, useLiveTrades, useManagedBalances, useMarketChart, useMarketOrderbook, useMidpoints, useOnBalanceUpdate, useOnOrderSubmitted, useOnRedeemEvent, useOrderBook, useOrderbookQuote, useOrders, usePositions, useQuoteManaged, useRampQuotes, useRampSession, useRedeem, useRedeemEligibleCount, useSdkLabels, useSdkUiConfig, useSearch, useSmartRoute, useUserActivity, useUserHoldings, useVenueEvent, useVenueEvents, useVenueMarketMidpoints, useVenueMarkets, useViewportMidpoints, useVisibleIds, useWithdrawManaged };