brainerce 2.5.0 → 2.7.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.mts CHANGED
@@ -294,7 +294,7 @@ interface StoreInfo {
294
294
  * Marketing tag ids for this sales channel (sales-channel mode only).
295
295
  *
296
296
  * Resolved server-side from the marketplace apps the merchant already
297
- * connected — connecting the Google & YouTube app runs GA4 discovery and the
297
+ * connected — connecting the Google app runs GA4 discovery and the
298
298
  * measurement id lands here on its own; same for the Meta and TikTok pixels.
299
299
  * The merchant types nothing, and the storefront needs no redeploy: a newly
300
300
  * connected app shows up here within 5 minutes.
@@ -313,7 +313,7 @@ interface StoreInfo {
313
313
  * it is safe to interpolate into a tag bootstrap.
314
314
  */
315
315
  interface StoreTracking {
316
- /** GA4 measurement id, `G-XXXXXXX`. Auto-discovered by the Google & YouTube app. */
316
+ /** GA4 measurement id, `G-XXXXXXX`. Auto-discovered by the Google app. */
317
317
  ga4MeasurementId?: string;
318
318
  /**
319
319
  * Google Tag Manager container id, `GTM-XXXXXX`. The one tag that cannot be
@@ -874,6 +874,21 @@ interface Product {
874
874
  * single product card always shows the lowest available price. Matches
875
875
  * WooCommerce / Shopify storefront semantics. For `SIMPLE` products it is
876
876
  * the product's own stored price.
877
+ *
878
+ * ⛔ ONE EXCEPTION, and the type does not model it: a `KIT` with nothing
879
+ * inside it, or one the server could not resolve, comes back from the public
880
+ * product reads with **no `basePrice` and no `salePrice` at all**, alongside
881
+ * `kitAvailable: 0`. Such a kit has no price — it resolves to zero, and
882
+ * returning that zero published a product that costs nothing. The fields are
883
+ * omitted rather than nulled on purpose: `Number(null)` is `0` and would put
884
+ * the free price straight back, while `Number(undefined)` is `NaN` and
885
+ * cannot be mistaken for an amount.
886
+ *
887
+ * So guard the kit case before you format: `product.basePrice` is
888
+ * `string | undefined` in practice, and calling `parseFloat` on it yields
889
+ * `NaN` for an unsellable kit. It is typed as required because widening it
890
+ * would be a breaking change for every storefront that reads an ordinary
891
+ * product's price, which is the overwhelmingly common case.
877
892
  */
878
893
  basePrice: string;
879
894
  /**
@@ -920,6 +935,10 @@ interface Product {
920
935
  * inventory row of its own (read `kitAvailable`), and outside FIXED pricing
921
936
  * its stored `basePrice` is a placeholder, though storefront reads overlay it
922
937
  * with the resolved price.
938
+ *
939
+ * A kit with NOTHING inside it has no price to overlay: the public reads omit
940
+ * `basePrice` and `salePrice` entirely and return `kitAvailable: 0`. Do not
941
+ * coerce the missing price to a number — see `basePrice`.
923
942
  */
924
943
  type: 'SIMPLE' | 'VARIABLE' | 'KIT';
925
944
  /**
@@ -950,6 +969,11 @@ interface Product {
950
969
  * figure and returns `salePrice: null`. Never cache a kit price or recompute
951
970
  * one client-side in these modes, and do not present a "was" price: there
952
971
  * isn't one.
972
+ *
973
+ * Present in every mode, EXCEPT on a kit the server could not resolve at all
974
+ * — that one arrives with no pricing mode and no prices, only
975
+ * `kitAvailable: 0`. Treat a kit with no `basePrice` as not for sale
976
+ * whatever its mode says.
953
977
  */
954
978
  kitPricingMode?: 'FIXED' | 'SUM' | 'SUM_MINUS_PERCENT';
955
979
  /** Whether product is downloadable/digital. */
@@ -4517,6 +4541,20 @@ interface AddressDetailsResult {
4517
4541
  }
4518
4542
  interface CompleteCheckoutResponse {
4519
4543
  orderId: string;
4544
+ /** Human-readable order number, e.g. `"ORD-20260907-0012"`. */
4545
+ orderNumber: string;
4546
+ /** Order status after completion. */
4547
+ status: string;
4548
+ /**
4549
+ * Order total as a decimal STRING, e.g. `"46.96"`.
4550
+ *
4551
+ * It was a JSON number until 2026-09-07, which disagreed with the sibling
4552
+ * `POST /v1/orders` and with every other money field on the API. Use
4553
+ * `parseFloat` if you need to compute on it.
4554
+ */
4555
+ total: string;
4556
+ /** Confirmation message, e.g. `"Order created successfully"`. */
4557
+ message: string;
4520
4558
  }
4521
4559
  interface WebhookEvent {
4522
4560
  event: WebhookEventType;
@@ -4595,6 +4633,34 @@ interface UpdateVariantInventoryDto {
4595
4633
  newTotal: number;
4596
4634
  reason?: string;
4597
4635
  }
4636
+ /**
4637
+ * `GET /v1/products/{id}/inventory` — the product's inventory state.
4638
+ *
4639
+ * The endpoint returns the whole `InventoryItem`, not just the three counters
4640
+ * it used to be documented as. Its `PUT` sibling has always returned this
4641
+ * shape.
4642
+ *
4643
+ * ⛔ **Two shapes, one status code.** A product with **no inventory row** (and
4644
+ * an id this key cannot see) reads back as the three counters at zero and
4645
+ * nothing else, rather than a 404 — every field below `total` is absent on
4646
+ * that branch. Branch on `id` being present, not on a 404.
4647
+ */
4648
+ interface ProductInventoryResponse {
4649
+ /** `total - reserved`. */
4650
+ available: number;
4651
+ reserved: number;
4652
+ total: number;
4653
+ /** The `InventoryItem` id. Absent on the all-zeroes no-row response. */
4654
+ id?: string;
4655
+ productId?: string;
4656
+ trackingMode?: InventoryTrackingMode;
4657
+ /** Backorder policy for this item, e.g. `"NONE"`. */
4658
+ backorderMode?: string;
4659
+ backorderLimit?: number | null;
4660
+ lowStockThreshold?: number | null;
4661
+ lastInventorySyncAt?: string | null;
4662
+ updatedAt?: string;
4663
+ }
4598
4664
  interface VariantInventoryResponse {
4599
4665
  trackingMode: InventoryTrackingMode;
4600
4666
  total: number;
@@ -7321,6 +7387,146 @@ interface SubscribeMarketingInput {
7321
7387
  interface SubscribeMarketingResponse {
7322
7388
  ok: true;
7323
7389
  }
7390
+ type NewsletterBenefitDiscountKind = 'PERCENTAGE' | 'FIXED_AMOUNT';
7391
+ /**
7392
+ * The offer to render beside a newsletter signup field.
7393
+ *
7394
+ * `null` from `marketing.getBenefit()` means the store offers nothing — render
7395
+ * the plain signup form and promise nothing.
7396
+ */
7397
+ interface PublicNewsletterBenefitOffer {
7398
+ enabled: boolean;
7399
+ discountType: NewsletterBenefitDiscountKind;
7400
+ /** Percent for PERCENTAGE, an amount in the store currency for FIXED_AMOUNT. */
7401
+ discountValue: number;
7402
+ /** How long the coupon lasts once issued, in days. */
7403
+ validityDays: number;
7404
+ minimumOrderAmount: number | null;
7405
+ /** Cap on the discount a percentage offer can produce. Null for no cap. */
7406
+ maximumDiscount: number | null;
7407
+ /** Restricted to buyers with no previous order. Guest orders count. */
7408
+ firstOrderOnly: boolean;
7409
+ /** Merchant-written, resolved for the requested locale. May be null. */
7410
+ headline: string | null;
7411
+ /** Merchant-written terms, resolved for the requested locale. May be null. */
7412
+ terms: string | null;
7413
+ }
7414
+ /** Lifecycle of one address's benefit. */
7415
+ type NewsletterBenefitGrantState = 'PENDING' | 'ISSUING' | 'ISSUED' | 'EXPIRED' | 'FAILED';
7416
+ /** The merchant's configuration, as the admin API returns it. */
7417
+ interface NewsletterBenefitSettings {
7418
+ id: string;
7419
+ storeId: string;
7420
+ enabled: boolean;
7421
+ /** Bumped on every save and copied into each new grant. */
7422
+ version: number;
7423
+ discountType: NewsletterBenefitDiscountKind;
7424
+ discountValue: number;
7425
+ minimumOrderAmount: number | null;
7426
+ maximumDiscount: number | null;
7427
+ combinesWithOther: boolean;
7428
+ validityDays: number;
7429
+ eligibilityTtlHours: number;
7430
+ firstOrderOnly: boolean;
7431
+ applicableProducts: string[];
7432
+ excludedProducts: string[];
7433
+ applicableCategories: string[];
7434
+ excludedCategories: string[];
7435
+ /** `salesChannelId` values. Empty means every enabled channel. */
7436
+ salesChannelIds: string[];
7437
+ content: Record<string, {
7438
+ headline?: string;
7439
+ terms?: string;
7440
+ }>;
7441
+ createdAt: string;
7442
+ updatedAt: string;
7443
+ }
7444
+ /**
7445
+ * A FULL REPLACEMENT, not a patch. Every field is written, so omitting one
7446
+ * clears it rather than leaving it alone.
7447
+ */
7448
+ interface UpdateNewsletterBenefitSettingsInput {
7449
+ enabled: boolean;
7450
+ discountType: NewsletterBenefitDiscountKind;
7451
+ /** 1-100 for PERCENTAGE, an amount in the store currency for FIXED_AMOUNT. */
7452
+ discountValue: number;
7453
+ minimumOrderAmount?: number;
7454
+ /** Percentage offers only. Ignored, and stored as null, for a fixed amount. */
7455
+ maximumDiscount?: number;
7456
+ combinesWithOther: boolean;
7457
+ /** 1-365. Counted from issuance, not from the signup. */
7458
+ validityDays: number;
7459
+ /**
7460
+ * 1-8760. How long a signup stays eligible, counted from the moment the form
7461
+ * was submitted.
7462
+ *
7463
+ * ⛔ THE ONLY DEADLINE IN THE FLOW. The confirmation link itself never
7464
+ * expires, so a click after this window still subscribes the address and
7465
+ * earns no coupon.
7466
+ */
7467
+ eligibilityTtlHours: number;
7468
+ firstOrderOnly: boolean;
7469
+ applicableProducts?: string[];
7470
+ excludedProducts?: string[];
7471
+ applicableCategories?: string[];
7472
+ excludedCategories?: string[];
7473
+ /**
7474
+ * `salesChannelId` values the coupon may be redeemed on. Leave empty for
7475
+ * every enabled channel: empty is expanded at issuance, because a coupon with
7476
+ * no channel rows is refused on every vibe-coded storefront.
7477
+ */
7478
+ salesChannelIds?: string[];
7479
+ /** `{ en: { headline, terms }, he: { … } }`. Shown on the form and in the email. */
7480
+ content?: Record<string, {
7481
+ headline?: string;
7482
+ terms?: string;
7483
+ }>;
7484
+ }
7485
+ /** One row of the issued-benefits list. */
7486
+ interface NewsletterBenefitGrant {
7487
+ id: string;
7488
+ email: string;
7489
+ status: NewsletterBenefitGrantState;
7490
+ /** Where the signup came from. A CSV-imported contact never gets a row here. */
7491
+ source: string;
7492
+ couponCode: string | null;
7493
+ /** Derived from the coupon being used, so it is true the moment an order completes. */
7494
+ redeemed: boolean;
7495
+ expiresAt: string | null;
7496
+ /** Deadline for confirming. A click after this subscribes but earns nothing. */
7497
+ eligibleUntil: string | null;
7498
+ confirmedAt: string | null;
7499
+ emailSentAt: string | null;
7500
+ attempts: number;
7501
+ lastError: string | null;
7502
+ settingsVersion: number;
7503
+ createdAt: string;
7504
+ }
7505
+ /**
7506
+ * Filters for the issued-benefits list.
7507
+ *
7508
+ * ⛔ NO EMAIL FILTER, and the API refuses one. A lookup-by-address would turn a
7509
+ * merchant list into a "does this person shop here" probe for any leaked key.
7510
+ */
7511
+ interface ListNewsletterBenefitGrantsParams {
7512
+ page?: number;
7513
+ /** Max 100, like every other paginated list. */
7514
+ limit?: number;
7515
+ status?: NewsletterBenefitGrantState;
7516
+ /** ISO-8601. Signups created on or after this moment. */
7517
+ from?: string;
7518
+ /** ISO-8601. Signups created on or before this moment. */
7519
+ to?: string;
7520
+ }
7521
+ /** What a resend hands back: the coupon that was re-sent, never a new one. */
7522
+ interface ResendNewsletterBenefitResult {
7523
+ code: string;
7524
+ discountType: NewsletterBenefitDiscountKind;
7525
+ discountValue: number;
7526
+ expiresAt: string;
7527
+ minimumOrderAmount: number | null;
7528
+ firstOrderOnly: boolean;
7529
+ }
7324
7530
  interface CreateStockAlertInput {
7325
7531
  /** Address to notify. Lowercased and trimmed server-side. */
7326
7532
  email: string;
@@ -8715,8 +8921,13 @@ declare class BrainerceClient {
8715
8921
  *
8716
8922
  * Rejected: a product that is not a KIT, a component from another store, a
8717
8923
  * component that is itself a KIT, a VARIABLE component with no variant
8718
- * pinned, a variant that does not belong to its product, and the same slot
8719
- * listed twice.
8924
+ * pinned, a variant that does not belong to its product, the same slot
8925
+ * listed twice, and a component whose product or pinned variant is not
8926
+ * published.
8927
+ *
8928
+ * That last one is checked over the WHOLE list you send, not just the rows
8929
+ * you changed. Once a product already inside a kit is unpublished, no edit
8930
+ * to that kit saves until you publish it again or drop it from the list.
8720
8931
  *
8721
8932
  * @example
8722
8933
  * ```typescript
@@ -9172,12 +9383,15 @@ declare class BrainerceClient {
9172
9383
  * exist and 404'd silently. The live route is product-scoped:
9173
9384
  * `GET /api/v1/products/:id/inventory`. A product with no inventory row
9174
9385
  * reads back as all zeroes rather than 404ing.
9386
+ *
9387
+ * The response carries the whole {@link ProductInventoryResponse} — the
9388
+ * `InventoryItem` id, `trackingMode`, `backorderMode`, `backorderLimit`,
9389
+ * `lowStockThreshold`, `lastInventorySyncAt` and `updatedAt` alongside the
9390
+ * three counters. It always did; only the three counters were declared.
9391
+ * On the all-zeroes no-row branch everything but the counters is absent,
9392
+ * so test `id` rather than expecting a 404.
9175
9393
  */
9176
- getInventory(productId: string): Promise<{
9177
- available: number;
9178
- reserved: number;
9179
- total: number;
9180
- }>;
9394
+ getInventory(productId: string): Promise<ProductInventoryResponse>;
9181
9395
  /**
9182
9396
  * Edit inventory manually with a reason for the audit trail.
9183
9397
  *
@@ -9898,10 +10112,14 @@ declare class BrainerceClient {
9898
10112
  * Storefront (public) and vibe-coded modes only. Rate-limited server-side to
9899
10113
  * 3 requests / 60s per IP, plus one confirmation email per address per 24h.
9900
10114
  *
9901
- * **Where the discount goes.** A "10% off your first order" popup needs a
9902
- * coupon from the dashboard create one with the `customer_first_order`
9903
- * condition and show the code after a successful call. Subscribing does not
9904
- * mint a code on its own.
10115
+ * **Where the discount goes.** Configure the newsletter welcome offer and the
10116
+ * platform issues the coupon itself: read it with `marketing.getBenefit()`,
10117
+ * show those terms beside the field, and stop there.
10118
+ *
10119
+ * ⛔ DO NOT SHOW A CODE AFTER THIS CALL RESOLVES. No coupon exists yet. It is
10120
+ * minted when the recipient clicks the confirmation link, and it is mailed to
10121
+ * them at that moment — a code rendered here is a code that was never issued.
10122
+ * Say "check your email", the same as for the subscription itself.
9905
10123
  *
9906
10124
  * @example
9907
10125
  * ```typescript
@@ -9917,6 +10135,117 @@ declare class BrainerceClient {
9917
10135
  */
9918
10136
  marketing: {
9919
10137
  subscribe: (input: SubscribeMarketingInput) => Promise<SubscribeMarketingResponse>;
10138
+ /**
10139
+ * The welcome offer to render beside the signup field, or `null` when this
10140
+ * store offers none.
10141
+ *
10142
+ * Show the discount, how long the coupon lasts, any minimum order, whether
10143
+ * it is first-order only, and the merchant's own headline and terms. Then
10144
+ * post to `marketing.subscribe()` and tell the shopper to check their
10145
+ * inbox.
10146
+ *
10147
+ * ⛔ THE COUPON DOES NOT EXIST YET at any point in that sequence. It is
10148
+ * created when the recipient clicks the confirmation link in their email,
10149
+ * and it is mailed to them there. Rendering a code on this screen renders a
10150
+ * code nobody was issued.
10151
+ *
10152
+ * ⛔ Takes no email address and returns nothing about any individual, on
10153
+ * purpose. There is no "has this person already claimed" call, because an
10154
+ * unauthenticated one would be an oracle for who shops here. If you need to
10155
+ * discourage a repeat signup, say the offer is one per address; do not try
10156
+ * to detect it.
10157
+ *
10158
+ * `null` is the common case on a store that never set this up, so handle it
10159
+ * rather than assuming the object. Cache it per page load: it belongs to
10160
+ * the store, not to the visitor.
10161
+ *
10162
+ * Storefront (public) and vibe-coded modes.
10163
+ *
10164
+ * @param locale - Storefront locale, e.g. `"he"`. Picks the language of the
10165
+ * headline and terms; falls back to the store language when omitted.
10166
+ *
10167
+ * @example
10168
+ * ```typescript
10169
+ * const offer = await brainerce.marketing.getBenefit('he');
10170
+ * if (offer) {
10171
+ * // "10% הנחה על ההזמנה הראשונה"
10172
+ * render(offer.headline ?? defaultHeadline(offer), offer.terms);
10173
+ * }
10174
+ * await brainerce.marketing.subscribe({ email, locale: 'he', honeypot });
10175
+ * // → "בדקו את המייל שלכם" — never a coupon code
10176
+ * ```
10177
+ */
10178
+ getBenefit: (locale?: string) => Promise<PublicNewsletterBenefitOffer | null>;
10179
+ };
10180
+ /**
10181
+ * Manage the newsletter welcome offer: the terms merchants configure, and the
10182
+ * benefits that offer has produced.
10183
+ *
10184
+ * Admin mode (`apiKey`) only, on the `coupons:read` / `coupons:write` scopes.
10185
+ * The benefit IS a coupon feature — it mints a Coupon row and the coupon
10186
+ * machinery enforces it — so it carries no scope of its own.
10187
+ *
10188
+ * ⛔ THERE IS NO "ISSUE A BENEFIT TO THIS ADDRESS" CALL, and there will not
10189
+ * be one. A benefit exists because someone submitted the signup form AND
10190
+ * clicked the confirmation link; handing one out directly would skip the
10191
+ * consent the double opt-in exists to collect and break the one-per-address
10192
+ * guarantee that the grant's unique constraint provides. `resend` re-sends a
10193
+ * code that already exists; it never creates one.
10194
+ */
10195
+ newsletterBenefit: {
10196
+ /**
10197
+ * The store's configuration, or `null` when none was ever saved.
10198
+ *
10199
+ * `null` and `{ enabled: false }` are different: never configured, versus
10200
+ * configured and switched off. Both mean "offer nothing" to a storefront.
10201
+ */
10202
+ getSettings: () => Promise<NewsletterBenefitSettings | null>;
10203
+ /**
10204
+ * Create or replace the offer.
10205
+ *
10206
+ * ⛔ A FULL REPLACEMENT, not a patch. Every field is written, so a field you
10207
+ * omit is cleared rather than kept.
10208
+ *
10209
+ * Saving never rewrites a promise already made: signups still waiting for a
10210
+ * confirmation click keep the terms they were shown, and coupons already
10211
+ * issued are untouched. Switching `enabled` off stops new offers and leaves
10212
+ * every issued coupon working until it expires.
10213
+ *
10214
+ * @example
10215
+ * ```typescript
10216
+ * await brainerce.newsletterBenefit.updateSettings({
10217
+ * enabled: true,
10218
+ * discountType: 'PERCENTAGE',
10219
+ * discountValue: 10,
10220
+ * minimumOrderAmount: 200,
10221
+ * combinesWithOther: false,
10222
+ * validityDays: 7,
10223
+ * eligibilityTtlHours: 168,
10224
+ * firstOrderOnly: true,
10225
+ * content: { he: { headline: '10% הנחה על ההזמנה הראשונה' } },
10226
+ * });
10227
+ * ```
10228
+ */
10229
+ updateSettings: (input: UpdateNewsletterBenefitSettingsInput) => Promise<NewsletterBenefitSettings>;
10230
+ /**
10231
+ * Issued benefits, newest first, as `{ data, meta }`.
10232
+ *
10233
+ * ⛔ NO EMAIL FILTER — the API refuses the parameter. Filter the page you
10234
+ * get back rather than asking the server about one address.
10235
+ */
10236
+ listGrants: (params?: ListNewsletterBenefitGrantsParams) => Promise<PaginatedResponse<NewsletterBenefitGrant>>;
10237
+ /**
10238
+ * Re-send one benefit that went astray.
10239
+ *
10240
+ * ⛔ SENDS THE SAME CODE. It never mints a second coupon, so a support
10241
+ * ticket cannot become two discounts. For a benefit whose issuance failed
10242
+ * before any coupon existed, this retries the issuance and mails the result.
10243
+ *
10244
+ * Rejects a signup that has not been confirmed and one that lapsed before a
10245
+ * coupon was minted: there is nothing to re-send in either case, and
10246
+ * nothing that may be created.
10247
+ */
10248
+ resend: (grantId: string) => Promise<ResendNewsletterBenefitResult | null>;
9920
10249
  };
9921
10250
  /**
9922
10251
  * "Email me when this is back."
@@ -13857,7 +14186,7 @@ declare class BrainerceError extends Error {
13857
14186
  constructor(message: string, statusCode: number, details?: unknown);
13858
14187
  }
13859
14188
 
13860
- declare const SDK_VERSION = "2.5.0";
14189
+ declare const SDK_VERSION = "2.7.0";
13861
14190
 
13862
14191
  /**
13863
14192
  * Verify a webhook signature from Brainerce
@@ -14358,4 +14687,4 @@ interface CategorySitemapOptions {
14358
14687
  */
14359
14688
  declare function getCategorySitemapEntries(client: BrainerceClient, opts: CategorySitemapOptions): Promise<SitemapEntry[]>;
14360
14689
 
14361
- 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 };
14690
+ 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 ListNewsletterBenefitGrantsParams, 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 NewsletterBenefitDiscountKind, type NewsletterBenefitGrant, type NewsletterBenefitGrantState, type NewsletterBenefitSettings, 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 ProductInventoryResponse, 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 PublicNewsletterBenefitOffer, 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 ResendNewsletterBenefitResult, 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 UpdateNewsletterBenefitSettingsInput, 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 };