brainerce 2.2.0 → 2.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.ts CHANGED
@@ -579,8 +579,25 @@ interface LoyaltyNextTierSummary extends LoyaltyTierSummary {
579
579
  interface LoyaltyStatus {
580
580
  /** Whether the customer has a membership in the program. */
581
581
  enrolled: boolean;
582
- /** Redeemable points balance (pending earns excluded). */
582
+ /** Redeemable points balance (pending earns excluded — see `pendingPoints`). */
583
583
  pointsBalance: number;
584
+ /**
585
+ * Points already earned but still inside the program's return window, so not
586
+ * yet spendable and NOT counted in `pointsBalance`.
587
+ *
588
+ * ⛔ Render this whenever it is above zero. A shopper who just ordered has
589
+ * their points here, not in the balance, and a panel that shows only
590
+ * `pointsBalance` tells them "0" the day they bought something — which reads
591
+ * as a broken programme rather than a waiting period.
592
+ */
593
+ pendingPoints: number;
594
+ /**
595
+ * When `pendingPoints` becomes spendable — the nightly confirm run after the
596
+ * oldest pending earn's window closes. ISO 8601, or null when nothing is
597
+ * pending. Later pending earns confirm on their own later dates; this is the
598
+ * next date on which the balance goes up.
599
+ */
600
+ pendingPointsConfirmAt: string | null;
584
601
  /** Total points ever earned (confirmed). */
585
602
  lifetimeEarned: number;
586
603
  /** Program display config, or null when the store has no loyalty program. */
@@ -589,6 +606,12 @@ interface LoyaltyStatus {
589
606
  pointsName: string;
590
607
  /** Points needed to redeem one unit of store currency. */
591
608
  currencyRatio: number;
609
+ /**
610
+ * Days a new earn stays pending before it can be spent — the merchant's
611
+ * return window. Use it to explain the wait ("points arrive 14 days after
612
+ * your order"); use `pendingPointsConfirmAt` for the actual date.
613
+ */
614
+ pendingDays: number;
592
615
  status: 'DRAFT' | 'ACTIVE' | 'PAUSED';
593
616
  } | null;
594
617
  /** The customer's current tier, or null if untiered / no tiers configured. */
@@ -842,7 +865,13 @@ interface Product {
842
865
  displayCurrency?: string;
843
866
  /** Product status (active, draft). Always returned by backend. */
844
867
  status: ProductStatus;
845
- type: 'SIMPLE' | 'VARIABLE';
868
+ /**
869
+ * Catalog structure. `KIT` is a sellable kit ("maaraz") whose price and
870
+ * availability derive from its component products — it carries no inventory
871
+ * row of its own, and outside FIXED pricing its `basePrice` is a placeholder.
872
+ * Treat it as not-directly-purchasable unless you resolve its components.
873
+ */
874
+ type: 'SIMPLE' | 'VARIABLE' | 'KIT';
846
875
  /** Whether product is downloadable/digital. */
847
876
  isDownloadable?: boolean;
848
877
  /** Download files available for this product (when isDownloadable is true) */
@@ -1651,7 +1680,7 @@ interface ProductQueryParams {
1651
1680
  * `salePrice` stay in the store currency. Display-only — checkout still
1652
1681
  * charges in the store currency. */
1653
1682
  regionId?: string;
1654
- type?: 'SIMPLE' | 'VARIABLE';
1683
+ type?: 'SIMPLE' | 'VARIABLE' | 'KIT';
1655
1684
  isDownloadable?: boolean;
1656
1685
  }
1657
1686
  /**
@@ -1675,7 +1704,7 @@ interface ProductSuggestion {
1675
1704
  basePrice: string;
1676
1705
  /** Sale price as string. Use parseFloat() for calculations. */
1677
1706
  salePrice?: string | null;
1678
- type: 'SIMPLE' | 'VARIABLE';
1707
+ type: 'SIMPLE' | 'VARIABLE' | 'KIT';
1679
1708
  }
1680
1709
  /**
1681
1710
  * Category node in the tree returned by `getCategories()`.
@@ -1771,7 +1800,12 @@ interface CreateProductDto {
1771
1800
  salePrice?: number;
1772
1801
  costPrice?: number;
1773
1802
  status?: ProductStatus;
1774
- type?: 'SIMPLE' | 'VARIABLE';
1803
+ /**
1804
+ * `KIT` creates an EMPTY kit. It is not purchasable until components are
1805
+ * added — this endpoint cannot carry them, so a kit created here still needs
1806
+ * its contents set before it can be sold.
1807
+ */
1808
+ type?: 'SIMPLE' | 'VARIABLE' | 'KIT';
1775
1809
  isDownloadable?: boolean;
1776
1810
  /** Existing category IDs to assign. Unknown/cross-store IDs are rejected with 400. To assign by name (auto-creating if missing), use `categoryNames`. */
1777
1811
  categories?: string[];
@@ -3367,8 +3401,20 @@ interface TaxBreakdownItem {
3367
3401
  * ```
3368
3402
  */
3369
3403
  interface TaxBreakdown {
3370
- /** Subtotal before tax */
3404
+ /**
3405
+ * Subtotal before tax — and it INCLUDES the shipping net.
3406
+ *
3407
+ * Rendering `subtotal + shipping + tax` therefore counts shipping twice. Use
3408
+ * `subtotal - shippingNet` for a goods-only row beside a separate shipping
3409
+ * line, or the three rows will not add up to the total you are charging.
3410
+ */
3371
3411
  subtotal: number;
3412
+ /**
3413
+ * The shipping net already counted inside `subtotal`. Zero when there is no
3414
+ * shipping. Subtract this rather than the gross `shippingAmount`: they differ
3415
+ * whenever shipping is taxed.
3416
+ */
3417
+ shippingNet?: number;
3372
3418
  /** Total tax amount */
3373
3419
  totalTax: number;
3374
3420
  /** Total including tax */
@@ -3722,7 +3768,12 @@ interface GiftCardAdmin {
3722
3768
  customerId: string | null;
3723
3769
  recipientEmail: string | null;
3724
3770
  expiresAt: string | null;
3725
- /** Stamped if an expiry was ever processed. The balance is deliberately NOT zeroed. */
3771
+ /**
3772
+ * Always `null` today. Nothing stamps it: there is no expiry job anywhere in
3773
+ * the platform, and no `EXPIRE` ledger row is ever written. Expiry is enforced
3774
+ * at read time instead — branch on `expired`, never on this. The balance is
3775
+ * deliberately NOT zeroed when a card lapses.
3776
+ */
3726
3777
  expiredAt: string | null;
3727
3778
  /** Derived at read time, so it is true the moment validity lapses. */
3728
3779
  expired: boolean;
@@ -3731,6 +3782,12 @@ interface GiftCardAdmin {
3731
3782
  /** One movement of value. The ledger is append-only — nothing here is ever rewritten. */
3732
3783
  interface GiftCardTransaction {
3733
3784
  id: string;
3785
+ /**
3786
+ * `EXPIRE` is declared for a write-off that does not exist yet: nothing in the
3787
+ * platform writes one, for the same reason nothing stamps
3788
+ * {@link GiftCardAdmin.expiredAt}. Handle it — the union is the contract — but
3789
+ * do not build a report that expects to find any.
3790
+ */
3734
3791
  type: 'ISSUE' | 'REDEEM' | 'REFUND' | 'ADJUST' | 'EXPIRE';
3735
3792
  /** Signed decimal string. Negative debits the card. */
3736
3793
  amount: string;
@@ -3787,6 +3844,23 @@ interface ReissuedGiftCardAdmin extends IssuedGiftCardAdmin {
3787
3844
  /** Where the replacement was emailed, or null if the merchant must hand it over. */
3788
3845
  deliveredTo: string | null;
3789
3846
  }
3847
+ /**
3848
+ * Per-call options for a write that the server accepts an `Idempotency-Key` on.
3849
+ *
3850
+ * The SDK sends the value as the HTTP header; it never goes in the request body,
3851
+ * because the backend DTOs reject unknown properties. Without a key a retried
3852
+ * timeout runs the write twice — on a gift-card issue that means a second card
3853
+ * and a second real liability nobody asked for.
3854
+ *
3855
+ * Any string up to 255 characters. Use one the caller can reproduce for the
3856
+ * SAME logical operation (an order id, a support-ticket id, a UUID you stored
3857
+ * before the first attempt) — a fresh random key on every retry defeats the
3858
+ * whole mechanism. Keys are remembered for 24 hours and are scoped to the API
3859
+ * key, so two integrations cannot collide.
3860
+ */
3861
+ interface IdempotentRequestOptions {
3862
+ idempotencyKey?: string;
3863
+ }
3790
3864
  interface IssueGiftCardAdminDto {
3791
3865
  /** Decimal string, e.g. "200.00". Must be greater than zero. */
3792
3866
  amount: string;
@@ -6842,7 +6916,7 @@ interface ProductRecommendation {
6842
6916
  basePrice: string;
6843
6917
  salePrice: string | null;
6844
6918
  images: ProductImage[];
6845
- type: 'SIMPLE' | 'VARIABLE';
6919
+ type: 'SIMPLE' | 'VARIABLE' | 'KIT';
6846
6920
  inventory?: InventoryInfo | null;
6847
6921
  relationType: ProductRelationType;
6848
6922
  /** Pinned variant of the target (VARIABLE only); null = customer chooses. */
@@ -7942,6 +8016,13 @@ declare class BrainerceClient {
7942
8016
  * Clear the customer token (logout)
7943
8017
  */
7944
8018
  clearCustomerToken(): void;
8019
+ /**
8020
+ * Turn an `idempotencyKey` option into the header the backend reads.
8021
+ *
8022
+ * Returns `undefined` when there is no key, so the header is absent rather
8023
+ * than empty — the interceptor rejects a present-but-blank key with a 400.
8024
+ */
8025
+ private idempotencyHeaders;
7945
8026
  /**
7946
8027
  * Make a request to the Admin API (requires apiKey)
7947
8028
  */
@@ -8527,13 +8608,18 @@ declare class BrainerceClient {
8527
8608
  */
8528
8609
  convertToSimple(productId: string): Promise<Product>;
8529
8610
  /**
8530
- * Publish a product to specific platforms
8611
+ * Publish a product to specific platforms.
8531
8612
  *
8532
- * @example
8533
- * ```typescript
8534
- * const result = await client.publishProduct('prod_123', ['SHOPIFY', 'WOOCOMMERCE']);
8535
- * console.log('Publish results:', result.results);
8536
- * ```
8613
+ * **Not callable.** The API-key `/v1` surface has no `products/:id/publish`
8614
+ * route. Platform publishing for products exists only on the dashboard
8615
+ * surface (`POST /api/products/:id/publish?storeId=`,
8616
+ * `products.controller.ts:556`), which resolves the acting user from a
8617
+ * dashboard session an API key does not carry. The generic trigger
8618
+ * `POST /v1/sync` answers `501 Not Implemented` and points at per-resource
8619
+ * publish endpoints — and products have none.
8620
+ *
8621
+ * {@link publishProductToSalesChannel} is a DIFFERENT operation: it controls
8622
+ * visibility on a vibe-coded storefront, not a push to an external platform.
8537
8623
  */
8538
8624
  publishProduct(productId: string, platforms: string[]): Promise<PublishProductResponse>;
8539
8625
  /**
@@ -10058,6 +10144,9 @@ declare class BrainerceClient {
10058
10144
  * flags reflect the live state. Call this on cart load if you want to
10059
10145
  * surface drift to the customer before they reach checkout.
10060
10146
  *
10147
+ * **Storefront and vibe-coded modes only.** There is no admin (`apiKey`)
10148
+ * route for this, so an admin-mode client throws instead of 404ing.
10149
+ *
10061
10150
  * @example
10062
10151
  * ```typescript
10063
10152
  * const cart = await client.recalculateCart('cart_123');
@@ -10073,6 +10162,9 @@ declare class BrainerceClient {
10073
10162
  * subsequent `createCheckout` call will then succeed (it would otherwise
10074
10163
  * throw `PRICE_DRIFT`).
10075
10164
  *
10165
+ * **Storefront and vibe-coded modes only.** There is no admin (`apiKey`)
10166
+ * route for this, so an admin-mode client throws instead of 404ing.
10167
+ *
10076
10168
  * @example
10077
10169
  * ```typescript
10078
10170
  * try {
@@ -10752,21 +10844,31 @@ declare class BrainerceClient {
10752
10844
  * screen or database query can recover it.
10753
10845
  *
10754
10846
  * A `note` is required. Refused when gift cards are switched off for the
10755
- * store. Pass an `Idempotency-Key` header to make a retry safe.
10847
+ * store.
10848
+ *
10849
+ * ⚠️ **Pass an `idempotencyKey`.** It is the ONLY recovery that exists here:
10850
+ * re-sending the identical request with the same key inside 24 hours replays
10851
+ * the cached response, code included. Without one, a retried timeout mints a
10852
+ * SECOND card and a second real liability. The key is sent as the
10853
+ * `Idempotency-Key` header; reuse the same value across retries of the same
10854
+ * logical issue, never a fresh random one.
10756
10855
  *
10757
10856
  * Requires `gift_cards:issue`.
10758
10857
  *
10759
10858
  * @example
10760
10859
  * ```typescript
10761
- * const card = await client.issueGiftCard({
10762
- * amount: '200.00',
10763
- * note: 'Compensation for order #1042',
10764
- * recipientEmail: 'dana@example.com',
10765
- * });
10860
+ * const card = await client.issueGiftCard(
10861
+ * {
10862
+ * amount: '200.00',
10863
+ * note: 'Compensation for order #1042',
10864
+ * recipientEmail: 'dana@example.com',
10865
+ * },
10866
+ * { idempotencyKey: 'compensation-order-1042' }
10867
+ * );
10766
10868
  * await sendToCustomer(card.plaintextCode); // your only chance
10767
10869
  * ```
10768
10870
  */
10769
- issueGiftCard(data: IssueGiftCardAdminDto): Promise<IssuedGiftCardAdmin>;
10871
+ issueGiftCard(data: IssueGiftCardAdminDto, options?: IdempotentRequestOptions): Promise<IssuedGiftCardAdmin>;
10770
10872
  /**
10771
10873
  * Re-issue a gift card onto a new code.
10772
10874
  *
@@ -10778,11 +10880,14 @@ declare class BrainerceClient {
10778
10880
  * while a checkout holds value on the card. The original expiry carries
10779
10881
  * forward, so this cannot be used to restart an expiry clock.
10780
10882
  *
10781
- * The new code is returned exactly once, under the same rules as issuance.
10883
+ * The new code is returned exactly once, under the same rules as issuance
10884
+ * so pass an `idempotencyKey` here for the same reason, and with the same
10885
+ * force: a retried timeout without one revokes the replacement it just made
10886
+ * and mints another.
10782
10887
  *
10783
10888
  * Requires `gift_cards:issue`.
10784
10889
  */
10785
- reissueGiftCard(giftCardId: string, note: string): Promise<ReissuedGiftCardAdmin>;
10890
+ reissueGiftCard(giftCardId: string, note: string, options?: IdempotentRequestOptions): Promise<ReissuedGiftCardAdmin>;
10786
10891
  /**
10787
10892
  * Adjust a gift card balance.
10788
10893
  *
@@ -10793,9 +10898,12 @@ declare class BrainerceClient {
10793
10898
  * A debit cannot take the balance below what live checkout holds have already
10794
10899
  * reserved; that refusal names the held amount so you can act on it.
10795
10900
  *
10901
+ * Pass an `idempotencyKey`: an adjustment is a relative move, so a retried
10902
+ * timeout without one applies the delta twice.
10903
+ *
10796
10904
  * Requires `gift_cards:adjust`.
10797
10905
  */
10798
- adjustGiftCardBalance(giftCardId: string, delta: string, note: string): Promise<{
10906
+ adjustGiftCardBalance(giftCardId: string, delta: string, note: string, options?: IdempotentRequestOptions): Promise<{
10799
10907
  balanceAfter: string;
10800
10908
  }>;
10801
10909
  /**
@@ -10808,7 +10916,7 @@ declare class BrainerceClient {
10808
10916
  *
10809
10917
  * Requires `gift_cards:write`.
10810
10918
  */
10811
- setGiftCardStatus(giftCardId: string, status: 'ACTIVE' | 'DISABLED' | 'REVOKED'): Promise<{
10919
+ setGiftCardStatus(giftCardId: string, status: 'ACTIVE' | 'DISABLED' | 'REVOKED', options?: IdempotentRequestOptions): Promise<{
10812
10920
  success: true;
10813
10921
  }>;
10814
10922
  /**
@@ -10824,7 +10932,7 @@ declare class BrainerceClient {
10824
10932
  *
10825
10933
  * Requires `gift_cards:write`.
10826
10934
  */
10827
- bulkSetGiftCardStatus(giftCardIds: string[], status: 'ACTIVE' | 'DISABLED'): Promise<{
10935
+ bulkSetGiftCardStatus(giftCardIds: string[], status: 'ACTIVE' | 'DISABLED', options?: IdempotentRequestOptions): Promise<{
10828
10936
  updated: number;
10829
10937
  }>;
10830
10938
  /**
@@ -11035,6 +11143,9 @@ declare class BrainerceClient {
11035
11143
  /**
11036
11144
  * Set delivery type on checkout (shipping or pickup).
11037
11145
  *
11146
+ * **Storefront and vibe-coded modes only.** There is no admin (`apiKey`)
11147
+ * route for this, so an admin-mode client throws instead of 404ing.
11148
+ *
11038
11149
  * @example
11039
11150
  * ```typescript
11040
11151
  * const checkout = await client.setDeliveryType('checkout_123', 'pickup');
@@ -11046,6 +11157,9 @@ declare class BrainerceClient {
11046
11157
  * This sets the delivery type to "pickup", records customer info, and prepares for payment.
11047
11158
  * Equivalent to setShippingAddress + selectShippingMethod for delivery orders.
11048
11159
  *
11160
+ * **Storefront and vibe-coded modes only.** There is no admin (`apiKey`)
11161
+ * route for this, so an admin-mode client throws instead of 404ing.
11162
+ *
11049
11163
  * @example
11050
11164
  * ```typescript
11051
11165
  * const checkout = await client.selectPickupLocation('checkout_123', {
@@ -11737,13 +11851,17 @@ declare class BrainerceClient {
11737
11851
  * lifetime earned, the program's display config, earned milestone `badges`,
11738
11852
  * and the `paidMembership` subscription state (null for free members).
11739
11853
  * Requires customerToken. Only available in storefront mode. `program` is
11740
- * null when the store has no loyalty program.
11854
+ * null when the store has no loyalty program. `pointsBalance` excludes points
11855
+ * still inside the return window - those are in `pendingPoints`, and a panel
11856
+ * that ignores them shows a shopper 0 the day they order.
11741
11857
  *
11742
11858
  * @example
11743
11859
  * ```typescript
11744
11860
  * client.setCustomerToken(auth.token);
11745
11861
  * const status = await client.getLoyaltyStatus();
11746
11862
  * if (status.enrolled) console.log(`${status.pointsBalance} ${status.program?.pointsName}`);
11863
+ * // Points from an order just placed are in pendingPoints, NOT pointsBalance.
11864
+ * if (status.pendingPoints > 0) console.log(`+${status.pendingPoints} on ${status.pendingPointsConfirmAt}`);
11747
11865
  * status.badges?.forEach((b) => console.log(`🏅 ${b.name}`));
11748
11866
  * if (status.paidMembership?.status === 'ACTIVE') showPremiumPerks(status.paidMembership.plan);
11749
11867
  * ```
@@ -12131,8 +12249,20 @@ declare class BrainerceClient {
12131
12249
  */
12132
12250
  createTag(data: CreateTagDto): Promise<Tag>;
12133
12251
  /**
12134
- * Update an existing tag
12135
- * Requires Admin mode (apiKey)
12252
+ * Update an existing tag.
12253
+ *
12254
+ * **Not callable.** The API-key `/v1` surface serves `GET`, `POST` and
12255
+ * `DELETE` on tags (`external-api.controller.ts:3276`, `:3310`, `:3331`) but
12256
+ * no update verb — `PATCH /api/v1/tags/:id` 404'd silently. Tag editing lives
12257
+ * only on the dashboard surface (`PATCH /api/stores/:storeId/tags/:id`,
12258
+ * `tags.controller.ts:127`), which needs a `storeId` in the path that this
12259
+ * signature does not carry, and resolves the acting user from a dashboard
12260
+ * session an API key does not have.
12261
+ *
12262
+ * Edit the tag in the Brainerce dashboard. {@link deleteTag} +
12263
+ * {@link createTag} is NOT an equivalent workaround: it drops the tag's
12264
+ * product assignments, and `CreateTagDto` has no `translations` field, so any
12265
+ * per-locale names are lost too.
12136
12266
  */
12137
12267
  updateTag(tagId: string, data: UpdateTagDto): Promise<Tag>;
12138
12268
  /**
@@ -12194,13 +12324,26 @@ declare class BrainerceClient {
12194
12324
  */
12195
12325
  createAttributeOption(attributeId: string, data: CreateAttributeOptionDto): Promise<AttributeOption>;
12196
12326
  /**
12197
- * Update an attribute option
12198
- * Requires Admin mode (apiKey)
12327
+ * Update an attribute option.
12328
+ *
12329
+ * **Not callable.** The API-key `/v1` surface serves attribute options for
12330
+ * list and create only (`external-api.controller.ts:3517`, `:3543`); there is
12331
+ * no per-option route, so this 404'd silently. Editing an option lives on the
12332
+ * dashboard surface (`PUT /api/stores/:storeId/attributes/:id/options/:optionId`,
12333
+ * `attributes.controller.ts:132` — note it is `PUT` there, not `PATCH`), which
12334
+ * needs a path `storeId` this signature does not carry.
12335
+ *
12336
+ * Edit the option in the Brainerce dashboard.
12199
12337
  */
12200
12338
  updateAttributeOption(attributeId: string, optionId: string, data: UpdateAttributeOptionDto): Promise<AttributeOption>;
12201
12339
  /**
12202
- * Delete an attribute option
12203
- * Requires Admin mode (apiKey)
12340
+ * Delete an attribute option.
12341
+ *
12342
+ * **Not callable.** Same gap as {@link updateAttributeOption}: the `/v1`
12343
+ * surface has no per-option route. Deleting an option lives on the dashboard
12344
+ * surface (`DELETE /api/stores/:storeId/attributes/:id/options/:optionId`,
12345
+ * `attributes.controller.ts:145`), which needs a path `storeId` this signature
12346
+ * does not carry.
12204
12347
  */
12205
12348
  deleteAttributeOption(attributeId: string, optionId: string): Promise<void>;
12206
12349
  /**
@@ -12680,16 +12823,37 @@ declare class BrainerceClient {
12680
12823
  */
12681
12824
  setMetafieldPlatforms(definitionId: string, data: SetMetafieldPlatformsDto): Promise<MetafieldDefinition>;
12682
12825
  /**
12683
- * Publish a metafield definition to a vibe-coded site (admin mode).
12684
- * @example
12685
- * ```typescript
12686
- * await client.publishMetafieldDefinitionToVibeCodedSite('def_123', 'conn_456');
12687
- * ```
12826
+ * Publish a metafield definition to a sales channel (admin mode).
12827
+ *
12828
+ * **Not callable.** This asked for `publish-vibe-coded`, which is a
12829
+ * deprecated backend alias, not the canonical route. The canonical spelling
12830
+ * is `publish-sales-channel`, and the `/v1` surface serves it for products
12831
+ * (`external-api.controller.ts:862`), coupons (`:947`), customers (`:1548`),
12832
+ * categories (`:3039`), brands (`:3211`) and tags (`:3349`) — but NOT for
12833
+ * metafield definitions. Both spellings 404 there.
12834
+ *
12835
+ * The operation exists only on the dashboard surface
12836
+ * (`POST /api/stores/:storeId/metafield-definitions/:id/publish-sales-channel`,
12837
+ * `metafields.controller.ts:190`), which needs a path `storeId` this signature
12838
+ * does not carry.
12839
+ *
12840
+ * Publish the definition to a sales channel from the Brainerce dashboard. A
12841
+ * definition with no publishes stays visible to every sales channel of the
12842
+ * store, so leaving it unpublished is the permissive default, not a lockout.
12688
12843
  */
12689
12844
  publishMetafieldDefinitionToVibeCodedSite(definitionId: string, vibeCodedConnectionId: string): Promise<{
12690
12845
  success: boolean;
12691
12846
  }>;
12692
- /** Unpublish a metafield definition from a vibe-coded site (admin mode). */
12847
+ /**
12848
+ * Unpublish a metafield definition from a sales channel (admin mode).
12849
+ *
12850
+ * **Not callable.** Same gap as
12851
+ * {@link publishMetafieldDefinitionToVibeCodedSite} — the `/v1` surface
12852
+ * carries no per-sales-channel routes for metafield definitions under either
12853
+ * the canonical `unpublish-sales-channel` spelling or the deprecated
12854
+ * `unpublish-vibe-coded` alias. The dashboard route is
12855
+ * `metafields.controller.ts:217`.
12856
+ */
12693
12857
  unpublishMetafieldDefinitionFromVibeCodedSite(definitionId: string, vibeCodedConnectionId: string): Promise<{
12694
12858
  success: boolean;
12695
12859
  }>;
@@ -12812,13 +12976,28 @@ declare class BrainerceClient {
12812
12976
  deleteProductMetafield(productId: string, definitionId: string): Promise<void>;
12813
12977
  /**
12814
12978
  * Get customization fields assigned to a product.
12815
- * Requires Admin mode (apiKey).
12979
+ *
12980
+ * **Not callable.** The API-key `/v1` surface has no
12981
+ * `metafield-definitions/products/:productId/customization-fields` route, so
12982
+ * this 404'd silently. It exists only on the dashboard surface
12983
+ * (`GET /api/stores/:storeId/metafield-definitions/products/:productId/customization-fields`,
12984
+ * `metafields.controller.ts:277`), which needs a path `storeId` this signature
12985
+ * does not carry.
12986
+ *
12987
+ * {@link getProductMetafields} is the closest working call — it returns the
12988
+ * metafield VALUES stored on a product over
12989
+ * `GET /api/v1/products/:productId/metafields`, not the customer-input field
12990
+ * definitions attached to it.
12816
12991
  */
12817
12992
  getProductCustomizationFields(productId: string): Promise<ProductCustomizationField[]>;
12818
12993
  /**
12819
12994
  * Set customization fields for a product (replaces all existing assignments).
12820
- * Only definitions marked as `isCustomerInput: true` can be assigned.
12821
- * Requires Admin mode (apiKey).
12995
+ *
12996
+ * **Not callable.** Same gap as {@link getProductCustomizationFields}: the
12997
+ * `/v1` surface carries no customization-field routes. The dashboard route is
12998
+ * `PATCH /api/stores/:storeId/metafield-definitions/products/:productId/customization-fields`
12999
+ * (`metafields.controller.ts:298`), which needs a path `storeId` this
13000
+ * signature does not carry.
12822
13001
  */
12823
13002
  setProductCustomizationFields(productId: string, definitionIds: string[]): Promise<ProductCustomizationField[]>;
12824
13003
  /**
@@ -13355,7 +13534,7 @@ declare class BrainerceError extends Error {
13355
13534
  constructor(message: string, statusCode: number, details?: unknown);
13356
13535
  }
13357
13536
 
13358
- declare const SDK_VERSION = "2.2.0";
13537
+ declare const SDK_VERSION = "2.4.0";
13359
13538
 
13360
13539
  /**
13361
13540
  * Verify a webhook signature from Brainerce
@@ -13856,4 +14035,4 @@ interface CategorySitemapOptions {
13856
14035
  */
13857
14036
  declare function getCategorySitemapEntries(client: BrainerceClient, opts: CategorySitemapOptions): Promise<SitemapEntry[]>;
13858
14037
 
13859
- export { type AddToCartDto, type AddressDetailsResult, type AddressSuggestion, type AiTranslateBulkInput, type AiTranslateBulkResult, type AiTranslateSingleInput, type AnnouncementContent, type AnnouncementSeverity, type AppliedDiscount, type ApplyCouponDto, type AssignTaxClassDto, type AttachModifierGroupInput, type Attribute, type AttributeDisplayType, type AttributeOption, type AttributeSource, type AutoRegionResponse, type AvailabilityClock, type BlogPost, type BlogPostListParams, type BlogPostListResponse, type BlogSitemapOptions, type BrainerceApiError, BrainerceClient, type BrainerceClientOptions, BrainerceError, type Brand, type BulkCreateProductsDto, type BulkCreateProductsError, type BulkCreateProductsJob, type BulkCreateProductsStatus, type BulkInventoryResponse, type BulkSaveVariantsDto, type BulkSaveVariantsResponse, type BulkVariantInput, type BusinessHoursWindow, type Cart, type CartAppliedDiscount, type CartBundleOffer, type CartBundleOfferOfferedProduct, type CartBundlesResponse, type CartIncludeOption, type CartIncludeOptions, type CartItem, type CartItemModifierLine, type CartItemUnavailableReason, type CartNudge, type CartRecommendationsResponse, type CartStatus, type CartUpgradeSuggestion, type CartUpgradesResponse, type CartWithIncludes, type Category, type CategoryDetail, type CategoryNode, type CategorySitemapOptions, type CategorySuggestion, type Checkout, type CheckoutAddress, type CheckoutBumpsResponse, type CheckoutCustomFieldDefinition, type CheckoutFieldPricing, type CheckoutFieldVisibility, type CheckoutLineItem, type CheckoutPrefillData, type CheckoutStatus, type CheckoutTender, type CompleteCheckoutResponse, type CompleteDraftDto, type ConfigureOAuthProviderDto as ConfigureOAuthProviderInput, type ConflictStatus, type ConnectorPlatform, type ContactFormFieldType, type ContactFormFieldValidation, type ContactFormPublic, type ContactFormPublicField, type ContactFormSummary, type Content, type ContentDataMap, type ContentStatus, type ContentSummary, type ContentType, type Coupon, type CouponCreateResponse, type CouponQueryParams, type CouponStatus, type CouponType, type CouponValidationWarning, type CreateAddressDto, type CreateAttributeDto as CreateAttributeInput, type CreateAttributeOptionDto as CreateAttributeOptionInput, type CreateBrandDto as CreateBrandInput, type CreateCategoryDto as CreateCategoryInput, type CreateCheckoutDto, type CreateContentInput, type CreateCouponDto, type CreateCustomerDto, type CreateEmailTemplateDto as CreateEmailTemplateInput, type CreateGuestOrderDto, type CreateInquiryInput, type CreateInquiryResponse, type CreateMetafieldDefinitionDto as CreateMetafieldDefinitionInput, type CreateModifierGroupInput, type CreateModifierInput, type CreateOrderDto, type CreateProductDto, type CreateRefundDto, type CreateRegionDto, type CreateReturnLabelDto as CreateReturnLabelInput, type CreateReturnLabelResponse, type CreateShippingRateDto as CreateShippingRateInput, type CreateShippingZoneDto as CreateShippingZoneInput, type CreateStockAlertInput, type CreateTagDto as CreateTagInput, type CreateTaxClassDto, type CreateTaxRateDto as CreateTaxRateInput, type CreateVariantDto, type Customer, type CustomerAddress, type CustomerAuthResponse, type CustomerOAuthProvider, type CustomerProfile, type CustomerQueryParams, type CustomizationFieldOption, type DateAvailabilityConstraints, type DateAvailabilitySurface, type DateFieldParseResult, type DeleteProductResponse, type DeliveryType, type DiscountBanner, type DiscountRuleType, type DownloadFile, type DraftLineItem, type EditInventoryDto, type EmailDomain, type EmailEventSettings, type EmailEventType, type EmailSettings, type EmailTemplate, type EmailTemplatePreview, type EmailTemplatesResponse, type EmailVerificationResponse, type ExtendReservationResponse, type FaqContent, type FaqItem, type FooterColumn, type FooterContent, type FooterLink, type FooterSocialLink, type FormatPriceOptions, type FormatProductPriceOptions, type FreeAllocationPolicy, type FulfillOrderDto, type GiftCardAdmin, type GiftCardAdminDetail, type GiftCardBalance, type GiftCardLiability, type GiftCardTransaction, type GuestCheckoutStartResponse, type GuestOrderResponse, type HeaderContent, type HeaderCta, type HeaderLogo, type HeaderNavItem, type I18nSettings, type InsufficientStockError, type InventoryInfo, type InventoryReservationStrategy, type InventorySyncStatus, type InventoryTrackingMode, type InvitationStatus, type InviteMemberDto as InviteMemberInput, type InviteStoreMemberDto as InviteStoreMemberInput, type IssueGiftCardAdminDto, type IssuedGiftCardAdmin, type JsonLdOptions, type ListModifierGroupsParams, type LocalCart, type LocalCartItem, type LocaleTranslation, type LockedVariant, type LoyaltyBadge, type LoyaltyMembershipPlan, type LoyaltyNextTierSummary, type LoyaltyReward, type LoyaltyRewardRecommendation, type LoyaltyStatus, type LoyaltyTierSummary, type MergeCartsDto, type MetafieldConflict, type MetafieldConflictResolution, type MetafieldDefinition, type MetafieldFilter, type MetafieldFilterValue, type MetafieldFiltersResponse, type MetafieldType, type Modifier, type ModifierGroup, type ModifierSelection, type ModifierSelectionType, type ModifierValidationCode, type ModifierValidationError, type ModifierValidationFailedError, type MyProductReview, type NestedModifierSelection, type OAuthAuthorizeResponse, type OAuthCallbackResponse, type OAuthConnection, type OAuthConnectionsResponse, type OAuthErrorCode, type OAuthProviderConfig, type OAuthProviderType, type OAuthProvidersResponse, type Order, type OrderAddress, type OrderBump, type OrderCustomer, type OrderDownloadLink, type OrderItem, type OrderQueryParams, type OrderStatus, type OrderStatusChange, type PageContent, type PageSeo, type PaginatedResponse, type PaidMembershipInfo, type ParsedDateFieldValue, type PaymentClientSdk, type PaymentConfig, type PaymentIntent, type PaymentProvider, type PaymentProviderConfig, type PaymentProvidersConfig, type PaymentRecordStatus, type PaymentStatus, type PaymentUrlOptions, type PickupLocation, type PlatformCouponCapabilities, type PlatformMetafieldMetadata, type PreviewEmailTemplateDto as PreviewEmailTemplateInput, type PriceDriftError, type Product, type ProductAttributeInput, type ProductAvailability, type ProductCustomizationField, type ProductDiscount, type ProductDiscountBadge, type ProductImage, type ProductMetafield, type ProductMetafieldValue, type ProductModifierGroupAttachment, type ProductQueryParams, type ProductRecommendation, type ProductRecommendationsResponse, type ProductRelationType, type ProductReview, type ProductReviewAdmin, type ProductReviewImage, type ProductReviewImageAdmin, type ProductSitemapOptions, type ProductStatus, type ProductSuggestion, type ProductUnavailableError, type ProductVariant, type PublicMetafieldDefinition, type PublicRegion, type PublicRegionDetail, type PublicRegionPaymentProvider, type PublicTaxClass, type PublishProductResponse, RTL_LOCALES, type RecommendationVariant, type ReconcileInventoryResponse, type RedeemRewardResult, type ReferralInfo, type Refund, type RefundLineItem, type RefundLineItemResponse, type RefundType, type Region, type RegionPaymentProvider, type RegisterCustomerDto, type ReissuedGiftCardAdmin, type RelativeDateBounds, type ReservationInfo, type ResolveMetafieldConflictDto as ResolveMetafieldConflictInput, type ResolveSyncConflictDto as ResolveSyncConflictInput, type ReturnLabelParcel, type ReviewPhotoUpload, type ReviewStatus, type RichTextContent, SDK_VERSION, type SavedPaymentMethodSummary, type SearchSuggestions, type SelectPickupLocationDto, type SelectShippingMethodDto, type SendInvoiceDto, type SessionCartRef, type SetBillingAddressDto, type SetCheckoutCustomFieldsDto, type SetCheckoutCustomerDto, type SetDefinitionProductsDto as SetDefinitionProductsInput, type SetMetafieldPlatformsDto as SetMetafieldPlatformsInput, type SetShippingAddressDto, type SetShippingAddressResponse, type SetTranslationFields, type ShippingDestinations, type ShippingLine, type ShippingRate, type ShippingRateConfig, type ShippingRateType, type ShippingSummaryEntry, type ShippingZone, type ShippingZoneQueryParams, type SitemapEntry, type StockAlertResponse, type StockAvailabilityRequest, type StockAvailabilityResponse, type StockAvailabilityResult, type StoreCapabilities, type StoreInfo, type StoreInvitation, type StoreInvitationDetails, type StoreMember, type StorePermission, type StoreRole, type StoreTeamResponse, type StoreTracking, type StorefrontSavedPaymentMethod, type SubmitProductReviewInput, type SubscribeMarketingInput, type SubscribeMarketingResponse, type SupportedLocaleObject, type SyncConflict, type SyncConflictResolution, type SyncJob, type Tag, type TaxBreakdown, type TaxBreakdownItem, type TaxClass, type TaxEstimateResponse, type TaxRate, type TaxonomyQueryParams, type TeamInvitation, type TeamInvitationsResponse, type TeamMember, type TeamMembersResponse, type TeamRole, type TrackingEventItem, type TrackingEventName, type TrackingEventPayload, type TranslatableEntityType, type TranslationStatusEntry, type TranslationsMap, type UpdateAddressDto, type UpdateAttachmentInput, type UpdateAttributeDto as UpdateAttributeInput, type UpdateAttributeOptionDto as UpdateAttributeOptionInput, type UpdateBrandDto as UpdateBrandInput, type UpdateCartItemDto, type UpdateCategoryDto as UpdateCategoryInput, type UpdateContentInput, type UpdateCouponDto, type UpdateCustomerDto, type UpdateDraftDto, type UpdateEmailSettingsDto as UpdateEmailSettingsInput, type UpdateEmailTemplateDto as UpdateEmailTemplateInput, type UpdateInventoryDto, type UpdateMemberRoleDto as UpdateMemberRoleInput, type UpdateMetafieldDefinitionDto as UpdateMetafieldDefinitionInput, type UpdateModifierGroupInput, type UpdateModifierInput, type UpdateOAuthProviderDto as UpdateOAuthProviderInput, type UpdateOrderDto, type UpdateOrderShippingDto, type UpdateProductDto, type UpdateRegionDto, type UpdateShippingRateDto as UpdateShippingRateInput, type UpdateShippingZoneDto as UpdateShippingZoneInput, type UpdateStoreMemberDto as UpdateStoreMemberInput, type UpdateTagDto as UpdateTagInput, type UpdateTaxClassDto, type UpdateTaxRateDto as UpdateTaxRateInput, type UpdateVariantDto, type UpdateVariantInventoryDto, type UpsellSettings, type UpsertProductMetafieldDto as UpsertProductMetafieldInput, type UserStore, type UserStorePermissions, type VariantInventoryResponse, type VariantPlatformOverlay, type VariantStatus, type WaitForOrderOptions, type WaitForOrderResult, type WebhookEvent, type WebhookEventType, type WriteProductReviewInput, buildArticleJsonLd, buildBreadcrumbJsonLd, buildCollectionPageJsonLd, buildOrganizationJsonLd, buildProductFaqJsonLd, buildProductJsonLd, buildWebsiteJsonLd, computeAvailableSlots, createWebhookHandler, deriveSeoDescription, enableDevGuards, formatMoney, formatPrice, formatProductPrice, formatVariantPrice, getBlogSitemapEntries, getBusinessHoursForDate, getCartItemImage, getCartItemName, getCartTotals, getCategorySitemapEntries, getDescriptionContent, getDirectionForLocale, formatPrice as getPriceDisplay, getProductCustomizationFields, getProductMetafield, getProductMetafieldValue, getProductMetafieldsByType, getProductPrice, getProductPriceInfo, getProductSitemapEntries, getProductSwatches, getStockStatus, getVariantOptions, getVariantPrice, isAllowedPaymentUrl, isCalendarDateAllowed, isCouponApplicableToProduct, isDateValueAllowed, isHtmlDescription, isWebhookEventType, jsonLdScriptProps, parseDateFieldValue, parseWebhookEvent, resolveRelativeBounds, resolveStoreLocalParts, safePaymentRedirect, stripHtml, validateDateAvailabilityConfig, verifyWebhook };
14038
+ export { type AddToCartDto, type AddressDetailsResult, type AddressSuggestion, type AiTranslateBulkInput, type AiTranslateBulkResult, type AiTranslateSingleInput, type AnnouncementContent, type AnnouncementSeverity, type AppliedDiscount, type ApplyCouponDto, type AssignTaxClassDto, type AttachModifierGroupInput, type Attribute, type AttributeDisplayType, type AttributeOption, type AttributeSource, type AutoRegionResponse, type AvailabilityClock, type BlogPost, type BlogPostListParams, type BlogPostListResponse, type BlogSitemapOptions, type BrainerceApiError, BrainerceClient, type BrainerceClientOptions, BrainerceError, type Brand, type BulkCreateProductsDto, type BulkCreateProductsError, type BulkCreateProductsJob, type BulkCreateProductsStatus, type BulkInventoryResponse, type BulkSaveVariantsDto, type BulkSaveVariantsResponse, type BulkVariantInput, type BusinessHoursWindow, type Cart, type CartAppliedDiscount, type CartBundleOffer, type CartBundleOfferOfferedProduct, type CartBundlesResponse, type CartIncludeOption, type CartIncludeOptions, type CartItem, type CartItemModifierLine, type CartItemUnavailableReason, type CartNudge, type CartRecommendationsResponse, type CartStatus, type CartUpgradeSuggestion, type CartUpgradesResponse, type CartWithIncludes, type Category, type CategoryDetail, type CategoryNode, type CategorySitemapOptions, type CategorySuggestion, type Checkout, type CheckoutAddress, type CheckoutBumpsResponse, type CheckoutCustomFieldDefinition, type CheckoutFieldPricing, type CheckoutFieldVisibility, type CheckoutLineItem, type CheckoutPrefillData, type CheckoutStatus, type CheckoutTender, type CompleteCheckoutResponse, type CompleteDraftDto, type ConfigureOAuthProviderDto as ConfigureOAuthProviderInput, type ConflictStatus, type ConnectorPlatform, type ContactFormFieldType, type ContactFormFieldValidation, type ContactFormPublic, type ContactFormPublicField, type ContactFormSummary, type Content, type ContentDataMap, type ContentStatus, type ContentSummary, type ContentType, type Coupon, type CouponCreateResponse, type CouponQueryParams, type CouponStatus, type CouponType, type CouponValidationWarning, type CreateAddressDto, type CreateAttributeDto as CreateAttributeInput, type CreateAttributeOptionDto as CreateAttributeOptionInput, type CreateBrandDto as CreateBrandInput, type CreateCategoryDto as CreateCategoryInput, type CreateCheckoutDto, type CreateContentInput, type CreateCouponDto, type CreateCustomerDto, type CreateEmailTemplateDto as CreateEmailTemplateInput, type CreateGuestOrderDto, type CreateInquiryInput, type CreateInquiryResponse, type CreateMetafieldDefinitionDto as CreateMetafieldDefinitionInput, type CreateModifierGroupInput, type CreateModifierInput, type CreateOrderDto, type CreateProductDto, type CreateRefundDto, type CreateRegionDto, type CreateReturnLabelDto as CreateReturnLabelInput, type CreateReturnLabelResponse, type CreateShippingRateDto as CreateShippingRateInput, type CreateShippingZoneDto as CreateShippingZoneInput, type CreateStockAlertInput, type CreateTagDto as CreateTagInput, type CreateTaxClassDto, type CreateTaxRateDto as CreateTaxRateInput, type CreateVariantDto, type Customer, type CustomerAddress, type CustomerAuthResponse, type CustomerOAuthProvider, type CustomerProfile, type CustomerQueryParams, type CustomizationFieldOption, type DateAvailabilityConstraints, type DateAvailabilitySurface, type DateFieldParseResult, type DeleteProductResponse, type DeliveryType, type DiscountBanner, type DiscountRuleType, type DownloadFile, type DraftLineItem, type EditInventoryDto, type EmailDomain, type EmailEventSettings, type EmailEventType, type EmailSettings, type EmailTemplate, type EmailTemplatePreview, type EmailTemplatesResponse, type EmailVerificationResponse, type ExtendReservationResponse, type FaqContent, type FaqItem, type FooterColumn, type FooterContent, type FooterLink, type FooterSocialLink, type FormatPriceOptions, type FormatProductPriceOptions, type FreeAllocationPolicy, type FulfillOrderDto, type GiftCardAdmin, type GiftCardAdminDetail, type GiftCardBalance, type GiftCardLiability, type GiftCardTransaction, type GuestCheckoutStartResponse, type GuestOrderResponse, type HeaderContent, type HeaderCta, type HeaderLogo, type HeaderNavItem, type I18nSettings, type IdempotentRequestOptions, type InsufficientStockError, type InventoryInfo, type InventoryReservationStrategy, type InventorySyncStatus, type InventoryTrackingMode, type InvitationStatus, type InviteMemberDto as InviteMemberInput, type InviteStoreMemberDto as InviteStoreMemberInput, type IssueGiftCardAdminDto, type IssuedGiftCardAdmin, type JsonLdOptions, type ListModifierGroupsParams, type LocalCart, type LocalCartItem, type LocaleTranslation, type LockedVariant, type LoyaltyBadge, type LoyaltyMembershipPlan, type LoyaltyNextTierSummary, type LoyaltyReward, type LoyaltyRewardRecommendation, type LoyaltyStatus, type LoyaltyTierSummary, type MergeCartsDto, type MetafieldConflict, type MetafieldConflictResolution, type MetafieldDefinition, type MetafieldFilter, type MetafieldFilterValue, type MetafieldFiltersResponse, type MetafieldType, type Modifier, type ModifierGroup, type ModifierSelection, type ModifierSelectionType, type ModifierValidationCode, type ModifierValidationError, type ModifierValidationFailedError, type MyProductReview, type NestedModifierSelection, type OAuthAuthorizeResponse, type OAuthCallbackResponse, type OAuthConnection, type OAuthConnectionsResponse, type OAuthErrorCode, type OAuthProviderConfig, type OAuthProviderType, type OAuthProvidersResponse, type Order, type OrderAddress, type OrderBump, type OrderCustomer, type OrderDownloadLink, type OrderItem, type OrderQueryParams, type OrderStatus, type OrderStatusChange, type PageContent, type PageSeo, type PaginatedResponse, type PaidMembershipInfo, type ParsedDateFieldValue, type PaymentClientSdk, type PaymentConfig, type PaymentIntent, type PaymentProvider, type PaymentProviderConfig, type PaymentProvidersConfig, type PaymentRecordStatus, type PaymentStatus, type PaymentUrlOptions, type PickupLocation, type PlatformCouponCapabilities, type PlatformMetafieldMetadata, type PreviewEmailTemplateDto as PreviewEmailTemplateInput, type PriceDriftError, type Product, type ProductAttributeInput, type ProductAvailability, type ProductCustomizationField, type ProductDiscount, type ProductDiscountBadge, type ProductImage, type ProductMetafield, type ProductMetafieldValue, type ProductModifierGroupAttachment, type ProductQueryParams, type ProductRecommendation, type ProductRecommendationsResponse, type ProductRelationType, type ProductReview, type ProductReviewAdmin, type ProductReviewImage, type ProductReviewImageAdmin, type ProductSitemapOptions, type ProductStatus, type ProductSuggestion, type ProductUnavailableError, type ProductVariant, type PublicMetafieldDefinition, type PublicRegion, type PublicRegionDetail, type PublicRegionPaymentProvider, type PublicTaxClass, type PublishProductResponse, RTL_LOCALES, type RecommendationVariant, type ReconcileInventoryResponse, type RedeemRewardResult, type ReferralInfo, type Refund, type RefundLineItem, type RefundLineItemResponse, type RefundType, type Region, type RegionPaymentProvider, type RegisterCustomerDto, type ReissuedGiftCardAdmin, type RelativeDateBounds, type ReservationInfo, type ResolveMetafieldConflictDto as ResolveMetafieldConflictInput, type ResolveSyncConflictDto as ResolveSyncConflictInput, type ReturnLabelParcel, type ReviewPhotoUpload, type ReviewStatus, type RichTextContent, SDK_VERSION, type SavedPaymentMethodSummary, type SearchSuggestions, type SelectPickupLocationDto, type SelectShippingMethodDto, type SendInvoiceDto, type SessionCartRef, type SetBillingAddressDto, type SetCheckoutCustomFieldsDto, type SetCheckoutCustomerDto, type SetDefinitionProductsDto as SetDefinitionProductsInput, type SetMetafieldPlatformsDto as SetMetafieldPlatformsInput, type SetShippingAddressDto, type SetShippingAddressResponse, type SetTranslationFields, type ShippingDestinations, type ShippingLine, type ShippingRate, type ShippingRateConfig, type ShippingRateType, type ShippingSummaryEntry, type ShippingZone, type ShippingZoneQueryParams, type SitemapEntry, type StockAlertResponse, type StockAvailabilityRequest, type StockAvailabilityResponse, type StockAvailabilityResult, type StoreCapabilities, type StoreInfo, type StoreInvitation, type StoreInvitationDetails, type StoreMember, type StorePermission, type StoreRole, type StoreTeamResponse, type StoreTracking, type StorefrontSavedPaymentMethod, type SubmitProductReviewInput, type SubscribeMarketingInput, type SubscribeMarketingResponse, type SupportedLocaleObject, type SyncConflict, type SyncConflictResolution, type SyncJob, type Tag, type TaxBreakdown, type TaxBreakdownItem, type TaxClass, type TaxEstimateResponse, type TaxRate, type TaxonomyQueryParams, type TeamInvitation, type TeamInvitationsResponse, type TeamMember, type TeamMembersResponse, type TeamRole, type TrackingEventItem, type TrackingEventName, type TrackingEventPayload, type TranslatableEntityType, type TranslationStatusEntry, type TranslationsMap, type UpdateAddressDto, type UpdateAttachmentInput, type UpdateAttributeDto as UpdateAttributeInput, type UpdateAttributeOptionDto as UpdateAttributeOptionInput, type UpdateBrandDto as UpdateBrandInput, type UpdateCartItemDto, type UpdateCategoryDto as UpdateCategoryInput, type UpdateContentInput, type UpdateCouponDto, type UpdateCustomerDto, type UpdateDraftDto, type UpdateEmailSettingsDto as UpdateEmailSettingsInput, type UpdateEmailTemplateDto as UpdateEmailTemplateInput, type UpdateInventoryDto, type UpdateMemberRoleDto as UpdateMemberRoleInput, type UpdateMetafieldDefinitionDto as UpdateMetafieldDefinitionInput, type UpdateModifierGroupInput, type UpdateModifierInput, type UpdateOAuthProviderDto as UpdateOAuthProviderInput, type UpdateOrderDto, type UpdateOrderShippingDto, type UpdateProductDto, type UpdateRegionDto, type UpdateShippingRateDto as UpdateShippingRateInput, type UpdateShippingZoneDto as UpdateShippingZoneInput, type UpdateStoreMemberDto as UpdateStoreMemberInput, type UpdateTagDto as UpdateTagInput, type UpdateTaxClassDto, type UpdateTaxRateDto as UpdateTaxRateInput, type UpdateVariantDto, type UpdateVariantInventoryDto, type UpsellSettings, type UpsertProductMetafieldDto as UpsertProductMetafieldInput, type UserStore, type UserStorePermissions, type VariantInventoryResponse, type VariantPlatformOverlay, type VariantStatus, type WaitForOrderOptions, type WaitForOrderResult, type WebhookEvent, type WebhookEventType, type WriteProductReviewInput, buildArticleJsonLd, buildBreadcrumbJsonLd, buildCollectionPageJsonLd, buildOrganizationJsonLd, buildProductFaqJsonLd, buildProductJsonLd, buildWebsiteJsonLd, computeAvailableSlots, createWebhookHandler, deriveSeoDescription, enableDevGuards, formatMoney, formatPrice, formatProductPrice, formatVariantPrice, getBlogSitemapEntries, getBusinessHoursForDate, getCartItemImage, getCartItemName, getCartTotals, getCategorySitemapEntries, getDescriptionContent, getDirectionForLocale, formatPrice as getPriceDisplay, getProductCustomizationFields, getProductMetafield, getProductMetafieldValue, getProductMetafieldsByType, getProductPrice, getProductPriceInfo, getProductSitemapEntries, getProductSwatches, getStockStatus, getVariantOptions, getVariantPrice, isAllowedPaymentUrl, isCalendarDateAllowed, isCouponApplicableToProduct, isDateValueAllowed, isHtmlDescription, isWebhookEventType, jsonLdScriptProps, parseDateFieldValue, parseWebhookEvent, resolveRelativeBounds, resolveStoreLocalParts, safePaymentRedirect, stripHtml, validateDateAvailabilityConfig, verifyWebhook };