{"version":3,"sources":["../../src/restaurants-menus-v1-item-items.public.ts","../../src/restaurants-menus-v1-item-items.universal.ts","../../src/restaurants-menus-v1-item-items.http.ts","../../src/restaurants-menus-v1-item-items.context.ts"],"sourcesContent":["import { renameKeysFromRESTResponseToSDKResponse } from '@wix/sdk-runtime/rename-all-nested-keys';\nimport { transformRESTImageToSDKImage } from '@wix/sdk-runtime/transformations/image';\nimport { transformRESTTimestampToSDKTimestamp } from '@wix/sdk-runtime/transformations/timestamp';\nimport { transformPaths } from '@wix/sdk-runtime/transformations/transform-paths';\nimport { EventDefinition, HttpClient, NonNullablePaths } from '@wix/sdk-types';\nimport {\n  BulkCreateItemsOptions,\n  BulkCreateItemsResponse,\n  BulkDeleteItemsResponse,\n  BulkUpdateItemOptions,\n  BulkUpdateItemResponse,\n  CountItemsApplicationErrors,\n  CountItemsOptions,\n  CountItemsResponse,\n  DuplicateItemOptions,\n  DuplicateItemResponse,\n  Item,\n  ItemCreatedEnvelope,\n  ItemDeletedEnvelope,\n  ItemQuery,\n  ItemSearch,\n  ItemUpdatedEnvelope,\n  ItemsQueryBuilder,\n  ListItemsOptions,\n  ListItemsResponse,\n  MaskedItem,\n  QueryItemsResponse,\n  SearchItemsResponse,\n  UpdateItem,\n  bulkCreateItems as universalBulkCreateItems,\n  bulkDeleteItems as universalBulkDeleteItems,\n  bulkUpdateItem as universalBulkUpdateItem,\n  countItems as universalCountItems,\n  createItem as universalCreateItem,\n  deleteItem as universalDeleteItem,\n  duplicateItem as universalDuplicateItem,\n  getItem as universalGetItem,\n  listItems as universalListItems,\n  queryItems as universalQueryItems,\n  searchItems as universalSearchItems,\n  typedQueryItems as universalTypedQueryItems,\n  updateItem as universalUpdateItem,\n} from './restaurants-menus-v1-item-items.universal.js';\n\nexport const __metadata = { PACKAGE_NAME: '@wix/restaurants' };\n\nexport function duplicateItem(httpClient: HttpClient): DuplicateItemSignature {\n  return (_id: string, options?: DuplicateItemOptions) =>\n    universalDuplicateItem(\n      _id,\n      options,\n      // @ts-ignore\n      { httpClient }\n    );\n}\n\ninterface DuplicateItemSignature {\n  /** @param - Item id to be duplicated. */\n  (_id: string, options?: DuplicateItemOptions): Promise<\n    NonNullablePaths<DuplicateItemResponse, `itemId`, 2>\n  >;\n}\n\nexport function createItem(httpClient: HttpClient): CreateItemSignature {\n  return (item: NonNullablePaths<Item, `modifierGroups.${number}._id`, 4>) =>\n    universalCreateItem(\n      item,\n      // @ts-ignore\n      { httpClient }\n    );\n}\n\ninterface CreateItemSignature {\n  /**\n   * > **Note:** The Item API only works with the Wix Restaurants Menus app. Make sure you have installed this app from the [Wix App Market](https://www.wix.com/app-market/wix-restaurants-menus-new).\n   *\n   * Creates an item.\n   *\n   * To create multiple items at once, use [Bulk Create Items](https://dev.wix.com/docs/rest/business-solutions/restaurants/menus/item/bulk-create-items).\n   * @param - Item details.\n   * @returns Item.\n   */\n  (item: NonNullablePaths<Item, `modifierGroups.${number}._id`, 4>): Promise<\n    NonNullablePaths<\n      Item,\n      | `priceVariants.variants`\n      | `priceVariants.variants.${number}.priceInfo.price`\n      | `name`\n      | `additionalImages`\n      | `labels`\n      | `labels.${number}._id`\n      | `modifierGroups`\n      | `businessLocationIds`,\n      6\n    >\n  >;\n}\n\nexport function bulkCreateItems(\n  httpClient: HttpClient\n): BulkCreateItemsSignature {\n  return (\n    items: NonNullablePaths<Item, `modifierGroups.${number}._id`, 4>[],\n    options?: BulkCreateItemsOptions\n  ) =>\n    universalBulkCreateItems(\n      items,\n      options,\n      // @ts-ignore\n      { httpClient }\n    );\n}\n\ninterface BulkCreateItemsSignature {\n  /**\n   * > **Note:** The Items API only works with the Wix Restaurants Menus app. Make sure you have installed this app from the [Wix App Market](https://www.wix.com/app-market/wix-restaurants-menus-new).\n   *\n   * Creates multiple items at once.\n   * @param - Items details.\n   */\n  (\n    items: NonNullablePaths<Item, `modifierGroups.${number}._id`, 4>[],\n    options?: BulkCreateItemsOptions\n  ): Promise<\n    NonNullablePaths<\n      BulkCreateItemsResponse,\n      | `results`\n      | `results.${number}.itemMetadata.originalIndex`\n      | `results.${number}.itemMetadata.success`\n      | `results.${number}.itemMetadata.error.code`\n      | `results.${number}.itemMetadata.error.description`\n      | `results.${number}.item.priceInfo.price`\n      | `results.${number}.item.name`\n      | `bulkActionMetadata.totalSuccesses`\n      | `bulkActionMetadata.totalFailures`\n      | `bulkActionMetadata.undetailedFailures`,\n      6\n    >\n  >;\n}\n\nexport function getItem(httpClient: HttpClient): GetItemSignature {\n  return (itemId: string) =>\n    universalGetItem(\n      itemId,\n      // @ts-ignore\n      { httpClient }\n    );\n}\n\ninterface GetItemSignature {\n  /**\n   * > **Note:** The Item API only works with the Wix Restaurants Menus app. Make sure you have installed this app from the [Wix App Market](https://www.wix.com/app-market/wix-restaurants-menus-new).\n   *\n   * Retrieves an item by ID.\n   * @param - Item ID.\n   * @returns Item.\n   */\n  (itemId: string): Promise<\n    NonNullablePaths<\n      Item,\n      | `priceVariants.variants`\n      | `priceVariants.variants.${number}.priceInfo.price`\n      | `name`\n      | `additionalImages`\n      | `labels`\n      | `labels.${number}._id`\n      | `modifierGroups`\n      | `businessLocationIds`,\n      6\n    >\n  >;\n}\n\nexport function listItems(httpClient: HttpClient): ListItemsSignature {\n  return (options?: ListItemsOptions) =>\n    universalListItems(\n      options,\n      // @ts-ignore\n      { httpClient }\n    );\n}\n\ninterface ListItemsSignature {\n  /**\n   * > **Note:** The Item API only works with the Wix Restaurants Menus app. Make sure you have installed this app from the [Wix App Market](https://www.wix.com/app-market/wix-restaurants-menus-new).\n   *\n   * Retrieves a list of up to 500 items.\n   */\n  (options?: ListItemsOptions): Promise<\n    NonNullablePaths<\n      ListItemsResponse,\n      `items` | `items.${number}.priceInfo.price` | `items.${number}.name`,\n      5\n    >\n  >;\n}\n\nexport function queryItems(httpClient: HttpClient): QueryItemsSignature {\n  return () =>\n    universalQueryItems(\n      // @ts-ignore\n      { httpClient }\n    );\n}\n\ninterface QueryItemsSignature {\n  /**\n   * Creates a query to retrieve a list of items.\n   *\n   * The `queryItems()` function builds a query to retrieve a list of items and returns a `ItemsQueryBuilder` object.\n   *\n   * The returned object contains the query definition, which is used to run the query using the [`find()`](/items/items-query-builder/find) function.\n   *\n   * You can refine the query by chaining `ItemsQueryBuilder` functions onto the query. `ItemsQueryBuilder` functions enable you to filter, sort, and control the results that `queryItems()` returns.\n   *\n   * `queryItems()` runs with the following `ItemsQueryBuilder` defaults, which you can override:\n   *\n   * * [`limit(500)`](/items/items-query-builder/limit)\n   *\n   * The following `ItemsQueryBuilder` functions are supported for `queryItems()`. For a full description of the item object, see the object returned for the [`items`](/items/items-query-result/items) property in `ItemsQueryResult`.\n   */\n  (): ItemsQueryBuilder;\n}\n\nexport function typedQueryItems(\n  httpClient: HttpClient\n): TypedQueryItemsSignature {\n  return (query: ItemQuery) =>\n    universalTypedQueryItems(\n      query,\n      // @ts-ignore\n      { httpClient }\n    );\n}\n\ninterface TypedQueryItemsSignature {\n  /** */\n  (query: ItemQuery): Promise<\n    NonNullablePaths<\n      QueryItemsResponse,\n      `items` | `items.${number}.priceInfo.price` | `items.${number}.name`,\n      5\n    >\n  >;\n}\n\nexport function searchItems(httpClient: HttpClient): SearchItemsSignature {\n  return (search: ItemSearch) =>\n    universalSearchItems(\n      search,\n      // @ts-ignore\n      { httpClient }\n    );\n}\n\ninterface SearchItemsSignature {\n  /**\n   * > **Note:** The Item API only works with the Wix Restaurants Menus app. Make sure you have installed this app from the [Wix App Market](https://www.wix.com/app-market/wix-restaurants-menus-new).\n   *\n   * Retrieves a list of items given the provided filtering, paging, and sorting.\n   *\n   * ## Defaults\n   * Search Items has the following default settings, which you can override:\n   *\n   * - Sorted by `createdDate` in ascending order.\n   * - `paging.limit` set to `500`.\n   * - `paging.offset` set to `0`.\n   * @param - Search options.\n   */\n  (search: ItemSearch): Promise<\n    NonNullablePaths<\n      SearchItemsResponse,\n      | `items`\n      | `items.${number}.priceInfo.price`\n      | `items.${number}.name`\n      | `aggregationData.results`\n      | `aggregationData.results.${number}.scalar.type`\n      | `aggregationData.results.${number}.scalar.value`\n      | `aggregationData.results.${number}.name`\n      | `aggregationData.results.${number}.type`,\n      6\n    >\n  >;\n}\n\nexport function countItems(httpClient: HttpClient): CountItemsSignature {\n  return (options?: CountItemsOptions) =>\n    universalCountItems(\n      options,\n      // @ts-ignore\n      { httpClient }\n    );\n}\n\ninterface CountItemsSignature {\n  /**\n   * > **Note:** The Item API only works with the Wix Restaurants Menus app. Make sure you have installed this app from the [Wix App Market](https://www.wix.com/app-market/wix-restaurants-menus-new).\n   *\n   * Retrieves the number of items that match a specified filter.\n   *\n   * If a filter isn't passed in the request, the endpoint returns the count of all items.\n   */\n  (options?: CountItemsOptions): Promise<\n    NonNullablePaths<CountItemsResponse, `count`, 2> & {\n      __applicationErrorsType?: CountItemsApplicationErrors;\n    }\n  >;\n}\n\nexport function updateItem(httpClient: HttpClient): UpdateItemSignature {\n  return (\n    _id: string,\n    item: NonNullablePaths<\n      UpdateItem,\n      `modifierGroups.${number}._id` | `revision`,\n      4\n    >\n  ) =>\n    universalUpdateItem(\n      _id,\n      item,\n      // @ts-ignore\n      { httpClient }\n    );\n}\n\ninterface UpdateItemSignature {\n  /**\n   * > **Note:** The Item API only works with the Wix Restaurants Menus app. Make sure you have installed this app from the [Wix App Market](https://www.wix.com/app-market/wix-restaurants-menus-new).\n   *\n   * Updates an item.\n   *\n   * To update multiple items at once, use [Bulk Update Item](https://dev.wix.com/docs/rest/business-solutions/restaurants/menus/item/bulk-update-item)\n   *\n   * Each time an item is updated, its revision increments by 1. The existing revision must be included when updating the item. This ensures you're working with the latest item information, and it prevents unintended overwrites.\n   * @param - Item ID.\n   * @returns Updated item.\n   */\n  (\n    _id: string,\n    item: NonNullablePaths<\n      UpdateItem,\n      `modifierGroups.${number}._id` | `revision`,\n      4\n    >\n  ): Promise<\n    NonNullablePaths<\n      Item,\n      | `priceVariants.variants`\n      | `priceVariants.variants.${number}.priceInfo.price`\n      | `name`\n      | `additionalImages`\n      | `labels`\n      | `labels.${number}._id`\n      | `modifierGroups`\n      | `businessLocationIds`,\n      6\n    >\n  >;\n}\n\nexport function bulkUpdateItem(\n  httpClient: HttpClient\n): BulkUpdateItemSignature {\n  return (\n    items: NonNullablePaths<\n      MaskedItem,\n      `item._id` | `item.modifierGroups.${number}._id` | `item.revision`,\n      5\n    >[],\n    options?: BulkUpdateItemOptions\n  ) =>\n    universalBulkUpdateItem(\n      items,\n      options,\n      // @ts-ignore\n      { httpClient }\n    );\n}\n\ninterface BulkUpdateItemSignature {\n  /**\n   * > **Note:** The Item API only works with the Wix Restaurants Menus app. Make sure you have installed this app from the [Wix App Market](https://www.wix.com/app-market/wix-restaurants-menus-new).\n   *\n   * Updates up to 100 multiple items at once.\n   *\n   * Each time an item is updated, its revision increments by 1. The existing revision must be included when updating item. This ensures you're working with the latest item information, and it prevents unintended overwrites.\n   * @param - Items to update.\n   */\n  (\n    items: NonNullablePaths<\n      MaskedItem,\n      `item._id` | `item.modifierGroups.${number}._id` | `item.revision`,\n      5\n    >[],\n    options?: BulkUpdateItemOptions\n  ): Promise<\n    NonNullablePaths<\n      BulkUpdateItemResponse,\n      | `results`\n      | `results.${number}.itemMetadata.originalIndex`\n      | `results.${number}.itemMetadata.success`\n      | `results.${number}.itemMetadata.error.code`\n      | `results.${number}.itemMetadata.error.description`\n      | `results.${number}.item.priceInfo.price`\n      | `results.${number}.item.name`\n      | `bulkActionMetadata.totalSuccesses`\n      | `bulkActionMetadata.totalFailures`\n      | `bulkActionMetadata.undetailedFailures`,\n      6\n    >\n  >;\n}\n\nexport function deleteItem(httpClient: HttpClient): DeleteItemSignature {\n  return (itemId: string) =>\n    universalDeleteItem(\n      itemId,\n      // @ts-ignore\n      { httpClient }\n    );\n}\n\ninterface DeleteItemSignature {\n  /**\n   * > **Note:** The Item API only works with the Wix Restaurants Menus app. Make sure you have installed this app from the [Wix App Market](https://www.wix.com/app-market/wix-restaurants-menus-new).\n   *\n   * Deletes an item.\n   * @param - Item ID.\n   */\n  (itemId: string): Promise<void>;\n}\n\nexport function bulkDeleteItems(\n  httpClient: HttpClient\n): BulkDeleteItemsSignature {\n  return (ids: string[]) =>\n    universalBulkDeleteItems(\n      ids,\n      // @ts-ignore\n      { httpClient }\n    );\n}\n\ninterface BulkDeleteItemsSignature {\n  /**\n   * > **Note:** The Item API only works with the Wix Restaurants Menus app. Make sure you have installed this app from the [Wix App Market](https://www.wix.com/app-market/wix-restaurants-menus-new).\n   *\n   * Deletes multiple items at once.\n   * @param - Item IDs.\n   */\n  (ids: string[]): Promise<\n    NonNullablePaths<\n      BulkDeleteItemsResponse,\n      | `results`\n      | `results.${number}.itemMetadata.originalIndex`\n      | `results.${number}.itemMetadata.success`\n      | `results.${number}.itemMetadata.error.code`\n      | `results.${number}.itemMetadata.error.description`\n      | `bulkActionMetadata.totalSuccesses`\n      | `bulkActionMetadata.totalFailures`\n      | `bulkActionMetadata.undetailedFailures`,\n      6\n    >\n  >;\n}\n\nexport const onItemCreated = EventDefinition(\n  'wix.restaurants.menus.v1.item_created',\n  true,\n  (event: ItemCreatedEnvelope) =>\n    renameKeysFromRESTResponseToSDKResponse(\n      transformPaths(event, [\n        {\n          transformFn: transformRESTTimestampToSDKTimestamp,\n          paths: [\n            { path: 'entity.createdDate' },\n            { path: 'entity.updatedDate' },\n            {\n              path: 'entity.orderSettings.availability.timestampRangesOptions.ranges.startTime',\n            },\n            {\n              path: 'entity.orderSettings.availability.timestampRangesOptions.ranges.endTime',\n            },\n            { path: 'entity.externalReferenceInfo.lastSyncDate' },\n            { path: 'metadata.eventTime' },\n          ],\n        },\n        {\n          transformFn: transformRESTImageToSDKImage,\n          paths: [\n            { path: 'entity.image' },\n            { path: 'entity.additionalImages', isRepeated: true },\n          ],\n        },\n      ])\n    )\n)<ItemCreatedEnvelope>();\nexport const onItemDeleted = EventDefinition(\n  'wix.restaurants.menus.v1.item_deleted',\n  true,\n  (event: ItemDeletedEnvelope) =>\n    renameKeysFromRESTResponseToSDKResponse(\n      transformPaths(event, [\n        {\n          transformFn: transformRESTTimestampToSDKTimestamp,\n          paths: [\n            { path: 'entity.createdDate' },\n            { path: 'entity.updatedDate' },\n            {\n              path: 'entity.orderSettings.availability.timestampRangesOptions.ranges.startTime',\n            },\n            {\n              path: 'entity.orderSettings.availability.timestampRangesOptions.ranges.endTime',\n            },\n            { path: 'entity.externalReferenceInfo.lastSyncDate' },\n            { path: 'metadata.eventTime' },\n          ],\n        },\n        {\n          transformFn: transformRESTImageToSDKImage,\n          paths: [\n            { path: 'entity.image' },\n            { path: 'entity.additionalImages', isRepeated: true },\n          ],\n        },\n      ])\n    )\n)<ItemDeletedEnvelope>();\nexport const onItemUpdated = EventDefinition(\n  'wix.restaurants.menus.v1.item_updated',\n  true,\n  (event: ItemUpdatedEnvelope) =>\n    renameKeysFromRESTResponseToSDKResponse(\n      transformPaths(event, [\n        {\n          transformFn: transformRESTTimestampToSDKTimestamp,\n          paths: [\n            { path: 'entity.createdDate' },\n            { path: 'entity.updatedDate' },\n            {\n              path: 'entity.orderSettings.availability.timestampRangesOptions.ranges.startTime',\n            },\n            {\n              path: 'entity.orderSettings.availability.timestampRangesOptions.ranges.endTime',\n            },\n            { path: 'entity.externalReferenceInfo.lastSyncDate' },\n            { path: 'metadata.eventTime' },\n            { path: 'modifiedFields.createdDate' },\n            { path: 'modifiedFields.updatedDate' },\n            {\n              path: 'modifiedFields.orderSettings.availability.timestampRangesOptions.ranges.startTime',\n            },\n            {\n              path: 'modifiedFields.orderSettings.availability.timestampRangesOptions.ranges.endTime',\n            },\n            { path: 'modifiedFields.externalReferenceInfo.lastSyncDate' },\n          ],\n        },\n        {\n          transformFn: transformRESTImageToSDKImage,\n          paths: [\n            { path: 'entity.image' },\n            { path: 'entity.additionalImages', isRepeated: true },\n            { path: 'modifiedFields.image' },\n            { path: 'modifiedFields.additionalImages', isRepeated: true },\n          ],\n        },\n      ])\n    )\n)<ItemUpdatedEnvelope>();\n\nexport {\n  AccountInfo,\n  AccountInfoMetadata,\n  ActionEvent,\n  Address,\n  AddressHint,\n  Aggregation,\n  AggregationData,\n  AggregationKindOneOf,\n  AggregationResults,\n  AggregationResultsResultOneOf,\n  AggregationType,\n  App,\n  ApplicationError,\n  Availability,\n  AvailabilityAvailabilityTypeOptionsOneOf,\n  AvailabilityType,\n  AvailableRange,\n  BaseEventMetadata,\n  BulkActionMetadata,\n  BulkCreateItemResult,\n  BulkCreateItemsOptions,\n  BulkCreateItemsRequest,\n  BulkCreateItemsResponse,\n  BulkDeleteItemResult,\n  BulkDeleteItemsRequest,\n  BulkDeleteItemsResponse,\n  BulkItemResult,\n  BulkUpdateBusinessLocationIdsPerEntityRequest,\n  BulkUpdateBusinessLocationIdsPerEntityResponse,\n  BulkUpdateBusinessLocationIdsRequest,\n  BulkUpdateBusinessLocationIdsResponse,\n  BulkUpdateBusinessLocationIdsResponseBulkItemResult,\n  BulkUpdateItemOptions,\n  BulkUpdateItemRequest,\n  BulkUpdateItemResponse,\n  BulkUpdateItemResponseBulkItemResult,\n  BusinessSchedule,\n  Categories,\n  ChangeContext,\n  ChangeContextPayloadOneOf,\n  CloneItemsRequest,\n  CloneItemsResponse,\n  ConsentPolicy,\n  CountItemsOptions,\n  CountItemsRequest,\n  CountItemsResponse,\n  CreateItemRequest,\n  CreateItemResponse,\n  CursorPaging,\n  CursorPagingMetadata,\n  CursorQuery,\n  CursorQueryPagingMethodOneOf,\n  CursorSearch,\n  CursorSearchPagingMethodOneOf,\n  Cursors,\n  CustomTag,\n  DayOfWeek,\n  DayOfWeekAvailability,\n  DeleteByFilterOperation,\n  DeleteByIdsOperation,\n  DeleteItemRequest,\n  DeleteItemResponse,\n  DeleteLocationIdsFromModifierGroups,\n  DeleteLocationIdsFromVariants,\n  DocumentImage,\n  DocumentPayload,\n  DocumentUpdateOperation,\n  DomainEvent,\n  DomainEventBodyOneOf,\n  DuplicateItemOptions,\n  DuplicateItemRequest,\n  DuplicateItemResponse,\n  Empty,\n  EntitiesDayOfWeek,\n  EntityCreatedEvent,\n  EntityDeletedEvent,\n  EntityUpdatedEvent,\n  Enum,\n  EventMetadata,\n  ExtendedFields,\n  ExternalReferenceInfo,\n  File,\n  FulfillmentMethodType,\n  GeoCoordinates,\n  GetItemRequest,\n  GetItemResponse,\n  IdentificationData,\n  IdentificationDataIdOneOf,\n  IndexDocument,\n  InvalidateCache,\n  InvalidateCacheGetByOneOf,\n  Item,\n  ItemCreatedEnvelope,\n  ItemDeletedEnvelope,\n  ItemIdLocationIds,\n  ItemMetadata,\n  ItemPricingOneOf,\n  ItemQuerySpec,\n  ItemSearchSpec,\n  ItemUpdatedEnvelope,\n  ItemsQueryBuilder,\n  ItemsQueryResult,\n  Label,\n  ListItemsOptions,\n  ListItemsRequest,\n  ListItemsResponse,\n  Locale,\n  MaskedItem,\n  MessageEnvelope,\n  Mode,\n  ModifierGroup,\n  Multilingual,\n  OrderSettings,\n  Page,\n  Pages,\n  PlacementType,\n  PriceInfo,\n  PriceVariant,\n  PriceVariants,\n  Properties,\n  PropertiesChange,\n  QueryItemsRequest,\n  QueryItemsResponse,\n  RangeAggregation,\n  RangeAggregationResult,\n  RangeBucket,\n  RangeResults,\n  ResolutionMethod,\n  RestoreInfo,\n  ScalarAggregation,\n  ScalarResult,\n  ScalarType,\n  SearchDetails,\n  SearchIndexingNotification,\n  SearchItemsRequest,\n  SearchItemsResponse,\n  SiteCloned,\n  SiteCreated,\n  SitePropertiesEvent,\n  SitePropertiesNotification,\n  SortDirection,\n  SortOrder,\n  SortType,\n  Sorting,\n  SpecialHourPeriod,\n  State,\n  SupportedLanguage,\n  SyncContentToMultilingualRequest,\n  SyncContentToMultilingualResponse,\n  TimeOfDay,\n  TimeOfDayRange,\n  TimePeriod,\n  TimestampRangesOptions,\n  Translation,\n  URI,\n  URIs,\n  UpdateByFilterOperation,\n  UpdateDocumentsEvent,\n  UpdateDocumentsEventOperationOneOf,\n  UpdateExistingOperation,\n  UpdateItem,\n  UpdateItemRequest,\n  UpdateItemResponse,\n  ValueAggregation,\n  ValueAggregationResult,\n  ValueResults,\n  WebhookIdentityType,\n  WeeklyScheduleOptions,\n  utils,\n} from './restaurants-menus-v1-item-items.universal.js';\n","import { transformError as sdkTransformError } from '@wix/sdk-runtime/transform-error';\nimport { queryBuilder } from '@wix/sdk-runtime/query-builder';\nimport {\n  renameKeysFromSDKRequestToRESTRequest,\n  renameKeysFromRESTResponseToSDKResponse,\n} from '@wix/sdk-runtime/rename-all-nested-keys';\nimport {\n  HttpClient,\n  HttpResponse,\n  Search as SearchSdkType,\n  NonNullablePaths,\n  QuerySpec,\n  Query as QuerySdkType,\n  SearchSpec,\n} from '@wix/sdk-types';\nimport * as ambassadorWixRestaurantsMenusV1Item from './restaurants-menus-v1-item-items.http.js';\n// @ts-ignore\nimport { transformSDKImageToRESTImage } from '@wix/sdk-runtime/transformations/image';\nimport { transformRESTImageToSDKImage } from '@wix/sdk-runtime/transformations/image';\nimport { transformPaths } from '@wix/sdk-runtime/transformations/transform-paths';\nimport { createQueryUtils } from '@wix/sdk-runtime/query-builder-utils';\nimport { createSearchUtils } from '@wix/sdk-runtime/search-builder-utils';\n\nexport interface Item extends ItemPricingOneOf {\n  /** Item price variants. */\n  priceVariants?: PriceVariants;\n  /** Item price info. */\n  priceInfo?: PriceInfo;\n  /**\n   * Item ID.\n   * @format GUID\n   * @readonly\n   */\n  _id?: string | null;\n  /**\n   * Revision number, which increments by 1 each time the item is updated. To prevent conflicting changes, the current revision must be passed when updating the item. Ignored when creating a item.\n   * @readonly\n   */\n  revision?: string | null;\n  /**\n   * Date and time the item was created.\n   * @readonly\n   */\n  _createdDate?: Date | null;\n  /**\n   * Date and time the item was updated.\n   * @readonly\n   */\n  _updatedDate?: Date | null;\n  /**\n   * Item name.\n   * @minLength 1\n   * @maxLength 200\n   */\n  name?: string;\n  /**\n   * Item description.\n   * @maxLength 1500\n   */\n  description?: string | null;\n  /** Main item image. */\n  image?: string;\n  /**\n   * Additional item images.\n   * @maxSize 15\n   */\n  additionalImages?: string[];\n  /**\n   * Item labels.\n   * @maxSize 10\n   */\n  labels?: Label[];\n  /** Whether the item is visible in the menu for site visitors. */\n  visible?: boolean | null;\n  /**\n   * Whether the item is marked as featured/best seller.\n   * Default: `false`.\n   */\n  featured?: boolean | null;\n  /** Online order settings. */\n  orderSettings?: OrderSettings;\n  /**\n   * Item modifier groups.\n   * @maxSize 25\n   */\n  modifierGroups?: ModifierGroup[];\n  /** Extended fields. */\n  extendedFields?: ExtendedFields;\n  /**\n   * IDs of the business locations ([SDK](https://dev.wix.com/docs/sdk/backend-modules/restaurants/wix-restaurants-new/about-business-locations) | [REST](https://dev.wix.com/docs/rest/business-solutions/restaurants/wix-restaurants-new/about-business-locations)) where these items are available.\n   * @maxSize 100\n   * @format GUID\n   * @readonly\n   */\n  businessLocationIds?: string[];\n}\n\n/** @oneof */\nexport interface ItemPricingOneOf {\n  /** Item price variants. */\n  priceVariants?: PriceVariants;\n  /** Item price info. */\n  priceInfo?: PriceInfo;\n}\n\nexport interface PriceVariants {\n  /**\n   * List of price variants.\n   * @maxSize 500\n   */\n  variants?: PriceVariant[];\n}\n\nexport interface PriceVariant {\n  /**\n   * Price variant ID.\n   * @format GUID\n   */\n  variantId?: string | null;\n  /**\n   * Price of a variant.\n   * @decimalValue options { gte:0.00, maxScale:3 }\n   * @deprecated Price of a variant.\n   * @replacedBy pricing.price_variants.variants.price_info\n   * @targetRemovalDate 2024-08-01\n   */\n  price?: string | null;\n  /** Price info of a variant. */\n  priceInfo?: PriceInfo;\n}\n\nexport interface PriceInfo {\n  /**\n   * Price.\n   * @decimalValue options { gte:0.00, maxScale:3 }\n   */\n  price?: string;\n}\n\nexport interface Label {\n  /**\n   * Item label ID.\n   * @format GUID\n   */\n  _id?: string;\n}\n\nexport interface OrderSettings {\n  /**\n   * Whether the item is in stock.\n   * Default: `true`.\n   */\n  inStock?: boolean | null;\n  /**\n   * Whether a customer can add a special request when ordering this item.\n   * Default: `true`.\n   */\n  acceptSpecialRequests?: boolean | null;\n}\n\nexport enum FulfillmentMethodType {\n  /** Fulfillment method type is not specified. */\n  FULFILLMENT_METHOD_TYPE_UNSPECIFIED = 'FULFILLMENT_METHOD_TYPE_UNSPECIFIED',\n  /** Pickup fulfillment. */\n  PICKUP = 'PICKUP',\n  /** Delivery fulfillment. */\n  DELIVERY = 'DELIVERY',\n}\n\n/** @enumType */\nexport type FulfillmentMethodTypeWithLiterals =\n  | FulfillmentMethodType\n  | 'FULFILLMENT_METHOD_TYPE_UNSPECIFIED'\n  | 'PICKUP'\n  | 'DELIVERY';\n\nexport interface Availability extends AvailabilityAvailabilityTypeOptionsOneOf {\n  /** Settings for availability on a weekly schedule. */\n  weeklyScheduleOptions?: WeeklyScheduleOptions;\n  /** Settings for availability within a time range. */\n  timestampRangesOptions?: TimestampRangesOptions;\n  /** Availability type. */\n  type?: AvailabilityTypeWithLiterals;\n}\n\n/** @oneof */\nexport interface AvailabilityAvailabilityTypeOptionsOneOf {\n  /** Settings for availability on a weekly schedule. */\n  weeklyScheduleOptions?: WeeklyScheduleOptions;\n  /** Settings for availability within a time range. */\n  timestampRangesOptions?: TimestampRangesOptions;\n}\n\nexport enum AvailabilityType {\n  /** Missing type due to an error. */\n  UNSPECIFIED_AVAILABILITY_OPTION = 'UNSPECIFIED_AVAILABILITY_OPTION',\n  /** Available all the time. */\n  ALWAYS_AVAILABLE = 'ALWAYS_AVAILABLE',\n  /** Available on specific days and times throughout the week. */\n  WEEKLY_SCHEDULE = 'WEEKLY_SCHEDULE',\n  /** Available during a specific time range. */\n  TIMESTAMP_RANGES = 'TIMESTAMP_RANGES',\n}\n\n/** @enumType */\nexport type AvailabilityTypeWithLiterals =\n  | AvailabilityType\n  | 'UNSPECIFIED_AVAILABILITY_OPTION'\n  | 'ALWAYS_AVAILABLE'\n  | 'WEEKLY_SCHEDULE'\n  | 'TIMESTAMP_RANGES';\n\nexport interface WeeklyScheduleOptions {\n  /**\n   * List of available time ranges for specific days of the week.\n   * @maxSize 7\n   */\n  availableTimes?: DayOfWeekAvailability[];\n}\n\nexport interface DayOfWeekAvailability {\n  /** The day of week this availability relates to. */\n  dayOfWeek?: EntitiesDayOfWeekWithLiterals;\n  /** A list of time ranges during which the fulfillment should be available. */\n  timeRanges?: TimeOfDayRange[];\n}\n\nexport enum EntitiesDayOfWeek {\n  /** Monday. */\n  MON = 'MON',\n  /** Tuesday. */\n  TUE = 'TUE',\n  /** Wednesday. */\n  WED = 'WED',\n  /** Thursday. */\n  THU = 'THU',\n  /** Friday. */\n  FRI = 'FRI',\n  /** Saturday. */\n  SAT = 'SAT',\n  /** Sunday. */\n  SUN = 'SUN',\n}\n\n/** @enumType */\nexport type EntitiesDayOfWeekWithLiterals =\n  | EntitiesDayOfWeek\n  | 'MON'\n  | 'TUE'\n  | 'WED'\n  | 'THU'\n  | 'FRI'\n  | 'SAT'\n  | 'SUN';\n\nexport interface TimeOfDayRange {\n  /** The start time in time of day representation. */\n  startTime?: TimeOfDay;\n  /** The end time in time of day representation. */\n  endTime?: TimeOfDay;\n}\n\nexport interface TimeOfDay {\n  /**\n   * Hours. <br />\n   * Min: `0`. <br />\n   * Max: `23`.\n   */\n  hours?: number;\n  /**\n   * Minutes. <br />\n   * Min: `0`. <br />\n   * Max: `23`.\n   */\n  minutes?: number;\n}\n\nexport interface TimestampRangesOptions {\n  /**\n   * List of available time ranges.\n   * @maxSize 50\n   */\n  ranges?: AvailableRange[];\n}\n\nexport interface AvailableRange {\n  /** The start time of the availability in [ISO-8601](https://en.wikipedia.org/wiki/ISO_8601#combined_date_and_time_representations) format. */\n  startTime?: Date | null;\n  /** The end time of the availability in [ISO-8601](https://en.wikipedia.org/wiki/ISO_8601#combined_date_and_time_representations) format. */\n  endTime?: Date | null;\n}\n\nexport interface ModifierGroup {\n  /**\n   * Modifier group ID.\n   * @format GUID\n   */\n  _id?: string | null;\n}\n\nexport interface ExtendedFields {\n  /**\n   * Extended field data. Each key corresponds to the namespace of the app that created the extended fields.\n   * The value of each key is structured according to the schema defined when the extended fields were configured.\n   *\n   * You can only access fields for which you have the appropriate permissions.\n   *\n   * Learn more about [extended fields](https://dev.wix.com/docs/rest/articles/getting-started/extended-fields).\n   */\n  namespaces?: Record<string, Record<string, any>>;\n}\n\nexport interface ExternalReferenceInfo {\n  /**\n   * ID of the external integrator app\\system associated with this object.\n   * @format GUID\n   */\n  externalAppId?: string | null;\n  /**\n   * Reference to an external resource ID. Used to link this object to a specific entity in an external system.\n   * @maxLength 100\n   */\n  externalEntityId?: string | null;\n  /** Last time this item was synced with the external app. */\n  lastSyncDate?: Date | null;\n  /** Whether the connection to the external system is currently active. */\n  connected?: boolean | null;\n}\n\nexport interface DuplicateItemRequest {\n  /**\n   * Item id to be duplicated.\n   * @format GUID\n   */\n  _id: string;\n  /**\n   * Business location ids to duplicate the item to.\n   * @format GUID\n   * @maxSize 100\n   */\n  businessLocationIds?: string[] | null;\n}\n\nexport interface DuplicateItemResponse {\n  /** @format GUID */\n  itemId?: string[];\n}\n\nexport interface UpdateDocumentsEvent\n  extends UpdateDocumentsEventOperationOneOf {\n  /** insert/update documents */\n  update?: DocumentUpdateOperation;\n  /** delete by document ids */\n  deleteByIds?: DeleteByIdsOperation;\n  /** delete documents matching filter */\n  deleteByFilter?: DeleteByFilterOperation;\n  /** update documents matching filter */\n  updateByFilter?: UpdateByFilterOperation;\n  /** update only existing documents */\n  updateExisting?: UpdateExistingOperation;\n  /**\n   * application which owns documents\n   * @minLength 2\n   */\n  appDefId?: string | null;\n  /**\n   * type of the documents\n   * @minLength 2\n   */\n  documentType?: string | null;\n  /**\n   * language of the documents\n   * @minLength 2\n   */\n  language?: string | null;\n  /**\n   * site documents belong to\n   * @minLength 2\n   */\n  msId?: string | null;\n}\n\n/** @oneof */\nexport interface UpdateDocumentsEventOperationOneOf {\n  /** insert/update documents */\n  update?: DocumentUpdateOperation;\n  /** delete by document ids */\n  deleteByIds?: DeleteByIdsOperation;\n  /** delete documents matching filter */\n  deleteByFilter?: DeleteByFilterOperation;\n  /** update documents matching filter */\n  updateByFilter?: UpdateByFilterOperation;\n  /** update only existing documents */\n  updateExisting?: UpdateExistingOperation;\n}\n\nexport interface DocumentUpdateOperation {\n  /** documents to index or update */\n  documents?: IndexDocument[];\n}\n\nexport interface IndexDocument {\n  /** data bag with non-searchable fields (url, image) */\n  payload?: DocumentPayload;\n  /** what type of users should documents be visible to */\n  exposure?: EnumWithLiterals;\n  /** document with mandatory fields (id, title, description) and with fields specific to the type of the document */\n  document?: Record<string, any> | null;\n  /** what member groups is the document exposed to. Used only with GROUP_PROTECTED exposure */\n  permittedMemberGroups?: string[];\n  /** if true SEO is disabled for this document */\n  seoHidden?: boolean | null;\n  /** if true the page is a lightbox popup */\n  isPopup?: boolean | null;\n}\n\nexport interface DocumentPayload {\n  /** url of the page representing the document */\n  url?: string | null;\n  /** image which represents the document */\n  documentImage?: DocumentImage;\n}\n\nexport interface DocumentImage {\n  /** the name of the image */\n  name?: string;\n  /** the width of the image */\n  width?: number;\n  /** the height of the image */\n  height?: number;\n}\n\nexport enum Enum {\n  /** Default value. Means that permission not set */\n  UNKNOWN = 'UNKNOWN',\n  /** Protected exposure. Exposed to members and owners */\n  PROTECTED = 'PROTECTED',\n  /** Private exposure. Exposed to owners */\n  PRIVATE = 'PRIVATE',\n  /** Public exposure. Visible to everyone */\n  PUBLIC = 'PUBLIC',\n  /** Used for partial updates, to state that exposure is not changing */\n  UNCHANGED = 'UNCHANGED',\n  /** Protected to members of permitted groups and owners */\n  GROUP_PROTECTED = 'GROUP_PROTECTED',\n}\n\n/** @enumType */\nexport type EnumWithLiterals =\n  | Enum\n  | 'UNKNOWN'\n  | 'PROTECTED'\n  | 'PRIVATE'\n  | 'PUBLIC'\n  | 'UNCHANGED'\n  | 'GROUP_PROTECTED';\n\nexport interface DeleteByIdsOperation {\n  /** ids of the documents to delete */\n  documentIds?: string[];\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\nexport interface UpdateByFilterOperation {\n  /** documents matching this filter will be updated */\n  filter?: Record<string, any> | null;\n  /** partial document to apply */\n  document?: IndexDocument;\n}\n\nexport interface UpdateExistingOperation {\n  /** documents to update */\n  documents?: IndexDocument[];\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  entity?: string;\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  currentEntity?: string;\n}\n\nexport interface EntityDeletedEvent {\n  /** Entity that was deleted. */\n  deletedEntity?: string | null;\n}\n\nexport interface ActionEvent {\n  body?: string;\n}\n\nexport interface Empty {}\n\nexport interface SearchIndexingNotification {\n  /** new state of indexing for the site specified in ms_id */\n  indexState?: StateWithLiterals;\n  /** type of the document the notification is targeted for. Applies to all types if not provided */\n  documentType?: string | null;\n  /** languaInternalDocumentUpdateByFilterOperationge the notification is targeted for. Applies to all languages if not provided */\n  language?: string | null;\n  /**\n   * site for which notification is targeted\n   * @minLength 2\n   */\n  msId?: string | null;\n}\n\nexport enum State {\n  /** default state */\n  Unknown = 'Unknown',\n  /** metasite does not require site search indexing */\n  Off = 'Off',\n  /** metasite requires site search indexing */\n  On = 'On',\n}\n\n/** @enumType */\nexport type StateWithLiterals = State | 'Unknown' | 'Off' | 'On';\n\n/** Encapsulates all details written to the Greyhound topic when a site's properties are updated. */\nexport interface SitePropertiesNotification {\n  /** The site ID for which this update notification applies. */\n  metasiteId?: string;\n  /** The actual update event. */\n  event?: SitePropertiesEvent;\n  /**\n   * A convenience set of mappings from the MetaSite ID to its constituent services.\n   * @maxSize 500\n   */\n  translations?: Translation[];\n  /** Context of the notification */\n  changeContext?: ChangeContext;\n}\n\n/** The actual update event for a particular notification. */\nexport interface SitePropertiesEvent {\n  /** Version of the site's properties represented by this update. */\n  version?: number;\n  /** Set of properties that were updated - corresponds to the fields in \"properties\". */\n  fields?: string[];\n  /** Updated properties. */\n  properties?: Properties;\n}\n\nexport interface Properties {\n  /** Site categories. */\n  categories?: Categories;\n  /** Site locale. */\n  locale?: Locale;\n  /**\n   * Site language.\n   *\n   * Two-letter language code in [ISO 639-1 alpha-2](https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes) format.\n   */\n  language?: string | null;\n  /**\n   * Site currency format used to bill customers.\n   *\n   * Three-letter currency code in [ISO-4217 alphabetic](https://en.wikipedia.org/wiki/ISO_4217#Active_codes) format.\n   */\n  paymentCurrency?: string | null;\n  /** Timezone in `America/New_York` format. */\n  timeZone?: string | null;\n  /** Email address. */\n  email?: string | null;\n  /** Phone number. */\n  phone?: string | null;\n  /** Fax number. */\n  fax?: string | null;\n  /** Address. */\n  address?: Address;\n  /** Site display name. */\n  siteDisplayName?: string | null;\n  /** Business name. */\n  businessName?: string | null;\n  /** Path to the site's logo in Wix Media (without Wix Media base URL). */\n  logo?: string | null;\n  /** Site description. */\n  description?: string | null;\n  /**\n   * Business schedule. Regular and exceptional time periods when the business is open or the service is available.\n   *\n   * __Note:__ Not supported by Wix Bookings.\n   */\n  businessSchedule?: BusinessSchedule;\n  /** Supported languages of a site and the primary language. */\n  multilingual?: Multilingual;\n  /** Cookie policy the Wix user defined for their site (before the site visitor interacts with/limits it). */\n  consentPolicy?: ConsentPolicy;\n  /**\n   * Supported values: `FITNESS SERVICE`, `RESTAURANT`, `BLOG`, `STORE`, `EVENT`, `UNKNOWN`.\n   *\n   * Site business type.\n   */\n  businessConfig?: string | null;\n  /** External site URL that uses Wix as its headless business solution. */\n  externalSiteUrl?: string | null;\n  /** Track clicks analytics. */\n  trackClicksAnalytics?: boolean;\n  /**\n   * Company ID issued to the business by local authorities. Appears on invoices and price quotes.\n   * @maxLength 50\n   */\n  companyId?: string | null;\n}\n\nexport interface Categories {\n  /** Primary site category. */\n  primary?: string;\n  /**\n   * Secondary site category.\n   * @maxSize 50\n   */\n  secondary?: string[];\n  /** Business Term Id */\n  businessTermId?: string | null;\n}\n\nexport interface Locale {\n  /** Two-letter language code in [ISO 639-1 alpha-2](https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes) format. */\n  languageCode?: string;\n  /** Two-letter country code in [ISO-3166 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2#Officially_assigned_code_elements) format. */\n  country?: string;\n}\n\nexport interface Address {\n  /** Street name. */\n  street?: string;\n  /** City name. */\n  city?: string;\n  /** Two-letter country code in an [ISO-3166 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) format. */\n  country?: string;\n  /** State. */\n  state?: string;\n  /**\n   * Zip or postal code.\n   * @maxLength 20\n   */\n  zip?: string;\n  /** Extra information to be displayed in the address. */\n  hint?: AddressHint;\n  /** Whether this address represents a physical location. */\n  isPhysical?: boolean;\n  /** Google-formatted version of this address. */\n  googleFormattedAddress?: string;\n  /** Street number. */\n  streetNumber?: string;\n  /** Apartment number. */\n  apartmentNumber?: string;\n  /** Geographic coordinates of location. */\n  coordinates?: GeoCoordinates;\n}\n\n/**\n * Extra information on displayed addresses.\n * This is used for display purposes. Used to add additional data about the address, such as \"In the passage\".\n * Free text. In addition, the user can state where to display the additional description - before, after, or instead of the address string.\n */\nexport interface AddressHint {\n  /** Extra text displayed next to, or instead of, the actual address. */\n  text?: string;\n  /** Where the extra text should be displayed. */\n  placement?: PlacementTypeWithLiterals;\n}\n\n/** Where the extra text should be displayed: before, after or instead of the actual address. */\nexport enum PlacementType {\n  BEFORE = 'BEFORE',\n  AFTER = 'AFTER',\n  REPLACE = 'REPLACE',\n}\n\n/** @enumType */\nexport type PlacementTypeWithLiterals =\n  | PlacementType\n  | 'BEFORE'\n  | 'AFTER'\n  | 'REPLACE';\n\n/** Geocoordinates for a particular address. */\nexport interface GeoCoordinates {\n  /** Latitude of the location. Must be between -90 and 90. */\n  latitude?: number;\n  /** Longitude of the location. Must be between -180 and 180. */\n  longitude?: number;\n}\n\n/** Business schedule. Regular and exceptional time periods when the business is open or the service is available. */\nexport interface BusinessSchedule {\n  /**\n   * Weekly recurring time periods when the business is regularly open or the service is available. Limited to 100 time periods.\n   * @maxSize 100\n   */\n  periods?: TimePeriod[];\n  /**\n   * Exceptions to the business's regular hours. The business can be open or closed during the exception.\n   * @maxSize 100\n   */\n  specialHourPeriod?: SpecialHourPeriod[];\n}\n\n/** Weekly recurring time periods when the business is regularly open or the service is available. */\nexport interface TimePeriod {\n  /** Day of the week the period starts on. */\n  openDay?: DayOfWeekWithLiterals;\n  /**\n   * Time the period starts in 24-hour [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) extended format. Valid values are `00:00` to `24:00`, where `24:00` represents\n   * midnight at the end of the specified day.\n   */\n  openTime?: string;\n  /** Day of the week the period ends on. */\n  closeDay?: DayOfWeekWithLiterals;\n  /**\n   * Time the period ends in 24-hour [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) extended format. Valid values are `00:00` to `24:00`, where `24:00` represents\n   * midnight at the end of the specified day.\n   *\n   * __Note:__ If `openDay` and `closeDay` specify the same day of the week `closeTime` must be later than `openTime`.\n   */\n  closeTime?: string;\n}\n\n/** Enumerates the days of the week. */\nexport enum DayOfWeek {\n  MONDAY = 'MONDAY',\n  TUESDAY = 'TUESDAY',\n  WEDNESDAY = 'WEDNESDAY',\n  THURSDAY = 'THURSDAY',\n  FRIDAY = 'FRIDAY',\n  SATURDAY = 'SATURDAY',\n  SUNDAY = 'SUNDAY',\n}\n\n/** @enumType */\nexport type DayOfWeekWithLiterals =\n  | DayOfWeek\n  | 'MONDAY'\n  | 'TUESDAY'\n  | 'WEDNESDAY'\n  | 'THURSDAY'\n  | 'FRIDAY'\n  | 'SATURDAY'\n  | 'SUNDAY';\n\n/** Exception to the business's regular hours. The business can be open or closed during the exception. */\nexport interface SpecialHourPeriod {\n  /** Start date and time of the exception in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format and [Coordinated Universal Time (UTC)](https://en.wikipedia.org/wiki/Coordinated_Universal_Time). */\n  startDate?: string;\n  /** End date and time of the exception in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format and [Coordinated Universal Time (UTC)](https://en.wikipedia.org/wiki/Coordinated_Universal_Time). */\n  endDate?: string;\n  /**\n   * Whether the business is closed (or the service is not available) during the exception.\n   *\n   * Default: `true`.\n   */\n  isClosed?: boolean;\n  /** Additional info about the exception. For example, \"We close earlier on New Year's Eve.\" */\n  comment?: string;\n}\n\nexport interface Multilingual {\n  /**\n   * Supported languages list.\n   * @maxSize 200\n   */\n  supportedLanguages?: SupportedLanguage[];\n  /** Whether to redirect to user language. */\n  autoRedirect?: boolean;\n}\n\nexport interface SupportedLanguage {\n  /** Two-letter language code in [ISO 639-1 alpha-2](https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes) format. */\n  languageCode?: string;\n  /** Locale. */\n  locale?: Locale;\n  /** Whether the supported language is the primary language for the site. */\n  isPrimary?: boolean;\n  /** Language icon. */\n  countryCode?: string;\n  /** How the language will be resolved. For internal use. */\n  resolutionMethod?: ResolutionMethodWithLiterals;\n  /** Whether the supported language is the primary language for site visitors. */\n  isVisitorPrimary?: boolean | null;\n}\n\nexport enum ResolutionMethod {\n  QUERY_PARAM = 'QUERY_PARAM',\n  SUBDOMAIN = 'SUBDOMAIN',\n  SUBDIRECTORY = 'SUBDIRECTORY',\n}\n\n/** @enumType */\nexport type ResolutionMethodWithLiterals =\n  | ResolutionMethod\n  | 'QUERY_PARAM'\n  | 'SUBDOMAIN'\n  | 'SUBDIRECTORY';\n\nexport interface ConsentPolicy {\n  /** Whether the site uses cookies that are essential to site operation. Always `true`. */\n  essential?: boolean | null;\n  /** Whether the site uses cookies that affect site performance and other functional measurements. */\n  functional?: boolean | null;\n  /** Whether the site uses cookies that collect analytics about how the site is used (in order to improve it). */\n  analytics?: boolean | null;\n  /** Whether the site uses cookies that collect information allowing better customization of the experience for a current visitor. */\n  advertising?: boolean | null;\n  /** CCPA compliance flag. */\n  dataToThirdParty?: boolean | null;\n}\n\n/** A single mapping from the MetaSite ID to a particular service. */\nexport interface Translation {\n  /** The service type. */\n  serviceType?: string;\n  /** The application definition ID; this only applies to services of type ThirdPartyApps. */\n  appDefId?: string;\n  /** The instance ID of the service. */\n  instanceId?: string;\n}\n\nexport interface ChangeContext extends ChangeContextPayloadOneOf {\n  /** Properties were updated. */\n  propertiesChange?: PropertiesChange;\n  /** Default properties were created on site creation. */\n  siteCreated?: SiteCreated;\n  /** Properties were cloned on site cloning. */\n  siteCloned?: SiteCloned;\n}\n\n/** @oneof */\nexport interface ChangeContextPayloadOneOf {\n  /** Properties were updated. */\n  propertiesChange?: PropertiesChange;\n  /** Default properties were created on site creation. */\n  siteCreated?: SiteCreated;\n  /** Properties were cloned on site cloning. */\n  siteCloned?: SiteCloned;\n}\n\nexport interface PropertiesChange {}\n\nexport interface SiteCreated {\n  /** Origin template site id. */\n  originTemplateId?: string | null;\n}\n\nexport interface SiteCloned {\n  /** Origin site id. */\n  originMetaSiteId?: string;\n}\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\nexport interface InvalidateCache extends InvalidateCacheGetByOneOf {\n  /**\n   * Invalidate by msId. NOT recommended, as this will invalidate the entire site cache!\n   * @format GUID\n   */\n  metaSiteId?: string;\n  /**\n   * Invalidate by Site ID. NOT recommended, as this will invalidate the entire site cache!\n   * @format GUID\n   */\n  siteId?: string;\n  /** Invalidate by App */\n  app?: App;\n  /** Invalidate by page id */\n  page?: Page;\n  /** Invalidate by URI path */\n  uri?: URI;\n  /** Invalidate by file (for media files such as PDFs) */\n  file?: File;\n  /** Invalidate by custom tag. Tags used in BO invalidation are disabled for this endpoint (more info: https://wix-bo.com/dev/clear-ssr-cache) */\n  customTag?: CustomTag;\n  /** Invalidate by multiple page ids */\n  pages?: Pages;\n  /** Invalidate by multiple URI paths */\n  uris?: URIs;\n  /**\n   * tell us why you're invalidating the cache. You don't need to add your app name\n   * @maxLength 256\n   */\n  reason?: string | null;\n  /** Is local DS */\n  localDc?: boolean;\n  hardPurge?: boolean;\n  /**\n   * Optional caller-provided ID for tracking this invalidation through the system.\n   * When set, the corresponding CDN purge completion event will include this ID,\n   * allowing you to confirm when the invalidation has fully propagated.\n   * Example: generate a UUID, pass it here, and later match it in the CDN purge completion event.\n   * @maxLength 256\n   */\n  correlationId?: string | null;\n}\n\n/** @oneof */\nexport interface InvalidateCacheGetByOneOf {\n  /**\n   * Invalidate by msId. NOT recommended, as this will invalidate the entire site cache!\n   * @format GUID\n   */\n  metaSiteId?: string;\n  /**\n   * Invalidate by Site ID. NOT recommended, as this will invalidate the entire site cache!\n   * @format GUID\n   */\n  siteId?: string;\n  /** Invalidate by App */\n  app?: App;\n  /** Invalidate by page id */\n  page?: Page;\n  /** Invalidate by URI path */\n  uri?: URI;\n  /** Invalidate by file (for media files such as PDFs) */\n  file?: File;\n  /** Invalidate by custom tag. Tags used in BO invalidation are disabled for this endpoint (more info: https://wix-bo.com/dev/clear-ssr-cache) */\n  customTag?: CustomTag;\n  /** Invalidate by multiple page ids */\n  pages?: Pages;\n  /** Invalidate by multiple URI paths */\n  uris?: URIs;\n}\n\nexport interface App {\n  /**\n   * The AppDefId\n   * @minLength 1\n   */\n  appDefId?: string;\n  /**\n   * The instance Id\n   * @format GUID\n   */\n  instanceId?: string;\n}\n\nexport interface Page {\n  /**\n   * the msid the page is on\n   * @format GUID\n   */\n  metaSiteId?: string;\n  /**\n   * Invalidate by Page ID\n   * @minLength 1\n   */\n  pageId?: string;\n}\n\nexport interface URI {\n  /**\n   * the msid the URI is on\n   * @format GUID\n   */\n  metaSiteId?: string;\n  /**\n   * URI path to invalidate (e.g. page/my/path) - without leading/trailing slashes\n   * @minLength 1\n   */\n  uriPath?: string;\n}\n\nexport interface File {\n  /**\n   * the msid the file is related to\n   * @format GUID\n   */\n  metaSiteId?: string;\n  /**\n   * Invalidate by filename (for media files such as PDFs)\n   * @minLength 1\n   * @maxLength 256\n   */\n  fileName?: string;\n}\n\nexport interface CustomTag {\n  /**\n   * the msid the tag is related to\n   * @format GUID\n   */\n  metaSiteId?: string;\n  /**\n   * Tag to invalidate by\n   * @minLength 1\n   * @maxLength 256\n   */\n  tag?: string;\n}\n\nexport interface Pages {\n  /**\n   * the msid the pages are on\n   * @format GUID\n   */\n  metaSiteId?: string;\n  /**\n   * Invalidate by multiple Page IDs in a single message\n   * @maxSize 100\n   * @minLength 1\n   */\n  pageIds?: string[];\n}\n\nexport interface URIs {\n  /**\n   * the msid the URIs are on\n   * @format GUID\n   */\n  metaSiteId?: string;\n  /**\n   * URI paths to invalidate (e.g. page/my/path) - without leading/trailing slashes\n   * @maxSize 100\n   * @minLength 1\n   */\n  uriPaths?: string[];\n}\n\nexport interface DeleteLocationIdsFromVariants {\n  /**\n   * @format GUID\n   * @maxSize 100\n   */\n  businessLocationIds?: string[];\n  /**\n   * @format GUID\n   * @maxSize 1000\n   */\n  variantIds?: string[];\n}\n\nexport interface DeleteLocationIdsFromModifierGroups {\n  /**\n   * @format GUID\n   * @maxSize 100\n   */\n  businessLocationIds?: string[];\n  /**\n   * @format GUID\n   * @maxSize 1000\n   */\n  modifierGroupIds?: string[];\n}\n\nexport interface CreateItemRequest {\n  /** Item details. */\n  item: Item;\n}\n\nexport interface CreateItemResponse {\n  /** Item. */\n  item?: Item;\n}\n\nexport interface BulkCreateItemsRequest {\n  /**\n   * Items details.\n   * @maxSize 100\n   */\n  items: Item[];\n  /** Whether to return entity in the response. */\n  returnEntity?: boolean;\n}\n\nexport interface BulkCreateItemsResponse {\n  /** Information about the created items. */\n  results?: BulkCreateItemResult[];\n  /** Metadata for the API call. */\n  bulkActionMetadata?: BulkActionMetadata;\n}\n\nexport interface BulkCreateItemResult {\n  /** Metadata for item update. */\n  itemMetadata?: ItemMetadata;\n  /** Created item. */\n  item?: Item;\n}\n\nexport interface ItemMetadata {\n  /** Item ID. Should always be available, unless it's impossible (for example, when failing to create an item). */\n  _id?: string | null;\n  /** Index of the item within the request array. Allows for correlation between request and response items. */\n  originalIndex?: number;\n  /** Whether the requested action was successful for this item. When `false`, the `error` field is populated. */\n  success?: boolean;\n  /** Details about the error in case of failure. */\n  error?: ApplicationError;\n}\n\nexport interface ApplicationError {\n  /** Error code. */\n  code?: string;\n  /** Description of the error. */\n  description?: string;\n  /** Data related to the error. */\n  data?: Record<string, any> | null;\n}\n\nexport interface BulkActionMetadata {\n  /** Number of items that were successfully processed. */\n  totalSuccesses?: number;\n  /** Number of items that couldn't be processed. */\n  totalFailures?: number;\n  /** Number of failures without details because detailed failure threshold was exceeded. */\n  undetailedFailures?: number;\n}\n\nexport interface GetItemRequest {\n  /**\n   * Item ID.\n   * @format GUID\n   */\n  itemId: string;\n}\n\nexport interface GetItemResponse {\n  /** Item. */\n  item?: Item;\n}\n\nexport interface ListItemsRequest {\n  /** Item IDs. */\n  itemIds?: string[];\n  /** The metadata of the paginated results. */\n  paging?: CursorPaging;\n  /** Whether to return only items that are visible to site visitors. */\n  onlyVisible?: boolean | null;\n}\n\nexport interface CursorPaging {\n  /**\n   * Number of items to load.\n   * @max 500\n   */\n  limit?: number | null;\n  /**\n   * Pointer to the next or previous page in the list of results.\n   *\n   * You can get the relevant cursor token\n   * from the `pagingMetadata` object in the previous call's response.\n   * Not relevant for the first request.\n   */\n  cursor?: string | null;\n}\n\nexport interface ListItemsResponse {\n  /** Items. */\n  items?: Item[];\n  /** The metadata of the paginated results. */\n  pagingMetadata?: CursorPagingMetadata;\n}\n\nexport interface CursorPagingMetadata {\n  /** Number of items returned in the response. */\n  count?: number | null;\n  /** Offset that was requested. */\n  cursors?: Cursors;\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   */\n  hasNext?: boolean | null;\n}\n\nexport interface Cursors {\n  /** Cursor pointing to next page in the list of results. */\n  next?: string | null;\n  /** Cursor pointing to previous page in the list of results. */\n  prev?: string | null;\n}\n\nexport interface QueryItemsRequest {\n  /** Query options. */\n  query?: CursorQuery;\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   */\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 QueryItemsResponse {\n  /** Retrieved items. */\n  items?: Item[];\n  /** The metadata of the paginated results. */\n  pagingMetadata?: CursorPagingMetadata;\n}\n\nexport interface SearchItemsRequest {\n  /** Search options. */\n  search?: CursorSearch;\n}\n\nexport interface CursorSearch extends CursorSearchPagingMethodOneOf {\n  /**\n   * Cursor paging options.\n   *\n   * Learn more about cursor paging ([SDK](https://dev.wix.com/docs/sdk/articles/work-with-the-sdk/api-query-language#cursor-paging) | [REST](https://dev.wix.com/docs/rest/articles/getting-started/api-query-language#cursor-paging)).\n   */\n  cursorPaging?: CursorPaging;\n  /**\n   * Filter object.\n   *\n   * Learn more about filtering ([SDK](https://dev.wix.com/docs/sdk/articles/work-with-the-sdk/api-query-language#the-filter-object) | [REST](https://dev.wix.com/docs/rest/articles/getting-started/api-query-language#filters)).\n   */\n  filter?: Record<string, any> | null;\n  /**\n   * Sort object.\n   *\n   * Learn more about sorting ([SDK](https://dev.wix.com/docs/sdk/articles/work-with-the-sdk/api-query-language#the-sort-array) | [REST](https://dev.wix.com/docs/rest/articles/getting-started/api-query-language#sorting)).\n   */\n  sort?: Sorting[];\n  /** Logical groupings of data into facets, with summaries for each facet. For example, use aggregations to allow site visitors to narrow down their search results by selecting specific categories. */\n  aggregations?: Aggregation[];\n  /** Free text to match in searchable fields. */\n  search?: SearchDetails;\n}\n\n/** @oneof */\nexport interface CursorSearchPagingMethodOneOf {\n  /**\n   * Cursor paging options.\n   *\n   * Learn more about cursor paging ([SDK](https://dev.wix.com/docs/sdk/articles/work-with-the-sdk/api-query-language#cursor-paging) | [REST](https://dev.wix.com/docs/rest/articles/getting-started/api-query-language#cursor-paging)).\n   */\n  cursorPaging?: CursorPaging;\n}\n\nexport interface Aggregation extends AggregationKindOneOf {\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?: ValueAggregation;\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?: RangeAggregation;\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?: ScalarAggregation;\n  /** Aggregation name, returned in `aggregations.results.name`. */\n  name?: string | null;\n  /** Type of aggregation to perform. Must align with the corresponding aggregation field. */\n  type?: AggregationTypeWithLiterals;\n  /** Field to aggreg   ate by. Use dot notation to specify a JSON path. For example, `order.address.streetName`. */\n  fieldPath?: string;\n}\n\n/** @oneof */\nexport interface AggregationKindOneOf {\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?: ValueAggregation;\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?: RangeAggregation;\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?: ScalarAggregation;\n}\n\nexport interface RangeBucket {\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 SortType {\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 SortTypeWithLiterals = SortType | 'COUNT' | 'VALUE';\n\nexport enum SortDirection {\n  /** Descending order. */\n  DESC = 'DESC',\n  /** Ascending order. */\n  ASC = 'ASC',\n}\n\n/** @enumType */\nexport type SortDirectionWithLiterals = SortDirection | 'DESC' | 'ASC';\n\nexport enum ScalarType {\n  UNKNOWN_SCALAR_TYPE = 'UNKNOWN_SCALAR_TYPE',\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\n/** @enumType */\nexport type ScalarTypeWithLiterals =\n  | ScalarType\n  | 'UNKNOWN_SCALAR_TYPE'\n  | 'COUNT_DISTINCT'\n  | 'MIN'\n  | 'MAX';\n\nexport enum AggregationType {\n  UNKNOWN_AGGREGATION_TYPE = 'UNKNOWN_AGGREGATION_TYPE',\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}\n\n/** @enumType */\nexport type AggregationTypeWithLiterals =\n  | AggregationType\n  | 'UNKNOWN_AGGREGATION_TYPE'\n  | 'VALUE'\n  | 'RANGE'\n  | 'SCALAR';\n\nexport interface ValueAggregation {\n  /** Sort type. */\n  sortType?: SortTypeWithLiterals;\n  /** Sort direction. */\n  sortDirection?: SortDirectionWithLiterals;\n  /**\n   * Number of aggregation results to return.\n   * Min: `1`\n   * Max: `250`\n   * Default: `10`\n   */\n  limit?: number | null;\n}\n\nexport interface RangeAggregation {\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  buckets?: RangeBucket[];\n}\n\nexport interface ScalarAggregation {\n  /** Type of scalar aggregation. */\n  type?: ScalarTypeWithLiterals;\n}\n\nexport interface SearchDetails {\n  /** Search mode. Defines the search logic for combining multiple terms in the `expression`. */\n  mode?: ModeWithLiterals;\n  /** Search term or expression. */\n  expression?: string | null;\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  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 Mode {\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 ModeWithLiterals = Mode | 'OR' | 'AND';\n\nexport interface SearchItemsResponse {\n  /** Retrieved items. */\n  items?: Item[];\n  /** The metadata of the paginated results. */\n  pagingMetadata?: CursorPagingMetadata;\n  /** The metadata of the search results. */\n  aggregationData?: AggregationData;\n}\n\nexport interface AggregationData {\n  /** List of the aggregated data results. */\n  results?: AggregationResults[];\n}\n\nexport interface ValueAggregationResult {\n  /** Value of the field. */\n  value?: string;\n  /** Number 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  /** Total number of entities in this range. */\n  count?: number;\n}\n\nexport interface ValueResults {\n  /** List of value aggregations. */\n  results?: ValueAggregationResult[];\n}\n\nexport interface RangeResults {\n  /** List of ranges returned in the same order as requested. */\n  results?: RangeAggregationResult[];\n}\n\nexport interface ScalarResult {\n  /** Type of scalar aggregation. */\n  type?: ScalarTypeWithLiterals;\n  /** Value of the scalar aggregation. */\n  value?: number;\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?: ScalarResult;\n  /** Aggregation name, returned in `aggregations.results.name`. */\n  name?: string;\n  /** Type of aggregation to perform. Must align with the corresponding aggregation field. */\n  type?: AggregationTypeWithLiterals;\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?: ScalarResult;\n}\n\nexport interface CountItemsRequest {\n  /** Filter for counting items. */\n  filter?: Record<string, any> | null;\n  /** Search details. */\n  searchDetails?: SearchDetails;\n}\n\nexport interface CountItemsResponse {\n  /** Counted items. */\n  count?: number;\n}\n\nexport interface UpdateItemRequest {\n  /** Item to update. */\n  item: Item;\n}\n\nexport interface UpdateItemResponse {\n  /** Updated item. */\n  item?: Item;\n}\n\nexport interface BulkUpdateItemRequest {\n  /**\n   * Items to update.\n   * @minSize 1\n   * @maxSize 100\n   */\n  items: MaskedItem[];\n  /** Whether to return entity in the response. */\n  returnEntity?: boolean;\n}\n\nexport interface MaskedItem {\n  /** Item to update. */\n  item?: Item;\n  /** Explicit list of fields to update. */\n  mask?: string[];\n}\n\nexport interface BulkUpdateItemResponse {\n  /**\n   * Information about the updated items.\n   * @minSize 1\n   * @maxSize 100\n   */\n  results?: BulkUpdateItemResponseBulkItemResult[];\n  /** Metadata for the API call. */\n  bulkActionMetadata?: BulkActionMetadata;\n}\n\nexport interface BulkUpdateItemResponseBulkItemResult {\n  /** Metadata for item update. */\n  itemMetadata?: ItemMetadata;\n  /** Updated item. Only returned if `returnEntity` is set to `true`. */\n  item?: Item;\n}\n\nexport interface DeleteItemRequest {\n  /**\n   * Item ID.\n   * @format GUID\n   */\n  itemId: string;\n}\n\nexport interface DeleteItemResponse {}\n\nexport interface BulkDeleteItemsRequest {\n  /**\n   * Item IDs.\n   * @format GUID\n   */\n  ids: string[];\n}\n\nexport interface BulkDeleteItemsResponse {\n  /** Information about the deleted items. */\n  results?: BulkDeleteItemResult[];\n  /** Metadata for the API call. */\n  bulkActionMetadata?: BulkActionMetadata;\n}\n\nexport interface BulkDeleteItemResult {\n  /** Metadata for item delete. */\n  itemMetadata?: ItemMetadata;\n}\n\nexport interface CloneItemsRequest {\n  /**\n   * The MetaSiteId to clone from.\n   * @format GUID\n   */\n  metaSiteId?: string;\n}\n\nexport interface CloneItemsResponse {}\n\nexport interface BulkUpdateBusinessLocationIdsRequest {\n  /**\n   * item ids\n   * @format GUID\n   * @minSize 1\n   * @maxSize 100\n   */\n  itemIds?: string[];\n  /**\n   * Business Location Ids.\n   * @maxSize 100\n   * @format GUID\n   */\n  businessLocationIds?: string[];\n}\n\nexport interface BulkUpdateBusinessLocationIdsResponse {\n  /**\n   * Information about the updated items.\n   * @minSize 1\n   * @maxSize 100\n   */\n  results?: BulkUpdateBusinessLocationIdsResponseBulkItemResult[];\n}\n\nexport interface BulkUpdateBusinessLocationIdsResponseBulkItemResult {\n  /** Metadata for item update. */\n  itemMetadata?: ItemMetadata;\n}\n\nexport interface BulkUpdateBusinessLocationIdsPerEntityRequest {\n  /**\n   * @minSize 1\n   * @maxSize 100\n   */\n  itemIdLocationIds?: ItemIdLocationIds[];\n}\n\nexport interface ItemIdLocationIds {\n  /**\n   * item ID\n   * @format GUID\n   */\n  itemId?: string;\n  /**\n   * Business Location IDs\n   * @maxSize 100\n   * @format GUID\n   */\n  businessLocationIds?: string[];\n}\n\nexport interface BulkUpdateBusinessLocationIdsPerEntityResponse {\n  /**\n   * Information about the updated items.\n   * @minSize 1\n   * @maxSize 100\n   */\n  results?: BulkItemResult[];\n}\n\nexport interface BulkItemResult {\n  /** Metadata for item update. */\n  itemMetadata?: ItemMetadata;\n}\n\nexport interface SyncContentToMultilingualRequest {\n  /**\n   * MetaSite ID\n   * @format GUID\n   */\n  metaSiteId?: string;\n}\n\nexport interface SyncContentToMultilingualResponse {}\n\n/** @docsIgnore */\nexport type CountItemsApplicationErrors = {\n  code?: 'TOO_MANY_TO_COUNT';\n  description?: string;\n  data?: Record<string, any>;\n};\n\nexport interface BaseEventMetadata {\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  /** Details related to the account */\n  accountInfo?: AccountInfo;\n}\n\nexport interface EventMetadata extends BaseEventMetadata {\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  accountInfo?: AccountInfoMetadata;\n}\n\nexport interface AccountInfoMetadata {\n  /** ID of the Wix account associated with the event */\n  accountId: string;\n  /** ID of the Wix site associated with the event. Only included when the event is tied to a specific site. */\n  siteId?: string;\n  /** ID of the parent Wix account. Only included when 'accountId' belongs to a child account. */\n  parentAccountId?: string;\n}\n\nexport interface ItemCreatedEnvelope {\n  entity: Item;\n  metadata: EventMetadata;\n}\n\n/** @permissionScope Manage Restaurants - all permissions\n * @permissionScopeId SCOPE.RESTAURANTS.MEGA-SCOPES\n * @permissionId RESTAURANTS.ITEM_READ\n * @webhook\n * @eventType wix.restaurants.menus.v1.item_created\n * @serviceIdentifier com.wixpress.restaurants.menus_item.v1.RestaurantsMenusItem\n * @slug created\n */\nexport declare function onItemCreated(\n  handler: (event: ItemCreatedEnvelope) => void | Promise<void>\n): void;\n\nexport interface ItemDeletedEnvelope {\n  entity: Item;\n  metadata: EventMetadata;\n}\n\n/** @permissionScope Manage Restaurants - all permissions\n * @permissionScopeId SCOPE.RESTAURANTS.MEGA-SCOPES\n * @permissionId RESTAURANTS.ITEM_READ\n * @webhook\n * @eventType wix.restaurants.menus.v1.item_deleted\n * @serviceIdentifier com.wixpress.restaurants.menus_item.v1.RestaurantsMenusItem\n * @slug deleted\n */\nexport declare function onItemDeleted(\n  handler: (event: ItemDeletedEnvelope) => void | Promise<void>\n): void;\n\nexport interface ItemUpdatedEnvelope {\n  entity: Item;\n  metadata: EventMetadata;\n  /** @hidden */\n  modifiedFields: Record<string, any>;\n}\n\n/**\n * Triggered when an item is updated.\n * @permissionScope Manage Restaurants - all permissions\n * @permissionScopeId SCOPE.RESTAURANTS.MEGA-SCOPES\n * @permissionId RESTAURANTS.ITEM_READ\n * @webhook\n * @eventType wix.restaurants.menus.v1.item_updated\n * @serviceIdentifier com.wixpress.restaurants.menus_item.v1.RestaurantsMenusItem\n * @slug updated\n */\nexport declare function onItemUpdated(\n  handler: (event: ItemUpdatedEnvelope) => void | Promise<void>\n): void;\n\n/** @param _id - Item id to be duplicated.\n * @public\n * @requiredField _id\n * @permissionId RESTAURANTS.ITEM_CREATE\n * @applicableIdentity APP\n * @fqn com.wixpress.restaurants.menus_item.v1.restaurants_duplicate_item.RestaurantsDuplicateItem.DuplicateItem\n */\nexport async function duplicateItem(\n  _id: string,\n  options?: DuplicateItemOptions\n): Promise<NonNullablePaths<DuplicateItemResponse, `itemId`, 2>> {\n  // @ts-ignore\n  const { httpClient, sideEffects } = arguments[2] as {\n    httpClient: HttpClient;\n    sideEffects?: any;\n  };\n\n  const payload = renameKeysFromSDKRequestToRESTRequest({\n    id: _id,\n    businessLocationIds: options?.businessLocationIds,\n  });\n\n  const reqOpts = ambassadorWixRestaurantsMenusV1Item.duplicateItem(payload);\n\n  sideEffects?.onSiteCall?.();\n  try {\n    const result = await httpClient.request(reqOpts);\n    sideEffects?.onSuccess?.(result);\n\n    return renameKeysFromRESTResponseToSDKResponse(result.data)!;\n  } catch (err: any) {\n    const transformedError = sdkTransformError(\n      err,\n      {\n        spreadPathsToArguments: {},\n        explicitPathsToArguments: {\n          id: '$[0]',\n          businessLocationIds: '$[1].businessLocationIds',\n        },\n        singleArgumentUnchanged: false,\n      },\n      ['_id', 'options']\n    );\n    sideEffects?.onError?.(err);\n\n    throw transformedError;\n  }\n}\n\nexport interface DuplicateItemOptions {\n  /**\n   * Business location ids to duplicate the item to.\n   * @format GUID\n   * @maxSize 100\n   */\n  businessLocationIds?: string[] | null;\n}\n\n/**\n * > **Note:** The Item API only works with the Wix Restaurants Menus app. Make sure you have installed this app from the [Wix App Market](https://www.wix.com/app-market/wix-restaurants-menus-new).\n *\n * Creates an item.\n *\n * To create multiple items at once, use [Bulk Create Items](https://dev.wix.com/docs/rest/business-solutions/restaurants/menus/item/bulk-create-items).\n * @param item - Item details.\n * @public\n * @requiredField item\n * @requiredField item.modifierGroups._id\n * @permissionId RESTAURANTS.ITEM_CREATE\n * @applicableIdentity APP\n * @returns Item.\n * @fqn com.wixpress.restaurants.menus_item.v1.RestaurantsMenusItem.CreateItem\n */\nexport async function createItem(\n  item: NonNullablePaths<Item, `modifierGroups.${number}._id`, 4>\n): Promise<\n  NonNullablePaths<\n    Item,\n    | `priceVariants.variants`\n    | `priceVariants.variants.${number}.priceInfo.price`\n    | `name`\n    | `additionalImages`\n    | `labels`\n    | `labels.${number}._id`\n    | `modifierGroups`\n    | `businessLocationIds`,\n    6\n  >\n> {\n  // @ts-ignore\n  const { httpClient, sideEffects } = arguments[1] as {\n    httpClient: HttpClient;\n    sideEffects?: any;\n  };\n\n  const payload = transformPaths(\n    renameKeysFromSDKRequestToRESTRequest({ item: item }),\n    [\n      {\n        transformFn: transformSDKImageToRESTImage,\n        paths: [\n          { path: 'item.image' },\n          { path: 'item.additionalImages', isRepeated: true },\n        ],\n      },\n    ]\n  );\n\n  const reqOpts = ambassadorWixRestaurantsMenusV1Item.createItem(payload);\n\n  sideEffects?.onSiteCall?.();\n  try {\n    const result = await httpClient.request(reqOpts);\n    sideEffects?.onSuccess?.(result);\n\n    return renameKeysFromRESTResponseToSDKResponse(\n      transformPaths(result.data, [\n        {\n          transformFn: transformRESTImageToSDKImage,\n          paths: [\n            { path: 'item.image' },\n            { path: 'item.additionalImages', isRepeated: true },\n          ],\n        },\n      ])\n    )?.item!;\n  } catch (err: any) {\n    const transformedError = sdkTransformError(\n      err,\n      {\n        spreadPathsToArguments: {},\n        explicitPathsToArguments: { item: '$[0]' },\n        singleArgumentUnchanged: false,\n      },\n      ['item']\n    );\n    sideEffects?.onError?.(err);\n\n    throw transformedError;\n  }\n}\n\n/**\n * > **Note:** The Items API only works with the Wix Restaurants Menus app. Make sure you have installed this app from the [Wix App Market](https://www.wix.com/app-market/wix-restaurants-menus-new).\n *\n * Creates multiple items at once.\n * @param items - Items details.\n * @public\n * @requiredField items\n * @requiredField items.modifierGroups._id\n * @permissionId RESTAURANTS.ITEM_CREATE\n * @applicableIdentity APP\n * @fqn com.wixpress.restaurants.menus_item.v1.RestaurantsMenusItem.BulkCreateItems\n */\nexport async function bulkCreateItems(\n  items: NonNullablePaths<Item, `modifierGroups.${number}._id`, 4>[],\n  options?: BulkCreateItemsOptions\n): Promise<\n  NonNullablePaths<\n    BulkCreateItemsResponse,\n    | `results`\n    | `results.${number}.itemMetadata.originalIndex`\n    | `results.${number}.itemMetadata.success`\n    | `results.${number}.itemMetadata.error.code`\n    | `results.${number}.itemMetadata.error.description`\n    | `results.${number}.item.priceInfo.price`\n    | `results.${number}.item.name`\n    | `bulkActionMetadata.totalSuccesses`\n    | `bulkActionMetadata.totalFailures`\n    | `bulkActionMetadata.undetailedFailures`,\n    6\n  >\n> {\n  // @ts-ignore\n  const { httpClient, sideEffects } = arguments[2] as {\n    httpClient: HttpClient;\n    sideEffects?: any;\n  };\n\n  const payload = transformPaths(\n    renameKeysFromSDKRequestToRESTRequest({\n      items: items,\n      returnEntity: options?.returnEntity,\n    }),\n    [\n      {\n        transformFn: transformSDKImageToRESTImage,\n        paths: [\n          { path: 'items.image' },\n          { path: 'items.additionalImages', isRepeated: true },\n        ],\n      },\n    ]\n  );\n\n  const reqOpts = ambassadorWixRestaurantsMenusV1Item.bulkCreateItems(payload);\n\n  sideEffects?.onSiteCall?.();\n  try {\n    const result = await httpClient.request(reqOpts);\n    sideEffects?.onSuccess?.(result);\n\n    return renameKeysFromRESTResponseToSDKResponse(\n      transformPaths(result.data, [\n        {\n          transformFn: transformRESTImageToSDKImage,\n          paths: [\n            { path: 'results.item.image' },\n            { path: 'results.item.additionalImages', isRepeated: true },\n          ],\n        },\n      ])\n    )!;\n  } catch (err: any) {\n    const transformedError = sdkTransformError(\n      err,\n      {\n        spreadPathsToArguments: {},\n        explicitPathsToArguments: {\n          items: '$[0]',\n          returnEntity: '$[1].returnEntity',\n        },\n        singleArgumentUnchanged: false,\n      },\n      ['items', 'options']\n    );\n    sideEffects?.onError?.(err);\n\n    throw transformedError;\n  }\n}\n\nexport interface BulkCreateItemsOptions {\n  /** Whether to return entity in the response. */\n  returnEntity?: boolean;\n}\n\n/**\n * > **Note:** The Item API only works with the Wix Restaurants Menus app. Make sure you have installed this app from the [Wix App Market](https://www.wix.com/app-market/wix-restaurants-menus-new).\n *\n * Retrieves an item by ID.\n * @param itemId - Item ID.\n * @public\n * @requiredField itemId\n * @permissionId RESTAURANTS.ITEM_READ\n * @applicableIdentity APP\n * @returns Item.\n * @fqn com.wixpress.restaurants.menus_item.v1.RestaurantsMenusItem.GetItem\n */\nexport async function getItem(\n  itemId: string\n): Promise<\n  NonNullablePaths<\n    Item,\n    | `priceVariants.variants`\n    | `priceVariants.variants.${number}.priceInfo.price`\n    | `name`\n    | `additionalImages`\n    | `labels`\n    | `labels.${number}._id`\n    | `modifierGroups`\n    | `businessLocationIds`,\n    6\n  >\n> {\n  // @ts-ignore\n  const { httpClient, sideEffects } = arguments[1] as {\n    httpClient: HttpClient;\n    sideEffects?: any;\n  };\n\n  const payload = renameKeysFromSDKRequestToRESTRequest({ itemId: itemId });\n\n  const reqOpts = ambassadorWixRestaurantsMenusV1Item.getItem(payload);\n\n  sideEffects?.onSiteCall?.();\n  try {\n    const result = await httpClient.request(reqOpts);\n    sideEffects?.onSuccess?.(result);\n\n    return renameKeysFromRESTResponseToSDKResponse(\n      transformPaths(result.data, [\n        {\n          transformFn: transformRESTImageToSDKImage,\n          paths: [\n            { path: 'item.image' },\n            { path: 'item.additionalImages', isRepeated: true },\n          ],\n        },\n      ])\n    )?.item!;\n  } catch (err: any) {\n    const transformedError = sdkTransformError(\n      err,\n      {\n        spreadPathsToArguments: {},\n        explicitPathsToArguments: { itemId: '$[0]' },\n        singleArgumentUnchanged: false,\n      },\n      ['itemId']\n    );\n    sideEffects?.onError?.(err);\n\n    throw transformedError;\n  }\n}\n\n/**\n * > **Note:** The Item API only works with the Wix Restaurants Menus app. Make sure you have installed this app from the [Wix App Market](https://www.wix.com/app-market/wix-restaurants-menus-new).\n *\n * Retrieves a list of up to 500 items.\n * @public\n * @permissionId RESTAURANTS.ITEM_READ\n * @applicableIdentity APP\n * @fqn com.wixpress.restaurants.menus_item.v1.RestaurantsMenusItem.ListItems\n */\nexport async function listItems(\n  options?: ListItemsOptions\n): Promise<\n  NonNullablePaths<\n    ListItemsResponse,\n    `items` | `items.${number}.priceInfo.price` | `items.${number}.name`,\n    5\n  >\n> {\n  // @ts-ignore\n  const { httpClient, sideEffects } = arguments[1] as {\n    httpClient: HttpClient;\n    sideEffects?: any;\n  };\n\n  const payload = renameKeysFromSDKRequestToRESTRequest({\n    itemIds: options?.itemIds,\n    paging: options?.paging,\n    onlyVisible: options?.onlyVisible,\n  });\n\n  const reqOpts = ambassadorWixRestaurantsMenusV1Item.listItems(payload);\n\n  sideEffects?.onSiteCall?.();\n  try {\n    const result = await httpClient.request(reqOpts);\n    sideEffects?.onSuccess?.(result);\n\n    return renameKeysFromRESTResponseToSDKResponse(\n      transformPaths(result.data, [\n        {\n          transformFn: transformRESTImageToSDKImage,\n          paths: [\n            { path: 'items.image' },\n            { path: 'items.additionalImages', isRepeated: true },\n          ],\n        },\n      ])\n    )!;\n  } catch (err: any) {\n    const transformedError = sdkTransformError(\n      err,\n      {\n        spreadPathsToArguments: {},\n        explicitPathsToArguments: {\n          itemIds: '$[0].itemIds',\n          paging: '$[0].paging',\n          onlyVisible: '$[0].onlyVisible',\n        },\n        singleArgumentUnchanged: false,\n      },\n      ['options']\n    );\n    sideEffects?.onError?.(err);\n\n    throw transformedError;\n  }\n}\n\nexport interface ListItemsOptions {\n  /** Item IDs. */\n  itemIds?: string[];\n  /** The metadata of the paginated results. */\n  paging?: CursorPaging;\n  /** Whether to return only items that are visible to site visitors. */\n  onlyVisible?: boolean | null;\n}\n\n/**\n * Creates a query to retrieve a list of items.\n *\n * The `queryItems()` function builds a query to retrieve a list of items and returns a `ItemsQueryBuilder` object.\n *\n * The returned object contains the query definition, which is used to run the query using the [`find()`](/items/items-query-builder/find) function.\n *\n * You can refine the query by chaining `ItemsQueryBuilder` functions onto the query. `ItemsQueryBuilder` functions enable you to filter, sort, and control the results that `queryItems()` returns.\n *\n * `queryItems()` runs with the following `ItemsQueryBuilder` defaults, which you can override:\n *\n * * [`limit(500)`](/items/items-query-builder/limit)\n *\n * The following `ItemsQueryBuilder` functions are supported for `queryItems()`. For a full description of the item object, see the object returned for the [`items`](/items/items-query-result/items) property in `ItemsQueryResult`.\n * @public\n * @permissionId RESTAURANTS.ITEM_READ\n * @applicableIdentity APP\n * @fqn com.wixpress.restaurants.menus_item.v1.RestaurantsMenusItem.QueryItems\n */\nexport function queryItems(): ItemsQueryBuilder {\n  // @ts-ignore\n  const { httpClient, sideEffects } = arguments[0] as {\n    httpClient: HttpClient;\n    sideEffects?: any;\n  };\n\n  return queryBuilder<Item, 'CURSOR', QueryItemsRequest, QueryItemsResponse>({\n    func: async (payload: QueryItemsRequest) => {\n      const reqOpts = ambassadorWixRestaurantsMenusV1Item.queryItems(payload);\n\n      sideEffects?.onSiteCall?.();\n      try {\n        const result = await httpClient.request(reqOpts);\n        sideEffects?.onSuccess?.(result);\n        return result;\n      } catch (err) {\n        sideEffects?.onError?.(err);\n        throw err;\n      }\n    },\n    requestTransformer: (query: QueryItemsRequest['query']) => {\n      const args = [query, {}] as [QueryItemsRequest['query'], {}];\n      return renameKeysFromSDKRequestToRESTRequest({\n        ...args?.[1],\n        query: args?.[0],\n      });\n    },\n    responseTransformer: ({ data }: HttpResponse<QueryItemsResponse>) => {\n      const transformedData = renameKeysFromRESTResponseToSDKResponse(\n        transformPaths(data, [\n          {\n            transformFn: transformRESTImageToSDKImage,\n            paths: [\n              { path: 'items.image' },\n              { path: 'items.additionalImages', isRepeated: true },\n            ],\n          },\n        ])\n      );\n\n      return {\n        items: transformedData?.items,\n        pagingMetadata: transformedData?.pagingMetadata,\n      };\n    },\n    errorTransformer: (err: unknown) => {\n      const transformedError = sdkTransformError(err, {\n        spreadPathsToArguments: {},\n        explicitPathsToArguments: { query: '$[0]' },\n        singleArgumentUnchanged: false,\n      });\n\n      throw transformedError;\n    },\n    pagingMethod: 'CURSOR',\n    transformationPaths: {},\n  });\n}\n\ninterface QueryCursorResult {\n  cursors: Cursors;\n  hasNext: () => boolean;\n  hasPrev: () => boolean;\n  length: number;\n  pageSize: number;\n}\n\nexport interface ItemsQueryResult extends QueryCursorResult {\n  items: Item[];\n  query: ItemsQueryBuilder;\n  next: () => Promise<ItemsQueryResult>;\n  prev: () => Promise<ItemsQueryResult>;\n}\n\nexport interface ItemsQueryBuilder {\n  /** @param propertyName - Property whose value is compared with `value`.\n   * @param value - Value to compare against.\n   */\n  eq: (\n    propertyName:\n      | 'priceVariants.variants.variantId'\n      | 'priceVariants.variants.price'\n      | '_id'\n      | '_createdDate'\n      | '_updatedDate'\n      | 'name'\n      | 'description'\n      | 'image.id'\n      | 'labels.id'\n      | 'visible'\n      | 'featured'\n      | 'orderSettings.inStock'\n      | 'orderSettings.acceptSpecialRequests'\n      | 'modifierGroups.id'\n      | 'businessLocationIds'\n      | 'externalReferenceInfo.externalAppId'\n      | 'externalReferenceInfo.externalEntityId'\n      | 'externalReferenceInfo.connected',\n    value: any\n  ) => ItemsQueryBuilder;\n  /** @param propertyName - Property whose value is compared with `value`.\n   * @param value - Value to compare against.\n   */\n  ne: (\n    propertyName:\n      | 'priceVariants.variants.variantId'\n      | 'priceVariants.variants.price'\n      | '_id'\n      | '_createdDate'\n      | '_updatedDate'\n      | 'name'\n      | 'description'\n      | 'image.id'\n      | 'labels.id'\n      | 'visible'\n      | 'featured'\n      | 'orderSettings.inStock'\n      | 'orderSettings.acceptSpecialRequests'\n      | 'modifierGroups.id'\n      | 'businessLocationIds'\n      | 'externalReferenceInfo.externalAppId'\n      | 'externalReferenceInfo.externalEntityId'\n      | 'externalReferenceInfo.connected',\n    value: any\n  ) => ItemsQueryBuilder;\n  /** @param propertyName - Property whose value is compared with `value`.\n   * @param value - Value to compare against.\n   */\n  ge: (\n    propertyName:\n      | 'priceVariants.variants.variantId'\n      | '_id'\n      | '_createdDate'\n      | '_updatedDate'\n      | 'name'\n      | 'description'\n      | 'image.id'\n      | 'labels.id'\n      | 'modifierGroups.id'\n      | 'externalReferenceInfo.externalAppId'\n      | 'externalReferenceInfo.externalEntityId',\n    value: any\n  ) => ItemsQueryBuilder;\n  /** @param propertyName - Property whose value is compared with `value`.\n   * @param value - Value to compare against.\n   */\n  gt: (\n    propertyName:\n      | 'priceVariants.variants.variantId'\n      | '_id'\n      | '_createdDate'\n      | '_updatedDate'\n      | 'name'\n      | 'description'\n      | 'image.id'\n      | 'labels.id'\n      | 'modifierGroups.id'\n      | 'externalReferenceInfo.externalAppId'\n      | 'externalReferenceInfo.externalEntityId',\n    value: any\n  ) => ItemsQueryBuilder;\n  /** @param propertyName - Property whose value is compared with `value`.\n   * @param value - Value to compare against.\n   */\n  le: (\n    propertyName:\n      | 'priceVariants.variants.variantId'\n      | '_id'\n      | '_createdDate'\n      | '_updatedDate'\n      | 'name'\n      | 'description'\n      | 'image.id'\n      | 'labels.id'\n      | 'modifierGroups.id'\n      | 'externalReferenceInfo.externalAppId'\n      | 'externalReferenceInfo.externalEntityId',\n    value: any\n  ) => ItemsQueryBuilder;\n  /** @param propertyName - Property whose value is compared with `value`.\n   * @param value - Value to compare against.\n   */\n  lt: (\n    propertyName:\n      | 'priceVariants.variants.variantId'\n      | '_id'\n      | '_createdDate'\n      | '_updatedDate'\n      | 'name'\n      | 'description'\n      | 'image.id'\n      | 'labels.id'\n      | 'modifierGroups.id'\n      | 'externalReferenceInfo.externalAppId'\n      | 'externalReferenceInfo.externalEntityId',\n    value: any\n  ) => ItemsQueryBuilder;\n  /** @param propertyName - Property whose value is compared with `string`.\n   * @param string - String to compare against. Case-insensitive.\n   */\n  startsWith: (\n    propertyName:\n      | 'priceVariants.variants.variantId'\n      | '_id'\n      | 'name'\n      | 'description'\n      | 'image.id'\n      | 'labels.id'\n      | 'modifierGroups.id'\n      | 'externalReferenceInfo.externalAppId'\n      | 'externalReferenceInfo.externalEntityId',\n    value: string\n  ) => ItemsQueryBuilder;\n  /** @param propertyName - Property whose value is compared with `values`.\n   * @param values - List of values to compare against.\n   */\n  hasSome: (\n    propertyName:\n      | 'priceVariants.variants.variantId'\n      | '_id'\n      | '_createdDate'\n      | '_updatedDate'\n      | 'name'\n      | 'description'\n      | 'image.id'\n      | 'labels.id'\n      | 'visible'\n      | 'featured'\n      | 'modifierGroups.id'\n      | 'businessLocationIds'\n      | 'externalReferenceInfo.externalAppId'\n      | 'externalReferenceInfo.externalEntityId'\n      | 'externalReferenceInfo.connected',\n    value: any[]\n  ) => ItemsQueryBuilder;\n  /** @param propertyName - Property whose value is compared with `values`.\n   * @param values - List of values to compare against.\n   */\n  hasAll: (\n    propertyName: 'businessLocationIds',\n    value: any[]\n  ) => ItemsQueryBuilder;\n  in: (\n    propertyName:\n      | 'priceVariants.variants.variantId'\n      | 'priceVariants.variants.price'\n      | '_id'\n      | '_createdDate'\n      | '_updatedDate'\n      | 'name'\n      | 'description'\n      | 'image.id'\n      | 'labels.id'\n      | 'visible'\n      | 'featured'\n      | 'orderSettings.inStock'\n      | 'orderSettings.acceptSpecialRequests'\n      | 'modifierGroups.id'\n      | 'businessLocationIds'\n      | 'externalReferenceInfo.externalAppId'\n      | 'externalReferenceInfo.externalEntityId'\n      | 'externalReferenceInfo.connected',\n    value: any\n  ) => ItemsQueryBuilder;\n  exists: (\n    propertyName:\n      | 'priceVariants.variants.variantId'\n      | 'priceVariants.variants.price'\n      | '_id'\n      | '_createdDate'\n      | '_updatedDate'\n      | 'name'\n      | 'description'\n      | 'image.id'\n      | 'labels.id'\n      | 'visible'\n      | 'featured'\n      | 'orderSettings.inStock'\n      | 'orderSettings.acceptSpecialRequests'\n      | 'modifierGroups.id'\n      | 'businessLocationIds'\n      | 'externalReferenceInfo.externalAppId'\n      | 'externalReferenceInfo.externalEntityId'\n      | 'externalReferenceInfo.connected',\n    value: boolean\n  ) => ItemsQueryBuilder;\n  /** @param propertyNames - Properties used in the sort. To sort by multiple properties, pass properties as additional arguments. */\n  ascending: (\n    ...propertyNames: Array<\n      | 'priceVariants.variants.price'\n      | '_id'\n      | '_createdDate'\n      | '_updatedDate'\n      | 'name'\n      | 'description'\n      | 'image.id'\n      | 'visible'\n      | 'featured'\n      | 'orderSettings.inStock'\n      | 'orderSettings.acceptSpecialRequests'\n      | 'orderSettings.taxGroupId'\n      | 'oloMigrationItemId'\n      | 'businessLocationIds'\n    >\n  ) => ItemsQueryBuilder;\n  /** @param propertyNames - Properties used in the sort. To sort by multiple properties, pass properties as additional arguments. */\n  descending: (\n    ...propertyNames: Array<\n      | 'priceVariants.variants.price'\n      | '_id'\n      | '_createdDate'\n      | '_updatedDate'\n      | 'name'\n      | 'description'\n      | 'image.id'\n      | 'visible'\n      | 'featured'\n      | 'orderSettings.inStock'\n      | 'orderSettings.acceptSpecialRequests'\n      | 'orderSettings.taxGroupId'\n      | 'oloMigrationItemId'\n      | 'businessLocationIds'\n    >\n  ) => ItemsQueryBuilder;\n  /** @param limit - Number of items to return, which is also the `pageSize` of the results object. */\n  limit: (limit: number) => ItemsQueryBuilder;\n  /** @param cursor - A pointer to specific record */\n  skipTo: (cursor: string) => ItemsQueryBuilder;\n  find: () => Promise<ItemsQueryResult>;\n}\n\n/**\n * @hidden\n * @fqn com.wixpress.restaurants.menus_item.v1.RestaurantsMenusItem.QueryItems\n * @requiredField query\n */\nexport async function typedQueryItems(\n  query: ItemQuery\n): Promise<\n  NonNullablePaths<\n    QueryItemsResponse,\n    `items` | `items.${number}.priceInfo.price` | `items.${number}.name`,\n    5\n  >\n> {\n  // @ts-ignore\n  const { httpClient, sideEffects } = arguments[1] as {\n    httpClient: HttpClient;\n    sideEffects?: any;\n  };\n\n  const payload = renameKeysFromSDKRequestToRESTRequest({ query: query });\n\n  const reqOpts = ambassadorWixRestaurantsMenusV1Item.queryItems(payload);\n\n  sideEffects?.onSiteCall?.();\n  try {\n    const result = await httpClient.request(reqOpts);\n    sideEffects?.onSuccess?.(result);\n\n    return renameKeysFromRESTResponseToSDKResponse(\n      transformPaths(result.data, [\n        {\n          transformFn: transformRESTImageToSDKImage,\n          paths: [\n            { path: 'items.image' },\n            { path: 'items.additionalImages', isRepeated: true },\n          ],\n        },\n      ])\n    )!;\n  } catch (err: any) {\n    const transformedError = sdkTransformError(\n      err,\n      {\n        spreadPathsToArguments: {},\n        explicitPathsToArguments: { query: '$[0]' },\n        singleArgumentUnchanged: false,\n      },\n      ['query']\n    );\n    sideEffects?.onError?.(err);\n\n    throw transformedError;\n  }\n}\n\nexport interface ItemQuerySpec extends QuerySpec {\n  paging: 'cursor';\n  wql: [\n    {\n      fields: ['businessLocationIds'];\n      operators: ['$hasAll', '$hasSome'];\n      sort: 'BOTH';\n    },\n    {\n      fields: [\n        '_createdDate',\n        '_id',\n        '_updatedDate',\n        'description',\n        'featured',\n        'image._id',\n        'name',\n        'visible'\n      ];\n      operators: '*';\n      sort: 'BOTH';\n    },\n    {\n      fields: [\n        'orderSettings.acceptSpecialRequests',\n        'orderSettings.inStock',\n        'priceVariants.variants.price'\n      ];\n      operators: ['$eq', '$exists', '$in', '$ne', '$nin'];\n      sort: 'BOTH';\n    },\n    {\n      fields: [\n        'labels._id',\n        'modifierGroups._id',\n        'priceVariants.variants.variantId'\n      ];\n      operators: ['$hasAll', '$hasSome'];\n      sort: 'NONE';\n    },\n    {\n      fields: [\n        'externalReferenceInfo.connected',\n        'externalReferenceInfo.externalAppId',\n        'externalReferenceInfo.externalEntityId'\n      ];\n      operators: '*';\n      sort: 'NONE';\n    }\n  ];\n}\n\nexport type CommonQueryWithEntityContext = QuerySdkType<Item, ItemQuerySpec>;\nexport type ItemQuery = {\n  /** \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  */\n  cursorPaging?: {\n    /** \n  Number of items to load. \n  @max: 500 \n  */\n    limit?:\n      | NonNullable<CommonQueryWithEntityContext['cursorPaging']>['limit']\n      | null;\n    /** \n  Pointer to the next or previous page in the list of results.\n\n  You can get the relevant cursor token\n  from the `pagingMetadata` object in the previous call's response.\n  Not relevant for the first request.  \n  */\n    cursor?:\n      | NonNullable<CommonQueryWithEntityContext['cursorPaging']>['cursor']\n      | null;\n  };\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?: CommonQueryWithEntityContext['filter'] | null;\n  /** \n  Sort object in the following format:\n  `[{\"fieldName\":\"sortField1\",\"order\":\"ASC\"},{\"fieldName\":\"sortField2\",\"order\":\"DESC\"}]`  \n  */\n  sort?: {\n    /** \n  Name of the field to sort by. \n  @maxLength: 512 \n  */\n    fieldName?: NonNullable<\n      CommonQueryWithEntityContext['sort']\n    >[number]['fieldName'];\n    /** \n  Sort order.  \n  */\n    order?: NonNullable<CommonQueryWithEntityContext['sort']>[number]['order'];\n  }[];\n};\n\nexport const utils = {\n  query: {\n    ...createQueryUtils<Item, ItemQuerySpec, ItemQuery>(),\n  },\n  search: {\n    ...createSearchUtils<Item, ItemSearchSpec, ItemSearch>(),\n  },\n};\n\n/**\n * > **Note:** The Item API only works with the Wix Restaurants Menus app. Make sure you have installed this app from the [Wix App Market](https://www.wix.com/app-market/wix-restaurants-menus-new).\n *\n * Retrieves a list of items given the provided filtering, paging, and sorting.\n *\n * ## Defaults\n * Search Items has the following default settings, which you can override:\n *\n * - Sorted by `createdDate` in ascending order.\n * - `paging.limit` set to `500`.\n * - `paging.offset` set to `0`.\n * @param search - Search options.\n * @public\n * @requiredField search\n * @permissionId RESTAURANTS.ITEM_READ\n * @applicableIdentity APP\n * @fqn com.wixpress.restaurants.menus_item.v1.RestaurantsMenusItem.SearchItems\n */\nexport async function searchItems(\n  search: ItemSearch\n): Promise<\n  NonNullablePaths<\n    SearchItemsResponse,\n    | `items`\n    | `items.${number}.priceInfo.price`\n    | `items.${number}.name`\n    | `aggregationData.results`\n    | `aggregationData.results.${number}.scalar.type`\n    | `aggregationData.results.${number}.scalar.value`\n    | `aggregationData.results.${number}.name`\n    | `aggregationData.results.${number}.type`,\n    6\n  >\n> {\n  // @ts-ignore\n  const { httpClient, sideEffects } = arguments[1] as {\n    httpClient: HttpClient;\n    sideEffects?: any;\n  };\n\n  const payload = renameKeysFromSDKRequestToRESTRequest({ search: search });\n\n  const reqOpts = ambassadorWixRestaurantsMenusV1Item.searchItems(payload);\n\n  sideEffects?.onSiteCall?.();\n  try {\n    const result = await httpClient.request(reqOpts);\n    sideEffects?.onSuccess?.(result);\n\n    return renameKeysFromRESTResponseToSDKResponse(\n      transformPaths(result.data, [\n        {\n          transformFn: transformRESTImageToSDKImage,\n          paths: [\n            { path: 'items.image' },\n            { path: 'items.additionalImages', isRepeated: true },\n          ],\n        },\n      ])\n    )!;\n  } catch (err: any) {\n    const transformedError = sdkTransformError(\n      err,\n      {\n        spreadPathsToArguments: {},\n        explicitPathsToArguments: { search: '$[0]' },\n        singleArgumentUnchanged: false,\n      },\n      ['search']\n    );\n    sideEffects?.onError?.(err);\n\n    throw transformedError;\n  }\n}\n\nexport interface ItemSearchSpec extends SearchSpec {\n  searchable: ['name'];\n  aggregatable: [\n    '_createdDate',\n    '_id',\n    '_updatedDate',\n    'businessLocationIds',\n    'featured',\n    'image._id',\n    'labels._id',\n    'modifierGroups._id',\n    'name',\n    'orderSettings.inStock',\n    'visible'\n  ];\n  paging: 'cursor';\n  wql: [\n    {\n      operators: ['$hasAll', '$hasSome'];\n      fields: ['businessLocationIds', 'labels._id', 'modifierGroups._id'];\n      sort: 'BOTH';\n    },\n    {\n      operators: '*';\n      fields: [\n        '_createdDate',\n        '_id',\n        '_updatedDate',\n        'featured',\n        'image._id',\n        'name',\n        'orderSettings.inStock',\n        'visible'\n      ];\n      sort: 'BOTH';\n    }\n  ];\n}\n\nexport type CommonSearchWithEntityContext = SearchSdkType<Item, ItemSearchSpec>;\nexport type ItemSearch = {\n  /** \n  Cursor paging options.\n\n  Learn more about cursor paging ([SDK](https://dev.wix.com/docs/sdk/articles/work-with-the-sdk/api-query-language#cursor-paging) | [REST](https://dev.wix.com/docs/rest/articles/getting-started/api-query-language#cursor-paging)).  \n  */\n  cursorPaging?: {\n    /** \n  Number of items to load. \n  @max: 500 \n  */\n    limit?:\n      | NonNullable<CommonSearchWithEntityContext['cursorPaging']>['limit']\n      | null;\n    /** \n  Pointer to the next or previous page in the list of results.\n\n  You can get the relevant cursor token\n  from the `pagingMetadata` object in the previous call's response.\n  Not relevant for the first request.  \n  */\n    cursor?:\n      | NonNullable<CommonSearchWithEntityContext['cursorPaging']>['cursor']\n      | null;\n  };\n  /** \n  Filter object.\n\n  Learn more about filtering ([SDK](https://dev.wix.com/docs/sdk/articles/work-with-the-sdk/api-query-language#the-filter-object) | [REST](https://dev.wix.com/docs/rest/articles/getting-started/api-query-language#filters)).  \n  */\n  filter?: CommonSearchWithEntityContext['filter'] | null;\n  /** \n  Sort object.\n\n  Learn more about sorting ([SDK](https://dev.wix.com/docs/sdk/articles/work-with-the-sdk/api-query-language#the-sort-array) | [REST](https://dev.wix.com/docs/rest/articles/getting-started/api-query-language#sorting)).  \n  */\n  sort?: {\n    /** \n  Name of the field to sort by. \n  @maxLength: 512 \n  */\n    fieldName?: NonNullable<\n      CommonSearchWithEntityContext['sort']\n    >[number]['fieldName'];\n    /** \n  Sort order.  \n  */\n    order?: NonNullable<CommonSearchWithEntityContext['sort']>[number]['order'];\n  }[];\n  /** \n  Logical groupings of data into facets, with summaries for each facet. For example, use aggregations to allow site visitors to narrow down their search results by selecting specific categories.  \n  */\n  aggregations?: {\n    /** \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  */\n    value?: NonNullable<\n      CommonSearchWithEntityContext['aggregations']\n    >[number]['value'];\n    /** \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  */\n    range?: NonNullable<\n      CommonSearchWithEntityContext['aggregations']\n    >[number]['range'];\n    /** \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  */\n    scalar?: NonNullable<\n      CommonSearchWithEntityContext['aggregations']\n    >[number]['scalar'];\n    /** \n  Aggregation name, returned in `aggregations.results.name`.  \n  */\n    name?:\n      | NonNullable<\n          CommonSearchWithEntityContext['aggregations']\n        >[number]['name']\n      | null;\n    /** \n  Type of aggregation to perform. Must align with the corresponding aggregation field.  \n  */\n    type?: NonNullable<\n      CommonSearchWithEntityContext['aggregations']\n    >[number]['type'];\n    /** \n  Field to aggreg   ate by. Use dot notation to specify a JSON path. For example, `order.address.streetName`.  \n  */\n    fieldPath?: NonNullable<\n      CommonSearchWithEntityContext['aggregations']\n    >[number]['fieldPath'];\n  }[];\n  /** \n  Free text to match in searchable fields.  \n  */\n  search?: {\n    /** \n  Search mode. Defines the search logic for combining multiple terms in the `expression`.  \n  */\n    mode?: NonNullable<CommonSearchWithEntityContext['search']>['mode'];\n    /** \n  Search term or expression.  \n  */\n    expression?:\n      | NonNullable<CommonSearchWithEntityContext['search']>['expression']\n      | 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  */\n    fields?: NonNullable<CommonSearchWithEntityContext['search']>['fields'];\n    /** \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  */\n    fuzzy?: NonNullable<CommonSearchWithEntityContext['search']>['fuzzy'];\n  };\n};\n\n/**\n * > **Note:** The Item API only works with the Wix Restaurants Menus app. Make sure you have installed this app from the [Wix App Market](https://www.wix.com/app-market/wix-restaurants-menus-new).\n *\n * Retrieves the number of items that match a specified filter.\n *\n * If a filter isn't passed in the request, the endpoint returns the count of all items.\n * @public\n * @permissionId RESTAURANTS.ITEM_READ\n * @applicableIdentity APP\n * @fqn com.wixpress.restaurants.menus_item.v1.RestaurantsMenusItem.CountItems\n */\nexport async function countItems(options?: CountItemsOptions): Promise<\n  NonNullablePaths<CountItemsResponse, `count`, 2> & {\n    __applicationErrorsType?: CountItemsApplicationErrors;\n  }\n> {\n  // @ts-ignore\n  const { httpClient, sideEffects } = arguments[1] as {\n    httpClient: HttpClient;\n    sideEffects?: any;\n  };\n\n  const payload = renameKeysFromSDKRequestToRESTRequest({\n    filter: options?.filter,\n    searchDetails: options?.searchDetails,\n  });\n\n  const reqOpts = ambassadorWixRestaurantsMenusV1Item.countItems(payload);\n\n  sideEffects?.onSiteCall?.();\n  try {\n    const result = await httpClient.request(reqOpts);\n    sideEffects?.onSuccess?.(result);\n\n    return renameKeysFromRESTResponseToSDKResponse(result.data)!;\n  } catch (err: any) {\n    const transformedError = sdkTransformError(\n      err,\n      {\n        spreadPathsToArguments: {},\n        explicitPathsToArguments: {\n          filter: '$[0].filter',\n          searchDetails: '$[0].searchDetails',\n        },\n        singleArgumentUnchanged: false,\n      },\n      ['options']\n    );\n    sideEffects?.onError?.(err);\n\n    throw transformedError;\n  }\n}\n\nexport interface CountItemsOptions {\n  /** Filter for counting items. */\n  filter?: Record<string, any> | null;\n  /** Search details. */\n  searchDetails?: SearchDetails;\n}\n\n/**\n * > **Note:** The Item API only works with the Wix Restaurants Menus app. Make sure you have installed this app from the [Wix App Market](https://www.wix.com/app-market/wix-restaurants-menus-new).\n *\n * Updates an item.\n *\n * To update multiple items at once, use [Bulk Update Item](https://dev.wix.com/docs/rest/business-solutions/restaurants/menus/item/bulk-update-item)\n *\n * Each time an item is updated, its revision increments by 1. The existing revision must be included when updating the item. This ensures you're working with the latest item information, and it prevents unintended overwrites.\n * @param _id - Item ID.\n * @public\n * @requiredField _id\n * @requiredField item\n * @requiredField item.modifierGroups._id\n * @requiredField item.revision\n * @permissionId RESTAURANTS.ITEM_UPDATE\n * @applicableIdentity APP\n * @returns Updated item.\n * @fqn com.wixpress.restaurants.menus_item.v1.RestaurantsMenusItem.UpdateItem\n */\nexport async function updateItem(\n  _id: string,\n  item: NonNullablePaths<\n    UpdateItem,\n    `modifierGroups.${number}._id` | `revision`,\n    4\n  >\n): Promise<\n  NonNullablePaths<\n    Item,\n    | `priceVariants.variants`\n    | `priceVariants.variants.${number}.priceInfo.price`\n    | `name`\n    | `additionalImages`\n    | `labels`\n    | `labels.${number}._id`\n    | `modifierGroups`\n    | `businessLocationIds`,\n    6\n  >\n> {\n  // @ts-ignore\n  const { httpClient, sideEffects } = arguments[2] as {\n    httpClient: HttpClient;\n    sideEffects?: any;\n  };\n\n  const payload = transformPaths(\n    renameKeysFromSDKRequestToRESTRequest({ item: { ...item, id: _id } }),\n    [\n      {\n        transformFn: transformSDKImageToRESTImage,\n        paths: [\n          { path: 'item.image' },\n          { path: 'item.additionalImages', isRepeated: true },\n        ],\n      },\n    ]\n  );\n\n  const reqOpts = ambassadorWixRestaurantsMenusV1Item.updateItem(payload);\n\n  sideEffects?.onSiteCall?.();\n  try {\n    const result = await httpClient.request(reqOpts);\n    sideEffects?.onSuccess?.(result);\n\n    return renameKeysFromRESTResponseToSDKResponse(\n      transformPaths(result.data, [\n        {\n          transformFn: transformRESTImageToSDKImage,\n          paths: [\n            { path: 'item.image' },\n            { path: 'item.additionalImages', isRepeated: true },\n          ],\n        },\n      ])\n    )?.item!;\n  } catch (err: any) {\n    const transformedError = sdkTransformError(\n      err,\n      {\n        spreadPathsToArguments: { item: '$[1]' },\n        explicitPathsToArguments: { 'item.id': '$[0]' },\n        singleArgumentUnchanged: false,\n      },\n      ['_id', 'item']\n    );\n    sideEffects?.onError?.(err);\n\n    throw transformedError;\n  }\n}\n\nexport interface UpdateItem {\n  /** Item price variants. */\n  priceVariants?: PriceVariants;\n  /** Item price info. */\n  priceInfo?: PriceInfo;\n  /**\n   * Item ID.\n   * @format GUID\n   * @readonly\n   */\n  _id?: string | null;\n  /**\n   * Revision number, which increments by 1 each time the item is updated. To prevent conflicting changes, the current revision must be passed when updating the item. Ignored when creating a item.\n   * @readonly\n   */\n  revision?: string | null;\n  /**\n   * Date and time the item was created.\n   * @readonly\n   */\n  _createdDate?: Date | null;\n  /**\n   * Date and time the item was updated.\n   * @readonly\n   */\n  _updatedDate?: Date | null;\n  /**\n   * Item name.\n   * @minLength 1\n   * @maxLength 200\n   */\n  name?: string;\n  /**\n   * Item description.\n   * @maxLength 1500\n   */\n  description?: string | null;\n  /** Main item image. */\n  image?: string;\n  /**\n   * Additional item images.\n   * @maxSize 15\n   */\n  additionalImages?: string[];\n  /**\n   * Item labels.\n   * @maxSize 10\n   */\n  labels?: Label[];\n  /** Whether the item is visible in the menu for site visitors. */\n  visible?: boolean | null;\n  /**\n   * Whether the item is marked as featured/best seller.\n   * Default: `false`.\n   */\n  featured?: boolean | null;\n  /** Online order settings. */\n  orderSettings?: OrderSettings;\n  /**\n   * Item modifier groups.\n   * @maxSize 25\n   */\n  modifierGroups?: ModifierGroup[];\n  /** Extended fields. */\n  extendedFields?: ExtendedFields;\n  /**\n   * IDs of the business locations ([SDK](https://dev.wix.com/docs/sdk/backend-modules/restaurants/wix-restaurants-new/about-business-locations) | [REST](https://dev.wix.com/docs/rest/business-solutions/restaurants/wix-restaurants-new/about-business-locations)) where these items are available.\n   * @maxSize 100\n   * @format GUID\n   * @readonly\n   */\n  businessLocationIds?: string[];\n}\n\n/**\n * > **Note:** The Item API only works with the Wix Restaurants Menus app. Make sure you have installed this app from the [Wix App Market](https://www.wix.com/app-market/wix-restaurants-menus-new).\n *\n * Updates up to 100 multiple items at once.\n *\n * Each time an item is updated, its revision increments by 1. The existing revision must be included when updating item. This ensures you're working with the latest item information, and it prevents unintended overwrites.\n * @param items - Items to update.\n * @public\n * @requiredField items\n * @requiredField items.item._id\n * @requiredField items.item.modifierGroups._id\n * @requiredField items.item.revision\n * @permissionId RESTAURANTS.ITEM_UPDATE\n * @applicableIdentity APP\n * @fqn com.wixpress.restaurants.menus_item.v1.RestaurantsMenusItem.BulkUpdateItem\n */\nexport async function bulkUpdateItem(\n  items: NonNullablePaths<\n    MaskedItem,\n    `item._id` | `item.modifierGroups.${number}._id` | `item.revision`,\n    5\n  >[],\n  options?: BulkUpdateItemOptions\n): Promise<\n  NonNullablePaths<\n    BulkUpdateItemResponse,\n    | `results`\n    | `results.${number}.itemMetadata.originalIndex`\n    | `results.${number}.itemMetadata.success`\n    | `results.${number}.itemMetadata.error.code`\n    | `results.${number}.itemMetadata.error.description`\n    | `results.${number}.item.priceInfo.price`\n    | `results.${number}.item.name`\n    | `bulkActionMetadata.totalSuccesses`\n    | `bulkActionMetadata.totalFailures`\n    | `bulkActionMetadata.undetailedFailures`,\n    6\n  >\n> {\n  // @ts-ignore\n  const { httpClient, sideEffects } = arguments[2] as {\n    httpClient: HttpClient;\n    sideEffects?: any;\n  };\n\n  const payload = transformPaths(\n    renameKeysFromSDKRequestToRESTRequest({\n      items: items,\n      returnEntity: options?.returnEntity,\n    }),\n    [\n      {\n        transformFn: transformSDKImageToRESTImage,\n        paths: [\n          { path: 'items.item.image' },\n          { path: 'items.item.additionalImages', isRepeated: true },\n        ],\n      },\n    ]\n  );\n\n  const reqOpts = ambassadorWixRestaurantsMenusV1Item.bulkUpdateItem(payload);\n\n  sideEffects?.onSiteCall?.();\n  try {\n    const result = await httpClient.request(reqOpts);\n    sideEffects?.onSuccess?.(result);\n\n    return renameKeysFromRESTResponseToSDKResponse(\n      transformPaths(result.data, [\n        {\n          transformFn: transformRESTImageToSDKImage,\n          paths: [\n            { path: 'results.item.image' },\n            { path: 'results.item.additionalImages', isRepeated: true },\n          ],\n        },\n      ])\n    )!;\n  } catch (err: any) {\n    const transformedError = sdkTransformError(\n      err,\n      {\n        spreadPathsToArguments: {},\n        explicitPathsToArguments: {\n          items: '$[0]',\n          returnEntity: '$[1].returnEntity',\n        },\n        singleArgumentUnchanged: false,\n      },\n      ['items', 'options']\n    );\n    sideEffects?.onError?.(err);\n\n    throw transformedError;\n  }\n}\n\nexport interface BulkUpdateItemOptions {\n  /** Whether to return entity in the response. */\n  returnEntity?: boolean;\n}\n\n/**\n * > **Note:** The Item API only works with the Wix Restaurants Menus app. Make sure you have installed this app from the [Wix App Market](https://www.wix.com/app-market/wix-restaurants-menus-new).\n *\n * Deletes an item.\n * @param itemId - Item ID.\n * @public\n * @requiredField itemId\n * @permissionId RESTAURANTS.ITEM_DELETE\n * @applicableIdentity APP\n * @fqn com.wixpress.restaurants.menus_item.v1.RestaurantsMenusItem.DeleteItem\n */\nexport async function deleteItem(itemId: string): Promise<void> {\n  // @ts-ignore\n  const { httpClient, sideEffects } = arguments[1] as {\n    httpClient: HttpClient;\n    sideEffects?: any;\n  };\n\n  const payload = renameKeysFromSDKRequestToRESTRequest({ itemId: itemId });\n\n  const reqOpts = ambassadorWixRestaurantsMenusV1Item.deleteItem(payload);\n\n  sideEffects?.onSiteCall?.();\n  try {\n    const result = await httpClient.request(reqOpts);\n    sideEffects?.onSuccess?.(result);\n  } catch (err: any) {\n    const transformedError = sdkTransformError(\n      err,\n      {\n        spreadPathsToArguments: {},\n        explicitPathsToArguments: { itemId: '$[0]' },\n        singleArgumentUnchanged: false,\n      },\n      ['itemId']\n    );\n    sideEffects?.onError?.(err);\n\n    throw transformedError;\n  }\n}\n\n/**\n * > **Note:** The Item API only works with the Wix Restaurants Menus app. Make sure you have installed this app from the [Wix App Market](https://www.wix.com/app-market/wix-restaurants-menus-new).\n *\n * Deletes multiple items at once.\n * @param ids - Item IDs.\n * @public\n * @requiredField ids\n * @permissionId RESTAURANTS.ITEM_DELETE\n * @applicableIdentity APP\n * @fqn com.wixpress.restaurants.menus_item.v1.RestaurantsMenusItem.BulkDeleteItems\n */\nexport async function bulkDeleteItems(\n  ids: string[]\n): Promise<\n  NonNullablePaths<\n    BulkDeleteItemsResponse,\n    | `results`\n    | `results.${number}.itemMetadata.originalIndex`\n    | `results.${number}.itemMetadata.success`\n    | `results.${number}.itemMetadata.error.code`\n    | `results.${number}.itemMetadata.error.description`\n    | `bulkActionMetadata.totalSuccesses`\n    | `bulkActionMetadata.totalFailures`\n    | `bulkActionMetadata.undetailedFailures`,\n    6\n  >\n> {\n  // @ts-ignore\n  const { httpClient, sideEffects } = arguments[1] as {\n    httpClient: HttpClient;\n    sideEffects?: any;\n  };\n\n  const payload = renameKeysFromSDKRequestToRESTRequest({ ids: ids });\n\n  const reqOpts = ambassadorWixRestaurantsMenusV1Item.bulkDeleteItems(payload);\n\n  sideEffects?.onSiteCall?.();\n  try {\n    const result = await httpClient.request(reqOpts);\n    sideEffects?.onSuccess?.(result);\n\n    return renameKeysFromRESTResponseToSDKResponse(result.data)!;\n  } catch (err: any) {\n    const transformedError = sdkTransformError(\n      err,\n      {\n        spreadPathsToArguments: {},\n        explicitPathsToArguments: { ids: '$[0]' },\n        singleArgumentUnchanged: false,\n      },\n      ['ids']\n    );\n    sideEffects?.onError?.(err);\n\n    throw transformedError;\n  }\n}\n","import { toURLSearchParams } from '@wix/sdk-runtime/rest-modules';\nimport { transformSDKFloatToRESTFloat } from '@wix/sdk-runtime/transformations/float';\nimport { transformRESTFloatToSDKFloat } from '@wix/sdk-runtime/transformations/float';\nimport { transformSDKTimestampToRESTTimestamp } from '@wix/sdk-runtime/transformations/timestamp';\nimport { transformRESTTimestampToSDKTimestamp } from '@wix/sdk-runtime/transformations/timestamp';\nimport { transformSDKFieldMaskToRESTFieldMask } from '@wix/sdk-runtime/transformations/field-mask';\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\nfunction resolveComWixpressRestaurantsMenusItemV1RestaurantsMenusItemUrl(\n  opts: Omit<ResolveUrlOpts, 'domainToMappings'>\n) {\n  const domainToMappings = {\n    'manage._base_domain_': [\n      {\n        srcPath: '/_api/restaurants-menus-item',\n        destPath: '',\n      },\n    ],\n    _: [\n      {\n        srcPath: '/_api/restaurants-menus-item',\n        destPath: '',\n      },\n      {\n        srcPath: '/restaurants/menus/v1/items',\n        destPath: '/v1/items',\n      },\n      {\n        srcPath: '/restaurants/menus/v1/bulk/items',\n        destPath: '/v1/bulk/items',\n      },\n    ],\n    'editor._base_domain_': [\n      {\n        srcPath: '/_api/restaurants-menus-item',\n        destPath: '',\n      },\n    ],\n    'blocks._base_domain_': [\n      {\n        srcPath: '/_api/restaurants-menus-item',\n        destPath: '',\n      },\n    ],\n    'create.editorx': [\n      {\n        srcPath: '/_api/restaurants-menus-item',\n        destPath: '',\n      },\n    ],\n    'editor.wixapps.net': [\n      {\n        srcPath: '/_api/restaurants-menus-item',\n        destPath: '',\n      },\n    ],\n    '*.dev.wix-code.com': [\n      {\n        srcPath: '/_api/restaurants-menus-item',\n        destPath: '',\n      },\n      {\n        srcPath: '/restaurants/menus/v1/items',\n        destPath: '/v1/items',\n      },\n      {\n        srcPath: '/restaurants/menus/v1/bulk/items',\n        destPath: '/v1/bulk/items',\n      },\n    ],\n    'www._base_domain_': [\n      {\n        srcPath: '/_api/restaurants-menus-item',\n        destPath: '',\n      },\n    ],\n    'api._api_base_domain_': [\n      {\n        srcPath: '/restaurants-menus-item',\n        destPath: '',\n      },\n    ],\n    'www.wixapis.com': [\n      {\n        srcPath: '/restaurants/menus-item',\n        destPath: '',\n      },\n      {\n        srcPath: '/restaurants/menus/v1/bulk/items',\n        destPath: '/v1/bulk/items',\n      },\n      {\n        srcPath: '/restaurants/menus/v1/items',\n        destPath: '/v1/items',\n      },\n    ],\n    'apps._base_domain_': [\n      {\n        srcPath: '/_api/restaurants-menus-item',\n        destPath: '',\n      },\n    ],\n  };\n\n  return resolveUrl(Object.assign(opts, { domainToMappings }));\n}\n\nfunction resolveComWixpressRestaurantsMenusItemV1RestaurantsDuplicateItemRestaurantsDuplicateItemUrl(\n  opts: Omit<ResolveUrlOpts, 'domainToMappings'>\n) {\n  const domainToMappings = {\n    'manage._base_domain_': [\n      {\n        srcPath: '/_api/restaurants-menus-item',\n        destPath: '',\n      },\n    ],\n    _: [\n      {\n        srcPath: '/_api/restaurants-menus-item',\n        destPath: '',\n      },\n      {\n        srcPath: '/restaurants/menus/v1/items',\n        destPath: '/v1/items',\n      },\n      {\n        srcPath: '/restaurants/menus/v1/bulk/items',\n        destPath: '/v1/bulk/items',\n      },\n    ],\n    'editor._base_domain_': [\n      {\n        srcPath: '/_api/restaurants-menus-item',\n        destPath: '',\n      },\n    ],\n    'blocks._base_domain_': [\n      {\n        srcPath: '/_api/restaurants-menus-item',\n        destPath: '',\n      },\n    ],\n    'create.editorx': [\n      {\n        srcPath: '/_api/restaurants-menus-item',\n        destPath: '',\n      },\n    ],\n    'editor.wixapps.net': [\n      {\n        srcPath: '/_api/restaurants-menus-item',\n        destPath: '',\n      },\n    ],\n    '*.dev.wix-code.com': [\n      {\n        srcPath: '/_api/restaurants-menus-item',\n        destPath: '',\n      },\n      {\n        srcPath: '/restaurants/menus/v1/items',\n        destPath: '/v1/items',\n      },\n      {\n        srcPath: '/restaurants/menus/v1/bulk/items',\n        destPath: '/v1/bulk/items',\n      },\n    ],\n    'www._base_domain_': [\n      {\n        srcPath: '/_api/restaurants-menus-item',\n        destPath: '',\n      },\n    ],\n    'api._api_base_domain_': [\n      {\n        srcPath: '/restaurants-menus-item',\n        destPath: '',\n      },\n    ],\n    'www.wixapis.com': [\n      {\n        srcPath: '/restaurants/menus-item',\n        destPath: '',\n      },\n      {\n        srcPath: '/restaurants/menus/v1/bulk/items',\n        destPath: '/v1/bulk/items',\n      },\n      {\n        srcPath: '/restaurants/menus/v1/items',\n        destPath: '/v1/items',\n      },\n    ],\n    'apps._base_domain_': [\n      {\n        srcPath: '/_api/restaurants-menus-item',\n        destPath: '',\n      },\n    ],\n  };\n\n  return resolveUrl(Object.assign(opts, { domainToMappings }));\n}\n\nconst PACKAGE_NAME = '@wix/auto_sdk_restaurants_items';\n\nexport function duplicateItem(payload: object): RequestOptionsFactory<any> {\n  function __duplicateItem({ host }: any) {\n    const metadata = {\n      entityFqdn: 'wix.restaurants.menus.v1.item',\n      method: 'POST' as any,\n      methodFqn:\n        'com.wixpress.restaurants.menus_item.v1.restaurants_duplicate_item.RestaurantsDuplicateItem.DuplicateItem',\n      packageName: PACKAGE_NAME,\n      migrationOptions: {\n        optInTransformResponse: true,\n      },\n      url: resolveComWixpressRestaurantsMenusItemV1RestaurantsDuplicateItemRestaurantsDuplicateItemUrl(\n        { protoPath: '/v1/items/{id}/duplicate', data: payload, host }\n      ),\n      data: payload,\n    };\n\n    return metadata;\n  }\n\n  return __duplicateItem;\n}\n\n/**\n * > **Note:** The Item API only works with the Wix Restaurants Menus app. Make sure you have installed this app from the [Wix App Market](https://www.wix.com/app-market/wix-restaurants-menus-new).\n *\n * Creates an item.\n *\n * To create multiple items at once, use [Bulk Create Items](https://dev.wix.com/docs/rest/business-solutions/restaurants/menus/item/bulk-create-items).\n */\nexport function createItem(payload: object): RequestOptionsFactory<any> {\n  function __createItem({ host }: any) {\n    const serializedData = transformPaths(payload, [\n      {\n        transformFn: transformSDKTimestampToRESTTimestamp,\n        paths: [\n          { path: 'item.createdDate' },\n          { path: 'item.updatedDate' },\n          { path: 'item.image.urlExpirationDate' },\n          { path: 'item.additionalImages.urlExpirationDate' },\n          {\n            path: 'item.orderSettings.availability.timestampRangesOptions.ranges.startTime',\n          },\n          {\n            path: 'item.orderSettings.availability.timestampRangesOptions.ranges.endTime',\n          },\n          { path: 'item.externalReferenceInfo.lastSyncDate' },\n        ],\n      },\n    ]);\n    const metadata = {\n      entityFqdn: 'wix.restaurants.menus.v1.item',\n      method: 'POST' as any,\n      methodFqn:\n        'com.wixpress.restaurants.menus_item.v1.RestaurantsMenusItem.CreateItem',\n      packageName: PACKAGE_NAME,\n      migrationOptions: {\n        optInTransformResponse: true,\n      },\n      url: resolveComWixpressRestaurantsMenusItemV1RestaurantsMenusItemUrl({\n        protoPath: '/v1/items',\n        data: serializedData,\n        host,\n      }),\n      data: serializedData,\n      transformResponse: (payload: any) =>\n        transformPaths(payload, [\n          {\n            transformFn: transformRESTTimestampToSDKTimestamp,\n            paths: [\n              { path: 'item.createdDate' },\n              { path: 'item.updatedDate' },\n              { path: 'item.image.urlExpirationDate' },\n              { path: 'item.additionalImages.urlExpirationDate' },\n              {\n                path: 'item.orderSettings.availability.timestampRangesOptions.ranges.startTime',\n              },\n              {\n                path: 'item.orderSettings.availability.timestampRangesOptions.ranges.endTime',\n              },\n              { path: 'item.externalReferenceInfo.lastSyncDate' },\n            ],\n          },\n        ]),\n    };\n\n    return metadata;\n  }\n\n  return __createItem;\n}\n\n/**\n * > **Note:** The Items API only works with the Wix Restaurants Menus app. Make sure you have installed this app from the [Wix App Market](https://www.wix.com/app-market/wix-restaurants-menus-new).\n *\n * Creates multiple items at once.\n */\nexport function bulkCreateItems(payload: object): RequestOptionsFactory<any> {\n  function __bulkCreateItems({ host }: any) {\n    const serializedData = transformPaths(payload, [\n      {\n        transformFn: transformSDKTimestampToRESTTimestamp,\n        paths: [\n          { path: 'items.createdDate' },\n          { path: 'items.updatedDate' },\n          { path: 'items.image.urlExpirationDate' },\n          { path: 'items.additionalImages.urlExpirationDate' },\n          {\n            path: 'items.orderSettings.availability.timestampRangesOptions.ranges.startTime',\n          },\n          {\n            path: 'items.orderSettings.availability.timestampRangesOptions.ranges.endTime',\n          },\n          { path: 'items.externalReferenceInfo.lastSyncDate' },\n        ],\n      },\n    ]);\n    const metadata = {\n      entityFqdn: 'wix.restaurants.menus.v1.item',\n      method: 'POST' as any,\n      methodFqn:\n        'com.wixpress.restaurants.menus_item.v1.RestaurantsMenusItem.BulkCreateItems',\n      packageName: PACKAGE_NAME,\n      migrationOptions: {\n        optInTransformResponse: true,\n      },\n      url: resolveComWixpressRestaurantsMenusItemV1RestaurantsMenusItemUrl({\n        protoPath: '/v1/bulk/items/create',\n        data: serializedData,\n        host,\n      }),\n      data: serializedData,\n      transformResponse: (payload: any) =>\n        transformPaths(payload, [\n          {\n            transformFn: transformRESTTimestampToSDKTimestamp,\n            paths: [\n              { path: 'results.item.createdDate' },\n              { path: 'results.item.updatedDate' },\n              { path: 'results.item.image.urlExpirationDate' },\n              { path: 'results.item.additionalImages.urlExpirationDate' },\n              {\n                path: 'results.item.orderSettings.availability.timestampRangesOptions.ranges.startTime',\n              },\n              {\n                path: 'results.item.orderSettings.availability.timestampRangesOptions.ranges.endTime',\n              },\n              { path: 'results.item.externalReferenceInfo.lastSyncDate' },\n            ],\n          },\n        ]),\n    };\n\n    return metadata;\n  }\n\n  return __bulkCreateItems;\n}\n\n/**\n * > **Note:** The Item API only works with the Wix Restaurants Menus app. Make sure you have installed this app from the [Wix App Market](https://www.wix.com/app-market/wix-restaurants-menus-new).\n *\n * Retrieves an item by ID.\n */\nexport function getItem(payload: object): RequestOptionsFactory<any> {\n  function __getItem({ host }: any) {\n    const metadata = {\n      entityFqdn: 'wix.restaurants.menus.v1.item',\n      method: 'GET' as any,\n      methodFqn:\n        'com.wixpress.restaurants.menus_item.v1.RestaurantsMenusItem.GetItem',\n      packageName: PACKAGE_NAME,\n      migrationOptions: {\n        optInTransformResponse: true,\n      },\n      url: resolveComWixpressRestaurantsMenusItemV1RestaurantsMenusItemUrl({\n        protoPath: '/v1/items/{itemId}',\n        data: payload,\n        host,\n      }),\n      params: toURLSearchParams(payload),\n      transformResponse: (payload: any) =>\n        transformPaths(payload, [\n          {\n            transformFn: transformRESTTimestampToSDKTimestamp,\n            paths: [\n              { path: 'item.createdDate' },\n              { path: 'item.updatedDate' },\n              { path: 'item.image.urlExpirationDate' },\n              { path: 'item.additionalImages.urlExpirationDate' },\n              {\n                path: 'item.orderSettings.availability.timestampRangesOptions.ranges.startTime',\n              },\n              {\n                path: 'item.orderSettings.availability.timestampRangesOptions.ranges.endTime',\n              },\n              { path: 'item.externalReferenceInfo.lastSyncDate' },\n            ],\n          },\n        ]),\n    };\n\n    return metadata;\n  }\n\n  return __getItem;\n}\n\n/**\n * > **Note:** The Item API only works with the Wix Restaurants Menus app. Make sure you have installed this app from the [Wix App Market](https://www.wix.com/app-market/wix-restaurants-menus-new).\n *\n * Retrieves a list of up to 500 items.\n */\nexport function listItems(payload: object): RequestOptionsFactory<any> {\n  function __listItems({ host }: any) {\n    const metadata = {\n      entityFqdn: 'wix.restaurants.menus.v1.item',\n      method: 'GET' as any,\n      methodFqn:\n        'com.wixpress.restaurants.menus_item.v1.RestaurantsMenusItem.ListItems',\n      packageName: PACKAGE_NAME,\n      migrationOptions: {\n        optInTransformResponse: true,\n      },\n      url: resolveComWixpressRestaurantsMenusItemV1RestaurantsMenusItemUrl({\n        protoPath: '/v1/items',\n        data: payload,\n        host,\n      }),\n      params: toURLSearchParams(payload),\n      transformResponse: (payload: any) =>\n        transformPaths(payload, [\n          {\n            transformFn: transformRESTTimestampToSDKTimestamp,\n            paths: [\n              { path: 'items.createdDate' },\n              { path: 'items.updatedDate' },\n              { path: 'items.image.urlExpirationDate' },\n              { path: 'items.additionalImages.urlExpirationDate' },\n              {\n                path: 'items.orderSettings.availability.timestampRangesOptions.ranges.startTime',\n              },\n              {\n                path: 'items.orderSettings.availability.timestampRangesOptions.ranges.endTime',\n              },\n              { path: 'items.externalReferenceInfo.lastSyncDate' },\n            ],\n          },\n        ]),\n    };\n\n    return metadata;\n  }\n\n  return __listItems;\n}\n\n/**\n * Creates a query to retrieve a list of items.\n *\n * The `queryItems()` function builds a query to retrieve a list of items and returns a `ItemsQueryBuilder` object.\n *\n * The returned object contains the query definition, which is used to run the query using the [`find()`](/items/items-query-builder/find) function.\n *\n * You can refine the query by chaining `ItemsQueryBuilder` functions onto the query. `ItemsQueryBuilder` functions enable you to filter, sort, and control the results that `queryItems()` returns.\n *\n * `queryItems()` runs with the following `ItemsQueryBuilder` defaults, which you can override:\n *\n * * [`limit(500)`](/items/items-query-builder/limit)\n *\n * The following `ItemsQueryBuilder` functions are supported for `queryItems()`. For a full description of the item object, see the object returned for the [`items`](/items/items-query-result/items) property in `ItemsQueryResult`.\n */\nexport function queryItems(payload: object): RequestOptionsFactory<any> {\n  function __queryItems({ host }: any) {\n    const metadata = {\n      entityFqdn: 'wix.restaurants.menus.v1.item',\n      method: 'POST' as any,\n      methodFqn:\n        'com.wixpress.restaurants.menus_item.v1.RestaurantsMenusItem.QueryItems',\n      packageName: PACKAGE_NAME,\n      migrationOptions: {\n        optInTransformResponse: true,\n      },\n      url: resolveComWixpressRestaurantsMenusItemV1RestaurantsMenusItemUrl({\n        protoPath: '/v1/items/query',\n        data: payload,\n        host,\n      }),\n      data: payload,\n      transformResponse: (payload: any) =>\n        transformPaths(payload, [\n          {\n            transformFn: transformRESTTimestampToSDKTimestamp,\n            paths: [\n              { path: 'items.createdDate' },\n              { path: 'items.updatedDate' },\n              { path: 'items.image.urlExpirationDate' },\n              { path: 'items.additionalImages.urlExpirationDate' },\n              {\n                path: 'items.orderSettings.availability.timestampRangesOptions.ranges.startTime',\n              },\n              {\n                path: 'items.orderSettings.availability.timestampRangesOptions.ranges.endTime',\n              },\n              { path: 'items.externalReferenceInfo.lastSyncDate' },\n            ],\n          },\n        ]),\n    };\n\n    return metadata;\n  }\n\n  return __queryItems;\n}\n\n/**\n * > **Note:** The Item API only works with the Wix Restaurants Menus app. Make sure you have installed this app from the [Wix App Market](https://www.wix.com/app-market/wix-restaurants-menus-new).\n *\n * Retrieves a list of items given the provided filtering, paging, and sorting.\n *\n * ## Defaults\n * Search Items has the following default settings, which you can override:\n *\n * - Sorted by `createdDate` in ascending order.\n * - `paging.limit` set to `500`.\n * - `paging.offset` set to `0`.\n */\nexport function searchItems(payload: object): RequestOptionsFactory<any> {\n  function __searchItems({ host }: any) {\n    const serializedData = transformPaths(payload, [\n      {\n        transformFn: transformSDKFloatToRESTFloat,\n        paths: [\n          { path: 'search.aggregations.range.buckets.from' },\n          { path: 'search.aggregations.range.buckets.to' },\n        ],\n      },\n    ]);\n    const metadata = {\n      entityFqdn: 'wix.restaurants.menus.v1.item',\n      method: 'GET' as any,\n      methodFqn:\n        'com.wixpress.restaurants.menus_item.v1.RestaurantsMenusItem.SearchItems',\n      packageName: PACKAGE_NAME,\n      migrationOptions: {\n        optInTransformResponse: true,\n      },\n      url: resolveComWixpressRestaurantsMenusItemV1RestaurantsMenusItemUrl({\n        protoPath: '/v1/items/search',\n        data: serializedData,\n        host,\n      }),\n      params: toURLSearchParams(serializedData, true),\n      transformResponse: (payload: any) =>\n        transformPaths(payload, [\n          {\n            transformFn: transformRESTTimestampToSDKTimestamp,\n            paths: [\n              { path: 'items.createdDate' },\n              { path: 'items.updatedDate' },\n              { path: 'items.image.urlExpirationDate' },\n              { path: 'items.additionalImages.urlExpirationDate' },\n              {\n                path: 'items.orderSettings.availability.timestampRangesOptions.ranges.startTime',\n              },\n              {\n                path: 'items.orderSettings.availability.timestampRangesOptions.ranges.endTime',\n              },\n              { path: 'items.externalReferenceInfo.lastSyncDate' },\n            ],\n          },\n          {\n            transformFn: transformRESTFloatToSDKFloat,\n            paths: [\n              { path: 'aggregationData.results.ranges.results.from' },\n              { path: 'aggregationData.results.ranges.results.to' },\n              { path: 'aggregationData.results.scalar.value' },\n            ],\n          },\n        ]),\n      fallback: [\n        {\n          method: 'POST' as any,\n          url: resolveComWixpressRestaurantsMenusItemV1RestaurantsMenusItemUrl({\n            protoPath: '/v1/items/search',\n            data: serializedData,\n            host,\n          }),\n          data: serializedData,\n        },\n      ],\n    };\n\n    return metadata;\n  }\n\n  return __searchItems;\n}\n\n/**\n * > **Note:** The Item API only works with the Wix Restaurants Menus app. Make sure you have installed this app from the [Wix App Market](https://www.wix.com/app-market/wix-restaurants-menus-new).\n *\n * Retrieves the number of items that match a specified filter.\n *\n * If a filter isn't passed in the request, the endpoint returns the count of all items.\n */\nexport function countItems(payload: object): RequestOptionsFactory<any> {\n  function __countItems({ host }: any) {\n    const metadata = {\n      entityFqdn: 'wix.restaurants.menus.v1.item',\n      method: 'POST' as any,\n      methodFqn:\n        'com.wixpress.restaurants.menus_item.v1.RestaurantsMenusItem.CountItems',\n      packageName: PACKAGE_NAME,\n      migrationOptions: {\n        optInTransformResponse: true,\n      },\n      url: resolveComWixpressRestaurantsMenusItemV1RestaurantsMenusItemUrl({\n        protoPath: '/v1/items/count',\n        data: payload,\n        host,\n      }),\n      data: payload,\n    };\n\n    return metadata;\n  }\n\n  return __countItems;\n}\n\n/**\n * > **Note:** The Item API only works with the Wix Restaurants Menus app. Make sure you have installed this app from the [Wix App Market](https://www.wix.com/app-market/wix-restaurants-menus-new).\n *\n * Updates an item.\n *\n * To update multiple items at once, use [Bulk Update Item](https://dev.wix.com/docs/rest/business-solutions/restaurants/menus/item/bulk-update-item)\n *\n * Each time an item is updated, its revision increments by 1. The existing revision must be included when updating the item. This ensures you're working with the latest item information, and it prevents unintended overwrites.\n */\nexport function updateItem(payload: object): RequestOptionsFactory<any> {\n  function __updateItem({ host }: any) {\n    const serializedData = transformPaths(payload, [\n      {\n        transformFn: transformSDKFieldMaskToRESTFieldMask,\n        paths: [{ path: 'mask' }],\n      },\n      {\n        transformFn: transformSDKTimestampToRESTTimestamp,\n        paths: [\n          { path: 'item.createdDate' },\n          { path: 'item.updatedDate' },\n          { path: 'item.image.urlExpirationDate' },\n          { path: 'item.additionalImages.urlExpirationDate' },\n          {\n            path: 'item.orderSettings.availability.timestampRangesOptions.ranges.startTime',\n          },\n          {\n            path: 'item.orderSettings.availability.timestampRangesOptions.ranges.endTime',\n          },\n          { path: 'item.externalReferenceInfo.lastSyncDate' },\n        ],\n      },\n    ]);\n    const metadata = {\n      entityFqdn: 'wix.restaurants.menus.v1.item',\n      method: 'PATCH' as any,\n      methodFqn:\n        'com.wixpress.restaurants.menus_item.v1.RestaurantsMenusItem.UpdateItem',\n      packageName: PACKAGE_NAME,\n      migrationOptions: {\n        optInTransformResponse: true,\n      },\n      url: resolveComWixpressRestaurantsMenusItemV1RestaurantsMenusItemUrl({\n        protoPath: '/v1/items/{item.id}',\n        data: serializedData,\n        host,\n      }),\n      data: serializedData,\n      transformResponse: (payload: any) =>\n        transformPaths(payload, [\n          {\n            transformFn: transformRESTTimestampToSDKTimestamp,\n            paths: [\n              { path: 'item.createdDate' },\n              { path: 'item.updatedDate' },\n              { path: 'item.image.urlExpirationDate' },\n              { path: 'item.additionalImages.urlExpirationDate' },\n              {\n                path: 'item.orderSettings.availability.timestampRangesOptions.ranges.startTime',\n              },\n              {\n                path: 'item.orderSettings.availability.timestampRangesOptions.ranges.endTime',\n              },\n              { path: 'item.externalReferenceInfo.lastSyncDate' },\n            ],\n          },\n        ]),\n    };\n\n    return metadata;\n  }\n\n  return __updateItem;\n}\n\n/**\n * > **Note:** The Item API only works with the Wix Restaurants Menus app. Make sure you have installed this app from the [Wix App Market](https://www.wix.com/app-market/wix-restaurants-menus-new).\n *\n * Updates up to 100 multiple items at once.\n *\n * Each time an item is updated, its revision increments by 1. The existing revision must be included when updating item. This ensures you're working with the latest item information, and it prevents unintended overwrites.\n */\nexport function bulkUpdateItem(payload: object): RequestOptionsFactory<any> {\n  function __bulkUpdateItem({ host }: any) {\n    const serializedData = transformPaths(payload, [\n      {\n        transformFn: transformSDKFieldMaskToRESTFieldMask,\n        paths: [{ path: 'items.mask' }],\n      },\n      {\n        transformFn: transformSDKTimestampToRESTTimestamp,\n        paths: [\n          { path: 'items.item.createdDate' },\n          { path: 'items.item.updatedDate' },\n          { path: 'items.item.image.urlExpirationDate' },\n          { path: 'items.item.additionalImages.urlExpirationDate' },\n          {\n            path: 'items.item.orderSettings.availability.timestampRangesOptions.ranges.startTime',\n          },\n          {\n            path: 'items.item.orderSettings.availability.timestampRangesOptions.ranges.endTime',\n          },\n          { path: 'items.item.externalReferenceInfo.lastSyncDate' },\n        ],\n      },\n    ]);\n    const metadata = {\n      entityFqdn: 'wix.restaurants.menus.v1.item',\n      method: 'POST' as any,\n      methodFqn:\n        'com.wixpress.restaurants.menus_item.v1.RestaurantsMenusItem.BulkUpdateItem',\n      packageName: PACKAGE_NAME,\n      migrationOptions: {\n        optInTransformResponse: true,\n      },\n      url: resolveComWixpressRestaurantsMenusItemV1RestaurantsMenusItemUrl({\n        protoPath: '/v1/bulk/items/update',\n        data: serializedData,\n        host,\n      }),\n      data: serializedData,\n      transformResponse: (payload: any) =>\n        transformPaths(payload, [\n          {\n            transformFn: transformRESTTimestampToSDKTimestamp,\n            paths: [\n              { path: 'results.item.createdDate' },\n              { path: 'results.item.updatedDate' },\n              { path: 'results.item.image.urlExpirationDate' },\n              { path: 'results.item.additionalImages.urlExpirationDate' },\n              {\n                path: 'results.item.orderSettings.availability.timestampRangesOptions.ranges.startTime',\n              },\n              {\n                path: 'results.item.orderSettings.availability.timestampRangesOptions.ranges.endTime',\n              },\n              { path: 'results.item.externalReferenceInfo.lastSyncDate' },\n            ],\n          },\n        ]),\n    };\n\n    return metadata;\n  }\n\n  return __bulkUpdateItem;\n}\n\n/**\n * > **Note:** The Item API only works with the Wix Restaurants Menus app. Make sure you have installed this app from the [Wix App Market](https://www.wix.com/app-market/wix-restaurants-menus-new).\n *\n * Deletes an item.\n */\nexport function deleteItem(payload: object): RequestOptionsFactory<any> {\n  function __deleteItem({ host }: any) {\n    const metadata = {\n      entityFqdn: 'wix.restaurants.menus.v1.item',\n      method: 'DELETE' as any,\n      methodFqn:\n        'com.wixpress.restaurants.menus_item.v1.RestaurantsMenusItem.DeleteItem',\n      packageName: PACKAGE_NAME,\n      migrationOptions: {\n        optInTransformResponse: true,\n      },\n      url: resolveComWixpressRestaurantsMenusItemV1RestaurantsMenusItemUrl({\n        protoPath: '/v1/items/{itemId}',\n        data: payload,\n        host,\n      }),\n      params: toURLSearchParams(payload),\n    };\n\n    return metadata;\n  }\n\n  return __deleteItem;\n}\n\n/**\n * > **Note:** The Item API only works with the Wix Restaurants Menus app. Make sure you have installed this app from the [Wix App Market](https://www.wix.com/app-market/wix-restaurants-menus-new).\n *\n * Deletes multiple items at once.\n */\nexport function bulkDeleteItems(payload: object): RequestOptionsFactory<any> {\n  function __bulkDeleteItems({ host }: any) {\n    const metadata = {\n      entityFqdn: 'wix.restaurants.menus.v1.item',\n      method: 'DELETE' as any,\n      methodFqn:\n        'com.wixpress.restaurants.menus_item.v1.RestaurantsMenusItem.BulkDeleteItems',\n      packageName: PACKAGE_NAME,\n      migrationOptions: {\n        optInTransformResponse: true,\n      },\n      url: resolveComWixpressRestaurantsMenusItemV1RestaurantsMenusItemUrl({\n        protoPath: '/v1/bulk/items/delete',\n        data: payload,\n        host,\n      }),\n      params: toURLSearchParams(payload),\n    };\n\n    return metadata;\n  }\n\n  return __bulkDeleteItems;\n}\n","import {\n  duplicateItem as publicDuplicateItem,\n  createItem as publicCreateItem,\n  bulkCreateItems as publicBulkCreateItems,\n  getItem as publicGetItem,\n  listItems as publicListItems,\n  queryItems as publicQueryItems,\n  typedQueryItems as publicTypedQueryItems,\n  searchItems as publicSearchItems,\n  countItems as publicCountItems,\n  updateItem as publicUpdateItem,\n  bulkUpdateItem as publicBulkUpdateItem,\n  deleteItem as publicDeleteItem,\n  bulkDeleteItems as publicBulkDeleteItems,\n} from './restaurants-menus-v1-item-items.public.js';\nimport { createRESTModule } from '@wix/sdk-runtime/rest-modules';\nimport { createEventModule } from '@wix/sdk-runtime/event-definition-modules';\nimport {\n  BuildRESTFunction,\n  MaybeContext,\n  BuildEventDefinition,\n} from '@wix/sdk-types';\nimport { HttpClient } from '@wix/sdk-types';\nimport { createQueryOverloadRouter } from '@wix/sdk-runtime/query-method-router';\nimport {\n  ItemQuery,\n  ItemsQueryBuilder,\n  typedQueryItems as universalTypedQueryItems,\n} from './restaurants-menus-v1-item-items.universal.js';\nimport { onItemCreated as publicOnItemCreated } from './restaurants-menus-v1-item-items.public.js';\nimport { onItemDeleted as publicOnItemDeleted } from './restaurants-menus-v1-item-items.public.js';\nimport { onItemUpdated as publicOnItemUpdated } from './restaurants-menus-v1-item-items.public.js';\n\nfunction customQueryItems(httpClient: HttpClient) {\n  const router = createQueryOverloadRouter({\n    builderQueryFunction: () => publicQueryItems(httpClient)(),\n    typedQueryFunction: (query: ItemQuery) =>\n      publicTypedQueryItems(httpClient)(query),\n    hasOptionsParameter: false,\n  });\n\n  function overloadedQuery(): ItemsQueryBuilder;\n  function overloadedQuery(\n    query: ItemQuery\n  ): ReturnType<typeof universalTypedQueryItems>;\n  function overloadedQuery(query?: ItemQuery): any {\n    return router(...arguments);\n  }\n\n  return overloadedQuery;\n}\n\nexport const duplicateItem: MaybeContext<\n  BuildRESTFunction<typeof publicDuplicateItem> & typeof publicDuplicateItem\n> = /*#__PURE__*/ createRESTModule(publicDuplicateItem);\nexport const createItem: MaybeContext<\n  BuildRESTFunction<typeof publicCreateItem> & typeof publicCreateItem\n> = /*#__PURE__*/ createRESTModule(publicCreateItem);\nexport const bulkCreateItems: MaybeContext<\n  BuildRESTFunction<typeof publicBulkCreateItems> & typeof publicBulkCreateItems\n> = /*#__PURE__*/ createRESTModule(publicBulkCreateItems);\nexport const getItem: MaybeContext<\n  BuildRESTFunction<typeof publicGetItem> & typeof publicGetItem\n> = /*#__PURE__*/ createRESTModule(publicGetItem);\nexport const listItems: MaybeContext<\n  BuildRESTFunction<typeof publicListItems> & typeof publicListItems\n> = /*#__PURE__*/ createRESTModule(publicListItems);\nexport const searchItems: MaybeContext<\n  BuildRESTFunction<typeof publicSearchItems> & typeof publicSearchItems\n> = /*#__PURE__*/ createRESTModule(publicSearchItems);\nexport const countItems: MaybeContext<\n  BuildRESTFunction<typeof publicCountItems> & typeof publicCountItems\n> = /*#__PURE__*/ createRESTModule(publicCountItems);\nexport const updateItem: MaybeContext<\n  BuildRESTFunction<typeof publicUpdateItem> & typeof publicUpdateItem\n> = /*#__PURE__*/ createRESTModule(publicUpdateItem);\nexport const bulkUpdateItem: MaybeContext<\n  BuildRESTFunction<typeof publicBulkUpdateItem> & typeof publicBulkUpdateItem\n> = /*#__PURE__*/ createRESTModule(publicBulkUpdateItem);\nexport const deleteItem: MaybeContext<\n  BuildRESTFunction<typeof publicDeleteItem> & typeof publicDeleteItem\n> = /*#__PURE__*/ createRESTModule(publicDeleteItem);\nexport const bulkDeleteItems: MaybeContext<\n  BuildRESTFunction<typeof publicBulkDeleteItems> & typeof publicBulkDeleteItems\n> = /*#__PURE__*/ createRESTModule(publicBulkDeleteItems);\nexport const queryItems: MaybeContext<\n  BuildRESTFunction<typeof customQueryItems> & typeof customQueryItems\n> = /*#__PURE__*/ createRESTModule(customQueryItems);\n/** */\nexport const onItemCreated: BuildEventDefinition<typeof publicOnItemCreated> &\n  typeof publicOnItemCreated = createEventModule(publicOnItemCreated);\n/** */\nexport const onItemDeleted: BuildEventDefinition<typeof publicOnItemDeleted> &\n  typeof publicOnItemDeleted = createEventModule(publicOnItemDeleted);\n/**\n * Triggered when an item is updated.\n */\nexport const onItemUpdated: BuildEventDefinition<typeof publicOnItemUpdated> &\n  typeof publicOnItemUpdated = createEventModule(publicOnItemUpdated);\n\nexport {\n  FulfillmentMethodType,\n  AvailabilityType,\n  EntitiesDayOfWeek,\n  Enum,\n  State,\n  PlacementType,\n  DayOfWeek,\n  ResolutionMethod,\n  WebhookIdentityType,\n  SortOrder,\n  SortType,\n  SortDirection,\n  ScalarType,\n  AggregationType,\n  Mode,\n} from './restaurants-menus-v1-item-items.universal.js';\nexport {\n  Item,\n  ItemPricingOneOf,\n  PriceVariants,\n  PriceVariant,\n  PriceInfo,\n  Label,\n  OrderSettings,\n  Availability,\n  AvailabilityAvailabilityTypeOptionsOneOf,\n  WeeklyScheduleOptions,\n  DayOfWeekAvailability,\n  TimeOfDayRange,\n  TimeOfDay,\n  TimestampRangesOptions,\n  AvailableRange,\n  ModifierGroup,\n  ExtendedFields,\n  ExternalReferenceInfo,\n  DuplicateItemRequest,\n  DuplicateItemResponse,\n  UpdateDocumentsEvent,\n  UpdateDocumentsEventOperationOneOf,\n  DocumentUpdateOperation,\n  IndexDocument,\n  DocumentPayload,\n  DocumentImage,\n  DeleteByIdsOperation,\n  DeleteByFilterOperation,\n  UpdateByFilterOperation,\n  UpdateExistingOperation,\n  DomainEvent,\n  DomainEventBodyOneOf,\n  EntityCreatedEvent,\n  RestoreInfo,\n  EntityUpdatedEvent,\n  EntityDeletedEvent,\n  ActionEvent,\n  Empty,\n  SearchIndexingNotification,\n  SitePropertiesNotification,\n  SitePropertiesEvent,\n  Properties,\n  Categories,\n  Locale,\n  Address,\n  AddressHint,\n  GeoCoordinates,\n  BusinessSchedule,\n  TimePeriod,\n  SpecialHourPeriod,\n  Multilingual,\n  SupportedLanguage,\n  ConsentPolicy,\n  Translation,\n  ChangeContext,\n  ChangeContextPayloadOneOf,\n  PropertiesChange,\n  SiteCreated,\n  SiteCloned,\n  MessageEnvelope,\n  IdentificationData,\n  IdentificationDataIdOneOf,\n  AccountInfo,\n  InvalidateCache,\n  InvalidateCacheGetByOneOf,\n  App,\n  Page,\n  URI,\n  File,\n  CustomTag,\n  Pages,\n  URIs,\n  DeleteLocationIdsFromVariants,\n  DeleteLocationIdsFromModifierGroups,\n  CreateItemRequest,\n  CreateItemResponse,\n  BulkCreateItemsRequest,\n  BulkCreateItemsResponse,\n  BulkCreateItemResult,\n  ItemMetadata,\n  ApplicationError,\n  BulkActionMetadata,\n  GetItemRequest,\n  GetItemResponse,\n  ListItemsRequest,\n  CursorPaging,\n  ListItemsResponse,\n  CursorPagingMetadata,\n  Cursors,\n  QueryItemsRequest,\n  CursorQuery,\n  CursorQueryPagingMethodOneOf,\n  Sorting,\n  QueryItemsResponse,\n  SearchItemsRequest,\n  CursorSearch,\n  CursorSearchPagingMethodOneOf,\n  Aggregation,\n  AggregationKindOneOf,\n  RangeBucket,\n  ValueAggregation,\n  RangeAggregation,\n  ScalarAggregation,\n  SearchDetails,\n  SearchItemsResponse,\n  AggregationData,\n  ValueAggregationResult,\n  RangeAggregationResult,\n  ValueResults,\n  RangeResults,\n  ScalarResult,\n  AggregationResults,\n  AggregationResultsResultOneOf,\n  CountItemsRequest,\n  CountItemsResponse,\n  UpdateItemRequest,\n  UpdateItemResponse,\n  BulkUpdateItemRequest,\n  MaskedItem,\n  BulkUpdateItemResponse,\n  BulkUpdateItemResponseBulkItemResult,\n  DeleteItemRequest,\n  DeleteItemResponse,\n  BulkDeleteItemsRequest,\n  BulkDeleteItemsResponse,\n  BulkDeleteItemResult,\n  CloneItemsRequest,\n  CloneItemsResponse,\n  BulkUpdateBusinessLocationIdsRequest,\n  BulkUpdateBusinessLocationIdsResponse,\n  BulkUpdateBusinessLocationIdsResponseBulkItemResult,\n  BulkUpdateBusinessLocationIdsPerEntityRequest,\n  ItemIdLocationIds,\n  BulkUpdateBusinessLocationIdsPerEntityResponse,\n  BulkItemResult,\n  SyncContentToMultilingualRequest,\n  SyncContentToMultilingualResponse,\n  BaseEventMetadata,\n  EventMetadata,\n  AccountInfoMetadata,\n  ItemCreatedEnvelope,\n  ItemDeletedEnvelope,\n  ItemUpdatedEnvelope,\n  DuplicateItemOptions,\n  BulkCreateItemsOptions,\n  ListItemsOptions,\n  ItemsQueryResult,\n  ItemsQueryBuilder,\n  ItemQuerySpec,\n  ItemSearchSpec,\n  CountItemsOptions,\n  UpdateItem,\n  BulkUpdateItemOptions,\n} from './restaurants-menus-v1-item-items.universal.js';\nexport { utils } from './restaurants-menus-v1-item-items.universal.js';\nexport {\n  FulfillmentMethodTypeWithLiterals,\n  AvailabilityTypeWithLiterals,\n  EntitiesDayOfWeekWithLiterals,\n  EnumWithLiterals,\n  StateWithLiterals,\n  PlacementTypeWithLiterals,\n  DayOfWeekWithLiterals,\n  ResolutionMethodWithLiterals,\n  WebhookIdentityTypeWithLiterals,\n  SortOrderWithLiterals,\n  SortTypeWithLiterals,\n  SortDirectionWithLiterals,\n  ScalarTypeWithLiterals,\n  AggregationTypeWithLiterals,\n  ModeWithLiterals,\n  CountItemsApplicationErrors,\n  CommonQueryWithEntityContext,\n  ItemQuery,\n  CommonSearchWithEntityContext,\n  ItemSearch,\n} from './restaurants-menus-v1-item-items.universal.js';\n"],"mappings":"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","names":["renameKeysFromRESTResponseToSDKResponse","transformRESTImageToSDKImage","transformRESTTimestampToSDKTimestamp","transformPaths","payload","transformPaths","FulfillmentMethodType","AvailabilityType","EntitiesDayOfWeek","Enum","State","PlacementType","DayOfWeek","ResolutionMethod","WebhookIdentityType","SortOrder","SortType","SortDirection","ScalarType","AggregationType","Mode","duplicateItem","createItem","bulkCreateItems","getItem","listItems","queryItems","searchItems","countItems","updateItem","bulkUpdateItem","deleteItem","bulkDeleteItems","duplicateItem","createItem","bulkCreateItems","getItem","listItems","queryItems","typedQueryItems","searchItems","countItems","updateItem","bulkUpdateItem","deleteItem","bulkDeleteItems","renameKeysFromRESTResponseToSDKResponse","transformPaths","transformRESTTimestampToSDKTimestamp","transformRESTImageToSDKImage","queryItems","typedQueryItems","duplicateItem","createItem","bulkCreateItems","getItem","listItems","searchItems","countItems","updateItem","bulkUpdateItem","deleteItem","bulkDeleteItems","onItemCreated","onItemDeleted","onItemUpdated"]}