@behio/storefront-sdk 0.8.0 → 0.12.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/react.d.ts CHANGED
@@ -1,7 +1,7 @@
1
1
  import * as react_jsx_runtime from 'react/jsx-runtime';
2
2
  import * as _tanstack_react_query from '@tanstack/react-query';
3
3
  import { QueryClient } from '@tanstack/react-query';
4
- import { BehioStorefront, ProductsQuery, PaginatedResponse, ProductListItem, ProductDetail, Category, CategoryDetail, ProductLabel, FilterField, Cart, CustomerProfile, RegisterInput, CustomerAddress, AddressSuggestion, AddressDetail, OrderListItem, OrderDetail, CheckoutInput, PageDetail, Page, ShopInfo, ShopSeo, Bundle, CrossSellItem, ActivePromotion, GiftCardBalance, WishlistItem, ProductReviewsResponse, SubmitReviewInput, ReturnableOrder, ReturnStatus, ReturnRequest, SubmitReturnInput, CookieConsent, CookieConsentInput, QuoteRequest, SubmitQuoteInput, BackInStockSubscription } from './index.js';
4
+ import { BehioStorefront, ProductsQuery, PaginatedResponse, ProductListItem, ProductDetail, Category, CategoryDetail, ProductLabel, FilterField, Cart, CustomerProfile, RegisterInput, CustomerAddress, AddressSuggestion, AddressDetail, OrderListItem, OrderDetail, OrderAccessRequestResponse, OrderAccessVerifyResponse, CheckoutInput, PageDetail, Page, ShopInfo, ShopSeo, Bundle, CrossSellItem, ActivePromotion, GiftCardBalance, WishlistItem, ProductReviewsResponse, SubmitReviewInput, ReturnableOrder, ReturnStatus, ReturnRequest, SubmitReturnInput, CookieConsent, CookieConsentInput, QuoteRequest, SubmitQuoteInput, BackInStockSubscription } from './index.js';
5
5
  export { AddToCartInput, AuthTokens, BehioApiError, BundleItem, CartDiscount, CartItem, CheckoutAddress, FulfillmentStatus, LoginInput, MessageResponse, OrderItem, OrderStatus, PaymentStatus, ProductPrice, ProductReview, ProductVariant } from './index.js';
6
6
  import * as _tanstack_query_core from '@tanstack/query-core';
7
7
 
@@ -19,17 +19,64 @@ declare function detectStorage(): StorageAdapter;
19
19
  interface BehioProviderProps {
20
20
  apiKey: string;
21
21
  baseUrl?: string;
22
+ /**
23
+ * The domain this storefront is served on, sent as X-Shop-Domain. Only needed
24
+ * when one deployment serves several domains with a single "all domains" key
25
+ * and there is no Origin header (SSR). See BehioStorefrontConfig.shopDomain.
26
+ */
27
+ shopDomain?: string;
22
28
  locale?: string;
29
+ /**
30
+ * Initial currency. Used as the starting active currency when the shopper has
31
+ * not chosen one yet (no cookie). A chosen currency (cookie) takes precedence,
32
+ * so this behaves as the default rather than a hard override.
33
+ */
23
34
  currency?: string;
35
+ /**
36
+ * Fallback currency surfaced by useCurrency() / <CurrencySwitcher> as "the
37
+ * default" when nothing is selected. Defaults to the shop's defaultCurrency
38
+ * from shop info. Set this to force a different default per deployment.
39
+ */
40
+ defaultCurrency?: string;
41
+ /**
42
+ * Explicit list of selectable currencies. When omitted, the list comes from
43
+ * the shop's supportedCurrencies. Provide this to curate the switcher (e.g.
44
+ * only CZK + EUR even though the shop technically supports more).
45
+ */
46
+ currencies?: string[];
47
+ /** Fired whenever the active currency changes (analytics, URL sync, ...). */
48
+ onCurrencyChange?: (currency: string | undefined) => void;
49
+ /** Persist the chosen currency to a cookie so SSR + reloads keep it. Default: true. */
50
+ persistCurrency?: boolean;
51
+ /** Cookie name for the chosen currency. Default: "behio_currency". */
52
+ currencyCookieName?: string;
24
53
  storage?: "cookies" | "localStorage" | "memory" | StorageAdapter;
25
54
  queryClient?: QueryClient;
26
55
  children: React.ReactNode;
27
56
  }
28
- declare function BehioProvider({ apiKey, baseUrl, locale, currency, storage: storageOption, queryClient: externalQueryClient, children, }: BehioProviderProps): react_jsx_runtime.JSX.Element;
57
+ declare function BehioProvider({ apiKey, baseUrl, shopDomain, locale, currency, defaultCurrency, currencies, onCurrencyChange, persistCurrency, currencyCookieName, storage: storageOption, queryClient: externalQueryClient, children, }: BehioProviderProps): react_jsx_runtime.JSX.Element;
29
58
 
