@coinlist-co/react 0.12.2-rc.9fb6364 → 0.12.2-rc.aa91ce3

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.
Files changed (32) hide show
  1. package/dist/{chunk-KRA6EM2L.js → chunk-3OTYQADF.js} +78 -4
  2. package/dist/chunk-3OTYQADF.js.map +1 -0
  3. package/dist/{chunk-BNMF2HMW.js → chunk-IAY3F42Q.js} +892 -512
  4. package/dist/chunk-IAY3F42Q.js.map +1 -0
  5. package/dist/{chunk-STAHYDLY.js → chunk-QRVIBG6H.js} +2 -2
  6. package/dist/client/index.cjs +5891 -3786
  7. package/dist/client/index.cjs.map +1 -1
  8. package/dist/client/index.d.cts +845 -30
  9. package/dist/client/index.d.ts +845 -30
  10. package/dist/client/index.js +2598 -910
  11. package/dist/client/index.js.map +1 -1
  12. package/dist/server/index.cjs +361 -66
  13. package/dist/server/index.cjs.map +1 -1
  14. package/dist/server/index.d.cts +27 -5
  15. package/dist/server/index.d.ts +27 -5
  16. package/dist/server/index.js +9 -6
  17. package/dist/server/index.js.map +1 -1
  18. package/dist/{tokens-namespace-BJfFeowE.d.cts → time-DyjvzWso.d.cts} +735 -59
  19. package/dist/{tokens-namespace-BJfFeowE.d.ts → time-DyjvzWso.d.ts} +735 -59
  20. package/dist/{token-registry-snapshot-C1NxdBmF.d.ts → token-registry-snapshot-Bldj1r5X.d.ts} +74 -8
  21. package/dist/{token-registry-snapshot-DyjrA32p.d.cts → token-registry-snapshot-CbNCYP_5.d.cts} +74 -8
  22. package/dist/universal/index.cjs +848 -377
  23. package/dist/universal/index.cjs.map +1 -1
  24. package/dist/universal/index.d.cts +79 -6
  25. package/dist/universal/index.d.ts +79 -6
  26. package/dist/universal/index.js +36 -2
  27. package/package.json +1 -1
  28. package/dist/chunk-BNMF2HMW.js.map +0 -1
  29. package/dist/chunk-KRA6EM2L.js.map +0 -1
  30. package/dist/time-B5YOQxuh.d.ts +0 -50
  31. package/dist/time-BY3apBpc.d.cts +0 -50
  32. /package/dist/{chunk-STAHYDLY.js.map → chunk-QRVIBG6H.js.map} +0 -0
@@ -1,9 +1,9 @@
1
1
  import * as react from 'react';
2
2
  import { ReactNode, ButtonHTMLAttributes } from 'react';
3
- import { A as AuthorizationCode, C as CodeVerifier, L as Logger, W as WalletError, E as Erc20Namespace, a as EthereumChain, b as EvmContractAddress, B as BlockchainAmount, c as CoinListTokenSaleNamespace, O as OfferId, d as OfferOptionId, e as AssetId, P as Participation, f as CoinListTokenSaleNamespaceImpl, U as UniversalNamespaceContext, g as OndoNamespace, h as AssetSymbol, i as OfferSwapContract, j as OndoBuyTransaction, k as OndoSellTransaction, l as OndoSwapTransactionCore, m as OrderBookSide, n as OndoNamespaceImpl, S as SuperstateSwapNamespace, o as WalletsNamespace, p as Bps, q as EvmWalletAddress, r as SuperstateSwapNamespaceImpl, R as RequirementsNamespace, s as Requirement, t as RequirementsNamespaceImpl, u as Config, v as OAuthAccessToken, w as OffersNamespace, T as TokensNamespace, x as StablecoinSymbol, y as Erc20Asset, z as OfferDetail, D as TokenMetadata, F as OfferType, G as OndoSwapOfferDetail, H as CoinListTokenSaleOfferDetail, I as SuperstateSwapOfferDetail, J as Offer, K as RequirementStatusInfo, M as RequirementType, N as RequirementStatusValue, Q as OfferOptionAddress, V as RequirementId, X as KycLevelName, Y as DocumentSubmission, Z as WalletChallengeType, _ as PinoLoggerOptions, $ as OndoTradingStatus, a0 as AssetDecimals, a1 as BuildOndoBuyParams, a2 as BuildOndoSellParams, a3 as OndoQuote, a4 as OndoQuoteSize, a5 as TokenIdentifier, a6 as OfferOptionAddressId, a7 as TokenLogo } from '../tokens-namespace-BJfFeowE.js';
4
- export { a8 as DebugEvent, a9 as FrontlineEventId, aa as HttpError, ab as HttpResponse, ac as KycToken, ad as LogBinding, ae as LogBindings, af as LogCause, ag as LogLevel, ah as LogScope, ai as LogValue, aj as ProductionLogLevel, ak as RedactedWalletError, al as RequestId, am as RpcFailureReason, an as SafeEvent, ao as SafeFields, ap as UnredactedFields } from '../tokens-namespace-BJfFeowE.js';
5
- import { P as PKCEConfig, E as EvmWallet, S as SwapQuote, A as AssetIconUrl, a as ShortenedWalletAddress, F as FormattedAmountAssetUi, b as FormattedPercentUi, T as TxExplorerUrl, C as ConnectWallet, N as NonEmptyArray, c as TokenRegistrySnapshot } from '../token-registry-snapshot-C1NxdBmF.js';
6
- export { B as BroadcastTxParams, d as EvmSigner, W as WriteContractParams } from '../token-registry-snapshot-C1NxdBmF.js';
3
+ import { A as AuthorizationCode, C as CodeVerifier, L as Logger, W as WalletError, a as CentrifugeNamespace, E as EthereumChain, b as AssetSymbol, c as CentrifugeClaimDirection, B as BlockchainAmount, d as CentrifugeNamespaceImpl, e as Erc20Namespace, f as EvmContractAddress, g as CoinListTokenSaleNamespace, O as OfferId, h as OfferOptionId, i as AssetId, P as Participation, j as CoinListTokenSaleNamespaceImpl, U as UniversalNamespaceContext, k as OndoNamespace, l as OfferSwapContract, m as OndoBuyTransaction, n as OndoSellTransaction, o as OndoSwapTransactionCore, p as OrderBookSide, q as OndoNamespaceImpl, S as SuperstateSwapNamespace, r as WalletsNamespace, s as Bps, t as EvmWalletAddress, u as SuperstateSwapNamespaceImpl, R as RequirementsNamespace, v as Requirement, w as RequirementsNamespaceImpl, x as Config, y as OAuthAccessToken, z as OffersNamespace, T as TokensNamespace, D as StablecoinSymbol, F as Erc20Asset, G as OfferDetail, H as TokenMetadata, I as CentrifugeVaultOfferDetail, J as OfferType, K as OndoSwapOfferDetail, M as CoinListTokenSaleOfferDetail, N as SuperstateSwapOfferDetail, Q as CentrifugeVaultLegId, V as Seconds, X as AsyncOfferType, Y as AsyncOfferDetail, Z as Offer, _ as RequirementStatusInfo, $ as RequirementType, a0 as RequirementStatusValue, a1 as OfferOptionAddress, a2 as RequirementId, a3 as KycLevelName, a4 as DocumentSubmission, a5 as WalletChallengeType, a6 as PinoLoggerOptions, a7 as CentrifugeOrderReason, a8 as CentrifugeOrderability, a9 as CentrifugeVaultQuote, aa as OndoTradingStatus, ab as AssetDecimals, ac as BuildOndoBuyParams, ad as BuildOndoSellParams, ae as OndoQuote, af as OndoQuoteSize, ag as TokenIdentifier, ah as CentrifugeVaultLeg, ai as OfferOptionAddressId, aj as CentrifugeVaultStatus, ak as TokenLogo } from '../time-DyjvzWso.js';
4
+ export { al as DebugEvent, am as FrontlineEventId, an as HttpError, ao as HttpResponse, ap as KycToken, aq as LogBinding, ar as LogBindings, as as LogCause, at as LogLevel, au as LogScope, av as LogValue, aw as ProductionLogLevel, ax as RedactedWalletError, ay as RequestId, az as RpcFailureReason, aA as SafeEvent, aB as SafeFields, aC as UnredactedFields } from '../time-DyjvzWso.js';
5
+ import { P as PKCEConfig, E as EvmWallet, S as SwapQuote, A as AssetIconUrl, a as ShortenedWalletAddress, F as FormattedAmountAssetUi, b as FormattedPercentUi, T as TxExplorerUrl, W as WalletSelection, c as WalletLabelResolver, C as ConnectWallet, N as NonEmptyArray, d as TokenRegistrySnapshot } from '../token-registry-snapshot-Bldj1r5X.js';
6
+ export { B as BroadcastTxParams, e as EvmSigner, f as ExternalWalletAdapter, g as WriteContractParams } from '../token-registry-snapshot-Bldj1r5X.js';
7
7
  import { Hash } from 'viem';
8
8
  import * as class_variance_authority_types from 'class-variance-authority/types';
9
9
  import { VariantProps } from 'class-variance-authority';
@@ -114,6 +114,88 @@ declare class ClientAuthNamespaceImpl implements ClientAuthNamespace {
114
114
  private readOauthCallback;
115
115
  }
116
116
 
117
+ /** Progress phases emitted by {@link claimCentrifugeVault}, in order. */
118
+ type CentrifugeClaimPhase = 'preparing' | 'awaiting-wallet' | 'confirming';
119
+ /**
120
+ * A step-tagged reason a claim failed.
121
+ *
122
+ * `prepare` reasons are split out where the remedy differs: a wallet with
123
+ * nothing to claim has already been paid (a fill was claimed elsewhere, or a
124
+ * new request auto-claimed it), and a frozen wallet needs the issuer, not a
125
+ * retry. Everything else at that step is offered a retry.
126
+ *
127
+ * A mined transaction that reverted is a `confirm` failure carrying a
128
+ * `contract_reverted` cause, so a caller switches on one arm for "the chain
129
+ * said no" whether the wallet or the receipt reported it.
130
+ */
131
+ type CentrifugeClaimError = {
132
+ step: 'prepare';
133
+ reason: 'nothing-to-claim' | 'frozen' | 'generic';
134
+ } | {
135
+ step: 'broadcast';
136
+ cause: WalletError;
137
+ } | {
138
+ step: 'confirm';
139
+ cause: WalletError;
140
+ };
141
+ type CentrifugeClaimResult = {
142
+ type: 'success';
143
+ direction: CentrifugeClaimDirection;
144
+ txHash: Hash;
145
+ /**
146
+ * What the calldata was built to collect: shares for `invest`, the
147
+ * funding token for `redeem`. A floor rather than an exact figure - a
148
+ * fill landing before the broadcast raises it, and the claim collects
149
+ * everything.
150
+ */
151
+ claimed: BlockchainAmount;
152
+ } | {
153
+ type: 'error';
154
+ error: CentrifugeClaimError;
155
+ };
156
+ type ClaimCentrifugeVaultParams = {
157
+ centrifuge: CentrifugeNamespace;
158
+ /**
159
+ * The wallet that holds the position, and the one that broadcasts: the
160
+ * proxy credits the sender, so no other wallet can claim for it.
161
+ */
162
+ wallet: EvmWallet;
163
+ chain: EthereumChain;
164
+ /** Share token symbol of the vault, e.g. `deJTRSY`. */
165
+ symbol: AssetSymbol;
166
+ direction: CentrifugeClaimDirection;
167
+ onProgress?: (phase: CentrifugeClaimPhase) => void;
168
+ };
169
+ /**
170
+ * Claims everything a wallet has claimable on one side of a vault: builds the
171
+ * calldata, broadcasts it from that wallet and waits for it to mine.
172
+ *
173
+ * One function for both directions because the API forks only at the build
174
+ * step - `/claim` and `/claim-proceeds` are two endpoints - while broadcasting
175
+ * reads calldata and nothing else. Total: every failure comes back as a step
176
+ * tag rather than a throw.
177
+ *
178
+ * Nothing is approved first. A claim moves tokens out of the proxy, not out of
179
+ * the wallet, so there is no allowance to grant.
180
+ */
181
+ declare function claimCentrifugeVault(params: ClaimCentrifugeVaultParams): Promise<CentrifugeClaimResult>;
182
+
183
+ /**
184
+ * The Centrifuge namespace plus the half of a vault trade that needs a wallet:
185
+ * claiming what a fill made claimable, and so cannot live on the shared
186
+ * namespace.
187
+ */
188
+ interface ClientCentrifugeNamespace extends CentrifugeNamespace {
189
+ /**
190
+ * Claims everything the wallet has claimable on one side of the vault and
191
+ * waits for it to mine. Returns a step-tagged result rather than throwing.
192
+ */
193
+ claim(params: Omit<ClaimCentrifugeVaultParams, 'centrifuge'>): Promise<CentrifugeClaimResult>;
194
+ }
195
+ declare class ClientCentrifugeNamespaceImpl extends CentrifugeNamespaceImpl implements ClientCentrifugeNamespace {
196
+ claim(params: Omit<ClaimCentrifugeVaultParams, 'centrifuge'>): Promise<CentrifugeClaimResult>;
197
+ }
198
+
117
199
  type Erc20AllowancePhase = 'checking-allowance' | 'resetting-allowance' | 'confirming-allowance-reset' | 'approving' | 'confirming-approval';
