@shoppexio/storefront 1.0.99 → 1.0.101

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.ts CHANGED
@@ -1,27 +1,11 @@
1
+ import * as src from 'src';
1
2
  import { NavigationMenuSlot } from '@shoppex/contracts/navigation';
2
3
  export { NavigationMenuSlot } from '@shoppex/contracts/navigation';
3
4
  import { StorefrontDeliveryType } from '@shoppex/contracts/storefront-delivery-type';
4
- import * as src from 'src';
5
5
  import { createApiClient } from '@shoppex/contracts/api-client';
6
6
  import { CustomerWarrantyClaimWire, CustomerPortalAffiliateCreateLinkWire, CustomerPortalDashboardWire, CustomerPortalPaginatedInvoicesWire, CustomerPortalInvoiceDetailWire, CustomerLoyaltyWire, CustomerLoyaltyRedeemWire, CustomerWarrantyListWire, CustomerPortalNotificationPreferencesWire } from '@shoppex/contracts/customer-account-wire';
7
7
  export { CATALOG_UNIT_PRICE_DECIMAL_PLACES, CATALOG_UNIT_PRICE_FORMAT_OPTIONS, PAYABLE_AMOUNT_DECIMAL_PLACES, roundPayableAmount } from '@shoppex/contracts/catalog-unit-price';
8
8
 
9
- interface CacheStats {
10
- hits: number;
11
- misses: number;
12
- pendingRequests: number;
13
- entries: number;
14
- }
15
- declare function getCacheStats(): CacheStats;
16
- declare function clearCache(): void;
17
- declare function invalidateCache(prefixOrKey: string): void;
18
-
19
- /**
20
- * Formatting Utilities
21
- */
22
- declare function createFormatter(currency?: string, locale?: string): Intl.NumberFormat;
23
- declare function formatPrice(amount: number | string, currency?: string, locale?: string): string;
24
-
25
9
  /**
26
10
  * SDK Configuration Types
27
11
  */
