import {z} from 'zod' export type CreateApiV2510BetaExperiencesExperienceIdActionsActionArgs = {experienceId: string, action: 'start' | 'pause' | 'end', body: {variationId?: (string | null) | undefined, updatePricesToVariation?: boolean | undefined}}; export type CreateApiV2510BetaExperiencesExperienceIdActionsActionOptions = {baseUrl?: string | undefined, intelligemsAccessToken?: string | undefined, fetch?: typeof fetch | undefined}; export const schema0: z.ZodType = z.object({discountType: z.enum(["none", "percentage", "fixed"]), discountValue: z.number().nullable().optional(), compareAtPriceDisplay: z.enum(["none", "compareAtPrice", "regularPrice"]), expression: z.array(z.object({query: z.object({key: z.enum(["shopifyRecommendations", "productId", "collection", "tag"]), type: z.enum(["shopifyRecommendations", "productId", "collection", "tag"]), filter: z.enum(["includes", "doesNotInclude"]).optional(), value: z.union([z.string(), z.number(), z.array(z.object({order: z.number(), productId: z.string(), productTitle: z.string(), handle: z.string().nullable().optional(), productImage: z.string().nullable().optional(), description: z.string().nullable().optional(), options: z.array(z.object({name: z.string(), values: z.array(z.string())})).optional(), variants: z.array(z.object({variantId: z.string(), variantTitle: z.string(), variantImage: z.string().nullable().optional(), price: z.number(), compareAtPrice: z.number().nullable().optional(), currencyCode: z.string().optional(), availableForSale: z.boolean().optional(), sig: z.string().nullable().optional(), inclusionType: z.enum(["include", "exclude"]), variantOptions: z.array(z.object({name: z.string(), value: z.string()})).optional()})), defaultVariantId: z.string().nullable().optional()}))]).optional()}).optional(), operator: z.enum(["and", "or", "start_paren", "end_paren"]).optional()})), onAccept: z.lazy(() => schema0.nullable().optional()), onDecline: z.lazy(() => schema0.nullable().optional())}); export const createApiV2510BetaExperiencesExperienceIdActionsActionResponse = z.object({experience: z.object({id: z.string(), name: z.string(), isPreview: z.boolean(), description: z.string().nullable().optional(), devicePreview: z.object({device: z.enum(["any", "mobile", "desktop"]), path: z.string()}).nullable().optional(), organizationId: z.string(), type: z.enum(["content/advanced", "content/onsiteEdits", "content/url", "content/theme", "content/template", "personalization", "personalization/offer", "pricing", "checkoutBlock", "postPurchase", "onsiteUpsell", "shipping", "sitewide"]), category: z.enum(["experiment", "personalization"]), status: z.enum(["pending", "started", "ended", "paused"]), testTypes: z.object({hasTestPricing: z.boolean(), hasTestShipping: z.boolean(), hasTestCampaign: z.boolean(), hasTestContent: z.boolean(), hasTestContentUrl: z.boolean(), hasTestContentAdvanced: z.boolean(), hasTestContentOnsite: z.boolean(), hasTestContentTemplate: z.boolean(), hasTestContentTheme: z.boolean(), hasTestOnsiteInjections: z.boolean(), hasTestCheckoutBlocks: z.boolean(), hasTestPostPurchase: z.boolean(), hasTestOnsiteUpsell: z.boolean()}), experiencePageTargeting: z.array(z.object({id: z.string(), filter: z.enum(["equals", "contains", "startsWith", "endsWith", "doesNotEqual", "doesNotContain", "doesNotStartWith", "doesNotEndWith", "isNull", "isNotNull", "regex"]).nullable().optional(), filterType: z.enum(["utm", "url", "device", "visitor", "jsExpression", "trafficSource", "country", "referrer", "cookie"]), value: z.string(), order: z.number(), expression: z.array(z.object({query: z.object({key: z.string(), value: z.string(), filter: z.enum(["equals", "contains", "startsWith", "endsWith", "doesNotEqual", "doesNotContain", "doesNotStartWith", "doesNotEndWith", "isNull", "isNotNull", "regex"]).nullable().optional(), type: z.enum(["utm", "url", "urlPath", "device", "visitor", "purchaseLikelihood", "jsExpression", "trafficSource", "country", "referrer", "cookie", "klaviyo", "landingPage"])}).optional(), operator: z.enum(["and", "or", "start_paren", "end_paren"]).optional()})).nullable().optional(), experienceId: z.string().optional()})), experienceProductTargeting: z.array(z.object({id: z.string(), experienceId: z.string(), target: z.enum(["productPage", "productCard"]), expression: z.array(z.object({query: z.object({key: z.enum(["productId", "collection", "tag", "price", "inventory"]), value: z.union([z.string(), z.number()]), filter: z.enum(["includes", "doesNotInclude", "greaterThan", "lessThan"]), type: z.enum(["productId", "collection", "tag", "price", "inventory"])}).optional(), operator: z.enum(["and", "or", "start_paren", "end_paren"]).optional()})).nullable().optional()})), experienceActions: z.array(z.object({id: z.string(), experienceId: z.string(), action: z.enum(["start", "pause", "end", "delete", "reset"]), actionTs: z.number(), performedBy: z.string().nullable().optional()})), experienceIntegrations: z.array(z.object({id: z.string(), createdAtTs: z.number(), integration: z.object({id: z.string(), name: z.enum(["Recharge", "StayAi", "GrowLTV", "OneClickUpsell", "Google", "Amped", "Clarity", "Hotjar", "Heatmap", "CustomApi", "Klaviyo", "Slack", "Amplitude", "Heap", "Segment", "IntelligemsAPI", "IntelligemsMcp", "UPS", "MetaAds"]), description: z.string(), enabled: z.boolean(), globalSettings: z.unknown(), apis: z.array(z.object({id: z.string(), name: z.string(), description: z.string().nullable().optional(), accessToken: z.string(), scopes: z.array(z.enum(["read_experiments", "write_experiments", "write_test_groups", "read_integrations"])), organization: z.object({id: z.string(), name: z.string()})})), createdAtTs: z.number().optional(), lastUpdateTs: z.number().optional()}), experienceSettings: z.unknown(), enabled: z.boolean()})), experienceCustomMetrics: z.array(z.object({id: z.string(), experienceId: z.string(), order: z.number(), customEventId: z.string(), customEvent: z.union([z.object({id: z.string(), identifier: z.string(), name: z.string(), description: z.string().nullable().optional(), eventCountLastDay: z.number().nullable().optional(), lastEventTs: z.number().nullable().optional(), error: z.string().nullable().optional(), createdAtTs: z.number(), lastUpdateTs: z.number(), archivedAtTs: z.number().nullable().optional(), applyToUrls: z.array(z.object({matchBy: z.enum(["equals", "contains", "startsWith", "endsWith", "doesNotEqual", "doesNotContain", "doesNotStartWith", "doesNotEndWith", "isNull", "isNotNull", "regex"]), value: z.string(), error: z.string().nullable().optional()})).nullable().optional(), experiencesList: z.array(z.string()).nullable().optional(), type: z.literal("pageView"), settings: z.object({})}), z.object({id: z.string(), identifier: z.string(), name: z.string(), description: z.string().nullable().optional(), eventCountLastDay: z.number().nullable().optional(), lastEventTs: z.number().nullable().optional(), error: z.string().nullable().optional(), createdAtTs: z.number(), lastUpdateTs: z.number(), archivedAtTs: z.number().nullable().optional(), applyToUrls: z.array(z.object({matchBy: z.enum(["equals", "contains", "startsWith", "endsWith", "doesNotEqual", "doesNotContain", "doesNotStartWith", "doesNotEndWith", "isNull", "isNotNull", "regex"]), value: z.string(), error: z.string().nullable().optional()})).nullable().optional(), experiencesList: z.array(z.string()).nullable().optional(), type: z.literal("productPageView"), settings: z.array(z.object({productId: z.string(), handle: z.string()}))}), z.object({id: z.string(), identifier: z.string(), name: z.string(), description: z.string().nullable().optional(), eventCountLastDay: z.number().nullable().optional(), lastEventTs: z.number().nullable().optional(), error: z.string().nullable().optional(), createdAtTs: z.number(), lastUpdateTs: z.number(), archivedAtTs: z.number().nullable().optional(), applyToUrls: z.array(z.object({matchBy: z.enum(["equals", "contains", "startsWith", "endsWith", "doesNotEqual", "doesNotContain", "doesNotStartWith", "doesNotEndWith", "isNull", "isNotNull", "regex"]), value: z.string(), error: z.string().nullable().optional()})).nullable().optional(), experiencesList: z.array(z.string()).nullable().optional(), type: z.literal("collectionPageView"), settings: z.array(z.object({handle: z.string()}))}), z.object({id: z.string(), identifier: z.string(), name: z.string(), description: z.string().nullable().optional(), eventCountLastDay: z.number().nullable().optional(), lastEventTs: z.number().nullable().optional(), error: z.string().nullable().optional(), createdAtTs: z.number(), lastUpdateTs: z.number(), archivedAtTs: z.number().nullable().optional(), applyToUrls: z.array(z.object({matchBy: z.enum(["equals", "contains", "startsWith", "endsWith", "doesNotEqual", "doesNotContain", "doesNotStartWith", "doesNotEndWith", "isNull", "isNotNull", "regex"]), value: z.string(), error: z.string().nullable().optional()})).nullable().optional(), experiencesList: z.array(z.string()).nullable().optional(), type: z.literal("clickEvent"), settings: z.object({selectors: z.array(z.string())})}), z.object({id: z.string(), identifier: z.string(), name: z.string(), description: z.string().nullable().optional(), eventCountLastDay: z.number().nullable().optional(), lastEventTs: z.number().nullable().optional(), error: z.string().nullable().optional(), createdAtTs: z.number(), lastUpdateTs: z.number(), archivedAtTs: z.number().nullable().optional(), applyToUrls: z.array(z.object({matchBy: z.enum(["equals", "contains", "startsWith", "endsWith", "doesNotEqual", "doesNotContain", "doesNotStartWith", "doesNotEndWith", "isNull", "isNotNull", "regex"]), value: z.string(), error: z.string().nullable().optional()})).nullable().optional(), experiencesList: z.array(z.string()).nullable().optional(), type: z.literal("elementViewed"), settings: z.object({selectors: z.array(z.string())})}), z.object({id: z.string(), identifier: z.string(), name: z.string(), description: z.string().nullable().optional(), eventCountLastDay: z.number().nullable().optional(), lastEventTs: z.number().nullable().optional(), error: z.string().nullable().optional(), createdAtTs: z.number(), lastUpdateTs: z.number(), archivedAtTs: z.number().nullable().optional(), applyToUrls: z.array(z.object({matchBy: z.enum(["equals", "contains", "startsWith", "endsWith", "doesNotEqual", "doesNotContain", "doesNotStartWith", "doesNotEndWith", "isNull", "isNotNull", "regex"]), value: z.string(), error: z.string().nullable().optional()})).nullable().optional(), experiencesList: z.array(z.string()).nullable().optional(), type: z.literal("scrollDepth"), settings: z.object({mobile: z.object({percentage: z.number()}), desktop: z.object({percentage: z.number()})})}), z.object({id: z.string(), identifier: z.string(), name: z.string(), description: z.string().nullable().optional(), eventCountLastDay: z.number().nullable().optional(), lastEventTs: z.number().nullable().optional(), error: z.string().nullable().optional(), createdAtTs: z.number(), lastUpdateTs: z.number(), archivedAtTs: z.number().nullable().optional(), applyToUrls: z.array(z.object({matchBy: z.enum(["equals", "contains", "startsWith", "endsWith", "doesNotEqual", "doesNotContain", "doesNotStartWith", "doesNotEndWith", "isNull", "isNotNull", "regex"]), value: z.string(), error: z.string().nullable().optional()})).nullable().optional(), experiencesList: z.array(z.string()).nullable().optional(), type: z.literal("javascriptEvent"), settings: z.object({code: z.string()})}), z.object({id: z.string(), identifier: z.string(), name: z.string(), description: z.string().nullable().optional(), eventCountLastDay: z.number().nullable().optional(), lastEventTs: z.number().nullable().optional(), error: z.string().nullable().optional(), createdAtTs: z.number(), lastUpdateTs: z.number(), archivedAtTs: z.number().nullable().optional(), applyToUrls: z.array(z.object({matchBy: z.enum(["equals", "contains", "startsWith", "endsWith", "doesNotEqual", "doesNotContain", "doesNotStartWith", "doesNotEndWith", "isNull", "isNotNull", "regex"]), value: z.string(), error: z.string().nullable().optional()})).nullable().optional(), experiencesList: z.array(z.string()).nullable().optional(), type: z.literal("javascriptImportedEvent"), settings: z.object({registered: z.boolean()})})])})), experienceKeyMetrics: z.array(z.object({id: z.string(), experienceId: z.string(), order: z.number().int().gte(0).lte(9007199254740991), isPrimary: z.boolean(), standardEventId: z.enum(["conversionRate", "addToCartRate", "abandonedCartRate", "abandonedCheckoutRate", "checkoutBeginRate", "checkoutEnterContactInfoRate", "checkoutAddressSubmittedRate", "viewProductPageRate", "viewCollectionPageRate", "netRevenuePerVisitor", "netProductRevenuePerOrder", "netRevenuePerOrder", "avgUnitsPerOrder", "avgProductRevenuePerUnit", "profitPerVisitor", "profitPerOrder", "pctOrdersFreeShipping", "netShippingRevenuePerOrder", "subscriptionOrdersPerVisitor", "subscriptionRevenuePerVisitor", "subscriptionProfitPerVisitor", "subscriptionProductRevenuePerOrder", "avgDiscountPerDiscountedOrder", "avgDiscountPerAllOrders", "pctSubscriptionOrders", "subscriptionRevenuePerOrder", "pctOrdersWithPostPurchaseOffer", "netRevenueFromPostPurchaseOffer", "pctOrdersWithUpsell", "netRevenueFromUpsell", "pctOrdersWithOnsiteUpsell", "netRevenueFromOnsiteUpsell"]).nullable().optional(), experienceCustomMetricId: z.string().nullable().optional()})), currency: z.object({code: z.string(), country: z.string().optional(), options: z.unknown(), symbol: z.string(), suffix: z.string().optional()}).nullable().optional(), variations: z.array(z.object({id: z.string(), experienceId: z.string(), name: z.string(), percentage: z.number(), isControl: z.boolean(), order: z.number().int().gte(-9007199254740991).lte(9007199254740991), priceChange: z.string().nullable().optional(), priceChangeUnit: z.enum(["percent", "dollar"]).nullable().optional(), priceRoundingType: z.enum(["none", "nearest", "up", "down"]).nullable().optional(), priceRoundingAmount: z.string().nullable().optional(), onsiteEdits: z.array(z.object({id: z.string(), onsiteEditType: z.enum(["html", "text", "image", "hide"]).nullable().optional(), variationId: z.string(), find: z.string().nullable(), title: z.string().nullable().optional(), isRegex: z.boolean(), replace: z.string(), querySelectors: z.array(z.string()), skip: z.boolean(), remove: z.boolean(), groupId: z.string().optional(), isHtml: z.boolean(), isImage: z.boolean(), insertType: z.enum(["beforebegin", "afterbegin", "beforeend", "afterend"]).nullable(), createdAtUrl: z.string().nullable().optional(), createdAtTs: z.number().nullable().optional(), imageSearchUrl: z.string().nullable().optional(), source: z.literal("ai").nullable().optional()})), onsiteInjections: z.object({id: z.string(), variationId: z.string(), customCss: z.string().nullable().optional(), customJs: z.string().nullable().optional(), jsInjectionMode: z.object({type: z.enum(["immediately", "onWindowLoad", "timeout"]), timeout: z.union([z.number(), z.string()]).optional()}), source: z.literal("ai").nullable().optional()}).nullable().optional(), offer: z.object({id: z.string(), variationId: z.string(), enabled: z.boolean(), isTest: z.boolean(), isArchived: z.boolean(), name: z.string(), unitType: z.enum(["unit", "dollar"]), discountType: z.enum(["percentage", "dollar"]), tiers: z.array(z.object({id: z.string(), minimumUnits: z.number(), maximumUnits: z.number(), unitDiscount: z.number(), bxgyGetQuantity: z.number().int().gte(0).lte(9007199254740991), discountTitle: z.string().nullable(), giftWithPurchaseTitle: z.string().nullable(), isFreeShipping: z.boolean(), isGiftWithPurchase: z.boolean(), giftWithPurchaseProductId: z.string().nullable().optional(), giftWithPurchaseVariantId: z.string().nullable().optional(), giftWithPurchaseVariantIds: z.array(z.string()), autoAddGiftWithPurchase: z.boolean(), giftWithPurchaseHandle: z.string().nullable().optional()})), maximumDollarDiscount: z.number().nullable().optional(), discountApplicationType: z.enum(["tieredDiscount", "cartDiscount", "freeGift", "freeShipping", "buyXGetY", ""]), discountApplicationMethod: z.enum(["perItem", "perOrder"]), combinesWithIntelligems: z.boolean(), combinesWithShopify: z.boolean(), shouldRejectCodes: z.boolean(), shippingDiscount: z.object({id: z.string(), discountType: z.enum(["percentage", "dollar"]), unitDiscount: z.number().gt(0).lte(100), rateFilter: z.union([z.object({type: z.literal("amount"), amount: z.number().optional()}), z.object({type: z.literal("name"), rules: z.array(z.object({id: z.string(), operator: z.enum(["is", "contains", "isNot", "doesNotContain", "startsWith", "doesNotStartWith"]), name: z.string()}))})]).nullable(), countryFilter: z.object({allow: z.array(z.string()).optional(), exclude: z.array(z.string()).optional()}).nullable(), discountLabel: z.string().nullable()}).nullable(), requireSameItem: z.boolean(), bxgyGetProductScope: z.enum(["all", "list"]).nullable().optional(), subscriptionApplicationType: z.enum(["oneTime", "firstSub", "oneTimeAndFirstSub"])}).nullable().optional(), offerId: z.string().nullable().optional(), shippingRateGroups: z.array(z.object({id: z.string(), groupType: z.enum(["flatRate", "flatRateWithThreshold", "thresholdOnly", "tieredByPriceOrWeight", "custom"]), position: z.number(), rates: z.array(z.object({id: z.string().optional(), name: z.string(), amount: z.number(), rateCode: z.string().nullable().optional(), rateType: z.enum(["amount", "threshold", "tier"]), currency: z.enum(["AED", "AFN", "ALL", "AMD", "ANG", "AOA", "ARS", "AUD", "AWG", "AZN", "BAM", "BBD", "BDT", "BGN", "BIF", "BMD", "BND", "BOB", "BRL", "BSD", "BWP", "BZD", "CAD", "CDF", "CHF", "CLP", "CNY", "COP", "CRC", "CVE", "CZK", "DJF", "DKK", "DOP", "DZD", "EGP", "ETB", "EUR", "FJD", "FKP", "GBP", "GEL", "GIP", "GMD", "GNF", "GTQ", "GYD", "HKD", "HNL", "HRK", "HTG", "HUF", "IDR", "ILS", "INR", "ISK", "JMD", "JPY", "KES", "KGS", "KHR", "KMF", "KRW", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "MAD", "MDL", "MGA", "MKD", "MMK", "MNT", "MOP", "MUR", "MVR", "MWK", "MXN", "MYR", "MZN", "NAD", "NGN", "NIO", "NOK", "NPR", "NZD", "PAB", "PEN", "PGK", "PHP", "PKR", "PLN", "PYG", "QAR", "RON", "RSD", "RUB", "RWF", "SAR", "SBD", "SCR", "SEK", "SGD", "SHP", "SLL", "SRD", "STD", "SZL", "THB", "TJS", "TOP", "TRY", "TTD", "TWD", "TZS", "UAH", "UGX", "USD", "UYU", "UZS", "VND", "VUV", "WST", "XAF", "XCD", "XOF", "XPF", "YER", "ZAR", "ZMW"]), condition: z.object({id: z.string().optional(), min: z.union([z.number(), z.string()]).nullable(), max: z.union([z.number(), z.string()]).nullable().optional(), conditionType: z.enum(["currency", "weight"]), unit: z.enum(["g", "kg", "lb", "oz"]).nullable().optional()}).nullable().optional(), description: z.string().nullable().optional()})), variationId: z.string(), scopes: z.array(z.object({marketId: z.string().min(1), collectionIds: z.array(z.string().min(1)).nullable(), originLocationIds: z.array(z.string().min(1))})).nullable().optional()})).optional(), excludeProducts: z.boolean().optional(), includeProducts: z.boolean().optional(), testExperienceId: z.string().nullable().optional(), functionSyncError: z.boolean(), redirects: z.array(z.object({id: z.string(), group: z.number(), variationId: z.string(), originUrl: z.string(), destinationUrl: z.string().nullable().optional(), queryParams: z.array(z.object({key: z.string(), value: z.string()})), skip: z.boolean(), isThemeTest: z.boolean(), isTemplateTest: z.boolean(), templateType: z.enum(["404", "", "article", "blog", "cart", "collection", "index", "list-collections", "page", "password", "product", "search"]).nullable().optional(), templateSuffixes: z.array(z.string()).nullable(), redirectOnce: z.boolean(), filter: z.enum(["matchesExactly", "contains", "endsWith", "matchesRegex", "none"]), find: z.string().nullable().optional(), redirectType: z.enum(["fullReplacement", "partialReplacement"])})).optional(), userInterfaces: z.array(z.object({id: z.string(), isEnabled: z.boolean().optional(), isArchived: z.boolean(), widget: z.object({id: z.string(), name: z.string(), enabledSitewide: z.boolean(), parentId: z.string().nullable().optional(), widgetType: z.enum(["messageBoxPopup", "messageBoxSlideOut", "quantityButtons", "discountProgressBar", "shippingProgressBar", "gwpVariantPicker"]), config: z.object({desktop: z.unknown(), mobile: z.unknown()})}).optional(), widgetId: z.string().min(1), category: z.enum(["quantityButtons", "progressBar", "messageBox", "gwpVariantPicker"]).optional(), variationId: z.string().nullable().optional(), desktopVariables: z.unknown(), mobileVariables: z.unknown(), styleOverrides: z.unknown()})).optional(), checkoutBlocks: z.array(z.union([z.object({id: z.string(), variationId: z.string(), locationId: z.string(), blockType: z.literal("trustBadge"), blockTemplate: z.enum(["badgeList", "badgeTiles", "callOut", "grid", "header", "images", "brandLogo", "textOnly"]).nullable().optional(), name: z.string(), displayConditions: z.object({id: z.string(), expression: z.array(z.object({query: z.object({key: z.enum(["anything", "productId", "collection", "tag", "cartSubtotal", "cartItemCount", "subscription"]), type: z.enum(["anything", "productId", "collection", "tag", "cartSubtotal", "cartItemCount", "subscription"]), filter: z.enum(["includes", "doesNotInclude", "greaterThan", "lessThan", "equalTo", "greaterThanOrEqual", "lessThanOrEqual", "between"]), value: z.union([z.string(), z.number(), z.record(z.string(), z.array(z.object({variantId: z.string(), inclusionType: z.enum(["include", "exclude"])})))]).optional()}).optional(), operator: z.enum(["and", "or", "start_paren", "end_paren"]).optional()}))}).optional(), variables: z.object({headerText: z.union([z.string(), z.array(z.object({text: z.string().min(1), bold: z.boolean().optional(), italic: z.boolean().optional(), strike: z.boolean().optional(), link: z.object({href: z.string()}).optional()}))]), items: z.array(z.object({order: z.number(), title: z.union([z.string(), z.array(z.object({text: z.string().min(1), bold: z.boolean().optional(), italic: z.boolean().optional(), strike: z.boolean().optional(), link: z.object({href: z.string()}).optional()}))]).nullable().optional(), subtitle: z.union([z.string(), z.array(z.object({text: z.string().min(1), bold: z.boolean().optional(), italic: z.boolean().optional(), strike: z.boolean().optional(), link: z.object({href: z.string()}).optional()}))]).nullable().optional(), type: z.string(), icon: z.string().nullable().optional(), iconColor: z.string().nullable().optional(), iconSize: z.string().nullable().optional(), imageSize: z.number().gte(1).lte(500).nullable(), imageSizeUnit: z.enum(["pixels", "percentage"]), imageAspectRatio: z.string().nullable().optional(), image: z.string().nullable().optional(), mediaSpacing: z.string()}))}), styles: z.object({typography: z.object({header: z.object({fontSize: z.string(), fontStyle: z.string()}), itemTitle: z.object({fontSize: z.string(), fontStyle: z.string()}), itemSubtitle: z.object({fontSize: z.string(), fontStyle: z.string()})}), backgroundColors: z.object({header: z.string(), item: z.string(), block: z.string()}), colors: z.object({headerText: z.string(), itemTitleText: z.string(), itemSubtitleText: z.string()}), layout: z.object({headerTextAlign: z.string(), bodyAlign: z.string(), itemTextAlign: z.string(), itemPositionAlign: z.string(), rowCount: z.number().int().gte(-9007199254740991).lte(9007199254740991), columnCount: z.number().int().gte(-9007199254740991).lte(9007199254740991)}), appearance: z.object({headerBorderThickness: z.string(), headerBorderStyle: z.string(), headerCornerRadius: z.string(), headerPadding: z.string(), bodySpacing: z.string(), headingToBodySpacing: z.string(), blockBorderThickness: z.string(), blockBorderStyle: z.string(), blockPadding: z.string(), blockCornerRadius: z.string(), itemBorderThickness: z.string(), itemBorderStyle: z.string(), itemCornerRadius: z.string(), itemTextSpacing: z.string()})})}), z.object({id: z.string(), variationId: z.string(), locationId: z.string(), blockType: z.literal("upsell"), blockTemplate: z.enum(["productTiles", "productList", "singleProduct", "singleProductCheckbox"]).nullable().optional(), name: z.string(), displayConditions: z.object({id: z.string(), expression: z.array(z.object({query: z.object({key: z.enum(["anything", "productId", "collection", "tag", "cartSubtotal", "cartItemCount", "subscription"]), type: z.enum(["anything", "productId", "collection", "tag", "cartSubtotal", "cartItemCount", "subscription"]), filter: z.enum(["includes", "doesNotInclude", "greaterThan", "lessThan", "equalTo", "greaterThanOrEqual", "lessThanOrEqual", "between"]), value: z.union([z.string(), z.number(), z.record(z.string(), z.array(z.object({variantId: z.string(), inclusionType: z.enum(["include", "exclude"])})))]).optional()}).optional(), operator: z.enum(["and", "or", "start_paren", "end_paren"]).optional()}))}).optional(), variables: z.object({headerText: z.union([z.string(), z.array(z.object({text: z.string().min(1), bold: z.boolean().optional(), italic: z.boolean().optional(), strike: z.boolean().optional(), link: z.object({href: z.string()}).optional()}))]), maxProductLimit: z.number().int().gte(1).lte(10), excludeItemsInCart: z.boolean(), excludeOutOfStock: z.boolean(), buttonText: z.string(), imageSize: z.number().gte(1).lte(500), imageSizeUnit: z.enum(["pixels", "percentage"]), imageAspectRatio: z.string(), mediaSpacing: z.string(), discount: z.object({discountType: z.enum(["none", "percentage", "fixed"]), discountValue: z.number().nullable().optional(), compareAtPriceDisplay: z.enum(["none", "compareAtPrice", "regularPrice"])}).optional()}), styles: z.object({typography: z.object({header: z.object({fontSize: z.string(), fontStyle: z.string()}), productTitle: z.object({fontSize: z.string(), fontStyle: z.string()}), variantTitle: z.object({fontSize: z.string(), fontStyle: z.string()}), price: z.object({fontSize: z.string(), fontStyle: z.string()}), button: z.object({fontSize: z.string(), fontStyle: z.string()})}), backgroundColors: z.object({header: z.string(), item: z.string(), block: z.string(), button: z.string(), productUnit: z.string()}), colors: z.object({headerText: z.string(), productText: z.string(), variantText: z.string(), priceText: z.string(), carouselArrowColor: z.string(), carouselArrowStyle: z.string()}), layout: z.object({headerTextAlign: z.string(), bodyAlign: z.string(), itemTextAlign: z.string(), itemPositionAlign: z.string(), mobile: z.object({rowCount: z.number().int().gte(-9007199254740991).lte(9007199254740991), columnCount: z.number().int().gte(-9007199254740991).lte(9007199254740991)}), desktop: z.object({rowCount: z.number().int().gte(-9007199254740991).lte(9007199254740991), columnCount: z.number().int().gte(-9007199254740991).lte(9007199254740991)})}), appearance: z.object({headerBorderThickness: z.string(), headerBorderStyle: z.string(), headerCornerRadius: z.string(), headerPadding: z.string(), bodySpacing: z.string(), headingToBodySpacing: z.string(), blockBorderThickness: z.string(), blockBorderStyle: z.string(), blockPadding: z.string(), blockCornerRadius: z.string(), productBorderThickness: z.string(), productBorderStyle: z.string(), productCornerRadius: z.string(), productTextSpacing: z.string()})}), upsellProductRules: z.array(z.object({id: z.string(), checkoutBlockId: z.string(), priority: z.number().int().gte(0).lte(9007199254740991), cartTargeting: z.object({id: z.string(), expression: z.array(z.object({query: z.object({key: z.enum(["anything", "productId", "collection", "tag", "cartSubtotal", "cartItemCount", "subscription"]), type: z.enum(["anything", "productId", "collection", "tag", "cartSubtotal", "cartItemCount", "subscription"]), filter: z.enum(["includes", "doesNotInclude", "greaterThan", "lessThan", "equalTo", "greaterThanOrEqual", "lessThanOrEqual", "between"]), value: z.union([z.string(), z.number(), z.record(z.string(), z.array(z.object({variantId: z.string(), inclusionType: z.enum(["include", "exclude"])})))]).optional()}).optional(), operator: z.enum(["and", "or", "start_paren", "end_paren"]).optional()}))}), action: schema0, variationId: z.string()})), agenticLogicPlacementId: z.string().nullable().optional(), agenticLogicRuleId: z.string().nullable().optional()}), z.object({id: z.string(), variationId: z.string(), locationId: z.string(), blockType: z.literal("shippingProgressBar"), blockTemplate: z.enum(["minimal", "milestones"]).nullable().optional(), name: z.string(), displayConditions: z.object({id: z.string(), expression: z.array(z.object({query: z.object({key: z.enum(["anything", "productId", "collection", "tag", "cartSubtotal", "cartItemCount", "subscription"]), type: z.enum(["anything", "productId", "collection", "tag", "cartSubtotal", "cartItemCount", "subscription"]), filter: z.enum(["includes", "doesNotInclude", "greaterThan", "lessThan", "equalTo", "greaterThanOrEqual", "lessThanOrEqual", "between"]), value: z.union([z.string(), z.number(), z.record(z.string(), z.array(z.object({variantId: z.string(), inclusionType: z.enum(["include", "exclude"])})))]).optional()}).optional(), operator: z.enum(["and", "or", "start_paren", "end_paren"]).optional()}))}).optional(), variables: z.object({headerText: z.union([z.string(), z.array(z.object({text: z.string().min(1), bold: z.boolean().optional(), italic: z.boolean().optional(), strike: z.boolean().optional(), link: z.object({href: z.string()}).optional()}))]).optional(), currency: z.string(), template: z.enum(["minimal", "milestones"]), tiers: z.array(z.object({threshold: z.number().gt(0), message: z.union([z.string(), z.array(z.object({text: z.string().min(1), bold: z.boolean().optional(), italic: z.boolean().optional(), strike: z.boolean().optional(), link: z.object({href: z.string()}).optional()}))]), messageComplete: z.union([z.string(), z.array(z.object({text: z.string().min(1), bold: z.boolean().optional(), italic: z.boolean().optional(), strike: z.boolean().optional(), link: z.object({href: z.string()}).optional()}))]), activeIconId: z.string().optional(), inactiveIconId: z.string().optional(), breakpointText: z.union([z.string(), z.array(z.object({text: z.string().min(1), bold: z.boolean().optional(), italic: z.boolean().optional(), strike: z.boolean().optional(), link: z.object({href: z.string()}).optional()}))]).optional()}))}), styles: z.object({typography: z.object({header: z.object({fontSize: z.string(), fontStyle: z.string()}), label: z.object({fontSize: z.string(), fontStyle: z.string()})}), backgroundColors: z.object({header: z.string(), item: z.string(), block: z.string(), milestoneIcon: z.string()}), colors: z.object({headerText: z.string(), labelText: z.string(), barTone: z.string()}), layout: z.object({headerTextAlign: z.string(), bodyAlign: z.string(), itemTextAlign: z.string(), itemPositionAlign: z.string(), messageTextAlign: z.string()}), appearance: z.object({headerBorderThickness: z.string(), headerBorderStyle: z.string(), headerCornerRadius: z.string(), headerPadding: z.string(), bodySpacing: z.string(), headingToBodySpacing: z.string(), blockBorderThickness: z.string(), blockBorderStyle: z.string(), blockPadding: z.string(), blockCornerRadius: z.string(), milestoneIconCornerRadius: z.string(), milestoneIconSize: z.string(), milestoneIconPadding: z.string()})})}), z.object({id: z.string(), variationId: z.string(), locationId: z.string(), blockType: z.literal("timer"), blockTemplate: z.enum(["textCountdown", "digitalClock", "inlinePill"]).nullable().optional(), name: z.string(), displayConditions: z.object({id: z.string(), expression: z.array(z.object({query: z.object({key: z.enum(["anything", "productId", "collection", "tag", "cartSubtotal", "cartItemCount", "subscription"]), type: z.enum(["anything", "productId", "collection", "tag", "cartSubtotal", "cartItemCount", "subscription"]), filter: z.enum(["includes", "doesNotInclude", "greaterThan", "lessThan", "equalTo", "greaterThanOrEqual", "lessThanOrEqual", "between"]), value: z.union([z.string(), z.number(), z.record(z.string(), z.array(z.object({variantId: z.string(), inclusionType: z.enum(["include", "exclude"])})))]).optional()}).optional(), operator: z.enum(["and", "or", "start_paren", "end_paren"]).optional()}))}).optional(), variables: z.object({timerMode: z.enum(["fixedDate", "perVisitor", "recurring"]), endDateTime: z.string().nullable().optional(), durationMinutes: z.number().int().gte(1).lte(9007199254740991), resetIntervalUnit: z.enum(["hour", "day", "week"]).nullable().optional(), resetTimeOfDay: z.string().nullable().optional(), resetDayOfWeek: z.union([z.literal(1), z.literal(2), z.literal(3), z.literal(4), z.literal(5), z.literal(6), z.literal(7)]).nullable().optional(), resetMinuteOfHour: z.number().int().gte(0).lte(59).nullable().optional(), resetTimezone: z.string().nullable().optional(), expiredBehavior: z.enum(["remove", "showText"]), timerTemplate: z.enum(["textCountdown", "digitalClock", "inlinePill"]), showDays: z.boolean(), showHours: z.boolean(), showMinutes: z.boolean(), showSeconds: z.boolean(), countdownText: z.union([z.string(), z.array(z.object({text: z.string().min(1), bold: z.boolean().optional(), italic: z.boolean().optional(), strike: z.boolean().optional(), link: z.object({href: z.string()}).optional()}))]), expiredText: z.union([z.string(), z.array(z.object({text: z.string().min(1), bold: z.boolean().optional(), italic: z.boolean().optional(), strike: z.boolean().optional(), link: z.object({href: z.string()}).optional()}))]), headline: z.union([z.string(), z.array(z.object({text: z.string().min(1), bold: z.boolean().optional(), italic: z.boolean().optional(), strike: z.boolean().optional(), link: z.object({href: z.string()}).optional()}))])}), styles: z.object({typography: z.object({text: z.object({fontSize: z.string(), fontStyle: z.string()})}), backgroundColors: z.object({block: z.string(), expired: z.string()}), colors: z.object({text: z.string(), expiredText: z.string(), digit: z.string()}), layout: z.object({textAlign: z.string()}), appearance: z.object({blockBorderStyle: z.string(), blockBorderThickness: z.string(), blockCornerRadius: z.string(), blockPadding: z.string()}), digits: z.object({separator: z.enum(["colon", "dot", "units"]), size: z.enum(["small", "base"])})})}), z.object({id: z.string(), variationId: z.string(), locationId: z.string(), blockType: z.literal("faqs"), blockTemplate: z.literal("faqsAccordion").nullable().optional(), name: z.string(), displayConditions: z.object({id: z.string(), expression: z.array(z.object({query: z.object({key: z.enum(["anything", "productId", "collection", "tag", "cartSubtotal", "cartItemCount", "subscription"]), type: z.enum(["anything", "productId", "collection", "tag", "cartSubtotal", "cartItemCount", "subscription"]), filter: z.enum(["includes", "doesNotInclude", "greaterThan", "lessThan", "equalTo", "greaterThanOrEqual", "lessThanOrEqual", "between"]), value: z.union([z.string(), z.number(), z.record(z.string(), z.array(z.object({variantId: z.string(), inclusionType: z.enum(["include", "exclude"])})))]).optional()}).optional(), operator: z.enum(["and", "or", "start_paren", "end_paren"]).optional()}))}).optional(), variables: z.object({headerText: z.union([z.string(), z.array(z.object({text: z.string().min(1), bold: z.boolean().optional(), italic: z.boolean().optional(), strike: z.boolean().optional(), link: z.object({href: z.string()}).optional()}))]).optional(), showDivider: z.boolean(), allowMultipleOpen: z.boolean(), questions: z.array(z.object({id: z.string().min(1), question: z.union([z.string(), z.array(z.object({text: z.string().min(1), bold: z.boolean().optional(), italic: z.boolean().optional(), strike: z.boolean().optional(), link: z.object({href: z.string()}).optional()}))]), answer: z.union([z.string(), z.array(z.object({text: z.string().min(1), bold: z.boolean().optional(), italic: z.boolean().optional(), strike: z.boolean().optional(), link: z.object({href: z.string()}).optional()}))]), openByDefault: z.boolean()}))}), styles: z.object({typography: z.object({header: z.object({fontSize: z.string(), fontStyle: z.string()}), question: z.object({fontSize: z.string(), fontStyle: z.string()}), answer: z.object({fontSize: z.string(), fontStyle: z.string()})}), backgroundColors: z.object({header: z.string(), item: z.string(), block: z.string()}), colors: z.object({headerText: z.string(), questionText: z.string(), answerText: z.string()}), layout: z.object({headerTextAlign: z.string(), bodyAlign: z.string(), itemTextAlign: z.string(), itemPositionAlign: z.string()}), appearance: z.object({headerBorderThickness: z.string(), headerBorderStyle: z.string(), headerCornerRadius: z.string(), headerPadding: z.string(), bodySpacing: z.string(), headingToBodySpacing: z.string(), blockBorderThickness: z.string(), blockBorderStyle: z.string(), blockPadding: z.string(), blockCornerRadius: z.string()})})}), z.object({id: z.string(), variationId: z.string(), locationId: z.string(), blockType: z.literal("postPurchaseUpsell"), blockTemplate: z.unknown(), name: z.string(), displayConditions: z.object({id: z.string(), expression: z.array(z.object({query: z.object({key: z.enum(["anything", "productId", "collection", "tag", "cartSubtotal", "cartItemCount", "subscription"]), type: z.enum(["anything", "productId", "collection", "tag", "cartSubtotal", "cartItemCount", "subscription"]), filter: z.enum(["includes", "doesNotInclude", "greaterThan", "lessThan", "equalTo", "greaterThanOrEqual", "lessThanOrEqual", "between"]), value: z.union([z.string(), z.number(), z.record(z.string(), z.array(z.object({variantId: z.string(), inclusionType: z.enum(["include", "exclude"])})))]).optional()}).optional(), operator: z.enum(["and", "or", "start_paren", "end_paren"]).optional()}))}).optional(), variables: z.object({headerText: z.string(), discountType: z.enum(["none", "percentage", "fixed"]), discountValue: z.number().nullable().optional(), compareAtPriceDisplay: z.enum(["none", "compareAtPrice", "regularPrice"]), imageAspectRatio: z.string(), excludeOutOfStock: z.boolean(), excludeItemsInCart: z.boolean(), maxProductLimit: z.number().int().gte(-9007199254740991).lte(9007199254740991), bannerEnabled: z.boolean(), bannerTitle: z.string().optional(), bannerSubtitle: z.string().optional(), customerFirstNameFallback: z.string().optional(), compareAtPriceEnabled: z.boolean(), descriptionEnabled: z.boolean(), quantitySelectorEnabled: z.boolean(), quantityLabel: z.string().optional(), maxQuantityType: z.string().optional(), maxQuantity: z.number().int().gte(-9007199254740991).lte(9007199254740991).optional(), moneyLineEnabled: z.boolean(), moneyLineSubtotal: z.boolean(), moneyLineShipping: z.boolean(), moneyLineTaxes: z.boolean(), primaryButtonText: z.string(), secondaryButtonEnabled: z.boolean(), secondaryButtonText: z.string(), headingLevel: z.string(), countdownTimerEnabled: z.boolean().optional(), timerCheckout: z.object({timerMode: z.enum(["fixedDate", "perVisitor", "recurring"]), endDateTime: z.string().nullable().optional(), durationMinutes: z.number().int().gte(1).lte(9007199254740991), resetIntervalUnit: z.enum(["hour", "day", "week"]).nullable().optional(), resetTimeOfDay: z.string().nullable().optional(), resetDayOfWeek: z.union([z.literal(1), z.literal(2), z.literal(3), z.literal(4), z.literal(5), z.literal(6), z.literal(7)]).nullable().optional(), resetMinuteOfHour: z.number().int().gte(0).lte(59).nullable().optional(), resetTimezone: z.string().nullable().optional(), expiredBehavior: z.enum(["remove", "showText"]), timerTemplate: z.enum(["textCountdown", "digitalClock", "inlinePill"]), showDays: z.boolean(), showHours: z.boolean(), showMinutes: z.boolean(), showSeconds: z.boolean(), countdownText: z.string(), expiredText: z.string(), headline: z.string()}).optional(), offerTimeout: z.number().optional(), discount: z.object({discountType: z.enum(["none", "percentage", "fixed"]), discountValue: z.number().nullable().optional(), compareAtPriceDisplay: z.enum(["none", "compareAtPrice", "regularPrice"])}).optional()}), styles: z.object({typography: z.object({banner: z.object({fontSize: z.string(), fontStyle: z.string()}).optional(), productTitle: z.object({fontSize: z.string(), fontStyle: z.string()}), price: z.object({fontSize: z.string(), fontStyle: z.string()}), description: z.object({fontSize: z.string(), fontStyle: z.string()}).optional(), primaryButton: z.object({fontSize: z.string(), fontStyle: z.string()}), secondaryButton: z.object({fontSize: z.string(), fontStyle: z.string()}).optional()}), backgroundColors: z.object({banner: z.string(), primaryButton: z.string(), secondaryButton: z.string().optional(), countdown: z.string().optional(), expired: z.string().optional()}), colors: z.object({bannerText: z.string().optional(), productText: z.string(), priceText: z.string(), descriptionText: z.string().optional(), primaryButtonText: z.string(), secondaryButtonText: z.string().optional(), expiredText: z.string().optional()}), appearance: z.object({bannerBorderStyle: z.string(), bannerSpacing: z.string(), bannerTextAlign: z.string(), separatorWidth: z.string(), imageFit: z.string(), imageBorder: z.boolean(), pricingAppearance: z.string().optional(), pricingEmphasized: z.boolean(), pricingSubduedStyle: z.boolean().optional(), descriptionSubdued: z.boolean(), secondaryButtonStyle: z.string(), countdownTextAlign: z.string().optional(), countdownBorderStyle: z.string().optional(), countdownSpacing: z.string().optional()})}), upsellProductRules: z.array(z.object({id: z.string(), checkoutBlockId: z.string(), priority: z.number().int().gte(0).lte(9007199254740991), cartTargeting: z.object({id: z.string(), expression: z.array(z.object({query: z.object({key: z.enum(["anything", "productId", "collection", "tag", "cartSubtotal", "cartItemCount", "subscription"]), type: z.enum(["anything", "productId", "collection", "tag", "cartSubtotal", "cartItemCount", "subscription"]), filter: z.enum(["includes", "doesNotInclude", "greaterThan", "lessThan", "equalTo", "greaterThanOrEqual", "lessThanOrEqual", "between"]), value: z.union([z.string(), z.number(), z.record(z.string(), z.array(z.object({variantId: z.string(), inclusionType: z.enum(["include", "exclude"])})))]).optional()}).optional(), operator: z.enum(["and", "or", "start_paren", "end_paren"]).optional()}))}), action: schema0, variationId: z.string()})), agenticLogicPlacementId: z.string().nullable().optional(), agenticLogicRuleId: z.string().nullable().optional()})])).optional(), cartTargeting: z.array(z.object({id: z.string(), expression: z.array(z.object({query: z.object({key: z.enum(["anything", "productId", "collection", "tag", "cartSubtotal", "cartItemCount", "subscription"]), type: z.enum(["anything", "productId", "collection", "tag", "cartSubtotal", "cartItemCount", "subscription"]), filter: z.enum(["includes", "doesNotInclude", "greaterThan", "lessThan", "equalTo", "greaterThanOrEqual", "lessThanOrEqual", "between"]), value: z.union([z.string(), z.number(), z.record(z.string(), z.array(z.object({variantId: z.string(), inclusionType: z.enum(["include", "exclude"])})))]).optional()}).optional(), operator: z.enum(["and", "or", "start_paren", "end_paren"]).optional()}))})).optional(), components: z.array(z.object({id: z.string(), variationId: z.string(), config: z.union([z.object({type: z.literal("onsiteUpsell"), placement: z.object({selector: z.string().optional(), insertType: z.enum(["beforebegin", "afterbegin", "beforeend", "afterend"]).optional(), anchorKey: z.string().optional(), location: z.enum(["pdp", "cart"])}), template: z.string(), maxProductLimit: z.number().int().gte(-9007199254740991).lte(9007199254740991), excludeOutOfStock: z.boolean(), excludeItemsInCart: z.boolean(), excludePdpProduct: z.boolean(), discount: z.object({discountType: z.enum(["none", "percentage", "fixed"]), discountValue: z.number().nullable().optional(), compareAtPriceDisplay: z.enum(["none", "compareAtPrice", "regularPrice"])}).optional(), rules: z.array(z.object({id: z.string(), priority: z.number().int().gte(-9007199254740991).lte(9007199254740991), action: z.array(z.object({query: z.object({key: z.enum(["shopifyRecommendations", "productId", "collection", "tag"]), type: z.enum(["shopifyRecommendations", "productId", "collection", "tag"]), filter: z.enum(["includes", "doesNotInclude"]).optional(), value: z.union([z.string(), z.number(), z.array(z.object({order: z.number(), productId: z.string(), productTitle: z.string(), handle: z.string().nullable().optional(), productImage: z.string().nullable().optional(), description: z.string().nullable().optional(), options: z.array(z.object({name: z.string(), values: z.array(z.string())})).optional(), variants: z.array(z.object({variantId: z.string(), variantTitle: z.string(), variantImage: z.string().nullable().optional(), price: z.number(), compareAtPrice: z.number().nullable().optional(), currencyCode: z.string().optional(), availableForSale: z.boolean().optional(), sig: z.string().nullable().optional(), inclusionType: z.enum(["include", "exclude"]), variantOptions: z.array(z.object({name: z.string(), value: z.string()})).optional()})), defaultVariantId: z.string().nullable().optional()}))]).optional()}).optional(), operator: z.enum(["and", "or", "start_paren", "end_paren"]).optional()})), targeting: z.union([z.object({type: z.literal("cart"), expression: z.array(z.object({query: z.object({key: z.enum(["anything", "productId", "collection", "tag", "cartSubtotal", "cartItemCount", "subscription"]), type: z.enum(["anything", "productId", "collection", "tag", "cartSubtotal", "cartItemCount", "subscription"]), filter: z.enum(["includes", "doesNotInclude", "greaterThan", "lessThan", "equalTo", "greaterThanOrEqual", "lessThanOrEqual", "between"]), value: z.union([z.string(), z.number(), z.record(z.string(), z.array(z.object({variantId: z.string(), inclusionType: z.enum(["include", "exclude"])})))]).optional()}).optional(), operator: z.enum(["and", "or", "start_paren", "end_paren"]).optional()}))}), z.object({type: z.literal("product"), expression: z.array(z.object({query: z.object({key: z.enum(["productId", "collection", "tag", "price", "inventory"]), value: z.union([z.string(), z.number()]), filter: z.enum(["includes", "doesNotInclude", "greaterThan", "lessThan"]), type: z.enum(["productId", "collection", "tag", "price", "inventory"])}).optional(), operator: z.enum(["and", "or", "start_paren", "end_paren"]).optional()}))})])})), agenticLogicPlacementId: z.string().nullable().optional(), agenticLogicRuleId: z.string().nullable().optional()}), z.object({type: z.literal("bundleOnsiteUpsell"), placement: z.object({selector: z.string().optional(), insertType: z.enum(["beforebegin", "afterbegin", "beforeend", "afterend"]).optional(), anchorKey: z.string().optional(), location: z.enum(["pdp", "cart"])}), template: z.string(), copy: z.object({heading: z.string(), subheading: z.string().optional(), buttonText: z.string(), rowBadgeLabel: z.string().optional(), savedLabel: z.string().optional(), sublineToNextTier: z.string().optional(), sublineAtTopTier: z.string().optional()}), maxProductLimit: z.number().int().gte(-9007199254740991).lte(9007199254740991), allowItemSelection: z.boolean(), excludeOutOfStock: z.boolean(), excludeItemsInCart: z.boolean(), excludePdpProduct: z.boolean(), discount: z.object({discountType: z.enum(["none", "percentage", "fixed"]), discountTiers: z.array(z.object({minimumProducts: z.number().int().gte(1).lte(9007199254740991), value: z.number()})), compareAtPriceDisplay: z.enum(["none", "compareAtPrice", "regularPrice"])}).optional(), rules: z.array(z.object({id: z.string(), priority: z.number().int().gte(-9007199254740991).lte(9007199254740991), action: z.array(z.object({query: z.object({key: z.enum(["shopifyRecommendations", "productId", "collection", "tag"]), type: z.enum(["shopifyRecommendations", "productId", "collection", "tag"]), filter: z.enum(["includes", "doesNotInclude"]).optional(), value: z.union([z.string(), z.number(), z.array(z.object({order: z.number(), productId: z.string(), productTitle: z.string(), handle: z.string().nullable().optional(), productImage: z.string().nullable().optional(), description: z.string().nullable().optional(), options: z.array(z.object({name: z.string(), values: z.array(z.string())})).optional(), variants: z.array(z.object({variantId: z.string(), variantTitle: z.string(), variantImage: z.string().nullable().optional(), price: z.number(), compareAtPrice: z.number().nullable().optional(), currencyCode: z.string().optional(), availableForSale: z.boolean().optional(), sig: z.string().nullable().optional(), inclusionType: z.enum(["include", "exclude"]), variantOptions: z.array(z.object({name: z.string(), value: z.string()})).optional()})), defaultVariantId: z.string().nullable().optional()}))]).optional()}).optional(), operator: z.enum(["and", "or", "start_paren", "end_paren"]).optional()})), targeting: z.union([z.object({type: z.literal("cart"), expression: z.array(z.object({query: z.object({key: z.enum(["anything", "productId", "collection", "tag", "cartSubtotal", "cartItemCount", "subscription"]), type: z.enum(["anything", "productId", "collection", "tag", "cartSubtotal", "cartItemCount", "subscription"]), filter: z.enum(["includes", "doesNotInclude", "greaterThan", "lessThan", "equalTo", "greaterThanOrEqual", "lessThanOrEqual", "between"]), value: z.union([z.string(), z.number(), z.record(z.string(), z.array(z.object({variantId: z.string(), inclusionType: z.enum(["include", "exclude"])})))]).optional()}).optional(), operator: z.enum(["and", "or", "start_paren", "end_paren"]).optional()}))}), z.object({type: z.literal("product"), expression: z.array(z.object({query: z.object({key: z.enum(["productId", "collection", "tag", "price", "inventory"]), value: z.union([z.string(), z.number()]), filter: z.enum(["includes", "doesNotInclude", "greaterThan", "lessThan"]), type: z.enum(["productId", "collection", "tag", "price", "inventory"])}).optional(), operator: z.enum(["and", "or", "start_paren", "end_paren"]).optional()}))})])})), agenticLogicPlacementId: z.string().nullable().optional(), agenticLogicRuleId: z.string().nullable().optional()})])})).optional()})), createdAtTs: z.number(), isDeleted: z.boolean().optional(), shippingTestMethodDefinitions: z.array(z.union([z.object({id: z.string().optional(), shippingModel: z.literal("legacy").optional(), deliveryProfileId: z.string(), deliveryLocationGroupId: z.string(), deliveryZoneId: z.string(), methodDefinitionId: z.string().nullable().optional(), canonicalMethodId: z.string().optional(), deleteTargetKind: z.enum(["canonical_method", "participant_method", "synthetic_free_condition", "synthetic_rate_definition"]).optional(), deleteTargetRateDefinitionId: z.string().optional(), deleteTargetFreeCondition: z.object({subject: z.string(), min: z.union([z.object({__typename: z.literal("MoneyV2"), amount: z.string(), currencyCode: z.string().nullable().optional()}), z.object({__typename: z.literal("Weight"), unit: z.string(), value: z.number()})]).nullable().optional(), max: z.union([z.object({__typename: z.literal("MoneyV2"), amount: z.string(), currencyCode: z.string().nullable().optional()}), z.object({__typename: z.literal("Weight"), unit: z.string(), value: z.number()})]).nullable().optional()}).optional()}), z.object({id: z.string().optional(), shippingModel: z.literal("markets"), marketTarget: z.union([z.object({marketId: z.string(), optionId: z.string().min(1), optionType: z.enum(["flat_rate", "value_based", "weight_based", "carrier_calculated"]), kind: z.literal("option")}), z.object({marketId: z.string(), optionId: z.string().min(1), optionType: z.enum(["flat_rate", "value_based", "weight_based", "carrier_calculated"]), kind: z.literal("rate_group"), rateGroupId: z.string().min(1)}), z.object({marketId: z.string(), optionId: z.string().min(1), optionType: z.enum(["flat_rate", "value_based", "weight_based"]), kind: z.literal("rate"), rateGroupId: z.string().min(1), rateId: z.string().min(1)}), z.object({marketId: z.string(), optionId: z.string().min(1), optionType: z.enum(["flat_rate", "value_based", "weight_based", "carrier_calculated"]), kind: z.literal("free_shipping_threshold")})])})])), shippingCarrierProvider: z.enum(["intelligems", "custom"]), audience: z.object({id: z.string(), experienceId: z.string(), enabled: z.boolean(), excludeCurrency: z.object({exclude: z.boolean(), currency: z.string().nullable(), country: z.string().optional(), region: z.string().optional(), city: z.string().optional()}), wholesale: z.boolean(), audienceType: z.enum(["common", "custom", "advanced"]).optional(), elseAction: z.enum(["experienceInclude", "experienceExclude", "experienceUnassigned", "assignVariation", "randomVariation", "leaveUnassigned"]).nullable(), elseVariationId: z.string().nullable().optional(), elseExcludeFromAnalytics: z.boolean(), filters: z.array(z.object({id: z.string(), priority: z.number().int().gte(-9007199254740991).lte(9007199254740991), action: z.enum(["experienceInclude", "experienceExclude", "experienceUnassigned", "assignVariation", "randomVariation", "leaveUnassigned"]).nullable(), filterType: z.enum(["utm", "url", "urlPath", "device", "visitor", "purchaseLikelihood", "jsExpression", "trafficSource", "country", "referrer", "cookie", "klaviyo", "landingPage"]), expression: z.array(z.object({query: z.object({key: z.string(), value: z.string(), filter: z.enum(["equals", "contains", "startsWith", "endsWith", "doesNotEqual", "doesNotContain", "doesNotStartWith", "doesNotEndWith", "isNull", "isNotNull", "regex"]).nullable().optional(), type: z.enum(["utm", "url", "urlPath", "device", "visitor", "purchaseLikelihood", "jsExpression", "trafficSource", "country", "referrer", "cookie", "klaviyo", "landingPage"])}).optional(), operator: z.enum(["and", "or", "start_paren", "end_paren"]).optional()})).nullable().optional(), expressionType: z.enum(["common", "custom"]).nullable().optional(), variationId: z.string().nullable().optional(), excludeFromAnalytics: z.boolean()})), evaluationFrequency: z.number().nullable().optional()}).nullable().optional(), lastUpdateTs: z.number(), previewPath: z.string().nullable().optional(), isExternal: z.boolean().nullable().optional(), startedAtTs: z.number().nullable(), pausedAtTs: z.number().nullable(), archivedAtTs: z.number().nullable().optional(), requiresLink: z.boolean(), linkBaseUrl: z.string().nullable(), endedAtTs: z.number().nullable(), productVariantCount: z.number(), sourceExperienceId: z.string().nullable().optional(), sourceAction: z.enum(["duplicate", "rollout"]).nullable().optional(), experienceAnalysis: z.object({analyticsViewType: z.enum(["test_orders_only", "sitewide_orders", "none"])})}).nullable()}); export const validateResponse = async ( schema: { readonly '~standard': { readonly validate: (value: unknown) => ({ readonly value: Output; readonly issues?: undefined } | { readonly issues: ReadonlyArray<{ readonly message: string; readonly path?: ReadonlyArray | undefined }> }) | Promise<{ readonly value: Output; readonly issues?: undefined } | { readonly issues: ReadonlyArray<{ readonly message: string; readonly path?: ReadonlyArray | undefined }> }> } }, value: unknown ): Promise => { const result = await schema['~standard'].validate(value) if (result.issues !== undefined) { const detail = result.issues .map(({ message, path }) => path?.length ? `${path.map((segment) => String(typeof segment === 'object' ? segment.key : segment)).join('.')}: ${message}` : message ) .join('; ') throw new Error(`Response does not match the schema: ${detail}`, { cause: { issues: result.issues } }) } return result.value }; /** * Perform experience action * * POST /v25-10-beta/experiences/{experienceId}/actions/{action} */ export const createApiV2510BetaExperiencesExperienceIdActionsAction = async (args: CreateApiV2510BetaExperiencesExperienceIdActionsActionArgs, options?: CreateApiV2510BetaExperiencesExperienceIdActionsActionOptions) => { const {baseUrl = "https://api.intelligems.io", fetch: fetchFn = fetch, intelligemsAccessToken} = options ?? {} const query = new URLSearchParams() const headers = new Headers() headers.set('content-type', "application/json") headers.set('accept', "application/json") if (intelligemsAccessToken !== undefined) headers.set("intelligems-access-token", intelligemsAccessToken) const url = `${baseUrl.replace(/\/+$/, '')}/v25-10-beta/experiences/${encodeURIComponent(String(args.experienceId))}/actions/${encodeURIComponent(String(args.action))}${query.size > 0 ? `?${query}` : ''}` const res = await fetchFn(url, {method: "POST", headers, body: JSON.stringify(args.body)}) if (!res.ok) throw new Error(`Request failed with status ${res.status}`, {cause: {status: res.status, body: await res.text()}}) return validateResponse(createApiV2510BetaExperiencesExperienceIdActionsActionResponse, await res.json()) };