118
200
  type Erc20AllowanceResult = {
119
201
  type: 'success';
@@ -804,6 +886,16 @@ interface CoinListClient {
804
886
  * {@link ClientOndoNamespace}.
805
887
  */
806
888
  readonly ondo: ClientOndoNamespace;
889
+ /**
890
+ * Centrifuge vault reads and claims: an indicative quote, the vault-wide
891
+ * ordering gate, each wallet's position, and the claim that settles a
892
+ * filled request - e.g. `coinlist.centrifuge.getQuote({ ... })`.
893
+ *
894
+ * The reads are free to poll. The quote has no expiry: it is indicative,
895
+ * the fund prices fulfilment later, and a countdown would imply a
896
+ * commitment the API does not make.
897
+ */
898
+ readonly centrifuge: ClientCentrifugeNamespace;
807
899
  /**
808
900
  * Token display metadata (name, symbol, decimals, logos) from CoinList's
809
901
  * public token registry, keyed by chain + contract address — e.g.
@@ -897,7 +989,7 @@ type CoinListStyleScopeProps = {
897
989
  declare function CoinListStyleScope({ children }: CoinListStyleScopeProps): react.JSX.Element;
898
990
 
899
991
  declare const buttonVariants: (props?: ({
900
- variant?: "link" | "primary" | "gradient" | "secondary" | "destructive" | "ghost" | "destructiveLink" | null | undefined;
992
+ variant?: "link" | "primary" | "gradient" | "secondary" | "destructive" | "outline" | "ghost" | "destructiveLink" | null | undefined;
901
993
  size?: "default" | "sm" | "lg" | "cta" | "icon" | null | undefined;
902
994
  radius?: "pill" | "rounded" | null | undefined;
903
995
  fullWidth?: boolean | null | undefined;
@@ -1517,6 +1609,7 @@ type CheckoutConfigByOfferType = {
1517
1609
  'ondo::swap': OndoCheckoutConfig;
1518
1610
  'superstate::swap': SuperstateCheckoutConfig;
1519
1611
  'coinlist::token_sale': CoinListTokenSaleCheckoutConfig;
1612
+ 'centrifuge::vault': CentrifugeVaultCheckoutConfig;
1520
1613
  };
1521
1614
  type OndoCheckoutConfig = {
1522
1615
  /**
@@ -1584,13 +1677,21 @@ type SuperstateCheckoutConfig = {
1584
1677
  type CoinListTokenSaleCheckoutConfig = {
1585
1678
  render: (offer: CoinListTokenSaleOfferDetail) => ReactNode;
1586
1679
  };
1680
+ /**
1681
+ * The SDK ships no Centrifuge vault UI yet, so the host supplies it, as it
1682
+ * does for {@link CoinListTokenSaleCheckoutConfig} and for the same reason
1683
+ * takes the offer. A host that never lists vault offers returns `null`.
1684
+ */
1685
+ type CentrifugeVaultCheckoutConfig = {
1686
+ render: (offer: CentrifugeVaultOfferDetail) => ReactNode;
1687
+ };
1587
1688
  /**
1588
1689
  * The parts of {@link CheckoutConfig} only the host can know.
1589
1690
  *
1590
1691
  * What is missing from this list is what {@link defaultCheckoutConfig} can fill
1591
1692
  * in on its own.
1592
1693
  */
1593
- type RequiredCheckoutConfig = Pick<CheckoutConfig, 'ondo::swap' | 'coinlist::token_sale'>;
1694
+ type RequiredCheckoutConfig = Pick<CheckoutConfig, 'ondo::swap' | 'coinlist::token_sale' | 'centrifuge::vault'>;
1594
1695
  /**
1595
1696
  * Fills in the config entries that have a sensible default, so a host only
1596
1697
  * writes the ones that do not.
@@ -1606,6 +1707,7 @@ type RequiredCheckoutConfig = Pick<CheckoutConfig, 'ondo::swap' | 'coinlist::tok
1606
1707
  * side: () => 'buy',
1607
1708
  * },
1608
1709
  * 'coinlist::token_sale': { render: (offer) => <MyTokenSalePage offer={offer} /> },
1710
+ * 'centrifuge::vault': { render: () => null },
1609
1711
  * });
1610
1712
  * ```
1611
1713
  */
@@ -1695,6 +1797,7 @@ interface CheckoutContainerProps {
1695
1797
  * const config = defaultCheckoutConfig({
1696
1798
  * 'ondo::swap': { symbol: (o) => AssetSymbol(o.asset.code), side: () => 'sell' },
1697
1799
  * 'coinlist::token_sale': { render: (o) => <MyTokenSalePage offer={o} /> },
1800
+ * 'centrifuge::vault': { render: () => null },
1698
1801
  * });
1699
1802
  * ```
1700
1803
  *
@@ -1881,18 +1984,17 @@ type OndoBuyReviewUiEvent = {
1881
1984
  };
1882
1985
 
1883
1986
  /**
1884
- * Why an Ondo checkout cannot run at all, as opposed to a step of it failing.
1987
+ * Why an Ondo checkout cannot run right now, as opposed to a step of it
1988
+ * failing.
1885
1989
  *
1886
- * One arm today, and a union rather than a bare flag because the View switches
1887
- * on it for copy and because the next entry here is already foreseeable: an
1888
- * offer whose asset Ondo has delisted is the same kind of "there is no flow to
1889
- * render" that no step can localise.
1990
+ * A union rather than a bare flag because the View switches on it for copy.
1890
1991
  *
1891
- * Shared by both products because it is a property of the integration rather
1892
- * than of a direction: buying and selling go through the same contract, so a
1893
- * chain that cannot serve one cannot serve the other. That is the exception
1894
- * the provider-level `shared/` exists for, and it is narrow - the step states
1895
- * below stay per-product, since that is where the two genuinely diverge.
1992
+ * Shared by both products because each reason is a property of the integration
1993
+ * or of the market rather than of a direction: buying and selling go through
1994
+ * the same contract, so a chain that cannot serve one cannot serve the other,
1995
+ * and a closed market reads the same whichever way the trade runs. That is the
1996
+ * exception the provider-level `shared/` exists for, and it is narrow - the
1997
+ * step states stay per-product, since that is where the two genuinely diverge.
1896
1998
  */
1897
1999
  type OndoCheckoutErrorReason =
1898
2000
  /**
@@ -1903,7 +2005,38 @@ type OndoCheckoutErrorReason =
1903
2005
  * offer and the chain are fixed for the lifetime of the mount. See
1904
2006
  * `swapSpender`.
1905
2007
  */
1906
- 'unsupported-chain';
2008
+ 'unsupported-chain'
2009
+ /**
2010
+ * Ondo is not filling orders for this asset on this side right now: the
2011
+ * market is closed or paused, or the asset is paused or closed for the
2012
+ * session. Known from the trading-status poll, never assumed from a status
2013
+ * that is still loading or failed to load.
2014
+ *
2015
+ * Unlike `unsupported-chain` this one clears on its own. The trading-status
2016
+ * poll keeps running underneath it, and the checkout comes back once the
2017
+ * asset is tradable again. Only shown while the user is on the step the flow
2018
+ * opened on: once they are past it, a pause is a step's to report, so it
2019
+ * cannot pull an order out from under the user mid-flow.
2020
+ */
2021
+ | 'not-tradable';
2022
+ declare const OndoCheckoutErrorReason: {
2023
+ /**
2024
+ * Which reason, if any, replaces the whole checkout. `null` means the steps
2025
+ * render.
2026
+ *
2027
+ * `unsupported-chain` wins because it is settled at mount: no market state
2028
+ * can make a chain with no contract tradable. `not-tradable` needs both a
2029
+ * market *known* to be closed and a user still at the start of the flow,
2030
+ * with no order confirmation on screen. Past the first step a pause belongs
2031
+ * to the step it interrupts, and a just-placed order's dialog must not be
2032
+ * hidden by a market that closed after it filled.
2033
+ */
2034
+ of: ({ swappableHere, notTradable, atEntry, }: {
2035
+ swappableHere: boolean;
2036
+ notTradable: boolean;
2037
+ atEntry: boolean;
2038
+ }) => OndoCheckoutErrorReason | null;
2039
+ };
1907
2040
 
1908
2041
  /**
1909
2042
  * The reference panel beside the Ondo checkout: which asset is being bought,
@@ -2048,7 +2181,11 @@ type OndoBuyCheckoutUiState = {
2048
2181
  sidebar: OndoSidebarUiState;
2049
2182
  orderConfirmed: OndoOrderConfirmedUiState;
2050
2183
  }
2051
- /** There is no checkout to render. Nothing is fetched and no timer runs. */
2184
+ /**
2185
+ * There is no checkout to render. For `unsupported-chain` nothing is fetched
2186
+ * and no timer runs; for `not-tradable` the trading-status poll keeps
2187
+ * running, so the checkout comes back once the market opens.
2188
+ */
2052
2189
  | {
2053
2190
  type: 'error';
2054
2191
  reason: OndoCheckoutErrorReason;
@@ -2469,7 +2606,11 @@ type OndoSellCheckoutUiState = {
2469
2606
  sidebar: OndoSidebarUiState;
2470
2607
  orderConfirmed: OndoSellOrderConfirmedUiState;
2471
2608
  }
2472
- /** There is no checkout to render. Nothing is fetched and no timer runs. */
2609
+ /**
2610
+ * There is no checkout to render. For `unsupported-chain` nothing is fetched
2611
+ * and no timer runs; for `not-tradable` the trading-status poll keeps
2612
+ * running, so the checkout comes back once the market opens.
2613
+ */
2473
2614
  | {
2474
2615
  type: 'error';
2475
2616
  reason: OndoCheckoutErrorReason;
@@ -2665,7 +2806,8 @@ interface OndoCheckoutErrorProps {
2665
2806
  className?: string;
2666
2807
  }
2667
2808
  /**
2668
- * What an Ondo checkout renders when there is no checkout to render.
2809
+ * What an Ondo checkout renders when there is no checkout to render, or none
2810
+ * the user can act on right now.
2669
2811
  *
2670
2812
  * Shared by both products rather than duplicated in each, because the reason
2671
2813
  * is a property of the integration and not of the direction: a chain that
@@ -2673,9 +2815,10 @@ interface OndoCheckoutErrorProps {
2673
2815
  * sentence twice.
2674
2816
  *
2675
2817
  * No retry, deliberately. Superstate's equivalent offers one for `load-failed`,
2676
- * where a re-fetch can genuinely succeed; every reason here is settled at mount
2677
- * and cannot change under a button. Offering one that provably cannot help is
2678
- * worse than offering none.
2818
+ * where a re-fetch can genuinely succeed. Here `unsupported-chain` is settled
2819
+ * at mount and cannot change under a button, and `not-tradable` clears on its
2820
+ * own once the market opens, since the viewmodel keeps polling underneath it.
2821
+ * Offering a button that provably cannot help is worse than offering none.
2679
2822
  *
2680
2823
  * Self-scoped, like every exported component: it renders fully styled with no
2681
2824
  * provider in the tree, and the scope is idempotent so nesting costs nothing.
@@ -3204,6 +3347,328 @@ interface SuperstateWalletViewProps {
3204
3347
  */
3205
3348
  declare function SuperstateWalletView(props: SuperstateWalletViewProps): ReactNode;
3206
3349
 
3350
+ /**
3351
+ * The claim card.
3352
+ *
3353
+ * `HIDDEN` renders nothing: the user is signed out, or there is nothing to
3354
+ * show and no wallet to connect. A host that wants an empty state can tell
3355
+ * both apart itself.
3356
+ */
3357
+ type CentrifugeVaultClaimUiState = {
3358
+ type: 'HIDDEN';
3359
+ } | {
3360
+ type: 'LOADING';
3361
+ externalWallet: ClaimExternalWalletUi;
3362
+ } | {
3363
+ type: 'ERROR';
3364
+ externalWallet: ClaimExternalWalletUi;
3365
+ } | {
3366
+ type: 'CONTENT';
3367
+ rows: CentrifugeClaimRowUi[];
3368
+ externalWallet: ClaimExternalWalletUi;
3369
+ dialog: CentrifugeClaimDialogUi;
3370
+ };
3371
+ type CentrifugeVaultClaimUiEvent = {
3372
+ type: 'ON_CLAIM';
3373
+ legId: CentrifugeVaultLegId;
3374
+ } | {
3375
+ type: 'ON_RETRY_CLAIM';
3376
+ } | {
3377
+ type: 'ON_CLOSE_CLAIM_DIALOG';
3378
+ } | {
3379
+ type: 'ON_RETRY_LOAD';
3380
+ } | {
3381
+ type: 'ON_CONNECT_WALLET';
3382
+ } | {
3383
+ type: 'ON_CHANGE_WALLET';
3384
+ };
3385
+ /** Why a claimable row cannot be claimed right now. */
3386
+ type CentrifugeClaimBlockedReasonUi = 'vault-paused' | 'wallet-frozen';
3387
+ /**
3388
+ * What a claimable row's Claim button does. `claiming` while a claim on the
3389
+ * row has not settled, including one whose dialog was closed: the
3390
+ * transaction is still in the wallet or the mempool, and a second press
3391
+ * would send another.
3392
+ */
3393
+ type CentrifugeClaimActionUi = {
3394
+ type: 'enabled';
3395
+ } | {
3396
+ type: 'claiming';
3397
+ } | {
3398
+ type: 'blocked';
3399
+ reason: CentrifugeClaimBlockedReasonUi;
3400
+ };
3401
+ /**
3402
+ * A row of the card. A leg yields a `pending` row while anything is queued
3403
+ * and a `claimable` row while anything is filled, so one wallet can show
3404
+ * both at once.
3405
+ *
3406
+ * The two kinds lay out differently on purpose: a pending row names the
3407
+ * offer and what is queued, a claimable row leads with what the user gets.
3408
+ */
3409
+ type CentrifugeClaimRowUi = {
3410
+ kind: 'pending';
3411
+ /** Unique within the card, for React keys. */
3412
+ key: string;
3413
+ iconUrl: AssetIconUrl | null;
3414
+ /** The offer's name, e.g. `JTRSY deRWA`. */
3415
+ title: string;
3416
+ /** What is queued: funding for `invest`, shares for `redeem`. */
3417
+ amount: FormattedAmountAssetUi;
3418
+ wallet: string;
3419
+ } | {
3420
+ kind: 'claimable';
3421
+ key: string;
3422
+ legId: CentrifugeVaultLegId;
3423
+ iconUrl: AssetIconUrl | null;
3424
+ /**
3425
+ * What a claim pays out: exact shares for `invest`, an estimate of the
3426
+ * funding token (prefixed `~`) for `redeem`.
3427
+ */
3428
+ amount: FormattedAmountAssetUi;
3429
+ wallet: string;
3430
+ action: CentrifugeClaimActionUi;
3431
+ };
3432
+ /** A connect or change request the host's connector is handling. */
3433
+ type ExternalWalletRequestUi = 'idle' | 'pending' | 'failed';
3434
+ /**
3435
+ * The card's footer. `hidden` when the host offers no connector, so there is
3436
+ * nothing to connect with.
3437
+ */
3438
+ type ClaimExternalWalletUi = {
3439
+ type: 'hidden';
3440
+ } | {
3441
+ type: 'disconnected';
3442
+ request: ExternalWalletRequestUi;
3443
+ } | {
3444
+ type: 'connected';
3445
+ wallet: string;
3446
+ request: ExternalWalletRequestUi;
3447
+ };
3448
+ /** The steps a claim goes through, in order, as the dialog lists them. */
3449
+ type CentrifugeClaimStepUi = 'preparing' | 'awaiting-wallet' | 'confirming';
3450
+ /** Why a claim failed, in the flavours the dialog words differently. */
3451
+ type CentrifugeClaimFailureUi = 'nothing-to-claim' | 'wallet-frozen' | 'rejected' | 'insufficient-gas' | 'reverted' | 'generic';
3452
+ type CentrifugeClaimProgressUi = {
3453
+ type: 'running';
3454
+ step: CentrifugeClaimStepUi;
3455
+ } | {
3456
+ type: 'failed';
3457
+ step: CentrifugeClaimStepUi;
3458
+ reason: CentrifugeClaimFailureUi;
3459
+ /**
3460
+ * Whether the dialog offers "Try again". `nothing-to-claim` has already
3461
+ * been paid and `wallet-frozen` needs the issuer, so retrying either only
3462
+ * repeats the refusal.
3463
+ */
3464
+ retryable: boolean;
3465
+ } | {
3466
+ type: 'succeeded';
3467
+ claimed: FormattedAmountAssetUi;
3468
+ explorerUrl: TxExplorerUrl;
3469
+ };
3470
+ type CentrifugeClaimDialogUi = {
3471
+ type: 'closed';
3472
+ } | {
3473
+ type: 'open';
3474
+ /** What the claim pays out, which the dialog's title names. */
3475
+ amount: FormattedAmountAssetUi;
3476
+ progress: CentrifugeClaimProgressUi;
3477
+ };
3478
+
3479
+ interface UseCentrifugeVaultClaimViewModelOptions {
3480
+ offer: CentrifugeVaultOfferDetail;
3481
+ wallets: WalletSelection;
3482
+ /** Names a wallet for display; unnamed ones show a shortened address. */
3483
+ walletLabel?: WalletLabelResolver;
3484
+ /** Fired once a claim has mined, whether or not the dialog is still open. */
3485
+ onClaimed?: (claim: CentrifugeVaultClaimed) => void;
3486
+ /** How often to re-read pending positions and vault status. */
3487
+ pollInterval?: Seconds;
3488
+ /** Default `true`. `false` turns off every request and timer. */
3489
+ enabled?: boolean;
3490
+ }
3491
+ interface UseCentrifugeVaultClaimViewModelResult {
3492
+ state: CentrifugeVaultClaimUiState;
3493
+ onEvent: (event: CentrifugeVaultClaimUiEvent) => void;
3494
+ }
3495
+ /**
3496
+ * What a host hears once a claim has mined. `claimed` is what the calldata
3497
+ * was built to collect: shares for `invest`, the funding token for `redeem`.
3498
+ */
3499
+ type CentrifugeVaultClaimed = {
3500
+ direction: CentrifugeClaimDirection;
3501
+ chain: EthereumChain;
3502
+ walletAddress: EvmWalletAddress;
3503
+ txHash: Hash;
3504
+ claimed: BlockchainAmount;
3505
+ };
3506
+ /**
3507
+ * The Centrifuge claim card: every wallet's pending and claimable positions on
3508
+ * an offer's vaults, and the claim that collects a filled one.
3509
+ *
3510
+ * The vaults come from the offer's `vaultContracts`, each chain's share and
3511
+ * funding token resolved through the token registry; a chain whose tokens the
3512
+ * registry does not list is left out and logged. Positions are read for every
3513
+ * wallet the host supplied, on both legs, and polled while anything is
3514
+ * pending. Vault status gates the Claim button, and is polled while the page
3515
+ * is visible.
3516
+ *
3517
+ * A claim runs in a dialog that tracks its steps. It is broadcast from the
3518
+ * wallet that holds the row - the proxy credits the sender - and on success
3519
+ * every position is read again, so the claimed amount leaves the card.
3520
+ */
3521
+ declare function useCentrifugeVaultClaimViewModel({ offer, wallets, walletLabel, onClaimed, pollInterval, enabled, }: UseCentrifugeVaultClaimViewModelOptions): UseCentrifugeVaultClaimViewModelResult;
3522
+
3523
+ /**
3524
+ * Everything `ClaimContainer` needs that the offer cannot tell it, keyed by
3525
+ * the async offer type it belongs to.
3526
+ *
3527
+ * Keyed by {@link AsyncOfferType} with every key required, for the same reason
3528
+ * as `CheckoutConfig`: a host rendering `ClaimContainer` is saying it will
3529
+ * handle whatever async offer it is given, so a new async provider is a
3530
+ * compile error in every host rather than a card that silently renders
3531
+ * nothing. Per-integration, not per-offer: a host builds it once.
3532
+ */
3533
+ type ClaimConfig = {
3534
+ [K in AsyncOfferType]: ClaimConfigByOfferType[K];
3535
+ };
3536
+ /**
3537
+ * What each async offer type needs, before {@link ClaimConfig} maps
3538
+ * `AsyncOfferType` over it. Private, so a new member of `AsyncOfferDetail`
3539
+ * with no entry here fails to index this type in the SDK first.
3540
+ */
3541
+ type ClaimConfigByOfferType = {
3542
+ 'centrifuge::vault': CentrifugeVaultClaimConfig;
3543
+ };
3544
+ /**
3545
+ * Centrifuge needs nothing required today: the vaults come from the offer and
3546
+ * the token registry. The key still has to be supplied, so that the day it
3547
+ * does need something the omission is a compile error.
3548
+ */
3549
+ type CentrifugeVaultClaimConfig = {
3550
+ /** Fired once a claim has mined. The dialog shows either way. */
3551
+ onClaimed?: (claim: CentrifugeVaultClaimed) => void;
3552
+ };
3553
+ interface ClaimContainerProps {
3554
+ /**
3555
+ * The async offer whose positions to show. Its `type` decides which
3556
+ * provider renders. Narrow an `OfferDetail` with `AsyncOfferDetail.is`.
3557
+ */
3558
+ offer: AsyncOfferDetail;
3559
+ /**
3560
+ * The wallets to read positions for and claim from, and the host's
3561
+ * external-wallet connector. Pass `externalAdapter: null` to hide the
3562
+ * connect affordance.
3563
+ */
3564
+ wallets: WalletSelection;
3565
+ /**
3566
+ * Names a wallet for display, e.g. `'CoinList Wallet'` for the embedded
3567
+ * one. Omitted, or returning `null`, shows the shortened address.
3568
+ */
3569
+ walletLabel?: WalletLabelResolver;
3570
+ /** What each async offer type needs beyond the offer itself. */
3571
+ config: ClaimConfig;
3572
+ /**
3573
+ * Default `true`. `false` turns off every request and timer in the mounted
3574
+ * provider, for a card that is on the tree but not on screen yet.
3575
+ */
3576
+ enabled?: boolean;
3577
+ className?: string;
3578
+ }
3579
+ /**
3580
+ * The plug-and-play claim card: hand it an async offer and it renders the
3581
+ * right provider's positions - what is pending, what is claimable - and the
3582
+ * claim that collects them.
3583
+ *
3584
+ * The second leg of an async trade. The user placed a request earlier, the
3585
+ * fund fills it on its own schedule, and they come back - days or weeks later
3586
+ * - to claim. So the card is its own entry on the offer page rather than a
3587
+ * checkout step.
3588
+ *
3589
+ * Only the matching provider's container is mounted, so its viewmodel is the
3590
+ * only one that runs. The `switch` is exhaustive against
3591
+ * {@link AsyncOfferType}, and the `default` branch assigns to
3592
+ * `const exhaustive: never`, so a new async offer type is a compile error here
3593
+ * as well as in {@link ClaimConfig}.
3594
+ *
3595
+ * ```tsx
3596
+ * {AsyncOfferDetail.is(offer) && (
3597
+ * <ClaimContainer
3598
+ * key={offer.id}
3599
+ * offer={offer}
3600
+ * wallets={{ embedded, external, externalAdapter }}
3601
+ * walletLabel={(address) => (isEmbedded(address) ? 'CoinList Wallet' : null)}
3602
+ * config={{ 'centrifuge::vault': {} }}
3603
+ * />
3604
+ * )}
3605
+ * ```
3606
+ */
3607
+ declare function ClaimContainer({ offer, wallets, walletLabel, config, enabled, className, }: ClaimContainerProps): ReactNode;
3608
+
3609
+ interface CentrifugeVaultClaimContainerProps {
3610
+ /** The vault offer whose positions to show: its chains come from `vaultContracts`. */
3611
+ offer: CentrifugeVaultOfferDetail;
3612
+ /** The wallets to read positions for and claim from. */
3613
+ wallets: WalletSelection;
3614
+ /** Names a wallet for display; unnamed ones show a shortened address. */
3615
+ walletLabel?: WalletLabelResolver;
3616
+ /** Fired once a claim has mined. The dialog shows either way. */
3617
+ onClaimed?: (claim: CentrifugeVaultClaimed) => void;
3618
+ /**
3619
+ * Default `true`. `false` turns off every request and timer, for a card
3620
+ * that is mounted but not on screen yet.
3621
+ */
3622
+ enabled?: boolean;
3623
+ className?: string;
3624
+ }
3625
+ /**
3626
+ * The Centrifuge claim card: every wallet's pending and claimable positions on
3627
+ * a vault offer, polled while anything is pending, and the claim that
3628
+ * collects a filled one.
3629
+ */
3630
+ declare function CentrifugeVaultClaimContainer({ offer, wallets, walletLabel, onClaimed, enabled, className, }: CentrifugeVaultClaimContainerProps): ReactNode;
3631
+
3632
+ interface CentrifugeVaultClaimDialogProps {
3633
+ dialog: CentrifugeClaimDialogUi;
3634
+ onRetry: () => void;
3635
+ onClose: () => void;
3636
+ }
3637
+ /**
3638
+ * The dialog a claim runs in: its steps as they happen, the step that broke
3639
+ * and why, or what was claimed.
3640
+ *
3641
+ * Closing it mid-claim is allowed and cancels nothing: a broadcast claim
3642
+ * still mines, and the card refetches when it does.
3643
+ */
3644
+ declare function CentrifugeVaultClaimDialog({ dialog, onRetry, onClose, }: CentrifugeVaultClaimDialogProps): ReactNode;
3645
+
3646
+ interface CentrifugeVaultClaimRowProps {
3647
+ row: CentrifugeClaimRowUi;
3648
+ /** Asked for when the row is claimable and its Claim button is pressed. */
3649
+ onClaim: () => void;
3650
+ }
3651
+ /**
3652
+ * One position row of the claim card.
3653
+ *
3654
+ * A pending row names the offer and, on the right, what is queued and from
3655
+ * which wallet. A claimable row leads with what the user gets, and puts the
3656
+ * Claim button where the amount would be. A blocked claim keeps its row and
3657
+ * says why under it, so the user is not left wondering where their claim went.
3658
+ */
3659
+ declare function CentrifugeVaultClaimRow({ row, onClaim, }: CentrifugeVaultClaimRowProps): ReactNode;
3660
+
3661
+ interface CentrifugeVaultClaimViewProps {
3662
+ state: CentrifugeVaultClaimUiState;
3663
+ onEvent: (event: CentrifugeVaultClaimUiEvent) => void;
3664
+ className?: string;
3665
+ }
3666
+ /**
3667
+ * The claim card: a wallet's pending and claimable Centrifuge positions, the
3668
+ * footer that connects an external wallet, and the dialog a claim runs in.
3669
+ */
3670
+ declare function CentrifugeVaultClaimView({ state, onEvent, className, }: CentrifugeVaultClaimViewProps): ReactNode;
3671
+
3207
3672
  /**
3208
3673
  * One image as an `<img>` renders it: a `src` for a consumer that takes a
3209
3674
  * single URL, and the `srcSet` candidates for one that also knows the size
@@ -4350,6 +4815,111 @@ interface UseCompleteOAuthOptions {
4350
4815
  */
4351
4816
  declare function useCompleteOAuth(options: UseCompleteOAuthOptions): void;
4352
4817
 
4818
+ /**
4819
+ * User-facing copy for each `can_order` reason F-0 publishes.
4820
+ *
4821
+ * A record keyed by the closed set, so a new reason fails to compile here
4822
+ * until it has a sentence. The View (or a viewmodel mapping into one) should
4823
+ * render this rather than the wire token.
4824
+ *
4825
+ * Status never returns `below_minimum`; a quote can. Both call this with
4826
+ * whichever subset they actually hold.
4827
+ */
4828
+ declare const CENTRIFUGE_VAULT_ORDER_REASON_MESSAGES: Record<CentrifugeOrderReason, string>;
4829
+ declare function centrifugeVaultOrderReasonMessage(reason: CentrifugeOrderReason): string;
4830
+ /**
4831
+ * The most blocking reason in `reasons`, or `null` when the list is empty.
4832
+ */
4833
+ declare function primaryCentrifugeVaultOrderReason<T extends CentrifugeOrderReason>(reasons: readonly T[]): T | null;
4834
+ /**
4835
+ * The sentence to show for an {@link CentrifugeOrderability}, or `null` when
4836
+ * the request can proceed. Accepts a quote's full reason set or a status's
4837
+ * narrower one.
4838
+ */
4839
+ declare function centrifugeVaultOrderingMessage<R extends CentrifugeOrderReason>(orderability: CentrifugeOrderability<R>): string | null;
4840
+
4841
+ /**
4842
+ * Why a Centrifuge read failed, in the only two flavours a UI acts on
4843
+ * differently.
4844
+ *
4845
+ * `not-authenticated` is split out because no retry helps until the user
4846
+ * signs in. Everything else collapses into `generic-error` and is offered a
4847
+ * retry.
4848
+ */
4849
+ type CentrifugeLoadErrorReason = 'not-authenticated' | 'generic-error';
4850
+ declare function centrifugeLoadErrorReason(error: unknown): CentrifugeLoadErrorReason;
4851
+
4852
+ /**
4853
+ * The state of the indicative-quote poll.
4854
+ *
4855
+ * - `LOADING`: no quote yet (initial, or the provider is still initializing).
4856
+ * - `ERROR`: no quote could be fetched at all.
4857
+ * - `CONTENT`: a quote is in hand; `isRefreshing` says whether a newer one
4858
+ * is on the way.
4859
+ *
4860
+ * A poll that fails with a quote already in hand stays `CONTENT`: the last
4861
+ * quote is worth more to a user than a blank panel, and the next tick retries
4862
+ * within seconds. `ERROR` therefore means "never got one".
4863
+ *
4864
+ * There is no expiry on this quote. It is indicative, the fund prices
4865
+ * fulfilment later, and a countdown would imply a commitment the API does
4866
+ * not make. Freshness is the poll interval, not a TTL.
4867
+ */
4868
+ type LoadCentrifugeQuoteState = {
4869
+ type: 'LOADING';
4870
+ } | {
4871
+ type: 'ERROR';
4872
+ reason: CentrifugeLoadErrorReason;
4873
+ } | {
4874
+ type: 'CONTENT';
4875
+ quote: CentrifugeVaultQuote;
4876
+ isRefreshing: boolean;
4877
+ };
4878
+ interface UseCentrifugeQuoteOptions {
4879
+ /** Share token symbol of the vault, e.g. `deJTRSY`. */
4880
+ symbol: AssetSymbol;
4881
+ chain: EthereumChain;
4882
+ /** The spend to price, in the funding token's base units. */
4883
+ amount: BlockchainAmount;
4884
+ /** How often to refresh. Defaults to {@link CENTRIFUGE_POLL_INTERVAL_MS}. */
4885
+ pollIntervalMs?: number;
4886
+ /**
4887
+ * A quote the caller already holds, typically fetched server-side, used as
4888
+ * the state the hook opens on so a server-rendered panel needs no loading
4889
+ * pass.
4890
+ *
4891
+ * It seeds the first render only: the poll still fetches immediately. A
4892
+ * quote is worth as much as it is fresh, and the amount being priced
4893
+ * changes as the flow advances, so a seed that suppressed the first read
4894
+ * would be offering the server's answer - or another amount's - as this
4895
+ * one's.
4896
+ */
4897
+ data?: CentrifugeVaultQuote;
4898
+ /** When false, the hook neither fetches nor polls. */
4899
+ enabled: boolean;
4900
+ }
4901
+ interface UseCentrifugeQuoteResult {
4902
+ state: LoadCentrifugeQuoteState;
4903
+ }
4904
+ /**
4905
+ * Polls Centrifuge's indicative quote for `amount` of `symbol` on `chain`.
4906
+ *
4907
+ * Free to poll: this quote spends no attestation and commits nothing, which
4908
+ * is why it may run while the user is still deciding. It also cannot be
4909
+ * executed - committing a request is `coinlist.centrifuge` invest, which is
4910
+ * not this hook.
4911
+ *
4912
+ * Disabled (or before the provider is ready) it neither fetches nor holds a
4913
+ * timer, and stays on whatever state it opened with - `LOADING`, or the
4914
+ * `data` seed - rather than reporting an error.
4915
+ *
4916
+ * A `data` quote opens the state instead of `LOADING` and is otherwise left
4917
+ * to the poll: the first tick fires as it always does, and only replaces the
4918
+ * seed once it has a quote of its own. Until it does the state is `CONTENT`
4919
+ * with `isRefreshing` set, which is what that flag is for.
4920
+ */
4921
+ declare function useCentrifugeQuote(options: UseCentrifugeQuoteOptions): UseCentrifugeQuoteResult;
4922
+
4353
4923
  type LoadParticipationsReason = 'not-authenticated' | 'generic-error';
4354
4924
  type LoadParticipationsState = {
4355
4925
  type: 'LOADING';
@@ -4489,11 +5059,13 @@ declare function validateAmount({ input, decimals, balance, symbol, minimumPurch
4489
5059
  }): OndoBuyAmountValidation;
4490
5060
 
4491
5061
  /**
4492
- * Why an Ondo read failed, in the only two flavours a UI acts on differently.
5062
+ * Why an Ondo read failed, in the three flavours a UI acts on differently.
4493
5063
  *
4494
5064
  * `not-authenticated` is split out because no retry helps until the user signs
4495
- * in, and because the remedy is one the UI can name. Everything else collapses
4496
- * into `generic-error` and is offered a retry.
5065
+ * in, and because the remedy is one the UI can name. `not-tradable` is split
5066
+ * out for the same reason: the market is closed or paused, so the remedy is to
5067
+ * wait for it to open, and a retry before then fails the same way. Everything
5068
+ * else collapses into `generic-error` and is offered a retry.
4497
5069
  *
4498
5070
  * That is a deliberate over-offer, not a claim that every such failure is
4499
5071
  * retryable. A `ValidationError` from the DTO boundary - an unreadable expiry,
@@ -4504,7 +5076,7 @@ declare function validateAmount({ input, decimals, balance, symbol, minimumPurch
4504
5076
  * branch in every consumer to distinguish. Split it out if that stops being
4505
5077
  * true.
4506
5078
  */
4507
- type OndoLoadErrorReason = 'not-authenticated' | 'generic-error';
5079
+ type OndoLoadErrorReason = 'not-authenticated' | 'not-tradable' | 'generic-error';
4508
5080
  declare function ondoLoadErrorReason(error: unknown): OndoLoadErrorReason;
4509
5081
 
4510
5082
  /**
@@ -4725,7 +5297,9 @@ interface UseOndoBuyCheckoutViewModelResult {
4725
5297
  * no Ondo integration contract is known before any step runs, and there is no
4726
5298
  * region to report it in that would not first have to render something untrue:
4727
5299
  * a wallet picker leading nowhere, a balance read for a token this flow will
4728
- * never spend. See {@link OndoCheckoutErrorReason}.
5300
+ * never spend. A market known to be closed while the user is still choosing a
5301
+ * wallet is the same kind of answer for as long as it lasts. See
5302
+ * {@link OndoCheckoutErrorReason}.
4729
5303
  *
4730
5304
  * `offer` and `chain` are read as fixed for the lifetime of the hook. The step
4731
5305
  * machine holds a committed quote and an approval granted on one chain for one
@@ -5112,7 +5686,9 @@ interface UseOndoSellCheckoutViewModelResult {
5112
5686
  * about whether there is a flow rather than about how one went. A chain with
5113
5687
  * no Ondo integration contract is known before any step runs, and there is no
5114
5688
  * region to report it in that would not first have to render something untrue.
5115
- * See {@link OndoCheckoutErrorReason}.
5689
+ * A market known to be closed while the user is still on the first step is the
5690
+ * same kind of answer for as long as it lasts. See
5691
+ * {@link OndoCheckoutErrorReason}.
5116
5692
  *
5117
5693
  * `offer` and `chain` are read as fixed for the lifetime of the hook, and so is
5118
5694
  * the wallet the flow opened on. The step machine holds a committed quote and
@@ -5220,6 +5796,12 @@ type LoadOndoTradingStatusState = {
5220
5796
  type: 'CONTENT';
5221
5797
  status: OndoTradingStatus;
5222
5798
  };
5799
+ /**
5800
+ * Whether the market is *known* to be closed for this side: the one reading of
5801
+ * the poll a caller may block an order on. `LOADING` and `ERROR` are unknown,
5802
+ * and unknown never blocks.
5803
+ */
5804
+ declare function isNotTradable(state: LoadOndoTradingStatusState): boolean;
5223
5805
  interface UseOndoTradingStatusOptions {
5224
5806
  /** Ondo's API symbol, e.g. `AAPLon`. */
5225
5807
  symbol: AssetSymbol;
@@ -5808,6 +6390,118 @@ interface UseSuperstateWalletViewModelResult {
5808
6390
  */
5809
6391
  declare function useSuperstateWalletViewModel({ stepInput, wallets, offerId, contractAddress, chain, onComplete, onEdit, }: UseSuperstateWalletViewModelOptions): UseSuperstateWalletViewModelResult;
5810
6392
 
6393
+ /**
6394
+ * Where one claim run stands. `FAILED` keeps the phase it stopped in, so a
6395
+ * progress list can mark the step that broke rather than only say that
6396
+ * something did.
6397
+ */
6398
+ type CentrifugeClaimState = {
6399
+ type: 'IDLE';
6400
+ } | {
6401
+ type: 'RUNNING';
6402
+ phase: CentrifugeClaimPhase;
6403
+ } | {
6404
+ type: 'FAILED';
6405
+ phase: CentrifugeClaimPhase;
6406
+ error: CentrifugeClaimError;
6407
+ } | {
6408
+ type: 'SUCCEEDED';
6409
+ success: Extract<CentrifugeClaimResult, {
6410
+ type: 'success';
6411
+ }>;
6412
+ };
6413
+ type CentrifugeClaimParams = Omit<ClaimCentrifugeVaultParams, 'centrifuge' | 'onProgress'>;
6414
+ interface UseCentrifugeClaimResult {
6415
+ state: CentrifugeClaimState;
6416
+ /**
6417
+ * Runs a claim and resolves with its result, whatever became of the state:
6418
+ * a claim abandoned with {@link reset} still mines, and the caller may want
6419
+ * to refetch when it does.
6420
+ */
6421
+ claim: (params: CentrifugeClaimParams) => Promise<CentrifugeClaimResult>;
6422
+ /** Back to `IDLE`. A run still in flight stops updating the state. */
6423
+ reset: () => void;
6424
+ }
6425
+ /**
6426
+ * Claims a filled Centrifuge position through `coinlist.centrifuge.claim`,
6427
+ * tracking which phase it is in.
6428
+ *
6429
+ * Unmounting or resetting does not cancel a claim - nothing can recall a
6430
+ * broadcast transaction - it only stops this state following it.
6431
+ */
6432
+ declare function useCentrifugeClaim(): UseCentrifugeClaimResult;
6433
+
6434
+ /** A vault on one chain, as the position endpoints key it. */
6435
+ type CentrifugePositionVault = {
6436
+ chain: EthereumChain;
6437
+ /** Share token symbol of the vault, e.g. `deJTRSY`. */
6438
+ symbol: AssetSymbol;
6439
+ };
6440
+ /**
6441
+ * The state of the position reads.
6442
+ *
6443
+ * `CONTENT` holds every read that has ever answered, kept through later
6444
+ * failures: a flaky tick must not make a claimable position vanish under the
6445
+ * user. A read that has never answered is absent, not zero. `ERROR` is
6446
+ * reserved for the case where nothing answered at all, so a screen has
6447
+ * nothing to show but a retry.
6448
+ */
6449
+ type LoadCentrifugeVaultPositionsState = {
6450
+ type: 'LOADING';
6451
+ } | {
6452
+ type: 'ERROR';
6453
+ reason: CentrifugeLoadErrorReason;
6454
+ } | {
6455
+ type: 'CONTENT';
6456
+ legs: CentrifugeVaultLeg[];
6457
+ };
6458
+ interface UseCentrifugeVaultPositionsOptions {
6459
+ /** The vaults to read, one per chain the offer runs on. */
6460
+ vaults: CentrifugePositionVault[];
6461
+ /** The wallets to read them for, in display order. */
6462
+ walletAddresses: EvmWalletAddress[];
6463
+ /**
6464
+ * How often to re-read a position that still has something pending.
6465
+ * Defaults to {@link CENTRIFUGE_POLL_INTERVAL_MS}.
6466
+ */
6467
+ pollIntervalMs?: number;
6468
+ /**
6469
+ * Reads pre-fetched on the server. When provided, the hook opens on them
6470
+ * and skips the first fetch; polling and {@link UseCentrifugeVaultPositionsResult.refetch}
6471
+ * still fetch.
6472
+ */
6473
+ data?: CentrifugeVaultLeg[];
6474
+ /**
6475
+ * Default `true`. When `false`: no requests, no timers, and an empty
6476
+ * `CONTENT`.
6477
+ */
6478
+ enabled?: boolean;
6479
+ }
6480
+ interface UseCentrifugeVaultPositionsResult {
6481
+ state: LoadCentrifugeVaultPositionsState;
6482
+ /**
6483
+ * Reads every position again: the retry after an `ERROR`, and what a claim
6484
+ * calls once it mined so the claimed amount leaves the screen.
6485
+ */
6486
+ refetch: () => void;
6487
+ }
6488
+ /**
6489
+ * Reads, and keeps reading, every wallet's position on every vault, on both
6490
+ * sides of the trade.
6491
+ *
6492
+ * A fill lands on the fund's schedule with no signal, so polling is the only
6493
+ * way a pending position is seen turning claimable. Each read is fetched once
6494
+ * when the inputs change, when {@link UseCentrifugeVaultPositionsResult.refetch}
6495
+ * is called and when the page becomes visible again. Between those, only the
6496
+ * reads with something still pending are polled - a position with nothing
6497
+ * pending cannot change on its own - and only while the page is visible.
6498
+ *
6499
+ * A read that fails keeps its last answer and is logged; one that has never
6500
+ * answered is left out, and retried on the next full fetch rather than on
6501
+ * the timer.
6502
+ */
6503
+ declare function useCentrifugeVaultPositions(options: UseCentrifugeVaultPositionsOptions): UseCentrifugeVaultPositionsResult;
6504
+
5811
6505
  type LoadOfferDetailsReason = 'not-authenticated' | 'generic-error';
5812
6506
  type LoadOfferDetailsState = {
5813
6507
  type: 'LOADING';
@@ -6235,6 +6929,116 @@ interface UseConnectWalletModalViewModelResult {
6235
6929
  */
6236
6930
  declare function useConnectWalletModalViewModel({ isOpen, onClose, offerId, optionId, wallet, onConnected, onRequestConnect, challengeType, statement, }: UseConnectWalletModalViewModelOptions): UseConnectWalletModalViewModelResult;
6237
6931
 
6932
+ /**
6933
+ * The state of one vault's status poll.
6934
+ *
6935
+ * Stale-preserving: a failed tick with a status in hand keeps it, so a flaky
6936
+ * read never reads as "vault halted". `ERROR` means the status is unknown -
6937
+ * which is not the same as `CONTENT` carrying a blocked orderability, and
6938
+ * callers must not conflate them. A vault that is *known* to be unorderable
6939
+ * may block a request; one that is merely unknown may not.
6940
+ *
6941
+ * `below_minimum` never appears here: it needs an amount, which this
6942
+ * endpoint is never given.
6943
+ */
6944
+ type LoadCentrifugeVaultStatusState = {
6945
+ type: 'LOADING';
6946
+ } | {
6947
+ type: 'ERROR';
6948
+ reason: CentrifugeLoadErrorReason;
6949
+ } | {
6950
+ type: 'CONTENT';
6951
+ status: CentrifugeVaultStatus;
6952
+ };
6953
+ /** A vault as the status endpoint keys it: one share token on one chain. */
6954
+ type CentrifugeStatusVault = {
6955
+ /** Share token symbol of the vault, e.g. `deJTRSY`. */
6956
+ symbol: AssetSymbol;
6957
+ chain: EthereumChain;
6958
+ };
6959
+ interface UseCentrifugeVaultStatusesOptions {
6960
+ /** The vaults to poll, typically one per chain an offer runs on. */
6961
+ vaults: CentrifugeStatusVault[];
6962
+ /** How often to refresh. Defaults to {@link CENTRIFUGE_POLL_INTERVAL_MS}. */
6963
+ pollIntervalMs?: number;
6964
+ /**
6965
+ * Statuses the caller already holds, typically fetched server-side, each
6966
+ * opening the state of the vault it names so a server-rendered panel needs
6967
+ * no loading pass.
6968
+ *
6969
+ * They seed the first render only: the poll still fetches immediately. A
6970
+ * vault that was orderable a minute ago can be unlinked now, so a seed
6971
+ * that suppressed the first read would be answering "can I act right now"
6972
+ * with whenever the page was rendered.
6973
+ */
6974
+ data?: CentrifugeVaultStatus[];
6975
+ /** When false, the hook neither fetches nor polls. */
6976
+ enabled: boolean;
6977
+ }
6978
+ interface UseCentrifugeVaultStatusesResult {
6979
+ /** One entry per vault asked for, in the order asked. */
6980
+ statuses: {
6981
+ vault: CentrifugeStatusVault;
6982
+ state: LoadCentrifugeVaultStatusState;
6983
+ }[];
6984
+ }
6985
+ /**
6986
+ * Polls whether each of several Centrifuge vaults can be acted on right now,
6987
+ * independent of any wallet or amount.
6988
+ *
6989
+ * Free to poll - it spends no attestation. Centrifuge announces none of the
6990
+ * changes this reports, so the poll is the only way a screen notices a vault
6991
+ * halting under it. Each vault is read independently on one shared timer, so
6992
+ * one failing chain never holds back another.
6993
+ *
6994
+ * A seeded status opens its vault's state instead of `LOADING` and is
6995
+ * otherwise left to the poll: the first tick fires as it always does, and
6996
+ * only replaces the seed once it has a status of its own.
6997
+ *
6998
+ * Disabled it neither fetches nor holds a timer, and each vault stays on
6999
+ * whatever state it held. That is `LOADING` and not an empty `CONTENT`
7000
+ * because there is no empty vault status - and an invented one would be
7001
+ * worse than none, since `CONTENT` here is what a caller is allowed to block
7002
+ * on.
7003
+ */
7004
+ declare function useCentrifugeVaultStatuses(options: UseCentrifugeVaultStatusesOptions): UseCentrifugeVaultStatusesResult;
7005
+
7006
+ interface UseCentrifugeVaultStatusOptions {
7007
+ /** Share token symbol of the vault, e.g. `deJTRSY`. */
7008
+ symbol: AssetSymbol;
7009
+ chain: EthereumChain;
7010
+ /** How often to refresh. Defaults to `CENTRIFUGE_POLL_INTERVAL_MS`. */
7011
+ pollIntervalMs?: number;
7012
+ /**
7013
+ * A status the caller already holds, typically fetched server-side, used
7014
+ * as the state the hook opens on so a server-rendered panel needs no
7015
+ * loading pass.
7016
+ *
7017
+ * It seeds the first render only: the poll still fetches immediately. A
7018
+ * vault that was orderable a minute ago can be unlinked now, so a seed
7019
+ * that suppressed the first read would be answering "can I invest right
7020
+ * now" with whenever the page was rendered.
7021
+ */
7022
+ data?: CentrifugeVaultStatus;
7023
+ /** When false, the hook neither fetches nor polls. */
7024
+ enabled: boolean;
7025
+ }
7026
+ interface UseCentrifugeVaultStatusResult {
7027
+ state: LoadCentrifugeVaultStatusState;
7028
+ }
7029
+ /**
7030
+ * Polls whether a Centrifuge vault can take a request at all right now,
7031
+ * independent of any amount.
7032
+ *
7033
+ * Free to poll - it spends no attestation. Centrifuge announces none of the
7034
+ * changes this reports, so the poll is the only way a checkout notices
7035
+ * mid-order.
7036
+ *
7037
+ * The one-vault case of {@link useCentrifugeVaultStatuses}, which carries the
7038
+ * seeding, stale-preserving and disabled semantics.
7039
+ */
7040
+ declare function useCentrifugeVaultStatus(options: UseCentrifugeVaultStatusOptions): UseCentrifugeVaultStatusResult;
7041
+
6238
7042
  interface UseErc20BalanceOptions {
6239
7043
  /**
6240
7044
  * The token to read, by contract address.
@@ -6605,4 +7409,15 @@ interface UseCountdownOptions {
6605
7409
  */
6606
7410
  declare function useCountdown({ until, tickMs, enabled, }: UseCountdownOptions): number | null;
6607
7411
 
6608
- export { type AuthState, type AuthorizeWalletParams, ChecklistStatus, CheckoutAssetUi, type CheckoutConfig, type CheckoutConfirmedWalletUi, CheckoutContainer, type CheckoutContainerProps, type CheckoutCtaUi, type CheckoutEmbeddedWalletUi, type CheckoutNetworkUi, type CheckoutSelectableInputAssetUi, type CheckoutStatusUi, type CheckoutWalletSelection, type CheckoutWalletTypeUi, type CheckoutWalletUi, type ClientAuthConfig, type ClientAuthNamespace, ClientAuthNamespaceImpl, type ClientAuthSession, type ClientCoinListTokenSaleNamespace, ClientCoinListTokenSaleNamespaceImpl, type ClientConfig, type ClientOndoNamespace, ClientOndoNamespaceImpl, type ClientRequirementsNamespace, ClientRequirementsNamespaceImpl, type ClientSuperstateSwapNamespace, ClientSuperstateSwapNamespaceImpl, type ClientSupportNamespace, ClientSupportNamespaceImpl, type CoinListClient, CoinListClientInitializationError, CoinListContext, CoinListContextProvider, type CoinListContextValue, CoinListProvider, type CoinListProviderProps, CoinListSignInButton, CoinListSignInCardContainer, type CoinListSignInCardContainerProps, type CoinListSignInCardUiEvent, type CoinListSignInCardUiState, CoinListSignInCardView, type CoinListSignInCardViewProps, CoinListStyleScope, type CoinListStyleScopeProps, type CoinListTokenSaleCheckoutConfig, type CompleteOAuthFailureReason, ConnectWallet, type ConnectWalletError, type ConnectWalletErrorCode, type ConnectWalletFlowError, type ConnectWalletFlowParams, type ConnectWalletFlowResult, ConnectWalletModalContainer, type ConnectWalletModalContainerProps, type ConnectWalletModalUiEvent, type ConnectWalletModalUiState, ConnectWalletModalView, type ConnectWalletModalViewProps, type ConnectWalletPhase, type ConnectWalletScreenUi, type ConnectWalletSignState, type ConnectWalletState, ConnectedWalletList, type ConnectedWalletListProps, type ConnectedWalletUi, ERC20_BALANCE_POLL_INTERVAL_MS, type Erc20AllowanceError, type Erc20AllowancePhase, type Erc20AllowanceResult, type Erc20ApprovalError, EvmWallet, type ExecuteOndoSwapParams, type ExecuteSwapParams, type ExecuteTokenSaleParams, IdentityVerificationContainer, type IdentityVerificationContainerProps, type IdentityVerificationUiEvent, type IdentityVerificationUiState, IdentityVerificationView, type IdentityVerificationViewProps, KycLevelName, type KycTokenErrorReason, type KycTokenState, type LoadOfferDetailsReason, type LoadOfferDetailsState, type LoadOffersReason, type LoadOffersState, type LoadOndoBuyTransactionState, type LoadOndoPriceState, type LoadOndoSellTransactionState, type LoadOndoTradingStatusState, type LoadOptionAddressesReason, type LoadOptionAddressesState, type LoadParticipationsReason, type LoadParticipationsState, type LoadRequirementsReason, type LoadRequirementsState, type LoadTokenMetadataState, type LoadTokenRegistryState, Logger, type LogoImageUi, OAUTH_CODE_VERIFIER_KEY, OAUTH_STATE_KEY, type OauthClientErrorReason, type OauthClientResult, OfferAssetCard, type OfferAssetCardProps, OfferAssetCardUi, OfferLogoUi, OfferSaleCard, type OfferSaleCardProps, OfferSaleCardUi, OffersAssetGrid, type OffersAssetGridProps, OffersGridContainer, type OffersGridContainerProps, type OffersGridData, type OffersGridUiEvent, type OffersGridUiState, OffersGridView, type OffersGridViewProps, type OndoBuyAmountConfirmed, type OndoBuyAmountStepInput, type OndoBuyAmountUiEvent, type OndoBuyAmountUiState, type OndoBuyAmountValidation, OndoBuyAmountView, type OndoBuyAmountViewProps, OndoBuyCheckoutContainer, type OndoBuyCheckoutContainerProps, type OndoBuyCheckoutUiEvent, type OndoBuyCheckoutUiState, OndoBuyCheckoutView, type OndoBuyCheckoutViewProps, type OndoBuyExecutionResult, OndoBuyOrderConfirmed, type OndoBuyOrderPlaced, type OndoBuyOrderTerms, type OndoBuyPreparationResult, type OndoBuyQuoteStatusUi, type OndoBuyReviewStepInput, type OndoBuyReviewUiEvent, type OndoBuyReviewUiState, OndoBuyReviewView, type OndoBuyReviewViewProps, type OndoBuyStep, type OndoCheckoutConfig, OndoCheckoutError, type OndoCheckoutErrorProps, type OndoCheckoutErrorReason, type OndoLoadErrorReason, type OndoOrderConfirmedProps, type OndoOrderConfirmedUiEvent, type OndoOrderConfirmedUiState, type OndoOrderPlaced, type OndoOrderPlacedCore, type OndoSellAmountConfirmed, type OndoSellAmountStepInput, type OndoSellAmountUiEvent, type OndoSellAmountUiState, type OndoSellAmountValidation, OndoSellAmountView, type OndoSellAmountViewProps, type OndoSellAsset, type OndoSellBalanceUi, OndoSellCheckoutContainer, type OndoSellCheckoutContainerProps, type OndoSellCheckoutUiEvent, type OndoSellCheckoutUiState, OndoSellCheckoutView, type OndoSellCheckoutViewProps, type OndoSellExecutionResult, OndoSellOrderConfirmed, type OndoSellOrderConfirmedProps, type OndoSellOrderConfirmedUiEvent, type OndoSellOrderConfirmedUiState, type OndoSellOrderPlaced, type OndoSellOrderTerms, type OndoSellOutcomeUi, type OndoSellPreparationResult, type OndoSellQuoteStatusUi, type OndoSellReviewStepInput, type OndoSellReviewUiEvent, type OndoSellReviewUiState, OndoSellReviewView, type OndoSellReviewViewProps, type OndoSellSourceWalletUi, type OndoSellStep, type OndoSidebarPriceUi, type OndoSidebarUiState, OndoSidebarView, type OndoSidebarViewProps, type OndoSwapExecutionError, type OndoSwapExecutionPhase, type OndoSwapExecutionResult, type OndoSwapPreparationError, type OndoSwapPreparationPhase, type OndoSwapPreparationResult, type OndoWalletSelectStepInput, type OndoWalletSelectUiEvent, type OndoWalletSelectUiState, OndoWalletSelectView, type OndoWalletSelectViewProps, PinoLoggerOptions, type PrepareOndoBuyParams, type PrepareOndoSellParams, type PrepareOndoSwapParamsCore, type RequiredCheckoutConfig, RequirementItem, type RequirementItemProps, RequirementItemUi, RequirementStatus, RequirementVariant, RequirementsChecklistContainer, type RequirementsChecklistContainerProps, type RequirementsChecklistItemUi, type RequirementsChecklistUiEvent, type RequirementsChecklistUiState, RequirementsChecklistView, type RequirementsChecklistViewProps, type RequirementsData, type RequirementsVerificationUi, type SignState, SlippagePicker, type SlippagePickerProps, type SubmitErc20ApprovalResult, type SuperstateAmountConfirmed, type SuperstateAmountStepInput, type SuperstateAmountUiEvent, type SuperstateAmountUiState, type SuperstateAmountValidation, SuperstateAmountView, type SuperstateAmountViewProps, type SuperstateCheckoutConfig, SuperstateOrderConfirmed, type SuperstateOrderConfirmedProps, type SuperstateOrderConfirmedUiEvent, type SuperstateOrderConfirmedUiState, type SuperstateOrderPlaced, type SuperstateReviewStepInput, type SuperstateReviewUiEvent, type SuperstateReviewUiState, SuperstateReviewView, type SuperstateReviewViewProps, type SuperstateSidebarPriceUi, type SuperstateSidebarUiState, SuperstateSidebarView, type SuperstateSidebarViewProps, type SuperstateSlippageOptionUi, type SuperstateSlippageUi, SuperstateSwapCheckoutContainer, type SuperstateSwapCheckoutContainerProps, type SuperstateSwapCheckoutRetryUiEvent, type SuperstateSwapCheckoutUiEvent, type SuperstateSwapCheckoutUiState, SuperstateSwapCheckoutView, type SuperstateSwapCheckoutViewProps, type SuperstateSwapLoadErrorReason, type SuperstateSwapStep, type SuperstateWalletStepInput, type SuperstateWalletUiEvent, type SuperstateWalletUiState, SuperstateWalletView, type SuperstateWalletViewProps, type SwapExecutionError, type SwapExecutionPhase, type SwapExecutionResult, type SwapOutputTokenState, type TaxDocumentAddressParts, type TaxDocumentFieldUi, type TaxDocumentFields, TaxDocumentModalContainer, type TaxDocumentModalContainerProps, type TaxDocumentModalUiEvent, type TaxDocumentModalUiState, TaxDocumentModalView, type TaxDocumentModalViewProps, type TaxDocumentScreenUi, type TaxDocumentState, type TokenSaleExecutionError, type TokenSaleExecutionPhase, type TokenSaleExecutionResult, USDC_ICON_URL, USDT_ICON_URL, type UseCheckoutOfferTokenMetadataOptions, type UseCheckoutOfferTokenMetadataResult, type UseCoinListResult, type UseCoinListSignInCardViewModelOptions, type UseCoinListSignInCardViewModelResult, type UseCompleteOAuthOptions, type UseConnectWalletModalViewModelOptions, type UseConnectWalletModalViewModelResult, type UseConnectWalletOptions, type UseConnectWalletResult, type UseCountdownOptions, type UseErc20BalanceOptions, type UseErc20BalanceResult, type UseErc20TokenBalancesOptions, type UseErc20TokenBalancesResult, type UseIdentityVerificationViewModelOptions, type UseIdentityVerificationViewModelResult, type UseKycTokenResult, type UseOfferDetailsOptions, type UseOfferDetailsResult, type UseOffersGridViewModelOptions, type UseOffersGridViewModelResult, type UseOffersOptions, type UseOffersResult, type UseOndoBuyAmountViewModelOptions, type UseOndoBuyAmountViewModelResult, type UseOndoBuyCheckoutViewModelOptions, type UseOndoBuyCheckoutViewModelResult, type UseOndoBuyReviewViewModelOptions, type UseOndoBuyReviewViewModelResult, type UseOndoBuyTransactionOptions, type UseOndoBuyTransactionResult, type UseOndoPriceOptions, type UseOndoPriceResult, type UseOndoSellAmountViewModelOptions, type UseOndoSellAmountViewModelResult, type UseOndoSellCheckoutViewModelOptions, type UseOndoSellCheckoutViewModelResult, type UseOndoSellReviewViewModelOptions, type UseOndoSellReviewViewModelResult, type UseOndoSellTransactionOptions, type UseOndoSellTransactionResult, type UseOndoSidebarViewModelOptions, type UseOndoSidebarViewModelResult, type UseOndoTradingStatusOptions, type UseOndoTradingStatusResult, type UseOndoWalletSelectViewModelOptions, type UseOndoWalletSelectViewModelResult, type UseOptionAddressesOptions, type UseOptionAddressesResult, type UseParticipationsOptions, type UseParticipationsResult, type UseRequirementsChecklistViewModelOptions, type UseRequirementsChecklistViewModelResult, type UseRequirementsOptions, type UseRequirementsResult, type UseSuperstateAmountViewModelOptions, type UseSuperstateAmountViewModelResult, type UseSuperstateReviewViewModelOptions, type UseSuperstateReviewViewModelResult, type UseSuperstateSidebarViewModelOptions, type UseSuperstateSidebarViewModelResult, type UseSuperstateSwapCheckoutViewModelOptions, type UseSuperstateSwapCheckoutViewModelResult, type UseSuperstateWalletViewModelOptions, type UseSuperstateWalletViewModelResult, type UseSwapOutputTokenOptions, type UseSwapOutputTokenResult, type UseSwapQuoteOptions, type UseSwapQuoteResult, type UseTaxDocumentModalViewModelOptions, type UseTaxDocumentModalViewModelResult, type UseTaxDocumentOptions, type UseTaxDocumentResult, type UseTokenMetadataOptions, type UseTokenMetadataResult, type UseTokenRegistryOptions, type UseTokenRegistryResult, VerificationOverlay, type VerificationOverlayProps, type WalletAuthorizationError, type WalletAuthorizationPhase, type WalletAuthorizationResult, WalletError, type WalletsStatus, authorizeWallet, classifyWalletError, connectExternalWalletFlow, createCoinListClient, defaultCheckoutConfig, ensureErc20Allowance, executeOndoSwap, executeSwap, executeTokenSale, formatCountdown, formatMonthYear, formatSaleCardCountdown, offerAssetIconUrl, offerIconUrl, offerTokenIdentifier, ondoLoadErrorReason, pinoClientLogger, prepareOndoBuy, prepareOndoSell, quoteIsStale, quoteOverAsks, stablecoinIconUrl, submitErc20Approval, tokenLogoSrcSet, tokenLogoUrl, tokenMetadataOf, useCheckoutOfferTokenMetadata, useCoinList, useCoinListSignInCardViewModel, useCompleteOAuth, useConnectWallet, useConnectWalletModalViewModel, useCountdown, useErc20Balance, useErc20TokenBalances, useIdentityVerificationViewModel, useKycToken, useOfferDetails, useOffers, useOffersGridViewModel, useOndoBuyAmountViewModel, useOndoBuyCheckoutViewModel, useOndoBuyReviewViewModel, useOndoBuyTransaction, useOndoPrice, useOndoSellAmountViewModel, useOndoSellCheckoutViewModel, useOndoSellReviewViewModel, useOndoSellTransaction, useOndoSidebarViewModel, useOndoTradingStatus, useOndoWalletSelectViewModel, useOptionAddresses, useParticipations, useRequirements, useRequirementsChecklistViewModel, useSuperstateAmountViewModel, useSuperstateReviewViewModel, useSuperstateSidebarViewModel, useSuperstateSwapCheckoutViewModel, useSuperstateWalletViewModel, useSwapOutputToken, useSwapQuote, useTaxDocument, useTaxDocumentModalViewModel, useTokenMetadata, useTokenRegistry, validateAmount, validateSellAmount, validateSuperstateAmount };
7412
+ /**
7413
+ * Whether the page is visible right now: `false` while the tab is in the
7414
+ * background or the window is minimised, per the Page Visibility API.
7415
+ *
7416
+ * For a poll that should stop costing requests nobody is looking at. Reports
7417
+ * `true` during a server render and hydration, so a component renders as it
7418
+ * would on screen and hydrates without a mismatch, then the real visibility
7419
+ * straight after.
7420
+ */
7421
+ declare function usePageVisible(): boolean;
7422
+
7423
+ export { type AuthState, type AuthorizeWalletParams, CENTRIFUGE_VAULT_ORDER_REASON_MESSAGES, type CentrifugeClaimActionUi, type CentrifugeClaimBlockedReasonUi, type CentrifugeClaimDialogUi, type CentrifugeClaimError, type CentrifugeClaimFailureUi, type CentrifugeClaimParams, type CentrifugeClaimPhase, type CentrifugeClaimProgressUi, type CentrifugeClaimResult, type CentrifugeClaimRowUi, type CentrifugeClaimState, type CentrifugeClaimStepUi, type CentrifugeLoadErrorReason, type CentrifugePositionVault, type CentrifugeStatusVault, type CentrifugeVaultCheckoutConfig, type CentrifugeVaultClaimConfig, CentrifugeVaultClaimContainer, type CentrifugeVaultClaimContainerProps, CentrifugeVaultClaimDialog, type CentrifugeVaultClaimDialogProps, CentrifugeVaultClaimRow, type CentrifugeVaultClaimRowProps, type CentrifugeVaultClaimUiEvent, type CentrifugeVaultClaimUiState, CentrifugeVaultClaimView, type CentrifugeVaultClaimViewProps, type CentrifugeVaultClaimed, ChecklistStatus, CheckoutAssetUi, type CheckoutConfig, type CheckoutConfirmedWalletUi, CheckoutContainer, type CheckoutContainerProps, type CheckoutCtaUi, type CheckoutEmbeddedWalletUi, type CheckoutNetworkUi, type CheckoutSelectableInputAssetUi, type CheckoutStatusUi, type CheckoutWalletSelection, type CheckoutWalletTypeUi, type CheckoutWalletUi, type ClaimCentrifugeVaultParams, type ClaimConfig, ClaimContainer, type ClaimContainerProps, type ClaimExternalWalletUi, type ClientAuthConfig, type ClientAuthNamespace, ClientAuthNamespaceImpl, type ClientAuthSession, type ClientCentrifugeNamespace, ClientCentrifugeNamespaceImpl, type ClientCoinListTokenSaleNamespace, ClientCoinListTokenSaleNamespaceImpl, type ClientConfig, type ClientOndoNamespace, ClientOndoNamespaceImpl, type ClientRequirementsNamespace, ClientRequirementsNamespaceImpl, type ClientSuperstateSwapNamespace, ClientSuperstateSwapNamespaceImpl, type ClientSupportNamespace, ClientSupportNamespaceImpl, type CoinListClient, CoinListClientInitializationError, CoinListContext, CoinListContextProvider, type CoinListContextValue, CoinListProvider, type CoinListProviderProps, CoinListSignInButton, CoinListSignInCardContainer, type CoinListSignInCardContainerProps, type CoinListSignInCardUiEvent, type CoinListSignInCardUiState, CoinListSignInCardView, type CoinListSignInCardViewProps, CoinListStyleScope, type CoinListStyleScopeProps, type CoinListTokenSaleCheckoutConfig, type CompleteOAuthFailureReason, ConnectWallet, type ConnectWalletError, type ConnectWalletErrorCode, type ConnectWalletFlowError, type ConnectWalletFlowParams, type ConnectWalletFlowResult, ConnectWalletModalContainer, type ConnectWalletModalContainerProps, type ConnectWalletModalUiEvent, type ConnectWalletModalUiState, ConnectWalletModalView, type ConnectWalletModalViewProps, type ConnectWalletPhase, type ConnectWalletScreenUi, type ConnectWalletSignState, type ConnectWalletState, ConnectedWalletList, type ConnectedWalletListProps, type ConnectedWalletUi, ERC20_BALANCE_POLL_INTERVAL_MS, type Erc20AllowanceError, type Erc20AllowancePhase, type Erc20AllowanceResult, type Erc20ApprovalError, EvmWallet, type ExecuteOndoSwapParams, type ExecuteSwapParams, type ExecuteTokenSaleParams, type ExternalWalletRequestUi, IdentityVerificationContainer, type IdentityVerificationContainerProps, type IdentityVerificationUiEvent, type IdentityVerificationUiState, IdentityVerificationView, type IdentityVerificationViewProps, KycLevelName, type KycTokenErrorReason, type KycTokenState, type LoadCentrifugeQuoteState, type LoadCentrifugeVaultPositionsState, type LoadCentrifugeVaultStatusState, type LoadOfferDetailsReason, type LoadOfferDetailsState, type LoadOffersReason, type LoadOffersState, type LoadOndoBuyTransactionState, type LoadOndoPriceState, type LoadOndoSellTransactionState, type LoadOndoTradingStatusState, type LoadOptionAddressesReason, type LoadOptionAddressesState, type LoadParticipationsReason, type LoadParticipationsState, type LoadRequirementsReason, type LoadRequirementsState, type LoadTokenMetadataState, type LoadTokenRegistryState, Logger, type LogoImageUi, OAUTH_CODE_VERIFIER_KEY, OAUTH_STATE_KEY, type OauthClientErrorReason, type OauthClientResult, OfferAssetCard, type OfferAssetCardProps, OfferAssetCardUi, OfferLogoUi, OfferSaleCard, type OfferSaleCardProps, OfferSaleCardUi, OffersAssetGrid, type OffersAssetGridProps, OffersGridContainer, type OffersGridContainerProps, type OffersGridData, type OffersGridUiEvent, type OffersGridUiState, OffersGridView, type OffersGridViewProps, type OndoBuyAmountConfirmed, type OndoBuyAmountStepInput, type OndoBuyAmountUiEvent, type OndoBuyAmountUiState, type OndoBuyAmountValidation, OndoBuyAmountView, type OndoBuyAmountViewProps, OndoBuyCheckoutContainer, type OndoBuyCheckoutContainerProps, type OndoBuyCheckoutUiEvent, type OndoBuyCheckoutUiState, OndoBuyCheckoutView, type OndoBuyCheckoutViewProps, type OndoBuyExecutionResult, OndoBuyOrderConfirmed, type OndoBuyOrderPlaced, type OndoBuyOrderTerms, type OndoBuyPreparationResult, type OndoBuyQuoteStatusUi, type OndoBuyReviewStepInput, type OndoBuyReviewUiEvent, type OndoBuyReviewUiState, OndoBuyReviewView, type OndoBuyReviewViewProps, type OndoBuyStep, type OndoCheckoutConfig, OndoCheckoutError, type OndoCheckoutErrorProps, OndoCheckoutErrorReason, type OndoLoadErrorReason, type OndoOrderConfirmedProps, type OndoOrderConfirmedUiEvent, type OndoOrderConfirmedUiState, type OndoOrderPlaced, type OndoOrderPlacedCore, type OndoSellAmountConfirmed, type OndoSellAmountStepInput, type OndoSellAmountUiEvent, type OndoSellAmountUiState, type OndoSellAmountValidation, OndoSellAmountView, type OndoSellAmountViewProps, type OndoSellAsset, type OndoSellBalanceUi, OndoSellCheckoutContainer, type OndoSellCheckoutContainerProps, type OndoSellCheckoutUiEvent, type OndoSellCheckoutUiState, OndoSellCheckoutView, type OndoSellCheckoutViewProps, type OndoSellExecutionResult, OndoSellOrderConfirmed, type OndoSellOrderConfirmedProps, type OndoSellOrderConfirmedUiEvent, type OndoSellOrderConfirmedUiState, type OndoSellOrderPlaced, type OndoSellOrderTerms, type OndoSellOutcomeUi, type OndoSellPreparationResult, type OndoSellQuoteStatusUi, type OndoSellReviewStepInput, type OndoSellReviewUiEvent, type OndoSellReviewUiState, OndoSellReviewView, type OndoSellReviewViewProps, type OndoSellSourceWalletUi, type OndoSellStep, type OndoSidebarPriceUi, type OndoSidebarUiState, OndoSidebarView, type OndoSidebarViewProps, type OndoSwapExecutionError, type OndoSwapExecutionPhase, type OndoSwapExecutionResult, type OndoSwapPreparationError, type OndoSwapPreparationPhase, type OndoSwapPreparationResult, type OndoWalletSelectStepInput, type OndoWalletSelectUiEvent, type OndoWalletSelectUiState, OndoWalletSelectView, type OndoWalletSelectViewProps, PinoLoggerOptions, type PrepareOndoBuyParams, type PrepareOndoSellParams, type PrepareOndoSwapParamsCore, type RequiredCheckoutConfig, RequirementItem, type RequirementItemProps, RequirementItemUi, RequirementStatus, RequirementVariant, RequirementsChecklistContainer, type RequirementsChecklistContainerProps, type RequirementsChecklistItemUi, type RequirementsChecklistUiEvent, type RequirementsChecklistUiState, RequirementsChecklistView, type RequirementsChecklistViewProps, type RequirementsData, type RequirementsVerificationUi, type SignState, SlippagePicker, type SlippagePickerProps, type SubmitErc20ApprovalResult, type SuperstateAmountConfirmed, type SuperstateAmountStepInput, type SuperstateAmountUiEvent, type SuperstateAmountUiState, type SuperstateAmountValidation, SuperstateAmountView, type SuperstateAmountViewProps, type SuperstateCheckoutConfig, SuperstateOrderConfirmed, type SuperstateOrderConfirmedProps, type SuperstateOrderConfirmedUiEvent, type SuperstateOrderConfirmedUiState, type SuperstateOrderPlaced, type SuperstateReviewStepInput, type SuperstateReviewUiEvent, type SuperstateReviewUiState, SuperstateReviewView, type SuperstateReviewViewProps, type SuperstateSidebarPriceUi, type SuperstateSidebarUiState, SuperstateSidebarView, type SuperstateSidebarViewProps, type SuperstateSlippageOptionUi, type SuperstateSlippageUi, SuperstateSwapCheckoutContainer, type SuperstateSwapCheckoutContainerProps, type SuperstateSwapCheckoutRetryUiEvent, type SuperstateSwapCheckoutUiEvent, type SuperstateSwapCheckoutUiState, SuperstateSwapCheckoutView, type SuperstateSwapCheckoutViewProps, type SuperstateSwapLoadErrorReason, type SuperstateSwapStep, type SuperstateWalletStepInput, type SuperstateWalletUiEvent, type SuperstateWalletUiState, SuperstateWalletView, type SuperstateWalletViewProps, type SwapExecutionError, type SwapExecutionPhase, type SwapExecutionResult, type SwapOutputTokenState, type TaxDocumentAddressParts, type TaxDocumentFieldUi, type TaxDocumentFields, TaxDocumentModalContainer, type TaxDocumentModalContainerProps, type TaxDocumentModalUiEvent, type TaxDocumentModalUiState, TaxDocumentModalView, type TaxDocumentModalViewProps, type TaxDocumentScreenUi, type TaxDocumentState, type TokenSaleExecutionError, type TokenSaleExecutionPhase, type TokenSaleExecutionResult, USDC_ICON_URL, USDT_ICON_URL, type UseCentrifugeClaimResult, type UseCentrifugeQuoteOptions, type UseCentrifugeQuoteResult, type UseCentrifugeVaultClaimViewModelOptions, type UseCentrifugeVaultClaimViewModelResult, type UseCentrifugeVaultPositionsOptions, type UseCentrifugeVaultPositionsResult, type UseCentrifugeVaultStatusOptions, type UseCentrifugeVaultStatusResult, type UseCentrifugeVaultStatusesOptions, type UseCentrifugeVaultStatusesResult, type UseCheckoutOfferTokenMetadataOptions, type UseCheckoutOfferTokenMetadataResult, type UseCoinListResult, type UseCoinListSignInCardViewModelOptions, type UseCoinListSignInCardViewModelResult, type UseCompleteOAuthOptions, type UseConnectWalletModalViewModelOptions, type UseConnectWalletModalViewModelResult, type UseConnectWalletOptions, type UseConnectWalletResult, type UseCountdownOptions, type UseErc20BalanceOptions, type UseErc20BalanceResult, type UseErc20TokenBalancesOptions, type UseErc20TokenBalancesResult, type UseIdentityVerificationViewModelOptions, type UseIdentityVerificationViewModelResult, type UseKycTokenResult, type UseOfferDetailsOptions, type UseOfferDetailsResult, type UseOffersGridViewModelOptions, type UseOffersGridViewModelResult, type UseOffersOptions, type UseOffersResult, type UseOndoBuyAmountViewModelOptions, type UseOndoBuyAmountViewModelResult, type UseOndoBuyCheckoutViewModelOptions, type UseOndoBuyCheckoutViewModelResult, type UseOndoBuyReviewViewModelOptions, type UseOndoBuyReviewViewModelResult, type UseOndoBuyTransactionOptions, type UseOndoBuyTransactionResult, type UseOndoPriceOptions, type UseOndoPriceResult, type UseOndoSellAmountViewModelOptions, type UseOndoSellAmountViewModelResult, type UseOndoSellCheckoutViewModelOptions, type UseOndoSellCheckoutViewModelResult, type UseOndoSellReviewViewModelOptions, type UseOndoSellReviewViewModelResult, type UseOndoSellTransactionOptions, type UseOndoSellTransactionResult, type UseOndoSidebarViewModelOptions, type UseOndoSidebarViewModelResult, type UseOndoTradingStatusOptions, type UseOndoTradingStatusResult, type UseOndoWalletSelectViewModelOptions, type UseOndoWalletSelectViewModelResult, type UseOptionAddressesOptions, type UseOptionAddressesResult, type UseParticipationsOptions, type UseParticipationsResult, type UseRequirementsChecklistViewModelOptions, type UseRequirementsChecklistViewModelResult, type UseRequirementsOptions, type UseRequirementsResult, type UseSuperstateAmountViewModelOptions, type UseSuperstateAmountViewModelResult, type UseSuperstateReviewViewModelOptions, type UseSuperstateReviewViewModelResult, type UseSuperstateSidebarViewModelOptions, type UseSuperstateSidebarViewModelResult, type UseSuperstateSwapCheckoutViewModelOptions, type UseSuperstateSwapCheckoutViewModelResult, type UseSuperstateWalletViewModelOptions, type UseSuperstateWalletViewModelResult, type UseSwapOutputTokenOptions, type UseSwapOutputTokenResult, type UseSwapQuoteOptions, type UseSwapQuoteResult, type UseTaxDocumentModalViewModelOptions, type UseTaxDocumentModalViewModelResult, type UseTaxDocumentOptions, type UseTaxDocumentResult, type UseTokenMetadataOptions, type UseTokenMetadataResult, type UseTokenRegistryOptions, type UseTokenRegistryResult, VerificationOverlay, type VerificationOverlayProps, type WalletAuthorizationError, type WalletAuthorizationPhase, type WalletAuthorizationResult, WalletError, WalletLabelResolver, WalletSelection, type WalletsStatus, authorizeWallet, centrifugeLoadErrorReason, centrifugeVaultOrderReasonMessage, centrifugeVaultOrderingMessage, claimCentrifugeVault, classifyWalletError, connectExternalWalletFlow, createCoinListClient, defaultCheckoutConfig, ensureErc20Allowance, executeOndoSwap, executeSwap, executeTokenSale, formatCountdown, formatMonthYear, formatSaleCardCountdown, isNotTradable, offerAssetIconUrl, offerIconUrl, offerTokenIdentifier, ondoLoadErrorReason, pinoClientLogger, prepareOndoBuy, prepareOndoSell, primaryCentrifugeVaultOrderReason, quoteIsStale, quoteOverAsks, stablecoinIconUrl, submitErc20Approval, tokenLogoSrcSet, tokenLogoUrl, tokenMetadataOf, useCentrifugeClaim, useCentrifugeQuote, useCentrifugeVaultClaimViewModel, useCentrifugeVaultPositions, useCentrifugeVaultStatus, useCentrifugeVaultStatuses, useCheckoutOfferTokenMetadata, useCoinList, useCoinListSignInCardViewModel, useCompleteOAuth, useConnectWallet, useConnectWalletModalViewModel, useCountdown, useErc20Balance, useErc20TokenBalances, useIdentityVerificationViewModel, useKycToken, useOfferDetails, useOffers, useOffersGridViewModel, useOndoBuyAmountViewModel, useOndoBuyCheckoutViewModel, useOndoBuyReviewViewModel, useOndoBuyTransaction, useOndoPrice, useOndoSellAmountViewModel, useOndoSellCheckoutViewModel, useOndoSellReviewViewModel, useOndoSellTransaction, useOndoSidebarViewModel, useOndoTradingStatus, useOndoWalletSelectViewModel, useOptionAddresses, usePageVisible, useParticipations, useRequirements, useRequirementsChecklistViewModel, useSuperstateAmountViewModel, useSuperstateReviewViewModel, useSuperstateSidebarViewModel, useSuperstateSwapCheckoutViewModel, useSuperstateWalletViewModel, useSwapOutputToken, useSwapQuote, useTaxDocument, useTaxDocumentModalViewModel, useTokenMetadata, useTokenRegistry, validateAmount, validateSellAmount, validateSuperstateAmount };