{"version":3,"sources":["../../src/stores-catalog-v3-read-only-variant-read-only-variants-v-3.http.ts","../../src/stores-catalog-v3-read-only-variant-read-only-variants-v-3.types.ts","../../src/stores-catalog-v3-read-only-variant-read-only-variants-v-3.meta.ts"],"sourcesContent":["import { transformSDKFloatToRESTFloat } from '@wix/sdk-runtime/transformations/float';\nimport { transformRESTFloatToSDKFloat } from '@wix/sdk-runtime/transformations/float';\nimport { transformRESTTimestampToSDKTimestamp } from '@wix/sdk-runtime/transformations/timestamp';\nimport { transformPaths } from '@wix/sdk-runtime/transformations/transform-paths';\nimport { resolveUrl } from '@wix/sdk-runtime/rest-modules';\nimport { ResolveUrlOpts } from '@wix/sdk-runtime/rest-modules';\nimport { RequestOptionsFactory } from '@wix/sdk-types';\n\nconst TRANSFORM_PATHS_0 = [\n  { path: 'variants.physicalProperties.weight' },\n  { path: 'variants.physicalProperties.pricePerUnit.settings.quantity' },\n  { path: 'variants.revenueDetails.profitMargin' },\n];\nconst TRANSFORM_PATHS_1 = [\n  { path: 'variants.media.image.urlExpirationDate' },\n  { path: 'variants.media.video.urlExpirationDate' },\n  { path: 'variants.media.video.resolutions.urlExpirationDate' },\n  { path: 'variants.media.video.resolutions.poster.urlExpirationDate' },\n  { path: 'variants.media.video.posters.urlExpirationDate' },\n  { path: 'variants.productData.updatedDate' },\n];\nconst TRANSFORM_PATHS_2 = [\n  { path: 'search.aggregations.range.buckets.from' },\n  { path: 'search.aggregations.range.buckets.to' },\n  { path: 'search.aggregations.nested.nestedAggregations.range.buckets.from' },\n  { path: 'search.aggregations.nested.nestedAggregations.range.buckets.to' },\n];\nconst TRANSFORM_PATHS_3 = [\n  { path: 'variants.physicalProperties.weight' },\n  { path: 'aggregationData.results.ranges.results.from' },\n  { path: 'aggregationData.results.ranges.results.to' },\n  {\n    path: 'aggregationData.results.groupedByValue.results.nestedResults.ranges.results.from',\n  },\n  {\n    path: 'aggregationData.results.groupedByValue.results.nestedResults.ranges.results.to',\n  },\n  { path: 'aggregationData.results.nested.results.results.*.range.from' },\n  { path: 'aggregationData.results.nested.results.results.*.range.to' },\n  { path: 'variants.physicalProperties.pricePerUnit.settings.quantity' },\n  { path: 'variants.revenueDetails.profitMargin' },\n  { path: 'aggregationData.results.scalar.value' },\n  {\n    path: 'aggregationData.results.groupedByValue.results.nestedResults.scalar.value',\n  },\n  { path: 'aggregationData.results.nested.results.results.*.scalar.value' },\n];\n\nfunction resolveComWixStoresCatalogProductVariantsReaderApiV3ProductVariantsReaderUrl(\n  opts: Omit<ResolveUrlOpts, 'domainToMappings'>\n) {\n  const domainToMappings = {\n    'api._api_base_domain_': [\n      {\n        srcPath: '/product-variants-reader',\n        destPath: '',\n      },\n    ],\n    'www.wixapis.com': [\n      {\n        srcPath: '/stores/v3/products/query-variants',\n        destPath: '/v3/products/query-variants',\n      },\n      {\n        srcPath: '/stores/v3/products/search-variants',\n        destPath: '/v3/products/search-variants',\n      },\n    ],\n    _: [\n      {\n        srcPath: '/_api/product-variants-reader',\n        destPath: '',\n      },\n    ],\n    '*.dev.wix-code.com': [\n      {\n        srcPath: '/_api/product-variants-reader',\n        destPath: '',\n      },\n    ],\n    'manage._base_domain_': [\n      {\n        srcPath: '/product-variants-reader',\n        destPath: '',\n      },\n    ],\n  };\n\n  return resolveUrl(Object.assign(opts, { domainToMappings }));\n}\n\nconst PACKAGE_NAME = '@wix/auto_sdk_stores_read-only-variants-v-3';\n\n/**\n * Retrieve product variants using structured queries with cursor-based pagination.\n *\n * Use this endpoint for simple filtering operations on `productData.productId` and variant identifiers.\n * The `id` field is deprecated and is not globally unique by itself. Use `productData.productId`\n * together with `variantId` as the unique variant key.\n * For complex queries with free-text search and aggregations, use Search Variants instead.\n *\n * Up to 1,000 variants can be returned per request.\n *\n * To learn about working with _Query_ endpoints, see\n * [API Query Language](https://dev.wix.com/docs/api-reference/articles/work-with-wix-apis/data-retrieval/about-the-wix-api-query-language),\n * and [Sorting and Paging](https://dev.wix.com/docs/api-reference/articles/work-with-wix-apis/data-retrieval/about-sorting-and-paging).\n *\n * Learn more about the differences between [_Query_ and _Search_](https://dev.wix.com/docs/api-reference/articles/work-with-wix-apis/data-retrieval/about-search-query-and-list-methods) methods.\n */\nexport function queryVariants(payload: object): RequestOptionsFactory<any> {\n  function __queryVariants({ host }: any) {\n    const metadata = {\n      entityFqdn: 'wix.stores.catalog.v3.read_only_variant',\n      method: 'POST' as any,\n      methodFqn:\n        'com.wix.stores.catalog.product.variants.reader.api.v3.ProductVariantsReader.QueryVariants',\n      packageName: PACKAGE_NAME,\n      migrationOptions: {\n        optInTransformResponse: true,\n      },\n      url: resolveComWixStoresCatalogProductVariantsReaderApiV3ProductVariantsReaderUrl(\n        { protoPath: '/v3/products/query-variants', data: payload, host }\n      ),\n      data: payload,\n      transformResponse: (payload: any) =>\n        transformPaths(payload, [\n          {\n            transformFn: transformRESTFloatToSDKFloat,\n            paths: TRANSFORM_PATHS_0,\n          },\n          {\n            transformFn: transformRESTTimestampToSDKTimestamp,\n            paths: TRANSFORM_PATHS_1,\n          },\n        ]),\n    };\n\n    return metadata;\n  }\n\n  return __queryVariants;\n}\n\n/**\n * Search product variants using free-text search with advanced query capabilities.\n *\n * Use this endpoint for complex queries that include free-text search, aggregations,\n * or when you need faceted search results. For simple filtering, use Query Variants instead.\n *\n * To learn about working with _Search_ methods, see\n * [API Query Language](https://dev.wix.com/docs/api-reference/articles/work-with-wix-apis/data-retrieval/about-the-wix-api-query-language)\n * and [Sorting and Paging](https://dev.wix.com/docs/api-reference/articles/work-with-wix-apis/data-retrieval/about-sorting-and-paging).\n *\n * Learn more about the differences between [_Query_ and _Search_](https://dev.wix.com/docs/api-reference/articles/work-with-wix-apis/data-retrieval/about-search-query-and-list-methods) methods.\n *\n * When `search.sort` is empty (first request of a cursor search), results are ordered by\n * `productData.updatedDate` (descending), then `productData.productId` (ascending), then `variantId` (ascending).\n *\n * > **Note:** Non-visible variants, and variants related to non-visible products are filtered from results if you don't have permissions to read hidden products.\n */\nexport function searchVariants(payload: object): RequestOptionsFactory<any> {\n  function __searchVariants({ host }: any) {\n    const serializedData = transformPaths(payload, [\n      {\n        transformFn: transformSDKFloatToRESTFloat,\n        paths: TRANSFORM_PATHS_2,\n      },\n    ]);\n    const metadata = {\n      entityFqdn: 'wix.stores.catalog.v3.read_only_variant',\n      method: 'POST' as any,\n      methodFqn:\n        'com.wix.stores.catalog.product.variants.reader.api.v3.ProductVariantsReader.SearchVariants',\n      packageName: PACKAGE_NAME,\n      migrationOptions: {\n        optInTransformResponse: true,\n      },\n      url: resolveComWixStoresCatalogProductVariantsReaderApiV3ProductVariantsReaderUrl(\n        {\n          protoPath: '/v3/products/search-variants',\n          data: serializedData,\n          host,\n        }\n      ),\n      data: serializedData,\n      transformResponse: (payload: any) =>\n        transformPaths(payload, [\n          {\n            transformFn: transformRESTFloatToSDKFloat,\n            paths: TRANSFORM_PATHS_3,\n          },\n          {\n            transformFn: transformRESTTimestampToSDKTimestamp,\n            paths: TRANSFORM_PATHS_1,\n          },\n        ]),\n    };\n\n    return metadata;\n  }\n\n  return __searchVariants;\n}\n","/**\n * A read-only representation of a product variant with enhanced query capabilities.\n *\n * Product variants represent different options of a product, such as size, color, or material combinations.\n * This read-only variant provides direct access to variant data without requiring nested product queries,\n * making it ideal for inventory management, variant comparison, and e-commerce catalog displays.\n *\n * The variant includes both variant-specific information (like SKU, price, and option choices), as well as\n * contextual product information (like product name, visibility, categories) for convenience.\n */\nexport interface ReadOnlyVariant extends ReadOnlyVariantTypedPropertiesOneOf {\n  /**\n   * Physical properties such as weight and dimensions.\n   *\n   * Required when the product type is `PHYSICAL`.\n   */\n  physicalProperties?: VariantPhysicalProperties;\n  /**\n   * Digital properties such as downloadable files.\n   *\n   * Required when the product type is `DIGITAL`.\n   */\n  digitalProperties?: VariantDigitalProperties;\n  /**\n   * Deprecated. Use `variantId` together with `productData.productId` as the unique variant key.\n   * @format GUID\n   * @readonly\n   * @deprecated Deprecated. Use `variantId` together with `productData.productId` as the unique variant key.\n   * @replacedBy product_data.product_id, variant_id\n   * @targetRemovalDate 2026-12-31\n   */\n  id?: string;\n  /**\n   * Whether the variant is visible to site visitors.\n   *\n   * Default: `true`\n   * @readonly\n   */\n  visible?: boolean | null;\n  /**\n   * Stock keeping unit (SKU) for inventory tracking and identification.\n   *\n   * The SKU is typically used for inventory management, order fulfillment, and product identification\n   * across different systems.\n   * @minLength 1\n   * @maxLength 40\n   * @readonly\n   */\n  sku?: string | null;\n  /**\n   * Barcode for the variant, typically used for point-of-sale systems and inventory management.\n   *\n   * Common barcode formats include UPC, EAN, and Code 128. The barcode helps with\n   * quick product identification and checkout processes.\n   * @minLength 1\n   * @maxLength 40\n   * @readonly\n   */\n  barcode?: string | null;\n  /**\n   * Product option choices that define this variant.\n   *\n   * Each option choice represents a specific selection for a product option (like \"Size: Large\" or \"Color: Red\").\n   * An empty list indicates this is the default variant of a product with no managed options.\n   * @maxSize 6\n   * @readonly\n   */\n  optionChoices?: OptionChoice[];\n  /**\n   * Pricing information for the variant.\n   * @readonly\n   */\n  price?: PriceInfo;\n  /**\n   * Revenue and cost details for business analytics.\n   *\n   * Includes cost, profit, and profit margin calculations.\n   * Returned only when you pass `\"MERCHANT_DATA\"` to the `fields` parameter.\n   * @readonly\n   */\n  revenueDetails?: RevenueDetails;\n  /**\n   * Media associated with the variant.\n   *\n   * Typically includes images, videos, or other media files specific to this variant.\n   * @readonly\n   */\n  media?: ProductMedia;\n  /**\n   * Subscription pricing information when the variant is part of subscription plans.\n   *\n   * Shows calculated prices after applying subscription discounts to the variant's price.\n   * Returned only when you pass `\"SUBSCRIPTION_PRICES_INFO\"` to the `fields` parameter.\n   * @readonly\n   */\n  subscriptionPricesInfo?: SubscriptionPricesInfo;\n  /**\n   * Current inventory and availability status.\n   * @readonly\n   */\n  inventoryStatus?: InventoryStatus;\n  /**\n   * Product information for context and convenience.\n   *\n   * Includes essential product details like name, visibility, and categories to avoid\n   * requiring separate product API calls when working with variants.\n   * @readonly\n   */\n  productData?: ProductFields;\n  /**\n   * Internal metadata for system use.\n   * @internal\n   * @readonly\n   */\n  internalMetadata?: InternalMetadata;\n  /**\n   * Variant listing status by location.\n   *\n   * Maps location ID to the listing status of the variant.\n   * @internal\n   * @readonly\n   */\n  locations?: Record<string, LocationListing>;\n  /**\n   * Variant ID. Not guaranteed to be unique across products, so it should be\n   * used together with `productData.productId` as the unique variant key.\n   * @format GUID\n   * @readonly\n   */\n  variantId?: string;\n  /**\n   * Automatic discount information applied to this variant's product.\n   *\n   * Contains the names of active automatic discount rules.\n   * Returned only when you pass `\"DISCOUNT_INFO\"` to the `fields` parameter.\n   * @internal\n   * @readonly\n   */\n  discountInfo?: DiscountInfo;\n}\n\n/** @oneof */\nexport interface ReadOnlyVariantTypedPropertiesOneOf {\n  /**\n   * Physical properties such as weight and dimensions.\n   *\n   * Required when the product type is `PHYSICAL`.\n   */\n  physicalProperties?: VariantPhysicalProperties;\n  /**\n   * Digital properties such as downloadable files.\n   *\n   * Required when the product type is `DIGITAL`.\n   */\n  digitalProperties?: VariantDigitalProperties;\n}\n\nexport interface OptionChoice {\n  /**\n   * Option and choice identifiers.\n   * @readonly\n   */\n  optionChoiceIds?: OptionChoiceIds;\n  /**\n   * Human-readable option and choice names.\n   * @readonly\n   */\n  optionChoiceNames?: OptionChoiceNames;\n}\n\nexport interface OptionChoiceIds {\n  /**\n   * Product option ID.\n   * @minLength 1\n   * @maxLength 36\n   * @readonly\n   */\n  optionId?: string;\n  /**\n   * Specific choice ID within the option.\n   * @format GUID\n   * @readonly\n   */\n  choiceId?: string;\n}\n\nexport interface OptionChoiceNames {\n  /**\n   * Display name of the product option.\n   *\n   * For example, \"Size\", \"Color\", or \"Material\".\n   * @minLength 1\n   * @maxLength 50\n   * @readonly\n   */\n  optionName?: string;\n  /**\n   * Display name of the chosen option value.\n   *\n   * For example, \"Large\", \"Red\", or \"Cotton\".\n   * @minLength 1\n   * @maxLength 50\n   * @readonly\n   */\n  choiceName?: string;\n  /**\n   * Visual representation style for the option choice.\n   *\n   * Determines how the option is displayed in the product selector UI.\n   * Common values include \"TEXT_CHOICES\", \"COLOR_CHOICES\", or \"IMAGE_CHOICES\".\n   * @readonly\n   * @maxLength 50\n   */\n  renderType?: string;\n}\n\nexport interface PriceInfo {\n  /**\n   * Current selling price of the variant.\n   * @readonly\n   */\n  actualPrice?: FixedMonetaryAmount;\n  /**\n   * Original price before any discounts.\n   *\n   * Used to show customers the savings when the variant is on sale.\n   * If not set, no original price is displayed.\n   * @readonly\n   */\n  compareAtPrice?: FixedMonetaryAmount;\n  /**\n   * Price after applying automatic discounts.\n   *\n   * Calculated by applying the best automatic discount rule to the variant's actual price.\n   * Returned only when you pass `\"DISCOUNT_INFO\"` to the `fields` parameter.\n   * @internal\n   * @readonly\n   */\n  priceAfterDiscount?: FixedMonetaryAmount;\n}\n\nexport interface FixedMonetaryAmount {\n  /**\n   * Monetary amount. For example, `\"3.99\"`, or `\"-4.99\"` for a negative amount.\n   * @decimalValue options { gte:0, lte:999999999.99, maxScale:3 }\n   * @readonly\n   */\n  amount?: string;\n  /**\n   * Formatted monetary amount. For example, `\"$3.99\"`.\n   * > **Note:** Returned only when you pass `\"CURRENCY\"` to the `fields` array in Read-Only Variants API requests.\n   * @readonly\n   * @maxLength 20\n   */\n  formattedAmount?: string | null;\n}\n\nexport interface RevenueDetails {\n  /**\n   * Cost of the variant for profit calculations.\n   *\n   * The amount you pay to produce or acquire this variant.\n   * @readonly\n   */\n  cost?: FixedMonetaryAmount;\n  /**\n   * Profit amount calculated by subtracting cost from the discounted price.\n   * @readonly\n   */\n  profit?: FixedMonetaryAmount;\n  /**\n   * Profit margin as a percentage of the selling price.\n   *\n   * Calculated by dividing profit by the discounted price. The result is rounded to 4 decimal places.\n   * A value of 0.25 represents a 25% profit margin.\n   * @readonly\n   * @max 1\n   */\n  profitMargin?: number;\n}\n\nexport interface ProductMedia\n  extends ProductMediaSetByOneOf,\n    ProductMediaMediaOneOf {\n  /**\n   * ID of existing media from Wix Media Manager.\n   * @minLength 1\n   * @maxLength 200\n   * @readonly\n   */\n  id?: string;\n  /**\n   * Media URL.\n   * @format WEB_URL\n   * @readonly\n   */\n  url?: string;\n  /**\n   * Product image.\n   * @readonly\n   */\n  image?: Image;\n  /**\n   * Product video.\n   * @readonly\n   */\n  video?: VideoV2;\n  /**\n   * Image alt text.\n   * @minLength 1\n   * @maxLength 1000\n   * @readonly\n   */\n  altText?: string | null;\n  /**\n   * Media display name.\n   * Allows to override the default media name. Can be passed only when `setBy: url`.\n   * @maxLength 80\n   * @readonly\n   */\n  displayName?: string | null;\n  /**\n   * Media type.\n   * @readonly\n   */\n  mediaType?: MediaTypeWithLiterals;\n  /**\n   * Media thumbnail.\n   * @readonly\n   */\n  thumbnail?: Thumbnail;\n  /**\n   * ID used to upload media to Wix Media Manager.\n   * @readonly\n   * @format GUID\n   */\n  uploadId?: string;\n}\n\n/** @oneof */\nexport interface ProductMediaSetByOneOf {\n  /**\n   * ID of existing media from Wix Media Manager.\n   * @minLength 1\n   * @maxLength 200\n   * @readonly\n   */\n  id?: string;\n  /**\n   * Media URL.\n   * @format WEB_URL\n   * @readonly\n   */\n  url?: string;\n}\n\n/** @oneof */\nexport interface ProductMediaMediaOneOf {\n  /**\n   * Product image.\n   * @readonly\n   */\n  image?: Image;\n  /**\n   * Product video.\n   * @readonly\n   */\n  video?: VideoV2;\n}\n\nexport interface Image {\n  /**\n   * WixMedia image ID.\n   * @maxLength 400\n   */\n  id?: string;\n  /**\n   * Image URL.\n   * @format WEB_URL\n   */\n  url?: string;\n  /**\n   * Original image height.\n   * @readonly\n   */\n  height?: number;\n  /**\n   * Original image width.\n   * @readonly\n   */\n  width?: number;\n  /**\n   * Image alt text.\n   * @maxLength 200\n   */\n  altText?: string | null;\n  /**\n   * Image URL expiration date (when relevant).\n   * @internal\n   * @readonly\n   */\n  urlExpirationDate?: Date | null;\n  /**\n   * Image filename.\n   * @readonly\n   * @maxLength 200\n   */\n  filename?: string | null;\n  /**\n   * Image size in bytes.\n   * @internal\n   * @readonly\n   * @maxLength 1000000000\n   */\n  sizeInBytes?: string | null;\n}\n\nexport interface VideoV2 {\n  /**\n   * WixMedia ID.\n   * @maxLength 400\n   */\n  id?: string;\n  /**\n   * Original video URL.\n   * @internal\n   * @format WEB_URL\n   */\n  url?: string;\n  /**\n   * Available resolutions for the video, starting with the optimal resolution.\n   * @readonly\n   * @maxSize 100\n   */\n  resolutions?: VideoResolution[];\n  /**\n   * Video filename.\n   * @readonly\n   * @maxLength 200\n   */\n  filename?: string | null;\n  /**\n   * Video posters.\n   * @internal\n   * @readonly\n   * @maxSize 10\n   */\n  posters?: Image[];\n  /**\n   * Original video size in bytes.\n   * @internal\n   * @readonly\n   * @maxLength 1000000000\n   */\n  sizeInBytes?: string | null;\n  /**\n   * Video URL expiration date (when relevant).\n   * @internal\n   * @readonly\n   */\n  urlExpirationDate?: Date | null;\n  /**\n   * Original video duration in milliseconds.\n   * @internal\n   * @readonly\n   */\n  durationInMilliseconds?: number | null;\n}\n\nexport interface VideoResolution {\n  /**\n   * Video URL.\n   * @format WEB_URL\n   */\n  url?: string;\n  /** Video height. */\n  height?: number;\n  /** Video width. */\n  width?: number;\n  /**\n   * Deprecated. Use the `posters` property in the parent entity instead.\n   * @internal\n   */\n  poster?: Image;\n  /**\n   * Video format for example, mp4, hls.\n   * @maxLength 200\n   */\n  format?: string;\n  /**\n   * Deprecated. Use the `urlExpirationDate` property in the parent entity instead.\n   * @internal\n   */\n  urlExpirationDate?: Date | null;\n  /**\n   * Deprecated. Use the `sizeInBytes` property in the parent entity instead. Size cannot be provided per resolution.\n   * @internal\n   * @maxLength 1000000000\n   */\n  sizeInBytes?: string | null;\n  /**\n   * Video quality. For example: 480p, 720p.\n   * @internal\n   * @maxLength 200\n   */\n  quality?: string | null;\n  /**\n   * Video filename.\n   * @internal\n   * @maxLength 200\n   */\n  filename?: string | null;\n  /**\n   * Video duration in seconds.\n   * @internal\n   * @readonly\n   */\n  durationInSeconds?: number | null;\n  /**\n   * Video duration in milliseconds.\n   * @internal\n   * @readonly\n   */\n  durationInMilliseconds?: number | null;\n  /**\n   * When true, this is a protected asset, and calling the URL will return a 403 error.\n   * In order to access private assets, make a request to:\n   * `GenerateFileDownloadUrl` with the WixMedia id and specify the asset_key in the request\n   * @internal\n   * @readonly\n   */\n  private?: boolean | null;\n  /**\n   * Key to identify the video resolution's relationship to the original media in WixMedia.\n   * Can be used to request a download for the specific video resolution.\n   * For example: 480p.mp4, 720p.mp4, 1080p.mp4, trailer-720p.mp4, clip-720p.mp4\n   * @internal\n   * @readonly\n   * @maxLength 200\n   */\n  assetKey?: string | null;\n}\n\nexport enum MediaType {\n  /** Image media type. */\n  IMAGE = 'IMAGE',\n  /** Video media type. */\n  VIDEO = 'VIDEO',\n}\n\n/** @enumType */\nexport type MediaTypeWithLiterals = MediaType | 'IMAGE' | 'VIDEO';\n\nexport interface Thumbnail {\n  /**\n   * Thumbnail URL.\n   * @format WEB_URL\n   * @readonly\n   */\n  url?: string;\n  /**\n   * Thumbnail height.\n   * @readonly\n   */\n  height?: number;\n  /**\n   * Thumbnail width.\n   * @readonly\n   */\n  width?: number;\n  /**\n   * Thumbnail alt text.\n   * @minLength 1\n   * @maxLength 1000\n   * @readonly\n   */\n  altText?: string | null;\n}\n\nexport interface VariantPhysicalProperties {\n  /**\n   * Weight of the variant for shipping calculations.\n   *\n   * Used for shipping cost calculations and fulfillment planning.\n   * Returned only when you pass `\"WEIGHT_MEASUREMENT_UNIT_INFO\"` to the `fields` parameter.\n   * @max 999999999.99\n   * @readonly\n   */\n  weight?: number | null;\n  /**\n   * Price per unit measurement information.\n   *\n   * Allows customers to compare prices based on a standard unit (like price per kilogram or per liter).\n   * Useful for bulk products or items sold by weight or volume.\n   * @readonly\n   */\n  pricePerUnit?: PricePerUnit;\n  /**\n   * Product dimensions (length, width, height of the physical product).\n   * @internal\n   */\n  productDimensions?: Dimensions;\n  /**\n   * Package dimensions (length, width, height of the shipping package).\n   * @internal\n   */\n  packageDimensions?: Dimensions;\n}\n\nexport interface PricePerUnit {\n  /**\n   * Price per unit measurement settings.\n   *\n   * Defines the unit of measurement for price comparison (e.g., per kilogram, per liter).\n   * The measurement unit must correspond to the unit set on the parent product.\n   * @readonly\n   */\n  settings?: PricePerUnitSettings;\n  /**\n   * Calculated price per unit value.\n   *\n   * Shows the variant's price normalized to the standard unit of measurement.\n   * For example, if a 500g variant costs $2 and the standard unit is 1kg, this value would be $4.\n   * @readonly\n   * @decimalValue options { gte:0, lte:999999999.99, maxScale:3 }\n   */\n  value?: string;\n  /**\n   * Human-readable description of the price per unit.\n   *\n   * For example, \"per kg\" or \"per liter\".\n   * @readonly\n   * @maxLength 100\n   */\n  description?: string | null;\n}\n\nexport interface PricePerUnitSettings {\n  /**\n   * Quantity.\n   * For example, to define price per per 100 grams, set this field to `100`.\n   * @min 0.01\n   * @max 999999999.99\n   * @readonly\n   */\n  quantity?: number;\n  /**\n   * Measurement unit.\n   * For example, to define price per 100 grams, set this field to \"G\".\n   * @readonly\n   */\n  measurementUnit?: MeasurementUnitWithLiterals;\n}\n\nexport enum MeasurementUnit {\n  UNSPECIFIED = 'UNSPECIFIED',\n  ML = 'ML',\n  CL = 'CL',\n  L = 'L',\n  CBM = 'CBM',\n  MG = 'MG',\n  G = 'G',\n  KG = 'KG',\n  MM = 'MM',\n  CM = 'CM',\n  M = 'M',\n  SQM = 'SQM',\n  OZ = 'OZ',\n  LB = 'LB',\n  FLOZ = 'FLOZ',\n  PT = 'PT',\n  QT = 'QT',\n  GAL = 'GAL',\n  IN = 'IN',\n  FT = 'FT',\n  YD = 'YD',\n  SQFT = 'SQFT',\n}\n\n/** @enumType */\nexport type MeasurementUnitWithLiterals =\n  | MeasurementUnit\n  | 'UNSPECIFIED'\n  | 'ML'\n  | 'CL'\n  | 'L'\n  | 'CBM'\n  | 'MG'\n  | 'G'\n  | 'KG'\n  | 'MM'\n  | 'CM'\n  | 'M'\n  | 'SQM'\n  | 'OZ'\n  | 'LB'\n  | 'FLOZ'\n  | 'PT'\n  | 'QT'\n  | 'GAL'\n  | 'IN'\n  | 'FT'\n  | 'YD'\n  | 'SQFT';\n\nexport interface Dimensions {\n  /**\n   * Length. Measurement unit is handled at the system level (metric/imperial).\n   * @decimalValue options { gte:0, lte:999999999, maxScale:6 }\n   */\n  length?: string | null;\n  /**\n   * Width. Measurement unit is handled at the system level (metric/imperial).\n   * @decimalValue options { gte:0, lte:999999999, maxScale:6 }\n   */\n  width?: string | null;\n  /**\n   * Height. Measurement unit is handled at the system level (metric/imperial).\n   * @decimalValue options { gte:0, lte:999999999, maxScale:6 }\n   */\n  height?: string | null;\n  /** Unit of measurement for dimensions (length, width, height). */\n  unit?: DimensionsUnitWithLiterals;\n}\n\nexport enum DimensionsUnit {\n  UNKNOWN_DIMENSIONS_UNIT = 'UNKNOWN_DIMENSIONS_UNIT',\n  /** Millimeters. */\n  MM = 'MM',\n  /** Centimeters. */\n  CM = 'CM',\n  /** Meters. */\n  M = 'M',\n  /** Inches. */\n  IN = 'IN',\n  /** Feet. */\n  FT = 'FT',\n  /** Yards. */\n  YD = 'YD',\n}\n\n/** @enumType */\nexport type DimensionsUnitWithLiterals =\n  | DimensionsUnit\n  | 'UNKNOWN_DIMENSIONS_UNIT'\n  | 'MM'\n  | 'CM'\n  | 'M'\n  | 'IN'\n  | 'FT'\n  | 'YD';\n\nexport interface VariantDigitalProperties {\n  /**\n   * Digital file available for download after purchase.\n   *\n   * The file that customers receive when they purchase this digital variant.\n   * @readonly\n   */\n  digitalFile?: SecuredMedia;\n}\n\nexport interface SecuredMedia {\n  /**\n   * Media ID in media manager.\n   * @minLength 1\n   * @maxLength 100\n   * @readonly\n   */\n  id?: string;\n  /**\n   * Original file name.\n   * @minLength 1\n   * @maxLength 1000\n   * @readonly\n   */\n  fileName?: string;\n  /**\n   * Original file size.\n   * @minLength 1\n   * @maxLength 1000\n   * @readonly\n   * @format DECIMAL_VALUE\n   * @decimalValue options { maxScale:0 }\n   */\n  fileSize?: string | null;\n  /**\n   * File type.\n   * @readonly\n   */\n  fileType?: FileTypeWithLiterals;\n}\n\nexport enum FileType {\n  /** Unspecified file type. */\n  UNSPECIFIED = 'UNSPECIFIED',\n  /** Secure picture file. */\n  SECURE_PICTURE = 'SECURE_PICTURE',\n  /** Secure video file. */\n  SECURE_VIDEO = 'SECURE_VIDEO',\n  /** Secure document file. */\n  SECURE_DOCUMENT = 'SECURE_DOCUMENT',\n  /** Secure music file. */\n  SECURE_MUSIC = 'SECURE_MUSIC',\n  /** Secure archive file. */\n  SECURE_ARCHIVE = 'SECURE_ARCHIVE',\n  /** Secure raw file. */\n  SECURE_RAW = 'SECURE_RAW',\n}\n\n/** @enumType */\nexport type FileTypeWithLiterals =\n  | FileType\n  | 'UNSPECIFIED'\n  | 'SECURE_PICTURE'\n  | 'SECURE_VIDEO'\n  | 'SECURE_DOCUMENT'\n  | 'SECURE_MUSIC'\n  | 'SECURE_ARCHIVE'\n  | 'SECURE_RAW';\n\nexport interface SubscriptionPricesInfo {\n  /**\n   * Pricing for different subscription plans.\n   *\n   * Shows how the variant's price changes with different subscription intervals or discounts.\n   * @maxSize 6\n   * @readonly\n   */\n  subscriptionPrices?: SubscriptionPrice[];\n}\n\nexport interface SubscriptionPrice {\n  /**\n   * Subscription plan ID.\n   * @format GUID\n   * @readonly\n   */\n  subscriptionId?: string;\n  /**\n   * Variant price with subscription discount applied.\n   * @readonly\n   */\n  price?: FixedMonetaryAmount;\n  /**\n   * Price per unit for subscription pricing.\n   * @readonly\n   */\n  pricePerUnit?: SubscriptionPricePerUnit;\n}\n\nexport interface SubscriptionPricePerUnit {\n  /**\n   * Calculated price per unit for the subscription.\n   *\n   * Takes into account the subscription discount and the variant's price per unit settings.\n   * @readonly\n   * @decimalValue options { gte:0, lte:999999999.99, maxScale:3 }\n   */\n  value?: string;\n  /**\n   * Description of the subscription price per unit.\n   * @readonly\n   * @maxLength 20\n   */\n  description?: string | null;\n}\n\nexport interface InventoryStatus {\n  /**\n   * Whether the variant is currently in stock and available for purchase.\n   * @readonly\n   */\n  inStock?: boolean;\n  /**\n   * Whether customers can place preorders for this variant when it's out of stock.\n   * @readonly\n   */\n  preorderEnabled?: boolean;\n}\n\nexport interface ProductFields extends ProductFieldsTypedPropertiesOneOf {\n  /**\n   * Physical product properties such as weight and dimensions.\n   *\n   * Required when `productType` is `PHYSICAL`.\n   */\n  physicalProperties?: PhysicalProperties;\n  /**\n   * Product ID.\n   * @minLength 1\n   * @maxLength 36\n   * @readonly\n   */\n  productId?: string;\n  /**\n   * Product name displayed to customers.\n   * @minLength 1\n   * @maxLength 80\n   * @readonly\n   */\n  name?: string | null;\n  /**\n   * Type of product determining available properties and behavior.\n   * @readonly\n   */\n  productType?: ProductTypeWithLiterals;\n  /**\n   * URL-friendly identifier for the product.\n   *\n   * Used in product page URLs and for SEO optimization.\n   * @format URL_SLUG\n   * @readonly\n   */\n  slug?: string | null;\n  /**\n   * Whether the product is visible to site visitors.\n   *\n   * Default: `true`\n   * @readonly\n   */\n  visible?: boolean | null;\n  /**\n   * Whether the product appears in point-of-sale systems.\n   *\n   * Default: `true`\n   * Always `false` for digital products.\n   * @readonly\n   */\n  visibleInPos?: boolean | null;\n  /**\n   * Primary category assignment for the product.\n   *\n   * Determines the main category used for navigation and organization.\n   * @format GUID\n   * @readonly\n   */\n  mainCategoryId?: string | null;\n  /**\n   * All categories the product is assigned to.\n   * @internal\n   * @readonly\n   * @maxSize 2000\n   * @format GUID\n   */\n  directCategoryIds?: string[];\n  /**\n   * Currency used for pricing this product.\n   *\n   * Three-letter currency code in ISO-4217 alphabetic format.\n   * Defaults to the site's currency setting unless specified in request headers.\n   * Returned only when you pass `\"CURRENCY\"` to the `fields` parameter.\n   * @format CURRENCY\n   * @readonly\n   */\n  currency?: string | null;\n  /**\n   * Revision number, which increments by 1 each time the product is updated.\n   * To prevent conflicting changes,\n   * the current revision must be passed when updating the product.\n   * @readonly\n   */\n  revision?: string | null;\n  /**\n   * A unique human-friendly identifier for the product.\n   *\n   * The handle can be set by the user to ensure consistency across multiple platforms.\n   * @minLength 1\n   * @maxLength 100\n   * @readonly\n   */\n  handle?: string | null;\n  /**\n   * Brand assigned to the product.\n   * @internal\n   * @readonly\n   */\n  brand?: Brand;\n  /**\n   * Date and time the product was last updated.\n   * @internal\n   * @readonly\n   */\n  updatedDate?: Date | null;\n}\n\n/** @oneof */\nexport interface ProductFieldsTypedPropertiesOneOf {\n  /**\n   * Physical product properties such as weight and dimensions.\n   *\n   * Required when `productType` is `PHYSICAL`.\n   */\n  physicalProperties?: PhysicalProperties;\n}\n\nexport enum ProductType {\n  /** Physical product. */\n  PHYSICAL = 'PHYSICAL',\n  /** Digital product. */\n  DIGITAL = 'DIGITAL',\n}\n\n/** @enumType */\nexport type ProductTypeWithLiterals = ProductType | 'PHYSICAL' | 'DIGITAL';\n\nexport interface PhysicalProperties {\n  /**\n   * Weight measurement unit information for the product.\n   *\n   * Defines the unit of measurement (kg, lb, etc.) used for product weight calculations.\n   * Returned only when you pass `\"WEIGHT_MEASUREMENT_UNIT_INFO\"` to the `fields` parameter.\n   * @readonly\n   */\n  weightMeasurementUnitInfo?: WeightMeasurementUnitInfo;\n  /**\n   * Fulfiller ID.\n   * @internal\n   * @format GUID\n   * @readonly\n   */\n  fulfillerId?: string | null;\n}\n\nexport interface WeightMeasurementUnitInfo {\n  /**\n   * Unit of measurement for weight.\n   *\n   * Standard units include kilograms (KG), pounds (LB), ounces (OZ), and grams (G).\n   * @readonly\n   */\n  weightMeasurementUnit?: WeightUnitWithLiterals;\n}\n\nexport enum WeightUnit {\n  /** Weight unit can't be classified due to an error. */\n  UNSPECIFIED_WEIGHT_UNIT = 'UNSPECIFIED_WEIGHT_UNIT',\n  /** Kilograms. */\n  KG = 'KG',\n  /** Pounds. */\n  LB = 'LB',\n}\n\n/** @enumType */\nexport type WeightUnitWithLiterals =\n  | WeightUnit\n  | 'UNSPECIFIED_WEIGHT_UNIT'\n  | 'KG'\n  | 'LB';\n\nexport interface Brand {\n  /**\n   * Brand ID.\n   * @format GUID\n   * @readonly\n   */\n  id?: string | null;\n  /**\n   * Brand name.\n   * @minLength 1\n   * @maxLength 80\n   * @readonly\n   */\n  name?: string | null;\n}\n\nexport interface InternalMetadata {\n  /**\n   * Representing the row processing state, rows are readable only when the state is `READY`.\n   * @internal\n   * @readonly\n   */\n  rowState?: InternalRowStateWithLiterals;\n}\n\nexport enum InternalRowState {\n  /** Variant is ready to be read. */\n  READY = 'READY',\n  /** Variant is being processed. */\n  IN_PROCESS = 'IN_PROCESS',\n  /** Variant is soft deleted. */\n  SOFT_DELETED = 'SOFT_DELETED',\n  /** Variant is permanently deleted. */\n  PERMANENTLY_DELETED = 'PERMANENTLY_DELETED',\n}\n\n/** @enumType */\nexport type InternalRowStateWithLiterals =\n  | InternalRowState\n  | 'READY'\n  | 'IN_PROCESS'\n  | 'SOFT_DELETED'\n  | 'PERMANENTLY_DELETED';\n\nexport interface LocationListing {\n  /**\n   * Whether the variant is carried at this location.\n   * This indicates the item is part of the location's catalog, regardless of current stock levels.\n   * @readonly\n   */\n  listed?: boolean;\n}\n\nexport interface DiscountInfo {\n  /**\n   * Names of automatic discount rules currently applied to this variant's product.\n   * @readonly\n   * @maxSize 5\n   * @maxLength 100\n   */\n  discountRuleNames?: string[];\n}\n\nexport interface UpdateInternalDocumentsEvent\n  extends UpdateInternalDocumentsEventOperationOneOf {\n  /** insert/update documents */\n  update?: InternalDocumentUpdateOperation;\n  /** delete by document ids */\n  deleteByIds?: DeleteByIdsOperation;\n  /** delete documents matching filter */\n  deleteByFilter?: DeleteByFilterOperation;\n  /** update internal documents matching filter */\n  updateByFilter?: InternalDocumentUpdateByFilterOperation;\n  /** update only existing documents */\n  updateExisting?: InternalUpdateExistingOperation;\n  /** insert/update documents with versioning */\n  versionedUpdate?: VersionedDocumentUpdateOperation;\n  /** delete by document ids with versioning */\n  versionedDeleteByIds?: VersionedDeleteByIdsOperation;\n  /**\n   * type of the documents\n   * @minLength 2\n   */\n  documentType?: string;\n  /**\n   * language of the documents (mandatory)\n   * @minLength 2\n   */\n  language?: string | null;\n  /**\n   * one or more search documents\n   * @deprecated\n   */\n  addDocuments?: InternalDocument[];\n  /**\n   * one or more ids of indexed documents to be removed. Removal will happen before addition (if both provided)\n   * @deprecated\n   */\n  removeDocumentIds?: string[];\n  /** id to pass to processing notification */\n  correlationId?: string | null;\n  /** when event was created / issued */\n  issuedAt?: Date | null;\n}\n\n/** @oneof */\nexport interface UpdateInternalDocumentsEventOperationOneOf {\n  /** insert/update documents */\n  update?: InternalDocumentUpdateOperation;\n  /** delete by document ids */\n  deleteByIds?: DeleteByIdsOperation;\n  /** delete documents matching filter */\n  deleteByFilter?: DeleteByFilterOperation;\n  /** update internal documents matching filter */\n  updateByFilter?: InternalDocumentUpdateByFilterOperation;\n  /** update only existing documents */\n  updateExisting?: InternalUpdateExistingOperation;\n  /** insert/update documents with versioning */\n  versionedUpdate?: VersionedDocumentUpdateOperation;\n  /** delete by document ids with versioning */\n  versionedDeleteByIds?: VersionedDeleteByIdsOperation;\n}\n\nexport interface InternalDocument {\n  /** document with mandatory fields (id) and with fields specific to the type of the document */\n  document?: Record<string, any> | null;\n}\n\nexport interface InternalDocumentUpdateOperation {\n  /** documents to index or update */\n  documents?: InternalDocument[];\n}\n\nexport interface DeleteByIdsOperation {\n  /** ids of the documents to delete */\n  documentIds?: string[];\n  /**\n   * tenant id for custom tenancy strategy\n   * @minLength 2\n   * @maxLength 300\n   */\n  tenantId?: string | null;\n}\n\nexport interface DeleteByFilterOperation {\n  /** documents matching this filter wil be deleted. only filterable documents defined in document_type can be used for filtering */\n  filter?: Record<string, any> | null;\n  /**\n   * tenant id for custom tenancy strategy\n   * @minLength 2\n   * @maxLength 300\n   */\n  tenantId?: string | null;\n}\n\nexport interface InternalDocumentUpdateByFilterOperation {\n  /** documents matching this filter will be updated */\n  filter?: Record<string, any> | null;\n  /** partial document to apply */\n  document?: InternalDocument;\n  /**\n   * tenant id for custom tenancy strategy\n   * @minLength 2\n   * @maxLength 300\n   */\n  tenantId?: string | null;\n}\n\nexport interface InternalUpdateExistingOperation {\n  /** documents to update */\n  documents?: InternalDocument[];\n}\n\nexport interface VersionedDocumentUpdateOperation {\n  /** documents to create or overwrite */\n  documents?: InternalDocument[];\n  /** versioning mode to use instead of default */\n  versioningMode?: VersioningModeWithLiterals;\n}\n\nexport enum VersioningMode {\n  /** use default versioning mode agreed with search team */\n  DEFAULT = 'DEFAULT',\n  /** execute only if version is greater than existing */\n  GREATER_THAN = 'GREATER_THAN',\n  /** execute only if version is greater or equal to existing */\n  GREATER_OR_EQUAL = 'GREATER_OR_EQUAL',\n}\n\n/** @enumType */\nexport type VersioningModeWithLiterals =\n  | VersioningMode\n  | 'DEFAULT'\n  | 'GREATER_THAN'\n  | 'GREATER_OR_EQUAL';\n\nexport interface VersionedDeleteByIdsOperation {\n  /** ids with version of the documents to delete */\n  documentIds?: VersionedDocumentId[];\n  /**\n   * tenant id for custom tenancy strategy\n   * @minLength 2\n   * @maxLength 300\n   */\n  tenantId?: string | null;\n}\n\nexport interface VersionedDocumentId {\n  /** document id */\n  documentId?: string;\n  /** document version */\n  version?: string;\n  /** versioning mode to use instead of default */\n  versioningMode?: VersioningModeWithLiterals;\n}\n\nexport interface QueryVariantsRequest {\n  /** WQL expression for filtering variants. */\n  query?: CursorQuery;\n  /**\n   * List of additional fields to include in the response.\n   * See VariantOps.RequestedFields for available options.\n   * @maxSize 100\n   */\n  fields?: RequestedFieldsWithLiterals[];\n  /**\n   * Location IDs for which to include location listing per variant in the response.\n   * @internal\n   * @format GUID\n   * @maxSize 4\n   */\n  locationIds?: string[];\n}\n\nexport interface CursorQuery extends CursorQueryPagingMethodOneOf {\n  /** Cursor token pointing to a page of results. Not used in the first request. Following requests use the cursor token and not `filter` or `sort`. */\n  cursorPaging?: CursorPaging;\n  /**\n   * Filter object in the following format:\n   * `\"filter\" : {\n   * \"fieldName1\": \"value1\",\n   * \"fieldName2\":{\"$operator\":\"value2\"}\n   * }`\n   * Example of operators: `$eq`, `$ne`, `$lt`, `$lte`, `$gt`, `$gte`, `$in`, `$hasSome`, `$hasAll`, `$startsWith`, `$contains`\n   */\n  filter?: Record<string, any> | null;\n  /**\n   * Sort object in the following format:\n   * `[{\"fieldName\":\"sortField1\",\"order\":\"ASC\"},{\"fieldName\":\"sortField2\",\"order\":\"DESC\"}]`\n   * @maxSize 5\n   */\n  sort?: Sorting[];\n}\n\n/** @oneof */\nexport interface CursorQueryPagingMethodOneOf {\n  /** Cursor token pointing to a page of results. Not used in the first request. Following requests use the cursor token and not `filter` or `sort`. */\n  cursorPaging?: CursorPaging;\n}\n\nexport interface Sorting {\n  /**\n   * Name of the field to sort by.\n   * @maxLength 512\n   */\n  fieldName?: string;\n  /** Sort order. */\n  order?: SortOrderWithLiterals;\n}\n\nexport enum SortOrder {\n  ASC = 'ASC',\n  DESC = 'DESC',\n}\n\n/** @enumType */\nexport type SortOrderWithLiterals = SortOrder | 'ASC' | 'DESC';\n\nexport interface CursorPaging {\n  /**\n   * Maximum number of items to return in the results.\n   * @max 1000\n   */\n  limit?: number | null;\n  /**\n   * Pointer to the next or previous page in the list of results.\n   *\n   * Pass the relevant cursor token from the `pagingMetadata` object in the previous call's response.\n   * Not relevant for the first request.\n   * @maxLength 16000\n   */\n  cursor?: string | null;\n}\n\nexport enum RequestedFields {\n  /**\n   * Include currency information in product data.\n   *\n   * Returns the currency code (ISO-4217 format) used for pricing this variant.\n   * Defaults to the site's currency unless specified in request headers.\n   */\n  CURRENCY = 'CURRENCY',\n  /**\n   * Include merchant-specific data such as cost and profit information.\n   *\n   * Returns revenue details including cost, profit, and profit margin.\n   * Requires `SCOPE.STORES.PRODUCT_READ_ADMIN` permission scope.\n   */\n  MERCHANT_DATA = 'MERCHANT_DATA',\n  /**\n   * Include subscription pricing information.\n   *\n   * Returns calculated prices for different subscription plans with applied discounts.\n   * Only relevant for variants that are part of subscription offerings.\n   */\n  SUBSCRIPTION_PRICES_INFO = 'SUBSCRIPTION_PRICES_INFO',\n  /**\n   * Include weight measurement unit information.\n   *\n   * Returns the weight measurement unit (kg, lb, etc.) used for the variant.\n   * Useful for shipping calculations and product comparisons.\n   */\n  WEIGHT_MEASUREMENT_UNIT_INFO = 'WEIGHT_MEASUREMENT_UNIT_INFO',\n  /**\n   * Include automatic discount information.\n   *\n   * Returns discount rule names applied to the product and calculates\n   * the discounted price for each variant based on automatic discount rules.\n   * @documentationMaturity preview\n   * @internal\n   */\n  DISCOUNT_INFO = 'DISCOUNT_INFO',\n}\n\n/** @enumType */\nexport type RequestedFieldsWithLiterals =\n  | RequestedFields\n  | 'CURRENCY'\n  | 'MERCHANT_DATA'\n  | 'SUBSCRIPTION_PRICES_INFO'\n  | 'WEIGHT_MEASUREMENT_UNIT_INFO';\n\nexport interface QueryVariantsResponse {\n  /** Variants matching the query criteria. */\n  variants?: ReadOnlyVariant[];\n  /** Pagination information with cursors for next pages. */\n  pagingMetadata?: CursorPagingMetadata;\n}\n\nexport interface CursorPagingMetadata {\n  /** Number of items returned in the response. */\n  count?: number | null;\n  /** Cursor strings that point to the next page, previous page, or both. */\n  cursors?: Cursors;\n  /**\n   * Whether there are more pages to retrieve following the current page.\n   *\n   * + `true`: Another page of results can be retrieved.\n   * + `false`: This is the last page.\n   */\n  hasNext?: boolean | null;\n}\n\nexport interface Cursors {\n  /**\n   * Cursor string pointing to the next page in the list of results.\n   * @maxLength 16000\n   */\n  next?: string | null;\n  /**\n   * Cursor pointing to the previous page in the list of results.\n   * @maxLength 16000\n   */\n  prev?: string | null;\n}\n\nexport interface SearchVariantsRequest {\n  /**\n   * WQL expression for searching variants. When `sort` is empty on the first cursor page, see the\n   * `SearchVariants` RPC documentation for the default result order.\n   */\n  search?: CursorSearch;\n  /**\n   * List of additional fields to include in the response.\n   * See VariantOps.RequestedFields for available options.\n   * @maxSize 100\n   */\n  fields?: RequestedFieldsWithLiterals[];\n  /**\n   * Location IDs for which to include location listing per variant in the response.\n   * @internal\n   * @format GUID\n   * @maxSize 4\n   */\n  locationIds?: string[];\n  /**\n   * When true, WixSearch is used for filtering only; matched variant IDs are then fetched from\n   * SDL to guarantee fresh field data and exclude deleted variants.\n   * When false (default), WixSearch returns indexed document data directly.\n   * Automatically treated as true when MERCHANT_DATA fields are requested (MERCHANT_DATA is\n   * never indexed in WixSearch). Only relevant when readVariantsFromWixSearch FT is enabled.\n   * @internal\n   */\n  freshData?: boolean;\n}\n\nexport interface CursorSearch extends CursorSearchPagingMethodOneOf {\n  /**\n   * Cursor pointing to page of results.\n   * When requesting 'cursor_paging.cursor', no `filter`, `sort` or `search` can be provided.\n   */\n  cursorPaging?: CursorPaging;\n  /** A filter object. See documentation [here](https://bo.wix.com/wix-docs/rnd/platformization-guidelines/api-query-language#platformization-guidelines_api-query-language_defining-in-protobuf) */\n  filter?: Record<string, any> | null;\n  /**\n   * Sort object in the form [{\"fieldName\":\"sortField1\"},{\"fieldName\":\"sortField2\",\"direction\":\"DESC\"}]\n   * @maxSize 10\n   */\n  sort?: Sorting[];\n  /**\n   * Aggregations | Faceted search: refers to a way to explore large amounts of data by displaying summaries about various partitions of the data and later allowing to narrow the navigation to a specific partition.\n   * @maxSize 10\n   */\n  aggregations?: Aggregation[];\n  /** Free text to match in searchable fields */\n  search?: SearchDetails;\n  /**\n   * UTC offset or IANA time zone. Valid values are\n   * ISO 8601 UTC offsets, such as +02:00 or -06:00,\n   * and IANA time zone IDs, such as Europe/Rome\n   *\n   * Affects all filters and aggregations returned values.\n   * You may override this behavior in a specific filter by providing\n   * timestamps including time zone. e.g. `\"2023-12-20T10:52:34.795Z\"`\n   * @maxLength 50\n   */\n  timeZone?: string | null;\n}\n\n/** @oneof */\nexport interface CursorSearchPagingMethodOneOf {\n  /**\n   * Cursor pointing to page of results.\n   * When requesting 'cursor_paging.cursor', no `filter`, `sort` or `search` can be provided.\n   */\n  cursorPaging?: CursorPaging;\n}\n\nexport interface Aggregation extends AggregationKindOneOf {\n  /** Value aggregation */\n  value?: ValueAggregation;\n  /** Range aggregation */\n  range?: RangeAggregation;\n  /** Scalar aggregation */\n  scalar?: ScalarAggregation;\n  /** Date histogram aggregation */\n  dateHistogram?: DateHistogramAggregation;\n  /** Nested aggregation */\n  nested?: NestedAggregation;\n  /**\n   * User-defined name of aggregation, should be unique, will appear in aggregation results\n   * @maxLength 100\n   */\n  name?: string | null;\n  /** Type of aggregation, client must provide matching aggregation field below */\n  type?: AggregationTypeWithLiterals;\n  /**\n   * Field to aggregate by, use dot notation to specify json path\n   * @maxLength 200\n   */\n  fieldPath?: string;\n}\n\n/** @oneof */\nexport interface AggregationKindOneOf {\n  /** Value aggregation */\n  value?: ValueAggregation;\n  /** Range aggregation */\n  range?: RangeAggregation;\n  /** Scalar aggregation */\n  scalar?: ScalarAggregation;\n  /** Date histogram aggregation */\n  dateHistogram?: DateHistogramAggregation;\n  /** Nested aggregation */\n  nested?: NestedAggregation;\n}\n\nexport interface RangeBucket {\n  /** Inclusive lower bound of the range. Required if to is not given */\n  from?: number | null;\n  /** Exclusive upper bound of the range. Required if from is not given */\n  to?: number | null;\n}\n\nexport enum SortType {\n  /** Should sort by number of matches */\n  COUNT = 'COUNT',\n  /** Should sort by value of the field alphabetically */\n  VALUE = 'VALUE',\n}\n\n/** @enumType */\nexport type SortTypeWithLiterals = SortType | 'COUNT' | 'VALUE';\n\nexport enum SortDirection {\n  /** Should sort in descending order */\n  DESC = 'DESC',\n  /** Should sort in ascending order */\n  ASC = 'ASC',\n}\n\n/** @enumType */\nexport type SortDirectionWithLiterals = SortDirection | 'DESC' | 'ASC';\n\nexport enum MissingValues {\n  /** Should missing values be excluded from the aggregation results */\n  EXCLUDE = 'EXCLUDE',\n  /** Should missing values be included in the aggregation results */\n  INCLUDE = 'INCLUDE',\n}\n\n/** @enumType */\nexport type MissingValuesWithLiterals = MissingValues | 'EXCLUDE' | 'INCLUDE';\n\nexport interface IncludeMissingValuesOptions {\n  /**\n   * Can specify custom bucket name. Defaults are [string -> \"N/A\"], [int -> \"0\"], [bool -> \"false\"] ...\n   * @maxLength 20\n   */\n  addToBucket?: string;\n}\n\nexport enum ScalarType {\n  /** Count of distinct values */\n  COUNT_DISTINCT = 'COUNT_DISTINCT',\n  /** Minimum value */\n  MIN = 'MIN',\n  /** Maximum value */\n  MAX = 'MAX',\n  /**\n   * Sum of values\n   * @internal\n   */\n  SUM = 'SUM',\n  /**\n   * Average of values\n   * @internal\n   */\n  AVG = 'AVG',\n}\n\n/** @enumType */\nexport type ScalarTypeWithLiterals =\n  | ScalarType\n  | 'COUNT_DISTINCT'\n  | 'MIN'\n  | 'MAX';\n\nexport interface ValueAggregation extends ValueAggregationOptionsOneOf {\n  /** Options for including missing values */\n  includeOptions?: IncludeMissingValuesOptions;\n  /** Should sort by number of matches or value of the field */\n  sortType?: SortTypeWithLiterals;\n  /** Should sort in ascending or descending order */\n  sortDirection?: SortDirectionWithLiterals;\n  /** How many aggregations would you like to return? Can be between 1 and 250. 10 is the default. */\n  limit?: number | null;\n  /** Should missing values be included or excluded from the aggregation results. Default is EXCLUDE */\n  missingValues?: MissingValuesWithLiterals;\n}\n\n/** @oneof */\nexport interface ValueAggregationOptionsOneOf {\n  /** Options for including missing values */\n  includeOptions?: IncludeMissingValuesOptions;\n}\n\nexport enum NestedAggregationType {\n  /** An aggregation where result buckets are dynamically built - one per unique value */\n  VALUE = 'VALUE',\n  /** An aggregation, where user can define set of ranges - each representing a bucket */\n  RANGE = 'RANGE',\n  /** A single-value metric aggregation - e.g. min, max, sum, avg */\n  SCALAR = 'SCALAR',\n  /** An aggregation, where result buckets are dynamically built - one per time interval (hour, day, week, etc.) */\n  DATE_HISTOGRAM = 'DATE_HISTOGRAM',\n}\n\n/** @enumType */\nexport type NestedAggregationTypeWithLiterals =\n  | NestedAggregationType\n  | 'VALUE'\n  | 'RANGE'\n  | 'SCALAR'\n  | 'DATE_HISTOGRAM';\n\nexport interface RangeAggregation {\n  /**\n   * List of range buckets, where during aggregation each entity will be placed in the first bucket where its value falls into based on provided range bounds\n   * @maxSize 50\n   */\n  buckets?: RangeBucket[];\n}\n\nexport interface ScalarAggregation {\n  /** Define the operator for the scalar aggregation */\n  type?: ScalarTypeWithLiterals;\n}\n\nexport interface DateHistogramAggregation {\n  /** Interval for date histogram aggregation */\n  interval?: IntervalWithLiterals;\n}\n\nexport enum Interval {\n  /** Yearly interval */\n  YEAR = 'YEAR',\n  /** Monthly interval */\n  MONTH = 'MONTH',\n  /** Weekly interval */\n  WEEK = 'WEEK',\n  /** Daily interval */\n  DAY = 'DAY',\n  /** Hourly interval */\n  HOUR = 'HOUR',\n  /** Minute interval */\n  MINUTE = 'MINUTE',\n  /** Second interval */\n  SECOND = 'SECOND',\n}\n\n/** @enumType */\nexport type IntervalWithLiterals =\n  | Interval\n  | 'YEAR'\n  | 'MONTH'\n  | 'WEEK'\n  | 'DAY'\n  | 'HOUR'\n  | 'MINUTE'\n  | 'SECOND';\n\nexport interface NestedAggregationItem extends NestedAggregationItemKindOneOf {\n  /** Value aggregation */\n  value?: ValueAggregation;\n  /** Range aggregation */\n  range?: RangeAggregation;\n  /** Scalar aggregation */\n  scalar?: ScalarAggregation;\n  /** Date histogram aggregation */\n  dateHistogram?: DateHistogramAggregation;\n  /**\n   * User-defined name of aggregation, should be unique, will appear in aggregation results\n   * @maxLength 100\n   */\n  name?: string | null;\n  /** Type of aggregation, client must provide matching aggregation field below */\n  type?: NestedAggregationTypeWithLiterals;\n  /**\n   * Field to aggregate by, use dont notation to specify json path\n   * @maxLength 200\n   */\n  fieldPath?: string;\n}\n\n/** @oneof */\nexport interface NestedAggregationItemKindOneOf {\n  /** Value aggregation */\n  value?: ValueAggregation;\n  /** Range aggregation */\n  range?: RangeAggregation;\n  /** Scalar aggregation */\n  scalar?: ScalarAggregation;\n  /** Date histogram aggregation */\n  dateHistogram?: DateHistogramAggregation;\n}\n\nexport enum AggregationType {\n  /** An aggregation where result buckets are dynamically built - one per unique value */\n  VALUE = 'VALUE',\n  /** An aggregation, where user can define set of ranges - each representing a bucket */\n  RANGE = 'RANGE',\n  /** A single-value metric aggregation - e.g. min, max, sum, avg */\n  SCALAR = 'SCALAR',\n  /** An aggregation, where result buckets are dynamically built - one per time interval (hour, day, week, etc.) */\n  DATE_HISTOGRAM = 'DATE_HISTOGRAM',\n  /** Multi-level aggregation, where each next aggregation is nested within previous one */\n  NESTED = 'NESTED',\n}\n\n/** @enumType */\nexport type AggregationTypeWithLiterals =\n  | AggregationType\n  | 'VALUE'\n  | 'RANGE'\n  | 'SCALAR'\n  | 'DATE_HISTOGRAM'\n  | 'NESTED';\n\n/** Nested aggregation expressed through a list of aggregation where each next aggregation is nested within previous one */\nexport interface NestedAggregation {\n  /**\n   * Flattened list of aggregations, where each next aggregation is nested within previous one\n   * @minSize 2\n   * @maxSize 3\n   */\n  nestedAggregations?: NestedAggregationItem[];\n}\n\nexport interface SearchDetails {\n  /** Defines how separate search terms in `expression` are combined */\n  mode?: ModeWithLiterals;\n  /**\n   * Search term or expression\n   * @maxLength 100\n   */\n  expression?: string | null;\n  /**\n   * Fields to search in. If empty - will search in all searchable fields. Use dot notation to specify json path\n   * @maxLength 200\n   * @maxSize 20\n   */\n  fields?: string[];\n  /** Flag if should use auto fuzzy search (allowing typos by a managed proximity algorithm) */\n  fuzzy?: boolean;\n}\n\nexport enum Mode {\n  /** Any of the search terms must be present */\n  OR = 'OR',\n  /** All search terms must be present */\n  AND = 'AND',\n}\n\n/** @enumType */\nexport type ModeWithLiterals = Mode | 'OR' | 'AND';\n\nexport interface SearchVariantsResponse {\n  /** Variants matching the search criteria. */\n  variants?: ReadOnlyVariant[];\n  /** Pagination information with cursors for next pages. */\n  pagingMetadata?: CursorPagingMetadata;\n  /** Aggregation results for faceted search. */\n  aggregationData?: AggregationData;\n}\n\nexport interface AggregationData {\n  /**\n   * key = aggregation name (as derived from search request)\n   * @maxSize 10000\n   */\n  results?: AggregationResults[];\n}\n\nexport interface ValueAggregationResult {\n  /**\n   * Value of the field\n   * @maxLength 100\n   */\n  value?: string;\n  /** Count of entities with this value */\n  count?: number;\n}\n\nexport interface RangeAggregationResult {\n  /** Inclusive lower bound of the range */\n  from?: number | null;\n  /** Exclusive upper bound of the range */\n  to?: number | null;\n  /** Count of entities in this range */\n  count?: number;\n}\n\nexport interface NestedAggregationResults\n  extends NestedAggregationResultsResultOneOf {\n  /** Value aggregation results */\n  values?: ValueResults;\n  /** Range aggregation results */\n  ranges?: RangeResults;\n  /** Scalar aggregation results */\n  scalar?: AggregationResultsScalarResult;\n  /**\n   * User-defined name of aggregation, matches the one provided in request\n   * @maxLength 100\n   */\n  name?: string;\n  /** Type of aggregation that matches result */\n  type?: AggregationTypeWithLiterals;\n  /**\n   * Field to aggregate by, matches the one provided in request\n   * @maxLength 200\n   */\n  fieldPath?: string;\n}\n\n/** @oneof */\nexport interface NestedAggregationResultsResultOneOf {\n  /** Value aggregation results */\n  values?: ValueResults;\n  /** Range aggregation results */\n  ranges?: RangeResults;\n  /** Scalar aggregation results */\n  scalar?: AggregationResultsScalarResult;\n}\n\nexport interface ValueResults {\n  /**\n   * List of value aggregations\n   * @maxSize 250\n   */\n  results?: ValueAggregationResult[];\n}\n\nexport interface RangeResults {\n  /**\n   * List of ranges returned in same order as requested\n   * @maxSize 50\n   */\n  results?: RangeAggregationResult[];\n}\n\nexport interface AggregationResultsScalarResult {\n  /** Type of scalar aggregation */\n  type?: ScalarTypeWithLiterals;\n  /** Value of the scalar aggregation */\n  value?: number;\n}\n\nexport interface NestedValueAggregationResult {\n  /**\n   * Value of the field\n   * @maxLength 1000\n   */\n  value?: string;\n  /** Nested aggregations */\n  nestedResults?: NestedAggregationResults;\n}\n\nexport interface ValueResult {\n  /**\n   * Value of the field\n   * @maxLength 1000\n   */\n  value?: string;\n  /** Count of entities with this value */\n  count?: number | null;\n}\n\nexport interface RangeResult {\n  /** Inclusive lower bound of the range */\n  from?: number | null;\n  /** Exclusive upper bound of the range */\n  to?: number | null;\n  /** Count of entities in this range */\n  count?: number | null;\n}\n\nexport interface ScalarResult {\n  /** Value of the scalar aggregation */\n  value?: number;\n}\n\nexport interface NestedResultValue extends NestedResultValueResultOneOf {\n  /** Value aggregation result */\n  value?: ValueResult;\n  /** Range aggregation result */\n  range?: RangeResult;\n  /** Scalar aggregation result */\n  scalar?: ScalarResult;\n  /** Date histogram aggregation result */\n  dateHistogram?: ValueResult;\n}\n\n/** @oneof */\nexport interface NestedResultValueResultOneOf {\n  /** Value aggregation result */\n  value?: ValueResult;\n  /** Range aggregation result */\n  range?: RangeResult;\n  /** Scalar aggregation result */\n  scalar?: ScalarResult;\n  /** Date histogram aggregation result */\n  dateHistogram?: ValueResult;\n}\n\nexport interface Results {\n  /** List of nested aggregations */\n  results?: Record<string, NestedResultValue>;\n}\n\nexport interface DateHistogramResult {\n  /**\n   * Date in ISO 8601 format\n   * @maxLength 100\n   */\n  value?: string;\n  /** Count of documents in the bucket */\n  count?: number;\n}\n\nexport interface GroupByValueResults {\n  /**\n   * List of value aggregations\n   * @maxSize 1000\n   */\n  results?: NestedValueAggregationResult[];\n}\n\nexport interface DateHistogramResults {\n  /**\n   * List of date histogram aggregations\n   * @maxSize 200\n   */\n  results?: DateHistogramResult[];\n}\n\n/**\n * Results of `NESTED` aggregation type in a flattened form\n * aggregations in resulting array are keyed by requested aggregation `name`.\n */\nexport interface NestedResults {\n  /**\n   * List of nested aggregations\n   * @maxSize 1000\n   */\n  results?: Results[];\n}\n\nexport interface AggregationResults extends AggregationResultsResultOneOf {\n  /** Value aggregation results */\n  values?: ValueResults;\n  /** Range aggregation results */\n  ranges?: RangeResults;\n  /** Scalar aggregation results */\n  scalar?: AggregationResultsScalarResult;\n  /** Group by value aggregation results */\n  groupedByValue?: GroupByValueResults;\n  /** Date histogram aggregation results */\n  dateHistogram?: DateHistogramResults;\n  /** Nested aggregation results */\n  nested?: NestedResults;\n  /**\n   * User-defined name of aggregation as derived from search request\n   * @maxLength 100\n   */\n  name?: string;\n  /** Type of aggregation that must match provided kind as derived from search request */\n  type?: AggregationTypeWithLiterals;\n  /**\n   * Field to aggregate by as derived from search request\n   * @maxLength 200\n   */\n  fieldPath?: string;\n}\n\n/** @oneof */\nexport interface AggregationResultsResultOneOf {\n  /** Value aggregation results */\n  values?: ValueResults;\n  /** Range aggregation results */\n  ranges?: RangeResults;\n  /** Scalar aggregation results */\n  scalar?: AggregationResultsScalarResult;\n  /** Group by value aggregation results */\n  groupedByValue?: GroupByValueResults;\n  /** Date histogram aggregation results */\n  dateHistogram?: DateHistogramResults;\n  /** Nested aggregation results */\n  nested?: NestedResults;\n}\n\nexport interface DeprecatedSearchVariantsWithOffsetRequest {\n  /** Search parameters with offset-based pagination. */\n  search?: PlatformOffsetSearch;\n  /**\n   * List of additional fields to include in the response.\n   * See VariantOps.RequestedFields for available options.\n   * @maxSize 100\n   */\n  fields?: RequestedFieldsWithLiterals[];\n}\n\nexport interface PlatformOffsetSearch\n  extends PlatformOffsetSearchPagingMethodOneOf {\n  /** Pointer to page of results using offset. Can not be used together with 'cursor_paging' */\n  paging?: PlatformPaging;\n  /** A filter object. Learn more about [API query language](https://dev.wix.com/docs/rest/articles/getting-started/api-query-language). */\n  filter?: Record<string, any> | null;\n  /** Sort object in the form [{\"fieldName\":\"sortField1\"},{\"fieldName\":\"sortField2\",\"direction\":\"DESC\"}] */\n  sort?: CommonSorting[];\n  /** Aggregations | Faceted search: refers to a way to explore large amounts of data by displaying summaries about various partitions of the data and later allowing to narrow the navigation to a specific partition. */\n  aggregations?: CommonAggregation[];\n  /** free text to match in searchable fields */\n  search?: CommonSearchDetails;\n}\n\n/** @oneof */\nexport interface PlatformOffsetSearchPagingMethodOneOf {\n  /** Pointer to page of results using offset. Can not be used together with 'cursor_paging' */\n  paging?: PlatformPaging;\n}\n\nexport interface CommonSorting {\n  /**\n   * Name of the field to sort by.\n   * @maxLength 512\n   */\n  fieldName?: string;\n  /** Sort order. */\n  order?: CommonSortOrderWithLiterals;\n  /**\n   * When `field_name` is a property of repeated field that is marked as `MATCH_ITEMS` and sort should be done by\n   * a specific element from a collection, filter can/should be provided to ensure correct sort value is picked.\n   *\n   * If multiple filters are provided, they are combined with AND operator.\n   *\n   * Example:\n   * Given we have document like {\"id\": \"1\", \"nestedField\": [{\"price\": 10, \"region\": \"EU\"}, {\"price\": 20, \"region\": \"US\"}]}\n   * and `nestedField` is marked as `MATCH_ITEMS`, to ensure that sorting is done by correct region, filter should be\n   * { fieldName: \"nestedField.price\", \"select_items_by\": [{\"nestedField.region\": \"US\"}] }\n   * @internal\n   * @maxSize 10\n   */\n  selectItemsBy?: Record<string, any>[] | null;\n  /**\n   * Origin point for geo-distance sorting on a GEO field\n   * results are ordered by distance from this point (ASC = nearest first, DESC = farthest first).\n   */\n  origin?: AddressLocation;\n}\n\nexport enum CommonSortOrder {\n  ASC = 'ASC',\n  DESC = 'DESC',\n}\n\n/** @enumType */\nexport type CommonSortOrderWithLiterals = CommonSortOrder | 'ASC' | 'DESC';\n\nexport interface AddressLocation {\n  /** Address latitude. */\n  latitude?: number | null;\n  /** Address longitude. */\n  longitude?: number | null;\n}\n\nexport interface CommonAggregation extends CommonAggregationKindOneOf {\n  /** A value aggregation calculates metrics such as count for specific fields within a dataset, providing insights into the overall distribution and key statistics of those values. For example, use a value aggregation to get the number (count) of products for each price listed in the store. */\n  value?: AggregationValueAggregation;\n  /** A range aggregation calculates the count of the values from the specified field in the dataset that fall within the range of each bucket you define. For example, use a range aggregation to compare the number of reservations made for parties of 4 or less to the number of reservations made for parties with 5 or more. */\n  range?: AggregationRangeAggregation;\n  /** A scalar aggregation calculates a single numerical value from a dataset, summarizing the dataset into one key metric: `COUNT_DISTINCT`, `SUM`, `AVG`, `MIN`, or `MAX`. */\n  scalar?: AggregationScalarAggregation;\n  /** A date histogram calculates the count of time values from the specified field in the dataset that fall within each time interval you define (hour, day, week, etc.) For example, use a date histogram to find how many reservations have been made at a restaurant each week. */\n  dateHistogram?: AggregationDateHistogramAggregation;\n  /** A nested aggregation is applied within the results of another aggregation. Rather than aggregating directly on the primary dataset, first group data using one aggregation and then apply another aggregation within each group. It allows for more complex analyses where you can summarize data at different levels of detail or hierarchy. For example, to get the number of products that are in stock and out of stock for each price listed, first perform a value aggregation on `discountedPriceNumeric`, and a second value aggregation on `inStock`. */\n  nested?: AggregationNestedAggregation;\n  /** A geotile grid aggregation groups geo point values into buckets that represent map tiles at a given precision, for map clustering visualizations. */\n  geotileGrid?: GeotileGridAggregation;\n  /**\n   * Aggregation name, returned in `aggregations.results.name`.\n   * @maxLength 100\n   */\n  name?: string | null;\n  /** Type of aggregation to perform. Must align with the corresponding aggregation field. */\n  type?: CommonAggregationTypeWithLiterals;\n  /**\n   * Field to aggregate by. Use dot notation to specify a JSON path. For example, `order.address.streetName`.\n   * @maxLength 200\n   */\n  fieldPath?: string;\n  /**\n   * Deprecated. Use `nested` instead.\n   * @deprecated Deprecated. Use `nested` instead.\n   * @replacedBy kind.nested\n   * @targetRemovalDate 2024-03-30\n   */\n  groupBy?: GroupByAggregation;\n}\n\n/** @oneof */\nexport interface CommonAggregationKindOneOf {\n  /** A value aggregation calculates metrics such as count for specific fields within a dataset, providing insights into the overall distribution and key statistics of those values. For example, use a value aggregation to get the number (count) of products for each price listed in the store. */\n  value?: AggregationValueAggregation;\n  /** A range aggregation calculates the count of the values from the specified field in the dataset that fall within the range of each bucket you define. For example, use a range aggregation to compare the number of reservations made for parties of 4 or less to the number of reservations made for parties with 5 or more. */\n  range?: AggregationRangeAggregation;\n  /** A scalar aggregation calculates a single numerical value from a dataset, summarizing the dataset into one key metric: `COUNT_DISTINCT`, `SUM`, `AVG`, `MIN`, or `MAX`. */\n  scalar?: AggregationScalarAggregation;\n  /** A date histogram calculates the count of time values from the specified field in the dataset that fall within each time interval you define (hour, day, week, etc.) For example, use a date histogram to find how many reservations have been made at a restaurant each week. */\n  dateHistogram?: AggregationDateHistogramAggregation;\n  /** A nested aggregation is applied within the results of another aggregation. Rather than aggregating directly on the primary dataset, first group data using one aggregation and then apply another aggregation within each group. It allows for more complex analyses where you can summarize data at different levels of detail or hierarchy. For example, to get the number of products that are in stock and out of stock for each price listed, first perform a value aggregation on `discountedPriceNumeric`, and a second value aggregation on `inStock`. */\n  nested?: AggregationNestedAggregation;\n  /** A geotile grid aggregation groups geo point values into buckets that represent map tiles at a given precision, for map clustering visualizations. */\n  geotileGrid?: GeotileGridAggregation;\n}\n\nexport interface RangeAggregationRangeBucket {\n  /** Inclusive lower bound of the range. Required if `to` is not provided. */\n  from?: number | null;\n  /** Exclusive upper bound of the range. Required if `from` is not provided. */\n  to?: number | null;\n}\n\nexport enum ValueAggregationSortType {\n  /** Number of matches in the results. */\n  COUNT = 'COUNT',\n  /** Alphabetically by the field value. */\n  VALUE = 'VALUE',\n}\n\n/** @enumType */\nexport type ValueAggregationSortTypeWithLiterals =\n  | ValueAggregationSortType\n  | 'COUNT'\n  | 'VALUE';\n\nexport enum ValueAggregationSortDirection {\n  /** Descending order. */\n  DESC = 'DESC',\n  /** Ascending order. */\n  ASC = 'ASC',\n}\n\n/** @enumType */\nexport type ValueAggregationSortDirectionWithLiterals =\n  | ValueAggregationSortDirection\n  | 'DESC'\n  | 'ASC';\n\nexport enum ValueAggregationMissingValues {\n  /** Exclude missing values from the aggregation results. */\n  EXCLUDE = 'EXCLUDE',\n  /** Include missing values in the aggregation results. */\n  INCLUDE = 'INCLUDE',\n}\n\n/** @enumType */\nexport type ValueAggregationMissingValuesWithLiterals =\n  | ValueAggregationMissingValues\n  | 'EXCLUDE'\n  | 'INCLUDE';\n\nexport interface ValueAggregationIncludeMissingValuesOptions {\n  /**\n   * Specify a custom name for the bucket containing the missing values. Defaults are `\"N/A\"` for strings, `0` for integers, and `false` for booleans.\n   * @maxLength 20\n   */\n  addToBucket?: string;\n}\n\nexport enum CommonScalarType {\n  /** Total number of distinct values. */\n  COUNT_DISTINCT = 'COUNT_DISTINCT',\n  /** Minimum value. */\n  MIN = 'MIN',\n  /** Maximum value. */\n  MAX = 'MAX',\n  /**\n   * Sum of values.\n   * @internal\n   */\n  SUM = 'SUM',\n  /**\n   * Average of values.\n   * @internal\n   */\n  AVG = 'AVG',\n}\n\n/** @enumType */\nexport type CommonScalarTypeWithLiterals =\n  | CommonScalarType\n  | 'COUNT_DISTINCT'\n  | 'MIN'\n  | 'MAX';\n\nexport interface AggregationValueAggregation\n  extends AggregationValueAggregationOptionsOneOf {\n  /** Options for including missing values in results. */\n  includeOptions?: ValueAggregationIncludeMissingValuesOptions;\n  /** Sort type. */\n  sortType?: ValueAggregationSortTypeWithLiterals;\n  /** Sort direction. */\n  sortDirection?: ValueAggregationSortDirectionWithLiterals;\n  /**\n   * Number of aggregation results to return.\n   * Min: `1`\n   * Max: `250`\n   * Default: `10`\n   */\n  limit?: number | null;\n  /**\n   * Whether to include or exclude missing values in the aggregation results.\n   * Default: `EXCLUDE`.\n   */\n  missingValues?: ValueAggregationMissingValuesWithLiterals;\n}\n\n/** @oneof */\nexport interface AggregationValueAggregationOptionsOneOf {\n  /** Options for including missing values in results. */\n  includeOptions?: ValueAggregationIncludeMissingValuesOptions;\n}\n\nexport enum NestedAggregationNestedAggregationType {\n  /** Calculates the distribution of a specific field's values within a dataset, providing insights into the overall distribution and key statistics of those values. */\n  VALUE = 'VALUE',\n  /** Calculates the count of the values from the specified field in the dataset that fall within the range of each bucket you define. */\n  RANGE = 'RANGE',\n  /** Calculates a single numerical value from a dataset, summarizing the dataset into one key metric: `COUNT_DISTINCT`, `SUM`, `AVG`, `MIN`, or `MAX`. */\n  SCALAR = 'SCALAR',\n  /** Calculates the count of time values from the specified field in the dataset that fall within each time interval you define (hour, day, week, etc.). */\n  DATE_HISTOGRAM = 'DATE_HISTOGRAM',\n}\n\n/** @enumType */\nexport type NestedAggregationNestedAggregationTypeWithLiterals =\n  | NestedAggregationNestedAggregationType\n  | 'VALUE'\n  | 'RANGE'\n  | 'SCALAR'\n  | 'DATE_HISTOGRAM';\n\nexport interface AggregationRangeAggregation {\n  /**\n   * List of range buckets. During aggregation each entity is placed in the first bucket its value falls into, based on the provided range bounds.\n   * @maxSize 50\n   */\n  buckets?: RangeAggregationRangeBucket[];\n}\n\nexport interface AggregationScalarAggregation {\n  /** Operator type for the scalar aggregation. */\n  type?: CommonScalarTypeWithLiterals;\n}\n\nexport interface AggregationDateHistogramAggregation {\n  /** Interval for date histogram aggregation. */\n  interval?: DateHistogramAggregationIntervalWithLiterals;\n}\n\nexport enum DateHistogramAggregationInterval {\n  YEAR = 'YEAR',\n  MONTH = 'MONTH',\n  WEEK = 'WEEK',\n  DAY = 'DAY',\n  HOUR = 'HOUR',\n  MINUTE = 'MINUTE',\n  SECOND = 'SECOND',\n}\n\n/** @enumType */\nexport type DateHistogramAggregationIntervalWithLiterals =\n  | DateHistogramAggregationInterval\n  | 'YEAR'\n  | 'MONTH'\n  | 'WEEK'\n  | 'DAY'\n  | 'HOUR'\n  | 'MINUTE'\n  | 'SECOND';\n\nexport interface NestedAggregationNestedAggregationItem\n  extends NestedAggregationNestedAggregationItemKindOneOf {\n  /** A value aggregation calculates the distribution of a specific field's values within a dataset, providing insights into the overall distribution and key statistics of those values. For example, use a value aggregation to get the number (count) of orders for each order status. */\n  value?: AggregationValueAggregation;\n  /** A range aggregation calculates the count of the values from the specified field in the dataset that fall within the range of each bucket you define. For example, use a range aggregation to compare the number of reservations made for parties of 4 or less to the number of reservations made for parties with 5 or more. If ranges overlap, a record that fits more than one range will only be counted in the first range that matches the criteria. */\n  range?: AggregationRangeAggregation;\n  /** A scalar aggregation calculates a single numerical value from a dataset, summarizing the dataset into one key metric: `COUNT_DISTINCT`, `SUM`, `AVG`, `MIN`, or `MAX`. */\n  scalar?: AggregationScalarAggregation;\n  /** A date histogram calculates the count of time values from the specified field in the dataset that fall within each time interval you define (hour, day, week, etc.). For example, use a date histogram to determine how many reservations have been made at a restaurant each week. If ranges overlap, a record that fits more than one range will only be counted in the first range that matches the criteria. */\n  dateHistogram?: AggregationDateHistogramAggregation;\n  /**\n   * Unique, caller-defined aggregation name, returned in `aggregations.results`.\n   * @maxLength 100\n   */\n  name?: string | null;\n  /** Type of aggregation to perform. The matching aggregation field must be passed. */\n  type?: NestedAggregationNestedAggregationTypeWithLiterals;\n  /**\n   * Field to aggregate by. Use dot notation to specify a JSON path. For example, `order.address.streetName`.\n   * @maxLength 200\n   */\n  fieldPath?: string;\n}\n\n/** @oneof */\nexport interface NestedAggregationNestedAggregationItemKindOneOf {\n  /** A value aggregation calculates the distribution of a specific field's values within a dataset, providing insights into the overall distribution and key statistics of those values. For example, use a value aggregation to get the number (count) of orders for each order status. */\n  value?: AggregationValueAggregation;\n  /** A range aggregation calculates the count of the values from the specified field in the dataset that fall within the range of each bucket you define. For example, use a range aggregation to compare the number of reservations made for parties of 4 or less to the number of reservations made for parties with 5 or more. If ranges overlap, a record that fits more than one range will only be counted in the first range that matches the criteria. */\n  range?: AggregationRangeAggregation;\n  /** A scalar aggregation calculates a single numerical value from a dataset, summarizing the dataset into one key metric: `COUNT_DISTINCT`, `SUM`, `AVG`, `MIN`, or `MAX`. */\n  scalar?: AggregationScalarAggregation;\n  /** A date histogram calculates the count of time values from the specified field in the dataset that fall within each time interval you define (hour, day, week, etc.). For example, use a date histogram to determine how many reservations have been made at a restaurant each week. If ranges overlap, a record that fits more than one range will only be counted in the first range that matches the criteria. */\n  dateHistogram?: AggregationDateHistogramAggregation;\n}\n\nexport enum CommonAggregationType {\n  /** Calculates the distribution of a specific field's values within a dataset, providing insights into the overall distribution and key statistics of those values. */\n  VALUE = 'VALUE',\n  /** Calculates the count of the values from the specified field in the dataset that fall within the range of each bucket you define. */\n  RANGE = 'RANGE',\n  /** Calculates a single numerical value from a dataset, summarizing the dataset into one key metric: `COUNT_DISTINCT`, `SUM`, `AVG`, `MIN`, or `MAX`. */\n  SCALAR = 'SCALAR',\n  /** Calculates the count of time values from the specified field in the dataset that fall within each time interval you define (hour, day, week, etc.). */\n  DATE_HISTOGRAM = 'DATE_HISTOGRAM',\n  /** Flattened list of aggregations, where each aggregation is nested within previous one. */\n  NESTED = 'NESTED',\n  /** Groups geo point values into buckets that represent map tiles at a given precision, for map clustering. */\n  GEOTILE_GRID = 'GEOTILE_GRID',\n}\n\n/** @enumType */\nexport type CommonAggregationTypeWithLiterals =\n  | CommonAggregationType\n  | 'VALUE'\n  | 'RANGE'\n  | 'SCALAR'\n  | 'DATE_HISTOGRAM'\n  | 'NESTED'\n  | 'GEOTILE_GRID';\n\n/** Nested aggregation expressed through a list of aggregation where each next aggregation is nested within previous one. */\nexport interface AggregationNestedAggregation {\n  /**\n   * Flattened list of aggregations, where each aggregation is nested within previous one.\n   * @minSize 2\n   * @maxSize 3\n   */\n  nestedAggregations?: NestedAggregationNestedAggregationItem[];\n}\n\n/** Groups geo point values into buckets that represent map tiles at a given precision, for map clustering. */\nexport interface GeotileGridAggregation {\n  /**\n   * Precision (zoom) level of the geotile grid. Higher values produce smaller, more numerous tiles.\n   * @max 29\n   */\n  precision?: number;\n}\n\nexport interface GroupByAggregation extends GroupByAggregationKindOneOf {\n  /** Value aggregation configuration. */\n  value?: AggregationValueAggregation;\n  /**\n   * Unique, caller-defined aggregation name, returned in `aggregations.results`.\n   * @maxLength 100\n   */\n  name?: string | null;\n  /**\n   * Field to aggregate by.\n   * @maxLength 200\n   */\n  fieldPath?: string;\n}\n\n/** @oneof */\nexport interface GroupByAggregationKindOneOf {\n  /** Value aggregation configuration. */\n  value?: AggregationValueAggregation;\n}\n\nexport interface CommonSearchDetails {\n  /** Search mode. Defines the search logic for combining multiple terms in the `expression`. */\n  mode?: SearchDetailsModeWithLiterals;\n  /**\n   * Search term or expression.\n   * @maxLength 100\n   */\n  expression?: string | null;\n  /**\n   * Fields to search in. If the array is empty, all searchable fields are searched. Use dot notation to specify a JSON path. For example, `order.address.streetName`.\n   * @maxLength 200\n   * @maxSize 20\n   */\n  fields?: string[];\n  /** Whether to enable the search function to use an algorithm to automatically find results that are close to the search expression, such as typos and declensions. */\n  fuzzy?: boolean;\n}\n\nexport enum SearchDetailsMode {\n  /** At least one of the search terms must be present. */\n  OR = 'OR',\n  /** All search terms must be present. */\n  AND = 'AND',\n}\n\n/** @enumType */\nexport type SearchDetailsModeWithLiterals = SearchDetailsMode | 'OR' | 'AND';\n\nexport interface PlatformPaging {\n  /**\n   * Number of items to load.\n   * @max 100\n   */\n  limit?: number | null;\n  /** Number of items to skip in the current sort order. */\n  offset?: number | null;\n}\n\nexport interface DeprecatedSearchVariantsWithOffsetResponse {\n  /** Variants matching the search criteria. */\n  variants?: ReadOnlyVariant[];\n  /** Pagination information for offset-based results. */\n  pagingMetadata?: PagingMetadata;\n  /** Aggregation results for faceted search. */\n  aggregationData?: Aggregation;\n}\n\nexport interface PagingMetadata {\n  /** Number of items returned in the response. */\n  count?: number | null;\n  /** Offset that was requested. */\n  offset?: number | null;\n  /** Total number of items that match the query. */\n  total?: number | null;\n  /** Flag that indicates the server failed to calculate the `total` field. */\n  tooManyToCount?: boolean | null;\n  /**\n   * Indicates if there are more results after the current page.\n   * If `true`, another page of results can be retrieved.\n   * If `false`, this is the last page.\n   * @internal\n   */\n  hasNext?: boolean | null;\n}\n\nexport interface DomainEvent extends DomainEventBodyOneOf {\n  createdEvent?: EntityCreatedEvent;\n  updatedEvent?: EntityUpdatedEvent;\n  deletedEvent?: EntityDeletedEvent;\n  actionEvent?: ActionEvent;\n  /** Event ID. With this ID you can easily spot duplicated events and ignore them. */\n  id?: string;\n  /**\n   * Fully Qualified Domain Name of an entity. This is a unique identifier assigned to the API main business entities.\n   * For example, `wix.stores.catalog.product`, `wix.bookings.session`, `wix.payments.transaction`.\n   */\n  entityFqdn?: string;\n  /**\n   * Event action name, placed at the top level to make it easier for users to dispatch messages.\n   * For example: `created`/`updated`/`deleted`/`started`/`completed`/`email_opened`.\n   */\n  slug?: string;\n  /** ID of the entity associated with the event. */\n  entityId?: string;\n  /** Event timestamp in [ISO-8601](https://en.wikipedia.org/wiki/ISO_8601) format and UTC time. For example, `2020-04-26T13:57:50.699Z`. */\n  eventTime?: Date | null;\n  /**\n   * Whether the event was triggered as a result of a privacy regulation application\n   * (for example, GDPR).\n   */\n  triggeredByAnonymizeRequest?: boolean | null;\n  /** If present, indicates the action that triggered the event. */\n  originatedFrom?: string | null;\n  /**\n   * A sequence number that indicates the order of updates to an entity. For example, if an entity was updated at `16:00` and then again at `16:01`, the second update will always have a higher sequence number.\n   * You can use this number to make sure you're handling updates in the right order. Just save the latest sequence number on your end and compare it to the one in each new message. If the new message has an older (lower) number, you can safely ignore it.\n   */\n  entityEventSequence?: string | null;\n}\n\n/** @oneof */\nexport interface DomainEventBodyOneOf {\n  createdEvent?: EntityCreatedEvent;\n  updatedEvent?: EntityUpdatedEvent;\n  deletedEvent?: EntityDeletedEvent;\n  actionEvent?: ActionEvent;\n}\n\nexport interface EntityCreatedEvent {\n  entityAsJson?: string;\n  /**\n   * Indicates the event was triggered by a restore-from-trashbin operation for a previously deleted entity\n   * @internal\n   */\n  triggeredByUndelete?: boolean | null;\n  /** Indicates the event was triggered by a restore-from-trashbin operation for a previously deleted entity */\n  restoreInfo?: RestoreInfo;\n  /**\n   * Optional domain-specific metadata defined by the API owner, encoded as JSON.\n   * @internal\n   */\n  additionalMetadataAsJson?: string | null;\n}\n\nexport interface RestoreInfo {\n  deletedDate?: Date | null;\n}\n\nexport interface EntityUpdatedEvent {\n  /**\n   * Since platformized APIs only expose PATCH and not PUT we can't assume that the fields sent from the client are the actual diff.\n   * This means that to generate a list of changed fields (as opposed to sent fields) one needs to traverse both objects.\n   * We don't want to impose this on all developers and so we leave this traversal to the notification recipients which need it.\n   */\n  currentEntityAsJson?: string;\n  /**\n   * This field is currently part of the of the EntityUpdatedEvent msg, but scala/node libraries which implements the domain events standard\n   * wont populate it / have any reference to it in the API.\n   * The main reason for it is that fetching the old entity from the DB will have a performance hit on an update operation so unless truly needed,\n   * the developer should send only the new (current) entity.\n   * An additional reason is not wanting to send this additional entity over the wire (kafka) since in some cases it can be really big\n   * Developers that must reflect the old entity will have to implement their own domain event sender mechanism which will follow the DomainEvent proto message.\n   * @internal\n   * @deprecated\n   */\n  previousEntityAsJson?: string | null;\n  /**\n   * Map of fully qualified field paths to their previous values for fields that changed.\n   * For more details please see [AIP](https://dev.wix.com/docs/rnd-general/articles/p13n-guidelines-aips/guidance-aips/design-patterns/7016-events#modified-fields-format)\n   * @internal\n   */\n  modifiedFields?: Record<string, any>;\n  /**\n   * Optional domain-specific metadata defined by the API owner, encoded as JSON.\n   * @internal\n   */\n  additionalMetadataAsJson?: string | null;\n}\n\nexport interface EntityDeletedEvent {\n  /**\n   * Indicates if the entity is sent to trash-bin. only available when trash-bin is enabled\n   * @internal\n   */\n  movedToTrash?: boolean | null;\n  /** Entity that was deleted. */\n  deletedEntityAsJson?: string | null;\n  /**\n   * Optional domain-specific metadata defined by the API owner, encoded as JSON.\n   * @internal\n   */\n  additionalMetadataAsJson?: string | null;\n}\n\nexport interface ActionEvent {\n  bodyAsJson?: string;\n}\n\nexport interface Empty {}\n\nexport interface MessageEnvelope {\n  /**\n   * App instance ID.\n   * @format GUID\n   */\n  instanceId?: string | null;\n  /**\n   * Event type.\n   * @maxLength 150\n   */\n  eventType?: string;\n  /** The identification type and identity data. */\n  identity?: IdentificationData;\n  /** Stringify payload. */\n  data?: string;\n  /** Details related to the account */\n  accountInfo?: AccountInfo;\n}\n\nexport interface IdentificationData extends IdentificationDataIdOneOf {\n  /**\n   * ID of a site visitor that has not logged in to the site.\n   * @format GUID\n   */\n  anonymousVisitorId?: string;\n  /**\n   * ID of a site visitor that has logged in to the site.\n   * @format GUID\n   */\n  memberId?: string;\n  /**\n   * ID of a Wix user (site owner, contributor, etc.).\n   * @format GUID\n   */\n  wixUserId?: string;\n  /**\n   * ID of an app.\n   * @format GUID\n   */\n  appId?: string;\n  /** @readonly */\n  identityType?: WebhookIdentityTypeWithLiterals;\n}\n\n/** @oneof */\nexport interface IdentificationDataIdOneOf {\n  /**\n   * ID of a site visitor that has not logged in to the site.\n   * @format GUID\n   */\n  anonymousVisitorId?: string;\n  /**\n   * ID of a site visitor that has logged in to the site.\n   * @format GUID\n   */\n  memberId?: string;\n  /**\n   * ID of a Wix user (site owner, contributor, etc.).\n   * @format GUID\n   */\n  wixUserId?: string;\n  /**\n   * ID of an app.\n   * @format GUID\n   */\n  appId?: string;\n}\n\nexport enum WebhookIdentityType {\n  UNKNOWN = 'UNKNOWN',\n  ANONYMOUS_VISITOR = 'ANONYMOUS_VISITOR',\n  MEMBER = 'MEMBER',\n  WIX_USER = 'WIX_USER',\n  APP = 'APP',\n}\n\n/** @enumType */\nexport type WebhookIdentityTypeWithLiterals =\n  | WebhookIdentityType\n  | 'UNKNOWN'\n  | 'ANONYMOUS_VISITOR'\n  | 'MEMBER'\n  | 'WIX_USER'\n  | 'APP';\n\nexport interface AccountInfo {\n  /**\n   * ID of the Wix account associated with the event.\n   * @format GUID\n   */\n  accountId?: string | null;\n  /**\n   * ID of the parent Wix account. Only included when accountId belongs to a child account.\n   * @format GUID\n   */\n  parentAccountId?: string | null;\n  /**\n   * ID of the Wix site associated with the event. Only included when the event is tied to a specific site.\n   * @format GUID\n   */\n  siteId?: string | null;\n}\n","import * as ambassadorWixStoresCatalogV3ReadOnlyVariant from './stores-catalog-v3-read-only-variant-read-only-variants-v-3.http.js';\nimport * as ambassadorWixStoresCatalogV3ReadOnlyVariantTypes from './stores-catalog-v3-read-only-variant-read-only-variants-v-3.types.js';\nimport * as ambassadorWixStoresCatalogV3ReadOnlyVariantUniversalTypes from './stores-catalog-v3-read-only-variant-read-only-variants-v-3.universal.js';\n\nexport type __PublicMethodMetaInfo<\n  K = string,\n  M = unknown,\n  T = unknown,\n  S = unknown,\n  Q = unknown,\n  R = unknown\n> = {\n  getUrl: (context: any) => string;\n  httpMethod: K;\n  path: string;\n  pathParams: M;\n  __requestType: T;\n  __originalRequestType: S;\n  __responseType: Q;\n  __originalResponseType: R;\n};\n\nexport function queryVariants(): __PublicMethodMetaInfo<\n  'POST',\n  {},\n  ambassadorWixStoresCatalogV3ReadOnlyVariantUniversalTypes.QueryVariantsRequest,\n  ambassadorWixStoresCatalogV3ReadOnlyVariantTypes.QueryVariantsRequest,\n  ambassadorWixStoresCatalogV3ReadOnlyVariantUniversalTypes.QueryVariantsResponse,\n  ambassadorWixStoresCatalogV3ReadOnlyVariantTypes.QueryVariantsResponse\n> {\n  const payload = {} as any;\n\n  const getRequestOptions =\n    ambassadorWixStoresCatalogV3ReadOnlyVariant.queryVariants(payload);\n\n  const getUrl = (context: any): string => {\n    const { url } = getRequestOptions(context);\n    return url!;\n  };\n\n  return {\n    getUrl,\n    httpMethod: 'POST',\n    path: '/v3/products/query-variants',\n    pathParams: {},\n    __requestType: null as any,\n    __originalRequestType: null as any,\n    __responseType: null as any,\n    __originalResponseType: null as any,\n  };\n}\n\nexport function searchVariants(): __PublicMethodMetaInfo<\n  'POST',\n  {},\n  ambassadorWixStoresCatalogV3ReadOnlyVariantUniversalTypes.SearchVariantsRequest,\n  ambassadorWixStoresCatalogV3ReadOnlyVariantTypes.SearchVariantsRequest,\n  ambassadorWixStoresCatalogV3ReadOnlyVariantUniversalTypes.SearchVariantsResponse,\n  ambassadorWixStoresCatalogV3ReadOnlyVariantTypes.SearchVariantsResponse\n> {\n  const payload = {} as any;\n\n  const getRequestOptions =\n    ambassadorWixStoresCatalogV3ReadOnlyVariant.searchVariants(payload);\n\n  const getUrl = (context: any): string => {\n    const { url } = getRequestOptions(context);\n    return url!;\n  };\n\n  return {\n    getUrl,\n    httpMethod: 'POST',\n    path: '/v3/products/search-variants',\n    pathParams: {},\n    __requestType: null as any,\n    __originalRequestType: null as any,\n    __responseType: null as any,\n    __originalResponseType: null as any,\n  };\n}\n\nexport {\n  ReadOnlyVariant as ReadOnlyVariantOriginal,\n  ReadOnlyVariantTypedPropertiesOneOf as ReadOnlyVariantTypedPropertiesOneOfOriginal,\n  OptionChoice as OptionChoiceOriginal,\n  OptionChoiceIds as OptionChoiceIdsOriginal,\n  OptionChoiceNames as OptionChoiceNamesOriginal,\n  PriceInfo as PriceInfoOriginal,\n  FixedMonetaryAmount as FixedMonetaryAmountOriginal,\n  RevenueDetails as RevenueDetailsOriginal,\n  ProductMedia as ProductMediaOriginal,\n  ProductMediaSetByOneOf as ProductMediaSetByOneOfOriginal,\n  ProductMediaMediaOneOf as ProductMediaMediaOneOfOriginal,\n  Image as ImageOriginal,\n  VideoV2 as VideoV2Original,\n  VideoResolution as VideoResolutionOriginal,\n  MediaType as MediaTypeOriginal,\n  MediaTypeWithLiterals as MediaTypeWithLiteralsOriginal,\n  Thumbnail as ThumbnailOriginal,\n  VariantPhysicalProperties as VariantPhysicalPropertiesOriginal,\n  PricePerUnit as PricePerUnitOriginal,\n  PricePerUnitSettings as PricePerUnitSettingsOriginal,\n  MeasurementUnit as MeasurementUnitOriginal,\n  MeasurementUnitWithLiterals as MeasurementUnitWithLiteralsOriginal,\n  Dimensions as DimensionsOriginal,\n  DimensionsUnit as DimensionsUnitOriginal,\n  DimensionsUnitWithLiterals as DimensionsUnitWithLiteralsOriginal,\n  VariantDigitalProperties as VariantDigitalPropertiesOriginal,\n  SecuredMedia as SecuredMediaOriginal,\n  FileType as FileTypeOriginal,\n  FileTypeWithLiterals as FileTypeWithLiteralsOriginal,\n  SubscriptionPricesInfo as SubscriptionPricesInfoOriginal,\n  SubscriptionPrice as SubscriptionPriceOriginal,\n  SubscriptionPricePerUnit as SubscriptionPricePerUnitOriginal,\n  InventoryStatus as InventoryStatusOriginal,\n  ProductFields as ProductFieldsOriginal,\n  ProductFieldsTypedPropertiesOneOf as ProductFieldsTypedPropertiesOneOfOriginal,\n  ProductType as ProductTypeOriginal,\n  ProductTypeWithLiterals as ProductTypeWithLiteralsOriginal,\n  PhysicalProperties as PhysicalPropertiesOriginal,\n  WeightMeasurementUnitInfo as WeightMeasurementUnitInfoOriginal,\n  WeightUnit as WeightUnitOriginal,\n  WeightUnitWithLiterals as WeightUnitWithLiteralsOriginal,\n  Brand as BrandOriginal,\n  InternalMetadata as InternalMetadataOriginal,\n  InternalRowState as InternalRowStateOriginal,\n  InternalRowStateWithLiterals as InternalRowStateWithLiteralsOriginal,\n  LocationListing as LocationListingOriginal,\n  DiscountInfo as DiscountInfoOriginal,\n  UpdateInternalDocumentsEvent as UpdateInternalDocumentsEventOriginal,\n  UpdateInternalDocumentsEventOperationOneOf as UpdateInternalDocumentsEventOperationOneOfOriginal,\n  InternalDocument as InternalDocumentOriginal,\n  InternalDocumentUpdateOperation as InternalDocumentUpdateOperationOriginal,\n  DeleteByIdsOperation as DeleteByIdsOperationOriginal,\n  DeleteByFilterOperation as DeleteByFilterOperationOriginal,\n  InternalDocumentUpdateByFilterOperation as InternalDocumentUpdateByFilterOperationOriginal,\n  InternalUpdateExistingOperation as InternalUpdateExistingOperationOriginal,\n  VersionedDocumentUpdateOperation as VersionedDocumentUpdateOperationOriginal,\n  VersioningMode as VersioningModeOriginal,\n  VersioningModeWithLiterals as VersioningModeWithLiteralsOriginal,\n  VersionedDeleteByIdsOperation as VersionedDeleteByIdsOperationOriginal,\n  VersionedDocumentId as VersionedDocumentIdOriginal,\n  QueryVariantsRequest as QueryVariantsRequestOriginal,\n  CursorQuery as CursorQueryOriginal,\n  CursorQueryPagingMethodOneOf as CursorQueryPagingMethodOneOfOriginal,\n  Sorting as SortingOriginal,\n  SortOrder as SortOrderOriginal,\n  SortOrderWithLiterals as SortOrderWithLiteralsOriginal,\n  CursorPaging as CursorPagingOriginal,\n  RequestedFields as RequestedFieldsOriginal,\n  RequestedFieldsWithLiterals as RequestedFieldsWithLiteralsOriginal,\n  QueryVariantsResponse as QueryVariantsResponseOriginal,\n  CursorPagingMetadata as CursorPagingMetadataOriginal,\n  Cursors as CursorsOriginal,\n  SearchVariantsRequest as SearchVariantsRequestOriginal,\n  CursorSearch as CursorSearchOriginal,\n  CursorSearchPagingMethodOneOf as CursorSearchPagingMethodOneOfOriginal,\n  Aggregation as AggregationOriginal,\n  AggregationKindOneOf as AggregationKindOneOfOriginal,\n  RangeBucket as RangeBucketOriginal,\n  SortType as SortTypeOriginal,\n  SortTypeWithLiterals as SortTypeWithLiteralsOriginal,\n  SortDirection as SortDirectionOriginal,\n  SortDirectionWithLiterals as SortDirectionWithLiteralsOriginal,\n  MissingValues as MissingValuesOriginal,\n  MissingValuesWithLiterals as MissingValuesWithLiteralsOriginal,\n  IncludeMissingValuesOptions as IncludeMissingValuesOptionsOriginal,\n  ScalarType as ScalarTypeOriginal,\n  ScalarTypeWithLiterals as ScalarTypeWithLiteralsOriginal,\n  ValueAggregation as ValueAggregationOriginal,\n  ValueAggregationOptionsOneOf as ValueAggregationOptionsOneOfOriginal,\n  NestedAggregationType as NestedAggregationTypeOriginal,\n  NestedAggregationTypeWithLiterals as NestedAggregationTypeWithLiteralsOriginal,\n  RangeAggregation as RangeAggregationOriginal,\n  ScalarAggregation as ScalarAggregationOriginal,\n  DateHistogramAggregation as DateHistogramAggregationOriginal,\n  Interval as IntervalOriginal,\n  IntervalWithLiterals as IntervalWithLiteralsOriginal,\n  NestedAggregationItem as NestedAggregationItemOriginal,\n  NestedAggregationItemKindOneOf as NestedAggregationItemKindOneOfOriginal,\n  AggregationType as AggregationTypeOriginal,\n  AggregationTypeWithLiterals as AggregationTypeWithLiteralsOriginal,\n  NestedAggregation as NestedAggregationOriginal,\n  SearchDetails as SearchDetailsOriginal,\n  Mode as ModeOriginal,\n  ModeWithLiterals as ModeWithLiteralsOriginal,\n  SearchVariantsResponse as SearchVariantsResponseOriginal,\n  AggregationData as AggregationDataOriginal,\n  ValueAggregationResult as ValueAggregationResultOriginal,\n  RangeAggregationResult as RangeAggregationResultOriginal,\n  NestedAggregationResults as NestedAggregationResultsOriginal,\n  NestedAggregationResultsResultOneOf as NestedAggregationResultsResultOneOfOriginal,\n  ValueResults as ValueResultsOriginal,\n  RangeResults as RangeResultsOriginal,\n  AggregationResultsScalarResult as AggregationResultsScalarResultOriginal,\n  NestedValueAggregationResult as NestedValueAggregationResultOriginal,\n  ValueResult as ValueResultOriginal,\n  RangeResult as RangeResultOriginal,\n  ScalarResult as ScalarResultOriginal,\n  NestedResultValue as NestedResultValueOriginal,\n  NestedResultValueResultOneOf as NestedResultValueResultOneOfOriginal,\n  Results as ResultsOriginal,\n  DateHistogramResult as DateHistogramResultOriginal,\n  GroupByValueResults as GroupByValueResultsOriginal,\n  DateHistogramResults as DateHistogramResultsOriginal,\n  NestedResults as NestedResultsOriginal,\n  AggregationResults as AggregationResultsOriginal,\n  AggregationResultsResultOneOf as AggregationResultsResultOneOfOriginal,\n  DeprecatedSearchVariantsWithOffsetRequest as DeprecatedSearchVariantsWithOffsetRequestOriginal,\n  PlatformOffsetSearch as PlatformOffsetSearchOriginal,\n  PlatformOffsetSearchPagingMethodOneOf as PlatformOffsetSearchPagingMethodOneOfOriginal,\n  CommonSorting as CommonSortingOriginal,\n  CommonSortOrder as CommonSortOrderOriginal,\n  CommonSortOrderWithLiterals as CommonSortOrderWithLiteralsOriginal,\n  AddressLocation as AddressLocationOriginal,\n  CommonAggregation as CommonAggregationOriginal,\n  CommonAggregationKindOneOf as CommonAggregationKindOneOfOriginal,\n  RangeAggregationRangeBucket as RangeAggregationRangeBucketOriginal,\n  ValueAggregationSortType as ValueAggregationSortTypeOriginal,\n  ValueAggregationSortTypeWithLiterals as ValueAggregationSortTypeWithLiteralsOriginal,\n  ValueAggregationSortDirection as ValueAggregationSortDirectionOriginal,\n  ValueAggregationSortDirectionWithLiterals as ValueAggregationSortDirectionWithLiteralsOriginal,\n  ValueAggregationMissingValues as ValueAggregationMissingValuesOriginal,\n  ValueAggregationMissingValuesWithLiterals as ValueAggregationMissingValuesWithLiteralsOriginal,\n  ValueAggregationIncludeMissingValuesOptions as ValueAggregationIncludeMissingValuesOptionsOriginal,\n  CommonScalarType as CommonScalarTypeOriginal,\n  CommonScalarTypeWithLiterals as CommonScalarTypeWithLiteralsOriginal,\n  AggregationValueAggregation as AggregationValueAggregationOriginal,\n  AggregationValueAggregationOptionsOneOf as AggregationValueAggregationOptionsOneOfOriginal,\n  NestedAggregationNestedAggregationType as NestedAggregationNestedAggregationTypeOriginal,\n  NestedAggregationNestedAggregationTypeWithLiterals as NestedAggregationNestedAggregationTypeWithLiteralsOriginal,\n  AggregationRangeAggregation as AggregationRangeAggregationOriginal,\n  AggregationScalarAggregation as AggregationScalarAggregationOriginal,\n  AggregationDateHistogramAggregation as AggregationDateHistogramAggregationOriginal,\n  DateHistogramAggregationInterval as DateHistogramAggregationIntervalOriginal,\n  DateHistogramAggregationIntervalWithLiterals as DateHistogramAggregationIntervalWithLiteralsOriginal,\n  NestedAggregationNestedAggregationItem as NestedAggregationNestedAggregationItemOriginal,\n  NestedAggregationNestedAggregationItemKindOneOf as NestedAggregationNestedAggregationItemKindOneOfOriginal,\n  CommonAggregationType as CommonAggregationTypeOriginal,\n  CommonAggregationTypeWithLiterals as CommonAggregationTypeWithLiteralsOriginal,\n  AggregationNestedAggregation as AggregationNestedAggregationOriginal,\n  GeotileGridAggregation as GeotileGridAggregationOriginal,\n  GroupByAggregation as GroupByAggregationOriginal,\n  GroupByAggregationKindOneOf as GroupByAggregationKindOneOfOriginal,\n  CommonSearchDetails as CommonSearchDetailsOriginal,\n  SearchDetailsMode as SearchDetailsModeOriginal,\n  SearchDetailsModeWithLiterals as SearchDetailsModeWithLiteralsOriginal,\n  PlatformPaging as PlatformPagingOriginal,\n  DeprecatedSearchVariantsWithOffsetResponse as DeprecatedSearchVariantsWithOffsetResponseOriginal,\n  PagingMetadata as PagingMetadataOriginal,\n  DomainEvent as DomainEventOriginal,\n  DomainEventBodyOneOf as DomainEventBodyOneOfOriginal,\n  EntityCreatedEvent as EntityCreatedEventOriginal,\n  RestoreInfo as RestoreInfoOriginal,\n  EntityUpdatedEvent as EntityUpdatedEventOriginal,\n  EntityDeletedEvent as EntityDeletedEventOriginal,\n  ActionEvent as ActionEventOriginal,\n  Empty as EmptyOriginal,\n  MessageEnvelope as MessageEnvelopeOriginal,\n  IdentificationData as IdentificationDataOriginal,\n  IdentificationDataIdOneOf as IdentificationDataIdOneOfOriginal,\n  WebhookIdentityType as WebhookIdentityTypeOriginal,\n  WebhookIdentityTypeWithLiterals as WebhookIdentityTypeWithLiteralsOriginal,\n  AccountInfo as AccountInfoOriginal,\n} from './stores-catalog-v3-read-only-variant-read-only-variants-v-3.types.js';\n"],"mappings":"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","names":["payload","MediaType","MeasurementUnit","DimensionsUnit","FileType","ProductType","WeightUnit","InternalRowState","VersioningMode","SortOrder","RequestedFields","SortType","SortDirection","MissingValues","ScalarType","NestedAggregationType","Interval","AggregationType","Mode","CommonSortOrder","ValueAggregationSortType","ValueAggregationSortDirection","ValueAggregationMissingValues","CommonScalarType","NestedAggregationNestedAggregationType","DateHistogramAggregationInterval","CommonAggregationType","SearchDetailsMode","WebhookIdentityType","queryVariants","searchVariants"]}