30
59
  interface BehioContextValue {
31
60
  client: BehioStorefront;
32
61
  storage: StorageAdapter;
62
+ /**
63
+ * The shopper's actively selected currency, or undefined when none has been
64
+ * chosen (the shop's default currency is used server-side). This is sent on
65
+ * every catalog request and persisted (cookie) so it survives navigation and
66
+ * reloads, all on the SAME shop/domain.
67
+ */
68
+ currency: string | undefined;
69
+ /**
70
+ * Switch the active currency. Updates the client, persists it, fires the
71
+ * optional onCurrencyChange callback, and refetches every price-bearing
72
+ * query so the UI reflects the new currency without a full reload. Pass
73
+ * undefined to clear back to the shop default.
74
+ */
75
+ setCurrency: (currency: string | undefined) => void;
76
+ /** Fallback currency configured on the provider (overrides shop default). */
77
+ configuredDefaultCurrency: string | undefined;
78
+ /** Explicit allowed-currency list configured on the provider, if any. */
79
+ configuredCurrencies: string[] | undefined;
33
80
  }
34
81
  declare function useBehio(): BehioContextValue;
35
82
 
@@ -89,22 +136,22 @@ interface UseProductOptions {
89
136
  initialData?: ProductDetail;
90
137
  enabled?: boolean;
91
138
  }
92
- declare function useProduct(slug: string, options?: UseProductOptions): _tanstack_react_query.UseQueryResult<ProductDetail, Error>;
139
+ declare function useProduct(slug: string, options?: UseProductOptions): _tanstack_react_query.UseQueryResult<NoInfer<ProductDetail>, Error>;
93
140
 
94
141
  interface UseCategoriesOptions {
95
142
  enabled?: boolean;
96
143
  }
97
- declare function useCategories(locale?: string, options?: UseCategoriesOptions): _tanstack_react_query.UseQueryResult<Category[], Error>;
144
+ declare function useCategories(locale?: string, options?: UseCategoriesOptions): _tanstack_react_query.UseQueryResult<NoInfer<Category[]>, Error>;
98
145
  interface UseCategoryOptions {
99
146
  locale?: string;
100
147
  enabled?: boolean;
101
148
  }
102
- declare function useCategory(slug: string, options?: UseCategoryOptions): _tanstack_react_query.UseQueryResult<CategoryDetail, Error>;
149
+ declare function useCategory(slug: string, options?: UseCategoryOptions): _tanstack_react_query.UseQueryResult<NoInfer<CategoryDetail>, Error>;
103
150
 
104
151
  interface UseLabelsOptions {
105
152
  enabled?: boolean;
106
153
  }
107
- declare function useLabels(locale?: string, options?: UseLabelsOptions): _tanstack_react_query.UseQueryResult<ProductLabel[], Error>;
154
+ declare function useLabels(locale?: string, options?: UseLabelsOptions): _tanstack_react_query.UseQueryResult<NoInfer<ProductLabel[]>, Error>;
108
155
 
