@wix/auto_sdk_restaurants_operations 1.0.46 → 1.0.47

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"sources":["../../index.ts","../../src/restaurants-operations-v1-operation-operations.public.ts","../../src/restaurants-operations-v1-operation-operations.universal.ts","../../src/restaurants-operations-v1-operation-operations.http.ts","../../src/restaurants-operations-v1-operation-operations.context.ts"],"sourcesContent":["export * from './src/restaurants-operations-v1-operation-operations.context.js';\n","import { renameKeysFromRESTResponseToSDKResponse } from '@wix/sdk-runtime/rename-all-nested-keys';\nimport { transformRESTAddressToSDKAddress } from '@wix/sdk-runtime/transformations/address';\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 BulkUpdateOperationTagsApplicationErrors,\n BulkUpdateOperationTagsByFilterApplicationErrors,\n BulkUpdateOperationTagsByFilterOptions,\n BulkUpdateOperationTagsByFilterResponse,\n BulkUpdateOperationTagsOptions,\n BulkUpdateOperationTagsResponse,\n CalculateAvailableDatesInRangeOptions,\n CalculateAvailableDatesInRangeResponse,\n CalculateAvailableTimeSlotsForDateOptions,\n CalculateAvailableTimeSlotsForDateResponse,\n CalculateFirstAvailableTimeSlotPerFulfillmentTypeOptions,\n CalculateFirstAvailableTimeSlotPerFulfillmentTypeResponse,\n CalculateFirstAvailableTimeSlotsPerMenuOptions,\n CalculateFirstAvailableTimeSlotsPerMenuResponse,\n CalculateFirstAvailableTimeSlotsPerOperationOptions,\n CalculateFirstAvailableTimeSlotsPerOperationResponse,\n ListAvailableDatesInRangeOptions,\n ListAvailableDatesInRangeResponse,\n ListAvailableFulfillmentOptions,\n ListAvailableFulfillmentOptionsResponse,\n ListAvailableTimeSlotsForDateOptions,\n ListAvailableTimeSlotsForDateResponse,\n ListFirstAvailableTimeSlotForFulfillmentTypesOptions,\n ListFirstAvailableTimeSlotForFulfillmentTypesResponse,\n ListFirstAvailableTimeSlotsForMenusOptions,\n ListFirstAvailableTimeSlotsForMenusResponse,\n ListFirstAvailableTimeSlotsForOperationsOptions,\n ListFirstAvailableTimeSlotsForOperationsResponse,\n ListOperationsResponse,\n Operation,\n OperationCreatedEnvelope,\n OperationDeletedEnvelope,\n OperationUpdatedEnvelope,\n OperationsQueryBuilder,\n UpdateOperation,\n ValidateOperationAddressResponse,\n bulkUpdateOperationTags as universalBulkUpdateOperationTags,\n bulkUpdateOperationTagsByFilter as universalBulkUpdateOperationTagsByFilter,\n calculateAvailableDatesInRange as universalCalculateAvailableDatesInRange,\n calculateAvailableTimeSlotsForDate as universalCalculateAvailableTimeSlotsForDate,\n calculateFirstAvailableTimeSlotPerFulfillmentType as universalCalculateFirstAvailableTimeSlotPerFulfillmentType,\n calculateFirstAvailableTimeSlotsPerMenu as universalCalculateFirstAvailableTimeSlotsPerMenu,\n calculateFirstAvailableTimeSlotsPerOperation as universalCalculateFirstAvailableTimeSlotsPerOperation,\n createOperation as universalCreateOperation,\n deleteOperation as universalDeleteOperation,\n getOperation as universalGetOperation,\n listAvailableDatesInRange as universalListAvailableDatesInRange,\n listAvailableFulfillmentOptions as universalListAvailableFulfillmentOptions,\n listAvailableTimeSlotsForDate as universalListAvailableTimeSlotsForDate,\n listFirstAvailableTimeSlotForFulfillmentTypes as universalListFirstAvailableTimeSlotForFulfillmentTypes,\n listFirstAvailableTimeSlotsForMenus as universalListFirstAvailableTimeSlotsForMenus,\n listFirstAvailableTimeSlotsForOperations as universalListFirstAvailableTimeSlotsForOperations,\n listOperations as universalListOperations,\n queryOperation as universalQueryOperation,\n updateOperation as universalUpdateOperation,\n validateOperationAddress as universalValidateOperationAddress,\n} from './restaurants-operations-v1-operation-operations.universal.js';\n\nexport const __metadata = { PACKAGE_NAME: '@wix/restaurants' };\n\nexport function createOperation(\n httpClient: HttpClient\n): CreateOperationSignature {\n return (operation: Operation) =>\n universalCreateOperation(\n operation,\n // @ts-ignore\n { httpClient }\n );\n}\n\ninterface CreateOperationSignature {\n /**\n * Creates a new operation.\n * @param - Operation to create.\n * @returns Created operation.\n * @deprecated\n */\n (operation: Operation): Promise<\n NonNullablePaths<\n Operation,\n | `fulfillmentIds`\n | `onlineOrderingStatus`\n | `defaultFulfillmentType`\n | `orderScheduling.asapOptions.preparationTime.maxTimeOptions.timeUnit`\n | `orderScheduling.asapOptions.preparationTime.timeRangeOptions.timeUnit`\n | `orderScheduling.asapOptions.preparationTime.type`\n | `orderScheduling.asapOptions.asapFutureHandlingType`\n | `orderScheduling.preorderOptions.method.weeklyScheduleOptions.cutOffTime.dayOfWeek`\n | `orderScheduling.preorderOptions.method.weeklyScheduleOptions.cutOffTime.timeOfDay.hours`\n | `orderScheduling.preorderOptions.method.weeklyScheduleOptions.cutOffTime.timeOfDay.minutes`\n | `orderScheduling.preorderOptions.method.type`\n | `orderScheduling.preorderOptions.fulfillmentTimesDisplay.type`\n | `orderScheduling.type`\n | `tags.privateTags.tagIds`,\n 8\n >\n >;\n}\n\nexport function getOperation(httpClient: HttpClient): GetOperationSignature {\n return (operationId: string) =>\n universalGetOperation(\n operationId,\n // @ts-ignore\n { httpClient }\n );\n}\n\ninterface GetOperationSignature {\n /**\n * Retrieves an operation.\n * @param - ID of the operation to retrieve.\n * @returns Retrieved operation.\n */\n (operationId: string): Promise<\n NonNullablePaths<\n Operation,\n | `fulfillmentIds`\n | `onlineOrderingStatus`\n | `defaultFulfillmentType`\n | `orderScheduling.asapOptions.preparationTime.maxTimeOptions.timeUnit`\n | `orderScheduling.asapOptions.preparationTime.timeRangeOptions.timeUnit`\n | `orderScheduling.asapOptions.preparationTime.type`\n | `orderScheduling.asapOptions.asapFutureHandlingType`\n | `orderScheduling.preorderOptions.method.weeklyScheduleOptions.cutOffTime.dayOfWeek`\n | `orderScheduling.preorderOptions.method.weeklyScheduleOptions.cutOffTime.timeOfDay.hours`\n | `orderScheduling.preorderOptions.method.weeklyScheduleOptions.cutOffTime.timeOfDay.minutes`\n | `orderScheduling.preorderOptions.method.type`\n | `orderScheduling.preorderOptions.fulfillmentTimesDisplay.type`\n | `orderScheduling.type`\n | `tags.privateTags.tagIds`,\n 8\n >\n >;\n}\n\nexport function updateOperation(\n httpClient: HttpClient\n): UpdateOperationSignature {\n return (\n _id: string,\n operation: NonNullablePaths<UpdateOperation, `revision`, 2>\n ) =>\n universalUpdateOperation(\n _id,\n operation,\n // @ts-ignore\n { httpClient }\n );\n}\n\ninterface UpdateOperationSignature {\n /**\n * Updates an operation.\n *\n * If you update part of the `orderScheduling` property, the whole object is overwritten,\n * so you must include the entire object unless you are not updating `orderScheduling` at all. <br />\n *\n * Each time the operation is updated,\n * `revision` increments by 1.\n * The current `revision` must be passed when updating the operation.\n * This ensures you're working with the latest operation\n * and prevents unintended overwrites.\n * @param - Operation ID.\n * @returns Updated operation.\n */\n (\n _id: string,\n operation: NonNullablePaths<UpdateOperation, `revision`, 2>\n ): Promise<\n NonNullablePaths<\n Operation,\n | `fulfillmentIds`\n | `onlineOrderingStatus`\n | `defaultFulfillmentType`\n | `orderScheduling.asapOptions.preparationTime.maxTimeOptions.timeUnit`\n | `orderScheduling.asapOptions.preparationTime.timeRangeOptions.timeUnit`\n | `orderScheduling.asapOptions.preparationTime.type`\n | `orderScheduling.asapOptions.asapFutureHandlingType`\n | `orderScheduling.preorderOptions.method.weeklyScheduleOptions.cutOffTime.dayOfWeek`\n | `orderScheduling.preorderOptions.method.weeklyScheduleOptions.cutOffTime.timeOfDay.hours`\n | `orderScheduling.preorderOptions.method.weeklyScheduleOptions.cutOffTime.timeOfDay.minutes`\n | `orderScheduling.preorderOptions.method.type`\n | `orderScheduling.preorderOptions.fulfillmentTimesDisplay.type`\n | `orderScheduling.type`\n | `tags.privateTags.tagIds`,\n 8\n >\n >;\n}\n\nexport function deleteOperation(\n httpClient: HttpClient\n): DeleteOperationSignature {\n return (operationId: string) =>\n universalDeleteOperation(\n operationId,\n // @ts-ignore\n { httpClient }\n );\n}\n\ninterface DeleteOperationSignature {\n /**\n * Deletes an operation.\n * @param - ID of the operation to delete.\n * @deprecated\n */\n (operationId: string): Promise<void>;\n}\n\nexport function queryOperation(\n httpClient: HttpClient\n): QueryOperationSignature {\n return () =>\n universalQueryOperation(\n // @ts-ignore\n { httpClient }\n );\n}\n\ninterface QueryOperationSignature {\n /**\n * Creates a query to retrieve a list of operations.\n *\n * The `queryOperations()` function builds a query to retrieve a list of operations and returns an `OperationsQueryBuilder` object.\n *\n * The returned object contains the query definition, which is used to run the query using the [`find()`](/operations/operations-query-builder/find) function.\n *\n * You can refine the query by chaining `OperationsQueryBuilder` functions onto the query. `OperationsQueryBuilder` functions enable you to filter, sort, and control the results that `queryOperations()` returns.\n *\n * `queryOperations()` runs with the following `OperationsQueryBuilder` defaults, which you can override:\n *\n * * [`limit(50)`](/operations/operations-query-builder/limit)\n * * [`ascending('entityId')`](/operations/operations-methods-query-builder/ascending)\n *\n * The following `OperationsQueryBuilder` functions are supported for `queryOperations()`. For a full description of the operations object, see the object returned for the [`items`](/operations/operations-query-result/items) property in `OperationsQueryResult`.\n */\n (): OperationsQueryBuilder;\n}\n\nexport function listOperations(\n httpClient: HttpClient\n): ListOperationsSignature {\n return () =>\n universalListOperations(\n // @ts-ignore\n { httpClient }\n );\n}\n\ninterface ListOperationsSignature {\n /**\n * Retrieves a list of operations.\n * The result will be sorted by created date in ascending order.\n */\n (): Promise<\n NonNullablePaths<\n ListOperationsResponse,\n | `operations`\n | `operations.${number}.onlineOrderingStatus`\n | `operations.${number}.defaultFulfillmentType`\n | `operations.${number}.orderScheduling.asapOptions.asapFutureHandlingType`\n | `operations.${number}.orderScheduling.type`,\n 6\n >\n >;\n}\n\nexport function listAvailableFulfillmentOptions(\n httpClient: HttpClient\n): ListAvailableFulfillmentOptionsSignature {\n return (operationId: string, options?: ListAvailableFulfillmentOptions) =>\n universalListAvailableFulfillmentOptions(\n operationId,\n options,\n // @ts-ignore\n { httpClient }\n );\n}\n\ninterface ListAvailableFulfillmentOptionsSignature {\n /**\n * Retrieves a list of available fulfillment options.\n *\n * What makes a fulfillment option available is whether you can submit an order given the scheduling configurations and the fulfillment method's availability.\n * When a delivery address is not provided in the input, our system retrieves a list encompassing all types of fulfillment methods.\n * Conversely, if a delivery address` is given, the response may includes non-delivery fulfillment options along with delivery fulfillment methods that are applicable to the given address, ensuring the address falls within the defined delivery area of these methods.\n * @param - Operation ID. Returned fulfillment options will belong to this operation.\n */\n (operationId: string, options?: ListAvailableFulfillmentOptions): Promise<\n NonNullablePaths<\n ListAvailableFulfillmentOptionsResponse,\n | `pickupConfigured`\n | `deliveryConfigured`\n | `fulfillmentOptions`\n | `fulfillmentOptions.${number}.maxTimeOptions`\n | `fulfillmentOptions.${number}.durationRangeOptions.minDuration`\n | `fulfillmentOptions.${number}.durationRangeOptions.maxDuration`\n | `fulfillmentOptions.${number}.timeWindowsOptions.durationInMinutes`\n | `fulfillmentOptions.${number}.type`\n | `fulfillmentOptions.${number}.availability.asapHandlingAvailable`\n | `fulfillmentOptions.${number}.fulfillmentTimeType`\n | `fulfillmentOptions.${number}.fulfillmentTimesDisplayType`,\n 5\n >\n >;\n}\n\nexport function listFirstAvailableTimeSlotForFulfillmentTypes(\n httpClient: HttpClient\n): ListFirstAvailableTimeSlotForFulfillmentTypesSignature {\n return (\n operationId: string,\n options?: ListFirstAvailableTimeSlotForFulfillmentTypesOptions\n ) =>\n universalListFirstAvailableTimeSlotForFulfillmentTypes(\n operationId,\n options,\n // @ts-ignore\n { httpClient }\n );\n}\n\ninterface ListFirstAvailableTimeSlotForFulfillmentTypesSignature {\n /**\n * Retrieves a list of available time slots for each fulfillment type.\n *\n * Each time slot is the first available time slot for the given fulfillment type.\n * @param - Operation ID.\n * Returned fulfillment options will belong to this operation.\n * @deprecated\n */\n (\n operationId: string,\n options?: ListFirstAvailableTimeSlotForFulfillmentTypesOptions\n ): Promise<\n NonNullablePaths<\n ListFirstAvailableTimeSlotForFulfillmentTypesResponse,\n | `timeSlots`\n | `timeSlots.${number}.fulfilmentType`\n | `timeSlots.${number}.startsNow`,\n 4\n >\n >;\n}\n\nexport function calculateFirstAvailableTimeSlotPerFulfillmentType(\n httpClient: HttpClient\n): CalculateFirstAvailableTimeSlotPerFulfillmentTypeSignature {\n return (\n operationId: string,\n options?: CalculateFirstAvailableTimeSlotPerFulfillmentTypeOptions\n ) =>\n universalCalculateFirstAvailableTimeSlotPerFulfillmentType(\n operationId,\n options,\n // @ts-ignore\n { httpClient }\n );\n}\n\ninterface CalculateFirstAvailableTimeSlotPerFulfillmentTypeSignature {\n /**\n * Retrieves the first available time slot of each fulfillment type for a specified operation.\n *\n * The response includes a time slot with the delivery fulfillment type only if you specify a delivery address.\n * Only fulfillment methods capable of delivering to the specified address are considered when calculating time slot availability.\n * @param - Operation ID.\n */\n (\n operationId: string,\n options?: CalculateFirstAvailableTimeSlotPerFulfillmentTypeOptions\n ): Promise<\n NonNullablePaths<\n CalculateFirstAvailableTimeSlotPerFulfillmentTypeResponse,\n | `timeslotsPerFulfillmentType`\n | `timeslotsPerFulfillmentType.${number}.timeSlot.orderSchedulingType`\n | `timeslotsPerFulfillmentType.${number}.fulfilmentType`,\n 5\n >\n >;\n}\n\nexport function listFirstAvailableTimeSlotsForOperations(\n httpClient: HttpClient\n): ListFirstAvailableTimeSlotsForOperationsSignature {\n return (\n operationIds: string[],\n options?: ListFirstAvailableTimeSlotsForOperationsOptions\n ) =>\n universalListFirstAvailableTimeSlotsForOperations(\n operationIds,\n options,\n // @ts-ignore\n { httpClient }\n );\n}\n\ninterface ListFirstAvailableTimeSlotsForOperationsSignature {\n /**\n * Retrieves a list of available time slots for each fulfillment type.\n *\n * Each time slot is the first available time slot for the given fulfillment type.\n * @param - Operation ID.\n * Returned fulfillment options will belong to this operation.\n * @deprecated\n */\n (\n operationIds: string[],\n options?: ListFirstAvailableTimeSlotsForOperationsOptions\n ): Promise<\n NonNullablePaths<\n ListFirstAvailableTimeSlotsForOperationsResponse,\n `timeSlots` | `timeSlots.${number}.operationId`,\n 4\n >\n >;\n}\n\nexport function calculateFirstAvailableTimeSlotsPerOperation(\n httpClient: HttpClient\n): CalculateFirstAvailableTimeSlotsPerOperationSignature {\n return (\n operationIds: string[],\n options?: CalculateFirstAvailableTimeSlotsPerOperationOptions\n ) =>\n universalCalculateFirstAvailableTimeSlotsPerOperation(\n operationIds,\n options,\n // @ts-ignore\n { httpClient }\n );\n}\n\ninterface CalculateFirstAvailableTimeSlotsPerOperationSignature {\n /**\n * Retrieves the first available time slot of each fulfillment type for each specified operation.\n *\n * The response includes time slots with delivery fulfillment types only if you specify a delivery address.\n * Only fulfillment methods capable of delivering to the specified address are considered when calculating time slot availability.\n * @param - Operation IDs.\n */\n (\n operationIds: string[],\n options?: CalculateFirstAvailableTimeSlotsPerOperationOptions\n ): Promise<\n NonNullablePaths<\n CalculateFirstAvailableTimeSlotsPerOperationResponse,\n `timeSlotsPerOperation` | `timeSlotsPerOperation.${number}.operationId`,\n 4\n >\n >;\n}\n\nexport function listFirstAvailableTimeSlotsForMenus(\n httpClient: HttpClient\n): ListFirstAvailableTimeSlotsForMenusSignature {\n return (\n operationId: string,\n options?: ListFirstAvailableTimeSlotsForMenusOptions\n ) =>\n universalListFirstAvailableTimeSlotsForMenus(\n operationId,\n options,\n // @ts-ignore\n { httpClient }\n );\n}\n\ninterface ListFirstAvailableTimeSlotsForMenusSignature {\n /**\n * For each menu, retrieves the first available time slots for each fulfillment type.\n * @param - Operation ID.\n * Returned timeslots that are belong to this operation.\n * @deprecated\n */\n (\n operationId: string,\n options?: ListFirstAvailableTimeSlotsForMenusOptions\n ): Promise<\n NonNullablePaths<\n ListFirstAvailableTimeSlotsForMenusResponse,\n `timeSlotsPerMenu`,\n 2\n >\n >;\n}\n\nexport function calculateFirstAvailableTimeSlotsPerMenu(\n httpClient: HttpClient\n): CalculateFirstAvailableTimeSlotsPerMenuSignature {\n return (\n operationId: string,\n options?: CalculateFirstAvailableTimeSlotsPerMenuOptions\n ) =>\n universalCalculateFirstAvailableTimeSlotsPerMenu(\n operationId,\n options,\n // @ts-ignore\n { httpClient }\n );\n}\n\ninterface CalculateFirstAvailableTimeSlotsPerMenuSignature {\n /**\n * Retrieves the first available time slot of each fulfillment type for each specified menu.\n *\n * The response includes time slots with delivery fulfillment types only if you specify a delivery address.\n * Only fulfillment methods capable of delivering to the specified address are considered when calculating time slot availability.\n * @param - Operation ID.\n */\n (\n operationId: string,\n options?: CalculateFirstAvailableTimeSlotsPerMenuOptions\n ): Promise<\n NonNullablePaths<\n CalculateFirstAvailableTimeSlotsPerMenuResponse,\n `timeSlotsPerMenu`,\n 2\n >\n >;\n}\n\nexport function listAvailableTimeSlotsForDate(\n httpClient: HttpClient\n): ListAvailableTimeSlotsForDateSignature {\n return (\n operationId: string,\n options?: NonNullablePaths<\n ListAvailableTimeSlotsForDateOptions,\n `date` | `date.day` | `date.month` | `date.year`,\n 3\n >\n ) =>\n universalListAvailableTimeSlotsForDate(\n operationId,\n options,\n // @ts-ignore\n { httpClient }\n );\n}\n\ninterface ListAvailableTimeSlotsForDateSignature {\n /**\n * Retrieves a list of the available time slots for a given date.\n * @param - Operation ID.\n * The returned fulfillment options will belong to this operation.\n * @deprecated\n */\n (\n operationId: string,\n options?: NonNullablePaths<\n ListAvailableTimeSlotsForDateOptions,\n `date` | `date.day` | `date.month` | `date.year`,\n 3\n >\n ): Promise<\n NonNullablePaths<\n ListAvailableTimeSlotsForDateResponse,\n | `timeSlots`\n | `timeSlots.${number}.fulfilmentType`\n | `timeSlots.${number}.startsNow`,\n 4\n >\n >;\n}\n\nexport function calculateAvailableTimeSlotsForDate(\n httpClient: HttpClient\n): CalculateAvailableTimeSlotsForDateSignature {\n return (\n operationId: string,\n options?: NonNullablePaths<\n CalculateAvailableTimeSlotsForDateOptions,\n `date` | `date.day` | `date.month` | `date.year`,\n 3\n >\n ) =>\n universalCalculateAvailableTimeSlotsForDate(\n operationId,\n options,\n // @ts-ignore\n { httpClient }\n );\n}\n\ninterface CalculateAvailableTimeSlotsForDateSignature {\n /**\n * Retrieves all available time slots of each fulfillment type for the specified date.\n *\n * The response includes time slots with delivery fulfillment types only if you specify a delivery address.\n * Only fulfillment methods capable of delivering to the specified address are considered when calculating time slot availability.\n * @param - Operation ID.\n */\n (\n operationId: string,\n options?: NonNullablePaths<\n CalculateAvailableTimeSlotsForDateOptions,\n `date` | `date.day` | `date.month` | `date.year`,\n 3\n >\n ): Promise<\n NonNullablePaths<\n CalculateAvailableTimeSlotsForDateResponse,\n | `timeslotsPerFulfillmentType`\n | `timeslotsPerFulfillmentType.${number}.timeSlot.orderSchedulingType`\n | `timeslotsPerFulfillmentType.${number}.fulfilmentType`,\n 5\n >\n >;\n}\n\nexport function listAvailableDatesInRange(\n httpClient: HttpClient\n): ListAvailableDatesInRangeSignature {\n return (\n operationId: string,\n options?: NonNullablePaths<\n ListAvailableDatesInRangeOptions,\n `from` | `until`,\n 2\n >\n ) =>\n universalListAvailableDatesInRange(\n operationId,\n options,\n // @ts-ignore\n { httpClient }\n );\n}\n\ninterface ListAvailableDatesInRangeSignature {\n /**\n * Retrieves a list of the available dates in a given time range.\n *\n * A date is considered available if it has at least one available time slot.\n * @param - Operation ID.\n * The returned fulfillment options will belong to this operation.\n * @deprecated\n */\n (\n operationId: string,\n options?: NonNullablePaths<\n ListAvailableDatesInRangeOptions,\n `from` | `until`,\n 2\n >\n ): Promise<\n NonNullablePaths<\n ListAvailableDatesInRangeResponse,\n `availableDates` | `availableDates.${number}.fulfilmentType`,\n 4\n >\n >;\n}\n\nexport function calculateAvailableDatesInRange(\n httpClient: HttpClient\n): CalculateAvailableDatesInRangeSignature {\n return (\n operationId: string,\n options?: NonNullablePaths<\n CalculateAvailableDatesInRangeOptions,\n `from` | `until`,\n 2\n >\n ) =>\n universalCalculateAvailableDatesInRange(\n operationId,\n options,\n // @ts-ignore\n { httpClient }\n );\n}\n\ninterface CalculateAvailableDatesInRangeSignature {\n /**\n * Retrieves all available dates of each fulfillment type within the specified time range.\n *\n * A date is considered available if it has at least one available time slot.\n *\n * The response includes time slots with delivery fulfillment types only if you specify a delivery address.\n * Only fulfillment methods capable of delivering to the specified address are considered when calculating time slot availability.\n * @param - Operation ID.\n */\n (\n operationId: string,\n options?: NonNullablePaths<\n CalculateAvailableDatesInRangeOptions,\n `from` | `until`,\n 2\n >\n ): Promise<\n NonNullablePaths<\n CalculateAvailableDatesInRangeResponse,\n | `availableDatesPerFulfillmentType`\n | `availableDatesPerFulfillmentType.${number}.fulfilmentType`,\n 4\n >\n >;\n}\n\nexport function validateOperationAddress(\n httpClient: HttpClient\n): ValidateOperationAddressSignature {\n return (operationId: string) =>\n universalValidateOperationAddress(\n operationId,\n // @ts-ignore\n { httpClient }\n );\n}\n\ninterface ValidateOperationAddressSignature {\n /**\n * Validates an operation's address\n *\n * Checks if the address linked to the operation (stored in business_location_details) is valid.\n * An address is considered valid if it has:\n * 1. A non-empty formatted address\n * 2. Valid geocode coordinates (not 0,0)\n * 3. A non-empty country field\n *\n * If the address is invalid, the response includes specific violations.\n * @param - The ID of the operation to validate\n * @returns Response message for address validation\n */\n (operationId: string): Promise<\n NonNullablePaths<\n ValidateOperationAddressResponse,\n `valid` | `violations` | `violations.${number}.type`,\n 4\n >\n >;\n}\n\nexport function bulkUpdateOperationTags(\n httpClient: HttpClient\n): BulkUpdateOperationTagsSignature {\n return (operationIds: string[], options?: BulkUpdateOperationTagsOptions) =>\n universalBulkUpdateOperationTags(\n operationIds,\n options,\n // @ts-ignore\n { httpClient }\n );\n}\n\ninterface BulkUpdateOperationTagsSignature {\n /**\n * Synchronously update tags on multiple operations.\n * If you specify a tag in both `assignTags` and `unassignTags`, it is assigned.\n * @param - IDs of the operations to update tags for.\n */\n (operationIds: string[], options?: BulkUpdateOperationTagsOptions): Promise<\n NonNullablePaths<\n BulkUpdateOperationTagsResponse,\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 __applicationErrorsType?: BulkUpdateOperationTagsApplicationErrors;\n }\n >;\n}\n\nexport function bulkUpdateOperationTagsByFilter(\n httpClient: HttpClient\n): BulkUpdateOperationTagsByFilterSignature {\n return (\n filter: Record<string, any>,\n options?: BulkUpdateOperationTagsByFilterOptions\n ) =>\n universalBulkUpdateOperationTagsByFilter(\n filter,\n options,\n // @ts-ignore\n { httpClient }\n );\n}\n\ninterface BulkUpdateOperationTagsByFilterSignature {\n /**\n * Asynchronously update tags on multiple operations according to the specified filter.\n * If a filter isn't specified, this method updates all operations.\n * If you specify a tag in both `assignTags` and `unassignTags`, it is assigned.\n * @param - Filter that determines which operations to update tags for.\n */\n (\n filter: Record<string, any>,\n options?: BulkUpdateOperationTagsByFilterOptions\n ): Promise<\n NonNullablePaths<BulkUpdateOperationTagsByFilterResponse, `jobId`, 2> & {\n __applicationErrorsType?: BulkUpdateOperationTagsByFilterApplicationErrors;\n }\n >;\n}\n\nexport const onOperationCreated = EventDefinition(\n 'wix.restaurants.operations.v1.operation_created',\n true,\n (event: OperationCreatedEnvelope) =>\n renameKeysFromRESTResponseToSDKResponse(\n transformPaths(event, [\n {\n transformFn: transformRESTTimestampToSDKTimestamp,\n paths: [\n { path: 'entity.createdDate' },\n { path: 'entity.updatedDate' },\n { path: 'entity.pausedUntilOptions.time' },\n { path: 'metadata.eventTime' },\n ],\n },\n {\n transformFn: transformRESTAddressToSDKAddress,\n paths: [{ path: 'entity.businessLocationDetails.address' }],\n },\n ])\n )\n)<OperationCreatedEnvelope>();\nexport const onOperationDeleted = EventDefinition(\n 'wix.restaurants.operations.v1.operation_deleted',\n true,\n (event: OperationDeletedEnvelope) =>\n renameKeysFromRESTResponseToSDKResponse(\n transformPaths(event, [\n {\n transformFn: transformRESTTimestampToSDKTimestamp,\n paths: [\n { path: 'entity.createdDate' },\n { path: 'entity.updatedDate' },\n { path: 'entity.pausedUntilOptions.time' },\n { path: 'metadata.eventTime' },\n ],\n },\n {\n transformFn: transformRESTAddressToSDKAddress,\n paths: [{ path: 'entity.businessLocationDetails.address' }],\n },\n ])\n )\n)<OperationDeletedEnvelope>();\nexport const onOperationUpdated = EventDefinition(\n 'wix.restaurants.operations.v1.operation_updated',\n true,\n (event: OperationUpdatedEnvelope) =>\n renameKeysFromRESTResponseToSDKResponse(\n transformPaths(event, [\n {\n transformFn: transformRESTTimestampToSDKTimestamp,\n paths: [\n { path: 'entity.createdDate' },\n { path: 'entity.updatedDate' },\n { path: 'entity.pausedUntilOptions.time' },\n { path: 'metadata.eventTime' },\n ],\n },\n {\n transformFn: transformRESTAddressToSDKAddress,\n paths: [{ path: 'entity.businessLocationDetails.address' }],\n },\n ])\n )\n)<OperationUpdatedEnvelope>();\n\nexport {\n ActionEvent,\n ActivationType,\n ActivePeriod,\n Address,\n AddressHint,\n AddressLocation,\n AddressViolation,\n App,\n ApplicationError,\n AsapFutureHandlingType,\n AsapOrderPacing,\n AsapOrderPacingPacingAvailabilityOneOf,\n AsapOrderScheduling,\n AsapOrderSchedulingAsapFutureHandlingOptionsOneOf,\n AsapPacingWindowType,\n AsapPreorderType,\n AsapScheduling,\n AsapSchedulingAsapPreorderOneOf,\n AsapSchedulingPreparationTimeOneOf,\n Asset,\n AvailabilityException,\n BaseEventMetadata,\n BulkActionMetadata,\n BulkUpdateOperationTagsByFilterOptions,\n BulkUpdateOperationTagsByFilterRequest,\n BulkUpdateOperationTagsByFilterResponse,\n BulkUpdateOperationTagsOptions,\n BulkUpdateOperationTagsRequest,\n BulkUpdateOperationTagsResponse,\n BulkUpdateOperationTagsResult,\n BusinessDaysAheadHandling,\n BusinessDaysPreorder,\n BusinessLocationDetails,\n BusinessSchedule,\n CalculateAvailableDatesInRangeOptions,\n CalculateAvailableDatesInRangeRequest,\n CalculateAvailableDatesInRangeResponse,\n CalculateAvailableTimeSlotsForDateOptions,\n CalculateAvailableTimeSlotsForDateRequest,\n CalculateAvailableTimeSlotsForDateResponse,\n CalculateFirstAvailableTimeSlotPerFulfillmentTypeOptions,\n CalculateFirstAvailableTimeSlotPerFulfillmentTypeRequest,\n CalculateFirstAvailableTimeSlotPerFulfillmentTypeResponse,\n CalculateFirstAvailableTimeSlotsPerMenuOptions,\n CalculateFirstAvailableTimeSlotsPerMenuRequest,\n CalculateFirstAvailableTimeSlotsPerMenuResponse,\n CalculateFirstAvailableTimeSlotsPerOperationOptions,\n CalculateFirstAvailableTimeSlotsPerOperationRequest,\n CalculateFirstAvailableTimeSlotsPerOperationResponse,\n Categories,\n ChangeContext,\n ChangeContextPayloadOneOf,\n CommonAddress,\n CommonAddressStreetOneOf,\n ConsentPolicy,\n CreateOperationRequest,\n CreateOperationResponse,\n CursorPaging,\n CursorPagingMetadata,\n CursorQuery,\n CursorQueryPagingMethodOneOf,\n Cursors,\n CustomTag,\n DayAndTime,\n DayOfWeek,\n DayOfWeekAvailability,\n DeleteContext,\n DeleteOperationRequest,\n DeleteOperationResponse,\n DeleteStatus,\n DeliveryDetails,\n DeliveryProfileConfiguredForOperation,\n DomainEvent,\n DomainEventBodyOneOf,\n DurationRange,\n Empty,\n EntitiesDayOfWeek,\n EntityCreatedEvent,\n EntityDeletedEvent,\n EntityUpdatedEvent,\n EventMetadata,\n ExtendedFields,\n File,\n FirstFulfillmentTimeSlotsPerMenu,\n FulfillmentAddress,\n FulfillmentDetails,\n FulfillmentDetailsFulfillmentTimeOptionsOneOf,\n FulfillmentInfo,\n FulfillmentInfoFulfillmentTimeOneOf,\n FulfillmentOption,\n FulfillmentOptionAvailability,\n FulfillmentOptionFulfillmentTimeOptionsOneOf,\n FulfillmentOptionFulfillmentTimesDisplayOptionsOneOf,\n FulfillmentOptionFulfillmentTypeOptionsOneOf,\n FulfillmentTimeSlot,\n FulfillmentTimeSlotsPerMenu,\n FulfillmentTimeType,\n FulfillmentTimesDisplayConfig,\n FulfillmentTimesDisplayConfigFulfillmentTimesDisplayOptionsOneOf,\n FulfillmentTimesDisplayType,\n FulfillmentTimesType,\n FulfillmentType,\n FulfillmentTypeAvailableDates,\n GeoCoordinates,\n GetExpectedFulfillmentSelectionRequest,\n GetExpectedFulfillmentSelectionResponse,\n GetOperationRequest,\n GetOperationResponse,\n IdentificationData,\n IdentificationDataIdOneOf,\n ImmutableFields,\n InvalidateCache,\n InvalidateCacheGetByOneOf,\n ItemMetadata,\n ListAvailableDatesInRangeOptions,\n ListAvailableDatesInRangeRequest,\n ListAvailableDatesInRangeResponse,\n ListAvailableFulfillmentOptions,\n ListAvailableFulfillmentOptionsRequest,\n ListAvailableFulfillmentOptionsResponse,\n ListAvailableTimeSlotsForDateOptions,\n ListAvailableTimeSlotsForDateRequest,\n ListAvailableTimeSlotsForDateResponse,\n ListFirstAvailableTimeSlotForFulfillmentTypesOptions,\n ListFirstAvailableTimeSlotForFulfillmentTypesRequest,\n ListFirstAvailableTimeSlotForFulfillmentTypesResponse,\n ListFirstAvailableTimeSlotsForMenusOptions,\n ListFirstAvailableTimeSlotsForMenusRequest,\n ListFirstAvailableTimeSlotsForMenusResponse,\n ListFirstAvailableTimeSlotsForOperationsOptions,\n ListFirstAvailableTimeSlotsForOperationsRequest,\n ListFirstAvailableTimeSlotsForOperationsResponse,\n ListOperationIdsRequest,\n ListOperationIdsResponse,\n ListOperationsInternalRequest,\n ListOperationsInternalResponse,\n ListOperationsRequest,\n ListOperationsResponse,\n Locale,\n MessageEnvelope,\n MetaSiteSpecialEvent,\n MetaSiteSpecialEventPayloadOneOf,\n MethodType,\n Multilingual,\n Namespace,\n NamespaceChanged,\n OdeditorAssigned,\n OdeditorUnassigned,\n OnlineOrderingPausedUntilOptions,\n OnlineOrderingStatusType,\n Operation,\n OperationCreatedEnvelope,\n OperationDeletedEnvelope,\n OperationOnlineOrderingStatusOptionsOneOf,\n OperationTimeSlot,\n OperationUpdatedEnvelope,\n OperationsDataCloningCompleted,\n OperationsQueryBuilder,\n OperationsQueryResult,\n OrderScheduling,\n OrderSchedulingOrderSchedulingOptionsOneOf,\n OrderSchedulingType,\n Page,\n PagingMetadata,\n PicassoAssigned,\n PicassoUnassigned,\n PickupDetails,\n PlacementType,\n PreOrderPacing,\n PreOrderPacingPacingAvailabilityOneOf,\n PreorderMethod,\n PreorderMethodMethodOptionsOneOf,\n PreorderPacingWindowType,\n PreorderScheduling,\n PreparationTime,\n PreparationTimePreparationTimeType,\n PreparationTimeTimeSpecificationOneOf,\n PreparationTimeType,\n Properties,\n PropertiesChange,\n QueryOperationRequest,\n QueryOperationResponse,\n ResolutionMethod,\n RestoreInfo,\n Scheduling,\n SchedulingSchedulingOptionsOneOf,\n SchedulingType,\n ServiceProvisioned,\n ServiceRemoved,\n SiteCloned,\n SiteCreated,\n SiteCreatedContext,\n SiteDeleted,\n SiteHardDeleted,\n SiteMarkedAsTemplate,\n SiteMarkedAsWixSite,\n SitePropertiesEvent,\n SitePropertiesNotification,\n SitePublished,\n SitePurgedExternally,\n SiteRenamed,\n SiteTransferred,\n SiteUndeleted,\n SiteUnpublished,\n SiteUrlChanged,\n SortOrder,\n Sorting,\n SpecialHourPeriod,\n State,\n StreetAddress,\n StudioAssigned,\n StudioUnassigned,\n Subdivision,\n SubdivisionType,\n SupportedLanguage,\n TagList,\n Tags,\n TimeBounded,\n TimeDuration,\n TimeDurationRange,\n TimeOfDay,\n TimeOfDayRange,\n TimePeriod,\n TimeSlot,\n TimeSlotForFulfillment,\n TimeSlotForFulfillmentTimeSlotStatus,\n TimeSlotForOperation,\n TimeSlotStatus,\n TimeUnit,\n TimeWindowDisplayConfig,\n Translation,\n URI,\n UpdateDeliveryRegionsRequest,\n UpdateDeliveryRegionsResponse,\n UpdateImmutableFieldsRequest,\n UpdateImmutableFieldsResponse,\n UpdateOperation,\n UpdateOperationRequest,\n UpdateOperationResponse,\n V1Address,\n V1AddressLocation,\n V1StreetAddress,\n V4SiteCreated,\n ValidateOperationAddressRequest,\n ValidateOperationAddressResponse,\n ViolationType,\n WebhookIdentityType,\n WeeklyActiveDays,\n WeeklyActivePeriods,\n WeeklySchedule,\n _Date,\n} from './restaurants-operations-v1-operation-operations.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 { HttpClient, HttpResponse, NonNullablePaths } from '@wix/sdk-types';\nimport * as ambassadorWixRestaurantsOperationsV1Operation from './restaurants-operations-v1-operation-operations.http.js';\n// @ts-ignore\nimport { transformSDKAddressToRESTAddress } from '@wix/sdk-runtime/transformations/address';\nimport { transformRESTAddressToSDKAddress } from '@wix/sdk-runtime/transformations/address';\nimport { transformPaths } from '@wix/sdk-runtime/transformations/transform-paths';\n\n/**\n * An operation is a service a restaurant offers that includes various aspects of its online ordering.\n * You can define default fulfillments, service fees, and scheduling requirements for each operation.\n */\nexport interface Operation extends OperationOnlineOrderingStatusOptionsOneOf {\n /** Options for online ordering status. Required when `onlineOrderingStatus` is `PAUSED_UNTIL`. */\n pausedUntilOptions?: OnlineOrderingPausedUntilOptions;\n /**\n * Operation ID.\n * @format GUID\n * @readonly\n */\n _id?: string | null;\n /**\n * Revision number. Increments by 1 each time the operation is updated.\n * To prevent conflicting changes,\n * the existing `revision` must be specified when updating an operation.\n * @readonly\n */\n revision?: string | null;\n /**\n * Date and time the operation was created.\n * @readonly\n */\n _createdDate?: Date | null;\n /**\n * Date and time the operation was updated.\n * @readonly\n */\n _updatedDate?: Date | null;\n /** Operation name. */\n name?: string | null;\n /**\n * Whether the operation is the default operation. <br />\n * Default: `false`.\n */\n default?: boolean | null;\n /**\n * IDs of the fulfillment methods ([SDK](https://dev.wix.com/docs/sdk/backend-modules/restaurants/wix-restaurants-new/fulfillment-methods/introduction) | [REST](https://dev.wix.com/docs/rest/api-reference/wix-restaurants/fulfillment-methods/introduction)) associated with the operation.\n * @format GUID\n * @maxSize 500\n */\n fulfillmentIds?: string[] | null;\n /** Online ordering status of the operation. <br /> */\n onlineOrderingStatus?: OnlineOrderingStatusTypeWithLiterals;\n /** Default fulfillment type of the operation. */\n defaultFulfillmentType?: FulfillmentTypeWithLiterals;\n /** Information about when an order can be placed for. */\n orderScheduling?: OrderScheduling;\n /**\n * ID of the operation group this operation belongs to.\n * @format GUID\n * @immutable\n */\n operationGroupId?: string | null;\n /**\n * ID of the business location ([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)) of this operation.\n * @format GUID\n * @immutable\n * @readonly\n */\n businessLocationId?: string | null;\n /** Extended fields. */\n extendedFields?: ExtendedFields;\n /** Tags ([SDK](https://dev.wix.com/docs/sdk/backend-modules/tags/tags/introduction) | [REST](https://dev.wix.com/docs/rest/business-management/tags/introduction)) used to classify and sort different types of operations. */\n tags?: Tags;\n}\n\n/** @oneof */\nexport interface OperationOnlineOrderingStatusOptionsOneOf {\n /** Options for online ordering status. Required when `onlineOrderingStatus` is `PAUSED_UNTIL`. */\n pausedUntilOptions?: OnlineOrderingPausedUntilOptions;\n}\n\n/** Information about when an order can be placed for. */\nexport interface Scheduling extends SchedulingSchedulingOptionsOneOf {\n /** Options for scheduling. Required when `type` is `ASAP`. */\n asapOptions?: AsapScheduling;\n /** Options for scheduling. Required when `type` is `PREORDER`. */\n preorderOptions?: PreorderScheduling;\n /**\n * Scheduling type. <br />\n * - When `ASAP`, `asapOptions` is a required field.\n * - When `PREORDER`, `preorderOptions` is a required field.\n */\n type?: SchedulingTypeWithLiterals;\n}\n\n/** @oneof */\nexport interface SchedulingSchedulingOptionsOneOf {\n /** Options for scheduling. Required when `type` is `ASAP`. */\n asapOptions?: AsapScheduling;\n /** Options for scheduling. Required when `type` is `PREORDER`. */\n preorderOptions?: PreorderScheduling;\n}\n\n/** Scheduling type enum. */\nexport enum SchedulingType {\n /** Unknown scheduling type. */\n UNKNOWN_SCHEDULING = 'UNKNOWN_SCHEDULING',\n /** Orders can be scheduled for the future and to be handled immediately. */\n ASAP = 'ASAP',\n /** Orders can be scheduled only for the future. */\n PREORDER = 'PREORDER',\n}\n\n/** @enumType */\nexport type SchedulingTypeWithLiterals =\n | SchedulingType\n | 'UNKNOWN_SCHEDULING'\n | 'ASAP'\n | 'PREORDER';\n\n/** Options for scheduling. Required if `type` is `ASAP`. */\nexport interface AsapScheduling\n extends AsapSchedulingPreparationTimeOneOf,\n AsapSchedulingAsapPreorderOneOf {\n /** Options for preparation time. Required when `type` is `MAX_TIME`. */\n maxOptions?: TimeDuration;\n /** Options for preparation time. Required when `type` is `TIME_RANGE`. */\n rangeOptions?: TimeDurationRange;\n /** Information for when orders must be made a set number of business days in advance. */\n businessDaysPreorderOptions?: BusinessDaysPreorder;\n /** How to define the time needed to prepare an order. */\n type?: PreparationTimeTypeWithLiterals;\n /**\n * Indication of whether it is possible to place an order for a later time on the same day.\n * @deprecated Indication of whether it is possible to place an order for a later time on the same day.\n * @replacedBy asap_preorder_type\n * @targetRemovalDate 2023-12-28\n */\n allowSameDayPreorder?: boolean | null;\n /** The type of preorder allowed for the ASAP scheduling. */\n asapPreorderType?: AsapPreorderTypeWithLiterals;\n}\n\n/** @oneof */\nexport interface AsapSchedulingPreparationTimeOneOf {\n /** Options for preparation time. Required when `type` is `MAX_TIME`. */\n maxOptions?: TimeDuration;\n /** Options for preparation time. Required when `type` is `TIME_RANGE`. */\n rangeOptions?: TimeDurationRange;\n}\n\n/** @oneof */\nexport interface AsapSchedulingAsapPreorderOneOf {\n /** Information for when orders must be made a set number of business days in advance. */\n businessDaysPreorderOptions?: BusinessDaysPreorder;\n}\n\n/** Preparation time type enum. */\nexport enum PreparationTimeType {\n /** Unknown preparation time type. */\n UNKNOWN_PREPARATION_TIME = 'UNKNOWN_PREPARATION_TIME',\n /** Preparation time that is bounded by a maximum time. */\n MAX = 'MAX',\n /** Preparation time that is bounded by a range of times. */\n RANGE = 'RANGE',\n}\n\n/** @enumType */\nexport type PreparationTimeTypeWithLiterals =\n | PreparationTimeType\n | 'UNKNOWN_PREPARATION_TIME'\n | 'MAX'\n | 'RANGE';\n\n/** Time duration. */\nexport interface TimeDuration {\n /** Unit of time for the duration. */\n timeUnit?: TimeUnitWithLiterals;\n /** Duration value. Unit of time specified in `timeUnit`. */\n duration?: number | null;\n}\n\n/** Time unit enum. */\nexport enum TimeUnit {\n /** Unknown time unit. */\n UNKNOWN_TIME_UNIT = 'UNKNOWN_TIME_UNIT',\n /** Minutes time unit. */\n MINUTES = 'MINUTES',\n /** Hours time unit. */\n HOURS = 'HOURS',\n /** Days time unit. */\n DAYS = 'DAYS',\n}\n\n/** @enumType */\nexport type TimeUnitWithLiterals =\n | TimeUnit\n | 'UNKNOWN_TIME_UNIT'\n | 'MINUTES'\n | 'HOURS'\n | 'DAYS';\n\n/** Time range for preparation. */\nexport interface TimeDurationRange {\n /** Time unit for the time range. */\n timeUnit?: TimeUnitWithLiterals;\n /**\n * Minimum duration value. Unit of time specified in `timeUnit`.\n * @min 1\n */\n minDuration?: number | null;\n /**\n * Maximum duration value. Unit of time specified in `timeUnit`.\n * @min 1\n */\n maxDuration?: number | null;\n}\n\n/** Asap preorder type enum. */\nexport enum AsapPreorderType {\n /** Unknown ASAP preorder type. */\n UNKNOWN_ASAP_PREORDER = 'UNKNOWN_ASAP_PREORDER',\n /** Doesn't allow preorder. */\n NO_PREORDER = 'NO_PREORDER',\n /** Allows preorder for a maximum specified number of business days in advance. */\n BUSINESS_DAYS_PREORDER = 'BUSINESS_DAYS_PREORDER',\n}\n\n/** @enumType */\nexport type AsapPreorderTypeWithLiterals =\n | AsapPreorderType\n | 'UNKNOWN_ASAP_PREORDER'\n | 'NO_PREORDER'\n | 'BUSINESS_DAYS_PREORDER';\n\n/** Information for when orders must be made a set number of business days in advance. */\nexport interface BusinessDaysPreorder {\n /**\n * Maximum number of business days an order can be scheduled in advance.\n *\n * When `0`, an order can be scheduled only until the end of the current business day.\n * For any other value, the order can be scheduled for the end of the business day in that many days.\n * For example, `5` means the order can be scheduled for any time before the end of the 5th business day from today (where today is \"day 0\").\n */\n businessDays?: number | null;\n}\n\n/** Order pacing configuration for ASAP scheduling */\nexport interface AsapOrderPacing\n extends AsapOrderPacingPacingAvailabilityOneOf {\n /** Custom availability pattern for when pacing should be active */\n scheduleOptions?: WeeklyActivePeriods;\n /** Whether order pacing is enabled for ASAP orders */\n enabled?: boolean | null;\n /**\n * Maximum number of orders allowed within the pacing window\n * @min 1\n * @max 1000\n */\n maxOrdersInWindow?: number | null;\n /** Type of pacing window duration (currently only 15-minute supported) */\n windowType?: AsapPacingWindowTypeWithLiterals;\n /** When the pacing should be active */\n activationType?: ActivationTypeWithLiterals;\n}\n\n/** @oneof */\nexport interface AsapOrderPacingPacingAvailabilityOneOf {\n /** Custom availability pattern for when pacing should be active */\n scheduleOptions?: WeeklyActivePeriods;\n}\n\n/** ASAP pacing duration type enum */\nexport enum AsapPacingWindowType {\n /** Unknown ASAP pacing duration type */\n UNKNOWN_ASAP_PACING_DURATION = 'UNKNOWN_ASAP_PACING_DURATION',\n /** Fixed 15-minute window */\n FIXED_15_MINUTE = 'FIXED_15_MINUTE',\n}\n\n/** @enumType */\nexport type AsapPacingWindowTypeWithLiterals =\n | AsapPacingWindowType\n | 'UNKNOWN_ASAP_PACING_DURATION'\n | 'FIXED_15_MINUTE';\n\n/** Defines when pacing should be active */\nexport enum ActivationType {\n /** Unknown pacing schedule type */\n UNKNOWN_SCHEDULE = 'UNKNOWN_SCHEDULE',\n /** Pacing is active 24/7 */\n ALWAYS_ACTIVE = 'ALWAYS_ACTIVE',\n /** Pacing follows custom availability pattern */\n SCHEDULE = 'SCHEDULE',\n}\n\n/** @enumType */\nexport type ActivationTypeWithLiterals =\n | ActivationType\n | 'UNKNOWN_SCHEDULE'\n | 'ALWAYS_ACTIVE'\n | 'SCHEDULE';\n\nexport interface WeeklyActivePeriods {\n /**\n * A list of active periods for the days of the week.\n * @maxSize 7\n */\n activePeriods?: ActivePeriod[];\n}\n\nexport interface ActivePeriod {\n /** The day of week this active period relates to. */\n dayOfWeek?: EntitiesDayOfWeekWithLiterals;\n /**\n * A list of active time ranges.\n * @maxSize 50\n */\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\n/** Information about preorders. */\nexport interface PreorderScheduling {\n method?: PreorderMethod;\n /**\n * Configuration of the fulfillment times. <br />\n * Currently, only `TIME_WINDOWS` is supported.\n */\n fulfillmentTimesDisplay?: FulfillmentTimesDisplayConfig;\n}\n\n/** Method for `PREORDER` scheduling type. */\nexport interface PreorderMethod extends PreorderMethodMethodOptionsOneOf {\n /** Options for the method. Required when `type` is `TIME_BOUNDED`. */\n timeBoundedOptions?: TimeBounded;\n /** Options for the method. Required when `type` is `WEEKLY_SCHEDULE`. */\n weeklyScheduleOptions?: WeeklySchedule;\n /**\n * Type of time frame for how long in advance preorders can be made. <br />\n * - When `TIME_BOUNDED`, `timeBoundedOptions` is a required field.\n * - When `WEEKLY_SCHEDULE`, `weeklyScheduleOptions` is a required field.\n */\n type?: MethodTypeWithLiterals;\n}\n\n/** @oneof */\nexport interface PreorderMethodMethodOptionsOneOf {\n /** Options for the method. Required when `type` is `TIME_BOUNDED`. */\n timeBoundedOptions?: TimeBounded;\n /** Options for the method. Required when `type` is `WEEKLY_SCHEDULE`. */\n weeklyScheduleOptions?: WeeklySchedule;\n}\n\n/** Day of the week and time of the day. */\nexport interface DayAndTime {\n /** Day of the week. */\n dayOfWeek?: EntitiesDayOfWeekWithLiterals;\n /** Time of the day. */\n timeOfDay?: TimeOfDay;\n}\n\n/** Preorder method type enum. */\nexport enum MethodType {\n /** Unknown preorder method type. */\n UNKNOWN_TYPE = 'UNKNOWN_TYPE',\n /** Preorder time has a minimum and a maximum. */\n TIME_BOUNDED = 'TIME_BOUNDED',\n /** Preorders have a weekly schedule with a weekly cutoff time. */\n WEEKLY_SCHEDULE = 'WEEKLY_SCHEDULE',\n}\n\n/** @enumType */\nexport type MethodTypeWithLiterals =\n | MethodType\n | 'UNKNOWN_TYPE'\n | 'TIME_BOUNDED'\n | 'WEEKLY_SCHEDULE';\n\n/** Information about the time range when preorders are time bounded. */\nexport interface TimeBounded {\n /** Minimum time required to schedule the order. */\n minTimeInAdvance?: TimeDuration;\n /** Maximum time allowed to schedule the order. */\n maxTimeInAdvance?: TimeDuration;\n}\n\n/** Options for the method. Required when `type` is `WEEKLY_SCHEDULE`. */\nexport interface WeeklySchedule {\n /**\n * The weekly schedule cutoff time. <br />\n * Orders placed before the cutoff time are scheduled for the current week. <br />\n * Orders placed after the cutoff time are scheduled for the next week.\n */\n cutOffTime?: DayAndTime;\n}\n\n/** Way by which fulfillment times should be displayed. */\nexport interface FulfillmentTimesDisplayConfig\n extends FulfillmentTimesDisplayConfigFulfillmentTimesDisplayOptionsOneOf {\n /** Options for fulfillment time. Required when `fulfillmentTimesType` is `TIME_WINDOWS`. */\n timeWindowsOptions?: TimeDuration;\n /**\n * Type of the fulfillment times. <br />\n * When `TIME_WINDOWS`, `timeWindowsOptions` is a required field.\n */\n type?: FulfillmentTimesTypeWithLiterals;\n}\n\n/** @oneof */\nexport interface FulfillmentTimesDisplayConfigFulfillmentTimesDisplayOptionsOneOf {\n /** Options for fulfillment time. Required when `fulfillmentTimesType` is `TIME_WINDOWS`. */\n timeWindowsOptions?: TimeDuration;\n}\n\n/** The fulfillment times type enum. */\nexport enum FulfillmentTimesType {\n /** Unknown fulfillment times type. */\n UNKNOWN_TYPE = 'UNKNOWN_TYPE',\n /** Display fulfillment times as time windows. */\n TIME_WINDOWS = 'TIME_WINDOWS',\n}\n\n/** @enumType */\nexport type FulfillmentTimesTypeWithLiterals =\n | FulfillmentTimesType\n | 'UNKNOWN_TYPE'\n | 'TIME_WINDOWS';\n\n/** Order pacing configuration for preorder scheduling */\nexport interface PreOrderPacing extends PreOrderPacingPacingAvailabilityOneOf {\n /** Custom availability pattern for when pacing should be active */\n scheduleOptions?: WeeklyActiveDays;\n /** Whether order pacing is enabled for preorder */\n enabled?: boolean | null;\n /**\n * Maximum number of orders allowed within the pacing window\n * @min 1\n * @max 1000\n */\n maxOrdersInWindow?: number | null;\n /** Type of pacing window (currently only daily supported) */\n windowType?: PreorderPacingWindowTypeWithLiterals;\n /** When the pacing should be active */\n activationType?: ActivationTypeWithLiterals;\n}\n\n/** @oneof */\nexport interface PreOrderPacingPacingAvailabilityOneOf {\n /** Custom availability pattern for when pacing should be active */\n scheduleOptions?: WeeklyActiveDays;\n}\n\n/** Preorder pacing window type enum */\nexport enum PreorderPacingWindowType {\n /** Unknown preorder pacing window type */\n UNKNOWN_PREORDER_PACING_WINDOW = 'UNKNOWN_PREORDER_PACING_WINDOW',\n /** Daily pacing window */\n DAILY = 'DAILY',\n}\n\n/** @enumType */\nexport type PreorderPacingWindowTypeWithLiterals =\n | PreorderPacingWindowType\n | 'UNKNOWN_PREORDER_PACING_WINDOW'\n | 'DAILY';\n\nexport interface WeeklyActiveDays {\n /**\n * A list of active days of the week.\n * @maxSize 7\n */\n activeDays?: EntitiesDayOfWeekWithLiterals[];\n}\n\n/** Online ordering status enum. */\nexport enum OnlineOrderingStatusType {\n /** Online ordering status is not defined. */\n UNDEFINED_ONLINE_ORDERING_STATUS = 'UNDEFINED_ONLINE_ORDERING_STATUS',\n /** Operation currently accepts online orders. */\n ENABLED = 'ENABLED',\n /** Operation currently does not accept online orders. */\n DISABLED = 'DISABLED',\n /** Operation currently does not accept online orders, but will accept online orders from a specified time and date. When applied, `pausedUntilOptions` is a required field. */\n PAUSED_UNTIL = 'PAUSED_UNTIL',\n}\n\n/** @enumType */\nexport type OnlineOrderingStatusTypeWithLiterals =\n | OnlineOrderingStatusType\n | 'UNDEFINED_ONLINE_ORDERING_STATUS'\n | 'ENABLED'\n | 'DISABLED'\n | 'PAUSED_UNTIL';\n\n/** Options for online ordering status. Required when `onlineOrderingStatus` is `PAUSED_UNTIL`. */\nexport interface OnlineOrderingPausedUntilOptions {\n /**\n * Date and time until which online ordering is paused. <br />\n *\n * Before the specified time, behavior is the same as when `onlineOrderingStatus` is `DISABLED`. <br />\n *\n * After the specified time, behavior is the same as when `onlineOrderingStatus` is `ENABLED`. <br />\n *\n * Passing the time does not trigger any changes to value of any properties.\n */\n time?: Date | null;\n}\n\n/** Fulfillment type enum. */\nexport enum FulfillmentType {\n /** Undefined fulfillment type. */\n UNDEFINED_FULFILLMENT_TYPE = 'UNDEFINED_FULFILLMENT_TYPE',\n /** Pickup fulfillment. The customer picks up the order from the restaurant. */\n PICKUP = 'PICKUP',\n /** Delivery fulfillment. The restaurant, or a representative, delivers the order to the customer. */\n DELIVERY = 'DELIVERY',\n}\n\n/** @enumType */\nexport type FulfillmentTypeWithLiterals =\n | FulfillmentType\n | 'UNDEFINED_FULFILLMENT_TYPE'\n | 'PICKUP'\n | 'DELIVERY';\n\n/** Information about when an order can be placed for. */\nexport interface OrderScheduling\n extends OrderSchedulingOrderSchedulingOptionsOneOf {\n /** Options for scheduling. Required if `type` is `ASAP`. */\n asapOptions?: AsapOrderScheduling;\n /** Options for scheduling. Required if `type` is `PREORDER`. */\n preorderOptions?: PreorderScheduling;\n /**\n * Scheduling type. <br />\n * - When `ASAP`, `asapOptions` is a required field.\n * - When `PREORDER`, `preorderOptions` is a required field.\n */\n type?: SchedulingTypeWithLiterals;\n}\n\n/** @oneof */\nexport interface OrderSchedulingOrderSchedulingOptionsOneOf {\n /** Options for scheduling. Required if `type` is `ASAP`. */\n asapOptions?: AsapOrderScheduling;\n /** Options for scheduling. Required if `type` is `PREORDER`. */\n preorderOptions?: PreorderScheduling;\n}\n\nexport interface AsapOrderScheduling\n extends AsapOrderSchedulingAsapFutureHandlingOptionsOneOf {\n /** Options for future handling. Required when `asapFutureHandlingType` is `BUSINESS_DAYS_AHEAD_HANDLING`. */\n businessDaysAheadHandlingOptions?: BusinessDaysAheadHandling;\n /**\n * Amount of time needed to prepare the order. <br />\n * - When `MAX_TIME`, `maxTimeOptions` is a required field.\n * - When `MAX_RANGE`, `timeRangeOptions` is a required field.\n */\n preparationTime?: PreparationTime;\n /**\n * Defines if and how non-immediate orders should be handled. <br />\n * When this value is `BUSINESS_DAYS_AHEAD_HANDLING`, `businessDaysAheadHandlingOptions` is a required field.\n */\n asapFutureHandlingType?: AsapFutureHandlingTypeWithLiterals;\n}\n\n/** @oneof */\nexport interface AsapOrderSchedulingAsapFutureHandlingOptionsOneOf {\n /** Options for future handling. Required when `asapFutureHandlingType` is `BUSINESS_DAYS_AHEAD_HANDLING`. */\n businessDaysAheadHandlingOptions?: BusinessDaysAheadHandling;\n}\n\nexport interface PreparationTime extends PreparationTimeTimeSpecificationOneOf {\n /** Options for preparation time. Required when `type` is `MAX_TIME`. */\n maxTimeOptions?: TimeDuration;\n /** Options for preparation time. Required when `type` is `TIME_RANGE`. */\n timeRangeOptions?: TimeDurationRange;\n /** Preparation time type. */\n type?: PreparationTimePreparationTimeTypeWithLiterals;\n}\n\n/** @oneof */\nexport interface PreparationTimeTimeSpecificationOneOf {\n /** Options for preparation time. Required when `type` is `MAX_TIME`. */\n maxTimeOptions?: TimeDuration;\n /** Options for preparation time. Required when `type` is `TIME_RANGE`. */\n timeRangeOptions?: TimeDurationRange;\n}\n\n/** Preparation time type enum. */\nexport enum PreparationTimePreparationTimeType {\n UNKNOWN_PREPARATION_TIME = 'UNKNOWN_PREPARATION_TIME',\n MAX_TIME = 'MAX_TIME',\n TIME_RANGE = 'TIME_RANGE',\n}\n\n/** @enumType */\nexport type PreparationTimePreparationTimeTypeWithLiterals =\n | PreparationTimePreparationTimeType\n | 'UNKNOWN_PREPARATION_TIME'\n | 'MAX_TIME'\n | 'TIME_RANGE';\n\nexport enum AsapFutureHandlingType {\n /** Unknown asap future handling type. */\n UNKNOWN_ASAP_FUTURE_HANDLING = 'UNKNOWN_ASAP_FUTURE_HANDLING',\n /** No future handling. */\n NO_FUTURE_HANDLING = 'NO_FUTURE_HANDLING',\n /** Allows future orders for up to a specified number of business days ahead. */\n BUSINESS_DAYS_AHEAD_HANDLING = 'BUSINESS_DAYS_AHEAD_HANDLING',\n}\n\n/** @enumType */\nexport type AsapFutureHandlingTypeWithLiterals =\n | AsapFutureHandlingType\n | 'UNKNOWN_ASAP_FUTURE_HANDLING'\n | 'NO_FUTURE_HANDLING'\n | 'BUSINESS_DAYS_AHEAD_HANDLING';\n\nexport interface BusinessDaysAheadHandling {\n /**\n * Number of business days ahead for which orders can be scheduled. <br />\n * Setting the `daysCount` to 0 means that orders can be scheduled until the end of the current business day.\n */\n daysCount?: number | null;\n}\n\nexport interface BusinessLocationDetails {\n /**\n * Location name.\n * @maxLength 150\n * @readonly\n */\n name?: string | null;\n /**\n * Whether the location is archived.\n *\n * Archived locations are hidden and ignored on restaurants site pages, and marked as archived in the dashboard.\n * @readonly\n */\n archived?: boolean | null;\n /**\n * Whether this location is the default location for the business.\n * @readonly\n */\n default?: boolean | null;\n /**\n * Business Location Address.\n * @readonly\n */\n address?: V1Address;\n /**\n * Time zone in [Time Zone Database](https://www.iana.org/time-zones) format.\n * @readonly\n * @maxLength 50\n */\n timeZone?: string | null;\n}\n\nexport interface V1Address {\n /**\n * 2-letter country code in an [ISO-3166 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) format.\n * @format COUNTRY\n */\n country?: string | null;\n /**\n * Code for a subdivision (such as state, prefecture, or province) in [ISO 3166-2](https://en.wikipedia.org/wiki/ISO_3166-2) format.\n * @maxLength 100\n */\n subdivision?: string | null;\n /**\n * City name.\n * @maxLength 100\n */\n city?: string | null;\n /**\n * Postal or zip code.\n * @maxLength 20\n */\n postalCode?: string | null;\n /** Street address. Includes street name, number, and apartment number in separate fields. */\n streetAddress?: V1StreetAddress;\n /**\n * Full address of the location.\n * @maxLength 1000\n */\n formatted?: string | null;\n /** Geographic coordinates of location. */\n location?: V1AddressLocation;\n}\n\n/** Street address. Includes street name, number, and apartment number in separate fields. */\nexport interface V1StreetAddress {\n /**\n * Street number.\n * @maxLength 20\n */\n number?: string;\n /**\n * Street name.\n * @maxLength 100\n */\n name?: string;\n /**\n * Apartment number.\n * @maxLength 20\n */\n apt?: string;\n}\n\n/** Address Geolocation */\nexport interface V1AddressLocation {\n /** Latitude of the location. Must be between -90 and 90. */\n latitude?: number | null;\n /** Longitude of the location. Must be between -180 and 180. */\n longitude?: number | 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\n/**\n * Common object for tags.\n * Should be use as in this example:\n * message Foo {\n * string id = 1;\n * ...\n * Tags tags = 5\n * }\n * example of taggable entity\n * {\n * id: \"123\"\n * tags: {\n * tags: {\n * tag_ids:[\"11\",\"22\"]\n * },\n * private_tags: {\n * tag_ids: [\"33\", \"44\"]\n * }\n * }\n * }\n */\nexport interface Tags {\n /** Tags that require an additional permission in order to access them, normally not given to site members or visitors. */\n privateTags?: TagList;\n /** Tags that are exposed to anyone who has access to the labeled entity itself, including site members and visitors. */\n tags?: TagList;\n}\n\nexport interface TagList {\n /**\n * List of tag IDs\n * @maxSize 100\n * @maxLength 5\n */\n tagIds?: string[];\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 /**\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\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}\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 DeliveryProfileConfiguredForOperation {\n /** Operation */\n operation?: Operation;\n}\n\nexport interface OperationsDataCloningCompleted {}\n\nexport interface CreateOperationRequest {\n /** Operation to create. */\n operation: Operation;\n}\n\nexport interface CreateOperationResponse {\n /** Created operation. */\n operation?: Operation;\n}\n\nexport interface GetOperationRequest {\n /**\n * ID of the operation to retrieve.\n * @format GUID\n */\n operationId: string;\n}\n\nexport interface GetOperationResponse {\n /** Retrieved operation. */\n operation?: Operation;\n}\n\nexport interface UpdateOperationRequest {\n /** Operation to update. */\n operation: Operation;\n}\n\nexport interface UpdateOperationResponse {\n /** Updated operation. */\n operation?: Operation;\n}\n\nexport interface DeleteOperationRequest {\n /**\n * ID of the operation to delete.\n * @format GUID\n */\n operationId: string;\n}\n\nexport interface DeleteOperationResponse {}\n\nexport interface QueryOperationRequest {\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.\n * See [API Query Language](https://dev.wix.com/api/rest/getting-started/api-query-language)\n * for more information.\n *\n * For a detailed list of supported filters, see\n * [Supported Filters](https://dev.wix.com/docs/rest/api-reference/wix-restaurants/operations/operations/supported-filters-and-sorting).\n */\n filter?: Record<string, any> | null;\n /**\n * Sort object.\n * @maxSize 4\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 * Supported properties:\n * - `id`\n * - `createdDate`\n * - `updatedDate`\n * - `name`\n * @maxLength 64\n */\n fieldName?: string;\n /**\n * Sort order. Use `ASC` for ascending order or `DESC` for descending order. <br />\n *\n * Default: `ASC`\n */\n order?: SortOrderWithLiterals;\n}\n\nexport enum SortOrder {\n ASC = 'ASC',\n DESC = 'DESC',\n}\n\n/** @enumType */\nexport type SortOrderWithLiterals = SortOrder | 'ASC' | 'DESC';\n\nexport interface CursorPaging {\n /**\n * Maximum number of items to return in the results.\n * @max 100\n */\n limit?: number | null;\n /**\n * Pointer to the next or previous page in the list of results.\n *\n * Pass the relevant cursor token from the `pagingMetadata` object in the previous call's response.\n * Not relevant for the first request.\n * @maxLength 16000\n */\n cursor?: string | null;\n}\n\nexport interface QueryOperationResponse {\n /** Retrieved operations. */\n operations?: Operation[];\n /** 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 /** Cursor strings that point to the next page, previous page, or both. */\n cursors?: Cursors;\n /**\n * Whether there are more pages to retrieve following the current page.\n *\n * + `true`: Another page of results can be retrieved.\n * + `false`: This is the last page.\n */\n hasNext?: boolean | null;\n}\n\nexport interface Cursors {\n /**\n * Cursor string pointing to the next page in the list of results.\n * @maxLength 16000\n */\n next?: string | null;\n /**\n * Cursor pointing to the previous page in the list of results.\n * @maxLength 16000\n */\n prev?: string | null;\n}\n\nexport interface ListOperationsRequest {}\n\nexport interface ListOperationsResponse {\n /** Retrieved operations. */\n operations?: Operation[];\n}\n\nexport interface ListOperationIdsRequest {\n /**\n * metasite id\n * @format GUID\n */\n metasiteId?: string;\n}\n\nexport interface ListOperationIdsResponse {\n /**\n * List of operation ids\n * @format GUID\n */\n operationIds?: string[];\n}\n\nexport interface ListOperationsInternalRequest {\n /**\n * metasite id\n * @format GUID\n */\n metasiteId?: string;\n}\n\nexport interface ListOperationsInternalResponse {\n /** List of operations */\n operations?: Operation[];\n}\n\nexport interface ListAvailableFulfillmentOptionsRequest {\n /**\n * Operation ID. Returned fulfillment options will belong to this operation.\n * @format GUID\n */\n operationId: string;\n /**\n * Delivery address. Optional.\n *\n * If provided, the returned delivery fulfillment options will be able to deliver to this address.\n */\n deliveryAddress?: CommonAddress;\n}\n\n/** Physical address */\nexport interface CommonAddress extends CommonAddressStreetOneOf {\n /** Street name and number. */\n streetAddress?: StreetAddress;\n /** Main address line, usually street and number as free text. */\n addressLine1?: string | null;\n /**\n * Country code.\n * @format COUNTRY\n */\n country?: string | null;\n /** Subdivision. Usually a state, region, prefecture, or province code, according to [ISO 3166-2](https://en.wikipedia.org/wiki/ISO_3166-2). */\n subdivision?: string | null;\n /** City name. */\n city?: string | null;\n /** Zip/postal code. */\n postalCode?: string | null;\n /** Free text providing more detailed address info. Usually contains Apt, Suite, and Floor. */\n addressLine2?: string | null;\n}\n\n/** @oneof */\nexport interface CommonAddressStreetOneOf {\n /** Street name and number. */\n streetAddress?: StreetAddress;\n /** Main address line, usually street and number as free text. */\n addressLine?: string | null;\n}\n\nexport interface StreetAddress {\n /** Street number. */\n number?: string;\n /** Street name. */\n name?: string;\n}\n\nexport interface AddressLocation {\n /** Address latitude. */\n latitude?: number | null;\n /** Address longitude. */\n longitude?: number | null;\n}\n\nexport interface Subdivision {\n /** Short subdivision code. */\n code?: string;\n /** Subdivision full name. */\n name?: string;\n}\n\nexport enum SubdivisionType {\n UNKNOWN_SUBDIVISION_TYPE = 'UNKNOWN_SUBDIVISION_TYPE',\n /** State */\n ADMINISTRATIVE_AREA_LEVEL_1 = 'ADMINISTRATIVE_AREA_LEVEL_1',\n /** County */\n ADMINISTRATIVE_AREA_LEVEL_2 = 'ADMINISTRATIVE_AREA_LEVEL_2',\n /** City/town */\n ADMINISTRATIVE_AREA_LEVEL_3 = 'ADMINISTRATIVE_AREA_LEVEL_3',\n /** Neighborhood/quarter */\n ADMINISTRATIVE_AREA_LEVEL_4 = 'ADMINISTRATIVE_AREA_LEVEL_4',\n /** Street/block */\n ADMINISTRATIVE_AREA_LEVEL_5 = 'ADMINISTRATIVE_AREA_LEVEL_5',\n /** ADMINISTRATIVE_AREA_LEVEL_0. Indicates the national political entity, and is typically the highest order type returned by the Geocoder. */\n COUNTRY = 'COUNTRY',\n}\n\n/** @enumType */\nexport type SubdivisionTypeWithLiterals =\n | SubdivisionType\n | 'UNKNOWN_SUBDIVISION_TYPE'\n | 'ADMINISTRATIVE_AREA_LEVEL_1'\n | 'ADMINISTRATIVE_AREA_LEVEL_2'\n | 'ADMINISTRATIVE_AREA_LEVEL_3'\n | 'ADMINISTRATIVE_AREA_LEVEL_4'\n | 'ADMINISTRATIVE_AREA_LEVEL_5'\n | 'COUNTRY';\n\nexport interface ListAvailableFulfillmentOptionsResponse {\n /** Whether pickup fulfillment method is configured for the requested operation. */\n pickupConfigured?: boolean;\n /** Whether delivery fulfillment method is configured for the requested operation. */\n deliveryConfigured?: boolean;\n /** List of the available fulfillment options. */\n fulfillmentOptions?: FulfillmentOption[];\n /** Whether availability exceptions block the fulfillment options. */\n blockedByAvailabilityExceptions?: boolean | null;\n}\n\n/** Fulfillment method that is currently available to fulfill orders, given its availability and the operation's scheduling configurations. */\nexport interface FulfillmentOption\n extends FulfillmentOptionFulfillmentTimeOptionsOneOf,\n FulfillmentOptionFulfillmentTimesDisplayOptionsOneOf,\n FulfillmentOptionFulfillmentTypeOptionsOneOf {\n /** Fulfillment time has a maximum time. */\n maxTimeOptions?: number;\n /** Fulfillment time is limited by a range. */\n durationRangeOptions?: DurationRange;\n /** Options for fulfillment time. Required when `type` is `TIME_WINDOWS`. */\n timeWindowsOptions?: TimeWindowDisplayConfig;\n /** Information about pickup fulfillment types. */\n pickupOptions?: PickupDetails;\n /** Information about delivery fulfillment types. */\n deliveryOptions?: DeliveryDetails;\n /**\n * Fulfillment method ID.\n * @format GUID\n */\n _id?: string | null;\n /** Fulfillment option type. */\n type?: FulfillmentTypeWithLiterals;\n /**\n * Minimum order price to qualify for the fulfillment option.\n * @decimalValue options { gte:0.00, maxScale:3 }\n */\n minOrderPrice?: string | null;\n /**\n * Fee for using the fulfillment option.\n * @decimalValue options { gte:0.00, maxScale:3 }\n */\n fee?: string | null;\n /** Availability of the fulfillment option. */\n availability?: FulfillmentOptionAvailability;\n /**\n * Fulfillment time type.\n * Relevant only to ASAP operations.\n */\n fulfillmentTimeType?: FulfillmentTimeTypeWithLiterals;\n /** Fulfillment times display type. Relevant to preorder operations. */\n fulfillmentTimesDisplayType?: FulfillmentTimesDisplayTypeWithLiterals;\n /**\n * Minimum order price for free fulfillment.\n * If order price exceeds this amount, the given `fee` is waived.\n * @decimalValue options { gte:0.00, maxScale:3 }\n */\n freeFulfillmentPriceThreshold?: string | null;\n /**\n * Instructions for the fulfillment.\n * @maxLength 250\n */\n instructions?: string | null;\n /** @format GUID */\n businessLocationId?: string | null;\n}\n\n/** @oneof */\nexport interface FulfillmentOptionFulfillmentTimeOptionsOneOf {\n /** Fulfillment time has a maximum time. */\n maxTimeOptions?: number;\n /** Fulfillment time is limited by a range. */\n durationRangeOptions?: DurationRange;\n}\n\n/** @oneof */\nexport interface FulfillmentOptionFulfillmentTimesDisplayOptionsOneOf {\n /** Options for fulfillment time. Required when `type` is `TIME_WINDOWS`. */\n timeWindowsOptions?: TimeWindowDisplayConfig;\n}\n\n/** @oneof */\nexport interface FulfillmentOptionFulfillmentTypeOptionsOneOf {\n /** Information about pickup fulfillment types. */\n pickupOptions?: PickupDetails;\n /** Information about delivery fulfillment types. */\n deliveryOptions?: DeliveryDetails;\n}\n\n/** Availability of the fulfillment option. */\nexport interface FulfillmentOptionAvailability {\n /** Date and time at which the fulfillment option's availability starts. */\n startTime?: Date | null;\n /** Date and time at which the fulfillment option's availability ends. */\n endTime?: Date | null;\n /**\n * List of available times for the days of the week.\n * All the specified times must be within the range between `startTime` and `endTime`.\n */\n availableTimes?: DayOfWeekAvailability[];\n /** List of availability exceptions that override the availability defined in `availableTimes`. */\n exceptions?: AvailabilityException[];\n /** Timezone for which the available times are given. */\n timeZone?: string | null;\n /** Whether it's possible to submit an order for as soon as possible handling. */\n asapHandlingAvailable?: boolean;\n /** Whether it's possible to submit an order for future handling. */\n futureHandlingAvailable?: boolean | null;\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 interface AvailabilityException {\n /** The start time of the availability exception. */\n startTime?: Date | null;\n /** The end time of the availability exception. */\n endTime?: Date | null;\n /** An indication whether the exception makes the [`start_time`, `end_time`] range available. */\n available?: boolean;\n /** The reason for the exception. */\n reason?: string | null;\n}\n\n/** Fulfillment time type enum. */\nexport enum FulfillmentTimeType {\n /** Undefined fulfillment time type. */\n UNDEFINED_FULFILLMENT_TIME = 'UNDEFINED_FULFILLMENT_TIME',\n /** Fulfillment time has a maximum. */\n MAX_TIME = 'MAX_TIME',\n /** Fulfillment time has a minimum and a maximum. */\n DURATION_RANGE = 'DURATION_RANGE',\n}\n\n/** @enumType */\nexport type FulfillmentTimeTypeWithLiterals =\n | FulfillmentTimeType\n | 'UNDEFINED_FULFILLMENT_TIME'\n | 'MAX_TIME'\n | 'DURATION_RANGE';\n\n/** Duration range. */\nexport interface DurationRange {\n /** Minimum duration in minutes. */\n minDuration?: number;\n /** Maximum duration in minutes. */\n maxDuration?: number;\n}\n\n/** Fulfillment times display type enum. */\nexport enum FulfillmentTimesDisplayType {\n /** Undefined fulfillment times display type. */\n UNDEFINED_FULFILLMENT_TIMES_DISPLAY = 'UNDEFINED_FULFILLMENT_TIMES_DISPLAY',\n /** Fulfillment times are displayed as a list of time windows. */\n TIME_WINDOWS = 'TIME_WINDOWS',\n}\n\n/** @enumType */\nexport type FulfillmentTimesDisplayTypeWithLiterals =\n | FulfillmentTimesDisplayType\n | 'UNDEFINED_FULFILLMENT_TIMES_DISPLAY'\n | 'TIME_WINDOWS';\n\n/** Time window. */\nexport interface TimeWindowDisplayConfig {\n /** Time window duration in minutes. */\n durationInMinutes?: number;\n}\n\n/** Information about pickup fulfillment types. */\nexport interface PickupDetails {\n /** Pickup address. This is the restaurant's address. */\n address?: CommonAddress;\n}\n\n/** Information about delivery fulfillment types. */\nexport interface DeliveryDetails {\n /**\n * Delivery provider app id.\n * @format GUID\n */\n deliveryProviderAppId?: string | null;\n /**\n * Pickup instructions for couriers.\n * @maxLength 250\n */\n courierPickupInstructions?: string | null;\n /** how much time it takes to deliver the order in minutes. */\n deliveryTimeInMinutes?: number | null;\n}\n\nexport interface ListFirstAvailableTimeSlotForFulfillmentTypesRequest {\n /**\n * Operation ID.\n * Returned fulfillment options will belong to this operation.\n * @format GUID\n */\n operationId: string;\n /**\n * Delivery address. Optional.\n *\n * If provided, the returned delivery fulfillment options will be able to deliver to this address.\n */\n deliveryAddress?: CommonAddress;\n}\n\nexport interface ListFirstAvailableTimeSlotForFulfillmentTypesResponse {\n /**\n * List of available time slots for each fulfillment type.\n *\n * Each time slot is the first available time slot for the given fulfillment type.\n * A delivery fulfillment type is returned only if the delivery address is provided.\n */\n timeSlots?: FulfillmentTimeSlot[];\n}\n\nexport interface FulfillmentTimeSlot {\n /** Start time and date of the time slot. */\n startTime?: Date | null;\n /** End time and date of the time slot. */\n endTime?: Date | null;\n /** Type of the fulfillment. */\n fulfilmentType?: FulfillmentTypeWithLiterals;\n /** Whether the time slot starts now. */\n startsNow?: boolean;\n /**\n * Details for each fulfillment option of the time slot.\n * @maxSize 500\n */\n fulfillmentDetails?: FulfillmentDetails[];\n /** Address of the fulfillment. */\n fulfillmentAddress?: FulfillmentAddress;\n}\n\nexport enum TimeSlotStatus {\n /** The time slot is available for ordering. */\n AVAILABLE = 'AVAILABLE',\n /** The time slot is blocked by pacing. applicable for Preorder */\n BLOCKED = 'BLOCKED',\n}\n\n/** @enumType */\nexport type TimeSlotStatusWithLiterals =\n | TimeSlotStatus\n | 'AVAILABLE'\n | 'BLOCKED';\n\n/** Details about the fulfillment option. */\nexport interface FulfillmentDetails\n extends FulfillmentDetailsFulfillmentTimeOptionsOneOf {\n /** Fulfillment time has a maximum. */\n maxTimeOptions?: number;\n /** Fulfillment time has a minimum and a maximum. */\n durationRangeOptions?: DurationRange;\n /**\n * Fee for using this fulfillment.\n * @decimalValue options { gte:0.00, maxScale:3 }\n */\n fee?: string | null;\n /**\n * Minimum order price to qualify for using this fulfillment.\n * @decimalValue options { gte:0.00, maxScale:3 }\n */\n minOrderPrice?: string | null;\n /** Fulfillment time type. Only be relevant to `ASAP` operations. */\n fulfillmentTimeType?: FulfillmentTimeTypeWithLiterals;\n /**\n * Minimum order price for free fulfillment.\n * If order price exceeds this amount, the given `fee` is waived.\n * @decimalValue options { gte:0.00, maxScale:3 }\n */\n freeFulfillmentPriceThreshold?: string | null;\n}\n\n/** @oneof */\nexport interface FulfillmentDetailsFulfillmentTimeOptionsOneOf {\n /** Fulfillment time has a maximum. */\n maxTimeOptions?: number;\n /** Fulfillment time has a minimum and a maximum. */\n durationRangeOptions?: DurationRange;\n}\n\n/**\n * Details on the address of the fulfillment.\n * For pickup it will the address to take the order from.\n * For delivery it will be the address to deliver the order to.\n */\nexport interface FulfillmentAddress {\n /** Pickup address. This is the address of the restaurant. */\n address?: CommonAddress;\n}\n\nexport interface CalculateFirstAvailableTimeSlotPerFulfillmentTypeRequest {\n /**\n * Operation ID.\n * @format GUID\n */\n operationId: string;\n /**\n * Delivery address.\n *\n * The response includes a time slot with the delivery fulfillment type only if you specify a delivery address.\n */\n deliveryAddress?: CommonAddress;\n}\n\nexport interface CalculateFirstAvailableTimeSlotPerFulfillmentTypeResponse {\n /**\n * First available time slot for each fulfillment type.\n *\n * Each time slot is the first available time slot for the given fulfillment type.\n * @maxSize 2\n */\n timeslotsPerFulfillmentType?: TimeSlotForFulfillment[];\n}\n\nexport interface TimeSlotForFulfillment {\n /** Time Slot details. */\n timeSlot?: TimeSlot;\n /**\n * Details for each available fulfillment option in the time slot.\n * @maxSize 500\n */\n fulfillmentInfo?: FulfillmentInfo[];\n /** Fulfillment type. */\n fulfilmentType?: FulfillmentTypeWithLiterals;\n}\n\nexport interface TimeSlot {\n /** Start time and date of the time slot in [ISO-8601](https://en.wikipedia.org/wiki/ISO_8601) format. */\n startTime?: Date | null;\n /** End time and date of the time slot in [ISO-8601](https://en.wikipedia.org/wiki/ISO_8601) format. */\n endTime?: Date | null;\n /** Order scheduling type used by the operation. */\n orderSchedulingType?: OrderSchedulingTypeWithLiterals;\n}\n\nexport enum OrderSchedulingType {\n /** Immediate ordering. */\n ASAP = 'ASAP',\n /** Scheduled ordering. */\n PREORDER = 'PREORDER',\n}\n\n/** @enumType */\nexport type OrderSchedulingTypeWithLiterals =\n | OrderSchedulingType\n | 'ASAP'\n | 'PREORDER';\n\nexport enum TimeSlotForFulfillmentTimeSlotStatus {\n /** The time slot is available for ordering. */\n AVAILABLE = 'AVAILABLE',\n /** The time slot is blocked by pacing restrictions. Applicable only for `PREORDER` scheduling. */\n BLOCKED = 'BLOCKED',\n}\n\n/** @enumType */\nexport type TimeSlotForFulfillmentTimeSlotStatusWithLiterals =\n | TimeSlotForFulfillmentTimeSlotStatus\n | 'AVAILABLE'\n | 'BLOCKED';\n\n/** Details about the fulfillment option. */\nexport interface FulfillmentInfo extends FulfillmentInfoFulfillmentTimeOneOf {\n /** Maximum time to fulfill the order. */\n maxTime?: number;\n /** Time range in which to fulfill the order. */\n durationRange?: DurationRange;\n /**\n * Fee for using this fulfillment option.\n * @decimalValue options { gte:0.00, maxScale:3 }\n */\n fee?: string | null;\n /**\n * Minimum order price to qualify for using this fulfillment option.\n * @decimalValue options { gte:0.00, maxScale:3 }\n */\n minOrderPrice?: string | null;\n /**\n * Minimum order price to qualify for free fulfillment.\n * If the order price exceeds this amount, the `fee` is waived.\n * @decimalValue options { gte:0.00, maxScale:3 }\n */\n freeFulfillmentPriceThreshold?: string | null;\n /**\n * Details on the address of the fulfillment.\n * For pickup fulfillment types, this is the address to take the order from.\n * For delivery fulfillment types, this is the address to deliver the order to.\n */\n address?: CommonAddress;\n}\n\n/** @oneof */\nexport interface FulfillmentInfoFulfillmentTimeOneOf {\n /** Maximum time to fulfill the order. */\n maxTime?: number;\n /** Time range in which to fulfill the order. */\n durationRange?: DurationRange;\n}\n\nexport interface ListFirstAvailableTimeSlotsForOperationsRequest {\n /**\n * Operation ID.\n * Returned fulfillment options will belong to this operation.\n * @format GUID\n * @maxSize 100\n */\n operationIds: string[];\n /**\n * Delivery address. Optional.\n *\n * If provided, the returned delivery fulfillment options will be able to deliver to this address.\n */\n deliveryAddress?: CommonAddress;\n}\n\nexport interface ListFirstAvailableTimeSlotsForOperationsResponse {\n /**\n * List of available time slots for each operation.\n * @maxSize 100\n */\n timeSlots?: OperationTimeSlot[];\n}\n\nexport interface OperationTimeSlot {\n /**\n * Operation ID.\n * @format GUID\n */\n operationId?: string;\n /**\n * List of available time slots for each fulfillment type.\n * @maxSize 100\n */\n timeSlots?: FulfillmentTimeSlot[];\n}\n\nexport interface CalculateFirstAvailableTimeSlotsPerOperationRequest {\n /**\n * Operation IDs.\n * @format GUID\n * @maxSize 100\n */\n operationIds: string[];\n /**\n * Delivery address.\n *\n * The response includes time slots with delivery fulfillment types only if you specify a delivery address.\n */\n deliveryAddress?: CommonAddress;\n}\n\nexport interface CalculateFirstAvailableTimeSlotsPerOperationResponse {\n /**\n * First available time slot of each fulfillment type for each operation.\n *\n * A time slot with the delivery fulfillment type is returned only if a delivery address was specified.\n * @maxSize 100\n */\n timeSlotsPerOperation?: TimeSlotForOperation[];\n}\n\nexport interface TimeSlotForOperation {\n /**\n * Operation ID.\n * @format GUID\n */\n operationId?: string;\n /**\n * Available time slots of each fulfillment type for this operation.\n * @maxSize 2\n */\n timeslotsPerFulfillmentType?: TimeSlotForFulfillment[];\n}\n\nexport interface ListFirstAvailableTimeSlotsForMenusRequest {\n /**\n * Operation ID.\n * Returned timeslots that are belong to this operation.\n * @format GUID\n */\n operationId: string | null;\n /**\n * Delivery address. Optional.\n *\n * If provided, the returned delivery fulfillment options will be able to deliver to this address.\n */\n deliveryAddress?: CommonAddress;\n /** Cursor paging */\n cursorPaging?: CursorPaging;\n}\n\nexport interface ListFirstAvailableTimeSlotsForMenusResponse {\n /**\n * List of available time slots for each menu.\n * For each menu will be returned the first available time slot for each fulfillment type.\n * @maxSize 100\n */\n timeSlotsPerMenu?: FirstFulfillmentTimeSlotsPerMenu[];\n /**\n * Cursor to next request.\n * @maxLength 16000\n */\n cursor?: string | null;\n}\n\nexport interface FirstFulfillmentTimeSlotsPerMenu {\n /**\n * Menu ID.\n * @format GUID\n */\n menuId?: string | null;\n /**\n * List of available time slots for each fulfillment type.\n * @maxSize 2\n */\n timeslotsPerFulfillmentType?: FulfillmentTimeSlot[];\n}\n\nexport interface CalculateFirstAvailableTimeSlotsPerMenuRequest {\n /**\n * Operation ID.\n * @format GUID\n */\n operationId: string | null;\n /**\n * Delivery address.\n *\n * The response includes time slots with delivery fulfillment types only if you specify a delivery address.\n */\n deliveryAddress?: CommonAddress;\n /** Cursor paging. */\n cursorPaging?: CursorPaging;\n}\n\nexport interface CalculateFirstAvailableTimeSlotsPerMenuResponse {\n /**\n * First available time slot of each fulfillment type for each menu.\n *\n * A time slot with the delivery fulfillment type is returned only if a delivery address was specified.\n * @maxSize 100\n */\n timeSlotsPerMenu?: FulfillmentTimeSlotsPerMenu[];\n /** Metadata for the paginated results. */\n pagingMetadata?: PagingMetadata;\n}\n\nexport interface FulfillmentTimeSlotsPerMenu {\n /**\n * Menu ID.\n * @format GUID\n */\n menuId?: string | null;\n /**\n * Available time slots of each fulfillment type for this menu.\n * @maxSize 2\n */\n timeslotsPerFulfillmentType?: TimeSlotForFulfillment[];\n}\n\nexport interface PagingMetadata {\n /** Number of items returned in the response. */\n count?: number | null;\n /** Offset that was requested. */\n offset?: number | null;\n /** Total number of items that match the query. */\n total?: number | null;\n /** Flag that indicates the server failed to calculate the `total` field. */\n tooManyToCount?: boolean | null;\n}\n\nexport interface ListAvailableTimeSlotsForDateRequest {\n /**\n * Operation ID.\n * The returned fulfillment options will belong to this operation.\n * @format GUID\n */\n operationId: string;\n /**\n * Delivery address. Optional.\n *\n * If provided, the returned delivery fulfillment options will be able to deliver to this address.\n */\n deliveryAddress?: CommonAddress;\n /** Date and time to get the available time slots for. */\n date: _Date;\n}\n\nexport interface _Date {\n /**\n * The day of the month.\n * @min 1\n * @max 31\n */\n day?: number;\n /**\n * The month of the year.\n * @min 1\n * @max 12\n */\n month?: number;\n /**\n * The year of the date.\n * @min 2023\n * @max 2200\n */\n year?: number;\n}\n\nexport interface ListAvailableTimeSlotsForDateResponse {\n /** List of the available time slots in the requested date. */\n timeSlots?: FulfillmentTimeSlot[];\n}\n\nexport interface CalculateAvailableTimeSlotsForDateRequest {\n /**\n * Operation ID.\n * @format GUID\n */\n operationId: string;\n /**\n * Delivery address.\n *\n * The response includes time slots with delivery fulfillment types only if you specify a delivery address.\n */\n deliveryAddress?: CommonAddress;\n /** Date and time to get the available time slots for. */\n date: _Date;\n}\n\nexport interface CalculateAvailableTimeSlotsForDateResponse {\n /**\n * Available time slots of each fulfillment type for the specified date.\n *\n * A time slot with the delivery fulfillment type is returned only if a delivery address was specified.\n * @maxSize 2\n */\n timeslotsPerFulfillmentType?: TimeSlotForFulfillment[];\n}\n\nexport interface ListAvailableDatesInRangeRequest {\n /**\n * Operation ID.\n * The returned fulfillment options will belong to this operation.\n * @format GUID\n */\n operationId: string;\n /**\n * Delivery address. Optional.\n *\n * If provided, the returned delivery fulfillment options will be able to deliver to this address.\n */\n deliveryAddress?: CommonAddress;\n /** Start date and time of the range. */\n from: _Date;\n /** End date and time of the range. */\n until: _Date;\n}\n\nexport interface ListAvailableDatesInRangeResponse {\n /** List of the available dates in descending order for each fulfillment type. */\n availableDates?: FulfillmentTypeAvailableDates[];\n}\n\n/** Available dates for a given fulfillment type. */\nexport interface FulfillmentTypeAvailableDates {\n /** Fulfillment type. */\n fulfilmentType?: FulfillmentTypeWithLiterals;\n /**\n * Available dates in descending order (most recent first).\n *\n * Contains all dates that have at least one available time slot for this fulfillment type.\n * @minSize 1\n * @maxSize 100\n */\n dates?: _Date[];\n}\n\nexport interface CalculateAvailableDatesInRangeRequest {\n /**\n * Operation ID.\n * @format GUID\n */\n operationId: string;\n /**\n * Delivery address.\n *\n * Delivery fulfillment methods are only considered when calculating date availability if a delivery address is specified.\n */\n deliveryAddress?: CommonAddress;\n /** Start date and time of the range. */\n from: _Date;\n /** End date and time of the range. */\n until: _Date;\n}\n\nexport interface CalculateAvailableDatesInRangeResponse {\n /**\n * Available dates of each fulfillment type within the specified time range.\n *\n * Contains all dates that have at least one available time slot.\n */\n availableDatesPerFulfillmentType?: FulfillmentTypeAvailableDates[];\n}\n\nexport interface GetExpectedFulfillmentSelectionRequest {\n /**\n * Operation ID. The returned fulfillment will belong to this operation.\n * @format GUID\n */\n operationId?: string;\n /**\n * Delivery address. Optional.\n *\n * If provided, the returned delivery fulfillment options will be able to deliver to this address.\n */\n deliveryAddress?: CommonAddress;\n /** Start time and date of the time slot. */\n timeslotStartTime?: Date | null;\n /** End time and date of the time slot. */\n timeslotEndTime?: Date | null;\n /** Type of fulfillment. */\n fulfilmentType?: FulfillmentTypeWithLiterals;\n /** Whether it is possible to submit an order to be prepared asap. */\n canSubmitOrderForNow?: boolean | null;\n}\n\nexport interface GetExpectedFulfillmentSelectionResponse {\n /** Expected fulfillment option. */\n expectedFulfillmentSelections?: FulfillmentOption[];\n}\n\nexport interface UpdateImmutableFieldsRequest {\n /** Immutable fields to update. */\n immutableFields?: ImmutableFields;\n}\n\nexport interface ImmutableFields {\n /**\n * operation id\n * @format GUID\n */\n _id?: string;\n /**\n * operation group id\n * @format GUID\n */\n operationGroupId?: string | null;\n /**\n * business location id\n * @format GUID\n */\n businessLocationId?: string | null;\n}\n\nexport interface UpdateImmutableFieldsResponse {\n /** Updated operation. */\n operation?: Operation;\n}\n\nexport interface ValidateOperationAddressRequest {\n /**\n * The ID of the operation to validate\n * @format GUID\n */\n operationId: string;\n}\n\n/** Response message for address validation */\nexport interface ValidateOperationAddressResponse {\n /** Whether the address is valid */\n valid?: boolean;\n /**\n * List of violations if the address is invalid\n * @maxSize 5\n */\n violations?: AddressViolation[];\n}\n\n/** Represents a specific violation in the address */\nexport interface AddressViolation {\n /** The type of violation */\n type?: ViolationTypeWithLiterals;\n}\n\n/** Type of violation found in the address */\nexport enum ViolationType {\n UNKNOWN = 'UNKNOWN',\n NO_ADDRESS = 'NO_ADDRESS',\n MISSING_FORMATTED_ADDRESS = 'MISSING_FORMATTED_ADDRESS',\n INVALID_GEOCODE = 'INVALID_GEOCODE',\n MISSING_COUNTRY = 'MISSING_COUNTRY',\n MISSING_SUBDIVISION = 'MISSING_SUBDIVISION',\n}\n\n/** @enumType */\nexport type ViolationTypeWithLiterals =\n | ViolationType\n | 'UNKNOWN'\n | 'NO_ADDRESS'\n | 'MISSING_FORMATTED_ADDRESS'\n | 'INVALID_GEOCODE'\n | 'MISSING_COUNTRY'\n | 'MISSING_SUBDIVISION';\n\nexport interface UpdateDeliveryRegionsRequest {\n /**\n * Country code for delivery destinations (e.g., \"US\", \"CA\")\n * @maxLength 150\n */\n countryCode?: string;\n /**\n * Optional subdivision for delivery destinations (e.g., state, province)\n * @maxLength 150\n */\n subdivision?: string | null;\n}\n\nexport interface UpdateDeliveryRegionsResponse {}\n\nexport interface BulkUpdateOperationTagsRequest {\n /**\n * IDs of the operations to update tags for.\n * @minSize 1\n * @maxSize 100\n * @format GUID\n */\n operationIds: string[];\n /** Tags to assign to the operations. */\n assignTags?: Tags;\n /** Tags to unassign from the operations. */\n unassignTags?: Tags;\n}\n\nexport interface BulkUpdateOperationTagsResponse {\n /**\n * Results of the bulk update.\n * @minSize 1\n * @maxSize 100\n */\n results?: BulkUpdateOperationTagsResult[];\n /** Metadata for the bulk update. */\n bulkActionMetadata?: BulkActionMetadata;\n}\n\nexport interface ItemMetadata {\n /**\n * Item ID. Should always be available, unless it's impossible (for example, when failing to create an item).\n * @format GUID\n */\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 BulkUpdateOperationTagsResult {\n /** Metadata for the updated operation. */\n itemMetadata?: ItemMetadata;\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 BulkUpdateOperationTagsByFilterRequest {\n /** Filter that determines which operations to update tags for. */\n filter: Record<string, any> | null;\n /** Tags to assign to the operations. */\n assignTags?: Tags;\n /** Tags to unassign from the operations. */\n unassignTags?: Tags;\n}\n\nexport interface BulkUpdateOperationTagsByFilterResponse {\n /**\n * Job ID. Pass this ID to Get Async Job ([SDK](https://dev.wix.com/docs/sdk/backend-modules/async-jobs/get-async-job) | [REST](https://dev.wix.com/docs/rest/business-management/async-job/get-async-job)) to track the job's status.\n * @format GUID\n */\n jobId?: string;\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\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\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?: V4SiteCreated;\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?: V4SiteCreated;\n /** Properties were cloned on site cloning. */\n siteCloned?: SiteCloned;\n}\n\nexport interface PropertiesChange {}\n\nexport interface V4SiteCreated {\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 MetaSiteSpecialEvent extends MetaSiteSpecialEventPayloadOneOf {\n /** Emitted on a meta site creation. */\n siteCreated?: SiteCreated;\n /** Emitted on a meta site transfer completion. */\n siteTransferred?: SiteTransferred;\n /** Emitted on a meta site deletion. */\n siteDeleted?: SiteDeleted;\n /** Emitted on a meta site restoration. */\n siteUndeleted?: SiteUndeleted;\n /** Emitted on the first* publish of the meta site (* switching from unpublished to published state). */\n sitePublished?: SitePublished;\n /** Emitted on a meta site unpublish. */\n siteUnpublished?: SiteUnpublished;\n /** Emitted when meta site is marked as template. */\n siteMarkedAsTemplate?: SiteMarkedAsTemplate;\n /** Emitted when meta site is marked as a WixSite. */\n siteMarkedAsWixSite?: SiteMarkedAsWixSite;\n /** Emitted when an application is provisioned (installed). */\n serviceProvisioned?: ServiceProvisioned;\n /** Emitted when an application is removed (uninstalled). */\n serviceRemoved?: ServiceRemoved;\n /** Emitted when meta site name (URL slug) is changed. */\n siteRenamedPayload?: SiteRenamed;\n /** Emitted when meta site was permanently deleted. */\n hardDeleted?: SiteHardDeleted;\n /** Emitted on a namespace change. */\n namespaceChanged?: NamespaceChanged;\n /** Emitted when Studio is attached. */\n studioAssigned?: StudioAssigned;\n /** Emitted when Studio is detached. */\n studioUnassigned?: StudioUnassigned;\n /**\n * Emitted when one of the URLs is changed. After this event you may call `urls-server` to fetch\n * the actual URL.\n *\n * See: https://wix.slack.com/archives/C0UHEBPFT/p1732520791210559?thread_ts=1732027914.294059&cid=C0UHEBPFT\n * See: https://wix.slack.com/archives/C0UHEBPFT/p1744115197619459\n */\n urlChanged?: SiteUrlChanged;\n /** Site is marked as PurgedExternally */\n sitePurgedExternally?: SitePurgedExternally;\n /** Emitted when Odeditor is attached. */\n odeditorAssigned?: OdeditorAssigned;\n /** Emitted when Odeditor is detached. */\n odeditorUnassigned?: OdeditorUnassigned;\n /** Emitted when Picasso is attached. */\n picassoAssigned?: PicassoAssigned;\n /** Emitted when Picasso is detached. */\n picassoUnassigned?: PicassoUnassigned;\n /**\n * A meta site id.\n * @format GUID\n */\n metaSiteId?: string;\n /** A meta site version. Monotonically increasing. */\n version?: string;\n /** A timestamp of the event. */\n timestamp?: string;\n /**\n * TODO(meta-site): Change validation once validations are disabled for consumers\n * More context: https://wix.slack.com/archives/C0UHEBPFT/p1720957844413149 and https://wix.slack.com/archives/CFWKX325T/p1728892152855659\n * @maxSize 4000\n */\n assets?: Asset[];\n}\n\n/** @oneof */\nexport interface MetaSiteSpecialEventPayloadOneOf {\n /** Emitted on a meta site creation. */\n siteCreated?: SiteCreated;\n /** Emitted on a meta site transfer completion. */\n siteTransferred?: SiteTransferred;\n /** Emitted on a meta site deletion. */\n siteDeleted?: SiteDeleted;\n /** Emitted on a meta site restoration. */\n siteUndeleted?: SiteUndeleted;\n /** Emitted on the first* publish of the meta site (* switching from unpublished to published state). */\n sitePublished?: SitePublished;\n /** Emitted on a meta site unpublish. */\n siteUnpublished?: SiteUnpublished;\n /** Emitted when meta site is marked as template. */\n siteMarkedAsTemplate?: SiteMarkedAsTemplate;\n /** Emitted when meta site is marked as a WixSite. */\n siteMarkedAsWixSite?: SiteMarkedAsWixSite;\n /** Emitted when an application is provisioned (installed). */\n serviceProvisioned?: ServiceProvisioned;\n /** Emitted when an application is removed (uninstalled). */\n serviceRemoved?: ServiceRemoved;\n /** Emitted when meta site name (URL slug) is changed. */\n siteRenamedPayload?: SiteRenamed;\n /** Emitted when meta site was permanently deleted. */\n hardDeleted?: SiteHardDeleted;\n /** Emitted on a namespace change. */\n namespaceChanged?: NamespaceChanged;\n /** Emitted when Studio is attached. */\n studioAssigned?: StudioAssigned;\n /** Emitted when Studio is detached. */\n studioUnassigned?: StudioUnassigned;\n /**\n * Emitted when one of the URLs is changed. After this event you may call `urls-server` to fetch\n * the actual URL.\n *\n * See: https://wix.slack.com/archives/C0UHEBPFT/p1732520791210559?thread_ts=1732027914.294059&cid=C0UHEBPFT\n * See: https://wix.slack.com/archives/C0UHEBPFT/p1744115197619459\n */\n urlChanged?: SiteUrlChanged;\n /** Site is marked as PurgedExternally */\n sitePurgedExternally?: SitePurgedExternally;\n /** Emitted when Odeditor is attached. */\n odeditorAssigned?: OdeditorAssigned;\n /** Emitted when Odeditor is detached. */\n odeditorUnassigned?: OdeditorUnassigned;\n /** Emitted when Picasso is attached. */\n picassoAssigned?: PicassoAssigned;\n /** Emitted when Picasso is detached. */\n picassoUnassigned?: PicassoUnassigned;\n}\n\nexport interface Asset {\n /**\n * An application definition id (app_id in dev-center). For legacy reasons may be UUID or a string (from Java Enum).\n * @maxLength 36\n */\n appDefId?: string;\n /**\n * An instance id. For legacy reasons may be UUID or a string.\n * @maxLength 200\n */\n instanceId?: string;\n /** An application state. */\n state?: StateWithLiterals;\n}\n\nexport enum State {\n UNKNOWN = 'UNKNOWN',\n ENABLED = 'ENABLED',\n DISABLED = 'DISABLED',\n PENDING = 'PENDING',\n DEMO = 'DEMO',\n}\n\n/** @enumType */\nexport type StateWithLiterals =\n | State\n | 'UNKNOWN'\n | 'ENABLED'\n | 'DISABLED'\n | 'PENDING'\n | 'DEMO';\n\nexport interface SiteCreated {\n /**\n * A template identifier (empty if not created from a template).\n * @maxLength 36\n */\n originTemplateId?: string;\n /**\n * An account id of the owner.\n * @format GUID\n */\n ownerId?: string;\n /** A context in which meta site was created. */\n context?: SiteCreatedContextWithLiterals;\n /**\n * A meta site id from which this site was created.\n *\n * In case of a creation from a template it's a template id.\n * In case of a site duplication (\"Save As\" in dashboard or duplicate in UM) it's an id of a source site.\n * @format GUID\n */\n originMetaSiteId?: string | null;\n /**\n * A meta site name (URL slug).\n * @maxLength 20\n */\n siteName?: string;\n /** A namespace. */\n namespace?: NamespaceWithLiterals;\n}\n\nexport enum SiteCreatedContext {\n /** A valid option, we don't expose all reasons why site might be created. */\n OTHER = 'OTHER',\n /** A meta site was created from template. */\n FROM_TEMPLATE = 'FROM_TEMPLATE',\n /** A meta site was created by copying of the transfferred meta site. */\n DUPLICATE_BY_SITE_TRANSFER = 'DUPLICATE_BY_SITE_TRANSFER',\n /** A copy of existing meta site. */\n DUPLICATE = 'DUPLICATE',\n /** A meta site was created as a transfferred site (copy of the original), old flow, should die soon. */\n OLD_SITE_TRANSFER = 'OLD_SITE_TRANSFER',\n /** deprecated A meta site was created for Flash editor. */\n FLASH = 'FLASH',\n}\n\n/** @enumType */\nexport type SiteCreatedContextWithLiterals =\n | SiteCreatedContext\n | 'OTHER'\n | 'FROM_TEMPLATE'\n | 'DUPLICATE_BY_SITE_TRANSFER'\n | 'DUPLICATE'\n | 'OLD_SITE_TRANSFER'\n | 'FLASH';\n\nexport enum Namespace {\n UNKNOWN_NAMESPACE = 'UNKNOWN_NAMESPACE',\n /** Default namespace for UGC sites. MetaSites with this namespace will be shown in a user's site list by default. */\n WIX = 'WIX',\n /** ShoutOut stand alone product. These are siteless (no actual Wix site, no HtmlWeb). MetaSites with this namespace will *not* be shown in a user's site list by default. */\n SHOUT_OUT = 'SHOUT_OUT',\n /** MetaSites created by the Albums product, they appear as part of the Albums app. MetaSites with this namespace will *not* be shown in a user's site list by default. */\n ALBUMS = 'ALBUMS',\n /** Part of the WixStores migration flow, a user tries to migrate and gets this site to view and if the user likes it then stores removes this namespace and deletes the old site with the old stores. MetaSites with this namespace will *not* be shown in a user's site list by default. */\n WIX_STORES_TEST_DRIVE = 'WIX_STORES_TEST_DRIVE',\n /** Hotels standalone (siteless). MetaSites with this namespace will *not* be shown in a user's site list by default. */\n HOTELS = 'HOTELS',\n /** Clubs siteless MetaSites, a club without a wix website. MetaSites with this namespace will *not* be shown in a user's site list by default. */\n CLUBS = 'CLUBS',\n /** A partially created ADI website. MetaSites with this namespace will *not* be shown in a user's site list by default. */\n ONBOARDING_DRAFT = 'ONBOARDING_DRAFT',\n /** AppBuilder for AppStudio / shmite (c). MetaSites with this namespace will *not* be shown in a user's site list by default. */\n DEV_SITE = 'DEV_SITE',\n /** LogoMaker websites offered to the user after logo purchase. MetaSites with this namespace will *not* be shown in a user's site list by default. */\n LOGOS = 'LOGOS',\n /** VideoMaker websites offered to the user after video purchase. MetaSites with this namespace will *not* be shown in a user's site list by default. */\n VIDEO_MAKER = 'VIDEO_MAKER',\n /** MetaSites with this namespace will *not* be shown in a user's site list by default. */\n PARTNER_DASHBOARD = 'PARTNER_DASHBOARD',\n /** MetaSites with this namespace will *not* be shown in a user's site list by default. */\n DEV_CENTER_COMPANY = 'DEV_CENTER_COMPANY',\n /**\n * A draft created by HTML editor on open. Upon \"first save\" it will be moved to be of WIX domain.\n *\n * Meta site with this namespace will *not* be shown in a user's site list by default.\n */\n HTML_DRAFT = 'HTML_DRAFT',\n /**\n * the user-journey for Fitness users who want to start from managing their business instead of designing their website.\n * Will be accessible from Site List and will not have a website app.\n * Once the user attaches a site, the site will become a regular wixsite.\n */\n SITELESS_BUSINESS = 'SITELESS_BUSINESS',\n /** Belongs to \"strategic products\" company. Supports new product in the creator's economy space. */\n CREATOR_ECONOMY = 'CREATOR_ECONOMY',\n /** It is to be used in the Business First efforts. */\n DASHBOARD_FIRST = 'DASHBOARD_FIRST',\n /** Bookings business flow with no site. */\n ANYWHERE = 'ANYWHERE',\n /** Namespace for Headless Backoffice with no editor */\n HEADLESS = 'HEADLESS',\n /**\n * Namespace for master site that will exist in parent account that will be referenced by subaccounts\n * The site will be used for account level CSM feature for enterprise\n */\n ACCOUNT_MASTER_CMS = 'ACCOUNT_MASTER_CMS',\n /** Rise.ai Siteless account management for Gift Cards and Store Credit. */\n RISE = 'RISE',\n /**\n * As part of the branded app new funnel, users now can create a meta site that will be branded app first.\n * There's a blank site behind the scene but it's blank).\n * The Mobile company will be the owner of this namespace.\n */\n BRANDED_FIRST = 'BRANDED_FIRST',\n /** Nownia.com Siteless account management for Ai Scheduling Assistant. */\n NOWNIA = 'NOWNIA',\n /**\n * UGC Templates are templates that are created by users for personal use and to sale to other users.\n * The Partners company owns this namespace.\n */\n UGC_TEMPLATE = 'UGC_TEMPLATE',\n /** Codux Headless Sites */\n CODUX = 'CODUX',\n /** Bobb - AI Design Creator. */\n MEDIA_DESIGN_CREATOR = 'MEDIA_DESIGN_CREATOR',\n /**\n * Shared Blog Site is a unique single site across Enterprise account,\n * This site will hold all Blog posts related to the Marketing product.\n */\n SHARED_BLOG_ENTERPRISE = 'SHARED_BLOG_ENTERPRISE',\n /** Standalone forms (siteless). MetaSites with this namespace will *not* be shown in a user's site list by default. */\n STANDALONE_FORMS = 'STANDALONE_FORMS',\n /** Standalone events (siteless). MetaSites with this namespace will *not* be shown in a user's site list by default. */\n STANDALONE_EVENTS = 'STANDALONE_EVENTS',\n /** MIMIR - Siteless account for MIMIR Ai Job runner. */\n MIMIR = 'MIMIR',\n}\n\n/** @enumType */\nexport type NamespaceWithLiterals =\n | Namespace\n | 'UNKNOWN_NAMESPACE'\n | 'WIX'\n | 'SHOUT_OUT'\n | 'ALBUMS'\n | 'WIX_STORES_TEST_DRIVE'\n | 'HOTELS'\n | 'CLUBS'\n | 'ONBOARDING_DRAFT'\n | 'DEV_SITE'\n | 'LOGOS'\n | 'VIDEO_MAKER'\n | 'PARTNER_DASHBOARD'\n | 'DEV_CENTER_COMPANY'\n | 'HTML_DRAFT'\n | 'SITELESS_BUSINESS'\n | 'CREATOR_ECONOMY'\n | 'DASHBOARD_FIRST'\n | 'ANYWHERE'\n | 'HEADLESS'\n | 'ACCOUNT_MASTER_CMS'\n | 'RISE'\n | 'BRANDED_FIRST'\n | 'NOWNIA'\n | 'UGC_TEMPLATE'\n | 'CODUX'\n | 'MEDIA_DESIGN_CREATOR'\n | 'SHARED_BLOG_ENTERPRISE'\n | 'STANDALONE_FORMS'\n | 'STANDALONE_EVENTS'\n | 'MIMIR';\n\n/** Site transferred to another user. */\nexport interface SiteTransferred {\n /**\n * A previous owner id (user that transfers meta site).\n * @format GUID\n */\n oldOwnerId?: string;\n /**\n * A new owner id (user that accepts meta site).\n * @format GUID\n */\n newOwnerId?: string;\n}\n\n/** Soft deletion of the meta site. Could be restored. */\nexport interface SiteDeleted {\n /** A deletion context. */\n deleteContext?: DeleteContext;\n}\n\nexport interface DeleteContext {\n /** When the meta site was deleted. */\n dateDeleted?: Date | null;\n /** A status. */\n deleteStatus?: DeleteStatusWithLiterals;\n /**\n * A reason (flow).\n * @maxLength 255\n */\n deleteOrigin?: string;\n /**\n * A service that deleted it.\n * @maxLength 255\n */\n initiatorId?: string | null;\n}\n\nexport enum DeleteStatus {\n UNKNOWN = 'UNKNOWN',\n TRASH = 'TRASH',\n DELETED = 'DELETED',\n PENDING_PURGE = 'PENDING_PURGE',\n PURGED_EXTERNALLY = 'PURGED_EXTERNALLY',\n}\n\n/** @enumType */\nexport type DeleteStatusWithLiterals =\n | DeleteStatus\n | 'UNKNOWN'\n | 'TRASH'\n | 'DELETED'\n | 'PENDING_PURGE'\n | 'PURGED_EXTERNALLY';\n\n/** Restoration of the meta site. */\nexport interface SiteUndeleted {}\n\n/** First publish of a meta site. Or subsequent publish after unpublish. */\nexport interface SitePublished {}\n\nexport interface SiteUnpublished {\n /**\n * A list of URLs previously associated with the meta site.\n * @maxLength 4000\n * @maxSize 10000\n */\n urls?: string[];\n}\n\nexport interface SiteMarkedAsTemplate {}\n\nexport interface SiteMarkedAsWixSite {}\n\n/**\n * Represents a service provisioned a site.\n *\n * Note on `origin_instance_id`:\n * There is no guarantee that you will be able to find a meta site using `origin_instance_id`.\n * This is because of the following scenario:\n *\n * Imagine you have a template where a third-party application (TPA) includes some stub data,\n * such as a product catalog. When you create a site from this template, you inherit this\n * default product catalog. However, if the template's product catalog is modified,\n * your site will retain the catalog as it was at the time of site creation. This ensures that\n * your site remains consistent with what you initially received and does not include any\n * changes made to the original template afterward.\n * To ensure this, the TPA on the template gets a new instance_id.\n */\nexport interface ServiceProvisioned {\n /**\n * Either UUID or EmbeddedServiceType.\n * @maxLength 36\n */\n appDefId?: string;\n /**\n * Not only UUID. Something here could be something weird.\n * @maxLength 36\n */\n instanceId?: string;\n /**\n * An instance id from which this instance is originated.\n * @maxLength 36\n */\n originInstanceId?: string;\n /**\n * A version.\n * @maxLength 500\n */\n version?: string | null;\n /**\n * The origin meta site id\n * @format GUID\n */\n originMetaSiteId?: string | null;\n}\n\nexport interface ServiceRemoved {\n /**\n * Either UUID or EmbeddedServiceType.\n * @maxLength 36\n */\n appDefId?: string;\n /**\n * Not only UUID. Something here could be something weird.\n * @maxLength 36\n */\n instanceId?: string;\n /**\n * A version.\n * @maxLength 500\n */\n version?: string | null;\n}\n\n/** Rename of the site. Meaning, free public url has been changed as well. */\nexport interface SiteRenamed {\n /**\n * A new meta site name (URL slug).\n * @maxLength 20\n */\n newSiteName?: string;\n /**\n * A previous meta site name (URL slug).\n * @maxLength 255\n */\n oldSiteName?: string;\n}\n\n/**\n * Hard deletion of the meta site.\n *\n * Could not be restored. Therefore it's desirable to cleanup data.\n */\nexport interface SiteHardDeleted {\n /** A deletion context. */\n deleteContext?: DeleteContext;\n}\n\nexport interface NamespaceChanged {\n /** A previous namespace. */\n oldNamespace?: NamespaceWithLiterals;\n /** A new namespace. */\n newNamespace?: NamespaceWithLiterals;\n}\n\n/** Assigned Studio editor */\nexport interface StudioAssigned {}\n\n/** Unassigned Studio editor */\nexport interface StudioUnassigned {}\n\n/**\n * Fired in case site URLs were changed in any way: new secondary domain, published, account slug rename, site rename etc.\n *\n * This is an internal event, it's not propagated in special events, because it's non-actionable. If you need to keep up\n * with sites and its urls, you need to listen to another topic/event. Read about it:\n *\n * https://bo.wix.com/wix-docs/rest/meta-site/meta-site---urls-service\n */\nexport interface SiteUrlChanged {}\n\n/**\n * Used at the end of the deletion flow for both draft sites and when a user deletes a site.\n * Consumed by other teams to remove relevant data.\n */\nexport interface SitePurgedExternally {\n /**\n * @maxLength 2048\n * @maxSize 100\n * @deprecated\n * @targetRemovalDate 2025-04-15\n */\n appDefId?: string[];\n}\n\n/** Assigned Odeditor */\nexport interface OdeditorAssigned {}\n\n/** Unassigned Odeditor */\nexport interface OdeditorUnassigned {}\n\n/** Assigned Picasso editor */\nexport interface PicassoAssigned {}\n\n/** Unassigned Picasso */\nexport interface PicassoUnassigned {}\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}\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';\nexport type BulkUpdateOperationTagsApplicationErrors = {\n code?: 'EMPTY_ASSIGN_AND_UNASSIGN_LISTS';\n description?: string;\n data?: Record<string, any>;\n};\nexport type BulkUpdateOperationTagsByFilterApplicationErrors = {\n code?: 'EMPTY_ASSIGN_AND_UNASSIGN_LISTS';\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}\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}\n\nexport interface OperationCreatedEnvelope {\n entity: Operation;\n metadata: EventMetadata;\n}\n\n/**\n * Triggered when an operation is created.\n * @permissionScope Manage Restaurants - all permissions\n * @permissionScopeId SCOPE.RESTAURANTS.MEGA-SCOPES\n * @permissionId RESTAURANTS.OPERATION_READ\n * @webhook\n * @eventType wix.restaurants.operations.v1.operation_created\n * @serviceIdentifier wix.restaurants.operations.v1.OperationsService\n * @slug created\n * @documentationMaturity preview\n */\nexport declare function onOperationCreated(\n handler: (event: OperationCreatedEnvelope) => void | Promise<void>\n): void;\n\nexport interface OperationDeletedEnvelope {\n entity: Operation;\n metadata: EventMetadata;\n}\n\n/**\n * Triggered when an operation is deleted.\n * @permissionScope Manage Restaurants - all permissions\n * @permissionScopeId SCOPE.RESTAURANTS.MEGA-SCOPES\n * @permissionId RESTAURANTS.OPERATION_READ\n * @webhook\n * @eventType wix.restaurants.operations.v1.operation_deleted\n * @serviceIdentifier wix.restaurants.operations.v1.OperationsService\n * @slug deleted\n * @documentationMaturity preview\n */\nexport declare function onOperationDeleted(\n handler: (event: OperationDeletedEnvelope) => void | Promise<void>\n): void;\n\nexport interface OperationUpdatedEnvelope {\n entity: Operation;\n metadata: EventMetadata;\n}\n\n/**\n * Triggered when an operation is updated.\n * @permissionScope Manage Restaurants - all permissions\n * @permissionScopeId SCOPE.RESTAURANTS.MEGA-SCOPES\n * @permissionId RESTAURANTS.OPERATION_READ\n * @webhook\n * @eventType wix.restaurants.operations.v1.operation_updated\n * @serviceIdentifier wix.restaurants.operations.v1.OperationsService\n * @slug updated\n * @documentationMaturity preview\n */\nexport declare function onOperationUpdated(\n handler: (event: OperationUpdatedEnvelope) => void | Promise<void>\n): void;\n\n/**\n * Creates a new operation.\n * @param operation - Operation to create.\n * @public\n * @documentationMaturity preview\n * @requiredField operation\n * @permissionId RESTAURANTS.OPERATION_CREATE\n * @applicableIdentity APP\n * @returns Created operation.\n * @fqn wix.restaurants.operations.v1.OperationsService.CreateOperation\n * @deprecated\n * @replacedBy wix.restaurants.v1.OperationGroupService.CreateOperationGroup\n * @targetRemovalDate 2025-08-31\n */\nexport async function createOperation(\n operation: Operation\n): Promise<\n NonNullablePaths<\n Operation,\n | `fulfillmentIds`\n | `onlineOrderingStatus`\n | `defaultFulfillmentType`\n | `orderScheduling.asapOptions.preparationTime.maxTimeOptions.timeUnit`\n | `orderScheduling.asapOptions.preparationTime.timeRangeOptions.timeUnit`\n | `orderScheduling.asapOptions.preparationTime.type`\n | `orderScheduling.asapOptions.asapFutureHandlingType`\n | `orderScheduling.preorderOptions.method.weeklyScheduleOptions.cutOffTime.dayOfWeek`\n | `orderScheduling.preorderOptions.method.weeklyScheduleOptions.cutOffTime.timeOfDay.hours`\n | `orderScheduling.preorderOptions.method.weeklyScheduleOptions.cutOffTime.timeOfDay.minutes`\n | `orderScheduling.preorderOptions.method.type`\n | `orderScheduling.preorderOptions.fulfillmentTimesDisplay.type`\n | `orderScheduling.type`\n | `tags.privateTags.tagIds`,\n 8\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({ operation: operation }),\n [\n {\n transformFn: transformSDKAddressToRESTAddress,\n paths: [{ path: 'operation.businessLocationDetails.address' }],\n },\n ]\n );\n\n const reqOpts =\n ambassadorWixRestaurantsOperationsV1Operation.createOperation(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: transformRESTAddressToSDKAddress,\n paths: [{ path: 'operation.businessLocationDetails.address' }],\n },\n ])\n )?.operation!;\n } catch (err: any) {\n const transformedError = sdkTransformError(\n err,\n {\n spreadPathsToArguments: {},\n explicitPathsToArguments: { operation: '$[0]' },\n singleArgumentUnchanged: false,\n },\n ['operation']\n );\n sideEffects?.onError?.(err);\n\n throw transformedError;\n }\n}\n\n/**\n * Retrieves an operation.\n * @param operationId - ID of the operation to retrieve.\n * @public\n * @documentationMaturity preview\n * @requiredField operationId\n * @permissionId RESTAURANTS.OPERATION_READ\n * @applicableIdentity APP\n * @applicableIdentity VISITOR\n * @returns Retrieved operation.\n * @fqn wix.restaurants.operations.v1.OperationsService.GetOperation\n */\nexport async function getOperation(\n operationId: string\n): Promise<\n NonNullablePaths<\n Operation,\n | `fulfillmentIds`\n | `onlineOrderingStatus`\n | `defaultFulfillmentType`\n | `orderScheduling.asapOptions.preparationTime.maxTimeOptions.timeUnit`\n | `orderScheduling.asapOptions.preparationTime.timeRangeOptions.timeUnit`\n | `orderScheduling.asapOptions.preparationTime.type`\n | `orderScheduling.asapOptions.asapFutureHandlingType`\n | `orderScheduling.preorderOptions.method.weeklyScheduleOptions.cutOffTime.dayOfWeek`\n | `orderScheduling.preorderOptions.method.weeklyScheduleOptions.cutOffTime.timeOfDay.hours`\n | `orderScheduling.preorderOptions.method.weeklyScheduleOptions.cutOffTime.timeOfDay.minutes`\n | `orderScheduling.preorderOptions.method.type`\n | `orderScheduling.preorderOptions.fulfillmentTimesDisplay.type`\n | `orderScheduling.type`\n | `tags.privateTags.tagIds`,\n 8\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 operationId: operationId,\n });\n\n const reqOpts =\n ambassadorWixRestaurantsOperationsV1Operation.getOperation(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: transformRESTAddressToSDKAddress,\n paths: [{ path: 'operation.businessLocationDetails.address' }],\n },\n ])\n )?.operation!;\n } catch (err: any) {\n const transformedError = sdkTransformError(\n err,\n {\n spreadPathsToArguments: {},\n explicitPathsToArguments: { operationId: '$[0]' },\n singleArgumentUnchanged: false,\n },\n ['operationId']\n );\n sideEffects?.onError?.(err);\n\n throw transformedError;\n }\n}\n\n/**\n * Updates an operation.\n *\n * If you update part of the `orderScheduling` property, the whole object is overwritten,\n * so you must include the entire object unless you are not updating `orderScheduling` at all. <br />\n *\n * Each time the operation is updated,\n * `revision` increments by 1.\n * The current `revision` must be passed when updating the operation.\n * This ensures you're working with the latest operation\n * and prevents unintended overwrites.\n * @param _id - Operation ID.\n * @public\n * @documentationMaturity preview\n * @requiredField _id\n * @requiredField operation\n * @requiredField operation.revision\n * @permissionId RESTAURANTS.OPERATION_UPDATE\n * @applicableIdentity APP\n * @returns Updated operation.\n * @fqn wix.restaurants.operations.v1.OperationsService.UpdateOperation\n */\nexport async function updateOperation(\n _id: string,\n operation: NonNullablePaths<UpdateOperation, `revision`, 2>\n): Promise<\n NonNullablePaths<\n Operation,\n | `fulfillmentIds`\n | `onlineOrderingStatus`\n | `defaultFulfillmentType`\n | `orderScheduling.asapOptions.preparationTime.maxTimeOptions.timeUnit`\n | `orderScheduling.asapOptions.preparationTime.timeRangeOptions.timeUnit`\n | `orderScheduling.asapOptions.preparationTime.type`\n | `orderScheduling.asapOptions.asapFutureHandlingType`\n | `orderScheduling.preorderOptions.method.weeklyScheduleOptions.cutOffTime.dayOfWeek`\n | `orderScheduling.preorderOptions.method.weeklyScheduleOptions.cutOffTime.timeOfDay.hours`\n | `orderScheduling.preorderOptions.method.weeklyScheduleOptions.cutOffTime.timeOfDay.minutes`\n | `orderScheduling.preorderOptions.method.type`\n | `orderScheduling.preorderOptions.fulfillmentTimesDisplay.type`\n | `orderScheduling.type`\n | `tags.privateTags.tagIds`,\n 8\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 operation: { ...operation, id: _id },\n }),\n [\n {\n transformFn: transformSDKAddressToRESTAddress,\n paths: [{ path: 'operation.businessLocationDetails.address' }],\n },\n ]\n );\n\n const reqOpts =\n ambassadorWixRestaurantsOperationsV1Operation.updateOperation(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: transformRESTAddressToSDKAddress,\n paths: [{ path: 'operation.businessLocationDetails.address' }],\n },\n ])\n )?.operation!;\n } catch (err: any) {\n const transformedError = sdkTransformError(\n err,\n {\n spreadPathsToArguments: { operation: '$[1]' },\n explicitPathsToArguments: { 'operation.id': '$[0]' },\n singleArgumentUnchanged: false,\n },\n ['_id', 'operation']\n );\n sideEffects?.onError?.(err);\n\n throw transformedError;\n }\n}\n\nexport interface UpdateOperation {\n /** Options for online ordering status. Required when `onlineOrderingStatus` is `PAUSED_UNTIL`. */\n pausedUntilOptions?: OnlineOrderingPausedUntilOptions;\n /**\n * Operation ID.\n * @format GUID\n * @readonly\n */\n _id?: string | null;\n /**\n * Revision number. Increments by 1 each time the operation is updated.\n * To prevent conflicting changes,\n * the existing `revision` must be specified when updating an operation.\n * @readonly\n */\n revision?: string | null;\n /**\n * Date and time the operation was created.\n * @readonly\n */\n _createdDate?: Date | null;\n /**\n * Date and time the operation was updated.\n * @readonly\n */\n _updatedDate?: Date | null;\n /** Operation name. */\n name?: string | null;\n /**\n * Whether the operation is the default operation. <br />\n * Default: `false`.\n */\n default?: boolean | null;\n /**\n * IDs of the fulfillment methods ([SDK](https://dev.wix.com/docs/sdk/backend-modules/restaurants/wix-restaurants-new/fulfillment-methods/introduction) | [REST](https://dev.wix.com/docs/rest/api-reference/wix-restaurants/fulfillment-methods/introduction)) associated with the operation.\n * @format GUID\n * @maxSize 500\n */\n fulfillmentIds?: string[] | null;\n /** Online ordering status of the operation. <br /> */\n onlineOrderingStatus?: OnlineOrderingStatusTypeWithLiterals;\n /** Default fulfillment type of the operation. */\n defaultFulfillmentType?: FulfillmentTypeWithLiterals;\n /** Information about when an order can be placed for. */\n orderScheduling?: OrderScheduling;\n /**\n * ID of the operation group this operation belongs to.\n * @format GUID\n * @immutable\n */\n operationGroupId?: string | null;\n /**\n * ID of the business location ([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)) of this operation.\n * @format GUID\n * @immutable\n * @readonly\n */\n businessLocationId?: string | null;\n /** Extended fields. */\n extendedFields?: ExtendedFields;\n /** Tags ([SDK](https://dev.wix.com/docs/sdk/backend-modules/tags/tags/introduction) | [REST](https://dev.wix.com/docs/rest/business-management/tags/introduction)) used to classify and sort different types of operations. */\n tags?: Tags;\n}\n\n/**\n * Deletes an operation.\n * @param operationId - ID of the operation to delete.\n * @public\n * @documentationMaturity preview\n * @requiredField operationId\n * @permissionId RESTAURANTS.OPERATION_DELETE\n * @applicableIdentity APP\n * @fqn wix.restaurants.operations.v1.OperationsService.DeleteOperation\n * @deprecated\n * @replacedBy wix.restaurants.v1.OperationGroupService.DeleteOperationGroup\n * @targetRemovalDate 2025-08-31\n */\nexport async function deleteOperation(operationId: 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({\n operationId: operationId,\n });\n\n const reqOpts =\n ambassadorWixRestaurantsOperationsV1Operation.deleteOperation(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: { operationId: '$[0]' },\n singleArgumentUnchanged: false,\n },\n ['operationId']\n );\n sideEffects?.onError?.(err);\n\n throw transformedError;\n }\n}\n\n/**\n * Creates a query to retrieve a list of operations.\n *\n * The `queryOperations()` function builds a query to retrieve a list of operations and returns an `OperationsQueryBuilder` object.\n *\n * The returned object contains the query definition, which is used to run the query using the [`find()`](/operations/operations-query-builder/find) function.\n *\n * You can refine the query by chaining `OperationsQueryBuilder` functions onto the query. `OperationsQueryBuilder` functions enable you to filter, sort, and control the results that `queryOperations()` returns.\n *\n * `queryOperations()` runs with the following `OperationsQueryBuilder` defaults, which you can override:\n *\n * * [`limit(50)`](/operations/operations-query-builder/limit)\n * * [`ascending('entityId')`](/operations/operations-methods-query-builder/ascending)\n *\n * The following `OperationsQueryBuilder` functions are supported for `queryOperations()`. For a full description of the operations object, see the object returned for the [`items`](/operations/operations-query-result/items) property in `OperationsQueryResult`.\n * @public\n * @documentationMaturity preview\n * @permissionId RESTAURANTS.OPERATION_READ\n * @applicableIdentity APP\n * @applicableIdentity VISITOR\n * @fqn wix.restaurants.operations.v1.OperationsService.QueryOperation\n */\nexport function queryOperation(): OperationsQueryBuilder {\n // @ts-ignore\n const { httpClient, sideEffects } = arguments[0] as {\n httpClient: HttpClient;\n sideEffects?: any;\n };\n\n return queryBuilder<\n Operation,\n 'CURSOR',\n QueryOperationRequest,\n QueryOperationResponse\n >({\n func: async (payload: QueryOperationRequest) => {\n const reqOpts =\n ambassadorWixRestaurantsOperationsV1Operation.queryOperation(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: QueryOperationRequest['query']) => {\n const args = [query, {}] as [QueryOperationRequest['query'], {}];\n return renameKeysFromSDKRequestToRESTRequest({\n ...args?.[1],\n query: args?.[0],\n });\n },\n responseTransformer: ({ data }: HttpResponse<QueryOperationResponse>) => {\n const transformedData = renameKeysFromRESTResponseToSDKResponse(\n transformPaths(data, [\n {\n transformFn: transformRESTAddressToSDKAddress,\n paths: [{ path: 'operations.businessLocationDetails.address' }],\n },\n ])\n );\n\n return {\n items: transformedData?.operations,\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 OperationsQueryResult extends QueryCursorResult {\n items: Operation[];\n query: OperationsQueryBuilder;\n next: () => Promise<OperationsQueryResult>;\n prev: () => Promise<OperationsQueryResult>;\n}\n\nexport interface OperationsQueryBuilder {\n /** @param propertyName - Property whose value is compared with `value`.\n * @param value - Value to compare against.\n * @documentationMaturity preview\n */\n eq: (\n propertyName:\n | '_id'\n | '_createdDate'\n | '_updatedDate'\n | 'name'\n | 'default'\n | 'fulfillmentIds'\n | 'onlineOrderingStatus'\n | 'defaultFulfillmentType'\n | 'businessLocationId'\n | 'businessLocationDetails.archived',\n value: any\n ) => OperationsQueryBuilder;\n /** @param propertyName - Property whose value is compared with `value`.\n * @param value - Value to compare against.\n * @documentationMaturity preview\n */\n ne: (\n propertyName:\n | '_id'\n | '_createdDate'\n | '_updatedDate'\n | 'name'\n | 'default'\n | 'fulfillmentIds'\n | 'onlineOrderingStatus'\n | 'defaultFulfillmentType'\n | 'businessLocationId'\n | 'businessLocationDetails.archived',\n value: any\n ) => OperationsQueryBuilder;\n /** @param propertyName - Property whose value is compared with `value`.\n * @param value - Value to compare against.\n * @documentationMaturity preview\n */\n ge: (\n propertyName:\n | '_id'\n | '_createdDate'\n | '_updatedDate'\n | 'name'\n | 'businessLocationId',\n value: any\n ) => OperationsQueryBuilder;\n /** @param propertyName - Property whose value is compared with `value`.\n * @param value - Value to compare against.\n * @documentationMaturity preview\n */\n gt: (\n propertyName:\n | '_id'\n | '_createdDate'\n | '_updatedDate'\n | 'name'\n | 'businessLocationId',\n value: any\n ) => OperationsQueryBuilder;\n /** @param propertyName - Property whose value is compared with `value`.\n * @param value - Value to compare against.\n * @documentationMaturity preview\n */\n le: (\n propertyName:\n | '_id'\n | '_createdDate'\n | '_updatedDate'\n | 'name'\n | 'businessLocationId',\n value: any\n ) => OperationsQueryBuilder;\n /** @param propertyName - Property whose value is compared with `value`.\n * @param value - Value to compare against.\n * @documentationMaturity preview\n */\n lt: (\n propertyName:\n | '_id'\n | '_createdDate'\n | '_updatedDate'\n | 'name'\n | 'businessLocationId',\n value: any\n ) => OperationsQueryBuilder;\n /** @param propertyName - Property whose value is compared with `string`.\n * @param string - String to compare against. Case-insensitive.\n * @documentationMaturity preview\n */\n startsWith: (\n propertyName: '_id' | 'name' | 'businessLocationId',\n value: string\n ) => OperationsQueryBuilder;\n /** @param propertyName - Property whose value is compared with `values`.\n * @param values - List of values to compare against.\n * @documentationMaturity preview\n */\n hasSome: (\n propertyName:\n | '_id'\n | '_createdDate'\n | '_updatedDate'\n | 'name'\n | 'default'\n | 'fulfillmentIds'\n | 'onlineOrderingStatus'\n | 'defaultFulfillmentType'\n | 'businessLocationId'\n | 'businessLocationDetails.archived',\n value: any[]\n ) => OperationsQueryBuilder;\n /** @param propertyName - Property whose value is compared with `values`.\n * @param values - List of values to compare against.\n * @documentationMaturity preview\n */\n hasAll: (\n propertyName: 'fulfillmentIds',\n value: any[]\n ) => OperationsQueryBuilder;\n /** @documentationMaturity preview */\n in: (\n propertyName:\n | '_id'\n | '_createdDate'\n | '_updatedDate'\n | 'name'\n | 'default'\n | 'fulfillmentIds'\n | 'onlineOrderingStatus'\n | 'defaultFulfillmentType'\n | 'businessLocationId'\n | 'businessLocationDetails.archived',\n value: any\n ) => OperationsQueryBuilder;\n /** @documentationMaturity preview */\n exists: (\n propertyName:\n | '_id'\n | '_createdDate'\n | '_updatedDate'\n | 'name'\n | 'default'\n | 'fulfillmentIds'\n | 'onlineOrderingStatus'\n | 'defaultFulfillmentType'\n | 'businessLocationId'\n | 'businessLocationDetails.archived',\n value: boolean\n ) => OperationsQueryBuilder;\n /** @param propertyNames - Properties used in the sort. To sort by multiple properties, pass properties as additional arguments.\n * @documentationMaturity preview\n */\n ascending: (\n ...propertyNames: Array<\n | '_id'\n | '_createdDate'\n | '_updatedDate'\n | 'name'\n | 'profileId'\n | 'default'\n | 'fulfillmentIds'\n | 'onlineOrderingStatus'\n | 'defaultFulfillmentType'\n | 'businessLocationId'\n | 'businessLocationDetails.archived'\n >\n ) => OperationsQueryBuilder;\n /** @param propertyNames - Properties used in the sort. To sort by multiple properties, pass properties as additional arguments.\n * @documentationMaturity preview\n */\n descending: (\n ...propertyNames: Array<\n | '_id'\n | '_createdDate'\n | '_updatedDate'\n | 'name'\n | 'profileId'\n | 'default'\n | 'fulfillmentIds'\n | 'onlineOrderingStatus'\n | 'defaultFulfillmentType'\n | 'businessLocationId'\n | 'businessLocationDetails.archived'\n >\n ) => OperationsQueryBuilder;\n /** @param limit - Number of items to return, which is also the `pageSize` of the results object.\n * @documentationMaturity preview\n */\n limit: (limit: number) => OperationsQueryBuilder;\n /** @param cursor - A pointer to specific record\n * @documentationMaturity preview\n */\n skipTo: (cursor: string) => OperationsQueryBuilder;\n /** @documentationMaturity preview */\n find: () => Promise<OperationsQueryResult>;\n}\n\n/**\n * Retrieves a list of operations.\n * The result will be sorted by created date in ascending order.\n * @public\n * @documentationMaturity preview\n * @permissionId RESTAURANTS.OPERATION_READ\n * @applicableIdentity APP\n * @applicableIdentity VISITOR\n * @fqn wix.restaurants.operations.v1.OperationsService.ListOperations\n */\nexport async function listOperations(): Promise<\n NonNullablePaths<\n ListOperationsResponse,\n | `operations`\n | `operations.${number}.onlineOrderingStatus`\n | `operations.${number}.defaultFulfillmentType`\n | `operations.${number}.orderScheduling.asapOptions.asapFutureHandlingType`\n | `operations.${number}.orderScheduling.type`,\n 6\n >\n> {\n // @ts-ignore\n const { httpClient, sideEffects } = arguments[0] as {\n httpClient: HttpClient;\n sideEffects?: any;\n };\n\n const payload = renameKeysFromSDKRequestToRESTRequest({});\n\n const reqOpts =\n ambassadorWixRestaurantsOperationsV1Operation.listOperations(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: transformRESTAddressToSDKAddress,\n paths: [{ path: 'operations.businessLocationDetails.address' }],\n },\n ])\n )!;\n } catch (err: any) {\n const transformedError = sdkTransformError(\n err,\n {\n spreadPathsToArguments: {},\n explicitPathsToArguments: {},\n singleArgumentUnchanged: false,\n },\n []\n );\n sideEffects?.onError?.(err);\n\n throw transformedError;\n }\n}\n\n/**\n * Retrieves a list of available fulfillment options.\n *\n * What makes a fulfillment option available is whether you can submit an order given the scheduling configurations and the fulfillment method's availability.\n * When a delivery address is not provided in the input, our system retrieves a list encompassing all types of fulfillment methods.\n * Conversely, if a delivery address` is given, the response may includes non-delivery fulfillment options along with delivery fulfillment methods that are applicable to the given address, ensuring the address falls within the defined delivery area of these methods.\n * @param operationId - Operation ID. Returned fulfillment options will belong to this operation.\n * @public\n * @documentationMaturity preview\n * @requiredField operationId\n * @permissionId RESTAURANTS.OPERATION_READ\n * @applicableIdentity APP\n * @applicableIdentity VISITOR\n * @fqn wix.restaurants.operations.v1.OperationsService.ListAvailableFulfillmentOptions\n */\nexport async function listAvailableFulfillmentOptions(\n operationId: string,\n options?: ListAvailableFulfillmentOptions\n): Promise<\n NonNullablePaths<\n ListAvailableFulfillmentOptionsResponse,\n | `pickupConfigured`\n | `deliveryConfigured`\n | `fulfillmentOptions`\n | `fulfillmentOptions.${number}.maxTimeOptions`\n | `fulfillmentOptions.${number}.durationRangeOptions.minDuration`\n | `fulfillmentOptions.${number}.durationRangeOptions.maxDuration`\n | `fulfillmentOptions.${number}.timeWindowsOptions.durationInMinutes`\n | `fulfillmentOptions.${number}.type`\n | `fulfillmentOptions.${number}.availability.asapHandlingAvailable`\n | `fulfillmentOptions.${number}.fulfillmentTimeType`\n | `fulfillmentOptions.${number}.fulfillmentTimesDisplayType`,\n 5\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 operationId: operationId,\n deliveryAddress: options?.deliveryAddress,\n }),\n [\n {\n transformFn: transformSDKAddressToRESTAddress,\n paths: [{ path: 'deliveryAddress' }],\n },\n ]\n );\n\n const reqOpts =\n ambassadorWixRestaurantsOperationsV1Operation.listAvailableFulfillmentOptions(\n payload\n );\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: transformRESTAddressToSDKAddress,\n paths: [{ path: 'fulfillmentOptions.pickupOptions.address' }],\n },\n ])\n )!;\n } catch (err: any) {\n const transformedError = sdkTransformError(\n err,\n {\n spreadPathsToArguments: {},\n explicitPathsToArguments: {\n operationId: '$[0]',\n deliveryAddress: '$[1].deliveryAddress',\n },\n singleArgumentUnchanged: false,\n },\n ['operationId', 'options']\n );\n sideEffects?.onError?.(err);\n\n throw transformedError;\n }\n}\n\nexport interface ListAvailableFulfillmentOptions {\n /**\n * Delivery address. Optional.\n *\n * If provided, the returned delivery fulfillment options will be able to deliver to this address.\n */\n deliveryAddress?: CommonAddress;\n}\n\n/**\n * Retrieves a list of available time slots for each fulfillment type.\n *\n * Each time slot is the first available time slot for the given fulfillment type.\n * @param operationId - Operation ID.\n * Returned fulfillment options will belong to this operation.\n * @public\n * @documentationMaturity preview\n * @requiredField operationId\n * @permissionId RESTAURANTS.OPERATION_READ\n * @applicableIdentity APP\n * @applicableIdentity VISITOR\n * @fqn wix.restaurants.operations.v1.OperationsService.ListFirstAvailableTimeSlotForFulfillmentTypes\n * @deprecated\n * @replacedBy wix.restaurants.operations.v1.OperationsService.CalculateFirstAvailableTimeSlotPerFulfillmentType\n * @targetRemovalDate 2025-08-31\n */\nexport async function listFirstAvailableTimeSlotForFulfillmentTypes(\n operationId: string,\n options?: ListFirstAvailableTimeSlotForFulfillmentTypesOptions\n): Promise<\n NonNullablePaths<\n ListFirstAvailableTimeSlotForFulfillmentTypesResponse,\n | `timeSlots`\n | `timeSlots.${number}.fulfilmentType`\n | `timeSlots.${number}.startsNow`,\n 4\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 operationId: operationId,\n deliveryAddress: options?.deliveryAddress,\n }),\n [\n {\n transformFn: transformSDKAddressToRESTAddress,\n paths: [{ path: 'deliveryAddress' }],\n },\n ]\n );\n\n const reqOpts =\n ambassadorWixRestaurantsOperationsV1Operation.listFirstAvailableTimeSlotForFulfillmentTypes(\n payload\n );\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: transformRESTAddressToSDKAddress,\n paths: [{ path: 'timeSlots.fulfillmentAddress.address' }],\n },\n ])\n )!;\n } catch (err: any) {\n const transformedError = sdkTransformError(\n err,\n {\n spreadPathsToArguments: {},\n explicitPathsToArguments: {\n operationId: '$[0]',\n deliveryAddress: '$[1].deliveryAddress',\n },\n singleArgumentUnchanged: false,\n },\n ['operationId', 'options']\n );\n sideEffects?.onError?.(err);\n\n throw transformedError;\n }\n}\n\nexport interface ListFirstAvailableTimeSlotForFulfillmentTypesOptions {\n /**\n * Delivery address. Optional.\n *\n * If provided, the returned delivery fulfillment options will be able to deliver to this address.\n */\n deliveryAddress?: CommonAddress;\n}\n\n/**\n * Retrieves the first available time slot of each fulfillment type for a specified operation.\n *\n * The response includes a time slot with the delivery fulfillment type only if you specify a delivery address.\n * Only fulfillment methods capable of delivering to the specified address are considered when calculating time slot availability.\n * @param operationId - Operation ID.\n * @public\n * @documentationMaturity preview\n * @requiredField operationId\n * @permissionId RESTAURANTS.OPERATION_READ\n * @applicableIdentity APP\n * @applicableIdentity VISITOR\n * @fqn wix.restaurants.operations.v1.OperationsService.CalculateFirstAvailableTimeSlotPerFulfillmentType\n */\nexport async function calculateFirstAvailableTimeSlotPerFulfillmentType(\n operationId: string,\n options?: CalculateFirstAvailableTimeSlotPerFulfillmentTypeOptions\n): Promise<\n NonNullablePaths<\n CalculateFirstAvailableTimeSlotPerFulfillmentTypeResponse,\n | `timeslotsPerFulfillmentType`\n | `timeslotsPerFulfillmentType.${number}.timeSlot.orderSchedulingType`\n | `timeslotsPerFulfillmentType.${number}.fulfilmentType`,\n 5\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 operationId: operationId,\n deliveryAddress: options?.deliveryAddress,\n }),\n [\n {\n transformFn: transformSDKAddressToRESTAddress,\n paths: [{ path: 'deliveryAddress' }],\n },\n ]\n );\n\n const reqOpts =\n ambassadorWixRestaurantsOperationsV1Operation.calculateFirstAvailableTimeSlotPerFulfillmentType(\n payload\n );\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: transformRESTAddressToSDKAddress,\n paths: [\n { path: 'timeslotsPerFulfillmentType.fulfillmentInfo.address' },\n ],\n },\n ])\n )!;\n } catch (err: any) {\n const transformedError = sdkTransformError(\n err,\n {\n spreadPathsToArguments: {},\n explicitPathsToArguments: {\n operationId: '$[0]',\n deliveryAddress: '$[1].deliveryAddress',\n },\n singleArgumentUnchanged: false,\n },\n ['operationId', 'options']\n );\n sideEffects?.onError?.(err);\n\n throw transformedError;\n }\n}\n\nexport interface CalculateFirstAvailableTimeSlotPerFulfillmentTypeOptions {\n /**\n * Delivery address.\n *\n * The response includes a time slot with the delivery fulfillment type only if you specify a delivery address.\n */\n deliveryAddress?: CommonAddress;\n}\n\n/**\n * Retrieves a list of available time slots for each fulfillment type.\n *\n * Each time slot is the first available time slot for the given fulfillment type.\n * @param operationIds - Operation ID.\n * Returned fulfillment options will belong to this operation.\n * @public\n * @documentationMaturity preview\n * @requiredField operationIds\n * @permissionId RESTAURANTS.OPERATION_READ\n * @applicableIdentity APP\n * @applicableIdentity VISITOR\n * @fqn wix.restaurants.operations.v1.OperationsService.ListFirstAvailableTimeSlotsForOperations\n * @deprecated\n * @replacedBy wix.restaurants.operations.v1.OperationsService.CalculateFirstAvailableTimeSlotsPerOperation\n * @targetRemovalDate 2025-08-31\n */\nexport async function listFirstAvailableTimeSlotsForOperations(\n operationIds: string[],\n options?: ListFirstAvailableTimeSlotsForOperationsOptions\n): Promise<\n NonNullablePaths<\n ListFirstAvailableTimeSlotsForOperationsResponse,\n `timeSlots` | `timeSlots.${number}.operationId`,\n 4\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 operationIds: operationIds,\n deliveryAddress: options?.deliveryAddress,\n }),\n [\n {\n transformFn: transformSDKAddressToRESTAddress,\n paths: [{ path: 'deliveryAddress' }],\n },\n ]\n );\n\n const reqOpts =\n ambassadorWixRestaurantsOperationsV1Operation.listFirstAvailableTimeSlotsForOperations(\n payload\n );\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: transformRESTAddressToSDKAddress,\n paths: [{ path: 'timeSlots.timeSlots.fulfillmentAddress.address' }],\n },\n ])\n )!;\n } catch (err: any) {\n const transformedError = sdkTransformError(\n err,\n {\n spreadPathsToArguments: {},\n explicitPathsToArguments: {\n operationIds: '$[0]',\n deliveryAddress: '$[1].deliveryAddress',\n },\n singleArgumentUnchanged: false,\n },\n ['operationIds', 'options']\n );\n sideEffects?.onError?.(err);\n\n throw transformedError;\n }\n}\n\nexport interface ListFirstAvailableTimeSlotsForOperationsOptions {\n /**\n * Delivery address. Optional.\n *\n * If provided, the returned delivery fulfillment options will be able to deliver to this address.\n */\n deliveryAddress?: CommonAddress;\n}\n\n/**\n * Retrieves the first available time slot of each fulfillment type for each specified operation.\n *\n * The response includes time slots with delivery fulfillment types only if you specify a delivery address.\n * Only fulfillment methods capable of delivering to the specified address are considered when calculating time slot availability.\n * @param operationIds - Operation IDs.\n * @public\n * @documentationMaturity preview\n * @requiredField operationIds\n * @permissionId RESTAURANTS.OPERATION_READ\n * @applicableIdentity APP\n * @applicableIdentity VISITOR\n * @fqn wix.restaurants.operations.v1.OperationsService.CalculateFirstAvailableTimeSlotsPerOperation\n */\nexport async function calculateFirstAvailableTimeSlotsPerOperation(\n operationIds: string[],\n options?: CalculateFirstAvailableTimeSlotsPerOperationOptions\n): Promise<\n NonNullablePaths<\n CalculateFirstAvailableTimeSlotsPerOperationResponse,\n `timeSlotsPerOperation` | `timeSlotsPerOperation.${number}.operationId`,\n 4\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 operationIds: operationIds,\n deliveryAddress: options?.deliveryAddress,\n }),\n [\n {\n transformFn: transformSDKAddressToRESTAddress,\n paths: [{ path: 'deliveryAddress' }],\n },\n ]\n );\n\n const reqOpts =\n ambassadorWixRestaurantsOperationsV1Operation.calculateFirstAvailableTimeSlotsPerOperation(\n payload\n );\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: transformRESTAddressToSDKAddress,\n paths: [\n {\n path: 'timeSlotsPerOperation.timeslotsPerFulfillmentType.fulfillmentInfo.address',\n },\n ],\n },\n ])\n )!;\n } catch (err: any) {\n const transformedError = sdkTransformError(\n err,\n {\n spreadPathsToArguments: {},\n explicitPathsToArguments: {\n operationIds: '$[0]',\n deliveryAddress: '$[1].deliveryAddress',\n },\n singleArgumentUnchanged: false,\n },\n ['operationIds', 'options']\n );\n sideEffects?.onError?.(err);\n\n throw transformedError;\n }\n}\n\nexport interface CalculateFirstAvailableTimeSlotsPerOperationOptions {\n /**\n * Delivery address.\n *\n * The response includes time slots with delivery fulfillment types only if you specify a delivery address.\n */\n deliveryAddress?: CommonAddress;\n}\n\n/**\n * For each menu, retrieves the first available time slots for each fulfillment type.\n * @param operationId - Operation ID.\n * Returned timeslots that are belong to this operation.\n * @public\n * @documentationMaturity preview\n * @requiredField operationId\n * @permissionId RESTAURANTS.OPERATION_READ\n * @applicableIdentity APP\n * @applicableIdentity VISITOR\n * @fqn wix.restaurants.operations.v1.OperationsService.ListFirstAvailableTimeSlotsForMenus\n * @deprecated\n * @replacedBy wix.restaurants.operations.v1.OperationsService.CalculateFirstAvailableTimeSlotsPerMenu\n * @targetRemovalDate 2025-08-31\n */\nexport async function listFirstAvailableTimeSlotsForMenus(\n operationId: string,\n options?: ListFirstAvailableTimeSlotsForMenusOptions\n): Promise<\n NonNullablePaths<\n ListFirstAvailableTimeSlotsForMenusResponse,\n `timeSlotsPerMenu`,\n 2\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 operationId: operationId,\n deliveryAddress: options?.deliveryAddress,\n cursorPaging: options?.cursorPaging,\n }),\n [\n {\n transformFn: transformSDKAddressToRESTAddress,\n paths: [{ path: 'deliveryAddress' }],\n },\n ]\n );\n\n const reqOpts =\n ambassadorWixRestaurantsOperationsV1Operation.listFirstAvailableTimeSlotsForMenus(\n payload\n );\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: transformRESTAddressToSDKAddress,\n paths: [\n {\n path: 'timeSlotsPerMenu.timeslotsPerFulfillmentType.fulfillmentAddress.address',\n },\n ],\n },\n ])\n )!;\n } catch (err: any) {\n const transformedError = sdkTransformError(\n err,\n {\n spreadPathsToArguments: {},\n explicitPathsToArguments: {\n operationId: '$[0]',\n deliveryAddress: '$[1].deliveryAddress',\n cursorPaging: '$[1].cursorPaging',\n },\n singleArgumentUnchanged: false,\n },\n ['operationId', 'options']\n );\n sideEffects?.onError?.(err);\n\n throw transformedError;\n }\n}\n\nexport interface ListFirstAvailableTimeSlotsForMenusOptions {\n /**\n * Delivery address. Optional.\n *\n * If provided, the returned delivery fulfillment options will be able to deliver to this address.\n */\n deliveryAddress?: CommonAddress;\n /** Cursor paging */\n cursorPaging?: CursorPaging;\n}\n\n/**\n * Retrieves the first available time slot of each fulfillment type for each specified menu.\n *\n * The response includes time slots with delivery fulfillment types only if you specify a delivery address.\n * Only fulfillment methods capable of delivering to the specified address are considered when calculating time slot availability.\n * @param operationId - Operation ID.\n * @public\n * @documentationMaturity preview\n * @requiredField operationId\n * @permissionId RESTAURANTS.OPERATION_READ\n * @applicableIdentity APP\n * @applicableIdentity VISITOR\n * @fqn wix.restaurants.operations.v1.OperationsService.CalculateFirstAvailableTimeSlotsPerMenu\n */\nexport async function calculateFirstAvailableTimeSlotsPerMenu(\n operationId: string,\n options?: CalculateFirstAvailableTimeSlotsPerMenuOptions\n): Promise<\n NonNullablePaths<\n CalculateFirstAvailableTimeSlotsPerMenuResponse,\n `timeSlotsPerMenu`,\n 2\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 operationId: operationId,\n deliveryAddress: options?.deliveryAddress,\n cursorPaging: options?.cursorPaging,\n }),\n [\n {\n transformFn: transformSDKAddressToRESTAddress,\n paths: [{ path: 'deliveryAddress' }],\n },\n ]\n );\n\n const reqOpts =\n ambassadorWixRestaurantsOperationsV1Operation.calculateFirstAvailableTimeSlotsPerMenu(\n payload\n );\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: transformRESTAddressToSDKAddress,\n paths: [\n {\n path: 'timeSlotsPerMenu.timeslotsPerFulfillmentType.fulfillmentInfo.address',\n },\n ],\n },\n ])\n )!;\n } catch (err: any) {\n const transformedError = sdkTransformError(\n err,\n {\n spreadPathsToArguments: {},\n explicitPathsToArguments: {\n operationId: '$[0]',\n deliveryAddress: '$[1].deliveryAddress',\n cursorPaging: '$[1].cursorPaging',\n },\n singleArgumentUnchanged: false,\n },\n ['operationId', 'options']\n );\n sideEffects?.onError?.(err);\n\n throw transformedError;\n }\n}\n\nexport interface CalculateFirstAvailableTimeSlotsPerMenuOptions {\n /**\n * Delivery address.\n *\n * The response includes time slots with delivery fulfillment types only if you specify a delivery address.\n */\n deliveryAddress?: CommonAddress;\n /** Cursor paging. */\n cursorPaging?: CursorPaging;\n}\n\n/**\n * Retrieves a list of the available time slots for a given date.\n * @param operationId - Operation ID.\n * The returned fulfillment options will belong to this operation.\n * @public\n * @documentationMaturity preview\n * @requiredField operationId\n * @requiredField options.date\n * @requiredField options.date.day\n * @requiredField options.date.month\n * @requiredField options.date.year\n * @permissionId RESTAURANTS.OPERATION_READ\n * @applicableIdentity APP\n * @applicableIdentity VISITOR\n * @fqn wix.restaurants.operations.v1.OperationsService.ListAvailableTimeSlotsForDate\n * @deprecated\n * @replacedBy wix.restaurants.operations.v1.OperationsService.CalculateAvailableTimeSlotsForDate\n * @targetRemovalDate 2025-08-31\n */\nexport async function listAvailableTimeSlotsForDate(\n operationId: string,\n options?: NonNullablePaths<\n ListAvailableTimeSlotsForDateOptions,\n `date` | `date.day` | `date.month` | `date.year`,\n 3\n >\n): Promise<\n NonNullablePaths<\n ListAvailableTimeSlotsForDateResponse,\n | `timeSlots`\n | `timeSlots.${number}.fulfilmentType`\n | `timeSlots.${number}.startsNow`,\n 4\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 operationId: operationId,\n deliveryAddress: options?.deliveryAddress,\n date: options?.date,\n }),\n [\n {\n transformFn: transformSDKAddressToRESTAddress,\n paths: [{ path: 'deliveryAddress' }],\n },\n ]\n );\n\n const reqOpts =\n ambassadorWixRestaurantsOperationsV1Operation.listAvailableTimeSlotsForDate(\n payload\n );\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: transformRESTAddressToSDKAddress,\n paths: [{ path: 'timeSlots.fulfillmentAddress.address' }],\n },\n ])\n )!;\n } catch (err: any) {\n const transformedError = sdkTransformError(\n err,\n {\n spreadPathsToArguments: {},\n explicitPathsToArguments: {\n operationId: '$[0]',\n deliveryAddress: '$[1].deliveryAddress',\n date: '$[1].date',\n },\n singleArgumentUnchanged: false,\n },\n ['operationId', 'options']\n );\n sideEffects?.onError?.(err);\n\n throw transformedError;\n }\n}\n\nexport interface ListAvailableTimeSlotsForDateOptions {\n /**\n * Delivery address. Optional.\n *\n * If provided, the returned delivery fulfillment options will be able to deliver to this address.\n */\n deliveryAddress?: CommonAddress;\n /** Date and time to get the available time slots for. */\n date: _Date;\n}\n\n/**\n * Retrieves all available time slots of each fulfillment type for the specified date.\n *\n * The response includes time slots with delivery fulfillment types only if you specify a delivery address.\n * Only fulfillment methods capable of delivering to the specified address are considered when calculating time slot availability.\n * @param operationId - Operation ID.\n * @public\n * @documentationMaturity preview\n * @requiredField operationId\n * @requiredField options.date\n * @requiredField options.date.day\n * @requiredField options.date.month\n * @requiredField options.date.year\n * @permissionId RESTAURANTS.OPERATION_READ\n * @applicableIdentity APP\n * @applicableIdentity VISITOR\n * @fqn wix.restaurants.operations.v1.OperationsService.CalculateAvailableTimeSlotsForDate\n */\nexport async function calculateAvailableTimeSlotsForDate(\n operationId: string,\n options?: NonNullablePaths<\n CalculateAvailableTimeSlotsForDateOptions,\n `date` | `date.day` | `date.month` | `date.year`,\n 3\n >\n): Promise<\n NonNullablePaths<\n CalculateAvailableTimeSlotsForDateResponse,\n | `timeslotsPerFulfillmentType`\n | `timeslotsPerFulfillmentType.${number}.timeSlot.orderSchedulingType`\n | `timeslotsPerFulfillmentType.${number}.fulfilmentType`,\n 5\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 operationId: operationId,\n deliveryAddress: options?.deliveryAddress,\n date: options?.date,\n }),\n [\n {\n transformFn: transformSDKAddressToRESTAddress,\n paths: [{ path: 'deliveryAddress' }],\n },\n ]\n );\n\n const reqOpts =\n ambassadorWixRestaurantsOperationsV1Operation.calculateAvailableTimeSlotsForDate(\n payload\n );\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: transformRESTAddressToSDKAddress,\n paths: [\n { path: 'timeslotsPerFulfillmentType.fulfillmentInfo.address' },\n ],\n },\n ])\n )!;\n } catch (err: any) {\n const transformedError = sdkTransformError(\n err,\n {\n spreadPathsToArguments: {},\n explicitPathsToArguments: {\n operationId: '$[0]',\n deliveryAddress: '$[1].deliveryAddress',\n date: '$[1].date',\n },\n singleArgumentUnchanged: false,\n },\n ['operationId', 'options']\n );\n sideEffects?.onError?.(err);\n\n throw transformedError;\n }\n}\n\nexport interface CalculateAvailableTimeSlotsForDateOptions {\n /**\n * Delivery address.\n *\n * The response includes time slots with delivery fulfillment types only if you specify a delivery address.\n */\n deliveryAddress?: CommonAddress;\n /** Date and time to get the available time slots for. */\n date: _Date;\n}\n\n/**\n * Retrieves a list of the available dates in a given time range.\n *\n * A date is considered available if it has at least one available time slot.\n * @param operationId - Operation ID.\n * The returned fulfillment options will belong to this operation.\n * @public\n * @documentationMaturity preview\n * @requiredField operationId\n * @requiredField options.from\n * @requiredField options.until\n * @permissionId RESTAURANTS.OPERATION_READ\n * @applicableIdentity APP\n * @applicableIdentity VISITOR\n * @fqn wix.restaurants.operations.v1.OperationsService.ListAvailableDatesInRange\n * @deprecated\n * @replacedBy wix.restaurants.operations.v1.OperationsService.CalculateAvailableDatesInRange\n * @targetRemovalDate 2025-08-31\n */\nexport async function listAvailableDatesInRange(\n operationId: string,\n options?: NonNullablePaths<\n ListAvailableDatesInRangeOptions,\n `from` | `until`,\n 2\n >\n): Promise<\n NonNullablePaths<\n ListAvailableDatesInRangeResponse,\n `availableDates` | `availableDates.${number}.fulfilmentType`,\n 4\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 operationId: operationId,\n deliveryAddress: options?.deliveryAddress,\n from: options?.from,\n until: options?.until,\n }),\n [\n {\n transformFn: transformSDKAddressToRESTAddress,\n paths: [{ path: 'deliveryAddress' }],\n },\n ]\n );\n\n const reqOpts =\n ambassadorWixRestaurantsOperationsV1Operation.listAvailableDatesInRange(\n payload\n );\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 operationId: '$[0]',\n deliveryAddress: '$[1].deliveryAddress',\n from: '$[1].from',\n until: '$[1].until',\n },\n singleArgumentUnchanged: false,\n },\n ['operationId', 'options']\n );\n sideEffects?.onError?.(err);\n\n throw transformedError;\n }\n}\n\nexport interface ListAvailableDatesInRangeOptions {\n /**\n * Delivery address. Optional.\n *\n * If provided, the returned delivery fulfillment options will be able to deliver to this address.\n */\n deliveryAddress?: CommonAddress;\n /** Start date and time of the range. */\n from: _Date;\n /** End date and time of the range. */\n until: _Date;\n}\n\n/**\n * Retrieves all available dates of each fulfillment type within the specified time range.\n *\n * A date is considered available if it has at least one available time slot.\n *\n * The response includes time slots with delivery fulfillment types only if you specify a delivery address.\n * Only fulfillment methods capable of delivering to the specified address are considered when calculating time slot availability.\n * @param operationId - Operation ID.\n * @public\n * @documentationMaturity preview\n * @requiredField operationId\n * @requiredField options.from\n * @requiredField options.until\n * @permissionId RESTAURANTS.OPERATION_READ\n * @applicableIdentity APP\n * @applicableIdentity VISITOR\n * @fqn wix.restaurants.operations.v1.OperationsService.CalculateAvailableDatesInRange\n */\nexport async function calculateAvailableDatesInRange(\n operationId: string,\n options?: NonNullablePaths<\n CalculateAvailableDatesInRangeOptions,\n `from` | `until`,\n 2\n >\n): Promise<\n NonNullablePaths<\n CalculateAvailableDatesInRangeResponse,\n | `availableDatesPerFulfillmentType`\n | `availableDatesPerFulfillmentType.${number}.fulfilmentType`,\n 4\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 operationId: operationId,\n deliveryAddress: options?.deliveryAddress,\n from: options?.from,\n until: options?.until,\n }),\n [\n {\n transformFn: transformSDKAddressToRESTAddress,\n paths: [{ path: 'deliveryAddress' }],\n },\n ]\n );\n\n const reqOpts =\n ambassadorWixRestaurantsOperationsV1Operation.calculateAvailableDatesInRange(\n payload\n );\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 operationId: '$[0]',\n deliveryAddress: '$[1].deliveryAddress',\n from: '$[1].from',\n until: '$[1].until',\n },\n singleArgumentUnchanged: false,\n },\n ['operationId', 'options']\n );\n sideEffects?.onError?.(err);\n\n throw transformedError;\n }\n}\n\nexport interface CalculateAvailableDatesInRangeOptions {\n /**\n * Delivery address.\n *\n * Delivery fulfillment methods are only considered when calculating date availability if a delivery address is specified.\n */\n deliveryAddress?: CommonAddress;\n /** Start date and time of the range. */\n from: _Date;\n /** End date and time of the range. */\n until: _Date;\n}\n\n/**\n * Validates an operation's address\n *\n * Checks if the address linked to the operation (stored in business_location_details) is valid.\n * An address is considered valid if it has:\n * 1. A non-empty formatted address\n * 2. Valid geocode coordinates (not 0,0)\n * 3. A non-empty country field\n *\n * If the address is invalid, the response includes specific violations.\n * @param operationId - The ID of the operation to validate\n * @public\n * @documentationMaturity preview\n * @requiredField operationId\n * @permissionId RESTAURANTS.OPERATION_READ\n * @applicableIdentity APP\n * @applicableIdentity VISITOR\n * @returns Response message for address validation\n * @fqn wix.restaurants.operations.v1.OperationsService.ValidateOperationAddress\n */\nexport async function validateOperationAddress(\n operationId: string\n): Promise<\n NonNullablePaths<\n ValidateOperationAddressResponse,\n `valid` | `violations` | `violations.${number}.type`,\n 4\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 operationId: operationId,\n });\n\n const reqOpts =\n ambassadorWixRestaurantsOperationsV1Operation.validateOperationAddress(\n payload\n );\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: { operationId: '$[0]' },\n singleArgumentUnchanged: false,\n },\n ['operationId']\n );\n sideEffects?.onError?.(err);\n\n throw transformedError;\n }\n}\n\n/**\n * Synchronously update tags on multiple operations.\n * If you specify a tag in both `assignTags` and `unassignTags`, it is assigned.\n * @param operationIds - IDs of the operations to update tags for.\n * @public\n * @documentationMaturity preview\n * @requiredField operationIds\n * @permissionId RESTAURANTS.OPERATION_UPDATE_TAGS\n * @applicableIdentity APP\n * @fqn wix.restaurants.operations.v1.OperationsService.BulkUpdateOperationTags\n */\nexport async function bulkUpdateOperationTags(\n operationIds: string[],\n options?: BulkUpdateOperationTagsOptions\n): Promise<\n NonNullablePaths<\n BulkUpdateOperationTagsResponse,\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 __applicationErrorsType?: BulkUpdateOperationTagsApplicationErrors;\n }\n> {\n // @ts-ignore\n const { httpClient, sideEffects } = arguments[2] as {\n httpClient: HttpClient;\n sideEffects?: any;\n };\n\n const payload = renameKeysFromSDKRequestToRESTRequest({\n operationIds: operationIds,\n assignTags: options?.assignTags,\n unassignTags: options?.unassignTags,\n });\n\n const reqOpts =\n ambassadorWixRestaurantsOperationsV1Operation.bulkUpdateOperationTags(\n payload\n );\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 operationIds: '$[0]',\n assignTags: '$[1].assignTags',\n unassignTags: '$[1].unassignTags',\n },\n singleArgumentUnchanged: false,\n },\n ['operationIds', 'options']\n );\n sideEffects?.onError?.(err);\n\n throw transformedError;\n }\n}\n\nexport interface BulkUpdateOperationTagsOptions {\n /** Tags to assign to the operations. */\n assignTags?: Tags;\n /** Tags to unassign from the operations. */\n unassignTags?: Tags;\n}\n\n/**\n * Asynchronously update tags on multiple operations according to the specified filter.\n * If a filter isn't specified, this method updates all operations.\n * If you specify a tag in both `assignTags` and `unassignTags`, it is assigned.\n * @param filter - Filter that determines which operations to update tags for.\n * @public\n * @documentationMaturity preview\n * @requiredField filter\n * @permissionId RESTAURANTS.OPERATION_UPDATE_TAGS\n * @applicableIdentity APP\n * @fqn wix.restaurants.operations.v1.OperationsService.BulkUpdateOperationTagsByFilter\n */\nexport async function bulkUpdateOperationTagsByFilter(\n filter: Record<string, any>,\n options?: BulkUpdateOperationTagsByFilterOptions\n): Promise<\n NonNullablePaths<BulkUpdateOperationTagsByFilterResponse, `jobId`, 2> & {\n __applicationErrorsType?: BulkUpdateOperationTagsByFilterApplicationErrors;\n }\n> {\n // @ts-ignore\n const { httpClient, sideEffects } = arguments[2] as {\n httpClient: HttpClient;\n sideEffects?: any;\n };\n\n const payload = renameKeysFromSDKRequestToRESTRequest({\n filter: filter,\n assignTags: options?.assignTags,\n unassignTags: options?.unassignTags,\n });\n\n const reqOpts =\n ambassadorWixRestaurantsOperationsV1Operation.bulkUpdateOperationTagsByFilter(\n payload\n );\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]',\n assignTags: '$[1].assignTags',\n unassignTags: '$[1].unassignTags',\n },\n singleArgumentUnchanged: false,\n },\n ['filter', 'options']\n );\n sideEffects?.onError?.(err);\n\n throw transformedError;\n }\n}\n\nexport interface BulkUpdateOperationTagsByFilterOptions {\n /** Tags to assign to the operations. */\n assignTags?: Tags;\n /** Tags to unassign from the operations. */\n unassignTags?: Tags;\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';\nimport { _Date } from './restaurants-operations-v1-operation-operations.types';\n\nfunction resolveWixRestaurantsOperationsV1OperationsServiceUrl(\n opts: Omit<ResolveUrlOpts, 'domainToMappings'>\n) {\n const domainToMappings = {\n 'manage._base_domain_': [\n {\n srcPath: '/_api/restaurants-operations/v1',\n destPath: '/v1',\n },\n ],\n 'www._base_domain_': [\n {\n srcPath: '/_api/restaurants-operations/v1',\n destPath: '/v1',\n },\n ],\n 'editor.wixapps.net': [\n {\n srcPath: '/_api/restaurants-operations/v1',\n destPath: '/v1',\n },\n ],\n '*.dev.wix-code.com': [\n {\n srcPath: '/_api/restaurants-operations/v1',\n destPath: '/v1',\n },\n ],\n 'www.wixapis.com': [\n {\n srcPath: '/restaurants-operations/v1',\n destPath: '/v1',\n },\n {\n srcPath: '/restaurants/operations/v1/operations',\n destPath: '/v1/operations',\n },\n ],\n _: [\n {\n srcPath: '/_api/restaurants-operations/v1',\n destPath: '/v1',\n },\n ],\n _base_domain_: [\n {\n srcPath: '/_api/restaurants-operations/v1',\n destPath: '/v1',\n },\n ],\n 'editor._base_domain_': [\n {\n srcPath: '/_api/restaurants-operations/v1',\n destPath: '/v1',\n },\n ],\n 'blocks._base_domain_': [\n {\n srcPath: '/_api/restaurants-operations/v1',\n destPath: '/v1',\n },\n ],\n 'create.editorx': [\n {\n srcPath: '/_api/restaurants-operations/v1',\n destPath: '/v1',\n },\n ],\n 'users._base_domain_': [\n {\n srcPath: '/_api/restaurants-operations/v1',\n destPath: '/v1',\n },\n ],\n 'api._api_base_domain_': [\n {\n srcPath: '/restaurants-operations',\n destPath: '',\n },\n ],\n 'apps._base_domain_': [\n {\n srcPath: '/_api/restaurants-operations',\n destPath: '',\n },\n ],\n };\n\n return resolveUrl(Object.assign(opts, { domainToMappings }));\n}\n\nconst PACKAGE_NAME = '@wix/auto_sdk_restaurants_operations';\n\n/**\n * Creates a new operation.\n * @deprecated It has been replaced with wix.restaurants.v1.OperationGroupService.CreateOperationGroup(), and will be removed on 2025-08-31.\n */\nexport function createOperation(payload: object): RequestOptionsFactory<any> {\n function __createOperation({ host }: any) {\n const serializedData = transformPaths(payload, [\n {\n transformFn: transformSDKTimestampToRESTTimestamp,\n paths: [\n { path: 'operation.createdDate' },\n { path: 'operation.updatedDate' },\n { path: 'operation.pausedUntilOptions.time' },\n ],\n },\n {\n transformFn: transformSDKFloatToRESTFloat,\n paths: [\n {\n path: 'operation.businessLocationDetails.address.geocode.latitude',\n },\n {\n path: 'operation.businessLocationDetails.address.geocode.longitude',\n },\n ],\n },\n ]);\n const metadata = {\n entityFqdn: 'wix.restaurants.operations.v1.operation',\n method: 'POST' as any,\n methodFqn:\n 'wix.restaurants.operations.v1.OperationsService.CreateOperation',\n packageName: PACKAGE_NAME,\n url: resolveWixRestaurantsOperationsV1OperationsServiceUrl({\n protoPath: '/v1/operations',\n data: serializedData,\n host,\n }),\n data: serializedData,\n transformResponse: (payload: any) =>\n transformPaths(payload, [\n {\n transformFn: transformRESTTimestampToSDKTimestamp,\n paths: [\n { path: 'operation.createdDate' },\n { path: 'operation.updatedDate' },\n { path: 'operation.pausedUntilOptions.time' },\n ],\n },\n {\n transformFn: transformRESTFloatToSDKFloat,\n paths: [\n {\n path: 'operation.businessLocationDetails.address.geocode.latitude',\n },\n {\n path: 'operation.businessLocationDetails.address.geocode.longitude',\n },\n ],\n },\n ]),\n };\n\n return metadata;\n }\n\n return __createOperation;\n}\n\n/** Retrieves an operation. */\nexport function getOperation(payload: object): RequestOptionsFactory<any> {\n function __getOperation({ host }: any) {\n const metadata = {\n entityFqdn: 'wix.restaurants.operations.v1.operation',\n method: 'GET' as any,\n methodFqn: 'wix.restaurants.operations.v1.OperationsService.GetOperation',\n packageName: PACKAGE_NAME,\n url: resolveWixRestaurantsOperationsV1OperationsServiceUrl({\n protoPath: '/v1/operations/{operationId}',\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: 'operation.createdDate' },\n { path: 'operation.updatedDate' },\n { path: 'operation.pausedUntilOptions.time' },\n ],\n },\n {\n transformFn: transformRESTFloatToSDKFloat,\n paths: [\n {\n path: 'operation.businessLocationDetails.address.geocode.latitude',\n },\n {\n path: 'operation.businessLocationDetails.address.geocode.longitude',\n },\n ],\n },\n ]),\n };\n\n return metadata;\n }\n\n return __getOperation;\n}\n\n/**\n * Updates an operation.\n *\n * If you update part of the `orderScheduling` property, the whole object is overwritten,\n * so you must include the entire object unless you are not updating `orderScheduling` at all. <br />\n *\n * Each time the operation is updated,\n * `revision` increments by 1.\n * The current `revision` must be passed when updating the operation.\n * This ensures you're working with the latest operation\n * and prevents unintended overwrites.\n */\nexport function updateOperation(payload: object): RequestOptionsFactory<any> {\n function __updateOperation({ host }: any) {\n const serializedData = transformPaths(payload, [\n {\n transformFn: transformSDKFieldMaskToRESTFieldMask,\n paths: [{ path: 'mask' }],\n },\n {\n transformFn: transformSDKTimestampToRESTTimestamp,\n paths: [\n { path: 'operation.createdDate' },\n { path: 'operation.updatedDate' },\n { path: 'operation.pausedUntilOptions.time' },\n ],\n },\n {\n transformFn: transformSDKFloatToRESTFloat,\n paths: [\n {\n path: 'operation.businessLocationDetails.address.geocode.latitude',\n },\n {\n path: 'operation.businessLocationDetails.address.geocode.longitude',\n },\n ],\n },\n ]);\n const metadata = {\n entityFqdn: 'wix.restaurants.operations.v1.operation',\n method: 'PATCH' as any,\n methodFqn:\n 'wix.restaurants.operations.v1.OperationsService.UpdateOperation',\n packageName: PACKAGE_NAME,\n url: resolveWixRestaurantsOperationsV1OperationsServiceUrl({\n protoPath: '/v1/operations/{operation.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: 'operation.createdDate' },\n { path: 'operation.updatedDate' },\n { path: 'operation.pausedUntilOptions.time' },\n ],\n },\n {\n transformFn: transformRESTFloatToSDKFloat,\n paths: [\n {\n path: 'operation.businessLocationDetails.address.geocode.latitude',\n },\n {\n path: 'operation.businessLocationDetails.address.geocode.longitude',\n },\n ],\n },\n ]),\n };\n\n return metadata;\n }\n\n return __updateOperation;\n}\n\n/**\n * Deletes an operation.\n * @deprecated It has been replaced with wix.restaurants.v1.OperationGroupService.DeleteOperationGroup(), and will be removed on 2025-08-31.\n */\nexport function deleteOperation(payload: object): RequestOptionsFactory<any> {\n function __deleteOperation({ host }: any) {\n const metadata = {\n entityFqdn: 'wix.restaurants.operations.v1.operation',\n method: 'DELETE' as any,\n methodFqn:\n 'wix.restaurants.operations.v1.OperationsService.DeleteOperation',\n packageName: PACKAGE_NAME,\n url: resolveWixRestaurantsOperationsV1OperationsServiceUrl({\n protoPath: '/v1/operations/{operationId}',\n data: payload,\n host,\n }),\n params: toURLSearchParams(payload),\n };\n\n return metadata;\n }\n\n return __deleteOperation;\n}\n\n/**\n * Creates a query to retrieve a list of operations.\n *\n * The `queryOperations()` function builds a query to retrieve a list of operations and returns an `OperationsQueryBuilder` object.\n *\n * The returned object contains the query definition, which is used to run the query using the [`find()`](/operations/operations-query-builder/find) function.\n *\n * You can refine the query by chaining `OperationsQueryBuilder` functions onto the query. `OperationsQueryBuilder` functions enable you to filter, sort, and control the results that `queryOperations()` returns.\n *\n * `queryOperations()` runs with the following `OperationsQueryBuilder` defaults, which you can override:\n *\n * * [`limit(50)`](/operations/operations-query-builder/limit)\n * * [`ascending('entityId')`](/operations/operations-methods-query-builder/ascending)\n *\n * The following `OperationsQueryBuilder` functions are supported for `queryOperations()`. For a full description of the operations object, see the object returned for the [`items`](/operations/operations-query-result/items) property in `OperationsQueryResult`.\n */\nexport function queryOperation(payload: object): RequestOptionsFactory<any> {\n function __queryOperation({ host }: any) {\n const metadata = {\n entityFqdn: 'wix.restaurants.operations.v1.operation',\n method: 'POST' as any,\n methodFqn:\n 'wix.restaurants.operations.v1.OperationsService.QueryOperation',\n packageName: PACKAGE_NAME,\n url: resolveWixRestaurantsOperationsV1OperationsServiceUrl({\n protoPath: '/v1/operations/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: 'operations.createdDate' },\n { path: 'operations.updatedDate' },\n { path: 'operations.pausedUntilOptions.time' },\n ],\n },\n {\n transformFn: transformRESTFloatToSDKFloat,\n paths: [\n {\n path: 'operations.businessLocationDetails.address.geocode.latitude',\n },\n {\n path: 'operations.businessLocationDetails.address.geocode.longitude',\n },\n ],\n },\n ]),\n };\n\n return metadata;\n }\n\n return __queryOperation;\n}\n\n/**\n * Retrieves a list of operations.\n * The result will be sorted by created date in ascending order.\n */\nexport function listOperations(payload: object): RequestOptionsFactory<any> {\n function __listOperations({ host }: any) {\n const metadata = {\n entityFqdn: 'wix.restaurants.operations.v1.operation',\n method: 'GET' as any,\n methodFqn:\n 'wix.restaurants.operations.v1.OperationsService.ListOperations',\n packageName: PACKAGE_NAME,\n url: resolveWixRestaurantsOperationsV1OperationsServiceUrl({\n protoPath: '/v1/operations',\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: 'operations.createdDate' },\n { path: 'operations.updatedDate' },\n { path: 'operations.pausedUntilOptions.time' },\n ],\n },\n {\n transformFn: transformRESTFloatToSDKFloat,\n paths: [\n {\n path: 'operations.businessLocationDetails.address.geocode.latitude',\n },\n {\n path: 'operations.businessLocationDetails.address.geocode.longitude',\n },\n ],\n },\n ]),\n };\n\n return metadata;\n }\n\n return __listOperations;\n}\n\n/**\n * Retrieves a list of available fulfillment options.\n *\n * What makes a fulfillment option available is whether you can submit an order given the scheduling configurations and the fulfillment method's availability.\n * When a delivery address is not provided in the input, our system retrieves a list encompassing all types of fulfillment methods.\n * Conversely, if a delivery address` is given, the response may includes non-delivery fulfillment options along with delivery fulfillment methods that are applicable to the given address, ensuring the address falls within the defined delivery area of these methods.\n */\nexport function listAvailableFulfillmentOptions(\n payload: object\n): RequestOptionsFactory<any> {\n function __listAvailableFulfillmentOptions({ host }: any) {\n const serializedData = transformPaths(payload, [\n {\n transformFn: transformSDKFloatToRESTFloat,\n paths: [\n { path: 'deliveryAddress.geocode.latitude' },\n { path: 'deliveryAddress.geocode.longitude' },\n ],\n },\n ]);\n const metadata = {\n entityFqdn: 'wix.restaurants.operations.v1.operation',\n method: 'GET' as any,\n methodFqn:\n 'wix.restaurants.operations.v1.OperationsService.ListAvailableFulfillmentOptions',\n packageName: PACKAGE_NAME,\n url: resolveWixRestaurantsOperationsV1OperationsServiceUrl({\n protoPath: '/v1/operations/{operationId}/available-fulfillment-options',\n data: serializedData,\n host,\n }),\n params: toURLSearchParams(serializedData),\n transformResponse: (payload: any) =>\n transformPaths(payload, [\n {\n transformFn: transformRESTFloatToSDKFloat,\n paths: [\n {\n path: 'fulfillmentOptions.pickupOptions.address.geocode.latitude',\n },\n {\n path: 'fulfillmentOptions.pickupOptions.address.geocode.longitude',\n },\n ],\n },\n {\n transformFn: transformRESTTimestampToSDKTimestamp,\n paths: [\n { path: 'fulfillmentOptions.availability.startTime' },\n { path: 'fulfillmentOptions.availability.endTime' },\n { path: 'fulfillmentOptions.availability.exceptions.startTime' },\n { path: 'fulfillmentOptions.availability.exceptions.endTime' },\n ],\n },\n ]),\n };\n\n return metadata;\n }\n\n return __listAvailableFulfillmentOptions;\n}\n\n/**\n * Retrieves a list of available time slots for each fulfillment type.\n *\n * Each time slot is the first available time slot for the given fulfillment type.\n * @deprecated It has been replaced with wix.restaurants.operations.v1.OperationsService.CalculateFirstAvailableTimeSlotPerFulfillmentType(), and will be removed on 2025-08-31.\n */\nexport function listFirstAvailableTimeSlotForFulfillmentTypes(\n payload: object\n): RequestOptionsFactory<any> {\n function __listFirstAvailableTimeSlotForFulfillmentTypes({ host }: any) {\n const serializedData = transformPaths(payload, [\n {\n transformFn: transformSDKFloatToRESTFloat,\n paths: [\n { path: 'deliveryAddress.geocode.latitude' },\n { path: 'deliveryAddress.geocode.longitude' },\n ],\n },\n ]);\n const metadata = {\n entityFqdn: 'wix.restaurants.operations.v1.operation',\n method: 'GET' as any,\n methodFqn:\n 'wix.restaurants.operations.v1.OperationsService.ListFirstAvailableTimeSlotForFulfillmentTypes',\n packageName: PACKAGE_NAME,\n url: resolveWixRestaurantsOperationsV1OperationsServiceUrl({\n protoPath:\n '/v1/operations/{operationId}/first-available-time-slot-for-fulfillment-types',\n data: serializedData,\n host,\n }),\n params: toURLSearchParams(serializedData),\n transformResponse: (payload: any) =>\n transformPaths(payload, [\n {\n transformFn: transformRESTTimestampToSDKTimestamp,\n paths: [\n { path: 'timeSlots.startTime' },\n { path: 'timeSlots.endTime' },\n ],\n },\n {\n transformFn: transformRESTFloatToSDKFloat,\n paths: [\n { path: 'timeSlots.fulfillmentAddress.address.geocode.latitude' },\n {\n path: 'timeSlots.fulfillmentAddress.address.geocode.longitude',\n },\n ],\n },\n ]),\n };\n\n return metadata;\n }\n\n return __listFirstAvailableTimeSlotForFulfillmentTypes;\n}\n\n/**\n * Retrieves the first available time slot of each fulfillment type for a specified operation.\n *\n * The response includes a time slot with the delivery fulfillment type only if you specify a delivery address.\n * Only fulfillment methods capable of delivering to the specified address are considered when calculating time slot availability.\n */\nexport function calculateFirstAvailableTimeSlotPerFulfillmentType(\n payload: object\n): RequestOptionsFactory<any> {\n function __calculateFirstAvailableTimeSlotPerFulfillmentType({ host }: any) {\n const serializedData = transformPaths(payload, [\n {\n transformFn: transformSDKFloatToRESTFloat,\n paths: [\n { path: 'deliveryAddress.geocode.latitude' },\n { path: 'deliveryAddress.geocode.longitude' },\n ],\n },\n ]);\n const metadata = {\n entityFqdn: 'wix.restaurants.operations.v1.operation',\n method: 'GET' as any,\n methodFqn:\n 'wix.restaurants.operations.v1.OperationsService.CalculateFirstAvailableTimeSlotPerFulfillmentType',\n packageName: PACKAGE_NAME,\n url: resolveWixRestaurantsOperationsV1OperationsServiceUrl({\n protoPath:\n '/v1/operations/{operationId}/first-available-time-slot-per-fulfillment-type',\n data: serializedData,\n host,\n }),\n params: toURLSearchParams(serializedData),\n transformResponse: (payload: any) =>\n transformPaths(payload, [\n {\n transformFn: transformRESTTimestampToSDKTimestamp,\n paths: [\n { path: 'timeslotsPerFulfillmentType.timeSlot.startTime' },\n { path: 'timeslotsPerFulfillmentType.timeSlot.endTime' },\n ],\n },\n {\n transformFn: transformRESTFloatToSDKFloat,\n paths: [\n {\n path: 'timeslotsPerFulfillmentType.fulfillmentInfo.address.geocode.latitude',\n },\n {\n path: 'timeslotsPerFulfillmentType.fulfillmentInfo.address.geocode.longitude',\n },\n ],\n },\n ]),\n };\n\n return metadata;\n }\n\n return __calculateFirstAvailableTimeSlotPerFulfillmentType;\n}\n\n/**\n * Retrieves a list of available time slots for each fulfillment type.\n *\n * Each time slot is the first available time slot for the given fulfillment type.\n * @deprecated It has been replaced with wix.restaurants.operations.v1.OperationsService.CalculateFirstAvailableTimeSlotsPerOperation(), and will be removed on 2025-08-31.\n */\nexport function listFirstAvailableTimeSlotsForOperations(\n payload: object\n): RequestOptionsFactory<any> {\n function __listFirstAvailableTimeSlotsForOperations({ host }: any) {\n const serializedData = transformPaths(payload, [\n {\n transformFn: transformSDKFloatToRESTFloat,\n paths: [\n { path: 'deliveryAddress.geocode.latitude' },\n { path: 'deliveryAddress.geocode.longitude' },\n ],\n },\n ]);\n const metadata = {\n entityFqdn: 'wix.restaurants.operations.v1.operation',\n method: 'POST' as any,\n methodFqn:\n 'wix.restaurants.operations.v1.OperationsService.ListFirstAvailableTimeSlotsForOperations',\n packageName: PACKAGE_NAME,\n url: resolveWixRestaurantsOperationsV1OperationsServiceUrl({\n protoPath: '/v1/operations/first-available-time-slots-for-operations',\n data: serializedData,\n host,\n }),\n data: serializedData,\n transformResponse: (payload: any) =>\n transformPaths(payload, [\n {\n transformFn: transformRESTTimestampToSDKTimestamp,\n paths: [\n { path: 'timeSlots.timeSlots.startTime' },\n { path: 'timeSlots.timeSlots.endTime' },\n ],\n },\n {\n transformFn: transformRESTFloatToSDKFloat,\n paths: [\n {\n path: 'timeSlots.timeSlots.fulfillmentAddress.address.geocode.latitude',\n },\n {\n path: 'timeSlots.timeSlots.fulfillmentAddress.address.geocode.longitude',\n },\n ],\n },\n ]),\n };\n\n return metadata;\n }\n\n return __listFirstAvailableTimeSlotsForOperations;\n}\n\n/**\n * Retrieves the first available time slot of each fulfillment type for each specified operation.\n *\n * The response includes time slots with delivery fulfillment types only if you specify a delivery address.\n * Only fulfillment methods capable of delivering to the specified address are considered when calculating time slot availability.\n */\nexport function calculateFirstAvailableTimeSlotsPerOperation(\n payload: object\n): RequestOptionsFactory<any> {\n function __calculateFirstAvailableTimeSlotsPerOperation({ host }: any) {\n const serializedData = transformPaths(payload, [\n {\n transformFn: transformSDKFloatToRESTFloat,\n paths: [\n { path: 'deliveryAddress.geocode.latitude' },\n { path: 'deliveryAddress.geocode.longitude' },\n ],\n },\n ]);\n const metadata = {\n entityFqdn: 'wix.restaurants.operations.v1.operation',\n method: 'POST' as any,\n methodFqn:\n 'wix.restaurants.operations.v1.OperationsService.CalculateFirstAvailableTimeSlotsPerOperation',\n packageName: PACKAGE_NAME,\n url: resolveWixRestaurantsOperationsV1OperationsServiceUrl({\n protoPath: '/v1/operations/first-available-time-slots-per-operations',\n data: serializedData,\n host,\n }),\n data: serializedData,\n transformResponse: (payload: any) =>\n transformPaths(payload, [\n {\n transformFn: transformRESTTimestampToSDKTimestamp,\n paths: [\n {\n path: 'timeSlotsPerOperation.timeslotsPerFulfillmentType.timeSlot.startTime',\n },\n {\n path: 'timeSlotsPerOperation.timeslotsPerFulfillmentType.timeSlot.endTime',\n },\n ],\n },\n {\n transformFn: transformRESTFloatToSDKFloat,\n paths: [\n {\n path: 'timeSlotsPerOperation.timeslotsPerFulfillmentType.fulfillmentInfo.address.geocode.latitude',\n },\n {\n path: 'timeSlotsPerOperation.timeslotsPerFulfillmentType.fulfillmentInfo.address.geocode.longitude',\n },\n ],\n },\n ]),\n };\n\n return metadata;\n }\n\n return __calculateFirstAvailableTimeSlotsPerOperation;\n}\n\n/**\n * For each menu, retrieves the first available time slots for each fulfillment type.\n * @deprecated It has been replaced with wix.restaurants.operations.v1.OperationsService.CalculateFirstAvailableTimeSlotsPerMenu(), and will be removed on 2025-08-31.\n */\nexport function listFirstAvailableTimeSlotsForMenus(\n payload: object\n): RequestOptionsFactory<any> {\n function __listFirstAvailableTimeSlotsForMenus({ host }: any) {\n const serializedData = transformPaths(payload, [\n {\n transformFn: transformSDKFloatToRESTFloat,\n paths: [\n { path: 'deliveryAddress.geocode.latitude' },\n { path: 'deliveryAddress.geocode.longitude' },\n ],\n },\n ]);\n const metadata = {\n entityFqdn: 'wix.restaurants.operations.v1.operation',\n method: 'GET' as any,\n methodFqn:\n 'wix.restaurants.operations.v1.OperationsService.ListFirstAvailableTimeSlotsForMenus',\n packageName: PACKAGE_NAME,\n url: resolveWixRestaurantsOperationsV1OperationsServiceUrl({\n protoPath:\n '/v1/operations/{operationId}/first-available-time-slots-for-menus',\n data: serializedData,\n host,\n }),\n params: toURLSearchParams(serializedData),\n transformResponse: (payload: any) =>\n transformPaths(payload, [\n {\n transformFn: transformRESTTimestampToSDKTimestamp,\n paths: [\n {\n path: 'timeSlotsPerMenu.timeslotsPerFulfillmentType.startTime',\n },\n { path: 'timeSlotsPerMenu.timeslotsPerFulfillmentType.endTime' },\n ],\n },\n {\n transformFn: transformRESTFloatToSDKFloat,\n paths: [\n {\n path: 'timeSlotsPerMenu.timeslotsPerFulfillmentType.fulfillmentAddress.address.geocode.latitude',\n },\n {\n path: 'timeSlotsPerMenu.timeslotsPerFulfillmentType.fulfillmentAddress.address.geocode.longitude',\n },\n ],\n },\n ]),\n };\n\n return metadata;\n }\n\n return __listFirstAvailableTimeSlotsForMenus;\n}\n\n/**\n * Retrieves the first available time slot of each fulfillment type for each specified menu.\n *\n * The response includes time slots with delivery fulfillment types only if you specify a delivery address.\n * Only fulfillment methods capable of delivering to the specified address are considered when calculating time slot availability.\n */\nexport function calculateFirstAvailableTimeSlotsPerMenu(\n payload: object\n): RequestOptionsFactory<any> {\n function __calculateFirstAvailableTimeSlotsPerMenu({ host }: any) {\n const serializedData = transformPaths(payload, [\n {\n transformFn: transformSDKFloatToRESTFloat,\n paths: [\n { path: 'deliveryAddress.geocode.latitude' },\n { path: 'deliveryAddress.geocode.longitude' },\n ],\n },\n ]);\n const metadata = {\n entityFqdn: 'wix.restaurants.operations.v1.operation',\n method: 'GET' as any,\n methodFqn:\n 'wix.restaurants.operations.v1.OperationsService.CalculateFirstAvailableTimeSlotsPerMenu',\n packageName: PACKAGE_NAME,\n url: resolveWixRestaurantsOperationsV1OperationsServiceUrl({\n protoPath:\n '/v1/operations/{operationId}/first-available-time-slots-per-menus',\n data: serializedData,\n host,\n }),\n params: toURLSearchParams(serializedData),\n transformResponse: (payload: any) =>\n transformPaths(payload, [\n {\n transformFn: transformRESTTimestampToSDKTimestamp,\n paths: [\n {\n path: 'timeSlotsPerMenu.timeslotsPerFulfillmentType.timeSlot.startTime',\n },\n {\n path: 'timeSlotsPerMenu.timeslotsPerFulfillmentType.timeSlot.endTime',\n },\n ],\n },\n {\n transformFn: transformRESTFloatToSDKFloat,\n paths: [\n {\n path: 'timeSlotsPerMenu.timeslotsPerFulfillmentType.fulfillmentInfo.address.geocode.latitude',\n },\n {\n path: 'timeSlotsPerMenu.timeslotsPerFulfillmentType.fulfillmentInfo.address.geocode.longitude',\n },\n ],\n },\n ]),\n };\n\n return metadata;\n }\n\n return __calculateFirstAvailableTimeSlotsPerMenu;\n}\n\n/**\n * Retrieves a list of the available time slots for a given date.\n * @deprecated It has been replaced with wix.restaurants.operations.v1.OperationsService.CalculateAvailableTimeSlotsForDate(), and will be removed on 2025-08-31.\n */\nexport function listAvailableTimeSlotsForDate(\n payload: object\n): RequestOptionsFactory<any> {\n function __listAvailableTimeSlotsForDate({ host }: any) {\n const serializedData = transformPaths(payload, [\n {\n transformFn: transformSDKFloatToRESTFloat,\n paths: [\n { path: 'deliveryAddress.geocode.latitude' },\n { path: 'deliveryAddress.geocode.longitude' },\n ],\n },\n ]);\n const metadata = {\n entityFqdn: 'wix.restaurants.operations.v1.operation',\n method: 'GET' as any,\n methodFqn:\n 'wix.restaurants.operations.v1.OperationsService.ListAvailableTimeSlotsForDate',\n packageName: PACKAGE_NAME,\n url: resolveWixRestaurantsOperationsV1OperationsServiceUrl({\n protoPath: '/v1/operations/{operationId}/available-time-slots-for-date',\n data: serializedData,\n host,\n }),\n params: toURLSearchParams(serializedData),\n transformResponse: (payload: any) =>\n transformPaths(payload, [\n {\n transformFn: transformRESTTimestampToSDKTimestamp,\n paths: [\n { path: 'timeSlots.startTime' },\n { path: 'timeSlots.endTime' },\n ],\n },\n {\n transformFn: transformRESTFloatToSDKFloat,\n paths: [\n { path: 'timeSlots.fulfillmentAddress.address.geocode.latitude' },\n {\n path: 'timeSlots.fulfillmentAddress.address.geocode.longitude',\n },\n ],\n },\n ]),\n };\n\n return metadata;\n }\n\n return __listAvailableTimeSlotsForDate;\n}\n\n/**\n * Retrieves all available time slots of each fulfillment type for the specified date.\n *\n * The response includes time slots with delivery fulfillment types only if you specify a delivery address.\n * Only fulfillment methods capable of delivering to the specified address are considered when calculating time slot availability.\n */\nexport function calculateAvailableTimeSlotsForDate(\n payload: object\n): RequestOptionsFactory<any> {\n function __calculateAvailableTimeSlotsForDate({ host }: any) {\n const serializedData = transformPaths(payload, [\n {\n transformFn: transformSDKFloatToRESTFloat,\n paths: [\n { path: 'deliveryAddress.geocode.latitude' },\n { path: 'deliveryAddress.geocode.longitude' },\n ],\n },\n ]);\n const metadata = {\n entityFqdn: 'wix.restaurants.operations.v1.operation',\n method: 'GET' as any,\n methodFqn:\n 'wix.restaurants.operations.v1.OperationsService.CalculateAvailableTimeSlotsForDate',\n packageName: PACKAGE_NAME,\n url: resolveWixRestaurantsOperationsV1OperationsServiceUrl({\n protoPath: '/v1/operations/{operationId}/available-time-slots-per-date',\n data: serializedData,\n host,\n }),\n params: toURLSearchParams(serializedData),\n transformResponse: (payload: any) =>\n transformPaths(payload, [\n {\n transformFn: transformRESTTimestampToSDKTimestamp,\n paths: [\n { path: 'timeslotsPerFulfillmentType.timeSlot.startTime' },\n { path: 'timeslotsPerFulfillmentType.timeSlot.endTime' },\n ],\n },\n {\n transformFn: transformRESTFloatToSDKFloat,\n paths: [\n {\n path: 'timeslotsPerFulfillmentType.fulfillmentInfo.address.geocode.latitude',\n },\n {\n path: 'timeslotsPerFulfillmentType.fulfillmentInfo.address.geocode.longitude',\n },\n ],\n },\n ]),\n };\n\n return metadata;\n }\n\n return __calculateAvailableTimeSlotsForDate;\n}\n\n/**\n * Retrieves a list of the available dates in a given time range.\n *\n * A date is considered available if it has at least one available time slot.\n * @deprecated It has been replaced with wix.restaurants.operations.v1.OperationsService.CalculateAvailableDatesInRange(), and will be removed on 2025-08-31.\n */\nexport function listAvailableDatesInRange(\n payload: object\n): RequestOptionsFactory<any> {\n function __listAvailableDatesInRange({ host }: any) {\n const serializedData = transformPaths(payload, [\n {\n transformFn: transformSDKFloatToRESTFloat,\n paths: [\n { path: 'deliveryAddress.geocode.latitude' },\n { path: 'deliveryAddress.geocode.longitude' },\n ],\n },\n ]);\n const metadata = {\n entityFqdn: 'wix.restaurants.operations.v1.operation',\n method: 'GET' as any,\n methodFqn:\n 'wix.restaurants.operations.v1.OperationsService.ListAvailableDatesInRange',\n packageName: PACKAGE_NAME,\n url: resolveWixRestaurantsOperationsV1OperationsServiceUrl({\n protoPath: '/v1/operations/{operationId}/available-dates-in-range',\n data: serializedData,\n host,\n }),\n params: toURLSearchParams(serializedData),\n };\n\n return metadata;\n }\n\n return __listAvailableDatesInRange;\n}\n\n/**\n * Retrieves all available dates of each fulfillment type within the specified time range.\n *\n * A date is considered available if it has at least one available time slot.\n *\n * The response includes time slots with delivery fulfillment types only if you specify a delivery address.\n * Only fulfillment methods capable of delivering to the specified address are considered when calculating time slot availability.\n */\nexport function calculateAvailableDatesInRange(\n payload: object\n): RequestOptionsFactory<any> {\n function __calculateAvailableDatesInRange({ host }: any) {\n const serializedData = transformPaths(payload, [\n {\n transformFn: transformSDKFloatToRESTFloat,\n paths: [\n { path: 'deliveryAddress.geocode.latitude' },\n { path: 'deliveryAddress.geocode.longitude' },\n ],\n },\n ]);\n const metadata = {\n entityFqdn: 'wix.restaurants.operations.v1.operation',\n method: 'GET' as any,\n methodFqn:\n 'wix.restaurants.operations.v1.OperationsService.CalculateAvailableDatesInRange',\n packageName: PACKAGE_NAME,\n url: resolveWixRestaurantsOperationsV1OperationsServiceUrl({\n protoPath: '/v1/operations/{operationId}/available-dates',\n data: serializedData,\n host,\n }),\n params: toURLSearchParams(serializedData),\n };\n\n return metadata;\n }\n\n return __calculateAvailableDatesInRange;\n}\n\n/**\n * Validates an operation's address\n *\n * Checks if the address linked to the operation (stored in business_location_details) is valid.\n * An address is considered valid if it has:\n * 1. A non-empty formatted address\n * 2. Valid geocode coordinates (not 0,0)\n * 3. A non-empty country field\n *\n * If the address is invalid, the response includes specific violations.\n */\nexport function validateOperationAddress(\n payload: object\n): RequestOptionsFactory<any> {\n function __validateOperationAddress({ host }: any) {\n const metadata = {\n entityFqdn: 'wix.restaurants.operations.v1.operation',\n method: 'GET' as any,\n methodFqn:\n 'wix.restaurants.operations.v1.OperationsService.ValidateOperationAddress',\n packageName: PACKAGE_NAME,\n url: resolveWixRestaurantsOperationsV1OperationsServiceUrl({\n protoPath: '/v1/operations/{operationId}/validate-address',\n data: payload,\n host,\n }),\n params: toURLSearchParams(payload),\n };\n\n return metadata;\n }\n\n return __validateOperationAddress;\n}\n\n/**\n * Synchronously update tags on multiple operations.\n * If you specify a tag in both `assignTags` and `unassignTags`, it is assigned.\n */\nexport function bulkUpdateOperationTags(\n payload: object\n): RequestOptionsFactory<any> {\n function __bulkUpdateOperationTags({ host }: any) {\n const metadata = {\n entityFqdn: 'wix.restaurants.operations.v1.operation',\n method: 'POST' as any,\n methodFqn:\n 'wix.restaurants.operations.v1.OperationsService.BulkUpdateOperationTags',\n packageName: PACKAGE_NAME,\n url: resolveWixRestaurantsOperationsV1OperationsServiceUrl({\n protoPath: '/v1/bulk/operations/update-tags',\n data: payload,\n host,\n }),\n data: payload,\n };\n\n return metadata;\n }\n\n return __bulkUpdateOperationTags;\n}\n\n/**\n * Asynchronously update tags on multiple operations according to the specified filter.\n * If a filter isn't specified, this method updates all operations.\n * If you specify a tag in both `assignTags` and `unassignTags`, it is assigned.\n */\nexport function bulkUpdateOperationTagsByFilter(\n payload: object\n): RequestOptionsFactory<any> {\n function __bulkUpdateOperationTagsByFilter({ host }: any) {\n const metadata = {\n entityFqdn: 'wix.restaurants.operations.v1.operation',\n method: 'POST' as any,\n methodFqn:\n 'wix.restaurants.operations.v1.OperationsService.BulkUpdateOperationTagsByFilter',\n packageName: PACKAGE_NAME,\n url: resolveWixRestaurantsOperationsV1OperationsServiceUrl({\n protoPath: '/v1/bulk/operations/update-tags-by-filter',\n data: payload,\n host,\n }),\n data: payload,\n };\n\n return metadata;\n }\n\n return __bulkUpdateOperationTagsByFilter;\n}\n","import {\n createOperation as publicCreateOperation,\n getOperation as publicGetOperation,\n updateOperation as publicUpdateOperation,\n deleteOperation as publicDeleteOperation,\n queryOperation as publicQueryOperation,\n listOperations as publicListOperations,\n listAvailableFulfillmentOptions as publicListAvailableFulfillmentOptions,\n listFirstAvailableTimeSlotForFulfillmentTypes as publicListFirstAvailableTimeSlotForFulfillmentTypes,\n calculateFirstAvailableTimeSlotPerFulfillmentType as publicCalculateFirstAvailableTimeSlotPerFulfillmentType,\n listFirstAvailableTimeSlotsForOperations as publicListFirstAvailableTimeSlotsForOperations,\n calculateFirstAvailableTimeSlotsPerOperation as publicCalculateFirstAvailableTimeSlotsPerOperation,\n listFirstAvailableTimeSlotsForMenus as publicListFirstAvailableTimeSlotsForMenus,\n calculateFirstAvailableTimeSlotsPerMenu as publicCalculateFirstAvailableTimeSlotsPerMenu,\n listAvailableTimeSlotsForDate as publicListAvailableTimeSlotsForDate,\n calculateAvailableTimeSlotsForDate as publicCalculateAvailableTimeSlotsForDate,\n listAvailableDatesInRange as publicListAvailableDatesInRange,\n calculateAvailableDatesInRange as publicCalculateAvailableDatesInRange,\n validateOperationAddress as publicValidateOperationAddress,\n bulkUpdateOperationTags as publicBulkUpdateOperationTags,\n bulkUpdateOperationTagsByFilter as publicBulkUpdateOperationTagsByFilter,\n} from './restaurants-operations-v1-operation-operations.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 { onOperationCreated as publicOnOperationCreated } from './restaurants-operations-v1-operation-operations.public.js';\nimport { onOperationDeleted as publicOnOperationDeleted } from './restaurants-operations-v1-operation-operations.public.js';\nimport { onOperationUpdated as publicOnOperationUpdated } from './restaurants-operations-v1-operation-operations.public.js';\n\nexport const createOperation: MaybeContext<\n BuildRESTFunction<typeof publicCreateOperation> & typeof publicCreateOperation\n> = /*#__PURE__*/ createRESTModule(publicCreateOperation);\nexport const getOperation: MaybeContext<\n BuildRESTFunction<typeof publicGetOperation> & typeof publicGetOperation\n> = /*#__PURE__*/ createRESTModule(publicGetOperation);\nexport const updateOperation: MaybeContext<\n BuildRESTFunction<typeof publicUpdateOperation> & typeof publicUpdateOperation\n> = /*#__PURE__*/ createRESTModule(publicUpdateOperation);\nexport const deleteOperation: MaybeContext<\n BuildRESTFunction<typeof publicDeleteOperation> & typeof publicDeleteOperation\n> = /*#__PURE__*/ createRESTModule(publicDeleteOperation);\nexport const queryOperation: MaybeContext<\n BuildRESTFunction<typeof publicQueryOperation> & typeof publicQueryOperation\n> = /*#__PURE__*/ createRESTModule(publicQueryOperation);\nexport const listOperations: MaybeContext<\n BuildRESTFunction<typeof publicListOperations> & typeof publicListOperations\n> = /*#__PURE__*/ createRESTModule(publicListOperations);\nexport const listAvailableFulfillmentOptions: MaybeContext<\n BuildRESTFunction<typeof publicListAvailableFulfillmentOptions> &\n typeof publicListAvailableFulfillmentOptions\n> = /*#__PURE__*/ createRESTModule(publicListAvailableFulfillmentOptions);\nexport const listFirstAvailableTimeSlotForFulfillmentTypes: MaybeContext<\n BuildRESTFunction<\n typeof publicListFirstAvailableTimeSlotForFulfillmentTypes\n > &\n typeof publicListFirstAvailableTimeSlotForFulfillmentTypes\n> = /*#__PURE__*/ createRESTModule(\n publicListFirstAvailableTimeSlotForFulfillmentTypes\n);\nexport const calculateFirstAvailableTimeSlotPerFulfillmentType: MaybeContext<\n BuildRESTFunction<\n typeof publicCalculateFirstAvailableTimeSlotPerFulfillmentType\n > &\n typeof publicCalculateFirstAvailableTimeSlotPerFulfillmentType\n> = /*#__PURE__*/ createRESTModule(\n publicCalculateFirstAvailableTimeSlotPerFulfillmentType\n);\nexport const listFirstAvailableTimeSlotsForOperations: MaybeContext<\n BuildRESTFunction<typeof publicListFirstAvailableTimeSlotsForOperations> &\n typeof publicListFirstAvailableTimeSlotsForOperations\n> = /*#__PURE__*/ createRESTModule(\n publicListFirstAvailableTimeSlotsForOperations\n);\nexport const calculateFirstAvailableTimeSlotsPerOperation: MaybeContext<\n BuildRESTFunction<typeof publicCalculateFirstAvailableTimeSlotsPerOperation> &\n typeof publicCalculateFirstAvailableTimeSlotsPerOperation\n> = /*#__PURE__*/ createRESTModule(\n publicCalculateFirstAvailableTimeSlotsPerOperation\n);\nexport const listFirstAvailableTimeSlotsForMenus: MaybeContext<\n BuildRESTFunction<typeof publicListFirstAvailableTimeSlotsForMenus> &\n typeof publicListFirstAvailableTimeSlotsForMenus\n> = /*#__PURE__*/ createRESTModule(publicListFirstAvailableTimeSlotsForMenus);\nexport const calculateFirstAvailableTimeSlotsPerMenu: MaybeContext<\n BuildRESTFunction<typeof publicCalculateFirstAvailableTimeSlotsPerMenu> &\n typeof publicCalculateFirstAvailableTimeSlotsPerMenu\n> = /*#__PURE__*/ createRESTModule(\n publicCalculateFirstAvailableTimeSlotsPerMenu\n);\nexport const listAvailableTimeSlotsForDate: MaybeContext<\n BuildRESTFunction<typeof publicListAvailableTimeSlotsForDate> &\n typeof publicListAvailableTimeSlotsForDate\n> = /*#__PURE__*/ createRESTModule(publicListAvailableTimeSlotsForDate);\nexport const calculateAvailableTimeSlotsForDate: MaybeContext<\n BuildRESTFunction<typeof publicCalculateAvailableTimeSlotsForDate> &\n typeof publicCalculateAvailableTimeSlotsForDate\n> = /*#__PURE__*/ createRESTModule(publicCalculateAvailableTimeSlotsForDate);\nexport const listAvailableDatesInRange: MaybeContext<\n BuildRESTFunction<typeof publicListAvailableDatesInRange> &\n typeof publicListAvailableDatesInRange\n> = /*#__PURE__*/ createRESTModule(publicListAvailableDatesInRange);\nexport const calculateAvailableDatesInRange: MaybeContext<\n BuildRESTFunction<typeof publicCalculateAvailableDatesInRange> &\n typeof publicCalculateAvailableDatesInRange\n> = /*#__PURE__*/ createRESTModule(publicCalculateAvailableDatesInRange);\nexport const validateOperationAddress: MaybeContext<\n BuildRESTFunction<typeof publicValidateOperationAddress> &\n typeof publicValidateOperationAddress\n> = /*#__PURE__*/ createRESTModule(publicValidateOperationAddress);\nexport const bulkUpdateOperationTags: MaybeContext<\n BuildRESTFunction<typeof publicBulkUpdateOperationTags> &\n typeof publicBulkUpdateOperationTags\n> = /*#__PURE__*/ createRESTModule(publicBulkUpdateOperationTags);\nexport const bulkUpdateOperationTagsByFilter: MaybeContext<\n BuildRESTFunction<typeof publicBulkUpdateOperationTagsByFilter> &\n typeof publicBulkUpdateOperationTagsByFilter\n> = /*#__PURE__*/ createRESTModule(publicBulkUpdateOperationTagsByFilter);\n/**\n * Triggered when an operation is created.\n */\nexport const onOperationCreated: BuildEventDefinition<\n typeof publicOnOperationCreated\n> = createEventModule(publicOnOperationCreated);\n/**\n * Triggered when an operation is deleted.\n */\nexport const onOperationDeleted: BuildEventDefinition<\n typeof publicOnOperationDeleted\n> = createEventModule(publicOnOperationDeleted);\n/**\n * Triggered when an operation is updated.\n */\nexport const onOperationUpdated: BuildEventDefinition<\n typeof publicOnOperationUpdated\n> = createEventModule(publicOnOperationUpdated);\n\nexport {\n SchedulingType,\n PreparationTimeType,\n TimeUnit,\n AsapPreorderType,\n AsapPacingWindowType,\n ActivationType,\n EntitiesDayOfWeek,\n MethodType,\n FulfillmentTimesType,\n PreorderPacingWindowType,\n OnlineOrderingStatusType,\n FulfillmentType,\n PreparationTimePreparationTimeType,\n AsapFutureHandlingType,\n SortOrder,\n SubdivisionType,\n FulfillmentTimeType,\n FulfillmentTimesDisplayType,\n TimeSlotStatus,\n OrderSchedulingType,\n TimeSlotForFulfillmentTimeSlotStatus,\n ViolationType,\n PlacementType,\n DayOfWeek,\n ResolutionMethod,\n State,\n SiteCreatedContext,\n Namespace,\n DeleteStatus,\n WebhookIdentityType,\n} from './restaurants-operations-v1-operation-operations.universal.js';\nexport {\n Operation,\n OperationOnlineOrderingStatusOptionsOneOf,\n Scheduling,\n SchedulingSchedulingOptionsOneOf,\n AsapScheduling,\n AsapSchedulingPreparationTimeOneOf,\n AsapSchedulingAsapPreorderOneOf,\n TimeDuration,\n TimeDurationRange,\n BusinessDaysPreorder,\n AsapOrderPacing,\n AsapOrderPacingPacingAvailabilityOneOf,\n WeeklyActivePeriods,\n ActivePeriod,\n TimeOfDayRange,\n TimeOfDay,\n PreorderScheduling,\n PreorderMethod,\n PreorderMethodMethodOptionsOneOf,\n DayAndTime,\n TimeBounded,\n WeeklySchedule,\n FulfillmentTimesDisplayConfig,\n FulfillmentTimesDisplayConfigFulfillmentTimesDisplayOptionsOneOf,\n PreOrderPacing,\n PreOrderPacingPacingAvailabilityOneOf,\n WeeklyActiveDays,\n OnlineOrderingPausedUntilOptions,\n OrderScheduling,\n OrderSchedulingOrderSchedulingOptionsOneOf,\n AsapOrderScheduling,\n AsapOrderSchedulingAsapFutureHandlingOptionsOneOf,\n PreparationTime,\n PreparationTimeTimeSpecificationOneOf,\n BusinessDaysAheadHandling,\n BusinessLocationDetails,\n V1Address,\n V1StreetAddress,\n V1AddressLocation,\n ExtendedFields,\n Tags,\n TagList,\n InvalidateCache,\n InvalidateCacheGetByOneOf,\n App,\n Page,\n URI,\n File,\n CustomTag,\n DeliveryProfileConfiguredForOperation,\n OperationsDataCloningCompleted,\n CreateOperationRequest,\n CreateOperationResponse,\n GetOperationRequest,\n GetOperationResponse,\n UpdateOperationRequest,\n UpdateOperationResponse,\n DeleteOperationRequest,\n DeleteOperationResponse,\n QueryOperationRequest,\n CursorQuery,\n CursorQueryPagingMethodOneOf,\n Sorting,\n CursorPaging,\n QueryOperationResponse,\n CursorPagingMetadata,\n Cursors,\n ListOperationsRequest,\n ListOperationsResponse,\n ListOperationIdsRequest,\n ListOperationIdsResponse,\n ListOperationsInternalRequest,\n ListOperationsInternalResponse,\n ListAvailableFulfillmentOptionsRequest,\n CommonAddress,\n CommonAddressStreetOneOf,\n StreetAddress,\n AddressLocation,\n Subdivision,\n ListAvailableFulfillmentOptionsResponse,\n FulfillmentOption,\n FulfillmentOptionFulfillmentTimeOptionsOneOf,\n FulfillmentOptionFulfillmentTimesDisplayOptionsOneOf,\n FulfillmentOptionFulfillmentTypeOptionsOneOf,\n FulfillmentOptionAvailability,\n DayOfWeekAvailability,\n AvailabilityException,\n DurationRange,\n TimeWindowDisplayConfig,\n PickupDetails,\n DeliveryDetails,\n ListFirstAvailableTimeSlotForFulfillmentTypesRequest,\n ListFirstAvailableTimeSlotForFulfillmentTypesResponse,\n FulfillmentTimeSlot,\n FulfillmentDetails,\n FulfillmentDetailsFulfillmentTimeOptionsOneOf,\n FulfillmentAddress,\n CalculateFirstAvailableTimeSlotPerFulfillmentTypeRequest,\n CalculateFirstAvailableTimeSlotPerFulfillmentTypeResponse,\n TimeSlotForFulfillment,\n TimeSlot,\n FulfillmentInfo,\n FulfillmentInfoFulfillmentTimeOneOf,\n ListFirstAvailableTimeSlotsForOperationsRequest,\n ListFirstAvailableTimeSlotsForOperationsResponse,\n OperationTimeSlot,\n CalculateFirstAvailableTimeSlotsPerOperationRequest,\n CalculateFirstAvailableTimeSlotsPerOperationResponse,\n TimeSlotForOperation,\n ListFirstAvailableTimeSlotsForMenusRequest,\n ListFirstAvailableTimeSlotsForMenusResponse,\n FirstFulfillmentTimeSlotsPerMenu,\n CalculateFirstAvailableTimeSlotsPerMenuRequest,\n CalculateFirstAvailableTimeSlotsPerMenuResponse,\n FulfillmentTimeSlotsPerMenu,\n PagingMetadata,\n ListAvailableTimeSlotsForDateRequest,\n _Date,\n ListAvailableTimeSlotsForDateResponse,\n CalculateAvailableTimeSlotsForDateRequest,\n CalculateAvailableTimeSlotsForDateResponse,\n ListAvailableDatesInRangeRequest,\n ListAvailableDatesInRangeResponse,\n FulfillmentTypeAvailableDates,\n CalculateAvailableDatesInRangeRequest,\n CalculateAvailableDatesInRangeResponse,\n GetExpectedFulfillmentSelectionRequest,\n GetExpectedFulfillmentSelectionResponse,\n UpdateImmutableFieldsRequest,\n ImmutableFields,\n UpdateImmutableFieldsResponse,\n ValidateOperationAddressRequest,\n ValidateOperationAddressResponse,\n AddressViolation,\n UpdateDeliveryRegionsRequest,\n UpdateDeliveryRegionsResponse,\n BulkUpdateOperationTagsRequest,\n BulkUpdateOperationTagsResponse,\n ItemMetadata,\n ApplicationError,\n BulkUpdateOperationTagsResult,\n BulkActionMetadata,\n BulkUpdateOperationTagsByFilterRequest,\n BulkUpdateOperationTagsByFilterResponse,\n DomainEvent,\n DomainEventBodyOneOf,\n EntityCreatedEvent,\n RestoreInfo,\n EntityUpdatedEvent,\n EntityDeletedEvent,\n ActionEvent,\n Empty,\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 V4SiteCreated,\n SiteCloned,\n MetaSiteSpecialEvent,\n MetaSiteSpecialEventPayloadOneOf,\n Asset,\n SiteCreated,\n SiteTransferred,\n SiteDeleted,\n DeleteContext,\n SiteUndeleted,\n SitePublished,\n SiteUnpublished,\n SiteMarkedAsTemplate,\n SiteMarkedAsWixSite,\n ServiceProvisioned,\n ServiceRemoved,\n SiteRenamed,\n SiteHardDeleted,\n NamespaceChanged,\n StudioAssigned,\n StudioUnassigned,\n SiteUrlChanged,\n SitePurgedExternally,\n OdeditorAssigned,\n OdeditorUnassigned,\n PicassoAssigned,\n PicassoUnassigned,\n MessageEnvelope,\n IdentificationData,\n IdentificationDataIdOneOf,\n BaseEventMetadata,\n EventMetadata,\n OperationCreatedEnvelope,\n OperationDeletedEnvelope,\n OperationUpdatedEnvelope,\n UpdateOperation,\n OperationsQueryResult,\n OperationsQueryBuilder,\n ListAvailableFulfillmentOptions,\n ListFirstAvailableTimeSlotForFulfillmentTypesOptions,\n CalculateFirstAvailableTimeSlotPerFulfillmentTypeOptions,\n ListFirstAvailableTimeSlotsForOperationsOptions,\n CalculateFirstAvailableTimeSlotsPerOperationOptions,\n ListFirstAvailableTimeSlotsForMenusOptions,\n CalculateFirstAvailableTimeSlotsPerMenuOptions,\n ListAvailableTimeSlotsForDateOptions,\n CalculateAvailableTimeSlotsForDateOptions,\n ListAvailableDatesInRangeOptions,\n CalculateAvailableDatesInRangeOptions,\n BulkUpdateOperationTagsOptions,\n BulkUpdateOperationTagsByFilterOptions,\n} from './restaurants-operations-v1-operation-operations.universal.js';\nexport {\n SchedulingTypeWithLiterals,\n PreparationTimeTypeWithLiterals,\n TimeUnitWithLiterals,\n AsapPreorderTypeWithLiterals,\n AsapPacingWindowTypeWithLiterals,\n ActivationTypeWithLiterals,\n EntitiesDayOfWeekWithLiterals,\n MethodTypeWithLiterals,\n FulfillmentTimesTypeWithLiterals,\n PreorderPacingWindowTypeWithLiterals,\n OnlineOrderingStatusTypeWithLiterals,\n FulfillmentTypeWithLiterals,\n PreparationTimePreparationTimeTypeWithLiterals,\n AsapFutureHandlingTypeWithLiterals,\n SortOrderWithLiterals,\n SubdivisionTypeWithLiterals,\n FulfillmentTimeTypeWithLiterals,\n FulfillmentTimesDisplayTypeWithLiterals,\n TimeSlotStatusWithLiterals,\n OrderSchedulingTypeWithLiterals,\n TimeSlotForFulfillmentTimeSlotStatusWithLiterals,\n ViolationTypeWithLiterals,\n PlacementTypeWithLiterals,\n DayOfWeekWithLiterals,\n ResolutionMethodWithLiterals,\n StateWithLiterals,\n SiteCreatedContextWithLiterals,\n NamespaceWithLiterals,\n DeleteStatusWithLiterals,\n WebhookIdentityTypeWithLiterals,\n BulkUpdateOperationTagsApplicationErrors,\n BulkUpdateOperationTagsByFilterApplicationErrors,\n} from './restaurants-operations-v1-operation-operations.universal.js';\n"],"mappings":"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","names":["bulkUpdateOperationTags","bulkUpdateOperationTagsByFilter","calculateAvailableDatesInRange","calculateAvailableTimeSlotsForDate","calculateFirstAvailableTimeSlotPerFulfillmentType","calculateFirstAvailableTimeSlotsPerMenu","calculateFirstAvailableTimeSlotsPerOperation","createOperation","deleteOperation","getOperation","listAvailableDatesInRange","listAvailableFulfillmentOptions","listAvailableTimeSlotsForDate","listFirstAvailableTimeSlotForFulfillmentTypes","listFirstAvailableTimeSlotsForMenus","listFirstAvailableTimeSlotsForOperations","listOperations","onOperationCreated","onOperationDeleted","onOperationUpdated","queryOperation","updateOperation","validateOperationAddress","import_rename_all_nested_keys","import_address","import_timestamp","import_transform_paths","import_float","import_timestamp","import_rest_modules","payload","import_address","import_transform_paths","SchedulingType","PreparationTimeType","TimeUnit","AsapPreorderType","AsapPacingWindowType","ActivationType","EntitiesDayOfWeek","MethodType","FulfillmentTimesType","PreorderPacingWindowType","OnlineOrderingStatusType","FulfillmentType","PreparationTimePreparationTimeType","AsapFutureHandlingType","SortOrder","SubdivisionType","FulfillmentTimeType","FulfillmentTimesDisplayType","TimeSlotStatus","OrderSchedulingType","TimeSlotForFulfillmentTimeSlotStatus","ViolationType","PlacementType","DayOfWeek","ResolutionMethod","State","SiteCreatedContext","Namespace","DeleteStatus","WebhookIdentityType","createOperation","sdkTransformError","getOperation","updateOperation","deleteOperation","queryOperation","listOperations","listAvailableFulfillmentOptions","listFirstAvailableTimeSlotForFulfillmentTypes","calculateFirstAvailableTimeSlotPerFulfillmentType","listFirstAvailableTimeSlotsForOperations","calculateFirstAvailableTimeSlotsPerOperation","listFirstAvailableTimeSlotsForMenus","calculateFirstAvailableTimeSlotsPerMenu","listAvailableTimeSlotsForDate","calculateAvailableTimeSlotsForDate","listAvailableDatesInRange","calculateAvailableDatesInRange","validateOperationAddress","bulkUpdateOperationTags","bulkUpdateOperationTagsByFilter","createOperation","getOperation","updateOperation","deleteOperation","queryOperation","listOperations","listAvailableFulfillmentOptions","listFirstAvailableTimeSlotForFulfillmentTypes","calculateFirstAvailableTimeSlotPerFulfillmentType","listFirstAvailableTimeSlotsForOperations","calculateFirstAvailableTimeSlotsPerOperation","listFirstAvailableTimeSlotsForMenus","calculateFirstAvailableTimeSlotsPerMenu","listAvailableTimeSlotsForDate","calculateAvailableTimeSlotsForDate","listAvailableDatesInRange","calculateAvailableDatesInRange","validateOperationAddress","bulkUpdateOperationTags","bulkUpdateOperationTagsByFilter","import_rest_modules","createOperation","getOperation","updateOperation","deleteOperation","queryOperation","listOperations","listAvailableFulfillmentOptions","listFirstAvailableTimeSlotForFulfillmentTypes","calculateFirstAvailableTimeSlotPerFulfillmentType","listFirstAvailableTimeSlotsForOperations","calculateFirstAvailableTimeSlotsPerOperation","listFirstAvailableTimeSlotsForMenus","calculateFirstAvailableTimeSlotsPerMenu","listAvailableTimeSlotsForDate","calculateAvailableTimeSlotsForDate","listAvailableDatesInRange","calculateAvailableDatesInRange","validateOperationAddress","bulkUpdateOperationTags","bulkUpdateOperationTagsByFilter","onOperationCreated","onOperationDeleted","onOperationUpdated"]}
1
+ {"version":3,"sources":["../../index.ts","../../src/restaurants-operations-v1-operation-operations.public.ts","../../src/restaurants-operations-v1-operation-operations.universal.ts","../../src/restaurants-operations-v1-operation-operations.http.ts","../../src/restaurants-operations-v1-operation-operations.context.ts"],"sourcesContent":["export * from './src/restaurants-operations-v1-operation-operations.context.js';\n","import { renameKeysFromRESTResponseToSDKResponse } from '@wix/sdk-runtime/rename-all-nested-keys';\nimport { transformRESTAddressToSDKAddress } from '@wix/sdk-runtime/transformations/address';\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 BulkUpdateOperationTagsApplicationErrors,\n BulkUpdateOperationTagsByFilterApplicationErrors,\n BulkUpdateOperationTagsByFilterOptions,\n BulkUpdateOperationTagsByFilterResponse,\n BulkUpdateOperationTagsOptions,\n BulkUpdateOperationTagsResponse,\n CalculateAvailableDatesInRangeOptions,\n CalculateAvailableDatesInRangeResponse,\n CalculateAvailableTimeSlotsForDateOptions,\n CalculateAvailableTimeSlotsForDateResponse,\n CalculateFirstAvailableTimeSlotPerFulfillmentTypeOptions,\n CalculateFirstAvailableTimeSlotPerFulfillmentTypeResponse,\n CalculateFirstAvailableTimeSlotsPerMenuOptions,\n CalculateFirstAvailableTimeSlotsPerMenuResponse,\n CalculateFirstAvailableTimeSlotsPerOperationOptions,\n CalculateFirstAvailableTimeSlotsPerOperationResponse,\n ListAvailableDatesInRangeOptions,\n ListAvailableDatesInRangeResponse,\n ListAvailableFulfillmentOptions,\n ListAvailableFulfillmentOptionsResponse,\n ListAvailableTimeSlotsForDateOptions,\n ListAvailableTimeSlotsForDateResponse,\n ListFirstAvailableTimeSlotForFulfillmentTypesOptions,\n ListFirstAvailableTimeSlotForFulfillmentTypesResponse,\n ListFirstAvailableTimeSlotsForMenusOptions,\n ListFirstAvailableTimeSlotsForMenusResponse,\n ListFirstAvailableTimeSlotsForOperationsOptions,\n ListFirstAvailableTimeSlotsForOperationsResponse,\n ListOperationsResponse,\n Operation,\n OperationCreatedEnvelope,\n OperationDeletedEnvelope,\n OperationUpdatedEnvelope,\n OperationsQueryBuilder,\n UpdateOperation,\n ValidateOperationAddressResponse,\n bulkUpdateOperationTags as universalBulkUpdateOperationTags,\n bulkUpdateOperationTagsByFilter as universalBulkUpdateOperationTagsByFilter,\n calculateAvailableDatesInRange as universalCalculateAvailableDatesInRange,\n calculateAvailableTimeSlotsForDate as universalCalculateAvailableTimeSlotsForDate,\n calculateFirstAvailableTimeSlotPerFulfillmentType as universalCalculateFirstAvailableTimeSlotPerFulfillmentType,\n calculateFirstAvailableTimeSlotsPerMenu as universalCalculateFirstAvailableTimeSlotsPerMenu,\n calculateFirstAvailableTimeSlotsPerOperation as universalCalculateFirstAvailableTimeSlotsPerOperation,\n createOperation as universalCreateOperation,\n deleteOperation as universalDeleteOperation,\n getOperation as universalGetOperation,\n listAvailableDatesInRange as universalListAvailableDatesInRange,\n listAvailableFulfillmentOptions as universalListAvailableFulfillmentOptions,\n listAvailableTimeSlotsForDate as universalListAvailableTimeSlotsForDate,\n listFirstAvailableTimeSlotForFulfillmentTypes as universalListFirstAvailableTimeSlotForFulfillmentTypes,\n listFirstAvailableTimeSlotsForMenus as universalListFirstAvailableTimeSlotsForMenus,\n listFirstAvailableTimeSlotsForOperations as universalListFirstAvailableTimeSlotsForOperations,\n listOperations as universalListOperations,\n queryOperation as universalQueryOperation,\n updateOperation as universalUpdateOperation,\n validateOperationAddress as universalValidateOperationAddress,\n} from './restaurants-operations-v1-operation-operations.universal.js';\n\nexport const __metadata = { PACKAGE_NAME: '@wix/restaurants' };\n\nexport function createOperation(\n httpClient: HttpClient\n): CreateOperationSignature {\n return (operation: Operation) =>\n universalCreateOperation(\n operation,\n // @ts-ignore\n { httpClient }\n );\n}\n\ninterface CreateOperationSignature {\n /**\n * Creates a new operation.\n * @param - Operation to create.\n * @returns Created operation.\n * @deprecated\n */\n (operation: Operation): Promise<\n NonNullablePaths<\n Operation,\n | `fulfillmentIds`\n | `onlineOrderingStatus`\n | `defaultFulfillmentType`\n | `orderScheduling.asapOptions.preparationTime.maxTimeOptions.timeUnit`\n | `orderScheduling.asapOptions.preparationTime.timeRangeOptions.timeUnit`\n | `orderScheduling.asapOptions.preparationTime.type`\n | `orderScheduling.asapOptions.asapFutureHandlingType`\n | `orderScheduling.preorderOptions.method.weeklyScheduleOptions.cutOffTime.dayOfWeek`\n | `orderScheduling.preorderOptions.method.weeklyScheduleOptions.cutOffTime.timeOfDay.hours`\n | `orderScheduling.preorderOptions.method.weeklyScheduleOptions.cutOffTime.timeOfDay.minutes`\n | `orderScheduling.preorderOptions.method.type`\n | `orderScheduling.preorderOptions.fulfillmentTimesDisplay.type`\n | `orderScheduling.type`\n | `tags.privateTags.tagIds`,\n 8\n >\n >;\n}\n\nexport function getOperation(httpClient: HttpClient): GetOperationSignature {\n return (operationId: string) =>\n universalGetOperation(\n operationId,\n // @ts-ignore\n { httpClient }\n );\n}\n\ninterface GetOperationSignature {\n /**\n * Retrieves an operation.\n * @param - ID of the operation to retrieve.\n * @returns Retrieved operation.\n */\n (operationId: string): Promise<\n NonNullablePaths<\n Operation,\n | `fulfillmentIds`\n | `onlineOrderingStatus`\n | `defaultFulfillmentType`\n | `orderScheduling.asapOptions.preparationTime.maxTimeOptions.timeUnit`\n | `orderScheduling.asapOptions.preparationTime.timeRangeOptions.timeUnit`\n | `orderScheduling.asapOptions.preparationTime.type`\n | `orderScheduling.asapOptions.asapFutureHandlingType`\n | `orderScheduling.preorderOptions.method.weeklyScheduleOptions.cutOffTime.dayOfWeek`\n | `orderScheduling.preorderOptions.method.weeklyScheduleOptions.cutOffTime.timeOfDay.hours`\n | `orderScheduling.preorderOptions.method.weeklyScheduleOptions.cutOffTime.timeOfDay.minutes`\n | `orderScheduling.preorderOptions.method.type`\n | `orderScheduling.preorderOptions.fulfillmentTimesDisplay.type`\n | `orderScheduling.type`\n | `tags.privateTags.tagIds`,\n 8\n >\n >;\n}\n\nexport function updateOperation(\n httpClient: HttpClient\n): UpdateOperationSignature {\n return (\n _id: string,\n operation: NonNullablePaths<UpdateOperation, `revision`, 2>\n ) =>\n universalUpdateOperation(\n _id,\n operation,\n // @ts-ignore\n { httpClient }\n );\n}\n\ninterface UpdateOperationSignature {\n /**\n * Updates an operation.\n *\n * If you update part of the `orderScheduling` property, the whole object is overwritten,\n * so you must include the entire object unless you are not updating `orderScheduling` at all. <br />\n *\n * Each time the operation is updated,\n * `revision` increments by 1.\n * The current `revision` must be passed when updating the operation.\n * This ensures you're working with the latest operation\n * and prevents unintended overwrites.\n * @param - Operation ID.\n * @returns Updated operation.\n */\n (\n _id: string,\n operation: NonNullablePaths<UpdateOperation, `revision`, 2>\n ): Promise<\n NonNullablePaths<\n Operation,\n | `fulfillmentIds`\n | `onlineOrderingStatus`\n | `defaultFulfillmentType`\n | `orderScheduling.asapOptions.preparationTime.maxTimeOptions.timeUnit`\n | `orderScheduling.asapOptions.preparationTime.timeRangeOptions.timeUnit`\n | `orderScheduling.asapOptions.preparationTime.type`\n | `orderScheduling.asapOptions.asapFutureHandlingType`\n | `orderScheduling.preorderOptions.method.weeklyScheduleOptions.cutOffTime.dayOfWeek`\n | `orderScheduling.preorderOptions.method.weeklyScheduleOptions.cutOffTime.timeOfDay.hours`\n | `orderScheduling.preorderOptions.method.weeklyScheduleOptions.cutOffTime.timeOfDay.minutes`\n | `orderScheduling.preorderOptions.method.type`\n | `orderScheduling.preorderOptions.fulfillmentTimesDisplay.type`\n | `orderScheduling.type`\n | `tags.privateTags.tagIds`,\n 8\n >\n >;\n}\n\nexport function deleteOperation(\n httpClient: HttpClient\n): DeleteOperationSignature {\n return (operationId: string) =>\n universalDeleteOperation(\n operationId,\n // @ts-ignore\n { httpClient }\n );\n}\n\ninterface DeleteOperationSignature {\n /**\n * Deletes an operation.\n * @param - ID of the operation to delete.\n * @deprecated\n */\n (operationId: string): Promise<void>;\n}\n\nexport function queryOperation(\n httpClient: HttpClient\n): QueryOperationSignature {\n return () =>\n universalQueryOperation(\n // @ts-ignore\n { httpClient }\n );\n}\n\ninterface QueryOperationSignature {\n /**\n * Creates a query to retrieve a list of operations.\n *\n * The `queryOperations()` function builds a query to retrieve a list of operations and returns an `OperationsQueryBuilder` object.\n *\n * The returned object contains the query definition, which is used to run the query using the [`find()`](/operations/operations-query-builder/find) function.\n *\n * You can refine the query by chaining `OperationsQueryBuilder` functions onto the query. `OperationsQueryBuilder` functions enable you to filter, sort, and control the results that `queryOperations()` returns.\n *\n * `queryOperations()` runs with the following `OperationsQueryBuilder` defaults, which you can override:\n *\n * * [`limit(50)`](/operations/operations-query-builder/limit)\n * * [`ascending('entityId')`](/operations/operations-methods-query-builder/ascending)\n *\n * The following `OperationsQueryBuilder` functions are supported for `queryOperations()`. For a full description of the operations object, see the object returned for the [`items`](/operations/operations-query-result/items) property in `OperationsQueryResult`.\n */\n (): OperationsQueryBuilder;\n}\n\nexport function listOperations(\n httpClient: HttpClient\n): ListOperationsSignature {\n return () =>\n universalListOperations(\n // @ts-ignore\n { httpClient }\n );\n}\n\ninterface ListOperationsSignature {\n /**\n * Retrieves a list of operations.\n * The result will be sorted by created date in ascending order.\n */\n (): Promise<\n NonNullablePaths<\n ListOperationsResponse,\n | `operations`\n | `operations.${number}.onlineOrderingStatus`\n | `operations.${number}.defaultFulfillmentType`\n | `operations.${number}.orderScheduling.asapOptions.asapFutureHandlingType`\n | `operations.${number}.orderScheduling.type`,\n 6\n >\n >;\n}\n\nexport function listAvailableFulfillmentOptions(\n httpClient: HttpClient\n): ListAvailableFulfillmentOptionsSignature {\n return (operationId: string, options?: ListAvailableFulfillmentOptions) =>\n universalListAvailableFulfillmentOptions(\n operationId,\n options,\n // @ts-ignore\n { httpClient }\n );\n}\n\ninterface ListAvailableFulfillmentOptionsSignature {\n /**\n * Retrieves a list of available fulfillment options.\n *\n * What makes a fulfillment option available is whether you can submit an order given the scheduling configurations and the fulfillment method's availability.\n * When a delivery address is not provided in the input, our system retrieves a list encompassing all types of fulfillment methods.\n * Conversely, if a delivery address` is given, the response may includes non-delivery fulfillment options along with delivery fulfillment methods that are applicable to the given address, ensuring the address falls within the defined delivery area of these methods.\n * @param - Operation ID. Returned fulfillment options will belong to this operation.\n */\n (operationId: string, options?: ListAvailableFulfillmentOptions): Promise<\n NonNullablePaths<\n ListAvailableFulfillmentOptionsResponse,\n | `pickupConfigured`\n | `deliveryConfigured`\n | `fulfillmentOptions`\n | `fulfillmentOptions.${number}.maxTimeOptions`\n | `fulfillmentOptions.${number}.durationRangeOptions.minDuration`\n | `fulfillmentOptions.${number}.durationRangeOptions.maxDuration`\n | `fulfillmentOptions.${number}.timeWindowsOptions.durationInMinutes`\n | `fulfillmentOptions.${number}.type`\n | `fulfillmentOptions.${number}.availability.asapHandlingAvailable`\n | `fulfillmentOptions.${number}.fulfillmentTimeType`\n | `fulfillmentOptions.${number}.fulfillmentTimesDisplayType`,\n 5\n >\n >;\n}\n\nexport function listFirstAvailableTimeSlotForFulfillmentTypes(\n httpClient: HttpClient\n): ListFirstAvailableTimeSlotForFulfillmentTypesSignature {\n return (\n operationId: string,\n options?: ListFirstAvailableTimeSlotForFulfillmentTypesOptions\n ) =>\n universalListFirstAvailableTimeSlotForFulfillmentTypes(\n operationId,\n options,\n // @ts-ignore\n { httpClient }\n );\n}\n\ninterface ListFirstAvailableTimeSlotForFulfillmentTypesSignature {\n /**\n * Retrieves a list of available time slots for each fulfillment type.\n *\n * Each time slot is the first available time slot for the given fulfillment type.\n * @param - Operation ID.\n * Returned fulfillment options will belong to this operation.\n * @deprecated\n */\n (\n operationId: string,\n options?: ListFirstAvailableTimeSlotForFulfillmentTypesOptions\n ): Promise<\n NonNullablePaths<\n ListFirstAvailableTimeSlotForFulfillmentTypesResponse,\n | `timeSlots`\n | `timeSlots.${number}.fulfilmentType`\n | `timeSlots.${number}.startsNow`,\n 4\n >\n >;\n}\n\nexport function calculateFirstAvailableTimeSlotPerFulfillmentType(\n httpClient: HttpClient\n): CalculateFirstAvailableTimeSlotPerFulfillmentTypeSignature {\n return (\n operationId: string,\n options?: CalculateFirstAvailableTimeSlotPerFulfillmentTypeOptions\n ) =>\n universalCalculateFirstAvailableTimeSlotPerFulfillmentType(\n operationId,\n options,\n // @ts-ignore\n { httpClient }\n );\n}\n\ninterface CalculateFirstAvailableTimeSlotPerFulfillmentTypeSignature {\n /**\n * Retrieves the first available time slot of each fulfillment type for a specified operation.\n *\n * The response includes a time slot with the delivery fulfillment type only if you specify a delivery address.\n * Only fulfillment methods capable of delivering to the specified address are considered when calculating time slot availability.\n * @param - Operation ID.\n */\n (\n operationId: string,\n options?: CalculateFirstAvailableTimeSlotPerFulfillmentTypeOptions\n ): Promise<\n NonNullablePaths<\n CalculateFirstAvailableTimeSlotPerFulfillmentTypeResponse,\n | `timeslotsPerFulfillmentType`\n | `timeslotsPerFulfillmentType.${number}.timeSlot.orderSchedulingType`\n | `timeslotsPerFulfillmentType.${number}.fulfilmentType`,\n 5\n >\n >;\n}\n\nexport function listFirstAvailableTimeSlotsForOperations(\n httpClient: HttpClient\n): ListFirstAvailableTimeSlotsForOperationsSignature {\n return (\n operationIds: string[],\n options?: ListFirstAvailableTimeSlotsForOperationsOptions\n ) =>\n universalListFirstAvailableTimeSlotsForOperations(\n operationIds,\n options,\n // @ts-ignore\n { httpClient }\n );\n}\n\ninterface ListFirstAvailableTimeSlotsForOperationsSignature {\n /**\n * Retrieves a list of available time slots for each fulfillment type.\n *\n * Each time slot is the first available time slot for the given fulfillment type.\n * @param - Operation ID.\n * Returned fulfillment options will belong to this operation.\n * @deprecated\n */\n (\n operationIds: string[],\n options?: ListFirstAvailableTimeSlotsForOperationsOptions\n ): Promise<\n NonNullablePaths<\n ListFirstAvailableTimeSlotsForOperationsResponse,\n `timeSlots` | `timeSlots.${number}.operationId`,\n 4\n >\n >;\n}\n\nexport function calculateFirstAvailableTimeSlotsPerOperation(\n httpClient: HttpClient\n): CalculateFirstAvailableTimeSlotsPerOperationSignature {\n return (\n operationIds: string[],\n options?: CalculateFirstAvailableTimeSlotsPerOperationOptions\n ) =>\n universalCalculateFirstAvailableTimeSlotsPerOperation(\n operationIds,\n options,\n // @ts-ignore\n { httpClient }\n );\n}\n\ninterface CalculateFirstAvailableTimeSlotsPerOperationSignature {\n /**\n * Retrieves the first available time slot of each fulfillment type for each specified operation.\n *\n * The response includes time slots with delivery fulfillment types only if you specify a delivery address.\n * Only fulfillment methods capable of delivering to the specified address are considered when calculating time slot availability.\n * @param - Operation IDs.\n */\n (\n operationIds: string[],\n options?: CalculateFirstAvailableTimeSlotsPerOperationOptions\n ): Promise<\n NonNullablePaths<\n CalculateFirstAvailableTimeSlotsPerOperationResponse,\n `timeSlotsPerOperation` | `timeSlotsPerOperation.${number}.operationId`,\n 4\n >\n >;\n}\n\nexport function listFirstAvailableTimeSlotsForMenus(\n httpClient: HttpClient\n): ListFirstAvailableTimeSlotsForMenusSignature {\n return (\n operationId: string,\n options?: ListFirstAvailableTimeSlotsForMenusOptions\n ) =>\n universalListFirstAvailableTimeSlotsForMenus(\n operationId,\n options,\n // @ts-ignore\n { httpClient }\n );\n}\n\ninterface ListFirstAvailableTimeSlotsForMenusSignature {\n /**\n * For each menu, retrieves the first available time slots for each fulfillment type.\n * @param - Operation ID.\n * Returned timeslots that are belong to this operation.\n * @deprecated\n */\n (\n operationId: string,\n options?: ListFirstAvailableTimeSlotsForMenusOptions\n ): Promise<\n NonNullablePaths<\n ListFirstAvailableTimeSlotsForMenusResponse,\n `timeSlotsPerMenu`,\n 2\n >\n >;\n}\n\nexport function calculateFirstAvailableTimeSlotsPerMenu(\n httpClient: HttpClient\n): CalculateFirstAvailableTimeSlotsPerMenuSignature {\n return (\n operationId: string,\n options?: CalculateFirstAvailableTimeSlotsPerMenuOptions\n ) =>\n universalCalculateFirstAvailableTimeSlotsPerMenu(\n operationId,\n options,\n // @ts-ignore\n { httpClient }\n );\n}\n\ninterface CalculateFirstAvailableTimeSlotsPerMenuSignature {\n /**\n * Retrieves the first available time slot of each fulfillment type for each specified menu.\n *\n * The response includes time slots with delivery fulfillment types only if you specify a delivery address.\n * Only fulfillment methods capable of delivering to the specified address are considered when calculating time slot availability.\n * @param - Operation ID.\n */\n (\n operationId: string,\n options?: CalculateFirstAvailableTimeSlotsPerMenuOptions\n ): Promise<\n NonNullablePaths<\n CalculateFirstAvailableTimeSlotsPerMenuResponse,\n `timeSlotsPerMenu`,\n 2\n >\n >;\n}\n\nexport function listAvailableTimeSlotsForDate(\n httpClient: HttpClient\n): ListAvailableTimeSlotsForDateSignature {\n return (\n operationId: string,\n options?: NonNullablePaths<\n ListAvailableTimeSlotsForDateOptions,\n `date` | `date.day` | `date.month` | `date.year`,\n 3\n >\n ) =>\n universalListAvailableTimeSlotsForDate(\n operationId,\n options,\n // @ts-ignore\n { httpClient }\n );\n}\n\ninterface ListAvailableTimeSlotsForDateSignature {\n /**\n * Retrieves a list of the available time slots for a given date.\n * @param - Operation ID.\n * The returned fulfillment options will belong to this operation.\n * @deprecated\n */\n (\n operationId: string,\n options?: NonNullablePaths<\n ListAvailableTimeSlotsForDateOptions,\n `date` | `date.day` | `date.month` | `date.year`,\n 3\n >\n ): Promise<\n NonNullablePaths<\n ListAvailableTimeSlotsForDateResponse,\n | `timeSlots`\n | `timeSlots.${number}.fulfilmentType`\n | `timeSlots.${number}.startsNow`,\n 4\n >\n >;\n}\n\nexport function calculateAvailableTimeSlotsForDate(\n httpClient: HttpClient\n): CalculateAvailableTimeSlotsForDateSignature {\n return (\n operationId: string,\n options?: NonNullablePaths<\n CalculateAvailableTimeSlotsForDateOptions,\n `date` | `date.day` | `date.month` | `date.year`,\n 3\n >\n ) =>\n universalCalculateAvailableTimeSlotsForDate(\n operationId,\n options,\n // @ts-ignore\n { httpClient }\n );\n}\n\ninterface CalculateAvailableTimeSlotsForDateSignature {\n /**\n * Retrieves all available time slots of each fulfillment type for the specified date.\n *\n * The response includes time slots with delivery fulfillment types only if you specify a delivery address.\n * Only fulfillment methods capable of delivering to the specified address are considered when calculating time slot availability.\n * @param - Operation ID.\n */\n (\n operationId: string,\n options?: NonNullablePaths<\n CalculateAvailableTimeSlotsForDateOptions,\n `date` | `date.day` | `date.month` | `date.year`,\n 3\n >\n ): Promise<\n NonNullablePaths<\n CalculateAvailableTimeSlotsForDateResponse,\n | `timeslotsPerFulfillmentType`\n | `timeslotsPerFulfillmentType.${number}.timeSlot.orderSchedulingType`\n | `timeslotsPerFulfillmentType.${number}.fulfilmentType`,\n 5\n >\n >;\n}\n\nexport function listAvailableDatesInRange(\n httpClient: HttpClient\n): ListAvailableDatesInRangeSignature {\n return (\n operationId: string,\n options?: NonNullablePaths<\n ListAvailableDatesInRangeOptions,\n `from` | `until`,\n 2\n >\n ) =>\n universalListAvailableDatesInRange(\n operationId,\n options,\n // @ts-ignore\n { httpClient }\n );\n}\n\ninterface ListAvailableDatesInRangeSignature {\n /**\n * Retrieves a list of the available dates in a given time range.\n *\n * A date is considered available if it has at least one available time slot.\n * @param - Operation ID.\n * The returned fulfillment options will belong to this operation.\n * @deprecated\n */\n (\n operationId: string,\n options?: NonNullablePaths<\n ListAvailableDatesInRangeOptions,\n `from` | `until`,\n 2\n >\n ): Promise<\n NonNullablePaths<\n ListAvailableDatesInRangeResponse,\n `availableDates` | `availableDates.${number}.fulfilmentType`,\n 4\n >\n >;\n}\n\nexport function calculateAvailableDatesInRange(\n httpClient: HttpClient\n): CalculateAvailableDatesInRangeSignature {\n return (\n operationId: string,\n options?: NonNullablePaths<\n CalculateAvailableDatesInRangeOptions,\n `from` | `until`,\n 2\n >\n ) =>\n universalCalculateAvailableDatesInRange(\n operationId,\n options,\n // @ts-ignore\n { httpClient }\n );\n}\n\ninterface CalculateAvailableDatesInRangeSignature {\n /**\n * Retrieves all available dates of each fulfillment type within the specified time range.\n *\n * A date is considered available if it has at least one available time slot.\n *\n * The response includes time slots with delivery fulfillment types only if you specify a delivery address.\n * Only fulfillment methods capable of delivering to the specified address are considered when calculating time slot availability.\n * @param - Operation ID.\n */\n (\n operationId: string,\n options?: NonNullablePaths<\n CalculateAvailableDatesInRangeOptions,\n `from` | `until`,\n 2\n >\n ): Promise<\n NonNullablePaths<\n CalculateAvailableDatesInRangeResponse,\n | `availableDatesPerFulfillmentType`\n | `availableDatesPerFulfillmentType.${number}.fulfilmentType`,\n 4\n >\n >;\n}\n\nexport function validateOperationAddress(\n httpClient: HttpClient\n): ValidateOperationAddressSignature {\n return (operationId: string) =>\n universalValidateOperationAddress(\n operationId,\n // @ts-ignore\n { httpClient }\n );\n}\n\ninterface ValidateOperationAddressSignature {\n /**\n * Validates an operation's address\n *\n * Checks if the address linked to the operation (stored in business_location_details) is valid.\n * An address is considered valid if it has:\n * 1. A non-empty formatted address\n * 2. Valid geocode coordinates (not 0,0)\n * 3. A non-empty country field\n *\n * If the address is invalid, the response includes specific violations.\n * @param - The ID of the operation to validate\n * @returns Response message for address validation\n */\n (operationId: string): Promise<\n NonNullablePaths<\n ValidateOperationAddressResponse,\n `valid` | `violations` | `violations.${number}.type`,\n 4\n >\n >;\n}\n\nexport function bulkUpdateOperationTags(\n httpClient: HttpClient\n): BulkUpdateOperationTagsSignature {\n return (operationIds: string[], options?: BulkUpdateOperationTagsOptions) =>\n universalBulkUpdateOperationTags(\n operationIds,\n options,\n // @ts-ignore\n { httpClient }\n );\n}\n\ninterface BulkUpdateOperationTagsSignature {\n /**\n * Synchronously update tags on multiple operations.\n * If you specify a tag in both `assignTags` and `unassignTags`, it is assigned.\n * @param - IDs of the operations to update tags for.\n */\n (operationIds: string[], options?: BulkUpdateOperationTagsOptions): Promise<\n NonNullablePaths<\n BulkUpdateOperationTagsResponse,\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 __applicationErrorsType?: BulkUpdateOperationTagsApplicationErrors;\n }\n >;\n}\n\nexport function bulkUpdateOperationTagsByFilter(\n httpClient: HttpClient\n): BulkUpdateOperationTagsByFilterSignature {\n return (\n filter: Record<string, any>,\n options?: BulkUpdateOperationTagsByFilterOptions\n ) =>\n universalBulkUpdateOperationTagsByFilter(\n filter,\n options,\n // @ts-ignore\n { httpClient }\n );\n}\n\ninterface BulkUpdateOperationTagsByFilterSignature {\n /**\n * Asynchronously update tags on multiple operations according to the specified filter.\n * If a filter isn't specified, this method updates all operations.\n * If you specify a tag in both `assignTags` and `unassignTags`, it is assigned.\n * @param - Filter that determines which operations to update tags for.\n */\n (\n filter: Record<string, any>,\n options?: BulkUpdateOperationTagsByFilterOptions\n ): Promise<\n NonNullablePaths<BulkUpdateOperationTagsByFilterResponse, `jobId`, 2> & {\n __applicationErrorsType?: BulkUpdateOperationTagsByFilterApplicationErrors;\n }\n >;\n}\n\nexport const onOperationCreated = EventDefinition(\n 'wix.restaurants.operations.v1.operation_created',\n true,\n (event: OperationCreatedEnvelope) =>\n renameKeysFromRESTResponseToSDKResponse(\n transformPaths(event, [\n {\n transformFn: transformRESTTimestampToSDKTimestamp,\n paths: [\n { path: 'entity.createdDate' },\n { path: 'entity.updatedDate' },\n { path: 'entity.pausedUntilOptions.time' },\n { path: 'metadata.eventTime' },\n ],\n },\n {\n transformFn: transformRESTAddressToSDKAddress,\n paths: [{ path: 'entity.businessLocationDetails.address' }],\n },\n ])\n )\n)<OperationCreatedEnvelope>();\nexport const onOperationDeleted = EventDefinition(\n 'wix.restaurants.operations.v1.operation_deleted',\n true,\n (event: OperationDeletedEnvelope) =>\n renameKeysFromRESTResponseToSDKResponse(\n transformPaths(event, [\n {\n transformFn: transformRESTTimestampToSDKTimestamp,\n paths: [\n { path: 'entity.createdDate' },\n { path: 'entity.updatedDate' },\n { path: 'entity.pausedUntilOptions.time' },\n { path: 'metadata.eventTime' },\n ],\n },\n {\n transformFn: transformRESTAddressToSDKAddress,\n paths: [{ path: 'entity.businessLocationDetails.address' }],\n },\n ])\n )\n)<OperationDeletedEnvelope>();\nexport const onOperationUpdated = EventDefinition(\n 'wix.restaurants.operations.v1.operation_updated',\n true,\n (event: OperationUpdatedEnvelope) =>\n renameKeysFromRESTResponseToSDKResponse(\n transformPaths(event, [\n {\n transformFn: transformRESTTimestampToSDKTimestamp,\n paths: [\n { path: 'entity.createdDate' },\n { path: 'entity.updatedDate' },\n { path: 'entity.pausedUntilOptions.time' },\n { path: 'metadata.eventTime' },\n ],\n },\n {\n transformFn: transformRESTAddressToSDKAddress,\n paths: [{ path: 'entity.businessLocationDetails.address' }],\n },\n ])\n )\n)<OperationUpdatedEnvelope>();\n\nexport {\n ActionEvent,\n ActivationType,\n ActivePeriod,\n Address,\n AddressHint,\n AddressLocation,\n AddressViolation,\n App,\n ApplicationError,\n AsapFutureHandlingType,\n AsapOrderPacing,\n AsapOrderPacingPacingAvailabilityOneOf,\n AsapOrderScheduling,\n AsapOrderSchedulingAsapFutureHandlingOptionsOneOf,\n AsapPacingWindowType,\n AsapPreorderType,\n AsapScheduling,\n AsapSchedulingAsapPreorderOneOf,\n AsapSchedulingPreparationTimeOneOf,\n Asset,\n AvailabilityException,\n BaseEventMetadata,\n BulkActionMetadata,\n BulkUpdateOperationTagsByFilterOptions,\n BulkUpdateOperationTagsByFilterRequest,\n BulkUpdateOperationTagsByFilterResponse,\n BulkUpdateOperationTagsOptions,\n BulkUpdateOperationTagsRequest,\n BulkUpdateOperationTagsResponse,\n BulkUpdateOperationTagsResult,\n BusinessDaysAheadHandling,\n BusinessDaysPreorder,\n BusinessLocationDetails,\n BusinessSchedule,\n CalculateAvailableDatesInRangeOptions,\n CalculateAvailableDatesInRangeRequest,\n CalculateAvailableDatesInRangeResponse,\n CalculateAvailableTimeSlotsForDateOptions,\n CalculateAvailableTimeSlotsForDateRequest,\n CalculateAvailableTimeSlotsForDateResponse,\n CalculateFirstAvailableTimeSlotPerFulfillmentTypeOptions,\n CalculateFirstAvailableTimeSlotPerFulfillmentTypeRequest,\n CalculateFirstAvailableTimeSlotPerFulfillmentTypeResponse,\n CalculateFirstAvailableTimeSlotsPerMenuOptions,\n CalculateFirstAvailableTimeSlotsPerMenuRequest,\n CalculateFirstAvailableTimeSlotsPerMenuResponse,\n CalculateFirstAvailableTimeSlotsPerOperationOptions,\n CalculateFirstAvailableTimeSlotsPerOperationRequest,\n CalculateFirstAvailableTimeSlotsPerOperationResponse,\n Categories,\n ChangeContext,\n ChangeContextPayloadOneOf,\n CommonAddress,\n CommonAddressStreetOneOf,\n ConsentPolicy,\n CreateOperationRequest,\n CreateOperationResponse,\n CursorPaging,\n CursorPagingMetadata,\n CursorQuery,\n CursorQueryPagingMethodOneOf,\n Cursors,\n CustomTag,\n DayAndTime,\n DayOfWeek,\n DayOfWeekAvailability,\n DeleteContext,\n DeleteOperationRequest,\n DeleteOperationResponse,\n DeleteStatus,\n DeliveryDetails,\n DeliveryProfileConfiguredForOperation,\n DomainEvent,\n DomainEventBodyOneOf,\n DurationRange,\n Empty,\n EntitiesDayOfWeek,\n EntityCreatedEvent,\n EntityDeletedEvent,\n EntityUpdatedEvent,\n EventMetadata,\n ExtendedFields,\n File,\n FirstFulfillmentTimeSlotsPerMenu,\n FulfillmentAddress,\n FulfillmentDetails,\n FulfillmentDetailsFulfillmentTimeOptionsOneOf,\n FulfillmentInfo,\n FulfillmentInfoFulfillmentTimeOneOf,\n FulfillmentOption,\n FulfillmentOptionAvailability,\n FulfillmentOptionFulfillmentTimeOptionsOneOf,\n FulfillmentOptionFulfillmentTimesDisplayOptionsOneOf,\n FulfillmentOptionFulfillmentTypeOptionsOneOf,\n FulfillmentTimeSlot,\n FulfillmentTimeSlotsPerMenu,\n FulfillmentTimeType,\n FulfillmentTimesDisplayConfig,\n FulfillmentTimesDisplayConfigFulfillmentTimesDisplayOptionsOneOf,\n FulfillmentTimesDisplayType,\n FulfillmentTimesType,\n FulfillmentType,\n FulfillmentTypeAvailableDates,\n GeoCoordinates,\n GetExpectedFulfillmentSelectionRequest,\n GetExpectedFulfillmentSelectionResponse,\n GetOperationRequest,\n GetOperationResponse,\n IdentificationData,\n IdentificationDataIdOneOf,\n ImmutableFields,\n InvalidateCache,\n InvalidateCacheGetByOneOf,\n ItemMetadata,\n ListAvailableDatesInRangeOptions,\n ListAvailableDatesInRangeRequest,\n ListAvailableDatesInRangeResponse,\n ListAvailableFulfillmentOptions,\n ListAvailableFulfillmentOptionsRequest,\n ListAvailableFulfillmentOptionsResponse,\n ListAvailableTimeSlotsForDateOptions,\n ListAvailableTimeSlotsForDateRequest,\n ListAvailableTimeSlotsForDateResponse,\n ListFirstAvailableTimeSlotForFulfillmentTypesOptions,\n ListFirstAvailableTimeSlotForFulfillmentTypesRequest,\n ListFirstAvailableTimeSlotForFulfillmentTypesResponse,\n ListFirstAvailableTimeSlotsForMenusOptions,\n ListFirstAvailableTimeSlotsForMenusRequest,\n ListFirstAvailableTimeSlotsForMenusResponse,\n ListFirstAvailableTimeSlotsForOperationsOptions,\n ListFirstAvailableTimeSlotsForOperationsRequest,\n ListFirstAvailableTimeSlotsForOperationsResponse,\n ListOperationIdsRequest,\n ListOperationIdsResponse,\n ListOperationsInternalRequest,\n ListOperationsInternalResponse,\n ListOperationsRequest,\n ListOperationsResponse,\n Locale,\n MessageEnvelope,\n MetaSiteSpecialEvent,\n MetaSiteSpecialEventPayloadOneOf,\n MethodType,\n Multilingual,\n Namespace,\n NamespaceChanged,\n OdeditorAssigned,\n OdeditorUnassigned,\n OnlineOrderingPausedUntilOptions,\n OnlineOrderingStatusType,\n Operation,\n OperationCreatedEnvelope,\n OperationDeletedEnvelope,\n OperationOnlineOrderingStatusOptionsOneOf,\n OperationTimeSlot,\n OperationUpdatedEnvelope,\n OperationsDataCloningCompleted,\n OperationsQueryBuilder,\n OperationsQueryResult,\n OrderScheduling,\n OrderSchedulingOrderSchedulingOptionsOneOf,\n OrderSchedulingType,\n Page,\n PagingMetadata,\n PicassoAssigned,\n PicassoUnassigned,\n PickupDetails,\n PlacementType,\n PreOrderPacing,\n PreOrderPacingPacingAvailabilityOneOf,\n PreorderMethod,\n PreorderMethodMethodOptionsOneOf,\n PreorderPacingWindowType,\n PreorderScheduling,\n PreparationTime,\n PreparationTimePreparationTimeType,\n PreparationTimeTimeSpecificationOneOf,\n PreparationTimeType,\n Properties,\n PropertiesChange,\n QueryOperationRequest,\n QueryOperationResponse,\n ResolutionMethod,\n RestoreInfo,\n Scheduling,\n SchedulingSchedulingOptionsOneOf,\n SchedulingType,\n ServiceProvisioned,\n ServiceRemoved,\n SiteCloned,\n SiteCreated,\n SiteCreatedContext,\n SiteDeleted,\n SiteHardDeleted,\n SiteMarkedAsTemplate,\n SiteMarkedAsWixSite,\n SitePropertiesEvent,\n SitePropertiesNotification,\n SitePublished,\n SitePurgedExternally,\n SiteRenamed,\n SiteTransferred,\n SiteUndeleted,\n SiteUnpublished,\n SiteUrlChanged,\n SortOrder,\n Sorting,\n SpecialHourPeriod,\n State,\n StreetAddress,\n StudioAssigned,\n StudioUnassigned,\n Subdivision,\n SubdivisionType,\n SupportedLanguage,\n TagList,\n Tags,\n TimeBounded,\n TimeDuration,\n TimeDurationRange,\n TimeOfDay,\n TimeOfDayRange,\n TimePeriod,\n TimeSlot,\n TimeSlotForFulfillment,\n TimeSlotForFulfillmentTimeSlotStatus,\n TimeSlotForOperation,\n TimeSlotStatus,\n TimeUnit,\n TimeWindowDisplayConfig,\n Translation,\n URI,\n UpdateDeliveryRegionsRequest,\n UpdateDeliveryRegionsResponse,\n UpdateImmutableFieldsRequest,\n UpdateImmutableFieldsResponse,\n UpdateOperation,\n UpdateOperationRequest,\n UpdateOperationResponse,\n V1Address,\n V1AddressLocation,\n V1StreetAddress,\n V4SiteCreated,\n ValidateOperationAddressRequest,\n ValidateOperationAddressResponse,\n ViolationType,\n WebhookIdentityType,\n WeeklyActiveDays,\n WeeklyActivePeriods,\n WeeklySchedule,\n _Date,\n} from './restaurants-operations-v1-operation-operations.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 { HttpClient, HttpResponse, NonNullablePaths } from '@wix/sdk-types';\nimport * as ambassadorWixRestaurantsOperationsV1Operation from './restaurants-operations-v1-operation-operations.http.js';\n// @ts-ignore\nimport { transformSDKAddressToRESTAddress } from '@wix/sdk-runtime/transformations/address';\nimport { transformRESTAddressToSDKAddress } from '@wix/sdk-runtime/transformations/address';\nimport { transformPaths } from '@wix/sdk-runtime/transformations/transform-paths';\n\n/**\n * An operation is a service a restaurant offers that includes various aspects of its online ordering.\n * You can define default fulfillments, service fees, and scheduling requirements for each operation.\n */\nexport interface Operation extends OperationOnlineOrderingStatusOptionsOneOf {\n /** Options for online ordering status. Required when `onlineOrderingStatus` is `PAUSED_UNTIL`. */\n pausedUntilOptions?: OnlineOrderingPausedUntilOptions;\n /**\n * Operation ID.\n * @format GUID\n * @readonly\n */\n _id?: string | null;\n /**\n * Revision number. Increments by 1 each time the operation is updated.\n * To prevent conflicting changes,\n * the existing `revision` must be specified when updating an operation.\n * @readonly\n */\n revision?: string | null;\n /**\n * Date and time the operation was created.\n * @readonly\n */\n _createdDate?: Date | null;\n /**\n * Date and time the operation was updated.\n * @readonly\n */\n _updatedDate?: Date | null;\n /** Operation name. */\n name?: string | null;\n /**\n * Whether the operation is the default operation. <br />\n * Default: `false`.\n */\n default?: boolean | null;\n /**\n * IDs of the fulfillment methods ([SDK](https://dev.wix.com/docs/sdk/backend-modules/restaurants/wix-restaurants-new/fulfillment-methods/introduction) | [REST](https://dev.wix.com/docs/rest/api-reference/wix-restaurants/fulfillment-methods/introduction)) associated with the operation.\n * @format GUID\n * @maxSize 500\n */\n fulfillmentIds?: string[] | null;\n /** Online ordering status of the operation. <br /> */\n onlineOrderingStatus?: OnlineOrderingStatusTypeWithLiterals;\n /** Default fulfillment type of the operation. */\n defaultFulfillmentType?: FulfillmentTypeWithLiterals;\n /** Information about when an order can be placed for. */\n orderScheduling?: OrderScheduling;\n /**\n * ID of the operation group this operation belongs to.\n * @format GUID\n * @immutable\n */\n operationGroupId?: string | null;\n /**\n * ID of the business location ([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)) of this operation.\n * @format GUID\n * @immutable\n * @readonly\n */\n businessLocationId?: string | null;\n /** Extended fields. */\n extendedFields?: ExtendedFields;\n /** Tags ([SDK](https://dev.wix.com/docs/sdk/backend-modules/tags/tags/introduction) | [REST](https://dev.wix.com/docs/rest/business-management/tags/introduction)) used to classify and sort different types of operations. */\n tags?: Tags;\n}\n\n/** @oneof */\nexport interface OperationOnlineOrderingStatusOptionsOneOf {\n /** Options for online ordering status. Required when `onlineOrderingStatus` is `PAUSED_UNTIL`. */\n pausedUntilOptions?: OnlineOrderingPausedUntilOptions;\n}\n\n/** Information about when an order can be placed for. */\nexport interface Scheduling extends SchedulingSchedulingOptionsOneOf {\n /** Options for scheduling. Required when `type` is `ASAP`. */\n asapOptions?: AsapScheduling;\n /** Options for scheduling. Required when `type` is `PREORDER`. */\n preorderOptions?: PreorderScheduling;\n /**\n * Scheduling type. <br />\n * - When `ASAP`, `asapOptions` is a required field.\n * - When `PREORDER`, `preorderOptions` is a required field.\n */\n type?: SchedulingTypeWithLiterals;\n}\n\n/** @oneof */\nexport interface SchedulingSchedulingOptionsOneOf {\n /** Options for scheduling. Required when `type` is `ASAP`. */\n asapOptions?: AsapScheduling;\n /** Options for scheduling. Required when `type` is `PREORDER`. */\n preorderOptions?: PreorderScheduling;\n}\n\n/** Scheduling type enum. */\nexport enum SchedulingType {\n /** Unknown scheduling type. */\n UNKNOWN_SCHEDULING = 'UNKNOWN_SCHEDULING',\n /** Orders can be scheduled for the future and to be handled immediately. */\n ASAP = 'ASAP',\n /** Orders can be scheduled only for the future. */\n PREORDER = 'PREORDER',\n}\n\n/** @enumType */\nexport type SchedulingTypeWithLiterals =\n | SchedulingType\n | 'UNKNOWN_SCHEDULING'\n | 'ASAP'\n | 'PREORDER';\n\n/** Options for scheduling. Required if `type` is `ASAP`. */\nexport interface AsapScheduling\n extends AsapSchedulingPreparationTimeOneOf,\n AsapSchedulingAsapPreorderOneOf {\n /** Options for preparation time. Required when `type` is `MAX_TIME`. */\n maxOptions?: TimeDuration;\n /** Options for preparation time. Required when `type` is `TIME_RANGE`. */\n rangeOptions?: TimeDurationRange;\n /** Information for when orders must be made a set number of business days in advance. */\n businessDaysPreorderOptions?: BusinessDaysPreorder;\n /** How to define the time needed to prepare an order. */\n type?: PreparationTimeTypeWithLiterals;\n /**\n * Indication of whether it is possible to place an order for a later time on the same day.\n * @deprecated Indication of whether it is possible to place an order for a later time on the same day.\n * @replacedBy asap_preorder_type\n * @targetRemovalDate 2023-12-28\n */\n allowSameDayPreorder?: boolean | null;\n /** The type of preorder allowed for the ASAP scheduling. */\n asapPreorderType?: AsapPreorderTypeWithLiterals;\n}\n\n/** @oneof */\nexport interface AsapSchedulingPreparationTimeOneOf {\n /** Options for preparation time. Required when `type` is `MAX_TIME`. */\n maxOptions?: TimeDuration;\n /** Options for preparation time. Required when `type` is `TIME_RANGE`. */\n rangeOptions?: TimeDurationRange;\n}\n\n/** @oneof */\nexport interface AsapSchedulingAsapPreorderOneOf {\n /** Information for when orders must be made a set number of business days in advance. */\n businessDaysPreorderOptions?: BusinessDaysPreorder;\n}\n\n/** Preparation time type enum. */\nexport enum PreparationTimeType {\n /** Unknown preparation time type. */\n UNKNOWN_PREPARATION_TIME = 'UNKNOWN_PREPARATION_TIME',\n /** Preparation time that is bounded by a maximum time. */\n MAX = 'MAX',\n /** Preparation time that is bounded by a range of times. */\n RANGE = 'RANGE',\n}\n\n/** @enumType */\nexport type PreparationTimeTypeWithLiterals =\n | PreparationTimeType\n | 'UNKNOWN_PREPARATION_TIME'\n | 'MAX'\n | 'RANGE';\n\n/** Time duration. */\nexport interface TimeDuration {\n /** Unit of time for the duration. */\n timeUnit?: TimeUnitWithLiterals;\n /** Duration value. Unit of time specified in `timeUnit`. */\n duration?: number | null;\n}\n\n/** Time unit enum. */\nexport enum TimeUnit {\n /** Unknown time unit. */\n UNKNOWN_TIME_UNIT = 'UNKNOWN_TIME_UNIT',\n /** Minutes time unit. */\n MINUTES = 'MINUTES',\n /** Hours time unit. */\n HOURS = 'HOURS',\n /** Days time unit. */\n DAYS = 'DAYS',\n}\n\n/** @enumType */\nexport type TimeUnitWithLiterals =\n | TimeUnit\n | 'UNKNOWN_TIME_UNIT'\n | 'MINUTES'\n | 'HOURS'\n | 'DAYS';\n\n/** Time range for preparation. */\nexport interface TimeDurationRange {\n /** Time unit for the time range. */\n timeUnit?: TimeUnitWithLiterals;\n /**\n * Minimum duration value. Unit of time specified in `timeUnit`.\n * @min 1\n */\n minDuration?: number | null;\n /**\n * Maximum duration value. Unit of time specified in `timeUnit`.\n * @min 1\n */\n maxDuration?: number | null;\n}\n\n/** Asap preorder type enum. */\nexport enum AsapPreorderType {\n /** Unknown ASAP preorder type. */\n UNKNOWN_ASAP_PREORDER = 'UNKNOWN_ASAP_PREORDER',\n /** Doesn't allow preorder. */\n NO_PREORDER = 'NO_PREORDER',\n /** Allows preorder for a maximum specified number of business days in advance. */\n BUSINESS_DAYS_PREORDER = 'BUSINESS_DAYS_PREORDER',\n}\n\n/** @enumType */\nexport type AsapPreorderTypeWithLiterals =\n | AsapPreorderType\n | 'UNKNOWN_ASAP_PREORDER'\n | 'NO_PREORDER'\n | 'BUSINESS_DAYS_PREORDER';\n\n/** Information for when orders must be made a set number of business days in advance. */\nexport interface BusinessDaysPreorder {\n /**\n * Maximum number of business days an order can be scheduled in advance.\n *\n * When `0`, an order can be scheduled only until the end of the current business day.\n * For any other value, the order can be scheduled for the end of the business day in that many days.\n * For example, `5` means the order can be scheduled for any time before the end of the 5th business day from today (where today is \"day 0\").\n */\n businessDays?: number | null;\n}\n\n/** Order pacing configuration for ASAP scheduling */\nexport interface AsapOrderPacing\n extends AsapOrderPacingPacingAvailabilityOneOf {\n /** Custom availability pattern for when pacing should be active */\n scheduleOptions?: WeeklyActivePeriods;\n /** Whether order pacing is enabled for ASAP orders */\n enabled?: boolean | null;\n /**\n * Maximum number of orders allowed within the pacing window\n * @min 1\n * @max 1000\n */\n maxOrdersInWindow?: number | null;\n /** Type of pacing window duration (currently only 15-minute supported) */\n windowType?: AsapPacingWindowTypeWithLiterals;\n /** When the pacing should be active */\n activationType?: ActivationTypeWithLiterals;\n}\n\n/** @oneof */\nexport interface AsapOrderPacingPacingAvailabilityOneOf {\n /** Custom availability pattern for when pacing should be active */\n scheduleOptions?: WeeklyActivePeriods;\n}\n\n/** ASAP pacing duration type enum */\nexport enum AsapPacingWindowType {\n /** Unknown ASAP pacing duration type */\n UNKNOWN_ASAP_PACING_DURATION = 'UNKNOWN_ASAP_PACING_DURATION',\n /** Fixed 15-minute window */\n FIXED_15_MINUTE = 'FIXED_15_MINUTE',\n}\n\n/** @enumType */\nexport type AsapPacingWindowTypeWithLiterals =\n | AsapPacingWindowType\n | 'UNKNOWN_ASAP_PACING_DURATION'\n | 'FIXED_15_MINUTE';\n\n/** Defines when pacing should be active */\nexport enum ActivationType {\n /** Unknown pacing schedule type */\n UNKNOWN_SCHEDULE = 'UNKNOWN_SCHEDULE',\n /** Pacing is active 24/7 */\n ALWAYS_ACTIVE = 'ALWAYS_ACTIVE',\n /** Pacing follows custom availability pattern */\n SCHEDULE = 'SCHEDULE',\n}\n\n/** @enumType */\nexport type ActivationTypeWithLiterals =\n | ActivationType\n | 'UNKNOWN_SCHEDULE'\n | 'ALWAYS_ACTIVE'\n | 'SCHEDULE';\n\nexport interface WeeklyActivePeriods {\n /**\n * A list of active periods for the days of the week.\n * @maxSize 7\n */\n activePeriods?: ActivePeriod[];\n}\n\nexport interface ActivePeriod {\n /** The day of week this active period relates to. */\n dayOfWeek?: EntitiesDayOfWeekWithLiterals;\n /**\n * A list of active time ranges.\n * @maxSize 50\n */\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\n/** Information about preorders. */\nexport interface PreorderScheduling {\n method?: PreorderMethod;\n /**\n * Configuration of the fulfillment times. <br />\n * Currently, only `TIME_WINDOWS` is supported.\n */\n fulfillmentTimesDisplay?: FulfillmentTimesDisplayConfig;\n}\n\n/** Method for `PREORDER` scheduling type. */\nexport interface PreorderMethod extends PreorderMethodMethodOptionsOneOf {\n /** Options for the method. Required when `type` is `TIME_BOUNDED`. */\n timeBoundedOptions?: TimeBounded;\n /** Options for the method. Required when `type` is `WEEKLY_SCHEDULE`. */\n weeklyScheduleOptions?: WeeklySchedule;\n /**\n * Type of time frame for how long in advance preorders can be made. <br />\n * - When `TIME_BOUNDED`, `timeBoundedOptions` is a required field.\n * - When `WEEKLY_SCHEDULE`, `weeklyScheduleOptions` is a required field.\n */\n type?: MethodTypeWithLiterals;\n}\n\n/** @oneof */\nexport interface PreorderMethodMethodOptionsOneOf {\n /** Options for the method. Required when `type` is `TIME_BOUNDED`. */\n timeBoundedOptions?: TimeBounded;\n /** Options for the method. Required when `type` is `WEEKLY_SCHEDULE`. */\n weeklyScheduleOptions?: WeeklySchedule;\n}\n\n/** Day of the week and time of the day. */\nexport interface DayAndTime {\n /** Day of the week. */\n dayOfWeek?: EntitiesDayOfWeekWithLiterals;\n /** Time of the day. */\n timeOfDay?: TimeOfDay;\n}\n\n/** Preorder method type enum. */\nexport enum MethodType {\n /** Unknown preorder method type. */\n UNKNOWN_TYPE = 'UNKNOWN_TYPE',\n /** Preorder time has a minimum and a maximum. */\n TIME_BOUNDED = 'TIME_BOUNDED',\n /** Preorders have a weekly schedule with a weekly cutoff time. */\n WEEKLY_SCHEDULE = 'WEEKLY_SCHEDULE',\n}\n\n/** @enumType */\nexport type MethodTypeWithLiterals =\n | MethodType\n | 'UNKNOWN_TYPE'\n | 'TIME_BOUNDED'\n | 'WEEKLY_SCHEDULE';\n\n/** Information about the time range when preorders are time bounded. */\nexport interface TimeBounded {\n /** Minimum time required to schedule the order. */\n minTimeInAdvance?: TimeDuration;\n /** Maximum time allowed to schedule the order. */\n maxTimeInAdvance?: TimeDuration;\n}\n\n/** Options for the method. Required when `type` is `WEEKLY_SCHEDULE`. */\nexport interface WeeklySchedule {\n /**\n * The weekly schedule cutoff time. <br />\n * Orders placed before the cutoff time are scheduled for the current week. <br />\n * Orders placed after the cutoff time are scheduled for the next week.\n */\n cutOffTime?: DayAndTime;\n}\n\n/** Way by which fulfillment times should be displayed. */\nexport interface FulfillmentTimesDisplayConfig\n extends FulfillmentTimesDisplayConfigFulfillmentTimesDisplayOptionsOneOf {\n /** Options for fulfillment time. Required when `fulfillmentTimesType` is `TIME_WINDOWS`. */\n timeWindowsOptions?: TimeDuration;\n /**\n * Type of the fulfillment times. <br />\n * When `TIME_WINDOWS`, `timeWindowsOptions` is a required field.\n */\n type?: FulfillmentTimesTypeWithLiterals;\n}\n\n/** @oneof */\nexport interface FulfillmentTimesDisplayConfigFulfillmentTimesDisplayOptionsOneOf {\n /** Options for fulfillment time. Required when `fulfillmentTimesType` is `TIME_WINDOWS`. */\n timeWindowsOptions?: TimeDuration;\n}\n\n/** The fulfillment times type enum. */\nexport enum FulfillmentTimesType {\n /** Unknown fulfillment times type. */\n UNKNOWN_TYPE = 'UNKNOWN_TYPE',\n /** Display fulfillment times as time windows. */\n TIME_WINDOWS = 'TIME_WINDOWS',\n}\n\n/** @enumType */\nexport type FulfillmentTimesTypeWithLiterals =\n | FulfillmentTimesType\n | 'UNKNOWN_TYPE'\n | 'TIME_WINDOWS';\n\n/** Order pacing configuration for preorder scheduling */\nexport interface PreOrderPacing extends PreOrderPacingPacingAvailabilityOneOf {\n /** Custom availability pattern for when pacing should be active */\n scheduleOptions?: WeeklyActiveDays;\n /** Whether order pacing is enabled for preorder */\n enabled?: boolean | null;\n /**\n * Maximum number of orders allowed within the pacing window\n * @min 1\n * @max 1000\n */\n maxOrdersInWindow?: number | null;\n /** Type of pacing window (currently only daily supported) */\n windowType?: PreorderPacingWindowTypeWithLiterals;\n /** When the pacing should be active */\n activationType?: ActivationTypeWithLiterals;\n}\n\n/** @oneof */\nexport interface PreOrderPacingPacingAvailabilityOneOf {\n /** Custom availability pattern for when pacing should be active */\n scheduleOptions?: WeeklyActiveDays;\n}\n\n/** Preorder pacing window type enum */\nexport enum PreorderPacingWindowType {\n /** Unknown preorder pacing window type */\n UNKNOWN_PREORDER_PACING_WINDOW = 'UNKNOWN_PREORDER_PACING_WINDOW',\n /** Daily pacing window */\n DAILY = 'DAILY',\n}\n\n/** @enumType */\nexport type PreorderPacingWindowTypeWithLiterals =\n | PreorderPacingWindowType\n | 'UNKNOWN_PREORDER_PACING_WINDOW'\n | 'DAILY';\n\nexport interface WeeklyActiveDays {\n /**\n * A list of active days of the week.\n * @maxSize 7\n */\n activeDays?: EntitiesDayOfWeekWithLiterals[];\n}\n\n/** Online ordering status enum. */\nexport enum OnlineOrderingStatusType {\n /** Online ordering status is not defined. */\n UNDEFINED_ONLINE_ORDERING_STATUS = 'UNDEFINED_ONLINE_ORDERING_STATUS',\n /** Operation currently accepts online orders. */\n ENABLED = 'ENABLED',\n /** Operation currently does not accept online orders. */\n DISABLED = 'DISABLED',\n /** Operation currently does not accept online orders, but will accept online orders from a specified time and date. When applied, `pausedUntilOptions` is a required field. */\n PAUSED_UNTIL = 'PAUSED_UNTIL',\n}\n\n/** @enumType */\nexport type OnlineOrderingStatusTypeWithLiterals =\n | OnlineOrderingStatusType\n | 'UNDEFINED_ONLINE_ORDERING_STATUS'\n | 'ENABLED'\n | 'DISABLED'\n | 'PAUSED_UNTIL';\n\n/** Options for online ordering status. Required when `onlineOrderingStatus` is `PAUSED_UNTIL`. */\nexport interface OnlineOrderingPausedUntilOptions {\n /**\n * Date and time until which online ordering is paused. <br />\n *\n * Before the specified time, behavior is the same as when `onlineOrderingStatus` is `DISABLED`. <br />\n *\n * After the specified time, behavior is the same as when `onlineOrderingStatus` is `ENABLED`. <br />\n *\n * Passing the time does not trigger any changes to value of any properties.\n */\n time?: Date | null;\n}\n\n/** Fulfillment type enum. */\nexport enum FulfillmentType {\n /** Undefined fulfillment type. */\n UNDEFINED_FULFILLMENT_TYPE = 'UNDEFINED_FULFILLMENT_TYPE',\n /** Pickup fulfillment. The customer picks up the order from the restaurant. */\n PICKUP = 'PICKUP',\n /** Delivery fulfillment. The restaurant, or a representative, delivers the order to the customer. */\n DELIVERY = 'DELIVERY',\n}\n\n/** @enumType */\nexport type FulfillmentTypeWithLiterals =\n | FulfillmentType\n | 'UNDEFINED_FULFILLMENT_TYPE'\n | 'PICKUP'\n | 'DELIVERY';\n\n/** Information about when an order can be placed for. */\nexport interface OrderScheduling\n extends OrderSchedulingOrderSchedulingOptionsOneOf {\n /** Options for scheduling. Required if `type` is `ASAP`. */\n asapOptions?: AsapOrderScheduling;\n /** Options for scheduling. Required if `type` is `PREORDER`. */\n preorderOptions?: PreorderScheduling;\n /**\n * Scheduling type. <br />\n * - When `ASAP`, `asapOptions` is a required field.\n * - When `PREORDER`, `preorderOptions` is a required field.\n */\n type?: SchedulingTypeWithLiterals;\n}\n\n/** @oneof */\nexport interface OrderSchedulingOrderSchedulingOptionsOneOf {\n /** Options for scheduling. Required if `type` is `ASAP`. */\n asapOptions?: AsapOrderScheduling;\n /** Options for scheduling. Required if `type` is `PREORDER`. */\n preorderOptions?: PreorderScheduling;\n}\n\nexport interface AsapOrderScheduling\n extends AsapOrderSchedulingAsapFutureHandlingOptionsOneOf {\n /** Options for future handling. Required when `asapFutureHandlingType` is `BUSINESS_DAYS_AHEAD_HANDLING`. */\n businessDaysAheadHandlingOptions?: BusinessDaysAheadHandling;\n /**\n * Amount of time needed to prepare the order. <br />\n * - When `MAX_TIME`, `maxTimeOptions` is a required field.\n * - When `MAX_RANGE`, `timeRangeOptions` is a required field.\n */\n preparationTime?: PreparationTime;\n /**\n * Defines if and how non-immediate orders should be handled. <br />\n * When this value is `BUSINESS_DAYS_AHEAD_HANDLING`, `businessDaysAheadHandlingOptions` is a required field.\n */\n asapFutureHandlingType?: AsapFutureHandlingTypeWithLiterals;\n}\n\n/** @oneof */\nexport interface AsapOrderSchedulingAsapFutureHandlingOptionsOneOf {\n /** Options for future handling. Required when `asapFutureHandlingType` is `BUSINESS_DAYS_AHEAD_HANDLING`. */\n businessDaysAheadHandlingOptions?: BusinessDaysAheadHandling;\n}\n\nexport interface PreparationTime extends PreparationTimeTimeSpecificationOneOf {\n /** Options for preparation time. Required when `type` is `MAX_TIME`. */\n maxTimeOptions?: TimeDuration;\n /** Options for preparation time. Required when `type` is `TIME_RANGE`. */\n timeRangeOptions?: TimeDurationRange;\n /** Preparation time type. */\n type?: PreparationTimePreparationTimeTypeWithLiterals;\n}\n\n/** @oneof */\nexport interface PreparationTimeTimeSpecificationOneOf {\n /** Options for preparation time. Required when `type` is `MAX_TIME`. */\n maxTimeOptions?: TimeDuration;\n /** Options for preparation time. Required when `type` is `TIME_RANGE`. */\n timeRangeOptions?: TimeDurationRange;\n}\n\n/** Preparation time type enum. */\nexport enum PreparationTimePreparationTimeType {\n UNKNOWN_PREPARATION_TIME = 'UNKNOWN_PREPARATION_TIME',\n MAX_TIME = 'MAX_TIME',\n TIME_RANGE = 'TIME_RANGE',\n}\n\n/** @enumType */\nexport type PreparationTimePreparationTimeTypeWithLiterals =\n | PreparationTimePreparationTimeType\n | 'UNKNOWN_PREPARATION_TIME'\n | 'MAX_TIME'\n | 'TIME_RANGE';\n\nexport enum AsapFutureHandlingType {\n /** Unknown asap future handling type. */\n UNKNOWN_ASAP_FUTURE_HANDLING = 'UNKNOWN_ASAP_FUTURE_HANDLING',\n /** No future handling. */\n NO_FUTURE_HANDLING = 'NO_FUTURE_HANDLING',\n /** Allows future orders for up to a specified number of business days ahead. */\n BUSINESS_DAYS_AHEAD_HANDLING = 'BUSINESS_DAYS_AHEAD_HANDLING',\n}\n\n/** @enumType */\nexport type AsapFutureHandlingTypeWithLiterals =\n | AsapFutureHandlingType\n | 'UNKNOWN_ASAP_FUTURE_HANDLING'\n | 'NO_FUTURE_HANDLING'\n | 'BUSINESS_DAYS_AHEAD_HANDLING';\n\nexport interface BusinessDaysAheadHandling {\n /**\n * Number of business days ahead for which orders can be scheduled. <br />\n * Setting the `daysCount` to 0 means that orders can be scheduled until the end of the current business day.\n */\n daysCount?: number | null;\n}\n\nexport interface BusinessLocationDetails {\n /**\n * Location name.\n * @maxLength 150\n * @readonly\n */\n name?: string | null;\n /**\n * Whether the location is archived.\n *\n * Archived locations are hidden and ignored on restaurants site pages, and marked as archived in the dashboard.\n * @readonly\n */\n archived?: boolean | null;\n /**\n * Whether this location is the default location for the business.\n * @readonly\n */\n default?: boolean | null;\n /**\n * Business Location Address.\n * @readonly\n */\n address?: V1Address;\n /**\n * Time zone in [Time Zone Database](https://www.iana.org/time-zones) format.\n * @readonly\n * @maxLength 50\n */\n timeZone?: string | null;\n}\n\nexport interface V1Address {\n /**\n * 2-letter country code in an [ISO-3166 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) format.\n * @format COUNTRY\n */\n country?: string | null;\n /**\n * Code for a subdivision (such as state, prefecture, or province) in [ISO 3166-2](https://en.wikipedia.org/wiki/ISO_3166-2) format.\n * @maxLength 100\n */\n subdivision?: string | null;\n /**\n * City name.\n * @maxLength 100\n */\n city?: string | null;\n /**\n * Postal or zip code.\n * @maxLength 20\n */\n postalCode?: string | null;\n /** Street address. Includes street name, number, and apartment number in separate fields. */\n streetAddress?: V1StreetAddress;\n /**\n * Full address of the location.\n * @maxLength 1000\n */\n formatted?: string | null;\n /** Geographic coordinates of location. */\n location?: V1AddressLocation;\n}\n\n/** Street address. Includes street name, number, and apartment number in separate fields. */\nexport interface V1StreetAddress {\n /**\n * Street number.\n * @maxLength 20\n */\n number?: string;\n /**\n * Street name.\n * @maxLength 100\n */\n name?: string;\n /**\n * Apartment number.\n * @maxLength 20\n */\n apt?: string;\n}\n\n/** Address Geolocation */\nexport interface V1AddressLocation {\n /** Latitude of the location. Must be between -90 and 90. */\n latitude?: number | null;\n /** Longitude of the location. Must be between -180 and 180. */\n longitude?: number | 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\n/**\n * Common object for tags.\n * Should be use as in this example:\n * message Foo {\n * string id = 1;\n * ...\n * Tags tags = 5\n * }\n * example of taggable entity\n * {\n * id: \"123\"\n * tags: {\n * tags: {\n * tag_ids:[\"11\",\"22\"]\n * },\n * private_tags: {\n * tag_ids: [\"33\", \"44\"]\n * }\n * }\n * }\n */\nexport interface Tags {\n /** Tags that require an additional permission in order to access them, normally not given to site members or visitors. */\n privateTags?: TagList;\n /** Tags that are exposed to anyone who has access to the labeled entity itself, including site members and visitors. */\n tags?: TagList;\n}\n\nexport interface TagList {\n /**\n * List of tag IDs\n * @maxSize 100\n * @maxLength 5\n */\n tagIds?: string[];\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 /**\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\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}\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 DeliveryProfileConfiguredForOperation {\n /** Operation */\n operation?: Operation;\n}\n\nexport interface OperationsDataCloningCompleted {}\n\nexport interface CreateOperationRequest {\n /** Operation to create. */\n operation: Operation;\n}\n\nexport interface CreateOperationResponse {\n /** Created operation. */\n operation?: Operation;\n}\n\nexport interface GetOperationRequest {\n /**\n * ID of the operation to retrieve.\n * @format GUID\n */\n operationId: string;\n}\n\nexport interface GetOperationResponse {\n /** Retrieved operation. */\n operation?: Operation;\n}\n\nexport interface UpdateOperationRequest {\n /** Operation to update. */\n operation: Operation;\n}\n\nexport interface UpdateOperationResponse {\n /** Updated operation. */\n operation?: Operation;\n}\n\nexport interface DeleteOperationRequest {\n /**\n * ID of the operation to delete.\n * @format GUID\n */\n operationId: string;\n}\n\nexport interface DeleteOperationResponse {}\n\nexport interface QueryOperationRequest {\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.\n * See [API Query Language](https://dev.wix.com/api/rest/getting-started/api-query-language)\n * for more information.\n *\n * For a detailed list of supported filters, see\n * [Supported Filters](https://dev.wix.com/docs/rest/api-reference/wix-restaurants/operations/operations/supported-filters-and-sorting).\n */\n filter?: Record<string, any> | null;\n /**\n * Sort object.\n * @maxSize 4\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 * Supported properties:\n * - `id`\n * - `createdDate`\n * - `updatedDate`\n * - `name`\n * @maxLength 64\n */\n fieldName?: string;\n /**\n * Sort order. Use `ASC` for ascending order or `DESC` for descending order. <br />\n *\n * Default: `ASC`\n */\n order?: SortOrderWithLiterals;\n}\n\nexport enum SortOrder {\n ASC = 'ASC',\n DESC = 'DESC',\n}\n\n/** @enumType */\nexport type SortOrderWithLiterals = SortOrder | 'ASC' | 'DESC';\n\nexport interface CursorPaging {\n /**\n * Maximum number of items to return in the results.\n * @max 100\n */\n limit?: number | null;\n /**\n * Pointer to the next or previous page in the list of results.\n *\n * Pass the relevant cursor token from the `pagingMetadata` object in the previous call's response.\n * Not relevant for the first request.\n * @maxLength 16000\n */\n cursor?: string | null;\n}\n\nexport interface QueryOperationResponse {\n /** Retrieved operations. */\n operations?: Operation[];\n /** 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 /** Cursor strings that point to the next page, previous page, or both. */\n cursors?: Cursors;\n /**\n * Whether there are more pages to retrieve following the current page.\n *\n * + `true`: Another page of results can be retrieved.\n * + `false`: This is the last page.\n */\n hasNext?: boolean | null;\n}\n\nexport interface Cursors {\n /**\n * Cursor string pointing to the next page in the list of results.\n * @maxLength 16000\n */\n next?: string | null;\n /**\n * Cursor pointing to the previous page in the list of results.\n * @maxLength 16000\n */\n prev?: string | null;\n}\n\nexport interface ListOperationsRequest {}\n\nexport interface ListOperationsResponse {\n /** Retrieved operations. */\n operations?: Operation[];\n}\n\nexport interface ListOperationIdsRequest {\n /**\n * metasite id\n * @format GUID\n */\n metasiteId?: string;\n}\n\nexport interface ListOperationIdsResponse {\n /**\n * List of operation ids\n * @format GUID\n */\n operationIds?: string[];\n}\n\nexport interface ListOperationsInternalRequest {\n /**\n * metasite id\n * @format GUID\n */\n metasiteId?: string;\n}\n\nexport interface ListOperationsInternalResponse {\n /** List of operations */\n operations?: Operation[];\n}\n\nexport interface ListAvailableFulfillmentOptionsRequest {\n /**\n * Operation ID. Returned fulfillment options will belong to this operation.\n * @format GUID\n */\n operationId: string;\n /**\n * Delivery address. Optional.\n *\n * If provided, the returned delivery fulfillment options will be able to deliver to this address.\n */\n deliveryAddress?: CommonAddress;\n}\n\n/** Physical address */\nexport interface CommonAddress extends CommonAddressStreetOneOf {\n /** Street name and number. */\n streetAddress?: StreetAddress;\n /** Main address line, usually street and number as free text. */\n addressLine1?: string | null;\n /**\n * Country code.\n * @format COUNTRY\n */\n country?: string | null;\n /** Subdivision. Usually a state, region, prefecture, or province code, according to [ISO 3166-2](https://en.wikipedia.org/wiki/ISO_3166-2). */\n subdivision?: string | null;\n /** City name. */\n city?: string | null;\n /** Zip/postal code. */\n postalCode?: string | null;\n /** Free text providing more detailed address info. Usually contains Apt, Suite, and Floor. */\n addressLine2?: string | null;\n}\n\n/** @oneof */\nexport interface CommonAddressStreetOneOf {\n /** Street name and number. */\n streetAddress?: StreetAddress;\n /** Main address line, usually street and number as free text. */\n addressLine?: string | null;\n}\n\nexport interface StreetAddress {\n /** Street number. */\n number?: string;\n /** Street name. */\n name?: string;\n}\n\nexport interface AddressLocation {\n /** Address latitude. */\n latitude?: number | null;\n /** Address longitude. */\n longitude?: number | null;\n}\n\nexport interface Subdivision {\n /** Short subdivision code. */\n code?: string;\n /** Subdivision full name. */\n name?: string;\n}\n\nexport enum SubdivisionType {\n UNKNOWN_SUBDIVISION_TYPE = 'UNKNOWN_SUBDIVISION_TYPE',\n /** State */\n ADMINISTRATIVE_AREA_LEVEL_1 = 'ADMINISTRATIVE_AREA_LEVEL_1',\n /** County */\n ADMINISTRATIVE_AREA_LEVEL_2 = 'ADMINISTRATIVE_AREA_LEVEL_2',\n /** City/town */\n ADMINISTRATIVE_AREA_LEVEL_3 = 'ADMINISTRATIVE_AREA_LEVEL_3',\n /** Neighborhood/quarter */\n ADMINISTRATIVE_AREA_LEVEL_4 = 'ADMINISTRATIVE_AREA_LEVEL_4',\n /** Street/block */\n ADMINISTRATIVE_AREA_LEVEL_5 = 'ADMINISTRATIVE_AREA_LEVEL_5',\n /** ADMINISTRATIVE_AREA_LEVEL_0. Indicates the national political entity, and is typically the highest order type returned by the Geocoder. */\n COUNTRY = 'COUNTRY',\n}\n\n/** @enumType */\nexport type SubdivisionTypeWithLiterals =\n | SubdivisionType\n | 'UNKNOWN_SUBDIVISION_TYPE'\n | 'ADMINISTRATIVE_AREA_LEVEL_1'\n | 'ADMINISTRATIVE_AREA_LEVEL_2'\n | 'ADMINISTRATIVE_AREA_LEVEL_3'\n | 'ADMINISTRATIVE_AREA_LEVEL_4'\n | 'ADMINISTRATIVE_AREA_LEVEL_5'\n | 'COUNTRY';\n\nexport interface ListAvailableFulfillmentOptionsResponse {\n /** Whether pickup fulfillment method is configured for the requested operation. */\n pickupConfigured?: boolean;\n /** Whether delivery fulfillment method is configured for the requested operation. */\n deliveryConfigured?: boolean;\n /** List of the available fulfillment options. */\n fulfillmentOptions?: FulfillmentOption[];\n /** Whether availability exceptions block the fulfillment options. */\n blockedByAvailabilityExceptions?: boolean | null;\n}\n\n/** Fulfillment method that is currently available to fulfill orders, given its availability and the operation's scheduling configurations. */\nexport interface FulfillmentOption\n extends FulfillmentOptionFulfillmentTimeOptionsOneOf,\n FulfillmentOptionFulfillmentTimesDisplayOptionsOneOf,\n FulfillmentOptionFulfillmentTypeOptionsOneOf {\n /** Fulfillment time has a maximum time. */\n maxTimeOptions?: number;\n /** Fulfillment time is limited by a range. */\n durationRangeOptions?: DurationRange;\n /** Options for fulfillment time. Required when `type` is `TIME_WINDOWS`. */\n timeWindowsOptions?: TimeWindowDisplayConfig;\n /** Information about pickup fulfillment types. */\n pickupOptions?: PickupDetails;\n /** Information about delivery fulfillment types. */\n deliveryOptions?: DeliveryDetails;\n /**\n * Fulfillment method ID.\n * @format GUID\n */\n _id?: string | null;\n /** Fulfillment option type. */\n type?: FulfillmentTypeWithLiterals;\n /**\n * Minimum order price to qualify for the fulfillment option.\n * @decimalValue options { gte:0.00, maxScale:3 }\n */\n minOrderPrice?: string | null;\n /**\n * Fee for using the fulfillment option.\n * @decimalValue options { gte:0.00, maxScale:3 }\n */\n fee?: string | null;\n /** Availability of the fulfillment option. */\n availability?: FulfillmentOptionAvailability;\n /**\n * Fulfillment time type.\n * Relevant only to ASAP operations.\n */\n fulfillmentTimeType?: FulfillmentTimeTypeWithLiterals;\n /** Fulfillment times display type. Relevant to preorder operations. */\n fulfillmentTimesDisplayType?: FulfillmentTimesDisplayTypeWithLiterals;\n /**\n * Minimum order price for free fulfillment.\n * If order price exceeds this amount, the given `fee` is waived.\n * @decimalValue options { gte:0.00, maxScale:3 }\n */\n freeFulfillmentPriceThreshold?: string | null;\n /**\n * Instructions for the fulfillment.\n * @maxLength 250\n */\n instructions?: string | null;\n /** @format GUID */\n businessLocationId?: string | null;\n}\n\n/** @oneof */\nexport interface FulfillmentOptionFulfillmentTimeOptionsOneOf {\n /** Fulfillment time has a maximum time. */\n maxTimeOptions?: number;\n /** Fulfillment time is limited by a range. */\n durationRangeOptions?: DurationRange;\n}\n\n/** @oneof */\nexport interface FulfillmentOptionFulfillmentTimesDisplayOptionsOneOf {\n /** Options for fulfillment time. Required when `type` is `TIME_WINDOWS`. */\n timeWindowsOptions?: TimeWindowDisplayConfig;\n}\n\n/** @oneof */\nexport interface FulfillmentOptionFulfillmentTypeOptionsOneOf {\n /** Information about pickup fulfillment types. */\n pickupOptions?: PickupDetails;\n /** Information about delivery fulfillment types. */\n deliveryOptions?: DeliveryDetails;\n}\n\n/** Availability of the fulfillment option. */\nexport interface FulfillmentOptionAvailability {\n /** Date and time at which the fulfillment option's availability starts. */\n startTime?: Date | null;\n /** Date and time at which the fulfillment option's availability ends. */\n endTime?: Date | null;\n /**\n * List of available times for the days of the week.\n * All the specified times must be within the range between `startTime` and `endTime`.\n */\n availableTimes?: DayOfWeekAvailability[];\n /** List of availability exceptions that override the availability defined in `availableTimes`. */\n exceptions?: AvailabilityException[];\n /** Timezone for which the available times are given. */\n timeZone?: string | null;\n /** Whether it's possible to submit an order for as soon as possible handling. */\n asapHandlingAvailable?: boolean;\n /** Whether it's possible to submit an order for future handling. */\n futureHandlingAvailable?: boolean | null;\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 interface AvailabilityException {\n /** The start time of the availability exception. */\n startTime?: Date | null;\n /** The end time of the availability exception. */\n endTime?: Date | null;\n /** An indication whether the exception makes the [`start_time`, `end_time`] range available. */\n available?: boolean;\n /** The reason for the exception. */\n reason?: string | null;\n}\n\n/** Fulfillment time type enum. */\nexport enum FulfillmentTimeType {\n /** Undefined fulfillment time type. */\n UNDEFINED_FULFILLMENT_TIME = 'UNDEFINED_FULFILLMENT_TIME',\n /** Fulfillment time has a maximum. */\n MAX_TIME = 'MAX_TIME',\n /** Fulfillment time has a minimum and a maximum. */\n DURATION_RANGE = 'DURATION_RANGE',\n}\n\n/** @enumType */\nexport type FulfillmentTimeTypeWithLiterals =\n | FulfillmentTimeType\n | 'UNDEFINED_FULFILLMENT_TIME'\n | 'MAX_TIME'\n | 'DURATION_RANGE';\n\n/** Duration range. */\nexport interface DurationRange {\n /** Minimum duration in minutes. */\n minDuration?: number;\n /** Maximum duration in minutes. */\n maxDuration?: number;\n}\n\n/** Fulfillment times display type enum. */\nexport enum FulfillmentTimesDisplayType {\n /** Undefined fulfillment times display type. */\n UNDEFINED_FULFILLMENT_TIMES_DISPLAY = 'UNDEFINED_FULFILLMENT_TIMES_DISPLAY',\n /** Fulfillment times are displayed as a list of time windows. */\n TIME_WINDOWS = 'TIME_WINDOWS',\n}\n\n/** @enumType */\nexport type FulfillmentTimesDisplayTypeWithLiterals =\n | FulfillmentTimesDisplayType\n | 'UNDEFINED_FULFILLMENT_TIMES_DISPLAY'\n | 'TIME_WINDOWS';\n\n/** Time window. */\nexport interface TimeWindowDisplayConfig {\n /** Time window duration in minutes. */\n durationInMinutes?: number;\n}\n\n/** Information about pickup fulfillment types. */\nexport interface PickupDetails {\n /** Pickup address. This is the restaurant's address. */\n address?: CommonAddress;\n}\n\n/** Information about delivery fulfillment types. */\nexport interface DeliveryDetails {\n /**\n * Delivery provider app id.\n * @format GUID\n */\n deliveryProviderAppId?: string | null;\n /**\n * Pickup instructions for couriers.\n * @maxLength 250\n */\n courierPickupInstructions?: string | null;\n /** how much time it takes to deliver the order in minutes. */\n deliveryTimeInMinutes?: number | null;\n}\n\nexport interface ListFirstAvailableTimeSlotForFulfillmentTypesRequest {\n /**\n * Operation ID.\n * Returned fulfillment options will belong to this operation.\n * @format GUID\n */\n operationId: string;\n /**\n * Delivery address. Optional.\n *\n * If provided, the returned delivery fulfillment options will be able to deliver to this address.\n */\n deliveryAddress?: CommonAddress;\n}\n\nexport interface ListFirstAvailableTimeSlotForFulfillmentTypesResponse {\n /**\n * List of available time slots for each fulfillment type.\n *\n * Each time slot is the first available time slot for the given fulfillment type.\n * A delivery fulfillment type is returned only if the delivery address is provided.\n */\n timeSlots?: FulfillmentTimeSlot[];\n}\n\nexport interface FulfillmentTimeSlot {\n /** Start time and date of the time slot. */\n startTime?: Date | null;\n /** End time and date of the time slot. */\n endTime?: Date | null;\n /** Type of the fulfillment. */\n fulfilmentType?: FulfillmentTypeWithLiterals;\n /** Whether the time slot starts now. */\n startsNow?: boolean;\n /**\n * Details for each fulfillment option of the time slot.\n * @maxSize 500\n */\n fulfillmentDetails?: FulfillmentDetails[];\n /** Address of the fulfillment. */\n fulfillmentAddress?: FulfillmentAddress;\n}\n\nexport enum TimeSlotStatus {\n /** The time slot is available for ordering. */\n AVAILABLE = 'AVAILABLE',\n /** The time slot is blocked by pacing. applicable for Preorder */\n BLOCKED = 'BLOCKED',\n}\n\n/** @enumType */\nexport type TimeSlotStatusWithLiterals =\n | TimeSlotStatus\n | 'AVAILABLE'\n | 'BLOCKED';\n\n/** Details about the fulfillment option. */\nexport interface FulfillmentDetails\n extends FulfillmentDetailsFulfillmentTimeOptionsOneOf {\n /** Fulfillment time has a maximum. */\n maxTimeOptions?: number;\n /** Fulfillment time has a minimum and a maximum. */\n durationRangeOptions?: DurationRange;\n /**\n * Fee for using this fulfillment.\n * @decimalValue options { gte:0.00, maxScale:3 }\n */\n fee?: string | null;\n /**\n * Minimum order price to qualify for using this fulfillment.\n * @decimalValue options { gte:0.00, maxScale:3 }\n */\n minOrderPrice?: string | null;\n /** Fulfillment time type. Only be relevant to `ASAP` operations. */\n fulfillmentTimeType?: FulfillmentTimeTypeWithLiterals;\n /**\n * Minimum order price for free fulfillment.\n * If order price exceeds this amount, the given `fee` is waived.\n * @decimalValue options { gte:0.00, maxScale:3 }\n */\n freeFulfillmentPriceThreshold?: string | null;\n}\n\n/** @oneof */\nexport interface FulfillmentDetailsFulfillmentTimeOptionsOneOf {\n /** Fulfillment time has a maximum. */\n maxTimeOptions?: number;\n /** Fulfillment time has a minimum and a maximum. */\n durationRangeOptions?: DurationRange;\n}\n\n/**\n * Details on the address of the fulfillment.\n * For pickup it will the address to take the order from.\n * For delivery it will be the address to deliver the order to.\n */\nexport interface FulfillmentAddress {\n /** Pickup address. This is the address of the restaurant. */\n address?: CommonAddress;\n}\n\nexport interface CalculateFirstAvailableTimeSlotPerFulfillmentTypeRequest {\n /**\n * Operation ID.\n * @format GUID\n */\n operationId: string;\n /**\n * Delivery address.\n *\n * The response includes a time slot with the delivery fulfillment type only if you specify a delivery address.\n */\n deliveryAddress?: CommonAddress;\n}\n\nexport interface CalculateFirstAvailableTimeSlotPerFulfillmentTypeResponse {\n /**\n * First available time slot for each fulfillment type.\n *\n * Each time slot is the first available time slot for the given fulfillment type.\n * @maxSize 2\n */\n timeslotsPerFulfillmentType?: TimeSlotForFulfillment[];\n}\n\nexport interface TimeSlotForFulfillment {\n /** Time Slot details. */\n timeSlot?: TimeSlot;\n /**\n * Details for each available fulfillment option in the time slot.\n * @maxSize 500\n */\n fulfillmentInfo?: FulfillmentInfo[];\n /** Fulfillment type. */\n fulfilmentType?: FulfillmentTypeWithLiterals;\n}\n\nexport interface TimeSlot {\n /** Start time and date of the time slot in [ISO-8601](https://en.wikipedia.org/wiki/ISO_8601) format. */\n startTime?: Date | null;\n /** End time and date of the time slot in [ISO-8601](https://en.wikipedia.org/wiki/ISO_8601) format. */\n endTime?: Date | null;\n /** Order scheduling type used by the operation. */\n orderSchedulingType?: OrderSchedulingTypeWithLiterals;\n}\n\nexport enum OrderSchedulingType {\n /** Immediate ordering. */\n ASAP = 'ASAP',\n /** Scheduled ordering. */\n PREORDER = 'PREORDER',\n}\n\n/** @enumType */\nexport type OrderSchedulingTypeWithLiterals =\n | OrderSchedulingType\n | 'ASAP'\n | 'PREORDER';\n\nexport enum TimeSlotForFulfillmentTimeSlotStatus {\n /** The time slot is available for ordering. */\n AVAILABLE = 'AVAILABLE',\n /** The time slot is blocked by pacing restrictions. Applicable only for `PREORDER` scheduling. */\n BLOCKED = 'BLOCKED',\n}\n\n/** @enumType */\nexport type TimeSlotForFulfillmentTimeSlotStatusWithLiterals =\n | TimeSlotForFulfillmentTimeSlotStatus\n | 'AVAILABLE'\n | 'BLOCKED';\n\n/** Details about the fulfillment option. */\nexport interface FulfillmentInfo extends FulfillmentInfoFulfillmentTimeOneOf {\n /** Maximum time to fulfill the order. */\n maxTime?: number;\n /** Time range in which to fulfill the order. */\n durationRange?: DurationRange;\n /**\n * Fee for using this fulfillment option.\n * @decimalValue options { gte:0.00, maxScale:3 }\n */\n fee?: string | null;\n /**\n * Minimum order price to qualify for using this fulfillment option.\n * @decimalValue options { gte:0.00, maxScale:3 }\n */\n minOrderPrice?: string | null;\n /**\n * Minimum order price to qualify for free fulfillment.\n * If the order price exceeds this amount, the `fee` is waived.\n * @decimalValue options { gte:0.00, maxScale:3 }\n */\n freeFulfillmentPriceThreshold?: string | null;\n /**\n * Details on the address of the fulfillment.\n * For pickup fulfillment types, this is the address to take the order from.\n * For delivery fulfillment types, this is the address to deliver the order to.\n */\n address?: CommonAddress;\n}\n\n/** @oneof */\nexport interface FulfillmentInfoFulfillmentTimeOneOf {\n /** Maximum time to fulfill the order. */\n maxTime?: number;\n /** Time range in which to fulfill the order. */\n durationRange?: DurationRange;\n}\n\nexport interface ListFirstAvailableTimeSlotsForOperationsRequest {\n /**\n * Operation ID.\n * Returned fulfillment options will belong to this operation.\n * @format GUID\n * @maxSize 100\n */\n operationIds: string[];\n /**\n * Delivery address. Optional.\n *\n * If provided, the returned delivery fulfillment options will be able to deliver to this address.\n */\n deliveryAddress?: CommonAddress;\n}\n\nexport interface ListFirstAvailableTimeSlotsForOperationsResponse {\n /**\n * List of available time slots for each operation.\n * @maxSize 100\n */\n timeSlots?: OperationTimeSlot[];\n}\n\nexport interface OperationTimeSlot {\n /**\n * Operation ID.\n * @format GUID\n */\n operationId?: string;\n /**\n * List of available time slots for each fulfillment type.\n * @maxSize 100\n */\n timeSlots?: FulfillmentTimeSlot[];\n}\n\nexport interface CalculateFirstAvailableTimeSlotsPerOperationRequest {\n /**\n * Operation IDs.\n * @format GUID\n * @maxSize 100\n */\n operationIds: string[];\n /**\n * Delivery address.\n *\n * The response includes time slots with delivery fulfillment types only if you specify a delivery address.\n */\n deliveryAddress?: CommonAddress;\n}\n\nexport interface CalculateFirstAvailableTimeSlotsPerOperationResponse {\n /**\n * First available time slot of each fulfillment type for each operation.\n *\n * A time slot with the delivery fulfillment type is returned only if a delivery address was specified.\n * @maxSize 100\n */\n timeSlotsPerOperation?: TimeSlotForOperation[];\n}\n\nexport interface TimeSlotForOperation {\n /**\n * Operation ID.\n * @format GUID\n */\n operationId?: string;\n /**\n * Available time slots of each fulfillment type for this operation.\n * @maxSize 2\n */\n timeslotsPerFulfillmentType?: TimeSlotForFulfillment[];\n}\n\nexport interface ListFirstAvailableTimeSlotsForMenusRequest {\n /**\n * Operation ID.\n * Returned timeslots that are belong to this operation.\n * @format GUID\n */\n operationId: string | null;\n /**\n * Delivery address. Optional.\n *\n * If provided, the returned delivery fulfillment options will be able to deliver to this address.\n */\n deliveryAddress?: CommonAddress;\n /** Cursor paging */\n cursorPaging?: CursorPaging;\n}\n\nexport interface ListFirstAvailableTimeSlotsForMenusResponse {\n /**\n * List of available time slots for each menu.\n * For each menu will be returned the first available time slot for each fulfillment type.\n * @maxSize 100\n */\n timeSlotsPerMenu?: FirstFulfillmentTimeSlotsPerMenu[];\n /**\n * Cursor to next request.\n * @maxLength 16000\n */\n cursor?: string | null;\n}\n\nexport interface FirstFulfillmentTimeSlotsPerMenu {\n /**\n * Menu ID.\n * @format GUID\n */\n menuId?: string | null;\n /**\n * List of available time slots for each fulfillment type.\n * @maxSize 2\n */\n timeslotsPerFulfillmentType?: FulfillmentTimeSlot[];\n}\n\nexport interface CalculateFirstAvailableTimeSlotsPerMenuRequest {\n /**\n * Operation ID.\n * @format GUID\n */\n operationId: string | null;\n /**\n * Delivery address.\n *\n * The response includes time slots with delivery fulfillment types only if you specify a delivery address.\n */\n deliveryAddress?: CommonAddress;\n /** Cursor paging. */\n cursorPaging?: CursorPaging;\n}\n\nexport interface CalculateFirstAvailableTimeSlotsPerMenuResponse {\n /**\n * First available time slot of each fulfillment type for each menu.\n *\n * A time slot with the delivery fulfillment type is returned only if a delivery address was specified.\n * @maxSize 100\n */\n timeSlotsPerMenu?: FulfillmentTimeSlotsPerMenu[];\n /** Metadata for the paginated results. */\n pagingMetadata?: PagingMetadata;\n}\n\nexport interface FulfillmentTimeSlotsPerMenu {\n /**\n * Menu ID.\n * @format GUID\n */\n menuId?: string | null;\n /**\n * Available time slots of each fulfillment type for this menu.\n * @maxSize 2\n */\n timeslotsPerFulfillmentType?: TimeSlotForFulfillment[];\n}\n\nexport interface PagingMetadata {\n /** Number of items returned in the response. */\n count?: number | null;\n /** Offset that was requested. */\n offset?: number | null;\n /** Total number of items that match the query. */\n total?: number | null;\n /** Flag that indicates the server failed to calculate the `total` field. */\n tooManyToCount?: boolean | null;\n}\n\nexport interface ListAvailableTimeSlotsForDateRequest {\n /**\n * Operation ID.\n * The returned fulfillment options will belong to this operation.\n * @format GUID\n */\n operationId: string;\n /**\n * Delivery address. Optional.\n *\n * If provided, the returned delivery fulfillment options will be able to deliver to this address.\n */\n deliveryAddress?: CommonAddress;\n /** Date and time to get the available time slots for. */\n date: _Date;\n}\n\nexport interface _Date {\n /**\n * The day of the month.\n * @min 1\n * @max 31\n */\n day?: number;\n /**\n * The month of the year.\n * @min 1\n * @max 12\n */\n month?: number;\n /**\n * The year of the date.\n * @min 2023\n * @max 2200\n */\n year?: number;\n}\n\nexport interface ListAvailableTimeSlotsForDateResponse {\n /** List of the available time slots in the requested date. */\n timeSlots?: FulfillmentTimeSlot[];\n}\n\nexport interface CalculateAvailableTimeSlotsForDateRequest {\n /**\n * Operation ID.\n * @format GUID\n */\n operationId: string;\n /**\n * Delivery address.\n *\n * The response includes time slots with delivery fulfillment types only if you specify a delivery address.\n */\n deliveryAddress?: CommonAddress;\n /** Date and time to get the available time slots for. */\n date: _Date;\n}\n\nexport interface CalculateAvailableTimeSlotsForDateResponse {\n /**\n * Available time slots of each fulfillment type for the specified date.\n *\n * A time slot with the delivery fulfillment type is returned only if a delivery address was specified.\n * @maxSize 2\n */\n timeslotsPerFulfillmentType?: TimeSlotForFulfillment[];\n}\n\nexport interface ListAvailableDatesInRangeRequest {\n /**\n * Operation ID.\n * The returned fulfillment options will belong to this operation.\n * @format GUID\n */\n operationId: string;\n /**\n * Delivery address. Optional.\n *\n * If provided, the returned delivery fulfillment options will be able to deliver to this address.\n */\n deliveryAddress?: CommonAddress;\n /** Start date and time of the range. */\n from: _Date;\n /** End date and time of the range. */\n until: _Date;\n}\n\nexport interface ListAvailableDatesInRangeResponse {\n /** List of the available dates in descending order for each fulfillment type. */\n availableDates?: FulfillmentTypeAvailableDates[];\n}\n\n/** Available dates for a given fulfillment type. */\nexport interface FulfillmentTypeAvailableDates {\n /** Fulfillment type. */\n fulfilmentType?: FulfillmentTypeWithLiterals;\n /**\n * Available dates in descending order (most recent first).\n *\n * Contains all dates that have at least one available time slot for this fulfillment type.\n * @minSize 1\n * @maxSize 100\n */\n dates?: _Date[];\n}\n\nexport interface CalculateAvailableDatesInRangeRequest {\n /**\n * Operation ID.\n * @format GUID\n */\n operationId: string;\n /**\n * Delivery address.\n *\n * Delivery fulfillment methods are only considered when calculating date availability if a delivery address is specified.\n */\n deliveryAddress?: CommonAddress;\n /** Start date and time of the range. */\n from: _Date;\n /** End date and time of the range. */\n until: _Date;\n}\n\nexport interface CalculateAvailableDatesInRangeResponse {\n /**\n * Available dates of each fulfillment type within the specified time range.\n *\n * Contains all dates that have at least one available time slot.\n */\n availableDatesPerFulfillmentType?: FulfillmentTypeAvailableDates[];\n}\n\nexport interface GetExpectedFulfillmentSelectionRequest {\n /**\n * Operation ID. The returned fulfillment will belong to this operation.\n * @format GUID\n */\n operationId?: string;\n /**\n * Delivery address. Optional.\n *\n * If provided, the returned delivery fulfillment options will be able to deliver to this address.\n */\n deliveryAddress?: CommonAddress;\n /** Start time and date of the time slot. */\n timeslotStartTime?: Date | null;\n /** End time and date of the time slot. */\n timeslotEndTime?: Date | null;\n /** Type of fulfillment. */\n fulfilmentType?: FulfillmentTypeWithLiterals;\n /** Whether it is possible to submit an order to be prepared asap. */\n canSubmitOrderForNow?: boolean | null;\n}\n\nexport interface GetExpectedFulfillmentSelectionResponse {\n /** Expected fulfillment option. */\n expectedFulfillmentSelections?: FulfillmentOption[];\n}\n\nexport interface UpdateImmutableFieldsRequest {\n /** Immutable fields to update. */\n immutableFields?: ImmutableFields;\n}\n\nexport interface ImmutableFields {\n /**\n * operation id\n * @format GUID\n */\n _id?: string;\n /**\n * operation group id\n * @format GUID\n */\n operationGroupId?: string | null;\n /**\n * business location id\n * @format GUID\n */\n businessLocationId?: string | null;\n}\n\nexport interface UpdateImmutableFieldsResponse {\n /** Updated operation. */\n operation?: Operation;\n}\n\nexport interface ValidateOperationAddressRequest {\n /**\n * The ID of the operation to validate\n * @format GUID\n */\n operationId: string;\n}\n\n/** Response message for address validation */\nexport interface ValidateOperationAddressResponse {\n /** Whether the address is valid */\n valid?: boolean;\n /**\n * List of violations if the address is invalid\n * @maxSize 5\n */\n violations?: AddressViolation[];\n}\n\n/** Represents a specific violation in the address */\nexport interface AddressViolation {\n /** The type of violation */\n type?: ViolationTypeWithLiterals;\n}\n\n/** Type of violation found in the address */\nexport enum ViolationType {\n UNKNOWN = 'UNKNOWN',\n NO_ADDRESS = 'NO_ADDRESS',\n MISSING_FORMATTED_ADDRESS = 'MISSING_FORMATTED_ADDRESS',\n INVALID_GEOCODE = 'INVALID_GEOCODE',\n MISSING_COUNTRY = 'MISSING_COUNTRY',\n MISSING_SUBDIVISION = 'MISSING_SUBDIVISION',\n}\n\n/** @enumType */\nexport type ViolationTypeWithLiterals =\n | ViolationType\n | 'UNKNOWN'\n | 'NO_ADDRESS'\n | 'MISSING_FORMATTED_ADDRESS'\n | 'INVALID_GEOCODE'\n | 'MISSING_COUNTRY'\n | 'MISSING_SUBDIVISION';\n\nexport interface UpdateDeliveryRegionsRequest {\n /**\n * Country code for delivery destinations (e.g., \"US\", \"CA\")\n * @maxLength 150\n */\n countryCode?: string;\n /**\n * Optional subdivision for delivery destinations (e.g., state, province)\n * @maxLength 150\n */\n subdivision?: string | null;\n}\n\nexport interface UpdateDeliveryRegionsResponse {}\n\nexport interface BulkUpdateOperationTagsRequest {\n /**\n * IDs of the operations to update tags for.\n * @minSize 1\n * @maxSize 100\n * @format GUID\n */\n operationIds: string[];\n /** Tags to assign to the operations. */\n assignTags?: Tags;\n /** Tags to unassign from the operations. */\n unassignTags?: Tags;\n}\n\nexport interface BulkUpdateOperationTagsResponse {\n /**\n * Results of the bulk update.\n * @minSize 1\n * @maxSize 100\n */\n results?: BulkUpdateOperationTagsResult[];\n /** Metadata for the bulk update. */\n bulkActionMetadata?: BulkActionMetadata;\n}\n\nexport interface ItemMetadata {\n /**\n * Item ID. Should always be available, unless it's impossible (for example, when failing to create an item).\n * @format GUID\n */\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 BulkUpdateOperationTagsResult {\n /** Metadata for the updated operation. */\n itemMetadata?: ItemMetadata;\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 BulkUpdateOperationTagsByFilterRequest {\n /** Filter that determines which operations to update tags for. */\n filter: Record<string, any> | null;\n /** Tags to assign to the operations. */\n assignTags?: Tags;\n /** Tags to unassign from the operations. */\n unassignTags?: Tags;\n}\n\nexport interface BulkUpdateOperationTagsByFilterResponse {\n /**\n * Job ID. Pass this ID to Get Async Job ([SDK](https://dev.wix.com/docs/sdk/backend-modules/async-jobs/get-async-job) | [REST](https://dev.wix.com/docs/rest/business-management/async-job/get-async-job)) to track the job's status.\n * @format GUID\n */\n jobId?: string;\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\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\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?: V4SiteCreated;\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?: V4SiteCreated;\n /** Properties were cloned on site cloning. */\n siteCloned?: SiteCloned;\n}\n\nexport interface PropertiesChange {}\n\nexport interface V4SiteCreated {\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 MetaSiteSpecialEvent extends MetaSiteSpecialEventPayloadOneOf {\n /** Emitted on a meta site creation. */\n siteCreated?: SiteCreated;\n /** Emitted on a meta site transfer completion. */\n siteTransferred?: SiteTransferred;\n /** Emitted on a meta site deletion. */\n siteDeleted?: SiteDeleted;\n /** Emitted on a meta site restoration. */\n siteUndeleted?: SiteUndeleted;\n /** Emitted on the first* publish of the meta site (* switching from unpublished to published state). */\n sitePublished?: SitePublished;\n /** Emitted on a meta site unpublish. */\n siteUnpublished?: SiteUnpublished;\n /** Emitted when meta site is marked as template. */\n siteMarkedAsTemplate?: SiteMarkedAsTemplate;\n /** Emitted when meta site is marked as a WixSite. */\n siteMarkedAsWixSite?: SiteMarkedAsWixSite;\n /** Emitted when an application is provisioned (installed). */\n serviceProvisioned?: ServiceProvisioned;\n /** Emitted when an application is removed (uninstalled). */\n serviceRemoved?: ServiceRemoved;\n /** Emitted when meta site name (URL slug) is changed. */\n siteRenamedPayload?: SiteRenamed;\n /** Emitted when meta site was permanently deleted. */\n hardDeleted?: SiteHardDeleted;\n /** Emitted on a namespace change. */\n namespaceChanged?: NamespaceChanged;\n /** Emitted when Studio is attached. */\n studioAssigned?: StudioAssigned;\n /** Emitted when Studio is detached. */\n studioUnassigned?: StudioUnassigned;\n /**\n * Emitted when one of the URLs is changed. After this event you may call `urls-server` to fetch\n * the actual URL.\n *\n * See: https://wix.slack.com/archives/C0UHEBPFT/p1732520791210559?thread_ts=1732027914.294059&cid=C0UHEBPFT\n * See: https://wix.slack.com/archives/C0UHEBPFT/p1744115197619459\n */\n urlChanged?: SiteUrlChanged;\n /** Site is marked as PurgedExternally */\n sitePurgedExternally?: SitePurgedExternally;\n /** Emitted when Odeditor is attached. */\n odeditorAssigned?: OdeditorAssigned;\n /** Emitted when Odeditor is detached. */\n odeditorUnassigned?: OdeditorUnassigned;\n /** Emitted when Picasso is attached. */\n picassoAssigned?: PicassoAssigned;\n /** Emitted when Picasso is detached. */\n picassoUnassigned?: PicassoUnassigned;\n /**\n * A meta site id.\n * @format GUID\n */\n metaSiteId?: string;\n /** A meta site version. Monotonically increasing. */\n version?: string;\n /** A timestamp of the event. */\n timestamp?: string;\n /**\n * TODO(meta-site): Change validation once validations are disabled for consumers\n * More context: https://wix.slack.com/archives/C0UHEBPFT/p1720957844413149 and https://wix.slack.com/archives/CFWKX325T/p1728892152855659\n * @maxSize 4000\n */\n assets?: Asset[];\n}\n\n/** @oneof */\nexport interface MetaSiteSpecialEventPayloadOneOf {\n /** Emitted on a meta site creation. */\n siteCreated?: SiteCreated;\n /** Emitted on a meta site transfer completion. */\n siteTransferred?: SiteTransferred;\n /** Emitted on a meta site deletion. */\n siteDeleted?: SiteDeleted;\n /** Emitted on a meta site restoration. */\n siteUndeleted?: SiteUndeleted;\n /** Emitted on the first* publish of the meta site (* switching from unpublished to published state). */\n sitePublished?: SitePublished;\n /** Emitted on a meta site unpublish. */\n siteUnpublished?: SiteUnpublished;\n /** Emitted when meta site is marked as template. */\n siteMarkedAsTemplate?: SiteMarkedAsTemplate;\n /** Emitted when meta site is marked as a WixSite. */\n siteMarkedAsWixSite?: SiteMarkedAsWixSite;\n /** Emitted when an application is provisioned (installed). */\n serviceProvisioned?: ServiceProvisioned;\n /** Emitted when an application is removed (uninstalled). */\n serviceRemoved?: ServiceRemoved;\n /** Emitted when meta site name (URL slug) is changed. */\n siteRenamedPayload?: SiteRenamed;\n /** Emitted when meta site was permanently deleted. */\n hardDeleted?: SiteHardDeleted;\n /** Emitted on a namespace change. */\n namespaceChanged?: NamespaceChanged;\n /** Emitted when Studio is attached. */\n studioAssigned?: StudioAssigned;\n /** Emitted when Studio is detached. */\n studioUnassigned?: StudioUnassigned;\n /**\n * Emitted when one of the URLs is changed. After this event you may call `urls-server` to fetch\n * the actual URL.\n *\n * See: https://wix.slack.com/archives/C0UHEBPFT/p1732520791210559?thread_ts=1732027914.294059&cid=C0UHEBPFT\n * See: https://wix.slack.com/archives/C0UHEBPFT/p1744115197619459\n */\n urlChanged?: SiteUrlChanged;\n /** Site is marked as PurgedExternally */\n sitePurgedExternally?: SitePurgedExternally;\n /** Emitted when Odeditor is attached. */\n odeditorAssigned?: OdeditorAssigned;\n /** Emitted when Odeditor is detached. */\n odeditorUnassigned?: OdeditorUnassigned;\n /** Emitted when Picasso is attached. */\n picassoAssigned?: PicassoAssigned;\n /** Emitted when Picasso is detached. */\n picassoUnassigned?: PicassoUnassigned;\n}\n\nexport interface Asset {\n /**\n * An application definition id (app_id in dev-center). For legacy reasons may be UUID or a string (from Java Enum).\n * @maxLength 36\n */\n appDefId?: string;\n /**\n * An instance id. For legacy reasons may be UUID or a string.\n * @maxLength 200\n */\n instanceId?: string;\n /** An application state. */\n state?: StateWithLiterals;\n}\n\nexport enum State {\n UNKNOWN = 'UNKNOWN',\n ENABLED = 'ENABLED',\n DISABLED = 'DISABLED',\n PENDING = 'PENDING',\n DEMO = 'DEMO',\n}\n\n/** @enumType */\nexport type StateWithLiterals =\n | State\n | 'UNKNOWN'\n | 'ENABLED'\n | 'DISABLED'\n | 'PENDING'\n | 'DEMO';\n\nexport interface SiteCreated {\n /**\n * A template identifier (empty if not created from a template).\n * @maxLength 36\n */\n originTemplateId?: string;\n /**\n * An account id of the owner.\n * @format GUID\n */\n ownerId?: string;\n /** A context in which meta site was created. */\n context?: SiteCreatedContextWithLiterals;\n /**\n * A meta site id from which this site was created.\n *\n * In case of a creation from a template it's a template id.\n * In case of a site duplication (\"Save As\" in dashboard or duplicate in UM) it's an id of a source site.\n * @format GUID\n */\n originMetaSiteId?: string | null;\n /**\n * A meta site name (URL slug).\n * @maxLength 20\n */\n siteName?: string;\n /** A namespace. */\n namespace?: NamespaceWithLiterals;\n}\n\nexport enum SiteCreatedContext {\n /** A valid option, we don't expose all reasons why site might be created. */\n OTHER = 'OTHER',\n /** A meta site was created from template. */\n FROM_TEMPLATE = 'FROM_TEMPLATE',\n /** A meta site was created by copying of the transfferred meta site. */\n DUPLICATE_BY_SITE_TRANSFER = 'DUPLICATE_BY_SITE_TRANSFER',\n /** A copy of existing meta site. */\n DUPLICATE = 'DUPLICATE',\n /** A meta site was created as a transfferred site (copy of the original), old flow, should die soon. */\n OLD_SITE_TRANSFER = 'OLD_SITE_TRANSFER',\n /** deprecated A meta site was created for Flash editor. */\n FLASH = 'FLASH',\n}\n\n/** @enumType */\nexport type SiteCreatedContextWithLiterals =\n | SiteCreatedContext\n | 'OTHER'\n | 'FROM_TEMPLATE'\n | 'DUPLICATE_BY_SITE_TRANSFER'\n | 'DUPLICATE'\n | 'OLD_SITE_TRANSFER'\n | 'FLASH';\n\nexport enum Namespace {\n UNKNOWN_NAMESPACE = 'UNKNOWN_NAMESPACE',\n /** Default namespace for UGC sites. MetaSites with this namespace will be shown in a user's site list by default. */\n WIX = 'WIX',\n /** ShoutOut stand alone product. These are siteless (no actual Wix site, no HtmlWeb). MetaSites with this namespace will *not* be shown in a user's site list by default. */\n SHOUT_OUT = 'SHOUT_OUT',\n /** MetaSites created by the Albums product, they appear as part of the Albums app. MetaSites with this namespace will *not* be shown in a user's site list by default. */\n ALBUMS = 'ALBUMS',\n /** Part of the WixStores migration flow, a user tries to migrate and gets this site to view and if the user likes it then stores removes this namespace and deletes the old site with the old stores. MetaSites with this namespace will *not* be shown in a user's site list by default. */\n WIX_STORES_TEST_DRIVE = 'WIX_STORES_TEST_DRIVE',\n /** Hotels standalone (siteless). MetaSites with this namespace will *not* be shown in a user's site list by default. */\n HOTELS = 'HOTELS',\n /** Clubs siteless MetaSites, a club without a wix website. MetaSites with this namespace will *not* be shown in a user's site list by default. */\n CLUBS = 'CLUBS',\n /** A partially created ADI website. MetaSites with this namespace will *not* be shown in a user's site list by default. */\n ONBOARDING_DRAFT = 'ONBOARDING_DRAFT',\n /** AppBuilder for AppStudio / shmite (c). MetaSites with this namespace will *not* be shown in a user's site list by default. */\n DEV_SITE = 'DEV_SITE',\n /** LogoMaker websites offered to the user after logo purchase. MetaSites with this namespace will *not* be shown in a user's site list by default. */\n LOGOS = 'LOGOS',\n /** VideoMaker websites offered to the user after video purchase. MetaSites with this namespace will *not* be shown in a user's site list by default. */\n VIDEO_MAKER = 'VIDEO_MAKER',\n /** MetaSites with this namespace will *not* be shown in a user's site list by default. */\n PARTNER_DASHBOARD = 'PARTNER_DASHBOARD',\n /** MetaSites with this namespace will *not* be shown in a user's site list by default. */\n DEV_CENTER_COMPANY = 'DEV_CENTER_COMPANY',\n /**\n * A draft created by HTML editor on open. Upon \"first save\" it will be moved to be of WIX domain.\n *\n * Meta site with this namespace will *not* be shown in a user's site list by default.\n */\n HTML_DRAFT = 'HTML_DRAFT',\n /**\n * the user-journey for Fitness users who want to start from managing their business instead of designing their website.\n * Will be accessible from Site List and will not have a website app.\n * Once the user attaches a site, the site will become a regular wixsite.\n */\n SITELESS_BUSINESS = 'SITELESS_BUSINESS',\n /** Belongs to \"strategic products\" company. Supports new product in the creator's economy space. */\n CREATOR_ECONOMY = 'CREATOR_ECONOMY',\n /** It is to be used in the Business First efforts. */\n DASHBOARD_FIRST = 'DASHBOARD_FIRST',\n /** Bookings business flow with no site. */\n ANYWHERE = 'ANYWHERE',\n /** Namespace for Headless Backoffice with no editor */\n HEADLESS = 'HEADLESS',\n /**\n * Namespace for master site that will exist in parent account that will be referenced by subaccounts\n * The site will be used for account level CSM feature for enterprise\n */\n ACCOUNT_MASTER_CMS = 'ACCOUNT_MASTER_CMS',\n /** Rise.ai Siteless account management for Gift Cards and Store Credit. */\n RISE = 'RISE',\n /**\n * As part of the branded app new funnel, users now can create a meta site that will be branded app first.\n * There's a blank site behind the scene but it's blank).\n * The Mobile company will be the owner of this namespace.\n */\n BRANDED_FIRST = 'BRANDED_FIRST',\n /** Nownia.com Siteless account management for Ai Scheduling Assistant. */\n NOWNIA = 'NOWNIA',\n /**\n * UGC Templates are templates that are created by users for personal use and to sale to other users.\n * The Partners company owns this namespace.\n */\n UGC_TEMPLATE = 'UGC_TEMPLATE',\n /** Codux Headless Sites */\n CODUX = 'CODUX',\n /** Bobb - AI Design Creator. */\n MEDIA_DESIGN_CREATOR = 'MEDIA_DESIGN_CREATOR',\n /**\n * Shared Blog Site is a unique single site across Enterprise account,\n * This site will hold all Blog posts related to the Marketing product.\n */\n SHARED_BLOG_ENTERPRISE = 'SHARED_BLOG_ENTERPRISE',\n /** Standalone forms (siteless). MetaSites with this namespace will *not* be shown in a user's site list by default. */\n STANDALONE_FORMS = 'STANDALONE_FORMS',\n /** Standalone events (siteless). MetaSites with this namespace will *not* be shown in a user's site list by default. */\n STANDALONE_EVENTS = 'STANDALONE_EVENTS',\n /** MIMIR - Siteless account for MIMIR Ai Job runner. */\n MIMIR = 'MIMIR',\n}\n\n/** @enumType */\nexport type NamespaceWithLiterals =\n | Namespace\n | 'UNKNOWN_NAMESPACE'\n | 'WIX'\n | 'SHOUT_OUT'\n | 'ALBUMS'\n | 'WIX_STORES_TEST_DRIVE'\n | 'HOTELS'\n | 'CLUBS'\n | 'ONBOARDING_DRAFT'\n | 'DEV_SITE'\n | 'LOGOS'\n | 'VIDEO_MAKER'\n | 'PARTNER_DASHBOARD'\n | 'DEV_CENTER_COMPANY'\n | 'HTML_DRAFT'\n | 'SITELESS_BUSINESS'\n | 'CREATOR_ECONOMY'\n | 'DASHBOARD_FIRST'\n | 'ANYWHERE'\n | 'HEADLESS'\n | 'ACCOUNT_MASTER_CMS'\n | 'RISE'\n | 'BRANDED_FIRST'\n | 'NOWNIA'\n | 'UGC_TEMPLATE'\n | 'CODUX'\n | 'MEDIA_DESIGN_CREATOR'\n | 'SHARED_BLOG_ENTERPRISE'\n | 'STANDALONE_FORMS'\n | 'STANDALONE_EVENTS'\n | 'MIMIR';\n\n/** Site transferred to another user. */\nexport interface SiteTransferred {\n /**\n * A previous owner id (user that transfers meta site).\n * @format GUID\n */\n oldOwnerId?: string;\n /**\n * A new owner id (user that accepts meta site).\n * @format GUID\n */\n newOwnerId?: string;\n}\n\n/** Soft deletion of the meta site. Could be restored. */\nexport interface SiteDeleted {\n /** A deletion context. */\n deleteContext?: DeleteContext;\n}\n\nexport interface DeleteContext {\n /** When the meta site was deleted. */\n dateDeleted?: Date | null;\n /** A status. */\n deleteStatus?: DeleteStatusWithLiterals;\n /**\n * A reason (flow).\n * @maxLength 255\n */\n deleteOrigin?: string;\n /**\n * A service that deleted it.\n * @maxLength 255\n */\n initiatorId?: string | null;\n}\n\nexport enum DeleteStatus {\n UNKNOWN = 'UNKNOWN',\n TRASH = 'TRASH',\n DELETED = 'DELETED',\n PENDING_PURGE = 'PENDING_PURGE',\n PURGED_EXTERNALLY = 'PURGED_EXTERNALLY',\n}\n\n/** @enumType */\nexport type DeleteStatusWithLiterals =\n | DeleteStatus\n | 'UNKNOWN'\n | 'TRASH'\n | 'DELETED'\n | 'PENDING_PURGE'\n | 'PURGED_EXTERNALLY';\n\n/** Restoration of the meta site. */\nexport interface SiteUndeleted {}\n\n/** First publish of a meta site. Or subsequent publish after unpublish. */\nexport interface SitePublished {}\n\nexport interface SiteUnpublished {\n /**\n * A list of URLs previously associated with the meta site.\n * @maxLength 4000\n * @maxSize 10000\n */\n urls?: string[];\n}\n\nexport interface SiteMarkedAsTemplate {}\n\nexport interface SiteMarkedAsWixSite {}\n\n/**\n * Represents a service provisioned a site.\n *\n * Note on `origin_instance_id`:\n * There is no guarantee that you will be able to find a meta site using `origin_instance_id`.\n * This is because of the following scenario:\n *\n * Imagine you have a template where a third-party application (TPA) includes some stub data,\n * such as a product catalog. When you create a site from this template, you inherit this\n * default product catalog. However, if the template's product catalog is modified,\n * your site will retain the catalog as it was at the time of site creation. This ensures that\n * your site remains consistent with what you initially received and does not include any\n * changes made to the original template afterward.\n * To ensure this, the TPA on the template gets a new instance_id.\n */\nexport interface ServiceProvisioned {\n /**\n * Either UUID or EmbeddedServiceType.\n * @maxLength 36\n */\n appDefId?: string;\n /**\n * Not only UUID. Something here could be something weird.\n * @maxLength 36\n */\n instanceId?: string;\n /**\n * An instance id from which this instance is originated.\n * @maxLength 36\n */\n originInstanceId?: string;\n /**\n * A version.\n * @maxLength 500\n */\n version?: string | null;\n /**\n * The origin meta site id\n * @format GUID\n */\n originMetaSiteId?: string | null;\n}\n\nexport interface ServiceRemoved {\n /**\n * Either UUID or EmbeddedServiceType.\n * @maxLength 36\n */\n appDefId?: string;\n /**\n * Not only UUID. Something here could be something weird.\n * @maxLength 36\n */\n instanceId?: string;\n /**\n * A version.\n * @maxLength 500\n */\n version?: string | null;\n}\n\n/** Rename of the site. Meaning, free public url has been changed as well. */\nexport interface SiteRenamed {\n /**\n * A new meta site name (URL slug).\n * @maxLength 20\n */\n newSiteName?: string;\n /**\n * A previous meta site name (URL slug).\n * @maxLength 255\n */\n oldSiteName?: string;\n}\n\n/**\n * Hard deletion of the meta site.\n *\n * Could not be restored. Therefore it's desirable to cleanup data.\n */\nexport interface SiteHardDeleted {\n /** A deletion context. */\n deleteContext?: DeleteContext;\n}\n\nexport interface NamespaceChanged {\n /** A previous namespace. */\n oldNamespace?: NamespaceWithLiterals;\n /** A new namespace. */\n newNamespace?: NamespaceWithLiterals;\n}\n\n/** Assigned Studio editor */\nexport interface StudioAssigned {}\n\n/** Unassigned Studio editor */\nexport interface StudioUnassigned {}\n\n/**\n * Fired in case site URLs were changed in any way: new secondary domain, published, account slug rename, site rename etc.\n *\n * This is an internal event, it's not propagated in special events, because it's non-actionable. If you need to keep up\n * with sites and its urls, you need to listen to another topic/event. Read about it:\n *\n * https://bo.wix.com/wix-docs/rest/meta-site/meta-site---urls-service\n */\nexport interface SiteUrlChanged {}\n\n/**\n * Used at the end of the deletion flow for both draft sites and when a user deletes a site.\n * Consumed by other teams to remove relevant data.\n */\nexport interface SitePurgedExternally {\n /**\n * @maxLength 2048\n * @maxSize 100\n * @deprecated\n * @targetRemovalDate 2025-04-15\n */\n appDefId?: string[];\n}\n\n/** Assigned Odeditor */\nexport interface OdeditorAssigned {}\n\n/** Unassigned Odeditor */\nexport interface OdeditorUnassigned {}\n\n/** Assigned Picasso editor */\nexport interface PicassoAssigned {}\n\n/** Unassigned Picasso */\nexport interface PicassoUnassigned {}\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}\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/** @docsIgnore */\nexport type BulkUpdateOperationTagsApplicationErrors = {\n code?: 'EMPTY_ASSIGN_AND_UNASSIGN_LISTS';\n description?: string;\n data?: Record<string, any>;\n};\n/** @docsIgnore */\nexport type BulkUpdateOperationTagsByFilterApplicationErrors = {\n code?: 'EMPTY_ASSIGN_AND_UNASSIGN_LISTS';\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}\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}\n\nexport interface OperationCreatedEnvelope {\n entity: Operation;\n metadata: EventMetadata;\n}\n\n/**\n * Triggered when an operation is created.\n * @permissionScope Manage Restaurants - all permissions\n * @permissionScopeId SCOPE.RESTAURANTS.MEGA-SCOPES\n * @permissionId RESTAURANTS.OPERATION_READ\n * @webhook\n * @eventType wix.restaurants.operations.v1.operation_created\n * @serviceIdentifier wix.restaurants.operations.v1.OperationsService\n * @slug created\n * @documentationMaturity preview\n */\nexport declare function onOperationCreated(\n handler: (event: OperationCreatedEnvelope) => void | Promise<void>\n): void;\n\nexport interface OperationDeletedEnvelope {\n entity: Operation;\n metadata: EventMetadata;\n}\n\n/**\n * Triggered when an operation is deleted.\n * @permissionScope Manage Restaurants - all permissions\n * @permissionScopeId SCOPE.RESTAURANTS.MEGA-SCOPES\n * @permissionId RESTAURANTS.OPERATION_READ\n * @webhook\n * @eventType wix.restaurants.operations.v1.operation_deleted\n * @serviceIdentifier wix.restaurants.operations.v1.OperationsService\n * @slug deleted\n * @documentationMaturity preview\n */\nexport declare function onOperationDeleted(\n handler: (event: OperationDeletedEnvelope) => void | Promise<void>\n): void;\n\nexport interface OperationUpdatedEnvelope {\n entity: Operation;\n metadata: EventMetadata;\n}\n\n/**\n * Triggered when an operation is updated.\n * @permissionScope Manage Restaurants - all permissions\n * @permissionScopeId SCOPE.RESTAURANTS.MEGA-SCOPES\n * @permissionId RESTAURANTS.OPERATION_READ\n * @webhook\n * @eventType wix.restaurants.operations.v1.operation_updated\n * @serviceIdentifier wix.restaurants.operations.v1.OperationsService\n * @slug updated\n * @documentationMaturity preview\n */\nexport declare function onOperationUpdated(\n handler: (event: OperationUpdatedEnvelope) => void | Promise<void>\n): void;\n\n/**\n * Creates a new operation.\n * @param operation - Operation to create.\n * @public\n * @documentationMaturity preview\n * @requiredField operation\n * @permissionId RESTAURANTS.OPERATION_CREATE\n * @applicableIdentity APP\n * @returns Created operation.\n * @fqn wix.restaurants.operations.v1.OperationsService.CreateOperation\n * @deprecated\n * @replacedBy wix.restaurants.v1.OperationGroupService.CreateOperationGroup\n * @targetRemovalDate 2025-08-31\n */\nexport async function createOperation(\n operation: Operation\n): Promise<\n NonNullablePaths<\n Operation,\n | `fulfillmentIds`\n | `onlineOrderingStatus`\n | `defaultFulfillmentType`\n | `orderScheduling.asapOptions.preparationTime.maxTimeOptions.timeUnit`\n | `orderScheduling.asapOptions.preparationTime.timeRangeOptions.timeUnit`\n | `orderScheduling.asapOptions.preparationTime.type`\n | `orderScheduling.asapOptions.asapFutureHandlingType`\n | `orderScheduling.preorderOptions.method.weeklyScheduleOptions.cutOffTime.dayOfWeek`\n | `orderScheduling.preorderOptions.method.weeklyScheduleOptions.cutOffTime.timeOfDay.hours`\n | `orderScheduling.preorderOptions.method.weeklyScheduleOptions.cutOffTime.timeOfDay.minutes`\n | `orderScheduling.preorderOptions.method.type`\n | `orderScheduling.preorderOptions.fulfillmentTimesDisplay.type`\n | `orderScheduling.type`\n | `tags.privateTags.tagIds`,\n 8\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({ operation: operation }),\n [\n {\n transformFn: transformSDKAddressToRESTAddress,\n paths: [{ path: 'operation.businessLocationDetails.address' }],\n },\n ]\n );\n\n const reqOpts =\n ambassadorWixRestaurantsOperationsV1Operation.createOperation(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: transformRESTAddressToSDKAddress,\n paths: [{ path: 'operation.businessLocationDetails.address' }],\n },\n ])\n )?.operation!;\n } catch (err: any) {\n const transformedError = sdkTransformError(\n err,\n {\n spreadPathsToArguments: {},\n explicitPathsToArguments: { operation: '$[0]' },\n singleArgumentUnchanged: false,\n },\n ['operation']\n );\n sideEffects?.onError?.(err);\n\n throw transformedError;\n }\n}\n\n/**\n * Retrieves an operation.\n * @param operationId - ID of the operation to retrieve.\n * @public\n * @documentationMaturity preview\n * @requiredField operationId\n * @permissionId RESTAURANTS.OPERATION_READ\n * @applicableIdentity APP\n * @returns Retrieved operation.\n * @fqn wix.restaurants.operations.v1.OperationsService.GetOperation\n */\nexport async function getOperation(\n operationId: string\n): Promise<\n NonNullablePaths<\n Operation,\n | `fulfillmentIds`\n | `onlineOrderingStatus`\n | `defaultFulfillmentType`\n | `orderScheduling.asapOptions.preparationTime.maxTimeOptions.timeUnit`\n | `orderScheduling.asapOptions.preparationTime.timeRangeOptions.timeUnit`\n | `orderScheduling.asapOptions.preparationTime.type`\n | `orderScheduling.asapOptions.asapFutureHandlingType`\n | `orderScheduling.preorderOptions.method.weeklyScheduleOptions.cutOffTime.dayOfWeek`\n | `orderScheduling.preorderOptions.method.weeklyScheduleOptions.cutOffTime.timeOfDay.hours`\n | `orderScheduling.preorderOptions.method.weeklyScheduleOptions.cutOffTime.timeOfDay.minutes`\n | `orderScheduling.preorderOptions.method.type`\n | `orderScheduling.preorderOptions.fulfillmentTimesDisplay.type`\n | `orderScheduling.type`\n | `tags.privateTags.tagIds`,\n 8\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 operationId: operationId,\n });\n\n const reqOpts =\n ambassadorWixRestaurantsOperationsV1Operation.getOperation(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: transformRESTAddressToSDKAddress,\n paths: [{ path: 'operation.businessLocationDetails.address' }],\n },\n ])\n )?.operation!;\n } catch (err: any) {\n const transformedError = sdkTransformError(\n err,\n {\n spreadPathsToArguments: {},\n explicitPathsToArguments: { operationId: '$[0]' },\n singleArgumentUnchanged: false,\n },\n ['operationId']\n );\n sideEffects?.onError?.(err);\n\n throw transformedError;\n }\n}\n\n/**\n * Updates an operation.\n *\n * If you update part of the `orderScheduling` property, the whole object is overwritten,\n * so you must include the entire object unless you are not updating `orderScheduling` at all. <br />\n *\n * Each time the operation is updated,\n * `revision` increments by 1.\n * The current `revision` must be passed when updating the operation.\n * This ensures you're working with the latest operation\n * and prevents unintended overwrites.\n * @param _id - Operation ID.\n * @public\n * @documentationMaturity preview\n * @requiredField _id\n * @requiredField operation\n * @requiredField operation.revision\n * @permissionId RESTAURANTS.OPERATION_UPDATE\n * @applicableIdentity APP\n * @returns Updated operation.\n * @fqn wix.restaurants.operations.v1.OperationsService.UpdateOperation\n */\nexport async function updateOperation(\n _id: string,\n operation: NonNullablePaths<UpdateOperation, `revision`, 2>\n): Promise<\n NonNullablePaths<\n Operation,\n | `fulfillmentIds`\n | `onlineOrderingStatus`\n | `defaultFulfillmentType`\n | `orderScheduling.asapOptions.preparationTime.maxTimeOptions.timeUnit`\n | `orderScheduling.asapOptions.preparationTime.timeRangeOptions.timeUnit`\n | `orderScheduling.asapOptions.preparationTime.type`\n | `orderScheduling.asapOptions.asapFutureHandlingType`\n | `orderScheduling.preorderOptions.method.weeklyScheduleOptions.cutOffTime.dayOfWeek`\n | `orderScheduling.preorderOptions.method.weeklyScheduleOptions.cutOffTime.timeOfDay.hours`\n | `orderScheduling.preorderOptions.method.weeklyScheduleOptions.cutOffTime.timeOfDay.minutes`\n | `orderScheduling.preorderOptions.method.type`\n | `orderScheduling.preorderOptions.fulfillmentTimesDisplay.type`\n | `orderScheduling.type`\n | `tags.privateTags.tagIds`,\n 8\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 operation: { ...operation, id: _id },\n }),\n [\n {\n transformFn: transformSDKAddressToRESTAddress,\n paths: [{ path: 'operation.businessLocationDetails.address' }],\n },\n ]\n );\n\n const reqOpts =\n ambassadorWixRestaurantsOperationsV1Operation.updateOperation(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: transformRESTAddressToSDKAddress,\n paths: [{ path: 'operation.businessLocationDetails.address' }],\n },\n ])\n )?.operation!;\n } catch (err: any) {\n const transformedError = sdkTransformError(\n err,\n {\n spreadPathsToArguments: { operation: '$[1]' },\n explicitPathsToArguments: { 'operation.id': '$[0]' },\n singleArgumentUnchanged: false,\n },\n ['_id', 'operation']\n );\n sideEffects?.onError?.(err);\n\n throw transformedError;\n }\n}\n\nexport interface UpdateOperation {\n /** Options for online ordering status. Required when `onlineOrderingStatus` is `PAUSED_UNTIL`. */\n pausedUntilOptions?: OnlineOrderingPausedUntilOptions;\n /**\n * Operation ID.\n * @format GUID\n * @readonly\n */\n _id?: string | null;\n /**\n * Revision number. Increments by 1 each time the operation is updated.\n * To prevent conflicting changes,\n * the existing `revision` must be specified when updating an operation.\n * @readonly\n */\n revision?: string | null;\n /**\n * Date and time the operation was created.\n * @readonly\n */\n _createdDate?: Date | null;\n /**\n * Date and time the operation was updated.\n * @readonly\n */\n _updatedDate?: Date | null;\n /** Operation name. */\n name?: string | null;\n /**\n * Whether the operation is the default operation. <br />\n * Default: `false`.\n */\n default?: boolean | null;\n /**\n * IDs of the fulfillment methods ([SDK](https://dev.wix.com/docs/sdk/backend-modules/restaurants/wix-restaurants-new/fulfillment-methods/introduction) | [REST](https://dev.wix.com/docs/rest/api-reference/wix-restaurants/fulfillment-methods/introduction)) associated with the operation.\n * @format GUID\n * @maxSize 500\n */\n fulfillmentIds?: string[] | null;\n /** Online ordering status of the operation. <br /> */\n onlineOrderingStatus?: OnlineOrderingStatusTypeWithLiterals;\n /** Default fulfillment type of the operation. */\n defaultFulfillmentType?: FulfillmentTypeWithLiterals;\n /** Information about when an order can be placed for. */\n orderScheduling?: OrderScheduling;\n /**\n * ID of the operation group this operation belongs to.\n * @format GUID\n * @immutable\n */\n operationGroupId?: string | null;\n /**\n * ID of the business location ([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)) of this operation.\n * @format GUID\n * @immutable\n * @readonly\n */\n businessLocationId?: string | null;\n /** Extended fields. */\n extendedFields?: ExtendedFields;\n /** Tags ([SDK](https://dev.wix.com/docs/sdk/backend-modules/tags/tags/introduction) | [REST](https://dev.wix.com/docs/rest/business-management/tags/introduction)) used to classify and sort different types of operations. */\n tags?: Tags;\n}\n\n/**\n * Deletes an operation.\n * @param operationId - ID of the operation to delete.\n * @public\n * @documentationMaturity preview\n * @requiredField operationId\n * @permissionId RESTAURANTS.OPERATION_DELETE\n * @applicableIdentity APP\n * @fqn wix.restaurants.operations.v1.OperationsService.DeleteOperation\n * @deprecated\n * @replacedBy wix.restaurants.v1.OperationGroupService.DeleteOperationGroup\n * @targetRemovalDate 2025-08-31\n */\nexport async function deleteOperation(operationId: 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({\n operationId: operationId,\n });\n\n const reqOpts =\n ambassadorWixRestaurantsOperationsV1Operation.deleteOperation(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: { operationId: '$[0]' },\n singleArgumentUnchanged: false,\n },\n ['operationId']\n );\n sideEffects?.onError?.(err);\n\n throw transformedError;\n }\n}\n\n/**\n * Creates a query to retrieve a list of operations.\n *\n * The `queryOperations()` function builds a query to retrieve a list of operations and returns an `OperationsQueryBuilder` object.\n *\n * The returned object contains the query definition, which is used to run the query using the [`find()`](/operations/operations-query-builder/find) function.\n *\n * You can refine the query by chaining `OperationsQueryBuilder` functions onto the query. `OperationsQueryBuilder` functions enable you to filter, sort, and control the results that `queryOperations()` returns.\n *\n * `queryOperations()` runs with the following `OperationsQueryBuilder` defaults, which you can override:\n *\n * * [`limit(50)`](/operations/operations-query-builder/limit)\n * * [`ascending('entityId')`](/operations/operations-methods-query-builder/ascending)\n *\n * The following `OperationsQueryBuilder` functions are supported for `queryOperations()`. For a full description of the operations object, see the object returned for the [`items`](/operations/operations-query-result/items) property in `OperationsQueryResult`.\n * @public\n * @documentationMaturity preview\n * @permissionId RESTAURANTS.OPERATION_READ\n * @applicableIdentity APP\n * @fqn wix.restaurants.operations.v1.OperationsService.QueryOperation\n */\nexport function queryOperation(): OperationsQueryBuilder {\n // @ts-ignore\n const { httpClient, sideEffects } = arguments[0] as {\n httpClient: HttpClient;\n sideEffects?: any;\n };\n\n return queryBuilder<\n Operation,\n 'CURSOR',\n QueryOperationRequest,\n QueryOperationResponse\n >({\n func: async (payload: QueryOperationRequest) => {\n const reqOpts =\n ambassadorWixRestaurantsOperationsV1Operation.queryOperation(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: QueryOperationRequest['query']) => {\n const args = [query, {}] as [QueryOperationRequest['query'], {}];\n return renameKeysFromSDKRequestToRESTRequest({\n ...args?.[1],\n query: args?.[0],\n });\n },\n responseTransformer: ({ data }: HttpResponse<QueryOperationResponse>) => {\n const transformedData = renameKeysFromRESTResponseToSDKResponse(\n transformPaths(data, [\n {\n transformFn: transformRESTAddressToSDKAddress,\n paths: [{ path: 'operations.businessLocationDetails.address' }],\n },\n ])\n );\n\n return {\n items: transformedData?.operations,\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 OperationsQueryResult extends QueryCursorResult {\n items: Operation[];\n query: OperationsQueryBuilder;\n next: () => Promise<OperationsQueryResult>;\n prev: () => Promise<OperationsQueryResult>;\n}\n\nexport interface OperationsQueryBuilder {\n /** @param propertyName - Property whose value is compared with `value`.\n * @param value - Value to compare against.\n * @documentationMaturity preview\n */\n eq: (\n propertyName:\n | '_id'\n | '_createdDate'\n | '_updatedDate'\n | 'name'\n | 'default'\n | 'fulfillmentIds'\n | 'onlineOrderingStatus'\n | 'defaultFulfillmentType'\n | 'businessLocationId'\n | 'businessLocationDetails.archived',\n value: any\n ) => OperationsQueryBuilder;\n /** @param propertyName - Property whose value is compared with `value`.\n * @param value - Value to compare against.\n * @documentationMaturity preview\n */\n ne: (\n propertyName:\n | '_id'\n | '_createdDate'\n | '_updatedDate'\n | 'name'\n | 'default'\n | 'fulfillmentIds'\n | 'onlineOrderingStatus'\n | 'defaultFulfillmentType'\n | 'businessLocationId'\n | 'businessLocationDetails.archived',\n value: any\n ) => OperationsQueryBuilder;\n /** @param propertyName - Property whose value is compared with `value`.\n * @param value - Value to compare against.\n * @documentationMaturity preview\n */\n ge: (\n propertyName:\n | '_id'\n | '_createdDate'\n | '_updatedDate'\n | 'name'\n | 'businessLocationId',\n value: any\n ) => OperationsQueryBuilder;\n /** @param propertyName - Property whose value is compared with `value`.\n * @param value - Value to compare against.\n * @documentationMaturity preview\n */\n gt: (\n propertyName:\n | '_id'\n | '_createdDate'\n | '_updatedDate'\n | 'name'\n | 'businessLocationId',\n value: any\n ) => OperationsQueryBuilder;\n /** @param propertyName - Property whose value is compared with `value`.\n * @param value - Value to compare against.\n * @documentationMaturity preview\n */\n le: (\n propertyName:\n | '_id'\n | '_createdDate'\n | '_updatedDate'\n | 'name'\n | 'businessLocationId',\n value: any\n ) => OperationsQueryBuilder;\n /** @param propertyName - Property whose value is compared with `value`.\n * @param value - Value to compare against.\n * @documentationMaturity preview\n */\n lt: (\n propertyName:\n | '_id'\n | '_createdDate'\n | '_updatedDate'\n | 'name'\n | 'businessLocationId',\n value: any\n ) => OperationsQueryBuilder;\n /** @param propertyName - Property whose value is compared with `string`.\n * @param string - String to compare against. Case-insensitive.\n * @documentationMaturity preview\n */\n startsWith: (\n propertyName: '_id' | 'name' | 'businessLocationId',\n value: string\n ) => OperationsQueryBuilder;\n /** @param propertyName - Property whose value is compared with `values`.\n * @param values - List of values to compare against.\n * @documentationMaturity preview\n */\n hasSome: (\n propertyName:\n | '_id'\n | '_createdDate'\n | '_updatedDate'\n | 'name'\n | 'default'\n | 'fulfillmentIds'\n | 'onlineOrderingStatus'\n | 'defaultFulfillmentType'\n | 'businessLocationId'\n | 'businessLocationDetails.archived',\n value: any[]\n ) => OperationsQueryBuilder;\n /** @param propertyName - Property whose value is compared with `values`.\n * @param values - List of values to compare against.\n * @documentationMaturity preview\n */\n hasAll: (\n propertyName: 'fulfillmentIds',\n value: any[]\n ) => OperationsQueryBuilder;\n /** @documentationMaturity preview */\n in: (\n propertyName:\n | '_id'\n | '_createdDate'\n | '_updatedDate'\n | 'name'\n | 'default'\n | 'fulfillmentIds'\n | 'onlineOrderingStatus'\n | 'defaultFulfillmentType'\n | 'businessLocationId'\n | 'businessLocationDetails.archived',\n value: any\n ) => OperationsQueryBuilder;\n /** @documentationMaturity preview */\n exists: (\n propertyName:\n | '_id'\n | '_createdDate'\n | '_updatedDate'\n | 'name'\n | 'default'\n | 'fulfillmentIds'\n | 'onlineOrderingStatus'\n | 'defaultFulfillmentType'\n | 'businessLocationId'\n | 'businessLocationDetails.archived',\n value: boolean\n ) => OperationsQueryBuilder;\n /** @param propertyNames - Properties used in the sort. To sort by multiple properties, pass properties as additional arguments.\n * @documentationMaturity preview\n */\n ascending: (\n ...propertyNames: Array<\n | '_id'\n | '_createdDate'\n | '_updatedDate'\n | 'name'\n | 'profileId'\n | 'default'\n | 'fulfillmentIds'\n | 'onlineOrderingStatus'\n | 'defaultFulfillmentType'\n | 'businessLocationId'\n | 'businessLocationDetails.archived'\n >\n ) => OperationsQueryBuilder;\n /** @param propertyNames - Properties used in the sort. To sort by multiple properties, pass properties as additional arguments.\n * @documentationMaturity preview\n */\n descending: (\n ...propertyNames: Array<\n | '_id'\n | '_createdDate'\n | '_updatedDate'\n | 'name'\n | 'profileId'\n | 'default'\n | 'fulfillmentIds'\n | 'onlineOrderingStatus'\n | 'defaultFulfillmentType'\n | 'businessLocationId'\n | 'businessLocationDetails.archived'\n >\n ) => OperationsQueryBuilder;\n /** @param limit - Number of items to return, which is also the `pageSize` of the results object.\n * @documentationMaturity preview\n */\n limit: (limit: number) => OperationsQueryBuilder;\n /** @param cursor - A pointer to specific record\n * @documentationMaturity preview\n */\n skipTo: (cursor: string) => OperationsQueryBuilder;\n /** @documentationMaturity preview */\n find: () => Promise<OperationsQueryResult>;\n}\n\n/**\n * Retrieves a list of operations.\n * The result will be sorted by created date in ascending order.\n * @public\n * @documentationMaturity preview\n * @permissionId RESTAURANTS.OPERATION_READ\n * @applicableIdentity APP\n * @fqn wix.restaurants.operations.v1.OperationsService.ListOperations\n */\nexport async function listOperations(): Promise<\n NonNullablePaths<\n ListOperationsResponse,\n | `operations`\n | `operations.${number}.onlineOrderingStatus`\n | `operations.${number}.defaultFulfillmentType`\n | `operations.${number}.orderScheduling.asapOptions.asapFutureHandlingType`\n | `operations.${number}.orderScheduling.type`,\n 6\n >\n> {\n // @ts-ignore\n const { httpClient, sideEffects } = arguments[0] as {\n httpClient: HttpClient;\n sideEffects?: any;\n };\n\n const payload = renameKeysFromSDKRequestToRESTRequest({});\n\n const reqOpts =\n ambassadorWixRestaurantsOperationsV1Operation.listOperations(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: transformRESTAddressToSDKAddress,\n paths: [{ path: 'operations.businessLocationDetails.address' }],\n },\n ])\n )!;\n } catch (err: any) {\n const transformedError = sdkTransformError(\n err,\n {\n spreadPathsToArguments: {},\n explicitPathsToArguments: {},\n singleArgumentUnchanged: false,\n },\n []\n );\n sideEffects?.onError?.(err);\n\n throw transformedError;\n }\n}\n\n/**\n * Retrieves a list of available fulfillment options.\n *\n * What makes a fulfillment option available is whether you can submit an order given the scheduling configurations and the fulfillment method's availability.\n * When a delivery address is not provided in the input, our system retrieves a list encompassing all types of fulfillment methods.\n * Conversely, if a delivery address` is given, the response may includes non-delivery fulfillment options along with delivery fulfillment methods that are applicable to the given address, ensuring the address falls within the defined delivery area of these methods.\n * @param operationId - Operation ID. Returned fulfillment options will belong to this operation.\n * @public\n * @documentationMaturity preview\n * @requiredField operationId\n * @permissionId RESTAURANTS.OPERATION_READ\n * @applicableIdentity APP\n * @fqn wix.restaurants.operations.v1.OperationsService.ListAvailableFulfillmentOptions\n */\nexport async function listAvailableFulfillmentOptions(\n operationId: string,\n options?: ListAvailableFulfillmentOptions\n): Promise<\n NonNullablePaths<\n ListAvailableFulfillmentOptionsResponse,\n | `pickupConfigured`\n | `deliveryConfigured`\n | `fulfillmentOptions`\n | `fulfillmentOptions.${number}.maxTimeOptions`\n | `fulfillmentOptions.${number}.durationRangeOptions.minDuration`\n | `fulfillmentOptions.${number}.durationRangeOptions.maxDuration`\n | `fulfillmentOptions.${number}.timeWindowsOptions.durationInMinutes`\n | `fulfillmentOptions.${number}.type`\n | `fulfillmentOptions.${number}.availability.asapHandlingAvailable`\n | `fulfillmentOptions.${number}.fulfillmentTimeType`\n | `fulfillmentOptions.${number}.fulfillmentTimesDisplayType`,\n 5\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 operationId: operationId,\n deliveryAddress: options?.deliveryAddress,\n }),\n [\n {\n transformFn: transformSDKAddressToRESTAddress,\n paths: [{ path: 'deliveryAddress' }],\n },\n ]\n );\n\n const reqOpts =\n ambassadorWixRestaurantsOperationsV1Operation.listAvailableFulfillmentOptions(\n payload\n );\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: transformRESTAddressToSDKAddress,\n paths: [{ path: 'fulfillmentOptions.pickupOptions.address' }],\n },\n ])\n )!;\n } catch (err: any) {\n const transformedError = sdkTransformError(\n err,\n {\n spreadPathsToArguments: {},\n explicitPathsToArguments: {\n operationId: '$[0]',\n deliveryAddress: '$[1].deliveryAddress',\n },\n singleArgumentUnchanged: false,\n },\n ['operationId', 'options']\n );\n sideEffects?.onError?.(err);\n\n throw transformedError;\n }\n}\n\nexport interface ListAvailableFulfillmentOptions {\n /**\n * Delivery address. Optional.\n *\n * If provided, the returned delivery fulfillment options will be able to deliver to this address.\n */\n deliveryAddress?: CommonAddress;\n}\n\n/**\n * Retrieves a list of available time slots for each fulfillment type.\n *\n * Each time slot is the first available time slot for the given fulfillment type.\n * @param operationId - Operation ID.\n * Returned fulfillment options will belong to this operation.\n * @public\n * @documentationMaturity preview\n * @requiredField operationId\n * @permissionId RESTAURANTS.OPERATION_READ\n * @applicableIdentity APP\n * @fqn wix.restaurants.operations.v1.OperationsService.ListFirstAvailableTimeSlotForFulfillmentTypes\n * @deprecated\n * @replacedBy wix.restaurants.operations.v1.OperationsService.CalculateFirstAvailableTimeSlotPerFulfillmentType\n * @targetRemovalDate 2025-08-31\n */\nexport async function listFirstAvailableTimeSlotForFulfillmentTypes(\n operationId: string,\n options?: ListFirstAvailableTimeSlotForFulfillmentTypesOptions\n): Promise<\n NonNullablePaths<\n ListFirstAvailableTimeSlotForFulfillmentTypesResponse,\n | `timeSlots`\n | `timeSlots.${number}.fulfilmentType`\n | `timeSlots.${number}.startsNow`,\n 4\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 operationId: operationId,\n deliveryAddress: options?.deliveryAddress,\n }),\n [\n {\n transformFn: transformSDKAddressToRESTAddress,\n paths: [{ path: 'deliveryAddress' }],\n },\n ]\n );\n\n const reqOpts =\n ambassadorWixRestaurantsOperationsV1Operation.listFirstAvailableTimeSlotForFulfillmentTypes(\n payload\n );\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: transformRESTAddressToSDKAddress,\n paths: [{ path: 'timeSlots.fulfillmentAddress.address' }],\n },\n ])\n )!;\n } catch (err: any) {\n const transformedError = sdkTransformError(\n err,\n {\n spreadPathsToArguments: {},\n explicitPathsToArguments: {\n operationId: '$[0]',\n deliveryAddress: '$[1].deliveryAddress',\n },\n singleArgumentUnchanged: false,\n },\n ['operationId', 'options']\n );\n sideEffects?.onError?.(err);\n\n throw transformedError;\n }\n}\n\nexport interface ListFirstAvailableTimeSlotForFulfillmentTypesOptions {\n /**\n * Delivery address. Optional.\n *\n * If provided, the returned delivery fulfillment options will be able to deliver to this address.\n */\n deliveryAddress?: CommonAddress;\n}\n\n/**\n * Retrieves the first available time slot of each fulfillment type for a specified operation.\n *\n * The response includes a time slot with the delivery fulfillment type only if you specify a delivery address.\n * Only fulfillment methods capable of delivering to the specified address are considered when calculating time slot availability.\n * @param operationId - Operation ID.\n * @public\n * @documentationMaturity preview\n * @requiredField operationId\n * @permissionId RESTAURANTS.OPERATION_READ\n * @applicableIdentity APP\n * @fqn wix.restaurants.operations.v1.OperationsService.CalculateFirstAvailableTimeSlotPerFulfillmentType\n */\nexport async function calculateFirstAvailableTimeSlotPerFulfillmentType(\n operationId: string,\n options?: CalculateFirstAvailableTimeSlotPerFulfillmentTypeOptions\n): Promise<\n NonNullablePaths<\n CalculateFirstAvailableTimeSlotPerFulfillmentTypeResponse,\n | `timeslotsPerFulfillmentType`\n | `timeslotsPerFulfillmentType.${number}.timeSlot.orderSchedulingType`\n | `timeslotsPerFulfillmentType.${number}.fulfilmentType`,\n 5\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 operationId: operationId,\n deliveryAddress: options?.deliveryAddress,\n }),\n [\n {\n transformFn: transformSDKAddressToRESTAddress,\n paths: [{ path: 'deliveryAddress' }],\n },\n ]\n );\n\n const reqOpts =\n ambassadorWixRestaurantsOperationsV1Operation.calculateFirstAvailableTimeSlotPerFulfillmentType(\n payload\n );\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: transformRESTAddressToSDKAddress,\n paths: [\n { path: 'timeslotsPerFulfillmentType.fulfillmentInfo.address' },\n ],\n },\n ])\n )!;\n } catch (err: any) {\n const transformedError = sdkTransformError(\n err,\n {\n spreadPathsToArguments: {},\n explicitPathsToArguments: {\n operationId: '$[0]',\n deliveryAddress: '$[1].deliveryAddress',\n },\n singleArgumentUnchanged: false,\n },\n ['operationId', 'options']\n );\n sideEffects?.onError?.(err);\n\n throw transformedError;\n }\n}\n\nexport interface CalculateFirstAvailableTimeSlotPerFulfillmentTypeOptions {\n /**\n * Delivery address.\n *\n * The response includes a time slot with the delivery fulfillment type only if you specify a delivery address.\n */\n deliveryAddress?: CommonAddress;\n}\n\n/**\n * Retrieves a list of available time slots for each fulfillment type.\n *\n * Each time slot is the first available time slot for the given fulfillment type.\n * @param operationIds - Operation ID.\n * Returned fulfillment options will belong to this operation.\n * @public\n * @documentationMaturity preview\n * @requiredField operationIds\n * @permissionId RESTAURANTS.OPERATION_READ\n * @applicableIdentity APP\n * @fqn wix.restaurants.operations.v1.OperationsService.ListFirstAvailableTimeSlotsForOperations\n * @deprecated\n * @replacedBy wix.restaurants.operations.v1.OperationsService.CalculateFirstAvailableTimeSlotsPerOperation\n * @targetRemovalDate 2025-08-31\n */\nexport async function listFirstAvailableTimeSlotsForOperations(\n operationIds: string[],\n options?: ListFirstAvailableTimeSlotsForOperationsOptions\n): Promise<\n NonNullablePaths<\n ListFirstAvailableTimeSlotsForOperationsResponse,\n `timeSlots` | `timeSlots.${number}.operationId`,\n 4\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 operationIds: operationIds,\n deliveryAddress: options?.deliveryAddress,\n }),\n [\n {\n transformFn: transformSDKAddressToRESTAddress,\n paths: [{ path: 'deliveryAddress' }],\n },\n ]\n );\n\n const reqOpts =\n ambassadorWixRestaurantsOperationsV1Operation.listFirstAvailableTimeSlotsForOperations(\n payload\n );\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: transformRESTAddressToSDKAddress,\n paths: [{ path: 'timeSlots.timeSlots.fulfillmentAddress.address' }],\n },\n ])\n )!;\n } catch (err: any) {\n const transformedError = sdkTransformError(\n err,\n {\n spreadPathsToArguments: {},\n explicitPathsToArguments: {\n operationIds: '$[0]',\n deliveryAddress: '$[1].deliveryAddress',\n },\n singleArgumentUnchanged: false,\n },\n ['operationIds', 'options']\n );\n sideEffects?.onError?.(err);\n\n throw transformedError;\n }\n}\n\nexport interface ListFirstAvailableTimeSlotsForOperationsOptions {\n /**\n * Delivery address. Optional.\n *\n * If provided, the returned delivery fulfillment options will be able to deliver to this address.\n */\n deliveryAddress?: CommonAddress;\n}\n\n/**\n * Retrieves the first available time slot of each fulfillment type for each specified operation.\n *\n * The response includes time slots with delivery fulfillment types only if you specify a delivery address.\n * Only fulfillment methods capable of delivering to the specified address are considered when calculating time slot availability.\n * @param operationIds - Operation IDs.\n * @public\n * @documentationMaturity preview\n * @requiredField operationIds\n * @permissionId RESTAURANTS.OPERATION_READ\n * @applicableIdentity APP\n * @fqn wix.restaurants.operations.v1.OperationsService.CalculateFirstAvailableTimeSlotsPerOperation\n */\nexport async function calculateFirstAvailableTimeSlotsPerOperation(\n operationIds: string[],\n options?: CalculateFirstAvailableTimeSlotsPerOperationOptions\n): Promise<\n NonNullablePaths<\n CalculateFirstAvailableTimeSlotsPerOperationResponse,\n `timeSlotsPerOperation` | `timeSlotsPerOperation.${number}.operationId`,\n 4\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 operationIds: operationIds,\n deliveryAddress: options?.deliveryAddress,\n }),\n [\n {\n transformFn: transformSDKAddressToRESTAddress,\n paths: [{ path: 'deliveryAddress' }],\n },\n ]\n );\n\n const reqOpts =\n ambassadorWixRestaurantsOperationsV1Operation.calculateFirstAvailableTimeSlotsPerOperation(\n payload\n );\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: transformRESTAddressToSDKAddress,\n paths: [\n {\n path: 'timeSlotsPerOperation.timeslotsPerFulfillmentType.fulfillmentInfo.address',\n },\n ],\n },\n ])\n )!;\n } catch (err: any) {\n const transformedError = sdkTransformError(\n err,\n {\n spreadPathsToArguments: {},\n explicitPathsToArguments: {\n operationIds: '$[0]',\n deliveryAddress: '$[1].deliveryAddress',\n },\n singleArgumentUnchanged: false,\n },\n ['operationIds', 'options']\n );\n sideEffects?.onError?.(err);\n\n throw transformedError;\n }\n}\n\nexport interface CalculateFirstAvailableTimeSlotsPerOperationOptions {\n /**\n * Delivery address.\n *\n * The response includes time slots with delivery fulfillment types only if you specify a delivery address.\n */\n deliveryAddress?: CommonAddress;\n}\n\n/**\n * For each menu, retrieves the first available time slots for each fulfillment type.\n * @param operationId - Operation ID.\n * Returned timeslots that are belong to this operation.\n * @public\n * @documentationMaturity preview\n * @requiredField operationId\n * @permissionId RESTAURANTS.OPERATION_READ\n * @applicableIdentity APP\n * @fqn wix.restaurants.operations.v1.OperationsService.ListFirstAvailableTimeSlotsForMenus\n * @deprecated\n * @replacedBy wix.restaurants.operations.v1.OperationsService.CalculateFirstAvailableTimeSlotsPerMenu\n * @targetRemovalDate 2025-08-31\n */\nexport async function listFirstAvailableTimeSlotsForMenus(\n operationId: string,\n options?: ListFirstAvailableTimeSlotsForMenusOptions\n): Promise<\n NonNullablePaths<\n ListFirstAvailableTimeSlotsForMenusResponse,\n `timeSlotsPerMenu`,\n 2\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 operationId: operationId,\n deliveryAddress: options?.deliveryAddress,\n cursorPaging: options?.cursorPaging,\n }),\n [\n {\n transformFn: transformSDKAddressToRESTAddress,\n paths: [{ path: 'deliveryAddress' }],\n },\n ]\n );\n\n const reqOpts =\n ambassadorWixRestaurantsOperationsV1Operation.listFirstAvailableTimeSlotsForMenus(\n payload\n );\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: transformRESTAddressToSDKAddress,\n paths: [\n {\n path: 'timeSlotsPerMenu.timeslotsPerFulfillmentType.fulfillmentAddress.address',\n },\n ],\n },\n ])\n )!;\n } catch (err: any) {\n const transformedError = sdkTransformError(\n err,\n {\n spreadPathsToArguments: {},\n explicitPathsToArguments: {\n operationId: '$[0]',\n deliveryAddress: '$[1].deliveryAddress',\n cursorPaging: '$[1].cursorPaging',\n },\n singleArgumentUnchanged: false,\n },\n ['operationId', 'options']\n );\n sideEffects?.onError?.(err);\n\n throw transformedError;\n }\n}\n\nexport interface ListFirstAvailableTimeSlotsForMenusOptions {\n /**\n * Delivery address. Optional.\n *\n * If provided, the returned delivery fulfillment options will be able to deliver to this address.\n */\n deliveryAddress?: CommonAddress;\n /** Cursor paging */\n cursorPaging?: CursorPaging;\n}\n\n/**\n * Retrieves the first available time slot of each fulfillment type for each specified menu.\n *\n * The response includes time slots with delivery fulfillment types only if you specify a delivery address.\n * Only fulfillment methods capable of delivering to the specified address are considered when calculating time slot availability.\n * @param operationId - Operation ID.\n * @public\n * @documentationMaturity preview\n * @requiredField operationId\n * @permissionId RESTAURANTS.OPERATION_READ\n * @applicableIdentity APP\n * @fqn wix.restaurants.operations.v1.OperationsService.CalculateFirstAvailableTimeSlotsPerMenu\n */\nexport async function calculateFirstAvailableTimeSlotsPerMenu(\n operationId: string,\n options?: CalculateFirstAvailableTimeSlotsPerMenuOptions\n): Promise<\n NonNullablePaths<\n CalculateFirstAvailableTimeSlotsPerMenuResponse,\n `timeSlotsPerMenu`,\n 2\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 operationId: operationId,\n deliveryAddress: options?.deliveryAddress,\n cursorPaging: options?.cursorPaging,\n }),\n [\n {\n transformFn: transformSDKAddressToRESTAddress,\n paths: [{ path: 'deliveryAddress' }],\n },\n ]\n );\n\n const reqOpts =\n ambassadorWixRestaurantsOperationsV1Operation.calculateFirstAvailableTimeSlotsPerMenu(\n payload\n );\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: transformRESTAddressToSDKAddress,\n paths: [\n {\n path: 'timeSlotsPerMenu.timeslotsPerFulfillmentType.fulfillmentInfo.address',\n },\n ],\n },\n ])\n )!;\n } catch (err: any) {\n const transformedError = sdkTransformError(\n err,\n {\n spreadPathsToArguments: {},\n explicitPathsToArguments: {\n operationId: '$[0]',\n deliveryAddress: '$[1].deliveryAddress',\n cursorPaging: '$[1].cursorPaging',\n },\n singleArgumentUnchanged: false,\n },\n ['operationId', 'options']\n );\n sideEffects?.onError?.(err);\n\n throw transformedError;\n }\n}\n\nexport interface CalculateFirstAvailableTimeSlotsPerMenuOptions {\n /**\n * Delivery address.\n *\n * The response includes time slots with delivery fulfillment types only if you specify a delivery address.\n */\n deliveryAddress?: CommonAddress;\n /** Cursor paging. */\n cursorPaging?: CursorPaging;\n}\n\n/**\n * Retrieves a list of the available time slots for a given date.\n * @param operationId - Operation ID.\n * The returned fulfillment options will belong to this operation.\n * @public\n * @documentationMaturity preview\n * @requiredField operationId\n * @requiredField options.date\n * @requiredField options.date.day\n * @requiredField options.date.month\n * @requiredField options.date.year\n * @permissionId RESTAURANTS.OPERATION_READ\n * @applicableIdentity APP\n * @fqn wix.restaurants.operations.v1.OperationsService.ListAvailableTimeSlotsForDate\n * @deprecated\n * @replacedBy wix.restaurants.operations.v1.OperationsService.CalculateAvailableTimeSlotsForDate\n * @targetRemovalDate 2025-08-31\n */\nexport async function listAvailableTimeSlotsForDate(\n operationId: string,\n options?: NonNullablePaths<\n ListAvailableTimeSlotsForDateOptions,\n `date` | `date.day` | `date.month` | `date.year`,\n 3\n >\n): Promise<\n NonNullablePaths<\n ListAvailableTimeSlotsForDateResponse,\n | `timeSlots`\n | `timeSlots.${number}.fulfilmentType`\n | `timeSlots.${number}.startsNow`,\n 4\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 operationId: operationId,\n deliveryAddress: options?.deliveryAddress,\n date: options?.date,\n }),\n [\n {\n transformFn: transformSDKAddressToRESTAddress,\n paths: [{ path: 'deliveryAddress' }],\n },\n ]\n );\n\n const reqOpts =\n ambassadorWixRestaurantsOperationsV1Operation.listAvailableTimeSlotsForDate(\n payload\n );\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: transformRESTAddressToSDKAddress,\n paths: [{ path: 'timeSlots.fulfillmentAddress.address' }],\n },\n ])\n )!;\n } catch (err: any) {\n const transformedError = sdkTransformError(\n err,\n {\n spreadPathsToArguments: {},\n explicitPathsToArguments: {\n operationId: '$[0]',\n deliveryAddress: '$[1].deliveryAddress',\n date: '$[1].date',\n },\n singleArgumentUnchanged: false,\n },\n ['operationId', 'options']\n );\n sideEffects?.onError?.(err);\n\n throw transformedError;\n }\n}\n\nexport interface ListAvailableTimeSlotsForDateOptions {\n /**\n * Delivery address. Optional.\n *\n * If provided, the returned delivery fulfillment options will be able to deliver to this address.\n */\n deliveryAddress?: CommonAddress;\n /** Date and time to get the available time slots for. */\n date: _Date;\n}\n\n/**\n * Retrieves all available time slots of each fulfillment type for the specified date.\n *\n * The response includes time slots with delivery fulfillment types only if you specify a delivery address.\n * Only fulfillment methods capable of delivering to the specified address are considered when calculating time slot availability.\n * @param operationId - Operation ID.\n * @public\n * @documentationMaturity preview\n * @requiredField operationId\n * @requiredField options.date\n * @requiredField options.date.day\n * @requiredField options.date.month\n * @requiredField options.date.year\n * @permissionId RESTAURANTS.OPERATION_READ\n * @applicableIdentity APP\n * @fqn wix.restaurants.operations.v1.OperationsService.CalculateAvailableTimeSlotsForDate\n */\nexport async function calculateAvailableTimeSlotsForDate(\n operationId: string,\n options?: NonNullablePaths<\n CalculateAvailableTimeSlotsForDateOptions,\n `date` | `date.day` | `date.month` | `date.year`,\n 3\n >\n): Promise<\n NonNullablePaths<\n CalculateAvailableTimeSlotsForDateResponse,\n | `timeslotsPerFulfillmentType`\n | `timeslotsPerFulfillmentType.${number}.timeSlot.orderSchedulingType`\n | `timeslotsPerFulfillmentType.${number}.fulfilmentType`,\n 5\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 operationId: operationId,\n deliveryAddress: options?.deliveryAddress,\n date: options?.date,\n }),\n [\n {\n transformFn: transformSDKAddressToRESTAddress,\n paths: [{ path: 'deliveryAddress' }],\n },\n ]\n );\n\n const reqOpts =\n ambassadorWixRestaurantsOperationsV1Operation.calculateAvailableTimeSlotsForDate(\n payload\n );\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: transformRESTAddressToSDKAddress,\n paths: [\n { path: 'timeslotsPerFulfillmentType.fulfillmentInfo.address' },\n ],\n },\n ])\n )!;\n } catch (err: any) {\n const transformedError = sdkTransformError(\n err,\n {\n spreadPathsToArguments: {},\n explicitPathsToArguments: {\n operationId: '$[0]',\n deliveryAddress: '$[1].deliveryAddress',\n date: '$[1].date',\n },\n singleArgumentUnchanged: false,\n },\n ['operationId', 'options']\n );\n sideEffects?.onError?.(err);\n\n throw transformedError;\n }\n}\n\nexport interface CalculateAvailableTimeSlotsForDateOptions {\n /**\n * Delivery address.\n *\n * The response includes time slots with delivery fulfillment types only if you specify a delivery address.\n */\n deliveryAddress?: CommonAddress;\n /** Date and time to get the available time slots for. */\n date: _Date;\n}\n\n/**\n * Retrieves a list of the available dates in a given time range.\n *\n * A date is considered available if it has at least one available time slot.\n * @param operationId - Operation ID.\n * The returned fulfillment options will belong to this operation.\n * @public\n * @documentationMaturity preview\n * @requiredField operationId\n * @requiredField options.from\n * @requiredField options.until\n * @permissionId RESTAURANTS.OPERATION_READ\n * @applicableIdentity APP\n * @fqn wix.restaurants.operations.v1.OperationsService.ListAvailableDatesInRange\n * @deprecated\n * @replacedBy wix.restaurants.operations.v1.OperationsService.CalculateAvailableDatesInRange\n * @targetRemovalDate 2025-08-31\n */\nexport async function listAvailableDatesInRange(\n operationId: string,\n options?: NonNullablePaths<\n ListAvailableDatesInRangeOptions,\n `from` | `until`,\n 2\n >\n): Promise<\n NonNullablePaths<\n ListAvailableDatesInRangeResponse,\n `availableDates` | `availableDates.${number}.fulfilmentType`,\n 4\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 operationId: operationId,\n deliveryAddress: options?.deliveryAddress,\n from: options?.from,\n until: options?.until,\n }),\n [\n {\n transformFn: transformSDKAddressToRESTAddress,\n paths: [{ path: 'deliveryAddress' }],\n },\n ]\n );\n\n const reqOpts =\n ambassadorWixRestaurantsOperationsV1Operation.listAvailableDatesInRange(\n payload\n );\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 operationId: '$[0]',\n deliveryAddress: '$[1].deliveryAddress',\n from: '$[1].from',\n until: '$[1].until',\n },\n singleArgumentUnchanged: false,\n },\n ['operationId', 'options']\n );\n sideEffects?.onError?.(err);\n\n throw transformedError;\n }\n}\n\nexport interface ListAvailableDatesInRangeOptions {\n /**\n * Delivery address. Optional.\n *\n * If provided, the returned delivery fulfillment options will be able to deliver to this address.\n */\n deliveryAddress?: CommonAddress;\n /** Start date and time of the range. */\n from: _Date;\n /** End date and time of the range. */\n until: _Date;\n}\n\n/**\n * Retrieves all available dates of each fulfillment type within the specified time range.\n *\n * A date is considered available if it has at least one available time slot.\n *\n * The response includes time slots with delivery fulfillment types only if you specify a delivery address.\n * Only fulfillment methods capable of delivering to the specified address are considered when calculating time slot availability.\n * @param operationId - Operation ID.\n * @public\n * @documentationMaturity preview\n * @requiredField operationId\n * @requiredField options.from\n * @requiredField options.until\n * @permissionId RESTAURANTS.OPERATION_READ\n * @applicableIdentity APP\n * @fqn wix.restaurants.operations.v1.OperationsService.CalculateAvailableDatesInRange\n */\nexport async function calculateAvailableDatesInRange(\n operationId: string,\n options?: NonNullablePaths<\n CalculateAvailableDatesInRangeOptions,\n `from` | `until`,\n 2\n >\n): Promise<\n NonNullablePaths<\n CalculateAvailableDatesInRangeResponse,\n | `availableDatesPerFulfillmentType`\n | `availableDatesPerFulfillmentType.${number}.fulfilmentType`,\n 4\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 operationId: operationId,\n deliveryAddress: options?.deliveryAddress,\n from: options?.from,\n until: options?.until,\n }),\n [\n {\n transformFn: transformSDKAddressToRESTAddress,\n paths: [{ path: 'deliveryAddress' }],\n },\n ]\n );\n\n const reqOpts =\n ambassadorWixRestaurantsOperationsV1Operation.calculateAvailableDatesInRange(\n payload\n );\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 operationId: '$[0]',\n deliveryAddress: '$[1].deliveryAddress',\n from: '$[1].from',\n until: '$[1].until',\n },\n singleArgumentUnchanged: false,\n },\n ['operationId', 'options']\n );\n sideEffects?.onError?.(err);\n\n throw transformedError;\n }\n}\n\nexport interface CalculateAvailableDatesInRangeOptions {\n /**\n * Delivery address.\n *\n * Delivery fulfillment methods are only considered when calculating date availability if a delivery address is specified.\n */\n deliveryAddress?: CommonAddress;\n /** Start date and time of the range. */\n from: _Date;\n /** End date and time of the range. */\n until: _Date;\n}\n\n/**\n * Validates an operation's address\n *\n * Checks if the address linked to the operation (stored in business_location_details) is valid.\n * An address is considered valid if it has:\n * 1. A non-empty formatted address\n * 2. Valid geocode coordinates (not 0,0)\n * 3. A non-empty country field\n *\n * If the address is invalid, the response includes specific violations.\n * @param operationId - The ID of the operation to validate\n * @public\n * @documentationMaturity preview\n * @requiredField operationId\n * @permissionId RESTAURANTS.OPERATION_READ\n * @applicableIdentity APP\n * @returns Response message for address validation\n * @fqn wix.restaurants.operations.v1.OperationsService.ValidateOperationAddress\n */\nexport async function validateOperationAddress(\n operationId: string\n): Promise<\n NonNullablePaths<\n ValidateOperationAddressResponse,\n `valid` | `violations` | `violations.${number}.type`,\n 4\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 operationId: operationId,\n });\n\n const reqOpts =\n ambassadorWixRestaurantsOperationsV1Operation.validateOperationAddress(\n payload\n );\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: { operationId: '$[0]' },\n singleArgumentUnchanged: false,\n },\n ['operationId']\n );\n sideEffects?.onError?.(err);\n\n throw transformedError;\n }\n}\n\n/**\n * Synchronously update tags on multiple operations.\n * If you specify a tag in both `assignTags` and `unassignTags`, it is assigned.\n * @param operationIds - IDs of the operations to update tags for.\n * @public\n * @documentationMaturity preview\n * @requiredField operationIds\n * @permissionId RESTAURANTS.OPERATION_UPDATE_TAGS\n * @applicableIdentity APP\n * @fqn wix.restaurants.operations.v1.OperationsService.BulkUpdateOperationTags\n */\nexport async function bulkUpdateOperationTags(\n operationIds: string[],\n options?: BulkUpdateOperationTagsOptions\n): Promise<\n NonNullablePaths<\n BulkUpdateOperationTagsResponse,\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 __applicationErrorsType?: BulkUpdateOperationTagsApplicationErrors;\n }\n> {\n // @ts-ignore\n const { httpClient, sideEffects } = arguments[2] as {\n httpClient: HttpClient;\n sideEffects?: any;\n };\n\n const payload = renameKeysFromSDKRequestToRESTRequest({\n operationIds: operationIds,\n assignTags: options?.assignTags,\n unassignTags: options?.unassignTags,\n });\n\n const reqOpts =\n ambassadorWixRestaurantsOperationsV1Operation.bulkUpdateOperationTags(\n payload\n );\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 operationIds: '$[0]',\n assignTags: '$[1].assignTags',\n unassignTags: '$[1].unassignTags',\n },\n singleArgumentUnchanged: false,\n },\n ['operationIds', 'options']\n );\n sideEffects?.onError?.(err);\n\n throw transformedError;\n }\n}\n\nexport interface BulkUpdateOperationTagsOptions {\n /** Tags to assign to the operations. */\n assignTags?: Tags;\n /** Tags to unassign from the operations. */\n unassignTags?: Tags;\n}\n\n/**\n * Asynchronously update tags on multiple operations according to the specified filter.\n * If a filter isn't specified, this method updates all operations.\n * If you specify a tag in both `assignTags` and `unassignTags`, it is assigned.\n * @param filter - Filter that determines which operations to update tags for.\n * @public\n * @documentationMaturity preview\n * @requiredField filter\n * @permissionId RESTAURANTS.OPERATION_UPDATE_TAGS\n * @applicableIdentity APP\n * @fqn wix.restaurants.operations.v1.OperationsService.BulkUpdateOperationTagsByFilter\n */\nexport async function bulkUpdateOperationTagsByFilter(\n filter: Record<string, any>,\n options?: BulkUpdateOperationTagsByFilterOptions\n): Promise<\n NonNullablePaths<BulkUpdateOperationTagsByFilterResponse, `jobId`, 2> & {\n __applicationErrorsType?: BulkUpdateOperationTagsByFilterApplicationErrors;\n }\n> {\n // @ts-ignore\n const { httpClient, sideEffects } = arguments[2] as {\n httpClient: HttpClient;\n sideEffects?: any;\n };\n\n const payload = renameKeysFromSDKRequestToRESTRequest({\n filter: filter,\n assignTags: options?.assignTags,\n unassignTags: options?.unassignTags,\n });\n\n const reqOpts =\n ambassadorWixRestaurantsOperationsV1Operation.bulkUpdateOperationTagsByFilter(\n payload\n );\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]',\n assignTags: '$[1].assignTags',\n unassignTags: '$[1].unassignTags',\n },\n singleArgumentUnchanged: false,\n },\n ['filter', 'options']\n );\n sideEffects?.onError?.(err);\n\n throw transformedError;\n }\n}\n\nexport interface BulkUpdateOperationTagsByFilterOptions {\n /** Tags to assign to the operations. */\n assignTags?: Tags;\n /** Tags to unassign from the operations. */\n unassignTags?: Tags;\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';\nimport { _Date } from './restaurants-operations-v1-operation-operations.types';\n\nfunction resolveWixRestaurantsOperationsV1OperationsServiceUrl(\n opts: Omit<ResolveUrlOpts, 'domainToMappings'>\n) {\n const domainToMappings = {\n 'manage._base_domain_': [\n {\n srcPath: '/_api/restaurants-operations/v1',\n destPath: '/v1',\n },\n ],\n 'www._base_domain_': [\n {\n srcPath: '/_api/restaurants-operations/v1',\n destPath: '/v1',\n },\n ],\n 'editor.wixapps.net': [\n {\n srcPath: '/_api/restaurants-operations/v1',\n destPath: '/v1',\n },\n ],\n '*.dev.wix-code.com': [\n {\n srcPath: '/_api/restaurants-operations/v1',\n destPath: '/v1',\n },\n ],\n 'www.wixapis.com': [\n {\n srcPath: '/restaurants-operations/v1',\n destPath: '/v1',\n },\n {\n srcPath: '/restaurants/operations/v1/operations',\n destPath: '/v1/operations',\n },\n ],\n _: [\n {\n srcPath: '/_api/restaurants-operations/v1',\n destPath: '/v1',\n },\n ],\n _base_domain_: [\n {\n srcPath: '/_api/restaurants-operations/v1',\n destPath: '/v1',\n },\n ],\n 'editor._base_domain_': [\n {\n srcPath: '/_api/restaurants-operations/v1',\n destPath: '/v1',\n },\n ],\n 'blocks._base_domain_': [\n {\n srcPath: '/_api/restaurants-operations/v1',\n destPath: '/v1',\n },\n ],\n 'create.editorx': [\n {\n srcPath: '/_api/restaurants-operations/v1',\n destPath: '/v1',\n },\n ],\n 'users._base_domain_': [\n {\n srcPath: '/_api/restaurants-operations/v1',\n destPath: '/v1',\n },\n ],\n 'api._api_base_domain_': [\n {\n srcPath: '/restaurants-operations',\n destPath: '',\n },\n ],\n 'apps._base_domain_': [\n {\n srcPath: '/_api/restaurants-operations',\n destPath: '',\n },\n ],\n };\n\n return resolveUrl(Object.assign(opts, { domainToMappings }));\n}\n\nconst PACKAGE_NAME = '@wix/auto_sdk_restaurants_operations';\n\n/**\n * Creates a new operation.\n * @deprecated It has been replaced with wix.restaurants.v1.OperationGroupService.CreateOperationGroup(), and will be removed on 2025-08-31.\n */\nexport function createOperation(payload: object): RequestOptionsFactory<any> {\n function __createOperation({ host }: any) {\n const serializedData = transformPaths(payload, [\n {\n transformFn: transformSDKTimestampToRESTTimestamp,\n paths: [\n { path: 'operation.createdDate' },\n { path: 'operation.updatedDate' },\n { path: 'operation.pausedUntilOptions.time' },\n ],\n },\n {\n transformFn: transformSDKFloatToRESTFloat,\n paths: [\n {\n path: 'operation.businessLocationDetails.address.geocode.latitude',\n },\n {\n path: 'operation.businessLocationDetails.address.geocode.longitude',\n },\n ],\n },\n ]);\n const metadata = {\n entityFqdn: 'wix.restaurants.operations.v1.operation',\n method: 'POST' as any,\n methodFqn:\n 'wix.restaurants.operations.v1.OperationsService.CreateOperation',\n packageName: PACKAGE_NAME,\n url: resolveWixRestaurantsOperationsV1OperationsServiceUrl({\n protoPath: '/v1/operations',\n data: serializedData,\n host,\n }),\n data: serializedData,\n transformResponse: (payload: any) =>\n transformPaths(payload, [\n {\n transformFn: transformRESTTimestampToSDKTimestamp,\n paths: [\n { path: 'operation.createdDate' },\n { path: 'operation.updatedDate' },\n { path: 'operation.pausedUntilOptions.time' },\n ],\n },\n {\n transformFn: transformRESTFloatToSDKFloat,\n paths: [\n {\n path: 'operation.businessLocationDetails.address.geocode.latitude',\n },\n {\n path: 'operation.businessLocationDetails.address.geocode.longitude',\n },\n ],\n },\n ]),\n };\n\n return metadata;\n }\n\n return __createOperation;\n}\n\n/** Retrieves an operation. */\nexport function getOperation(payload: object): RequestOptionsFactory<any> {\n function __getOperation({ host }: any) {\n const metadata = {\n entityFqdn: 'wix.restaurants.operations.v1.operation',\n method: 'GET' as any,\n methodFqn: 'wix.restaurants.operations.v1.OperationsService.GetOperation',\n packageName: PACKAGE_NAME,\n url: resolveWixRestaurantsOperationsV1OperationsServiceUrl({\n protoPath: '/v1/operations/{operationId}',\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: 'operation.createdDate' },\n { path: 'operation.updatedDate' },\n { path: 'operation.pausedUntilOptions.time' },\n ],\n },\n {\n transformFn: transformRESTFloatToSDKFloat,\n paths: [\n {\n path: 'operation.businessLocationDetails.address.geocode.latitude',\n },\n {\n path: 'operation.businessLocationDetails.address.geocode.longitude',\n },\n ],\n },\n ]),\n };\n\n return metadata;\n }\n\n return __getOperation;\n}\n\n/**\n * Updates an operation.\n *\n * If you update part of the `orderScheduling` property, the whole object is overwritten,\n * so you must include the entire object unless you are not updating `orderScheduling` at all. <br />\n *\n * Each time the operation is updated,\n * `revision` increments by 1.\n * The current `revision` must be passed when updating the operation.\n * This ensures you're working with the latest operation\n * and prevents unintended overwrites.\n */\nexport function updateOperation(payload: object): RequestOptionsFactory<any> {\n function __updateOperation({ host }: any) {\n const serializedData = transformPaths(payload, [\n {\n transformFn: transformSDKFieldMaskToRESTFieldMask,\n paths: [{ path: 'mask' }],\n },\n {\n transformFn: transformSDKTimestampToRESTTimestamp,\n paths: [\n { path: 'operation.createdDate' },\n { path: 'operation.updatedDate' },\n { path: 'operation.pausedUntilOptions.time' },\n ],\n },\n {\n transformFn: transformSDKFloatToRESTFloat,\n paths: [\n {\n path: 'operation.businessLocationDetails.address.geocode.latitude',\n },\n {\n path: 'operation.businessLocationDetails.address.geocode.longitude',\n },\n ],\n },\n ]);\n const metadata = {\n entityFqdn: 'wix.restaurants.operations.v1.operation',\n method: 'PATCH' as any,\n methodFqn:\n 'wix.restaurants.operations.v1.OperationsService.UpdateOperation',\n packageName: PACKAGE_NAME,\n url: resolveWixRestaurantsOperationsV1OperationsServiceUrl({\n protoPath: '/v1/operations/{operation.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: 'operation.createdDate' },\n { path: 'operation.updatedDate' },\n { path: 'operation.pausedUntilOptions.time' },\n ],\n },\n {\n transformFn: transformRESTFloatToSDKFloat,\n paths: [\n {\n path: 'operation.businessLocationDetails.address.geocode.latitude',\n },\n {\n path: 'operation.businessLocationDetails.address.geocode.longitude',\n },\n ],\n },\n ]),\n };\n\n return metadata;\n }\n\n return __updateOperation;\n}\n\n/**\n * Deletes an operation.\n * @deprecated It has been replaced with wix.restaurants.v1.OperationGroupService.DeleteOperationGroup(), and will be removed on 2025-08-31.\n */\nexport function deleteOperation(payload: object): RequestOptionsFactory<any> {\n function __deleteOperation({ host }: any) {\n const metadata = {\n entityFqdn: 'wix.restaurants.operations.v1.operation',\n method: 'DELETE' as any,\n methodFqn:\n 'wix.restaurants.operations.v1.OperationsService.DeleteOperation',\n packageName: PACKAGE_NAME,\n url: resolveWixRestaurantsOperationsV1OperationsServiceUrl({\n protoPath: '/v1/operations/{operationId}',\n data: payload,\n host,\n }),\n params: toURLSearchParams(payload),\n };\n\n return metadata;\n }\n\n return __deleteOperation;\n}\n\n/**\n * Creates a query to retrieve a list of operations.\n *\n * The `queryOperations()` function builds a query to retrieve a list of operations and returns an `OperationsQueryBuilder` object.\n *\n * The returned object contains the query definition, which is used to run the query using the [`find()`](/operations/operations-query-builder/find) function.\n *\n * You can refine the query by chaining `OperationsQueryBuilder` functions onto the query. `OperationsQueryBuilder` functions enable you to filter, sort, and control the results that `queryOperations()` returns.\n *\n * `queryOperations()` runs with the following `OperationsQueryBuilder` defaults, which you can override:\n *\n * * [`limit(50)`](/operations/operations-query-builder/limit)\n * * [`ascending('entityId')`](/operations/operations-methods-query-builder/ascending)\n *\n * The following `OperationsQueryBuilder` functions are supported for `queryOperations()`. For a full description of the operations object, see the object returned for the [`items`](/operations/operations-query-result/items) property in `OperationsQueryResult`.\n */\nexport function queryOperation(payload: object): RequestOptionsFactory<any> {\n function __queryOperation({ host }: any) {\n const metadata = {\n entityFqdn: 'wix.restaurants.operations.v1.operation',\n method: 'POST' as any,\n methodFqn:\n 'wix.restaurants.operations.v1.OperationsService.QueryOperation',\n packageName: PACKAGE_NAME,\n url: resolveWixRestaurantsOperationsV1OperationsServiceUrl({\n protoPath: '/v1/operations/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: 'operations.createdDate' },\n { path: 'operations.updatedDate' },\n { path: 'operations.pausedUntilOptions.time' },\n ],\n },\n {\n transformFn: transformRESTFloatToSDKFloat,\n paths: [\n {\n path: 'operations.businessLocationDetails.address.geocode.latitude',\n },\n {\n path: 'operations.businessLocationDetails.address.geocode.longitude',\n },\n ],\n },\n ]),\n };\n\n return metadata;\n }\n\n return __queryOperation;\n}\n\n/**\n * Retrieves a list of operations.\n * The result will be sorted by created date in ascending order.\n */\nexport function listOperations(payload: object): RequestOptionsFactory<any> {\n function __listOperations({ host }: any) {\n const metadata = {\n entityFqdn: 'wix.restaurants.operations.v1.operation',\n method: 'GET' as any,\n methodFqn:\n 'wix.restaurants.operations.v1.OperationsService.ListOperations',\n packageName: PACKAGE_NAME,\n url: resolveWixRestaurantsOperationsV1OperationsServiceUrl({\n protoPath: '/v1/operations',\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: 'operations.createdDate' },\n { path: 'operations.updatedDate' },\n { path: 'operations.pausedUntilOptions.time' },\n ],\n },\n {\n transformFn: transformRESTFloatToSDKFloat,\n paths: [\n {\n path: 'operations.businessLocationDetails.address.geocode.latitude',\n },\n {\n path: 'operations.businessLocationDetails.address.geocode.longitude',\n },\n ],\n },\n ]),\n };\n\n return metadata;\n }\n\n return __listOperations;\n}\n\n/**\n * Retrieves a list of available fulfillment options.\n *\n * What makes a fulfillment option available is whether you can submit an order given the scheduling configurations and the fulfillment method's availability.\n * When a delivery address is not provided in the input, our system retrieves a list encompassing all types of fulfillment methods.\n * Conversely, if a delivery address` is given, the response may includes non-delivery fulfillment options along with delivery fulfillment methods that are applicable to the given address, ensuring the address falls within the defined delivery area of these methods.\n */\nexport function listAvailableFulfillmentOptions(\n payload: object\n): RequestOptionsFactory<any> {\n function __listAvailableFulfillmentOptions({ host }: any) {\n const serializedData = transformPaths(payload, [\n {\n transformFn: transformSDKFloatToRESTFloat,\n paths: [\n { path: 'deliveryAddress.geocode.latitude' },\n { path: 'deliveryAddress.geocode.longitude' },\n ],\n },\n ]);\n const metadata = {\n entityFqdn: 'wix.restaurants.operations.v1.operation',\n method: 'GET' as any,\n methodFqn:\n 'wix.restaurants.operations.v1.OperationsService.ListAvailableFulfillmentOptions',\n packageName: PACKAGE_NAME,\n url: resolveWixRestaurantsOperationsV1OperationsServiceUrl({\n protoPath: '/v1/operations/{operationId}/available-fulfillment-options',\n data: serializedData,\n host,\n }),\n params: toURLSearchParams(serializedData),\n transformResponse: (payload: any) =>\n transformPaths(payload, [\n {\n transformFn: transformRESTFloatToSDKFloat,\n paths: [\n {\n path: 'fulfillmentOptions.pickupOptions.address.geocode.latitude',\n },\n {\n path: 'fulfillmentOptions.pickupOptions.address.geocode.longitude',\n },\n ],\n },\n {\n transformFn: transformRESTTimestampToSDKTimestamp,\n paths: [\n { path: 'fulfillmentOptions.availability.startTime' },\n { path: 'fulfillmentOptions.availability.endTime' },\n { path: 'fulfillmentOptions.availability.exceptions.startTime' },\n { path: 'fulfillmentOptions.availability.exceptions.endTime' },\n ],\n },\n ]),\n };\n\n return metadata;\n }\n\n return __listAvailableFulfillmentOptions;\n}\n\n/**\n * Retrieves a list of available time slots for each fulfillment type.\n *\n * Each time slot is the first available time slot for the given fulfillment type.\n * @deprecated It has been replaced with wix.restaurants.operations.v1.OperationsService.CalculateFirstAvailableTimeSlotPerFulfillmentType(), and will be removed on 2025-08-31.\n */\nexport function listFirstAvailableTimeSlotForFulfillmentTypes(\n payload: object\n): RequestOptionsFactory<any> {\n function __listFirstAvailableTimeSlotForFulfillmentTypes({ host }: any) {\n const serializedData = transformPaths(payload, [\n {\n transformFn: transformSDKFloatToRESTFloat,\n paths: [\n { path: 'deliveryAddress.geocode.latitude' },\n { path: 'deliveryAddress.geocode.longitude' },\n ],\n },\n ]);\n const metadata = {\n entityFqdn: 'wix.restaurants.operations.v1.operation',\n method: 'GET' as any,\n methodFqn:\n 'wix.restaurants.operations.v1.OperationsService.ListFirstAvailableTimeSlotForFulfillmentTypes',\n packageName: PACKAGE_NAME,\n url: resolveWixRestaurantsOperationsV1OperationsServiceUrl({\n protoPath:\n '/v1/operations/{operationId}/first-available-time-slot-for-fulfillment-types',\n data: serializedData,\n host,\n }),\n params: toURLSearchParams(serializedData),\n transformResponse: (payload: any) =>\n transformPaths(payload, [\n {\n transformFn: transformRESTTimestampToSDKTimestamp,\n paths: [\n { path: 'timeSlots.startTime' },\n { path: 'timeSlots.endTime' },\n ],\n },\n {\n transformFn: transformRESTFloatToSDKFloat,\n paths: [\n { path: 'timeSlots.fulfillmentAddress.address.geocode.latitude' },\n {\n path: 'timeSlots.fulfillmentAddress.address.geocode.longitude',\n },\n ],\n },\n ]),\n };\n\n return metadata;\n }\n\n return __listFirstAvailableTimeSlotForFulfillmentTypes;\n}\n\n/**\n * Retrieves the first available time slot of each fulfillment type for a specified operation.\n *\n * The response includes a time slot with the delivery fulfillment type only if you specify a delivery address.\n * Only fulfillment methods capable of delivering to the specified address are considered when calculating time slot availability.\n */\nexport function calculateFirstAvailableTimeSlotPerFulfillmentType(\n payload: object\n): RequestOptionsFactory<any> {\n function __calculateFirstAvailableTimeSlotPerFulfillmentType({ host }: any) {\n const serializedData = transformPaths(payload, [\n {\n transformFn: transformSDKFloatToRESTFloat,\n paths: [\n { path: 'deliveryAddress.geocode.latitude' },\n { path: 'deliveryAddress.geocode.longitude' },\n ],\n },\n ]);\n const metadata = {\n entityFqdn: 'wix.restaurants.operations.v1.operation',\n method: 'GET' as any,\n methodFqn:\n 'wix.restaurants.operations.v1.OperationsService.CalculateFirstAvailableTimeSlotPerFulfillmentType',\n packageName: PACKAGE_NAME,\n url: resolveWixRestaurantsOperationsV1OperationsServiceUrl({\n protoPath:\n '/v1/operations/{operationId}/first-available-time-slot-per-fulfillment-type',\n data: serializedData,\n host,\n }),\n params: toURLSearchParams(serializedData),\n transformResponse: (payload: any) =>\n transformPaths(payload, [\n {\n transformFn: transformRESTTimestampToSDKTimestamp,\n paths: [\n { path: 'timeslotsPerFulfillmentType.timeSlot.startTime' },\n { path: 'timeslotsPerFulfillmentType.timeSlot.endTime' },\n ],\n },\n {\n transformFn: transformRESTFloatToSDKFloat,\n paths: [\n {\n path: 'timeslotsPerFulfillmentType.fulfillmentInfo.address.geocode.latitude',\n },\n {\n path: 'timeslotsPerFulfillmentType.fulfillmentInfo.address.geocode.longitude',\n },\n ],\n },\n ]),\n };\n\n return metadata;\n }\n\n return __calculateFirstAvailableTimeSlotPerFulfillmentType;\n}\n\n/**\n * Retrieves a list of available time slots for each fulfillment type.\n *\n * Each time slot is the first available time slot for the given fulfillment type.\n * @deprecated It has been replaced with wix.restaurants.operations.v1.OperationsService.CalculateFirstAvailableTimeSlotsPerOperation(), and will be removed on 2025-08-31.\n */\nexport function listFirstAvailableTimeSlotsForOperations(\n payload: object\n): RequestOptionsFactory<any> {\n function __listFirstAvailableTimeSlotsForOperations({ host }: any) {\n const serializedData = transformPaths(payload, [\n {\n transformFn: transformSDKFloatToRESTFloat,\n paths: [\n { path: 'deliveryAddress.geocode.latitude' },\n { path: 'deliveryAddress.geocode.longitude' },\n ],\n },\n ]);\n const metadata = {\n entityFqdn: 'wix.restaurants.operations.v1.operation',\n method: 'POST' as any,\n methodFqn:\n 'wix.restaurants.operations.v1.OperationsService.ListFirstAvailableTimeSlotsForOperations',\n packageName: PACKAGE_NAME,\n url: resolveWixRestaurantsOperationsV1OperationsServiceUrl({\n protoPath: '/v1/operations/first-available-time-slots-for-operations',\n data: serializedData,\n host,\n }),\n data: serializedData,\n transformResponse: (payload: any) =>\n transformPaths(payload, [\n {\n transformFn: transformRESTTimestampToSDKTimestamp,\n paths: [\n { path: 'timeSlots.timeSlots.startTime' },\n { path: 'timeSlots.timeSlots.endTime' },\n ],\n },\n {\n transformFn: transformRESTFloatToSDKFloat,\n paths: [\n {\n path: 'timeSlots.timeSlots.fulfillmentAddress.address.geocode.latitude',\n },\n {\n path: 'timeSlots.timeSlots.fulfillmentAddress.address.geocode.longitude',\n },\n ],\n },\n ]),\n };\n\n return metadata;\n }\n\n return __listFirstAvailableTimeSlotsForOperations;\n}\n\n/**\n * Retrieves the first available time slot of each fulfillment type for each specified operation.\n *\n * The response includes time slots with delivery fulfillment types only if you specify a delivery address.\n * Only fulfillment methods capable of delivering to the specified address are considered when calculating time slot availability.\n */\nexport function calculateFirstAvailableTimeSlotsPerOperation(\n payload: object\n): RequestOptionsFactory<any> {\n function __calculateFirstAvailableTimeSlotsPerOperation({ host }: any) {\n const serializedData = transformPaths(payload, [\n {\n transformFn: transformSDKFloatToRESTFloat,\n paths: [\n { path: 'deliveryAddress.geocode.latitude' },\n { path: 'deliveryAddress.geocode.longitude' },\n ],\n },\n ]);\n const metadata = {\n entityFqdn: 'wix.restaurants.operations.v1.operation',\n method: 'POST' as any,\n methodFqn:\n 'wix.restaurants.operations.v1.OperationsService.CalculateFirstAvailableTimeSlotsPerOperation',\n packageName: PACKAGE_NAME,\n url: resolveWixRestaurantsOperationsV1OperationsServiceUrl({\n protoPath: '/v1/operations/first-available-time-slots-per-operations',\n data: serializedData,\n host,\n }),\n data: serializedData,\n transformResponse: (payload: any) =>\n transformPaths(payload, [\n {\n transformFn: transformRESTTimestampToSDKTimestamp,\n paths: [\n {\n path: 'timeSlotsPerOperation.timeslotsPerFulfillmentType.timeSlot.startTime',\n },\n {\n path: 'timeSlotsPerOperation.timeslotsPerFulfillmentType.timeSlot.endTime',\n },\n ],\n },\n {\n transformFn: transformRESTFloatToSDKFloat,\n paths: [\n {\n path: 'timeSlotsPerOperation.timeslotsPerFulfillmentType.fulfillmentInfo.address.geocode.latitude',\n },\n {\n path: 'timeSlotsPerOperation.timeslotsPerFulfillmentType.fulfillmentInfo.address.geocode.longitude',\n },\n ],\n },\n ]),\n };\n\n return metadata;\n }\n\n return __calculateFirstAvailableTimeSlotsPerOperation;\n}\n\n/**\n * For each menu, retrieves the first available time slots for each fulfillment type.\n * @deprecated It has been replaced with wix.restaurants.operations.v1.OperationsService.CalculateFirstAvailableTimeSlotsPerMenu(), and will be removed on 2025-08-31.\n */\nexport function listFirstAvailableTimeSlotsForMenus(\n payload: object\n): RequestOptionsFactory<any> {\n function __listFirstAvailableTimeSlotsForMenus({ host }: any) {\n const serializedData = transformPaths(payload, [\n {\n transformFn: transformSDKFloatToRESTFloat,\n paths: [\n { path: 'deliveryAddress.geocode.latitude' },\n { path: 'deliveryAddress.geocode.longitude' },\n ],\n },\n ]);\n const metadata = {\n entityFqdn: 'wix.restaurants.operations.v1.operation',\n method: 'GET' as any,\n methodFqn:\n 'wix.restaurants.operations.v1.OperationsService.ListFirstAvailableTimeSlotsForMenus',\n packageName: PACKAGE_NAME,\n url: resolveWixRestaurantsOperationsV1OperationsServiceUrl({\n protoPath:\n '/v1/operations/{operationId}/first-available-time-slots-for-menus',\n data: serializedData,\n host,\n }),\n params: toURLSearchParams(serializedData),\n transformResponse: (payload: any) =>\n transformPaths(payload, [\n {\n transformFn: transformRESTTimestampToSDKTimestamp,\n paths: [\n {\n path: 'timeSlotsPerMenu.timeslotsPerFulfillmentType.startTime',\n },\n { path: 'timeSlotsPerMenu.timeslotsPerFulfillmentType.endTime' },\n ],\n },\n {\n transformFn: transformRESTFloatToSDKFloat,\n paths: [\n {\n path: 'timeSlotsPerMenu.timeslotsPerFulfillmentType.fulfillmentAddress.address.geocode.latitude',\n },\n {\n path: 'timeSlotsPerMenu.timeslotsPerFulfillmentType.fulfillmentAddress.address.geocode.longitude',\n },\n ],\n },\n ]),\n };\n\n return metadata;\n }\n\n return __listFirstAvailableTimeSlotsForMenus;\n}\n\n/**\n * Retrieves the first available time slot of each fulfillment type for each specified menu.\n *\n * The response includes time slots with delivery fulfillment types only if you specify a delivery address.\n * Only fulfillment methods capable of delivering to the specified address are considered when calculating time slot availability.\n */\nexport function calculateFirstAvailableTimeSlotsPerMenu(\n payload: object\n): RequestOptionsFactory<any> {\n function __calculateFirstAvailableTimeSlotsPerMenu({ host }: any) {\n const serializedData = transformPaths(payload, [\n {\n transformFn: transformSDKFloatToRESTFloat,\n paths: [\n { path: 'deliveryAddress.geocode.latitude' },\n { path: 'deliveryAddress.geocode.longitude' },\n ],\n },\n ]);\n const metadata = {\n entityFqdn: 'wix.restaurants.operations.v1.operation',\n method: 'GET' as any,\n methodFqn:\n 'wix.restaurants.operations.v1.OperationsService.CalculateFirstAvailableTimeSlotsPerMenu',\n packageName: PACKAGE_NAME,\n url: resolveWixRestaurantsOperationsV1OperationsServiceUrl({\n protoPath:\n '/v1/operations/{operationId}/first-available-time-slots-per-menus',\n data: serializedData,\n host,\n }),\n params: toURLSearchParams(serializedData),\n transformResponse: (payload: any) =>\n transformPaths(payload, [\n {\n transformFn: transformRESTTimestampToSDKTimestamp,\n paths: [\n {\n path: 'timeSlotsPerMenu.timeslotsPerFulfillmentType.timeSlot.startTime',\n },\n {\n path: 'timeSlotsPerMenu.timeslotsPerFulfillmentType.timeSlot.endTime',\n },\n ],\n },\n {\n transformFn: transformRESTFloatToSDKFloat,\n paths: [\n {\n path: 'timeSlotsPerMenu.timeslotsPerFulfillmentType.fulfillmentInfo.address.geocode.latitude',\n },\n {\n path: 'timeSlotsPerMenu.timeslotsPerFulfillmentType.fulfillmentInfo.address.geocode.longitude',\n },\n ],\n },\n ]),\n };\n\n return metadata;\n }\n\n return __calculateFirstAvailableTimeSlotsPerMenu;\n}\n\n/**\n * Retrieves a list of the available time slots for a given date.\n * @deprecated It has been replaced with wix.restaurants.operations.v1.OperationsService.CalculateAvailableTimeSlotsForDate(), and will be removed on 2025-08-31.\n */\nexport function listAvailableTimeSlotsForDate(\n payload: object\n): RequestOptionsFactory<any> {\n function __listAvailableTimeSlotsForDate({ host }: any) {\n const serializedData = transformPaths(payload, [\n {\n transformFn: transformSDKFloatToRESTFloat,\n paths: [\n { path: 'deliveryAddress.geocode.latitude' },\n { path: 'deliveryAddress.geocode.longitude' },\n ],\n },\n ]);\n const metadata = {\n entityFqdn: 'wix.restaurants.operations.v1.operation',\n method: 'GET' as any,\n methodFqn:\n 'wix.restaurants.operations.v1.OperationsService.ListAvailableTimeSlotsForDate',\n packageName: PACKAGE_NAME,\n url: resolveWixRestaurantsOperationsV1OperationsServiceUrl({\n protoPath: '/v1/operations/{operationId}/available-time-slots-for-date',\n data: serializedData,\n host,\n }),\n params: toURLSearchParams(serializedData),\n transformResponse: (payload: any) =>\n transformPaths(payload, [\n {\n transformFn: transformRESTTimestampToSDKTimestamp,\n paths: [\n { path: 'timeSlots.startTime' },\n { path: 'timeSlots.endTime' },\n ],\n },\n {\n transformFn: transformRESTFloatToSDKFloat,\n paths: [\n { path: 'timeSlots.fulfillmentAddress.address.geocode.latitude' },\n {\n path: 'timeSlots.fulfillmentAddress.address.geocode.longitude',\n },\n ],\n },\n ]),\n };\n\n return metadata;\n }\n\n return __listAvailableTimeSlotsForDate;\n}\n\n/**\n * Retrieves all available time slots of each fulfillment type for the specified date.\n *\n * The response includes time slots with delivery fulfillment types only if you specify a delivery address.\n * Only fulfillment methods capable of delivering to the specified address are considered when calculating time slot availability.\n */\nexport function calculateAvailableTimeSlotsForDate(\n payload: object\n): RequestOptionsFactory<any> {\n function __calculateAvailableTimeSlotsForDate({ host }: any) {\n const serializedData = transformPaths(payload, [\n {\n transformFn: transformSDKFloatToRESTFloat,\n paths: [\n { path: 'deliveryAddress.geocode.latitude' },\n { path: 'deliveryAddress.geocode.longitude' },\n ],\n },\n ]);\n const metadata = {\n entityFqdn: 'wix.restaurants.operations.v1.operation',\n method: 'GET' as any,\n methodFqn:\n 'wix.restaurants.operations.v1.OperationsService.CalculateAvailableTimeSlotsForDate',\n packageName: PACKAGE_NAME,\n url: resolveWixRestaurantsOperationsV1OperationsServiceUrl({\n protoPath: '/v1/operations/{operationId}/available-time-slots-per-date',\n data: serializedData,\n host,\n }),\n params: toURLSearchParams(serializedData),\n transformResponse: (payload: any) =>\n transformPaths(payload, [\n {\n transformFn: transformRESTTimestampToSDKTimestamp,\n paths: [\n { path: 'timeslotsPerFulfillmentType.timeSlot.startTime' },\n { path: 'timeslotsPerFulfillmentType.timeSlot.endTime' },\n ],\n },\n {\n transformFn: transformRESTFloatToSDKFloat,\n paths: [\n {\n path: 'timeslotsPerFulfillmentType.fulfillmentInfo.address.geocode.latitude',\n },\n {\n path: 'timeslotsPerFulfillmentType.fulfillmentInfo.address.geocode.longitude',\n },\n ],\n },\n ]),\n };\n\n return metadata;\n }\n\n return __calculateAvailableTimeSlotsForDate;\n}\n\n/**\n * Retrieves a list of the available dates in a given time range.\n *\n * A date is considered available if it has at least one available time slot.\n * @deprecated It has been replaced with wix.restaurants.operations.v1.OperationsService.CalculateAvailableDatesInRange(), and will be removed on 2025-08-31.\n */\nexport function listAvailableDatesInRange(\n payload: object\n): RequestOptionsFactory<any> {\n function __listAvailableDatesInRange({ host }: any) {\n const serializedData = transformPaths(payload, [\n {\n transformFn: transformSDKFloatToRESTFloat,\n paths: [\n { path: 'deliveryAddress.geocode.latitude' },\n { path: 'deliveryAddress.geocode.longitude' },\n ],\n },\n ]);\n const metadata = {\n entityFqdn: 'wix.restaurants.operations.v1.operation',\n method: 'GET' as any,\n methodFqn:\n 'wix.restaurants.operations.v1.OperationsService.ListAvailableDatesInRange',\n packageName: PACKAGE_NAME,\n url: resolveWixRestaurantsOperationsV1OperationsServiceUrl({\n protoPath: '/v1/operations/{operationId}/available-dates-in-range',\n data: serializedData,\n host,\n }),\n params: toURLSearchParams(serializedData),\n };\n\n return metadata;\n }\n\n return __listAvailableDatesInRange;\n}\n\n/**\n * Retrieves all available dates of each fulfillment type within the specified time range.\n *\n * A date is considered available if it has at least one available time slot.\n *\n * The response includes time slots with delivery fulfillment types only if you specify a delivery address.\n * Only fulfillment methods capable of delivering to the specified address are considered when calculating time slot availability.\n */\nexport function calculateAvailableDatesInRange(\n payload: object\n): RequestOptionsFactory<any> {\n function __calculateAvailableDatesInRange({ host }: any) {\n const serializedData = transformPaths(payload, [\n {\n transformFn: transformSDKFloatToRESTFloat,\n paths: [\n { path: 'deliveryAddress.geocode.latitude' },\n { path: 'deliveryAddress.geocode.longitude' },\n ],\n },\n ]);\n const metadata = {\n entityFqdn: 'wix.restaurants.operations.v1.operation',\n method: 'GET' as any,\n methodFqn:\n 'wix.restaurants.operations.v1.OperationsService.CalculateAvailableDatesInRange',\n packageName: PACKAGE_NAME,\n url: resolveWixRestaurantsOperationsV1OperationsServiceUrl({\n protoPath: '/v1/operations/{operationId}/available-dates',\n data: serializedData,\n host,\n }),\n params: toURLSearchParams(serializedData),\n };\n\n return metadata;\n }\n\n return __calculateAvailableDatesInRange;\n}\n\n/**\n * Validates an operation's address\n *\n * Checks if the address linked to the operation (stored in business_location_details) is valid.\n * An address is considered valid if it has:\n * 1. A non-empty formatted address\n * 2. Valid geocode coordinates (not 0,0)\n * 3. A non-empty country field\n *\n * If the address is invalid, the response includes specific violations.\n */\nexport function validateOperationAddress(\n payload: object\n): RequestOptionsFactory<any> {\n function __validateOperationAddress({ host }: any) {\n const metadata = {\n entityFqdn: 'wix.restaurants.operations.v1.operation',\n method: 'GET' as any,\n methodFqn:\n 'wix.restaurants.operations.v1.OperationsService.ValidateOperationAddress',\n packageName: PACKAGE_NAME,\n url: resolveWixRestaurantsOperationsV1OperationsServiceUrl({\n protoPath: '/v1/operations/{operationId}/validate-address',\n data: payload,\n host,\n }),\n params: toURLSearchParams(payload),\n };\n\n return metadata;\n }\n\n return __validateOperationAddress;\n}\n\n/**\n * Synchronously update tags on multiple operations.\n * If you specify a tag in both `assignTags` and `unassignTags`, it is assigned.\n */\nexport function bulkUpdateOperationTags(\n payload: object\n): RequestOptionsFactory<any> {\n function __bulkUpdateOperationTags({ host }: any) {\n const metadata = {\n entityFqdn: 'wix.restaurants.operations.v1.operation',\n method: 'POST' as any,\n methodFqn:\n 'wix.restaurants.operations.v1.OperationsService.BulkUpdateOperationTags',\n packageName: PACKAGE_NAME,\n url: resolveWixRestaurantsOperationsV1OperationsServiceUrl({\n protoPath: '/v1/bulk/operations/update-tags',\n data: payload,\n host,\n }),\n data: payload,\n };\n\n return metadata;\n }\n\n return __bulkUpdateOperationTags;\n}\n\n/**\n * Asynchronously update tags on multiple operations according to the specified filter.\n * If a filter isn't specified, this method updates all operations.\n * If you specify a tag in both `assignTags` and `unassignTags`, it is assigned.\n */\nexport function bulkUpdateOperationTagsByFilter(\n payload: object\n): RequestOptionsFactory<any> {\n function __bulkUpdateOperationTagsByFilter({ host }: any) {\n const metadata = {\n entityFqdn: 'wix.restaurants.operations.v1.operation',\n method: 'POST' as any,\n methodFqn:\n 'wix.restaurants.operations.v1.OperationsService.BulkUpdateOperationTagsByFilter',\n packageName: PACKAGE_NAME,\n url: resolveWixRestaurantsOperationsV1OperationsServiceUrl({\n protoPath: '/v1/bulk/operations/update-tags-by-filter',\n data: payload,\n host,\n }),\n data: payload,\n };\n\n return metadata;\n }\n\n return __bulkUpdateOperationTagsByFilter;\n}\n","import {\n createOperation as publicCreateOperation,\n getOperation as publicGetOperation,\n updateOperation as publicUpdateOperation,\n deleteOperation as publicDeleteOperation,\n queryOperation as publicQueryOperation,\n listOperations as publicListOperations,\n listAvailableFulfillmentOptions as publicListAvailableFulfillmentOptions,\n listFirstAvailableTimeSlotForFulfillmentTypes as publicListFirstAvailableTimeSlotForFulfillmentTypes,\n calculateFirstAvailableTimeSlotPerFulfillmentType as publicCalculateFirstAvailableTimeSlotPerFulfillmentType,\n listFirstAvailableTimeSlotsForOperations as publicListFirstAvailableTimeSlotsForOperations,\n calculateFirstAvailableTimeSlotsPerOperation as publicCalculateFirstAvailableTimeSlotsPerOperation,\n listFirstAvailableTimeSlotsForMenus as publicListFirstAvailableTimeSlotsForMenus,\n calculateFirstAvailableTimeSlotsPerMenu as publicCalculateFirstAvailableTimeSlotsPerMenu,\n listAvailableTimeSlotsForDate as publicListAvailableTimeSlotsForDate,\n calculateAvailableTimeSlotsForDate as publicCalculateAvailableTimeSlotsForDate,\n listAvailableDatesInRange as publicListAvailableDatesInRange,\n calculateAvailableDatesInRange as publicCalculateAvailableDatesInRange,\n validateOperationAddress as publicValidateOperationAddress,\n bulkUpdateOperationTags as publicBulkUpdateOperationTags,\n bulkUpdateOperationTagsByFilter as publicBulkUpdateOperationTagsByFilter,\n} from './restaurants-operations-v1-operation-operations.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 { onOperationCreated as publicOnOperationCreated } from './restaurants-operations-v1-operation-operations.public.js';\nimport { onOperationDeleted as publicOnOperationDeleted } from './restaurants-operations-v1-operation-operations.public.js';\nimport { onOperationUpdated as publicOnOperationUpdated } from './restaurants-operations-v1-operation-operations.public.js';\n\nexport const createOperation: MaybeContext<\n BuildRESTFunction<typeof publicCreateOperation> & typeof publicCreateOperation\n> = /*#__PURE__*/ createRESTModule(publicCreateOperation);\nexport const getOperation: MaybeContext<\n BuildRESTFunction<typeof publicGetOperation> & typeof publicGetOperation\n> = /*#__PURE__*/ createRESTModule(publicGetOperation);\nexport const updateOperation: MaybeContext<\n BuildRESTFunction<typeof publicUpdateOperation> & typeof publicUpdateOperation\n> = /*#__PURE__*/ createRESTModule(publicUpdateOperation);\nexport const deleteOperation: MaybeContext<\n BuildRESTFunction<typeof publicDeleteOperation> & typeof publicDeleteOperation\n> = /*#__PURE__*/ createRESTModule(publicDeleteOperation);\nexport const queryOperation: MaybeContext<\n BuildRESTFunction<typeof publicQueryOperation> & typeof publicQueryOperation\n> = /*#__PURE__*/ createRESTModule(publicQueryOperation);\nexport const listOperations: MaybeContext<\n BuildRESTFunction<typeof publicListOperations> & typeof publicListOperations\n> = /*#__PURE__*/ createRESTModule(publicListOperations);\nexport const listAvailableFulfillmentOptions: MaybeContext<\n BuildRESTFunction<typeof publicListAvailableFulfillmentOptions> &\n typeof publicListAvailableFulfillmentOptions\n> = /*#__PURE__*/ createRESTModule(publicListAvailableFulfillmentOptions);\nexport const listFirstAvailableTimeSlotForFulfillmentTypes: MaybeContext<\n BuildRESTFunction<\n typeof publicListFirstAvailableTimeSlotForFulfillmentTypes\n > &\n typeof publicListFirstAvailableTimeSlotForFulfillmentTypes\n> = /*#__PURE__*/ createRESTModule(\n publicListFirstAvailableTimeSlotForFulfillmentTypes\n);\nexport const calculateFirstAvailableTimeSlotPerFulfillmentType: MaybeContext<\n BuildRESTFunction<\n typeof publicCalculateFirstAvailableTimeSlotPerFulfillmentType\n > &\n typeof publicCalculateFirstAvailableTimeSlotPerFulfillmentType\n> = /*#__PURE__*/ createRESTModule(\n publicCalculateFirstAvailableTimeSlotPerFulfillmentType\n);\nexport const listFirstAvailableTimeSlotsForOperations: MaybeContext<\n BuildRESTFunction<typeof publicListFirstAvailableTimeSlotsForOperations> &\n typeof publicListFirstAvailableTimeSlotsForOperations\n> = /*#__PURE__*/ createRESTModule(\n publicListFirstAvailableTimeSlotsForOperations\n);\nexport const calculateFirstAvailableTimeSlotsPerOperation: MaybeContext<\n BuildRESTFunction<typeof publicCalculateFirstAvailableTimeSlotsPerOperation> &\n typeof publicCalculateFirstAvailableTimeSlotsPerOperation\n> = /*#__PURE__*/ createRESTModule(\n publicCalculateFirstAvailableTimeSlotsPerOperation\n);\nexport const listFirstAvailableTimeSlotsForMenus: MaybeContext<\n BuildRESTFunction<typeof publicListFirstAvailableTimeSlotsForMenus> &\n typeof publicListFirstAvailableTimeSlotsForMenus\n> = /*#__PURE__*/ createRESTModule(publicListFirstAvailableTimeSlotsForMenus);\nexport const calculateFirstAvailableTimeSlotsPerMenu: MaybeContext<\n BuildRESTFunction<typeof publicCalculateFirstAvailableTimeSlotsPerMenu> &\n typeof publicCalculateFirstAvailableTimeSlotsPerMenu\n> = /*#__PURE__*/ createRESTModule(\n publicCalculateFirstAvailableTimeSlotsPerMenu\n);\nexport const listAvailableTimeSlotsForDate: MaybeContext<\n BuildRESTFunction<typeof publicListAvailableTimeSlotsForDate> &\n typeof publicListAvailableTimeSlotsForDate\n> = /*#__PURE__*/ createRESTModule(publicListAvailableTimeSlotsForDate);\nexport const calculateAvailableTimeSlotsForDate: MaybeContext<\n BuildRESTFunction<typeof publicCalculateAvailableTimeSlotsForDate> &\n typeof publicCalculateAvailableTimeSlotsForDate\n> = /*#__PURE__*/ createRESTModule(publicCalculateAvailableTimeSlotsForDate);\nexport const listAvailableDatesInRange: MaybeContext<\n BuildRESTFunction<typeof publicListAvailableDatesInRange> &\n typeof publicListAvailableDatesInRange\n> = /*#__PURE__*/ createRESTModule(publicListAvailableDatesInRange);\nexport const calculateAvailableDatesInRange: MaybeContext<\n BuildRESTFunction<typeof publicCalculateAvailableDatesInRange> &\n typeof publicCalculateAvailableDatesInRange\n> = /*#__PURE__*/ createRESTModule(publicCalculateAvailableDatesInRange);\nexport const validateOperationAddress: MaybeContext<\n BuildRESTFunction<typeof publicValidateOperationAddress> &\n typeof publicValidateOperationAddress\n> = /*#__PURE__*/ createRESTModule(publicValidateOperationAddress);\nexport const bulkUpdateOperationTags: MaybeContext<\n BuildRESTFunction<typeof publicBulkUpdateOperationTags> &\n typeof publicBulkUpdateOperationTags\n> = /*#__PURE__*/ createRESTModule(publicBulkUpdateOperationTags);\nexport const bulkUpdateOperationTagsByFilter: MaybeContext<\n BuildRESTFunction<typeof publicBulkUpdateOperationTagsByFilter> &\n typeof publicBulkUpdateOperationTagsByFilter\n> = /*#__PURE__*/ createRESTModule(publicBulkUpdateOperationTagsByFilter);\n/**\n * Triggered when an operation is created.\n */\nexport const onOperationCreated: BuildEventDefinition<\n typeof publicOnOperationCreated\n> = createEventModule(publicOnOperationCreated);\n/**\n * Triggered when an operation is deleted.\n */\nexport const onOperationDeleted: BuildEventDefinition<\n typeof publicOnOperationDeleted\n> = createEventModule(publicOnOperationDeleted);\n/**\n * Triggered when an operation is updated.\n */\nexport const onOperationUpdated: BuildEventDefinition<\n typeof publicOnOperationUpdated\n> = createEventModule(publicOnOperationUpdated);\n\nexport {\n SchedulingType,\n PreparationTimeType,\n TimeUnit,\n AsapPreorderType,\n AsapPacingWindowType,\n ActivationType,\n EntitiesDayOfWeek,\n MethodType,\n FulfillmentTimesType,\n PreorderPacingWindowType,\n OnlineOrderingStatusType,\n FulfillmentType,\n PreparationTimePreparationTimeType,\n AsapFutureHandlingType,\n SortOrder,\n SubdivisionType,\n FulfillmentTimeType,\n FulfillmentTimesDisplayType,\n TimeSlotStatus,\n OrderSchedulingType,\n TimeSlotForFulfillmentTimeSlotStatus,\n ViolationType,\n PlacementType,\n DayOfWeek,\n ResolutionMethod,\n State,\n SiteCreatedContext,\n Namespace,\n DeleteStatus,\n WebhookIdentityType,\n} from './restaurants-operations-v1-operation-operations.universal.js';\nexport {\n Operation,\n OperationOnlineOrderingStatusOptionsOneOf,\n Scheduling,\n SchedulingSchedulingOptionsOneOf,\n AsapScheduling,\n AsapSchedulingPreparationTimeOneOf,\n AsapSchedulingAsapPreorderOneOf,\n TimeDuration,\n TimeDurationRange,\n BusinessDaysPreorder,\n AsapOrderPacing,\n AsapOrderPacingPacingAvailabilityOneOf,\n WeeklyActivePeriods,\n ActivePeriod,\n TimeOfDayRange,\n TimeOfDay,\n PreorderScheduling,\n PreorderMethod,\n PreorderMethodMethodOptionsOneOf,\n DayAndTime,\n TimeBounded,\n WeeklySchedule,\n FulfillmentTimesDisplayConfig,\n FulfillmentTimesDisplayConfigFulfillmentTimesDisplayOptionsOneOf,\n PreOrderPacing,\n PreOrderPacingPacingAvailabilityOneOf,\n WeeklyActiveDays,\n OnlineOrderingPausedUntilOptions,\n OrderScheduling,\n OrderSchedulingOrderSchedulingOptionsOneOf,\n AsapOrderScheduling,\n AsapOrderSchedulingAsapFutureHandlingOptionsOneOf,\n PreparationTime,\n PreparationTimeTimeSpecificationOneOf,\n BusinessDaysAheadHandling,\n BusinessLocationDetails,\n V1Address,\n V1StreetAddress,\n V1AddressLocation,\n ExtendedFields,\n Tags,\n TagList,\n InvalidateCache,\n InvalidateCacheGetByOneOf,\n App,\n Page,\n URI,\n File,\n CustomTag,\n DeliveryProfileConfiguredForOperation,\n OperationsDataCloningCompleted,\n CreateOperationRequest,\n CreateOperationResponse,\n GetOperationRequest,\n GetOperationResponse,\n UpdateOperationRequest,\n UpdateOperationResponse,\n DeleteOperationRequest,\n DeleteOperationResponse,\n QueryOperationRequest,\n CursorQuery,\n CursorQueryPagingMethodOneOf,\n Sorting,\n CursorPaging,\n QueryOperationResponse,\n CursorPagingMetadata,\n Cursors,\n ListOperationsRequest,\n ListOperationsResponse,\n ListOperationIdsRequest,\n ListOperationIdsResponse,\n ListOperationsInternalRequest,\n ListOperationsInternalResponse,\n ListAvailableFulfillmentOptionsRequest,\n CommonAddress,\n CommonAddressStreetOneOf,\n StreetAddress,\n AddressLocation,\n Subdivision,\n ListAvailableFulfillmentOptionsResponse,\n FulfillmentOption,\n FulfillmentOptionFulfillmentTimeOptionsOneOf,\n FulfillmentOptionFulfillmentTimesDisplayOptionsOneOf,\n FulfillmentOptionFulfillmentTypeOptionsOneOf,\n FulfillmentOptionAvailability,\n DayOfWeekAvailability,\n AvailabilityException,\n DurationRange,\n TimeWindowDisplayConfig,\n PickupDetails,\n DeliveryDetails,\n ListFirstAvailableTimeSlotForFulfillmentTypesRequest,\n ListFirstAvailableTimeSlotForFulfillmentTypesResponse,\n FulfillmentTimeSlot,\n FulfillmentDetails,\n FulfillmentDetailsFulfillmentTimeOptionsOneOf,\n FulfillmentAddress,\n CalculateFirstAvailableTimeSlotPerFulfillmentTypeRequest,\n CalculateFirstAvailableTimeSlotPerFulfillmentTypeResponse,\n TimeSlotForFulfillment,\n TimeSlot,\n FulfillmentInfo,\n FulfillmentInfoFulfillmentTimeOneOf,\n ListFirstAvailableTimeSlotsForOperationsRequest,\n ListFirstAvailableTimeSlotsForOperationsResponse,\n OperationTimeSlot,\n CalculateFirstAvailableTimeSlotsPerOperationRequest,\n CalculateFirstAvailableTimeSlotsPerOperationResponse,\n TimeSlotForOperation,\n ListFirstAvailableTimeSlotsForMenusRequest,\n ListFirstAvailableTimeSlotsForMenusResponse,\n FirstFulfillmentTimeSlotsPerMenu,\n CalculateFirstAvailableTimeSlotsPerMenuRequest,\n CalculateFirstAvailableTimeSlotsPerMenuResponse,\n FulfillmentTimeSlotsPerMenu,\n PagingMetadata,\n ListAvailableTimeSlotsForDateRequest,\n _Date,\n ListAvailableTimeSlotsForDateResponse,\n CalculateAvailableTimeSlotsForDateRequest,\n CalculateAvailableTimeSlotsForDateResponse,\n ListAvailableDatesInRangeRequest,\n ListAvailableDatesInRangeResponse,\n FulfillmentTypeAvailableDates,\n CalculateAvailableDatesInRangeRequest,\n CalculateAvailableDatesInRangeResponse,\n GetExpectedFulfillmentSelectionRequest,\n GetExpectedFulfillmentSelectionResponse,\n UpdateImmutableFieldsRequest,\n ImmutableFields,\n UpdateImmutableFieldsResponse,\n ValidateOperationAddressRequest,\n ValidateOperationAddressResponse,\n AddressViolation,\n UpdateDeliveryRegionsRequest,\n UpdateDeliveryRegionsResponse,\n BulkUpdateOperationTagsRequest,\n BulkUpdateOperationTagsResponse,\n ItemMetadata,\n ApplicationError,\n BulkUpdateOperationTagsResult,\n BulkActionMetadata,\n BulkUpdateOperationTagsByFilterRequest,\n BulkUpdateOperationTagsByFilterResponse,\n DomainEvent,\n DomainEventBodyOneOf,\n EntityCreatedEvent,\n RestoreInfo,\n EntityUpdatedEvent,\n EntityDeletedEvent,\n ActionEvent,\n Empty,\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 V4SiteCreated,\n SiteCloned,\n MetaSiteSpecialEvent,\n MetaSiteSpecialEventPayloadOneOf,\n Asset,\n SiteCreated,\n SiteTransferred,\n SiteDeleted,\n DeleteContext,\n SiteUndeleted,\n SitePublished,\n SiteUnpublished,\n SiteMarkedAsTemplate,\n SiteMarkedAsWixSite,\n ServiceProvisioned,\n ServiceRemoved,\n SiteRenamed,\n SiteHardDeleted,\n NamespaceChanged,\n StudioAssigned,\n StudioUnassigned,\n SiteUrlChanged,\n SitePurgedExternally,\n OdeditorAssigned,\n OdeditorUnassigned,\n PicassoAssigned,\n PicassoUnassigned,\n MessageEnvelope,\n IdentificationData,\n IdentificationDataIdOneOf,\n BaseEventMetadata,\n EventMetadata,\n OperationCreatedEnvelope,\n OperationDeletedEnvelope,\n OperationUpdatedEnvelope,\n UpdateOperation,\n OperationsQueryResult,\n OperationsQueryBuilder,\n ListAvailableFulfillmentOptions,\n ListFirstAvailableTimeSlotForFulfillmentTypesOptions,\n CalculateFirstAvailableTimeSlotPerFulfillmentTypeOptions,\n ListFirstAvailableTimeSlotsForOperationsOptions,\n CalculateFirstAvailableTimeSlotsPerOperationOptions,\n ListFirstAvailableTimeSlotsForMenusOptions,\n CalculateFirstAvailableTimeSlotsPerMenuOptions,\n ListAvailableTimeSlotsForDateOptions,\n CalculateAvailableTimeSlotsForDateOptions,\n ListAvailableDatesInRangeOptions,\n CalculateAvailableDatesInRangeOptions,\n BulkUpdateOperationTagsOptions,\n BulkUpdateOperationTagsByFilterOptions,\n} from './restaurants-operations-v1-operation-operations.universal.js';\nexport {\n SchedulingTypeWithLiterals,\n PreparationTimeTypeWithLiterals,\n TimeUnitWithLiterals,\n AsapPreorderTypeWithLiterals,\n AsapPacingWindowTypeWithLiterals,\n ActivationTypeWithLiterals,\n EntitiesDayOfWeekWithLiterals,\n MethodTypeWithLiterals,\n FulfillmentTimesTypeWithLiterals,\n PreorderPacingWindowTypeWithLiterals,\n OnlineOrderingStatusTypeWithLiterals,\n FulfillmentTypeWithLiterals,\n PreparationTimePreparationTimeTypeWithLiterals,\n AsapFutureHandlingTypeWithLiterals,\n SortOrderWithLiterals,\n SubdivisionTypeWithLiterals,\n FulfillmentTimeTypeWithLiterals,\n FulfillmentTimesDisplayTypeWithLiterals,\n TimeSlotStatusWithLiterals,\n OrderSchedulingTypeWithLiterals,\n TimeSlotForFulfillmentTimeSlotStatusWithLiterals,\n ViolationTypeWithLiterals,\n PlacementTypeWithLiterals,\n DayOfWeekWithLiterals,\n ResolutionMethodWithLiterals,\n StateWithLiterals,\n SiteCreatedContextWithLiterals,\n NamespaceWithLiterals,\n DeleteStatusWithLiterals,\n WebhookIdentityTypeWithLiterals,\n BulkUpdateOperationTagsApplicationErrors,\n BulkUpdateOperationTagsByFilterApplicationErrors,\n} from './restaurants-operations-v1-operation-operations.universal.js';\n"],"mappings":"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","names":["bulkUpdateOperationTags","bulkUpdateOperationTagsByFilter","calculateAvailableDatesInRange","calculateAvailableTimeSlotsForDate","calculateFirstAvailableTimeSlotPerFulfillmentType","calculateFirstAvailableTimeSlotsPerMenu","calculateFirstAvailableTimeSlotsPerOperation","createOperation","deleteOperation","getOperation","listAvailableDatesInRange","listAvailableFulfillmentOptions","listAvailableTimeSlotsForDate","listFirstAvailableTimeSlotForFulfillmentTypes","listFirstAvailableTimeSlotsForMenus","listFirstAvailableTimeSlotsForOperations","listOperations","onOperationCreated","onOperationDeleted","onOperationUpdated","queryOperation","updateOperation","validateOperationAddress","import_rename_all_nested_keys","import_address","import_timestamp","import_transform_paths","import_float","import_timestamp","import_rest_modules","payload","import_address","import_transform_paths","SchedulingType","PreparationTimeType","TimeUnit","AsapPreorderType","AsapPacingWindowType","ActivationType","EntitiesDayOfWeek","MethodType","FulfillmentTimesType","PreorderPacingWindowType","OnlineOrderingStatusType","FulfillmentType","PreparationTimePreparationTimeType","AsapFutureHandlingType","SortOrder","SubdivisionType","FulfillmentTimeType","FulfillmentTimesDisplayType","TimeSlotStatus","OrderSchedulingType","TimeSlotForFulfillmentTimeSlotStatus","ViolationType","PlacementType","DayOfWeek","ResolutionMethod","State","SiteCreatedContext","Namespace","DeleteStatus","WebhookIdentityType","createOperation","sdkTransformError","getOperation","updateOperation","deleteOperation","queryOperation","listOperations","listAvailableFulfillmentOptions","listFirstAvailableTimeSlotForFulfillmentTypes","calculateFirstAvailableTimeSlotPerFulfillmentType","listFirstAvailableTimeSlotsForOperations","calculateFirstAvailableTimeSlotsPerOperation","listFirstAvailableTimeSlotsForMenus","calculateFirstAvailableTimeSlotsPerMenu","listAvailableTimeSlotsForDate","calculateAvailableTimeSlotsForDate","listAvailableDatesInRange","calculateAvailableDatesInRange","validateOperationAddress","bulkUpdateOperationTags","bulkUpdateOperationTagsByFilter","createOperation","getOperation","updateOperation","deleteOperation","queryOperation","listOperations","listAvailableFulfillmentOptions","listFirstAvailableTimeSlotForFulfillmentTypes","calculateFirstAvailableTimeSlotPerFulfillmentType","listFirstAvailableTimeSlotsForOperations","calculateFirstAvailableTimeSlotsPerOperation","listFirstAvailableTimeSlotsForMenus","calculateFirstAvailableTimeSlotsPerMenu","listAvailableTimeSlotsForDate","calculateAvailableTimeSlotsForDate","listAvailableDatesInRange","calculateAvailableDatesInRange","validateOperationAddress","bulkUpdateOperationTags","bulkUpdateOperationTagsByFilter","import_rest_modules","createOperation","getOperation","updateOperation","deleteOperation","queryOperation","listOperations","listAvailableFulfillmentOptions","listFirstAvailableTimeSlotForFulfillmentTypes","calculateFirstAvailableTimeSlotPerFulfillmentType","listFirstAvailableTimeSlotsForOperations","calculateFirstAvailableTimeSlotsPerOperation","listFirstAvailableTimeSlotsForMenus","calculateFirstAvailableTimeSlotsPerMenu","listAvailableTimeSlotsForDate","calculateAvailableTimeSlotsForDate","listAvailableDatesInRange","calculateAvailableDatesInRange","validateOperationAddress","bulkUpdateOperationTags","bulkUpdateOperationTagsByFilter","onOperationCreated","onOperationDeleted","onOperationUpdated"]}