@@ -287,13 +271,7 @@ interface Product {
287
271
  price_display?: string;
288
272
  price_discount?: number;
289
273
  currency: string;
290
- /**
291
- * RAW local stock only. `-1` (or any negative value) means unlimited, `0` means
292
- * no local units. This is NEVER on its own a purchasable cap: a supplier-backed
293
- * product reports `stock: 0` by design and is still buyable. Gate buying on
294
- * {@link Product.orderable}, and use `resolveDisplayStock` / `isProductInStock`
295
- * rather than reading this field directly.
296
- */
274
+ /** Local stock; a negative value means unlimited. */
297
275
  stock?: number;
298
276
  /**
299
277
  * Per-product override for the shop's stock-counter setting; `null` inherits.
@@ -310,27 +288,8 @@ interface Product {
310
288
  */
311
289
  hideStockCounter?: boolean | null;
312
290
  hide_stock_counter?: boolean | null;
313
- /**
314
- * Authoritative buyability predicate, mirrored from the backend's order-time
315
- * gate: `local stock covers one unit OR an eligible supplier source can fulfil
316
- * the line`. This — not `stock` — is what a storefront must gate the buy button,
317
- * the quantity cap and the sold-out badge on.
318
- *
319
- * Absent on payloads that predate Dynamic Delivery. When absent, treat
320
- * availability exactly as `stock` alone dictates; a missing field must never
321
- * turn a genuinely sold-out product into a buyable one.
322
- */
291
+ /** Whether local stock and visibility allow this selection to be bought. */
323
292
  orderable?: boolean;
324
- /**
325
- * True when an enabled supplier source fulfils this product instead of local
326
- * stock. `orderable` remains the buy/sold-out gate; this field decides the
327
- * QUANTITY CAP: the supplier purchase — not the local counter — fulfils the line
328
- * and the completion excludes it from the local decrement, so residual local
329
- * units bound nothing and the cap is unlimited even at `stock: 1`. Absent on
330
- * payloads that predate Dynamic Delivery; when absent, the cap stays exactly
331
- * what `stock` alone dictates.
332
- */
333
- supplier_backed?: boolean;
334
293
  quantity_min?: number;
335
294
  quantity_max?: number;
336
295
  min_quantity?: number;
@@ -427,32 +386,10 @@ interface ProductVariant {
427
386
  price?: number;
428
387
  /** The merchant's SKU for this option; null when they set none. */
429
388
  sku?: string | null;
430
- /**
431
- * RAW local stock for this option only. `-1` (or any negative value) means
432
- * unlimited, `0` means no local units — which a supplier-backed option reports
433
- * by design. Never render this as a purchasable cap on its own; gate on
434
- * {@link ProductVariant.orderable}.
435
- */
389
+ /** Local stock; a negative value means unlimited. */
436
390
  stock?: number;
437
- /**
438
- * Authoritative buyability predicate for this option: `local stock covers one
439
- * unit OR an eligible supplier source can fulfil the line`. The backend resolves
440
- * a product-wide supplier mapping onto every variant's own flag, so this alone
441
- * is authoritative for a selected variant.
442
- *
443
- * Absent on payloads that predate Dynamic Delivery; when absent, availability
444
- * follows `stock` alone, exactly as before.
445
- */
391
+ /** Whether local stock and visibility allow this selection to be bought. */
446
392
  orderable?: boolean;
447
- /**
448
- * True when an enabled supplier source fulfils this option instead of local
449
- * stock. `orderable` remains the buy/sold-out gate; this field decides the
450
- * QUANTITY CAP — a supplier-backed row is unbounded even when it still holds a
451
- * few local units, because the supplier purchase fulfils the line and the
452
- * completion excludes it from the local decrement. Absent on payloads that
453
- * predate Dynamic Delivery.
454
- */
455
- supplier_backed?: boolean;
456
393
  quantity_min?: number;
457
394
  quantity_max?: number;
458
395
  quantityMin?: number;
@@ -495,32 +432,10 @@ interface PriceVariant {
495
432
  price: number;
496
433
  /** The merchant's SKU for this option; null when they set none. */
497
434
  sku?: string | null;
498
- /**
499
- * RAW local stock for this price variant only. `-1` (or any negative value)
500
- * means unlimited, `0` means no local units — which a supplier-backed variant
501
- * reports by design. Never render this as a purchasable cap on its own; gate on
502
- * {@link PriceVariant.orderable}.
503
- */
435
+ /** Local stock; a negative value means unlimited. */
504
436
  stock?: number;
505
- /**
506
- * Authoritative buyability predicate for this price variant: `local stock covers
507
- * one unit OR an eligible supplier source can fulfil the line`. The backend
508
- * resolves a product-wide supplier mapping onto every variant's own flag, so
509
- * this alone is authoritative for a selected variant.
510
- *
511
- * Absent on payloads that predate Dynamic Delivery; when absent, availability
512
- * follows `stock` alone, exactly as before.
513
- */
437
+ /** Whether local stock and visibility allow this selection to be bought. */
514
438
  orderable?: boolean;
515
- /**
516
- * True when an enabled supplier source fulfils this price variant instead of
517
- * local stock. `orderable` remains the buy/sold-out gate; this field decides the
518
- * QUANTITY CAP — a supplier-backed row is unbounded even when it still holds a
519
- * few local units, because the supplier purchase fulfils the line and the
520
- * completion excludes it from the local decrement. Absent on payloads that
521
- * predate Dynamic Delivery.
522
- */
523
- supplier_backed?: boolean;
524
439
  quantity_min?: number;
525
440
  quantity_max?: number;
526
441
  quantityMin?: number;
@@ -1211,6 +1126,86 @@ interface CartStats {
1211
1126
  total_price_is_estimate: boolean;
1212
1127
  }
1213
1128
 
1129
+ declare function getCartCoupon(): string | null;
1130
+ declare function getCartCouponSource(): CartCodeSource | null;
1131
+ declare function setCartCoupon(coupon: string | null | undefined, source?: CartCodeSource): string | null;
1132
+ declare function clearCartCoupon(): void;
1133
+ declare function getCart(): CartItem[];
1134
+ /** Resolve a cart line_id for product+variant. When multiple configs exist, returns the first line. */
1135
+ declare function resolveCartLineId(productId: string, variantId: string, cart?: CartItem[]): string;
1136
+ declare function getCartItemCount(): number;
1137
+ declare function addToCart(productId: string, variantId: string, quantity?: number, options?: CartAddOptions): void;
1138
+ declare function setCartItem(productId: string, variantId: string, quantity?: number, options?: CartAddOptions): void;
1139
+ /**
1140
+ * Patch one cart line.
1141
+ *
1142
+ * TRI-STATE BOUNDS: `min_quantity`/`max_quantity` accept `null` to DELETE the
1143
+ * stored bound — see {@link CartItemUpdate}. `undefined` (or an absent key)
1144
+ * leaves it alone, which is why a removed ceiling needs its own spelling.
1145
+ *
1146
+ * NO-OP UPDATES DO NOT WRITE. An update that leaves the cart byte-identical
1147
+ * returns without touching storage: no metadata bump, no `version` increment,
1148
+ * and — because the storage write is what other tabs observe — no `storage`
1149
+ * event. Writing anyway made an ineffective heal indistinguishable from a real
1150
+ * cart change, and two tabs healing the same line could hand the event back and
1151
+ * forth indefinitely. Line-shape healing of a legacy stored row is NOT this
1152
+ * function's job: `normalizeCartItems` clamps and repairs on every READ, which
1153
+ * is the chokepoint every access already flows through.
1154
+ */
1155
+ declare function updateCartItem(lineId: string, updates: CartItemUpdate): void;
1156
+ declare function removeFromCart(lineId: string): void;
1157
+ /**
1158
+ * Discards the cart entirely — and with it the proof that describes it.
1159
+ *
1160
+ * PAYMENT PATH. `latestQuoteToken` is evidence about a specific cart, and this
1161
+ * is the one mutation after which that cart does not exist in any form. Held
1162
+ * across the clear, the proof outlives its subject: a caller that clears and
1163
+ * re-adds (Buy Now REPLACES the cart) hands `/from-cart` a token bound to the
1164
+ * previous cart's hash, which is refused as `quote_token_stale` — a hand-off
1165
+ * dead-ended by a proof nobody asked for. And with no re-quote in between there
1166
+ * is nothing to replace it with, so the retry is refused identically.
1167
+ *
1168
+ * Only this path clears it. Every OTHER mutation turns one cart into another
1169
+ * cart, where a proof that no longer matches is the server's to refuse: it
1170
+ * answers `quote_token_stale`, the surfaces re-quote, and the buyer approves the
1171
+ * new total. Dropping the proof there instead would silently remove the approved
1172
+ * -total ceiling from a checkout that raced the re-quote, which is the failure
1173
+ * the token exists to prevent.
1174
+ */
1175
+ declare function clearCart(): void;
1176
+ declare function createCartBackup(): void;
1177
+ declare function restoreCartFromBackup(): boolean;
1178
+ declare function mergeBaskets(items: CartBasketMergeLine[]): CartItem[];
1179
+ declare function moveBasketItem(fromProductId: string, fromVariantId: string, toProductId: string, toVariantId: string): void;
1180
+ declare function validateCartIntegrity(): boolean;
1181
+ declare function getCartStats(): CartStats;
1182
+ /** @internal — read by checkout(); exported only across module boundaries. */
1183
+ declare function getLatestQuoteToken(): string | null;
1184
+ declare function quoteCart(coupon?: string, currency?: string): Promise<src.SDKResponse<CartQuote>>;
1185
+
1186
+ /**
1187
+ * SDK Configuration Management
1188
+ */
1189
+
1190
+ declare function getConfig(): ShoppexConfig;
1191
+ declare function isInitialized(): boolean;
1192
+
1193
+ interface CacheStats {
1194
+ hits: number;
1195
+ misses: number;
1196
+ pendingRequests: number;
1197
+ entries: number;
1198
+ }
1199
+ declare function getCacheStats(): CacheStats;
1200
+ declare function clearCache(): void;
1201
+ declare function invalidateCache(prefixOrKey: string): void;
1202
+
1203
+ /**
1204
+ * Formatting Utilities
1205
+ */
1206
+ declare function createFormatter(currency?: string, locale?: string): Intl.NumberFormat;
1207
+ declare function formatPrice(amount: number | string, currency?: string, locale?: string): string;
1208
+
1214
1209
  /**
1215
1210
  * Pages Module
1216
1211
  *
@@ -1511,63 +1506,6 @@ declare function buildCheckoutUrl(couponOrOptions?: string | CheckoutOptions, op
1511
1506
  */
1512
1507
  declare function buildCheckoutUrlSync(): never;
1513
1508
 
1514
- declare function getCartCoupon(): string | null;
1515
- declare function getCartCouponSource(): CartCodeSource | null;
1516
- declare function setCartCoupon(coupon: string | null | undefined, source?: CartCodeSource): string | null;
1517
- declare function clearCartCoupon(): void;
1518
- declare function getCart(): CartItem[];
1519
- /** Resolve a cart line_id for product+variant. When multiple configs exist, returns the first line. */
1520
- declare function resolveCartLineId(productId: string, variantId: string, cart?: CartItem[]): string;
1521
- declare function getCartItemCount(): number;
1522
- declare function addToCart(productId: string, variantId: string, quantity?: number, options?: CartAddOptions): void;
1523
- declare function setCartItem(productId: string, variantId: string, quantity?: number, options?: CartAddOptions): void;
1524
- /**
1525
- * Patch one cart line.
1526
- *
1527
- * TRI-STATE BOUNDS: `min_quantity`/`max_quantity` accept `null` to DELETE the
1528
- * stored bound — see {@link CartItemUpdate}. `undefined` (or an absent key)
1529
- * leaves it alone, which is why a removed ceiling needs its own spelling.
1530
- *
1531
- * NO-OP UPDATES DO NOT WRITE. An update that leaves the cart byte-identical
1532
- * returns without touching storage: no metadata bump, no `version` increment,
1533
- * and — because the storage write is what other tabs observe — no `storage`
1534
- * event. Writing anyway made an ineffective heal indistinguishable from a real
1535
- * cart change, and two tabs healing the same line could hand the event back and
1536
- * forth indefinitely. Line-shape healing of a legacy stored row is NOT this
1537
- * function's job: `normalizeCartItems` clamps and repairs on every READ, which
1538
- * is the chokepoint every access already flows through.
1539
- */
1540
- declare function updateCartItem(lineId: string, updates: CartItemUpdate): void;
1541
- declare function removeFromCart(lineId: string): void;
1542
- /**
1543
- * Discards the cart entirely — and with it the proof that describes it.
1544
- *
1545
- * PAYMENT PATH. `latestQuoteToken` is evidence about a specific cart, and this
1546
- * is the one mutation after which that cart does not exist in any form. Held
1547
- * across the clear, the proof outlives its subject: a caller that clears and
1548
- * re-adds (Buy Now REPLACES the cart) hands `/from-cart` a token bound to the
1549
- * previous cart's hash, which is refused as `quote_token_stale` — a hand-off
1550
- * dead-ended by a proof nobody asked for. And with no re-quote in between there
1551
- * is nothing to replace it with, so the retry is refused identically.
1552
- *
1553
- * Only this path clears it. Every OTHER mutation turns one cart into another
1554
- * cart, where a proof that no longer matches is the server's to refuse: it
1555
- * answers `quote_token_stale`, the surfaces re-quote, and the buyer approves the
1556
- * new total. Dropping the proof there instead would silently remove the approved
1557
- * -total ceiling from a checkout that raced the re-quote, which is the failure
1558
- * the token exists to prevent.
1559
- */
1560
- declare function clearCart(): void;
1561
- declare function createCartBackup(): void;
1562
- declare function restoreCartFromBackup(): boolean;
1563
- declare function mergeBaskets(items: CartBasketMergeLine[]): CartItem[];
1564
- declare function moveBasketItem(fromProductId: string, fromVariantId: string, toProductId: string, toVariantId: string): void;
1565
- declare function validateCartIntegrity(): boolean;
1566
- declare function getCartStats(): CartStats;
1567
- /** @internal — read by checkout(); exported only across module boundaries. */
1568
- declare function getLatestQuoteToken(): string | null;
1569
- declare function quoteCart(coupon?: string, currency?: string): Promise<src.SDKResponse<CartQuote>>;
1570
-
1571
1509
  /**
1572
1510
  * Products Module
1573
1511
  *
@@ -1629,18 +1567,13 @@ declare function getStoreBannerUrl(): Promise<string | null>;
1629
1567
  type ApiClient = ReturnType<typeof createApiClient>;
1630
1568
  /**
1631
1569
  * Return a typed OpenAPI client bound to the SDK's configured API base URL.
1632
- * The client is cached per base URL and recreated when the SDK is re-initialized
1633
- * against a different host.
1570
+ * The client is cached for the config object it was built from: every init
1571
+ * creates a new config object, so a re-init rebuilds it. Keyed here instead of
1572
+ * reset from `initConfig`, so `core/config.ts` (which every SDK user loads)
1573
+ * does not import this module and its `openapi-fetch` dependency.
1634
1574
  */
1635
1575
  declare function getTypedClient(token?: string): ApiClient;
1636
1576
 
1637
- /**
1638
- * SDK Configuration Management
1639
- */
1640
-
1641
- declare function getConfig(): ShoppexConfig;
1642
- declare function isInitialized(): boolean;
1643
-
1644
1577
  /**
1645
1578
  * SDK Error Classes
1646
1579
  */
@@ -1696,8 +1629,8 @@ declare function isStorefrontCheckboxCustomFieldValueChecked(value: string | und
1696
1629
  declare function validateStorefrontCustomFieldValue(field: StorefrontCustomField, value: string): string | null;
1697
1630
  declare function buildStorefrontCustomFieldPayload(fields: StorefrontCustomField[], values: Record<string, string>): Record<string, string>;
1698
1631
 
1699
- type VariantLike = Pick<ProductVariant, 'stock' | 'orderable' | 'supplier_backed'> | Pick<PriceVariant, 'stock' | 'orderable' | 'supplier_backed'>;
1700
- type ProductLike = Pick<Product, 'type' | 'stock' | 'orderable' | 'supplier_backed' | 'on_hold' | 'price_variants' | 'variants'> & {
1632
+ type VariantLike = Pick<ProductVariant, 'stock' | 'orderable'> | Pick<PriceVariant, 'stock' | 'orderable'>;
1633
+ type ProductLike = Pick<Product, 'type' | 'stock' | 'orderable' | 'on_hold' | 'price_variants' | 'variants'> & {
1701
1634
  onHold?: boolean | number | string | null;
1702
1635
  is_on_hold?: boolean | number | string | null;
1703
1636
  isOnHold?: boolean | number | string | null;
@@ -2190,14 +2123,6 @@ declare const shoppex: {
2190
2123
  resellerOrder: typeof resellerOrder;
2191
2124
  resellerWallet: typeof resellerWallet;
2192
2125
  resellerApiKeys: typeof resellerApiKeys;
2193
- init: {
2194
- (storeSlug: string, options?: src.ShoppexInitOptions): void;
2195
- (options: src.ShoppexInitOptions & {
2196
- storeId: string;
2197
- }): void;
2198
- };
2199
- isInitialized: typeof isInitialized;
2200
- getConfig: typeof getConfig;
2201
2126
  client: typeof getTypedClient;
2202
2127
  getStore: typeof getStore;
2203
2128
  getStorefront: typeof getStorefront;
@@ -2208,38 +2133,12 @@ declare const shoppex: {
2208
2133
  getStorefrontProductsPage: typeof getStorefrontProductsPage;
2209
2134
  getProduct: typeof getProduct;
2210
2135
  getCategories: typeof getCategories;
2211
- getCart: typeof getCart;
2212
- getCartItemCount: typeof getCartItemCount;
2213
- getCartCoupon: typeof getCartCoupon;
2214
- getCartCouponSource: typeof getCartCouponSource;
2215
- setCartCoupon: typeof setCartCoupon;
2216
- clearCartCoupon: typeof clearCartCoupon;
2217
- addToCart: typeof addToCart;
2218
- setCartItem: typeof setCartItem;
2219
- updateCartItem: typeof updateCartItem;
2220
- removeFromCart: typeof removeFromCart;
2221
- clearCart: typeof clearCart;
2222
- createCartBackup: typeof createCartBackup;
2223
- restoreCartFromBackup: typeof restoreCartFromBackup;
2224
- mergeBaskets: typeof mergeBaskets;
2225
- moveBasketItem: typeof moveBasketItem;
2226
- getCartStats: typeof getCartStats;
2227
- validateCartIntegrity: typeof validateCartIntegrity;
2228
- quoteCart: typeof quoteCart;
2229
- getLatestQuoteToken: typeof getLatestQuoteToken;
2230
- resolveCartLineId: typeof resolveCartLineId;
2231
2136
  checkout: typeof checkout;
2232
2137
  buildCheckoutUrl: typeof buildCheckoutUrl;
2233
2138
  buildCheckoutUrlSync: typeof buildCheckoutUrlSync;
2234
2139
  getRequestedCheckoutCurrency: typeof getRequestedCheckoutCurrency;
2235
- captureAffiliateFromUrl: typeof captureAffiliateFromUrl;
2236
2140
  validateAffiliateCode: typeof validateAffiliateCode;
2237
2141
  applyAffiliateCode: typeof applyAffiliateCode;
2238
- getAffiliateCode: typeof getAffiliateCode;
2239
- getStoredAffiliate: typeof getStoredAffiliate;
2240
- setAffiliateCode: typeof setAffiliateCode;
2241
- clearAffiliateCode: typeof clearAffiliateCode;
2242
- trackAffiliateEvent: typeof trackAffiliateEvent;
2243
2142
  validateCoupon: typeof validateCoupon;
2244
2143
  getShopReviews: typeof getShopReviews;
2245
2144
  getShopReviewsPage: typeof src.getShopReviewsPage;
@@ -2254,8 +2153,6 @@ declare const shoppex: {
2254
2153
  getMenuBySlot: typeof src.getMenuBySlot;
2255
2154
  getMenuByTitle: typeof src.getMenuByTitle;
2256
2155
  getMenuSlotTitles: typeof src.getMenuSlotTitles;
2257
- trackPageView: typeof src.trackPageView;
2258
- trackCartActivity: typeof src.trackCartActivity;
2259
2156
  getStorefrontOnlineUsers: typeof src.getStorefrontOnlineUsers;
2260
2157
  getStorefrontRecentSales: typeof src.getStorefrontRecentSales;
2261
2158
  touchStorefrontPresence: typeof src.touchStorefrontPresence;
@@ -2268,6 +2165,42 @@ declare const shoppex: {
2268
2165
  fetchPublishedThemeSettings: typeof src.fetchPublishedThemeSettings;
2269
2166
  resolveDefaults: typeof src.resolveDefaults;
2270
2167
  mergeSettings: typeof src.mergeSettings;
2168
+ init: {
2169
+ (storeSlug: string, options?: src.ShoppexInitOptions): void;
2170
+ (options: src.ShoppexInitOptions & {
2171
+ storeId: string;
2172
+ }): void;
2173
+ };
2174
+ isInitialized: typeof isInitialized;
2175
+ getConfig: typeof getConfig;
2176
+ getCart: typeof getCart;
2177
+ getCartItemCount: typeof getCartItemCount;
2178
+ getCartCoupon: typeof getCartCoupon;
2179
+ getCartCouponSource: typeof getCartCouponSource;
2180
+ setCartCoupon: typeof setCartCoupon;
2181
+ clearCartCoupon: typeof clearCartCoupon;
2182
+ addToCart: typeof addToCart;
2183
+ setCartItem: typeof setCartItem;
2184
+ updateCartItem: typeof updateCartItem;
2185
+ removeFromCart: typeof removeFromCart;
2186
+ clearCart: typeof clearCart;
2187
+ createCartBackup: typeof createCartBackup;
2188
+ restoreCartFromBackup: typeof restoreCartFromBackup;
2189
+ mergeBaskets: typeof mergeBaskets;
2190
+ moveBasketItem: typeof moveBasketItem;
2191
+ getCartStats: typeof getCartStats;
2192
+ validateCartIntegrity: typeof validateCartIntegrity;
2193
+ quoteCart: typeof quoteCart;
2194
+ getLatestQuoteToken: typeof getLatestQuoteToken;
2195
+ resolveCartLineId: typeof resolveCartLineId;
2196
+ captureAffiliateFromUrl: typeof captureAffiliateFromUrl;
2197
+ getAffiliateCode: typeof getAffiliateCode;
2198
+ getStoredAffiliate: typeof getStoredAffiliate;
2199
+ setAffiliateCode: typeof setAffiliateCode;
2200
+ clearAffiliateCode: typeof clearAffiliateCode;
2201
+ trackAffiliateEvent: typeof trackAffiliateEvent;
2202
+ trackPageView: typeof src.trackPageView;
2203
+ trackCartActivity: typeof src.trackCartActivity;
2271
2204
  };
2272
2205
 
2273
2206
  export { type AffiliateValidation, ApiError, type ApiResponse, type BlockDefinition, type BlockInstance, type BuyerRewardActivityItem, type BuyerRewards, CURRENCY_UNAVAILABLE_ERROR_CODE, type CartAddOptions, type CartAddon, type CartAppliedDiscount, type CartBasketMergeLine, type CartCodeSource, CartError, type CartItem, type CartItemUpdate, type CartLineIdentityInput, type CartMetadata, type CartPayload, type CartQuote, type CartQuoteLine, type CartStats, type Category, CheckoutCreateError, type CheckoutOptions, type CheckoutResult, type CouponValidation, type CouponValidationOptions, type CursorPagination, type CustomFieldDefinition, type CustomerAffiliateLinkInput, type CustomerEmailPreferencesPatch, type CustomerInvoicePdf, type CustomerNotificationPreferencesPatch, type CustomerProfilePatch, type CustomerSubscriptionCancelOptions, type CustomerTicketPayload, type EligibleBundleDeal, type EligibleBundleDealProduct, type EligibleCartDeal, type Feedback, type Invoice, type InvoiceProduct, type Menu, type MenuItem, NetworkError, NotInitializedError, PRODUCT_FILTER_UNSUPPORTED, type Page, type PageLayout, type PriceVariant, type Product, type ProductAddon, type ProductBundle, type ProductBundleProduct, type ProductCategory, type ProductDescriptionTab, type ProductFaq, type ProductFeedback, type ProductGroup, type ProductImage, type ProductVariant, type PublishedBuilderSettings, type PublishedThemeSettingsPayload, type ResellerCatalogQuery, type ResellerOrderItem, type ResellerOrdersQuery, type ResolvedThemeSettings, type RewardActionType, type RewardGrantStatus, type RewardProgramSummary, type RewardProgramTeaserItem, type RewardReason, type SDKResponse, type SearchOptions, type SectionDefinition, type SettingField, type Shop, type ShopFeedback, type ShopReviewsPage, type ShopReviewsSummary, type ShopTheme, type ShoppexConfig, ShoppexError, type ShoppexInitOptions, type StorefrontAddon, type StorefrontAddonBootstrap, type StorefrontAnnouncementBarAddon, type StorefrontCatalogSearchItem, type StorefrontContactTicketInput, type StorefrontContactTicketResult, type StorefrontCountdownBarAddon, type StorefrontCouponPopupModalAddon, type StorefrontCustomField, type StorefrontData, type StorefrontItem, type StorefrontOnlineUsers, type StorefrontPromoInfoCardAddon, type StorefrontRecentPurchasePopupAddon, type StorefrontRecentSaleEntry, type StorefrontRecentSales, type StorefrontSearchFilterOptions, type StorefrontSocialLinks, type Subscription, type SubscriptionFlags, type SubscriptionInterval, type ThemeBlockManifest, type ThemeConfig, type TrustedChecks, ValidationError, acceptResellerInvite, addFavorite, affiliate, affiliateStats, applyForReseller, buildStorefrontContactMessage, buildStorefrontCustomFieldPayload, buildStorefrontProductLookup, cancelSubscription, claimWarranty, collectProductSearchHaystack, computeCartLineId, createAffiliateLink, createTicket, dashboard, shoppex as default, emailPreferences, enrollAsReseller, ensureCartLineId, favorites, fetchPublishedBuilderSettings, fetchPublishedThemeSettings, filterProductsBySearchQuery, getMenu, getMenuBySlot, getMenuByTitle, getMenuSlotTitles, getMenus, getMergedStorefrontProducts, getShopReviewsPage, getStorefrontGroupProducts, getStorefrontOnlineUsers, getStorefrontRecentSales, groupMatchesSearchQuery, invoicePdf, isProductInStock, isProductOutOfStock, isStorefrontCheckboxCustomFieldValueChecked, isVariantOutOfStock, logout, loyalty, me, mergeSettings, normalizeSearchQuery, normalizeStorefrontCustomFields, notificationPreferences, order, orders, pauseSubscription, productMatchesSearchQuery, quoteResellerOrder, redeemLoyaltyPoints, removeAvatar, removeFavorite, replyToTicket, requestOtp, reseller, resellerApiKeys, resellerCatalog, resellerOrder, resellerOrders, resellerWallet, resetLicenseHwid, resolveDefaults, resolveDisplayStock, resolveStorefrontApiBaseUrl, resolveStorefrontSocialLinks, resolveVariantStockValue, resumeSubscription, revokeAllSessions, revokeSession, searchMergedStorefrontCatalog, searchMergedStorefrontCatalogItems, sessions, shoppex, stripHtmlFromText, submitStorefrontContactTicket, subscriptionBillingHistory, ticket, touchStorefrontPresence, trackCartActivity, trackPageView, undoSubscriptionCancel, updateAvatar, updateEmailPreferences, updateNotificationPreferences, updateProfile, validateStorefrontCustomFieldValue, verifyOtp, warranties };