109
156
  interface UseFeaturedOptions {
110
157
  locale?: string;
@@ -112,12 +159,12 @@ interface UseFeaturedOptions {
112
159
  initialData?: PaginatedResponse<ProductListItem>;
113
160
  enabled?: boolean;
114
161
  }
115
- declare function useFeatured(options?: UseFeaturedOptions): _tanstack_react_query.UseQueryResult<PaginatedResponse<ProductListItem>, Error>;
162
+ declare function useFeatured(options?: UseFeaturedOptions): _tanstack_react_query.UseQueryResult<NoInfer<PaginatedResponse<ProductListItem>>, Error>;
116
163
 
117
164
  interface UseFiltersOptions {
118
165
  enabled?: boolean;
119
166
  }
120
- declare function useFilters(options?: UseFiltersOptions): _tanstack_react_query.UseQueryResult<FilterField[], Error>;
167
+ declare function useFilters(options?: UseFiltersOptions): _tanstack_react_query.UseQueryResult<NoInfer<FilterField[]>, Error>;
121
168
 
122
169
  interface UseSearchOptions {
123
170
  page?: number;
@@ -125,13 +172,13 @@ interface UseSearchOptions {
125
172
  debounceMs?: number;
126
173
  enabled?: boolean;
127
174
  }
128
- declare function useSearch(query: string, options?: UseSearchOptions): _tanstack_react_query.UseQueryResult<PaginatedResponse<ProductListItem>, Error>;
175
+ declare function useSearch(query: string, options?: UseSearchOptions): _tanstack_react_query.UseQueryResult<NoInfer<PaginatedResponse<ProductListItem>>, Error>;
129
176
 
130
177
  interface UseCartOptions {
131
178
  enabled?: boolean;
132
179
  }
133
180
  declare function useCart(options?: UseCartOptions): {
134
- cart: Cart | null;
181
+ cart: NoInfer<Cart> | null;
135
182
  isLoading: boolean;
136
183
  error: Error | null;
137
184
  addItem: (productId: string, quantity?: number) => Promise<Cart & {
@@ -157,7 +204,7 @@ declare function useCartCount(options?: UseCartCountOptions): number;
157
204
 
158
205
  declare function useAuth(): {
159
206
  isLoggedIn: boolean;
160
- customer: CustomerProfile | null;
207
+ customer: NoInfer<CustomerProfile> | null;
161
208
  isLoading: boolean;
162
209
  login: (email: string, password: string) => Promise<undefined>;
163
210
  register: (input: RegisterInput) => Promise<undefined>;
@@ -175,7 +222,7 @@ interface UseCustomerOptions {
175
222
  enabled?: boolean;
176
223
  }
177
224
  declare function useCustomer(options?: UseCustomerOptions): {
178
- data: CustomerProfile | null;
225
+ data: NoInfer<CustomerProfile> | null;
179
226
  isLoading: boolean;
180
227
  error: Error | null;
181
228
  updateProfile: (profileData: Partial<Pick<CustomerProfile, "firstName" | "lastName" | "phone">>) => Promise<CustomerProfile>;
@@ -186,7 +233,7 @@ interface UseAddressesOptions {
186
233
  enabled?: boolean;
187
234
  }
188
235
  declare function useAddresses(options?: UseAddressesOptions): {
189
- addresses: CustomerAddress[];
236
+ addresses: NoInfer<CustomerAddress[]>;
190
237
  isLoading: boolean;
191
238
  error: Error | null;
192
239
  createAddress: (address: Omit<CustomerAddress, "id">) => Promise<CustomerAddress>;
@@ -285,13 +332,42 @@ interface UseOrderOptions {
285
332
  enabled?: boolean;
286
333
  }
287
334
  declare function useOrder(orderNumber: string, options?: UseOrderOptions): {
288
- data: OrderDetail | null;
335
+ data: NoInfer<OrderDetail> | null;
289
336
  isLoading: boolean;
290
337
  error: Error | null;
291
338
  cancel: () => Promise<OrderDetail>;
292
339
  isCancelling: boolean;
293
340
  };
294
341
 
342
+ /**
343
+ * Verified guest order-access flow (no login). Two steps:
344
+ * 1. `requestCode(orderNumber, email)` — e-mails a 6-digit code to the
345
+ * address on the order. Always resolves generically, so order numbers
346
+ * can't be enumerated.
347
+ * 2. `verifyCode(code)` — verifies the code, then exposes the full
348
+ * `order` detail and a short-lived `accessToken`.
349
+ *
350
+ * Knowing the order number alone is never enough to see the detail — control
351
+ * of the order e-mail must be proven first.
352
+ */
353
+ declare function useOrderAccess(): {
354
+ /** Step 1: send the code. */
355
+ requestCode: (on: string, em: string) => Promise<OrderAccessRequestResponse>;
356
+ isRequesting: boolean;
357
+ requestError: Error | null;
358
+ /** True once a code has been requested (move the UI to the code input). */
359
+ codeSent: boolean;
360
+ /** Step 2: verify the code. */
361
+ verifyCode: (code: string) => Promise<OrderAccessVerifyResponse>;
362
+ isVerifying: boolean;
363
+ verifyError: Error | null;
364
+ /** Full order detail, available after a successful verify. */
365
+ order: OrderDetail | null;
366
+ /** Short-lived token scoped to this order (30 min). */
367
+ accessToken: string | null;
368
+ reset: () => void;
369
+ };
370
+
295
371
  declare function useCheckout(): {
296
372
  createOrder: (input: CheckoutInput) => Promise<OrderDetail>;
297
373
  isCreating: boolean;
@@ -303,16 +379,16 @@ declare function useCheckout(): {
303
379
  interface UsePagesOptions {
304
380
  enabled?: boolean;
305
381
  }
306
- declare function usePages(locale?: string, options?: UsePagesOptions): _tanstack_react_query.UseQueryResult<Page[], Error>;
382
+ declare function usePages(locale?: string, options?: UsePagesOptions): _tanstack_react_query.UseQueryResult<NoInfer<Page[]>, Error>;
307
383
  interface UsePageOptions {
308
384
  enabled?: boolean;
309
385
  }
310
- declare function usePage(slug: string, locale?: string, options?: UsePageOptions): _tanstack_react_query.UseQueryResult<PageDetail, Error>;
386
+ declare function usePage(slug: string, locale?: string, options?: UsePageOptions): _tanstack_react_query.UseQueryResult<NoInfer<PageDetail>, Error>;
311
387
 
312
388
  interface UseShopInfoOptions {
313
389
  enabled?: boolean;
314
390
  }
315
- declare function useShopInfo(options?: UseShopInfoOptions): _tanstack_react_query.UseQueryResult<ShopInfo, Error>;
391
+ declare function useShopInfo(options?: UseShopInfoOptions): _tanstack_react_query.UseQueryResult<NoInfer<ShopInfo>, Error>;
316
392
 
317
393
  interface UseShopSeoOptions {
318
394
  /** Override locale (ISO-639-1). Defaults to the shop's default locale. */
@@ -326,7 +402,83 @@ interface UseShopSeoOptions {
326
402
  * React Query hook for per-locale shop SEO metadata. Safe to render on the
327
403
  * server via `initialData` from `unwrap(client.getShopSeo(locale))`.
328
404
  */
329
- declare function useShopSeo(options?: UseShopSeoOptions): _tanstack_react_query.UseQueryResult<ShopSeo, Error>;
405
+ declare function useShopSeo(options?: UseShopSeoOptions): _tanstack_react_query.UseQueryResult<NoInfer<ShopSeo>, Error>;
406
+
407
+ interface UseCurrencyResult {
408
+ /** The actively selected currency, or undefined when none is chosen yet. */
409
+ currency: string | undefined;
410
+ /**
411
+ * The currency actually applied to prices: the selection if any, otherwise
412
+ * the configured/shop default. Useful for highlighting the active option.
413
+ */
414
+ effectiveCurrency: string | undefined;
415
+ /** Switch the active currency (persists + refetches prices). undefined = default. */
416
+ setCurrency: (currency: string | undefined) => void;
417
+ /** Currencies available to choose from (for building a switcher). */
418
+ currencies: string[];
419
+ /** The default currency (provider override, else the shop's defaultCurrency). */
420
+ defaultCurrency: string | undefined;
421
+ /** True while the shop info (and thus the currency list) is still loading. */
422
+ isLoading: boolean;
423
+ }
424
+ /**
425
+ * Read and control the active storefront currency. The shopper stays on the
426
+ * SAME shop/domain; only the currency prices are resolved in changes.
427
+ *
428
+ * const { currency, setCurrency, currencies, defaultCurrency } = useCurrency();
429
+ *
430
+ * The available `currencies` come from the provider's `currencies` prop when
431
+ * set, otherwise from the shop's supportedCurrencies (+ its default).
432
+ */
433
+ declare function useCurrency(): UseCurrencyResult;
434
+
435
+ interface CurrencySwitcherRenderProps {
436
+ /** Currencies to offer. */
437
+ currencies: string[];
438
+ /** Currently applied currency (selection or default). */
439
+ value: string | undefined;
440
+ /** Switch to a currency. */
441
+ setCurrency: (currency: string) => void;
442
+ /** Human label for a currency code (honours the `labels` prop). */
443
+ label: (code: string) => string;
444
+ }
445
+ interface CurrencySwitcherProps {
446
+ /** className passed to the default <select>. */
447
+ className?: string;
448
+ /**
449
+ * Override display labels per currency code, e.g. {CZK: "Kč", EUR: "€"}.
450
+ * Codes without a label fall back to the code itself.
451
+ */
452
+ labels?: Record<string, string>;
453
+ /** Render the switcher even when only one currency is available. Default: false. */
454
+ showWhenSingle?: boolean;
455
+ /** aria-label for the default <select>. Default: "Currency". */
456
+ ariaLabel?: string;
457
+ /**
458
+ * Full custom render. Receives the currencies, current value, a setter and a
459
+ * label fn. When provided, the default <select> is not rendered, so you can
460
+ * build any UI (dropdown, pills, flags, ...) while the SDK owns the state.
461
+ */
462
+ children?: (props: CurrencySwitcherRenderProps) => React.ReactNode;
463
+ }
464
+ /**
465
+ * A drop-in currency switcher wired to the SDK's active currency. The shopper
466
+ * stays on the same shop; only prices re-resolve. Renders nothing until more
467
+ * than one currency is available (unless showWhenSingle).
468
+ *
469
+ * <CurrencySwitcher labels={{CZK: "Kč", EUR: "€"}} />
470
+ *
471
+ * or fully custom:
472
+ *
473
+ * <CurrencySwitcher>
474
+ * {({ currencies, value, setCurrency }) =>
475
+ * currencies.map((c) => (
476
+ * <button key={c} aria-pressed={c === value} onClick={() => setCurrency(c)}>{c}</button>
477
+ * ))
478
+ * }
479
+ * </CurrencySwitcher>
480
+ */
481
+ declare function CurrencySwitcher({ className, labels, showWhenSingle, ariaLabel, children, }: CurrencySwitcherProps): react_jsx_runtime.JSX.Element | null;
330
482
 
331
483
  /** List all active bundles. */
332
484
  declare function useBundles(options?: {
@@ -334,14 +486,14 @@ declare function useBundles(options?: {
334
486
  initialData?: {
335
487
  items: Bundle[];
336
488
  };
337
- }): _tanstack_react_query.UseQueryResult<{
489
+ }): _tanstack_react_query.UseQueryResult<NoInfer<{
338
490
  items: Bundle[];
339
- }, Error>;
491
+ }>, Error>;
340
492
  /** Get a single bundle by slug. */
341
493
  declare function useBundle(slug: string | undefined, options?: {
342
494
  enabled?: boolean;
343
495
  initialData?: Bundle;
344
- }): _tanstack_react_query.UseQueryResult<Bundle, Error>;
496
+ }): _tanstack_react_query.UseQueryResult<NoInfer<Bundle>, Error>;
345
497
 
346
498
  type CrossSellResponse = {
347
499
  related: CrossSellItem[];
@@ -356,7 +508,7 @@ type CrossSellResponse = {
356
508
  declare function useCrossSell(productSlug: string | undefined, options?: {
357
509
  enabled?: boolean;
358
510
  initialData?: CrossSellResponse;
359
- }): _tanstack_react_query.UseQueryResult<CrossSellResponse, Error>;
511
+ }): _tanstack_react_query.UseQueryResult<NoInfer<CrossSellResponse>, Error>;
360
512
 
361
513
  /**
362
514
  * Fetch currently active promotions applicable to a specific product.
@@ -366,9 +518,9 @@ declare function useCrossSell(productSlug: string | undefined, options?: {
366
518
  declare function useProductPromotions(productSlug: string | undefined, options?: {
367
519
  enabled?: boolean;
368
520
  refetchIntervalMs?: number;
369
- }): _tanstack_react_query.UseQueryResult<{
521
+ }): _tanstack_react_query.UseQueryResult<NoInfer<{
370
522
  items: ActivePromotion[];
371
- }, Error>;
523
+ }>, Error>;
372
524
 
373
525
  /**
374
526
  * Check a gift card code — validates the code against the eshop and
@@ -381,7 +533,7 @@ declare function useProductPromotions(productSlug: string | undefined, options?:
381
533
  */
382
534
  declare function useGiftCardBalance(code: string | undefined, options?: {
383
535
  enabled?: boolean;
384
- }): _tanstack_react_query.UseQueryResult<GiftCardBalance, Error>;
536
+ }): _tanstack_react_query.UseQueryResult<NoInfer<GiftCardBalance>, Error>;
385
537
 
386
538
  declare function useWishlist(options?: {
387
539
  enabled?: boolean;
@@ -394,9 +546,9 @@ declare function useWishlist(options?: {
394
546
  }, Error, string, unknown>;
395
547
  isAdding: boolean;
396
548
  isRemoving: boolean;
397
- data: {
549
+ data: NoInfer<{
398
550
  items: WishlistItem[];
399
- };
551
+ }>;
400
552
  error: Error;
401
553
  isError: true;
402
554
  isPending: false;
@@ -419,13 +571,13 @@ declare function useWishlist(options?: {
419
571
  isRefetching: boolean;
420
572
  isStale: boolean;
421
573
  isEnabled: boolean;
422
- refetch: (options?: _tanstack_query_core.RefetchOptions) => Promise<_tanstack_query_core.QueryObserverResult<{
574
+ refetch: (options?: _tanstack_query_core.RefetchOptions) => Promise<_tanstack_query_core.QueryObserverResult<NoInfer<{
423
575
  items: WishlistItem[];
424
- }, Error>>;
576
+ }>, Error>>;
425
577
  fetchStatus: _tanstack_query_core.FetchStatus;
426
- promise: Promise<{
578
+ promise: Promise<NoInfer<{
427
579
  items: WishlistItem[];
428
- }>;
580
+ }>>;
429
581
  } | {
430
582
  add: _tanstack_react_query.UseMutateAsyncFunction<{
431
583
  success: boolean;
@@ -435,9 +587,9 @@ declare function useWishlist(options?: {
435
587
  }, Error, string, unknown>;
436
588
  isAdding: boolean;
437
589
  isRemoving: boolean;
438
- data: {
590
+ data: NoInfer<{
439
591
  items: WishlistItem[];
440
- };
592
+ }>;
441
593
  error: null;
442
594
  isError: false;
443
595
  isPending: false;
@@ -460,13 +612,13 @@ declare function useWishlist(options?: {
460
612
  isRefetching: boolean;
461
613
  isStale: boolean;
462
614
  isEnabled: boolean;
463
- refetch: (options?: _tanstack_query_core.RefetchOptions) => Promise<_tanstack_query_core.QueryObserverResult<{
615
+ refetch: (options?: _tanstack_query_core.RefetchOptions) => Promise<_tanstack_query_core.QueryObserverResult<NoInfer<{
464
616
  items: WishlistItem[];
465
- }, Error>>;
617
+ }>, Error>>;
466
618
  fetchStatus: _tanstack_query_core.FetchStatus;
467
- promise: Promise<{
619
+ promise: Promise<NoInfer<{
468
620
  items: WishlistItem[];
469
- }>;
621
+ }>>;
470
622
  } | {
471
623
  add: _tanstack_react_query.UseMutateAsyncFunction<{
472
624
  success: boolean;
@@ -499,13 +651,13 @@ declare function useWishlist(options?: {
499
651
  isRefetching: boolean;
500
652
  isStale: boolean;
501
653
  isEnabled: boolean;
502
- refetch: (options?: _tanstack_query_core.RefetchOptions) => Promise<_tanstack_query_core.QueryObserverResult<{
654
+ refetch: (options?: _tanstack_query_core.RefetchOptions) => Promise<_tanstack_query_core.QueryObserverResult<NoInfer<{
503
655
  items: WishlistItem[];
504
- }, Error>>;
656
+ }>, Error>>;
505
657
  fetchStatus: _tanstack_query_core.FetchStatus;
506
- promise: Promise<{
658
+ promise: Promise<NoInfer<{
507
659
  items: WishlistItem[];
508
- }>;
660
+ }>>;
509
661
  } | {
510
662
  add: _tanstack_react_query.UseMutateAsyncFunction<{
511
663
  success: boolean;
@@ -538,13 +690,13 @@ declare function useWishlist(options?: {
538
690
  isRefetching: boolean;
539
691
  isStale: boolean;
540
692
  isEnabled: boolean;
541
- refetch: (options?: _tanstack_query_core.RefetchOptions) => Promise<_tanstack_query_core.QueryObserverResult<{
693
+ refetch: (options?: _tanstack_query_core.RefetchOptions) => Promise<_tanstack_query_core.QueryObserverResult<NoInfer<{
542
694
  items: WishlistItem[];
543
- }, Error>>;
695
+ }>, Error>>;
544
696
  fetchStatus: _tanstack_query_core.FetchStatus;
545
- promise: Promise<{
697
+ promise: Promise<NoInfer<{
546
698
  items: WishlistItem[];
547
- }>;
699
+ }>>;
548
700
  } | {
549
701
  add: _tanstack_react_query.UseMutateAsyncFunction<{
550
702
  success: boolean;
@@ -577,13 +729,13 @@ declare function useWishlist(options?: {
577
729
  isRefetching: boolean;
578
730
  isStale: boolean;
579
731
  isEnabled: boolean;
580
- refetch: (options?: _tanstack_query_core.RefetchOptions) => Promise<_tanstack_query_core.QueryObserverResult<{
732
+ refetch: (options?: _tanstack_query_core.RefetchOptions) => Promise<_tanstack_query_core.QueryObserverResult<NoInfer<{
581
733
  items: WishlistItem[];
582
- }, Error>>;
734
+ }>, Error>>;
583
735
  fetchStatus: _tanstack_query_core.FetchStatus;
584
- promise: Promise<{
736
+ promise: Promise<NoInfer<{
585
737
  items: WishlistItem[];
586
- }>;
738
+ }>>;
587
739
  } | {
588
740
  add: _tanstack_react_query.UseMutateAsyncFunction<{
589
741
  success: boolean;
@@ -593,9 +745,9 @@ declare function useWishlist(options?: {
593
745
  }, Error, string, unknown>;
594
746
  isAdding: boolean;
595
747
  isRemoving: boolean;
596
- data: {
748
+ data: NoInfer<{
597
749
  items: WishlistItem[];
598
- };
750
+ }>;
599
751
  isError: false;
600
752
  error: null;
601
753
  isPending: false;
@@ -618,23 +770,23 @@ declare function useWishlist(options?: {
618
770
  isRefetching: boolean;
619
771
  isStale: boolean;
620
772
  isEnabled: boolean;
621
- refetch: (options?: _tanstack_query_core.RefetchOptions) => Promise<_tanstack_query_core.QueryObserverResult<{
773
+ refetch: (options?: _tanstack_query_core.RefetchOptions) => Promise<_tanstack_query_core.QueryObserverResult<NoInfer<{
622
774
  items: WishlistItem[];
623
- }, Error>>;
775
+ }>, Error>>;
624
776
  fetchStatus: _tanstack_query_core.FetchStatus;
625
- promise: Promise<{
777
+ promise: Promise<NoInfer<{
626
778
  items: WishlistItem[];
627
- }>;
779
+ }>>;
628
780
  };
629
- declare function useIsInWishlist(productId: string | undefined): _tanstack_react_query.UseQueryResult<{
781
+ declare function useIsInWishlist(productId: string | undefined): _tanstack_react_query.UseQueryResult<NoInfer<{
630
782
  inWishlist: boolean;
631
- }, Error>;
783
+ }>, Error>;
632
784
 
633
785
  declare function useProductReviews(productId: string | undefined, options?: {
634
786
  page?: number;
635
787
  limit?: number;
636
788
  enabled?: boolean;
637
- }): _tanstack_react_query.UseQueryResult<ProductReviewsResponse, Error>;
789
+ }): _tanstack_react_query.UseQueryResult<NoInfer<ProductReviewsResponse>, Error>;
638
790
  declare function useSubmitReview(): _tanstack_react_query.UseMutationResult<{
639
791
  id: string;
640
792
  }, Error, SubmitReviewInput, unknown>;
@@ -645,14 +797,14 @@ declare function useLookupReturnableOrder(): _tanstack_react_query.UseMutationRe
645
797
  email: string;
646
798
  }, unknown>;
647
799
  declare function useSubmitReturn(): _tanstack_react_query.UseMutationResult<ReturnRequest, Error, SubmitReturnInput, unknown>;
648
- declare function useReturnStatus(returnId: string | undefined, email: string | undefined): _tanstack_react_query.UseQueryResult<ReturnStatus, Error>;
800
+ declare function useReturnStatus(returnId: string | undefined, email: string | undefined): _tanstack_react_query.UseQueryResult<NoInfer<ReturnStatus>, Error>;
649
801
 
650
802
  declare function useCookieConsent(visitorId: string | undefined): {
651
803
  record: _tanstack_react_query.UseMutateAsyncFunction<CookieConsent, Error, CookieConsentInput, unknown>;
652
804
  revoke: _tanstack_react_query.UseMutateAsyncFunction<{
653
805
  success: boolean;
654
806
  }, Error, void, unknown>;
655
- data: CookieConsent | null;
807
+ data: NoInfer<CookieConsent | null>;
656
808
  error: Error;
657
809
  isError: true;
658
810
  isPending: false;
@@ -675,15 +827,15 @@ declare function useCookieConsent(visitorId: string | undefined): {
675
827
  isRefetching: boolean;
676
828
  isStale: boolean;
677
829
  isEnabled: boolean;
678
- refetch: (options?: _tanstack_query_core.RefetchOptions) => Promise<_tanstack_query_core.QueryObserverResult<CookieConsent | null, Error>>;
830
+ refetch: (options?: _tanstack_query_core.RefetchOptions) => Promise<_tanstack_query_core.QueryObserverResult<NoInfer<CookieConsent | null>, Error>>;
679
831
  fetchStatus: _tanstack_query_core.FetchStatus;
680
- promise: Promise<CookieConsent | null>;
832
+ promise: Promise<NoInfer<CookieConsent | null>>;
681
833
  } | {
682
834
  record: _tanstack_react_query.UseMutateAsyncFunction<CookieConsent, Error, CookieConsentInput, unknown>;
683
835
  revoke: _tanstack_react_query.UseMutateAsyncFunction<{
684
836
  success: boolean;
685
837
  }, Error, void, unknown>;
686
- data: CookieConsent | null;
838
+ data: NoInfer<CookieConsent | null>;
687
839
  error: null;
688
840
  isError: false;
689
841
  isPending: false;
@@ -706,9 +858,9 @@ declare function useCookieConsent(visitorId: string | undefined): {
706
858
  isRefetching: boolean;
707
859
  isStale: boolean;
708
860
  isEnabled: boolean;
709
- refetch: (options?: _tanstack_query_core.RefetchOptions) => Promise<_tanstack_query_core.QueryObserverResult<CookieConsent | null, Error>>;
861
+ refetch: (options?: _tanstack_query_core.RefetchOptions) => Promise<_tanstack_query_core.QueryObserverResult<NoInfer<CookieConsent | null>, Error>>;
710
862
  fetchStatus: _tanstack_query_core.FetchStatus;
711
- promise: Promise<CookieConsent | null>;
863
+ promise: Promise<NoInfer<CookieConsent | null>>;
712
864
  } | {
713
865
  record: _tanstack_react_query.UseMutateAsyncFunction<CookieConsent, Error, CookieConsentInput, unknown>;
714
866
  revoke: _tanstack_react_query.UseMutateAsyncFunction<{
@@ -737,9 +889,9 @@ declare function useCookieConsent(visitorId: string | undefined): {
737
889
  isRefetching: boolean;
738
890
  isStale: boolean;
739
891
  isEnabled: boolean;
740
- refetch: (options?: _tanstack_query_core.RefetchOptions) => Promise<_tanstack_query_core.QueryObserverResult<CookieConsent | null, Error>>;
892
+ refetch: (options?: _tanstack_query_core.RefetchOptions) => Promise<_tanstack_query_core.QueryObserverResult<NoInfer<CookieConsent | null>, Error>>;
741
893
  fetchStatus: _tanstack_query_core.FetchStatus;
742
- promise: Promise<CookieConsent | null>;
894
+ promise: Promise<NoInfer<CookieConsent | null>>;
743
895
  } | {
744
896
  record: _tanstack_react_query.UseMutateAsyncFunction<CookieConsent, Error, CookieConsentInput, unknown>;
745
897
  revoke: _tanstack_react_query.UseMutateAsyncFunction<{
@@ -768,9 +920,9 @@ declare function useCookieConsent(visitorId: string | undefined): {
768
920
  isRefetching: boolean;
769
921
  isStale: boolean;
770
922
  isEnabled: boolean;
771
- refetch: (options?: _tanstack_query_core.RefetchOptions) => Promise<_tanstack_query_core.QueryObserverResult<CookieConsent | null, Error>>;
923
+ refetch: (options?: _tanstack_query_core.RefetchOptions) => Promise<_tanstack_query_core.QueryObserverResult<NoInfer<CookieConsent | null>, Error>>;
772
924
  fetchStatus: _tanstack_query_core.FetchStatus;
773
- promise: Promise<CookieConsent | null>;
925
+ promise: Promise<NoInfer<CookieConsent | null>>;
774
926
  } | {
775
927
  record: _tanstack_react_query.UseMutateAsyncFunction<CookieConsent, Error, CookieConsentInput, unknown>;
776
928
  revoke: _tanstack_react_query.UseMutateAsyncFunction<{
@@ -799,15 +951,15 @@ declare function useCookieConsent(visitorId: string | undefined): {
799
951
  isRefetching: boolean;
800
952
  isStale: boolean;
801
953
  isEnabled: boolean;
802
- refetch: (options?: _tanstack_query_core.RefetchOptions) => Promise<_tanstack_query_core.QueryObserverResult<CookieConsent | null, Error>>;
954
+ refetch: (options?: _tanstack_query_core.RefetchOptions) => Promise<_tanstack_query_core.QueryObserverResult<NoInfer<CookieConsent | null>, Error>>;
803
955
  fetchStatus: _tanstack_query_core.FetchStatus;
804
- promise: Promise<CookieConsent | null>;
956
+ promise: Promise<NoInfer<CookieConsent | null>>;
805
957
  } | {
806
958
  record: _tanstack_react_query.UseMutateAsyncFunction<CookieConsent, Error, CookieConsentInput, unknown>;
807
959
  revoke: _tanstack_react_query.UseMutateAsyncFunction<{
808
960
  success: boolean;
809
961
  }, Error, void, unknown>;
810
- data: CookieConsent | null;
962
+ data: NoInfer<CookieConsent | null>;
811
963
  isError: false;
812
964
  error: null;
813
965
  isPending: false;
@@ -830,13 +982,13 @@ declare function useCookieConsent(visitorId: string | undefined): {
830
982
  isRefetching: boolean;
831
983
  isStale: boolean;
832
984
  isEnabled: boolean;
833
- refetch: (options?: _tanstack_query_core.RefetchOptions) => Promise<_tanstack_query_core.QueryObserverResult<CookieConsent | null, Error>>;
985
+ refetch: (options?: _tanstack_query_core.RefetchOptions) => Promise<_tanstack_query_core.QueryObserverResult<NoInfer<CookieConsent | null>, Error>>;
834
986
  fetchStatus: _tanstack_query_core.FetchStatus;
835
- promise: Promise<CookieConsent | null>;
987
+ promise: Promise<NoInfer<CookieConsent | null>>;
836
988
  };
837
989
 
838
990
  declare function useSubmitQuote(): _tanstack_react_query.UseMutationResult<QuoteRequest, Error, SubmitQuoteInput, unknown>;
839
- declare function useQuoteStatus(quoteId: string | undefined, email: string | undefined): _tanstack_react_query.UseQueryResult<QuoteRequest, Error>;
991
+ declare function useQuoteStatus(quoteId: string | undefined, email: string | undefined): _tanstack_react_query.UseQueryResult<NoInfer<QuoteRequest>, Error>;
840
992
 
841
993
  /** Subscribe an email to a back-in-stock notification for a product. */
842
994
  declare function useNotifyWhenAvailable(): _tanstack_react_query.UseMutationResult<BackInStockSubscription, Error, {
@@ -862,4 +1014,4 @@ declare function useBehioClient(): BehioStorefront;
862
1014
  */
863
1015
  declare function formatPrice(amount: number, currency: string, locale?: string): string;
864
1016
 
865
- export { ActivePromotion, BehioProvider, type BehioProviderProps, Bundle, Cart, Category, CategoryDetail, CheckoutInput, CookieConsent, CookieConsentInput, CrossSellItem, CustomerAddress, CustomerProfile, FilterField, GiftCardBalance, OrderDetail, OrderListItem, Page, PageDetail, PaginatedResponse, ProductDetail, ProductLabel, ProductListItem, ProductReviewsResponse, ProductsQuery, QuoteRequest, RegisterInput, ReturnRequest, ShopInfo, ShopSeo, type StorageAdapter, SubmitQuoteInput, SubmitReturnInput, SubmitReviewInput, type UseAddressAutocompleteOptions, type UseAddressAutocompleteReturn, type UseAddressesOptions, type UseCartCountOptions, type UseCartOptions, type UseCategoriesOptions, type UseCategoryOptions, type UseCustomerOptions, type UseFeaturedOptions, type UseFiltersOptions, type UseLabelsOptions, type UseOrderOptions, type UseOrdersOptions, type UsePageOptions, type UsePagesOptions, type UseProductOptions, type UseProductsOptions, type UseSearchOptions, type UseShopInfoOptions, type UseShopSeoOptions, WishlistItem, cookieStorage, createMemoryStorage, detectStorage, formatPrice, localStorageAdapter, memoryStorage, useAddressAutocomplete, useAddresses, useAuth, useBehio, useBehioClient, useBundle, useBundles, useCart, useCartCount, useCategories, useCategory, useCheckout, useCookieConsent, useCrossSell, useCustomer, useFeatured, useFilters, useGiftCardBalance, useIsInWishlist, useLabels, useLookupReturnableOrder, useNotifyWhenAvailable, useOrder, useOrders, usePage, usePages, useProduct, useProductPromotions, useProductReviews, useProducts, useQuoteStatus, useReturnStatus, useSearch, useShopInfo, useShopSeo, useSubmitQuote, useSubmitReturn, useSubmitReview, useWishlist };
1017
+ export { ActivePromotion, BehioProvider, type BehioProviderProps, Bundle, Cart, Category, CategoryDetail, CheckoutInput, CookieConsent, CookieConsentInput, CrossSellItem, CurrencySwitcher, type CurrencySwitcherProps, type CurrencySwitcherRenderProps, CustomerAddress, CustomerProfile, FilterField, GiftCardBalance, OrderDetail, OrderListItem, Page, PageDetail, PaginatedResponse, ProductDetail, ProductLabel, ProductListItem, ProductReviewsResponse, ProductsQuery, QuoteRequest, RegisterInput, ReturnRequest, ShopInfo, ShopSeo, type StorageAdapter, SubmitQuoteInput, SubmitReturnInput, SubmitReviewInput, type UseAddressAutocompleteOptions, type UseAddressAutocompleteReturn, type UseAddressesOptions, type UseCartCountOptions, type UseCartOptions, type UseCategoriesOptions, type UseCategoryOptions, type UseCurrencyResult, type UseCustomerOptions, type UseFeaturedOptions, type UseFiltersOptions, type UseLabelsOptions, type UseOrderOptions, type UseOrdersOptions, type UsePageOptions, type UsePagesOptions, type UseProductOptions, type UseProductsOptions, type UseSearchOptions, type UseShopInfoOptions, type UseShopSeoOptions, WishlistItem, cookieStorage, createMemoryStorage, detectStorage, formatPrice, localStorageAdapter, memoryStorage, useAddressAutocomplete, useAddresses, useAuth, useBehio, useBehioClient, useBundle, useBundles, useCart, useCartCount, useCategories, useCategory, useCheckout, useCookieConsent, useCrossSell, useCurrency, useCustomer, useFeatured, useFilters, useGiftCardBalance, useIsInWishlist, useLabels, useLookupReturnableOrder, useNotifyWhenAvailable, useOrder, useOrderAccess, useOrders, usePage, usePages, useProduct, useProductPromotions, useProductReviews, useProducts, useQuoteStatus, useReturnStatus, useSearch, useShopInfo, useShopSeo, useSubmitQuote, useSubmitReturn, useSubmitReview, useWishlist };