declare module "wix-restaurants.v2" { interface ModifierGroup$1 { /** * Modifier group ID. * @readonly */ _id?: string | null; /** * Revision number, which increments by 1 each time the modifier group is updated. To prevent conflicting changes, the current revision must be passed when updating the modifier group. Ignored when creating a modifier group. * @readonly */ revision?: string | null; /** * Date and time the modifier group was created. * @readonly */ _createdDate?: Date | null; /** * Date and time the modifier group was updated. * @readonly */ _updatedDate?: Date | null; /** Modifier group name. */ name?: string | null; /** Group of item modifiers. */ modifiers?: Modifier$1[]; /** Modifier group details. */ rule?: Rule$1; /** Extended fields. */ extendedFields?: ExtendedFields$9; } interface Modifier$1 { /** Item modifier ID. */ _id?: string; /** * Deprecated, modifier additional charge. Can be 0 to represent free. * @internal * @deprecated Deprecated, modifier additional charge. Can be 0 to represent free. * @replacedBy AdditionalChargeInfo.additional_charge * @targetRemovalDate 2024-06-30 */ additionalCharge?: string | null; /** * Whether the item modifier is pre-selected. * Default: `false`. */ preSelected?: boolean | null; /** Item modifier price details. */ additionalChargeInfo?: AdditionalChargeInfo; } interface AdditionalChargeInfo { /** Additional charge for the item modifier. A value of `0` means the item modifier is free. */ additionalCharge?: string | null; /** * Formatted additional charge. * @internal * @readonly */ formattedAdditionalCharge?: string | null; } interface Rule$1 { /** Whether the items from the modifier group must be selected. */ required?: boolean | null; /** * Minimum number of item modifiers a site visitor must select. The value must be lower or equal to the available item modifiers in the group. * Default: `0`. */ minSelections?: number | null; /** Minimum number of item modifiers a site visitor must select. Must be greater than or equal to the value of `minSelections`. */ maxSelections?: number | null; } interface ExtendedFields$9 { /** * Extended field data. Each key corresponds to the namespace of the app that created the extended fields. * The value of each key is structured according to the schema defined when the extended fields were configured. * * You can only access fields for which you have the appropriate permissions. * * Learn more about [extended fields](https://dev.wix.com/docs/rest/articles/getting-started/extended-fields). */ namespaces?: Record>; } interface InvalidateCache$9 extends InvalidateCacheGetByOneOf$9 { /** Invalidate by msId. NOT recommended, as this will invalidate the entire site cache! */ metaSiteId?: string; /** Invalidate by Site ID. NOT recommended, as this will invalidate the entire site cache! */ siteId?: string; /** Invalidate by App */ app?: App$9; /** Invalidate by page id */ page?: Page$9; /** Invalidate by URI path */ uri?: URI$9; /** Invalidate by file (for media files such as PDFs) */ file?: File$9; /** tell us why you're invalidating the cache. You don't need to add your app name */ reason?: string | null; /** Is local DS */ localDc?: boolean; hardPurge?: boolean; } /** @oneof */ interface InvalidateCacheGetByOneOf$9 { /** Invalidate by msId. NOT recommended, as this will invalidate the entire site cache! */ metaSiteId?: string; /** Invalidate by Site ID. NOT recommended, as this will invalidate the entire site cache! */ siteId?: string; /** Invalidate by App */ app?: App$9; /** Invalidate by page id */ page?: Page$9; /** Invalidate by URI path */ uri?: URI$9; /** Invalidate by file (for media files such as PDFs) */ file?: File$9; } interface App$9 { /** The AppDefId */ appDefId?: string; /** The instance Id */ instanceId?: string; } interface Page$9 { /** the msid the page is on */ metaSiteId?: string; /** Invalidate by Page ID */ pageId?: string; } interface URI$9 { /** the msid the URI is on */ metaSiteId?: string; /** URI path to invalidate (e.g. page/my/path) - without leading/trailing slashes */ uriPath?: string; } interface File$9 { /** the msid the file is related to */ metaSiteId?: string; /** Invalidate by filename (for media files such as PDFs) */ fileName?: string; } interface CreateModifierGroupRequest { /** Modifier group details. */ modifierGroup: ModifierGroup$1; } interface CreateModifierGroupResponse { /** Modifier group. */ modifierGroup?: ModifierGroup$1; } interface GetModifierGroupRequest { /** Modifier group ID. */ modifierGroupId: string; } interface GetModifierGroupResponse { /** Modifier group. */ modifierGroup?: ModifierGroup$1; } interface ListModifierGroupRequest { /** Modifier group IDs. */ modifierGroupIds?: string[]; /** The metadata of the paginated results. */ paging?: CursorPaging$a; } interface CursorPaging$a { /** Number of items to load. */ limit?: number | null; /** * Pointer to the next or previous page in the list of results. * * You can get the relevant cursor token * from the `pagingMetadata` object in the previous call's response. * Not relevant for the first request. */ cursor?: string | null; } interface ListModifierGroupResponse { /** Retrieved modifier groups. */ modifierGroups?: ModifierGroup$1[]; /** The metadata of the paginated results. */ metadata?: CursorPagingMetadata$a; } interface CursorPagingMetadata$a { /** Number of items returned in the response. */ count?: number | null; /** Offset that was requested. */ cursors?: Cursors$a; /** * Indicates if there are more results after the current page. * If `true`, another page of results can be retrieved. * If `false`, this is the last page. */ hasNext?: boolean | null; } interface Cursors$a { /** Cursor pointing to next page in the list of results. */ next?: string | null; /** Cursor pointing to previous page in the list of results. */ prev?: string | null; } interface QueryModifierGroupsRequest { /** Query options. */ query?: CursorQuery$b; } interface CursorQuery$b extends CursorQueryPagingMethodOneOf$b { /** 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`. */ cursorPaging?: CursorPaging$a; /** * Filter object in the following format: * `"filter" : { * "fieldName1": "value1", * "fieldName2":{"$operator":"value2"} * }` * Example of operators: `$eq`, `$ne`, `$lt`, `$lte`, `$gt`, `$gte`, `$in`, `$hasSome`, `$hasAll`, `$startsWith`, `$contains` */ filter?: Record | null; /** * Sort object in the following format: * `[{"fieldName":"sortField1","order":"ASC"},{"fieldName":"sortField2","order":"DESC"}]` */ sort?: Sorting$b[]; } /** @oneof */ interface CursorQueryPagingMethodOneOf$b { /** 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`. */ cursorPaging?: CursorPaging$a; } interface Sorting$b { /** Name of the field to sort by. */ fieldName?: string; /** Sort order. */ order?: SortOrder$b; /** * When `field_name` is a property of repeated field that is marked as `MATCH_ITEMS` and sort should be done by * a specific element from a collection, filter can/should be provided to ensure correct sort value is picked. * * If multiple filters are provided, they are combined with AND operator. * * Example: * Given we have document like {"id": "1", "nestedField": [{"price": 10, "region": "EU"}, {"price": 20, "region": "US"}]} * and `nestedField` is marked as `MATCH_ITEMS`, to ensure that sorting is done by correct region, filter should be * { fieldName: "nestedField.price", "select_items_by": [{"nestedField.region": "US"}] } * @internal */ selectItemsBy?: Record[] | null; } enum SortOrder$b { ASC = "ASC", DESC = "DESC" } interface QueryModifierGroupsResponse { /** Retrieved modifier groups. */ modifierGroups?: ModifierGroup$1[]; /** Metadata of the paginated results. */ pagingMetadata?: CursorPagingMetadata$a; } interface CountModifierGroupsRequest { /** Filter for counting modifier groups. */ filter?: Record | null; } interface CountModifierGroupsResponse { /** Counted modifier groups. */ count?: number; } interface UpdateModifierGroupRequest { /** Modifier group to update. */ modifierGroup: ModifierGroup$1; /** * Explicit list of fields to update. * @internal */ mask?: string[]; } interface UpdateModifierGroupResponse { /** Updated modifier group. */ modifierGroup?: ModifierGroup$1; } interface DeleteModifierGroupRequest { /** Modifier group ID. */ modifierGroupId: string; } interface DeleteModifierGroupResponse { } interface BulkCreateModifierGroupsRequest { /** Modifier groups details. */ modifierGroups: ModifierGroup$1[]; /** Whether to receive the created modifier groups in the response. */ returnEntity?: boolean; } interface BulkCreateModifierGroupsResponse { /** Information about the created modifier groups. */ results?: BulkCreateModifierGroupsResult[]; /** Metadata for the API call. */ bulkActionMetadata?: BulkActionMetadata$9; } interface BulkCreateModifierGroupsResult { /** Metadata for group modifier creation. */ itemMetadata?: ItemMetadata$9; /** Created modifier group. */ modifierGroup?: ModifierGroup$1; } interface ItemMetadata$9 { /** Item ID. Should always be available, unless it's impossible (for example, when failing to create an item). */ _id?: string | null; /** Index of the item within the request array. Allows for correlation between request and response items. */ originalIndex?: number; /** Whether the requested action was successful for this item. When `false`, the `error` field is populated. */ success?: boolean; /** Details about the error in case of failure. */ error?: ApplicationError$9; } interface ApplicationError$9 { /** Error code. */ code?: string; /** Description of the error. */ description?: string; /** Data related to the error. */ data?: Record | null; } interface BulkActionMetadata$9 { /** Number of items that were successfully processed. */ totalSuccesses?: number; /** Number of items that couldn't be processed. */ totalFailures?: number; /** Number of failures without details because detailed failure threshold was exceeded. */ undetailedFailures?: number; } interface BulkUpdateModifierGroupsRequest { /** Modifier groups to update. */ modifierGroups: MaskedModifierGroup[]; /** Whether to receive the updated modifier groups in the response. */ returnEntity?: boolean; } interface MaskedModifierGroup { /** Modifier group to update. */ modifierGroup?: ModifierGroup$1; /** * Explicit list of fields to update. * @internal */ mask?: string[]; } interface BulkUpdateModifierGroupsResponse { /** Information about the updated modifier groups. */ results?: BulkUpdateModifierGroupsResult[]; /** Metadata for the API call. */ bulkActionMetadata?: BulkActionMetadata$9; } interface BulkUpdateModifierGroupsResult { /** Metadata for group modifier update. */ itemMetadata?: ItemMetadata$9; /** Updated modifier group. Only returned if `returnEntity` is set to `true`. */ modifierGroup?: ModifierGroup$1; } interface BulkDeleteModifierGroupsRequest { /** Modifier Group IDs. */ ids: string[]; } interface BulkDeleteModifierGroupsResponse { /** Information about the deleted modifier group. */ results?: BulkDeleteModifierGroupsResult[]; /** Metadata for the API call. */ bulkActionMetadata?: BulkActionMetadata$9; } interface BulkDeleteModifierGroupsResult { /** Metadata for group modifier deletion. */ itemMetadata?: ItemMetadata$9; } interface CloneModifierGroupsRequest { /** The MetaSiteId to clone from. */ metaSiteId: string; } interface CloneModifierGroupsResponse { } interface DomainEvent$c extends DomainEventBodyOneOf$c { createdEvent?: EntityCreatedEvent$c; updatedEvent?: EntityUpdatedEvent$c; deletedEvent?: EntityDeletedEvent$c; actionEvent?: ActionEvent$c; /** * Unique event ID. * Allows clients to ignore duplicate webhooks. */ _id?: string; /** * Assumes actions are also always typed to an entity_type * Example: wix.stores.catalog.product, wix.bookings.session, wix.payments.transaction */ entityFqdn?: string; /** * This is top level to ease client code dispatching of messages (switch on entity_fqdn+slug) * This is although the created/updated/deleted notion is duplication of the oneof types * Example: created/updated/deleted/started/completed/email_opened */ slug?: string; /** ID of the entity associated with the event. */ entityId?: string; /** Event timestamp in [ISO-8601](https://en.wikipedia.org/wiki/ISO_8601) format and UTC time. For example: 2020-04-26T13:57:50.699Z */ eventTime?: Date | null; /** * Whether the event was triggered as a result of a privacy regulation application * (for example, GDPR). */ triggeredByAnonymizeRequest?: boolean | null; /** If present, indicates the action that triggered the event. */ originatedFrom?: string | null; /** * A sequence number defining the order of updates to the underlying entity. * For example, given that some entity was updated at 16:00 and than again at 16:01, * it is guaranteed that the sequence number of the second update is strictly higher than the first. * As the consumer, you can use this value to ensure that you handle messages in the correct order. * To do so, you will need to persist this number on your end, and compare the sequence number from the * message against the one you have stored. Given that the stored number is higher, you should ignore the message. */ entityEventSequence?: string | null; } /** @oneof */ interface DomainEventBodyOneOf$c { createdEvent?: EntityCreatedEvent$c; updatedEvent?: EntityUpdatedEvent$c; deletedEvent?: EntityDeletedEvent$c; actionEvent?: ActionEvent$c; } interface EntityCreatedEvent$c { entityAsJson?: string; /** * Indicates the event was triggered by a restore-from-trashbin operation for a previously deleted entity * @internal */ triggeredByUndelete?: boolean | null; /** Indicates the event was triggered by a restore-from-trashbin operation for a previously deleted entity */ restoreInfo?: RestoreInfo$c; } interface RestoreInfo$c { deletedDate?: Date | null; } interface EntityUpdatedEvent$c { /** * Since platformized APIs only expose PATCH and not PUT we can't assume that the fields sent from the client are the actual diff. * This means that to generate a list of changed fields (as opposed to sent fields) one needs to traverse both objects. * We don't want to impose this on all developers and so we leave this traversal to the notification recipients which need it. */ currentEntityAsJson?: string; /** * This field is currently part of the of the EntityUpdatedEvent msg, but scala/node libraries which implements the domain events standard * wont populate it / have any reference to it in the API. * The main reason for it is that fetching the old entity from the DB will have a performance hit on an update operation so unless truly needed, * the developer should send only the new (current) entity. * An additional reason is not wanting to send this additional entity over the wire (kafka) since in some cases it can be really big * Developers that must reflect the old entity will have to implement their own domain event sender mechanism which will follow the DomainEvent proto message. * @internal * @deprecated */ previousEntityAsJson?: string | null; /** * WIP - This property will hold both names and values of the updated fields of the entity. * For more details please see [adr](https://docs.google.com/document/d/1PdqsOM20Ph2HAkmx8zvUnzzk3Sekp3BR9h34wSvsRnI/edit#heading=h.phlw87mh2imx) or [issue](https://github.com/wix-private/nile-tracker/issues/363) * @internal */ modifiedFields?: Record; } interface EntityDeletedEvent$c { /** * Indicates if the entity is sent to trash-bin. only available when trash-bin is enabled * @internal */ movedToTrash?: boolean | null; /** Entity that was deleted */ deletedEntityAsJson?: string | null; } interface ActionEvent$c { bodyAsJson?: string; } interface Empty$b { } interface MessageEnvelope$c { /** App instance ID. */ instanceId?: string | null; /** Event type. */ eventType?: string; /** The identification type and identity data. */ identity?: IdentificationData$c; /** Stringify payload. */ data?: string; } interface IdentificationData$c extends IdentificationDataIdOneOf$c { /** ID of a site visitor that has not logged in to the site. */ anonymousVisitorId?: string; /** ID of a site visitor that has logged in to the site. */ memberId?: string; /** ID of a Wix user (site owner, contributor, etc.). */ wixUserId?: string; /** ID of an app. */ appId?: string; /** @readonly */ identityType?: WebhookIdentityType$c; } /** @oneof */ interface IdentificationDataIdOneOf$c { /** ID of a site visitor that has not logged in to the site. */ anonymousVisitorId?: string; /** ID of a site visitor that has logged in to the site. */ memberId?: string; /** ID of a Wix user (site owner, contributor, etc.). */ wixUserId?: string; /** ID of an app. */ appId?: string; } enum WebhookIdentityType$c { UNKNOWN = "UNKNOWN", ANONYMOUS_VISITOR = "ANONYMOUS_VISITOR", MEMBER = "MEMBER", WIX_USER = "WIX_USER", APP = "APP" } /** * > **Note:** The Item Modifier Groups API only works with the Wix Restaurants Menus (New) app. Make sure you downloaded this app from [Wix App Market](https://www.wix.com/app-market/wix-restaurants-menus-new). * * Creates a modifier group. * * To create multiple modifier groups at once, use [Bulk Create Modifiers](https://dev.wix.com/docs/rest/business-solutions/restaurants/menus/item-modifier-groups/bulk-create-modifier-groups). * @param modifierGroup - Modifier group details. * @public * @documentationMaturity preview * @requiredField modifierGroup * @requiredField modifierGroup.name * @permissionId RESTAURANTS.MODIFIER_GROUP_CREATE * @adminMethod * @returns Modifier group. */ function createModifierGroup(modifierGroup: ModifierGroup$1): Promise; /** * > **Note:** The Item Modifier Groups API only works with the Wix Restaurants Menus (New) app. Make sure you downloaded this app from [Wix App Market](https://www.wix.com/app-market/wix-restaurants-menus-new). * * Retrieves a modifier group by the ID. * @param modifierGroupId - Modifier group ID. * @public * @documentationMaturity preview * @requiredField modifierGroupId * @permissionId RESTAURANTS.MODIFIER_GROUP_READ * @returns Modifier group. */ function getModifierGroup(modifierGroupId: string): Promise; /** * > **Note:** The Item Modifier Groups API only works with the Wix Restaurants Menus (New) app. Make sure you downloaded this app from [Wix App Market](https://www.wix.com/app-market/wix-restaurants-menus-new). * * Retrieves a list of up to 100 modifier groups. * @public * @documentationMaturity preview * @permissionId RESTAURANTS.MODIFIER_GROUP_READ */ function listModifierGroups(options?: ListModifierGroupsOptions): Promise; interface ListModifierGroupsOptions { /** Modifier group IDs. */ modifierGroupIds?: string[]; /** The metadata of the paginated results. */ paging?: CursorPaging$a; } /** * Creates a query to retrieve a list of item modifier groups. * * The `queryModifierGroups()` function builds a query to retrieve a list of item modifier groups and returns a `ModifierGroupsQueryBuilder` object. * * The returned object contains the query definition, which is used to run the query using the [`find()`](/item-modifier-groups/modifier-groups-query-builder/find) function. * * You can refine the query by chaining `ModifierGroupsQueryBuilder` functions onto the query. `ModifierGroupsQueryBuilder` functions enable you to filter, sort, and control the results that `queryModifierGroups()` returns. * * `queryModifierGroups()` runs with the following `ModifierGroupsQueryBuilder` defaults, which you can override: * * * [`limit(100)`](/item-modifier-groups/modifier-groups-query-builder/limit) * * [`ascending('entityId')`](/item-modifier-groups/modifier-groups-query-builder/ascending) * * The following `ModifierGroupsQueryBuilder` functions are supported for `queryModifierGroups()`. For a full description of the item modifier group object, see the object returned for the [`items`](/item-modifier-groups/modifier-groups-query-builder/items) property in `ModifierGroupsQueryResult`. * @public * @documentationMaturity preview * @permissionId RESTAURANTS.MODIFIER_GROUP_READ */ function queryModifierGroups(): ModifierGroupsQueryBuilder; interface QueryCursorResult$b { cursors: Cursors$a; hasNext: () => boolean; hasPrev: () => boolean; length: number; pageSize: number; } interface ModifierGroupsQueryResult extends QueryCursorResult$b { items: ModifierGroup$1[]; query: ModifierGroupsQueryBuilder; next: () => Promise; prev: () => Promise; } interface ModifierGroupsQueryBuilder { /** @param propertyName - Property whose value is compared with `value`. * @param value - Value to compare against. * @documentationMaturity preview */ eq: (propertyName: '_id' | '_createdDate' | '_updatedDate' | 'name' | 'modifiers.preSelected' | 'rule.required' | 'rule.minSelections' | 'rule.maxSelections', value: any) => ModifierGroupsQueryBuilder; /** @param propertyName - Property whose value is compared with `value`. * @param value - Value to compare against. * @documentationMaturity preview */ ne: (propertyName: '_id' | '_createdDate' | '_updatedDate' | 'name' | 'modifiers.preSelected' | 'rule.required' | 'rule.minSelections' | 'rule.maxSelections', value: any) => ModifierGroupsQueryBuilder; /** @param propertyName - Property whose value is compared with `value`. * @param value - Value to compare against. * @documentationMaturity preview */ ge: (propertyName: '_createdDate' | '_updatedDate', value: any) => ModifierGroupsQueryBuilder; /** @param propertyName - Property whose value is compared with `value`. * @param value - Value to compare against. * @documentationMaturity preview */ gt: (propertyName: '_createdDate' | '_updatedDate', value: any) => ModifierGroupsQueryBuilder; /** @param propertyName - Property whose value is compared with `value`. * @param value - Value to compare against. * @documentationMaturity preview */ le: (propertyName: '_createdDate' | '_updatedDate', value: any) => ModifierGroupsQueryBuilder; /** @param propertyName - Property whose value is compared with `value`. * @param value - Value to compare against. * @documentationMaturity preview */ lt: (propertyName: '_createdDate' | '_updatedDate', value: any) => ModifierGroupsQueryBuilder; /** @param propertyName - Property whose value is compared with `string`. * @param string - String to compare against. Case-insensitive. * @documentationMaturity preview */ startsWith: (propertyName: 'name', value: string) => ModifierGroupsQueryBuilder; /** @documentationMaturity preview */ in: (propertyName: '_id' | 'name' | 'modifiers.id' | 'modifiers.preSelected' | 'rule.required', value: any) => ModifierGroupsQueryBuilder; /** @documentationMaturity preview */ exists: (propertyName: 'modifiers' | 'rule', value: boolean) => ModifierGroupsQueryBuilder; /** @param limit - Number of items to return, which is also the `pageSize` of the results object. * @documentationMaturity preview */ limit: (limit: number) => ModifierGroupsQueryBuilder; /** @param cursor - A pointer to specific record * @documentationMaturity preview */ skipTo: (cursor: string) => ModifierGroupsQueryBuilder; /** @documentationMaturity preview */ find: () => Promise; } /** * > **Note:** The Item API only works with the Wix Restaurants Menus (New) app. Make sure you have installed this app from the [Wix App Market](https://www.wix.com/app-market/wix-restaurants-menus-new). * * Retrieves the number of modifier groups that match a specified filter. * * If a filter isn't passed in the request, the endpoint returns the count of all modifier groups. * @public * @documentationMaturity preview * @permissionId RESTAURANTS.MODIFIER_GROUP_READ */ function countModifierGroups(options?: CountModifierGroupsOptions): Promise; interface CountModifierGroupsOptions { /** Filter for counting modifier groups. */ filter?: Record | null; } /** * > **Note:** The Item Modifier Groups API only works with the Wix Restaurants Menus (New) app. Make sure you downloaded this app from [Wix App Market](https://www.wix.com/app-market/wix-restaurants-menus-new). * * Updates a modifier group. * * Each time a modifier group is updated, its revision increments by 1. The existing revision must be included when updating the modifier group. This ensures you're working with the latest modifier group information, and it prevents unintended overwrites. * @param _id - Modifier group ID. * @public * @documentationMaturity preview * @requiredField _id * @requiredField modifierGroup * @requiredField modifierGroup.revision * @permissionId RESTAURANTS.MODIFIER_GROUP_UPDATE * @adminMethod * @returns Updated modifier group. */ function updateModifierGroup(_id: string | null, modifierGroup: UpdateModifierGroup, options?: UpdateModifierGroupOptions): Promise; interface UpdateModifierGroup { /** * Modifier group ID. * @readonly */ _id?: string | null; /** * Revision number, which increments by 1 each time the modifier group is updated. To prevent conflicting changes, the current revision must be passed when updating the modifier group. Ignored when creating a modifier group. * @readonly */ revision?: string | null; /** * Date and time the modifier group was created. * @readonly */ _createdDate?: Date | null; /** * Date and time the modifier group was updated. * @readonly */ _updatedDate?: Date | null; /** Modifier group name. */ name?: string | null; /** Group of item modifiers. */ modifiers?: Modifier$1[]; /** Modifier group details. */ rule?: Rule$1; /** Extended fields. */ extendedFields?: ExtendedFields$9; } interface UpdateModifierGroupOptions { /** * Explicit list of fields to update. * @internal */ mask?: string[]; } /** * > **Note:** The Item Modifier Groups API only works with the Wix Restaurants Menus (New) app. Make sure you downloaded this app from [Wix App Market](https://www.wix.com/app-market/wix-restaurants-menus-new). * * Deletes a modifier group. * @param modifierGroupId - Modifier group ID. * @public * @documentationMaturity preview * @requiredField modifierGroupId * @permissionId RESTAURANTS.MODIFIER_GROUP_DELETE * @adminMethod */ function deleteModifierGroup(modifierGroupId: string): Promise; /** * > **Note:** The Item Modifier Groups API only works with the Wix Restaurants Menus (New) app. Make sure you downloaded this app from [Wix App Market](https://www.wix.com/app-market/wix-restaurants-menus-new). * * Creates multiple modifier groups. * @param modifierGroups - Modifier groups details. * @public * @documentationMaturity preview * @requiredField modifierGroups * @permissionId RESTAURANTS.MODIFIER_GROUP_CREATE * @adminMethod */ function bulkCreateModifierGroups(modifierGroups: ModifierGroup$1[], options?: BulkCreateModifierGroupsOptions): Promise; interface BulkCreateModifierGroupsOptions { /** Whether to receive the created modifier groups in the response. */ returnEntity?: boolean; } /** * > **Note:** The Item Modifier Groups API only works with the Wix Restaurants Menus (New) app. Make sure you downloaded this app from [Wix App Market](https://www.wix.com/app-market/wix-restaurants-menus-new). * * Updates multiple item modifier groups at once. This function supports partial updates. * Each time a modifier group is updated, its revision increments by 1. The existing revision must be included when updating an item modifier group. This ensures you're working with the latest item information, and prevents unintended overwrites. * Up to 100 modifier groups can be returned per request. * @param modifierGroups - Modifier groups to update. * @public * @documentationMaturity preview * @requiredField modifierGroups * @requiredField modifierGroups.modifierGroup._id * @requiredField modifierGroups.modifierGroup.revision * @permissionId RESTAURANTS.MODIFIER_GROUP_UPDATE * @adminMethod */ function bulkUpdateModifierGroups(modifierGroups: MaskedModifierGroup[], options?: BulkUpdateModifierGroupsOptions): Promise; interface BulkUpdateModifierGroupsOptions { /** Whether to receive the updated modifier groups in the response. */ returnEntity?: boolean; } /** @param ids - Modifier Group IDs. * @public * @documentationMaturity preview * @requiredField ids * @permissionId RESTAURANTS.MODIFIER_GROUP_DELETE * @adminMethod */ function bulkDeleteModifierGroups(ids: string[]): Promise; /** * Clone modifier groups from a different metasite. * @param metaSiteId - The MetaSiteId to clone from. * @internal * @documentationMaturity preview * @requiredField metaSiteId * @permissionId RESTAURANTS.MODIFIER_GROUP_CREATE * @adminMethod */ function cloneModifierGroups(metaSiteId: string): Promise; type restaurantsMenusV1ItemModifierGroup_universal_d_AdditionalChargeInfo = AdditionalChargeInfo; type restaurantsMenusV1ItemModifierGroup_universal_d_CreateModifierGroupRequest = CreateModifierGroupRequest; type restaurantsMenusV1ItemModifierGroup_universal_d_CreateModifierGroupResponse = CreateModifierGroupResponse; type restaurantsMenusV1ItemModifierGroup_universal_d_GetModifierGroupRequest = GetModifierGroupRequest; type restaurantsMenusV1ItemModifierGroup_universal_d_GetModifierGroupResponse = GetModifierGroupResponse; type restaurantsMenusV1ItemModifierGroup_universal_d_ListModifierGroupRequest = ListModifierGroupRequest; type restaurantsMenusV1ItemModifierGroup_universal_d_ListModifierGroupResponse = ListModifierGroupResponse; type restaurantsMenusV1ItemModifierGroup_universal_d_QueryModifierGroupsRequest = QueryModifierGroupsRequest; type restaurantsMenusV1ItemModifierGroup_universal_d_QueryModifierGroupsResponse = QueryModifierGroupsResponse; type restaurantsMenusV1ItemModifierGroup_universal_d_CountModifierGroupsRequest = CountModifierGroupsRequest; type restaurantsMenusV1ItemModifierGroup_universal_d_CountModifierGroupsResponse = CountModifierGroupsResponse; type restaurantsMenusV1ItemModifierGroup_universal_d_UpdateModifierGroupRequest = UpdateModifierGroupRequest; type restaurantsMenusV1ItemModifierGroup_universal_d_UpdateModifierGroupResponse = UpdateModifierGroupResponse; type restaurantsMenusV1ItemModifierGroup_universal_d_DeleteModifierGroupRequest = DeleteModifierGroupRequest; type restaurantsMenusV1ItemModifierGroup_universal_d_DeleteModifierGroupResponse = DeleteModifierGroupResponse; type restaurantsMenusV1ItemModifierGroup_universal_d_BulkCreateModifierGroupsRequest = BulkCreateModifierGroupsRequest; type restaurantsMenusV1ItemModifierGroup_universal_d_BulkCreateModifierGroupsResponse = BulkCreateModifierGroupsResponse; type restaurantsMenusV1ItemModifierGroup_universal_d_BulkCreateModifierGroupsResult = BulkCreateModifierGroupsResult; type restaurantsMenusV1ItemModifierGroup_universal_d_BulkUpdateModifierGroupsRequest = BulkUpdateModifierGroupsRequest; type restaurantsMenusV1ItemModifierGroup_universal_d_MaskedModifierGroup = MaskedModifierGroup; type restaurantsMenusV1ItemModifierGroup_universal_d_BulkUpdateModifierGroupsResponse = BulkUpdateModifierGroupsResponse; type restaurantsMenusV1ItemModifierGroup_universal_d_BulkUpdateModifierGroupsResult = BulkUpdateModifierGroupsResult; type restaurantsMenusV1ItemModifierGroup_universal_d_BulkDeleteModifierGroupsRequest = BulkDeleteModifierGroupsRequest; type restaurantsMenusV1ItemModifierGroup_universal_d_BulkDeleteModifierGroupsResponse = BulkDeleteModifierGroupsResponse; type restaurantsMenusV1ItemModifierGroup_universal_d_BulkDeleteModifierGroupsResult = BulkDeleteModifierGroupsResult; type restaurantsMenusV1ItemModifierGroup_universal_d_CloneModifierGroupsRequest = CloneModifierGroupsRequest; type restaurantsMenusV1ItemModifierGroup_universal_d_CloneModifierGroupsResponse = CloneModifierGroupsResponse; const restaurantsMenusV1ItemModifierGroup_universal_d_createModifierGroup: typeof createModifierGroup; const restaurantsMenusV1ItemModifierGroup_universal_d_getModifierGroup: typeof getModifierGroup; const restaurantsMenusV1ItemModifierGroup_universal_d_listModifierGroups: typeof listModifierGroups; type restaurantsMenusV1ItemModifierGroup_universal_d_ListModifierGroupsOptions = ListModifierGroupsOptions; const restaurantsMenusV1ItemModifierGroup_universal_d_queryModifierGroups: typeof queryModifierGroups; type restaurantsMenusV1ItemModifierGroup_universal_d_ModifierGroupsQueryResult = ModifierGroupsQueryResult; type restaurantsMenusV1ItemModifierGroup_universal_d_ModifierGroupsQueryBuilder = ModifierGroupsQueryBuilder; const restaurantsMenusV1ItemModifierGroup_universal_d_countModifierGroups: typeof countModifierGroups; type restaurantsMenusV1ItemModifierGroup_universal_d_CountModifierGroupsOptions = CountModifierGroupsOptions; const restaurantsMenusV1ItemModifierGroup_universal_d_updateModifierGroup: typeof updateModifierGroup; type restaurantsMenusV1ItemModifierGroup_universal_d_UpdateModifierGroup = UpdateModifierGroup; type restaurantsMenusV1ItemModifierGroup_universal_d_UpdateModifierGroupOptions = UpdateModifierGroupOptions; const restaurantsMenusV1ItemModifierGroup_universal_d_deleteModifierGroup: typeof deleteModifierGroup; const restaurantsMenusV1ItemModifierGroup_universal_d_bulkCreateModifierGroups: typeof bulkCreateModifierGroups; type restaurantsMenusV1ItemModifierGroup_universal_d_BulkCreateModifierGroupsOptions = BulkCreateModifierGroupsOptions; const restaurantsMenusV1ItemModifierGroup_universal_d_bulkUpdateModifierGroups: typeof bulkUpdateModifierGroups; type restaurantsMenusV1ItemModifierGroup_universal_d_BulkUpdateModifierGroupsOptions = BulkUpdateModifierGroupsOptions; const restaurantsMenusV1ItemModifierGroup_universal_d_bulkDeleteModifierGroups: typeof bulkDeleteModifierGroups; const restaurantsMenusV1ItemModifierGroup_universal_d_cloneModifierGroups: typeof cloneModifierGroups; namespace restaurantsMenusV1ItemModifierGroup_universal_d { export { ModifierGroup$1 as ModifierGroup, Modifier$1 as Modifier, restaurantsMenusV1ItemModifierGroup_universal_d_AdditionalChargeInfo as AdditionalChargeInfo, Rule$1 as Rule, ExtendedFields$9 as ExtendedFields, InvalidateCache$9 as InvalidateCache, InvalidateCacheGetByOneOf$9 as InvalidateCacheGetByOneOf, App$9 as App, Page$9 as Page, URI$9 as URI, File$9 as File, restaurantsMenusV1ItemModifierGroup_universal_d_CreateModifierGroupRequest as CreateModifierGroupRequest, restaurantsMenusV1ItemModifierGroup_universal_d_CreateModifierGroupResponse as CreateModifierGroupResponse, restaurantsMenusV1ItemModifierGroup_universal_d_GetModifierGroupRequest as GetModifierGroupRequest, restaurantsMenusV1ItemModifierGroup_universal_d_GetModifierGroupResponse as GetModifierGroupResponse, restaurantsMenusV1ItemModifierGroup_universal_d_ListModifierGroupRequest as ListModifierGroupRequest, CursorPaging$a as CursorPaging, restaurantsMenusV1ItemModifierGroup_universal_d_ListModifierGroupResponse as ListModifierGroupResponse, CursorPagingMetadata$a as CursorPagingMetadata, Cursors$a as Cursors, restaurantsMenusV1ItemModifierGroup_universal_d_QueryModifierGroupsRequest as QueryModifierGroupsRequest, CursorQuery$b as CursorQuery, CursorQueryPagingMethodOneOf$b as CursorQueryPagingMethodOneOf, Sorting$b as Sorting, SortOrder$b as SortOrder, restaurantsMenusV1ItemModifierGroup_universal_d_QueryModifierGroupsResponse as QueryModifierGroupsResponse, restaurantsMenusV1ItemModifierGroup_universal_d_CountModifierGroupsRequest as CountModifierGroupsRequest, restaurantsMenusV1ItemModifierGroup_universal_d_CountModifierGroupsResponse as CountModifierGroupsResponse, restaurantsMenusV1ItemModifierGroup_universal_d_UpdateModifierGroupRequest as UpdateModifierGroupRequest, restaurantsMenusV1ItemModifierGroup_universal_d_UpdateModifierGroupResponse as UpdateModifierGroupResponse, restaurantsMenusV1ItemModifierGroup_universal_d_DeleteModifierGroupRequest as DeleteModifierGroupRequest, restaurantsMenusV1ItemModifierGroup_universal_d_DeleteModifierGroupResponse as DeleteModifierGroupResponse, restaurantsMenusV1ItemModifierGroup_universal_d_BulkCreateModifierGroupsRequest as BulkCreateModifierGroupsRequest, restaurantsMenusV1ItemModifierGroup_universal_d_BulkCreateModifierGroupsResponse as BulkCreateModifierGroupsResponse, restaurantsMenusV1ItemModifierGroup_universal_d_BulkCreateModifierGroupsResult as BulkCreateModifierGroupsResult, ItemMetadata$9 as ItemMetadata, ApplicationError$9 as ApplicationError, BulkActionMetadata$9 as BulkActionMetadata, restaurantsMenusV1ItemModifierGroup_universal_d_BulkUpdateModifierGroupsRequest as BulkUpdateModifierGroupsRequest, restaurantsMenusV1ItemModifierGroup_universal_d_MaskedModifierGroup as MaskedModifierGroup, restaurantsMenusV1ItemModifierGroup_universal_d_BulkUpdateModifierGroupsResponse as BulkUpdateModifierGroupsResponse, restaurantsMenusV1ItemModifierGroup_universal_d_BulkUpdateModifierGroupsResult as BulkUpdateModifierGroupsResult, restaurantsMenusV1ItemModifierGroup_universal_d_BulkDeleteModifierGroupsRequest as BulkDeleteModifierGroupsRequest, restaurantsMenusV1ItemModifierGroup_universal_d_BulkDeleteModifierGroupsResponse as BulkDeleteModifierGroupsResponse, restaurantsMenusV1ItemModifierGroup_universal_d_BulkDeleteModifierGroupsResult as BulkDeleteModifierGroupsResult, restaurantsMenusV1ItemModifierGroup_universal_d_CloneModifierGroupsRequest as CloneModifierGroupsRequest, restaurantsMenusV1ItemModifierGroup_universal_d_CloneModifierGroupsResponse as CloneModifierGroupsResponse, DomainEvent$c as DomainEvent, DomainEventBodyOneOf$c as DomainEventBodyOneOf, EntityCreatedEvent$c as EntityCreatedEvent, RestoreInfo$c as RestoreInfo, EntityUpdatedEvent$c as EntityUpdatedEvent, EntityDeletedEvent$c as EntityDeletedEvent, ActionEvent$c as ActionEvent, Empty$b as Empty, MessageEnvelope$c as MessageEnvelope, IdentificationData$c as IdentificationData, IdentificationDataIdOneOf$c as IdentificationDataIdOneOf, WebhookIdentityType$c as WebhookIdentityType, restaurantsMenusV1ItemModifierGroup_universal_d_createModifierGroup as createModifierGroup, restaurantsMenusV1ItemModifierGroup_universal_d_getModifierGroup as getModifierGroup, restaurantsMenusV1ItemModifierGroup_universal_d_listModifierGroups as listModifierGroups, restaurantsMenusV1ItemModifierGroup_universal_d_ListModifierGroupsOptions as ListModifierGroupsOptions, restaurantsMenusV1ItemModifierGroup_universal_d_queryModifierGroups as queryModifierGroups, restaurantsMenusV1ItemModifierGroup_universal_d_ModifierGroupsQueryResult as ModifierGroupsQueryResult, restaurantsMenusV1ItemModifierGroup_universal_d_ModifierGroupsQueryBuilder as ModifierGroupsQueryBuilder, restaurantsMenusV1ItemModifierGroup_universal_d_countModifierGroups as countModifierGroups, restaurantsMenusV1ItemModifierGroup_universal_d_CountModifierGroupsOptions as CountModifierGroupsOptions, restaurantsMenusV1ItemModifierGroup_universal_d_updateModifierGroup as updateModifierGroup, restaurantsMenusV1ItemModifierGroup_universal_d_UpdateModifierGroup as UpdateModifierGroup, restaurantsMenusV1ItemModifierGroup_universal_d_UpdateModifierGroupOptions as UpdateModifierGroupOptions, restaurantsMenusV1ItemModifierGroup_universal_d_deleteModifierGroup as deleteModifierGroup, restaurantsMenusV1ItemModifierGroup_universal_d_bulkCreateModifierGroups as bulkCreateModifierGroups, restaurantsMenusV1ItemModifierGroup_universal_d_BulkCreateModifierGroupsOptions as BulkCreateModifierGroupsOptions, restaurantsMenusV1ItemModifierGroup_universal_d_bulkUpdateModifierGroups as bulkUpdateModifierGroups, restaurantsMenusV1ItemModifierGroup_universal_d_BulkUpdateModifierGroupsOptions as BulkUpdateModifierGroupsOptions, restaurantsMenusV1ItemModifierGroup_universal_d_bulkDeleteModifierGroups as bulkDeleteModifierGroups, restaurantsMenusV1ItemModifierGroup_universal_d_cloneModifierGroups as cloneModifierGroups, }; } interface Section { /** * Section ID. * @readonly */ _id?: string | null; /** * Revision number, which increments by 1 each time the section is updated. To prevent conflicting changes, the current revision must be passed when updating the section. Ignored when creating a section. * @readonly */ revision?: string | null; /** * Date and time the section was created. * @readonly */ _createdDate?: Date | null; /** * Date and time the section was updated. * @readonly */ _updatedDate?: Date | null; /** Section name. */ name?: string; /** Section description. */ description?: string | null; /** Main section image. */ image?: string; /** Additional section images. */ additionalImages?: string[]; /** Item IDs. */ itemIds?: string[]; /** Extended fields. */ extendedFields?: ExtendedFields$8; /** Whether the section is visible in the menu for site visitors. */ visible?: boolean | null; /** * @internal * @readonly */ oloMigrationSectionId?: string | null; } interface ExtendedFields$8 { /** * Extended field data. Each key corresponds to the namespace of the app that created the extended fields. * The value of each key is structured according to the schema defined when the extended fields were configured. * * You can only access fields for which you have the appropriate permissions. * * Learn more about [extended fields](https://dev.wix.com/docs/rest/articles/getting-started/extended-fields). */ namespaces?: Record>; } interface InvalidateCache$8 extends InvalidateCacheGetByOneOf$8 { /** Invalidate by msId. NOT recommended, as this will invalidate the entire site cache! */ metaSiteId?: string; /** Invalidate by Site ID. NOT recommended, as this will invalidate the entire site cache! */ siteId?: string; /** Invalidate by App */ app?: App$8; /** Invalidate by page id */ page?: Page$8; /** Invalidate by URI path */ uri?: URI$8; /** Invalidate by file (for media files such as PDFs) */ file?: File$8; /** tell us why you're invalidating the cache. You don't need to add your app name */ reason?: string | null; /** Is local DS */ localDc?: boolean; hardPurge?: boolean; } /** @oneof */ interface InvalidateCacheGetByOneOf$8 { /** Invalidate by msId. NOT recommended, as this will invalidate the entire site cache! */ metaSiteId?: string; /** Invalidate by Site ID. NOT recommended, as this will invalidate the entire site cache! */ siteId?: string; /** Invalidate by App */ app?: App$8; /** Invalidate by page id */ page?: Page$8; /** Invalidate by URI path */ uri?: URI$8; /** Invalidate by file (for media files such as PDFs) */ file?: File$8; } interface App$8 { /** The AppDefId */ appDefId?: string; /** The instance Id */ instanceId?: string; } interface Page$8 { /** the msid the page is on */ metaSiteId?: string; /** Invalidate by Page ID */ pageId?: string; } interface URI$8 { /** the msid the URI is on */ metaSiteId?: string; /** URI path to invalidate (e.g. page/my/path) - without leading/trailing slashes */ uriPath?: string; } interface File$8 { /** the msid the file is related to */ metaSiteId?: string; /** Invalidate by filename (for media files such as PDFs) */ fileName?: string; } interface CreateSectionRequest { /** Section details. */ section: Section; } interface CreateSectionResponse { /** Section. */ section?: Section; } interface BulkCreateSectionsRequest { /** Sections details. */ sections: Section[]; /** Whether to receive the created sections in the response. */ returnEntity?: boolean; } interface BulkCreateSectionsResponse { /** Information about the created sections. */ results?: BulkCreateSectionResult[]; /** Metadata for the API call. */ bulkActionMetadata?: BulkActionMetadata$8; } interface BulkCreateSectionResult { /** Metadata for created sections. */ itemMetadata?: ItemMetadata$8; /** Created section. Only returned if `returnEntity` is set to `true`. */ item?: Section; } interface ItemMetadata$8 { /** Item ID. Should always be available, unless it's impossible (for example, when failing to create an item). */ _id?: string | null; /** Index of the item within the request array. Allows for correlation between request and response items. */ originalIndex?: number; /** Whether the requested action was successful for this item. When `false`, the `error` field is populated. */ success?: boolean; /** Details about the error in case of failure. */ error?: ApplicationError$8; } interface ApplicationError$8 { /** Error code. */ code?: string; /** Description of the error. */ description?: string; /** Data related to the error. */ data?: Record | null; } interface BulkActionMetadata$8 { /** Number of items that were successfully processed. */ totalSuccesses?: number; /** Number of items that couldn't be processed. */ totalFailures?: number; /** Number of failures without details because detailed failure threshold was exceeded. */ undetailedFailures?: number; } interface GetSectionRequest { /** Section ID. */ sectionId: string; } interface GetSectionResponse { /** Section. */ section?: Section; } interface ListSectionsRequest { /** Section IDs. */ sectionIds?: string[]; /** The metadata of the paginated results. */ paging?: CursorPaging$9; /** Whether to return only sections that are visible to site visitors. */ onlyVisible?: boolean | null; } interface CursorPaging$9 { /** Number of items to load. */ limit?: number | null; /** * Pointer to the next or previous page in the list of results. * * You can get the relevant cursor token * from the `pagingMetadata` object in the previous call's response. * Not relevant for the first request. */ cursor?: string | null; } interface ListSectionsResponse { /** Retrieved sections. */ sections?: Section[]; /** The metadata of the paginated results. */ pagingMetadata?: CursorPagingMetadata$9; } interface CursorPagingMetadata$9 { /** Number of items returned in the response. */ count?: number | null; /** Offset that was requested. */ cursors?: Cursors$9; /** * Indicates if there are more results after the current page. * If `true`, another page of results can be retrieved. * If `false`, this is the last page. */ hasNext?: boolean | null; } interface Cursors$9 { /** Cursor pointing to next page in the list of results. */ next?: string | null; /** Cursor pointing to previous page in the list of results. */ prev?: string | null; } interface QuerySectionsRequest { /** Query options. */ query?: CursorQuery$a; } interface CursorQuery$a extends CursorQueryPagingMethodOneOf$a { /** 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`. */ cursorPaging?: CursorPaging$9; /** * Filter object in the following format: * `"filter" : { * "fieldName1": "value1", * "fieldName2":{"$operator":"value2"} * }` * Example of operators: `$eq`, `$ne`, `$lt`, `$lte`, `$gt`, `$gte`, `$in`, `$hasSome`, `$hasAll`, `$startsWith`, `$contains` */ filter?: Record | null; /** * Sort object in the following format: * `[{"fieldName":"sortField1","order":"ASC"},{"fieldName":"sortField2","order":"DESC"}]` */ sort?: Sorting$a[]; } /** @oneof */ interface CursorQueryPagingMethodOneOf$a { /** 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`. */ cursorPaging?: CursorPaging$9; } interface Sorting$a { /** Name of the field to sort by. */ fieldName?: string; /** Sort order. */ order?: SortOrder$a; /** * When `field_name` is a property of repeated field that is marked as `MATCH_ITEMS` and sort should be done by * a specific element from a collection, filter can/should be provided to ensure correct sort value is picked. * * If multiple filters are provided, they are combined with AND operator. * * Example: * Given we have document like {"id": "1", "nestedField": [{"price": 10, "region": "EU"}, {"price": 20, "region": "US"}]} * and `nestedField` is marked as `MATCH_ITEMS`, to ensure that sorting is done by correct region, filter should be * { fieldName: "nestedField.price", "select_items_by": [{"nestedField.region": "US"}] } * @internal */ selectItemsBy?: Record[] | null; } enum SortOrder$a { ASC = "ASC", DESC = "DESC" } interface QuerySectionsResponse { /** Retrieved sections. */ sections?: Section[]; /** The metadata of the paginated results. */ pagingMetadata?: CursorPagingMetadata$9; } interface UpdateSectionRequest { /** Section update. */ section: Section; /** * Explicit list of fields to update. * @internal */ mask?: string[]; } interface UpdateSectionResponse { /** Updated section. */ section?: Section; } interface BulkUpdateSectionRequest { /** Sections to update. */ sections: MaskedSection[]; /** Whether to receive the updated sections in the response. */ returnEntity?: boolean; } interface MaskedSection { /** Section update. */ section?: Section; /** * Explicit list of fields to update. * @internal */ mask?: string[]; } interface BulkUpdateSectionResponse { /** Information about the updated sections. */ results?: BulkSectionResult[]; /** Metadata for the API call. */ bulkActionMetadata?: BulkActionMetadata$8; } interface BulkSectionResult { /** Whether to receive the updated sections in the response. */ sectionMetadata?: ItemMetadata$8; /** Updated section. Only returned if `returnEntity` is set to `true`. */ section?: Section; } interface DeleteSectionRequest { /** Section ID. */ sectionId: string; } interface DeleteSectionResponse { } interface BulkDeleteSectionsRequest { /** Section IDs. */ ids: string[]; } interface BulkDeleteSectionsResponse { /** Information about the deleted sections. */ results?: BulkDeleteSectionResult[]; /** Metadata for the API call. */ bulkActionMetadata?: BulkActionMetadata$8; } interface BulkDeleteSectionResult { /** Metadata for deleted sections. */ itemMetadata?: ItemMetadata$8; } interface CloneSectionsRequest { /** The MetaSiteId to clone from. */ metaSiteId: string; } interface CloneSectionsResponse { } interface DomainEvent$b extends DomainEventBodyOneOf$b { createdEvent?: EntityCreatedEvent$b; updatedEvent?: EntityUpdatedEvent$b; deletedEvent?: EntityDeletedEvent$b; actionEvent?: ActionEvent$b; /** * Unique event ID. * Allows clients to ignore duplicate webhooks. */ _id?: string; /** * Assumes actions are also always typed to an entity_type * Example: wix.stores.catalog.product, wix.bookings.session, wix.payments.transaction */ entityFqdn?: string; /** * This is top level to ease client code dispatching of messages (switch on entity_fqdn+slug) * This is although the created/updated/deleted notion is duplication of the oneof types * Example: created/updated/deleted/started/completed/email_opened */ slug?: string; /** ID of the entity associated with the event. */ entityId?: string; /** Event timestamp in [ISO-8601](https://en.wikipedia.org/wiki/ISO_8601) format and UTC time. For example: 2020-04-26T13:57:50.699Z */ eventTime?: Date | null; /** * Whether the event was triggered as a result of a privacy regulation application * (for example, GDPR). */ triggeredByAnonymizeRequest?: boolean | null; /** If present, indicates the action that triggered the event. */ originatedFrom?: string | null; /** * A sequence number defining the order of updates to the underlying entity. * For example, given that some entity was updated at 16:00 and than again at 16:01, * it is guaranteed that the sequence number of the second update is strictly higher than the first. * As the consumer, you can use this value to ensure that you handle messages in the correct order. * To do so, you will need to persist this number on your end, and compare the sequence number from the * message against the one you have stored. Given that the stored number is higher, you should ignore the message. */ entityEventSequence?: string | null; } /** @oneof */ interface DomainEventBodyOneOf$b { createdEvent?: EntityCreatedEvent$b; updatedEvent?: EntityUpdatedEvent$b; deletedEvent?: EntityDeletedEvent$b; actionEvent?: ActionEvent$b; } interface EntityCreatedEvent$b { entityAsJson?: string; /** * Indicates the event was triggered by a restore-from-trashbin operation for a previously deleted entity * @internal */ triggeredByUndelete?: boolean | null; /** Indicates the event was triggered by a restore-from-trashbin operation for a previously deleted entity */ restoreInfo?: RestoreInfo$b; /** * WIP * @internal */ additionalMetadataAsJson?: string | null; } interface RestoreInfo$b { deletedDate?: Date | null; } interface EntityUpdatedEvent$b { /** * Since platformized APIs only expose PATCH and not PUT we can't assume that the fields sent from the client are the actual diff. * This means that to generate a list of changed fields (as opposed to sent fields) one needs to traverse both objects. * We don't want to impose this on all developers and so we leave this traversal to the notification recipients which need it. */ currentEntityAsJson?: string; /** * This field is currently part of the of the EntityUpdatedEvent msg, but scala/node libraries which implements the domain events standard * wont populate it / have any reference to it in the API. * The main reason for it is that fetching the old entity from the DB will have a performance hit on an update operation so unless truly needed, * the developer should send only the new (current) entity. * An additional reason is not wanting to send this additional entity over the wire (kafka) since in some cases it can be really big * Developers that must reflect the old entity will have to implement their own domain event sender mechanism which will follow the DomainEvent proto message. * @internal * @deprecated */ previousEntityAsJson?: string | null; /** * WIP - This property will hold both names and previous values of the updated fields of the entity. * For more details please see [adr](https://docs.google.com/document/d/1PdqsOM20Ph2HAkmx8zvUnzzk3Sekp3BR9h34wSvsRnI/edit#heading=h.phlw87mh2imx) or [issue](https://github.com/wix-private/nile-tracker/issues/363) * @internal */ modifiedFields?: Record; /** * WIP * @internal */ additionalMetadataAsJson?: string | null; } interface EntityDeletedEvent$b { /** * Indicates if the entity is sent to trash-bin. only available when trash-bin is enabled * @internal */ movedToTrash?: boolean | null; /** Entity that was deleted */ deletedEntityAsJson?: string | null; /** * WIP * @internal */ additionalMetadataAsJson?: string | null; } interface ActionEvent$b { bodyAsJson?: string; } interface Empty$a { } interface MessageEnvelope$b { /** App instance ID. */ instanceId?: string | null; /** Event type. */ eventType?: string; /** The identification type and identity data. */ identity?: IdentificationData$b; /** Stringify payload. */ data?: string; } interface IdentificationData$b extends IdentificationDataIdOneOf$b { /** ID of a site visitor that has not logged in to the site. */ anonymousVisitorId?: string; /** ID of a site visitor that has logged in to the site. */ memberId?: string; /** ID of a Wix user (site owner, contributor, etc.). */ wixUserId?: string; /** ID of an app. */ appId?: string; /** @readonly */ identityType?: WebhookIdentityType$b; } /** @oneof */ interface IdentificationDataIdOneOf$b { /** ID of a site visitor that has not logged in to the site. */ anonymousVisitorId?: string; /** ID of a site visitor that has logged in to the site. */ memberId?: string; /** ID of a Wix user (site owner, contributor, etc.). */ wixUserId?: string; /** ID of an app. */ appId?: string; } enum WebhookIdentityType$b { UNKNOWN = "UNKNOWN", ANONYMOUS_VISITOR = "ANONYMOUS_VISITOR", MEMBER = "MEMBER", WIX_USER = "WIX_USER", APP = "APP" } /** * > **Note:** The Sections API only works with the Wix Restaurants Menus (New) app. Make sure you have installed this app from the [Wix App Market](https://www.wix.com/app-market/wix-restaurants-menus-new). * * Creates a section. * * To create multiple sections at once, use [Bulk Create Sections](/sections/bulk-create-sections). * @param section - Section details. * @public * @documentationMaturity preview * @requiredField section * @permissionId RESTAURANTS.SECTION_CREATE * @adminMethod * @returns Section. */ function createSection(section: Section): Promise
; /** * > **Note:** The Section API only works with the Wix Restaurants Menus (New) app. Make sure you have installed this app from the [Wix App Market](https://www.wix.com/app-market/wix-restaurants-menus-new). * * Creates multiple sections at once. * @param sections - Sections details. * @public * @documentationMaturity preview * @requiredField sections * @permissionId RESTAURANTS.SECTION_CREATE * @adminMethod */ function bulkCreateSections(sections: Section[], options?: BulkCreateSectionsOptions): Promise; interface BulkCreateSectionsOptions { /** Whether to receive the created sections in the response. */ returnEntity?: boolean; } /** * > **Note:** The Section API only works with the Wix Restaurants Menus (New) app. Make sure you have installed this app from the [Wix App Market](https://www.wix.com/app-market/wix-restaurants-menus-new). * * Retrieves a section by ID. * @param sectionId - Section ID. * @public * @documentationMaturity preview * @requiredField sectionId * @permissionId RESTAURANTS.SECTION_READ * @returns Section. */ function getSection(sectionId: string): Promise
; /** * > **Note:** The Section API only works with the Wix Restaurants Menus (New) app. Make sure you have installed this app from the [Wix App Market](https://www.wix.com/app-market/wix-restaurants-menus-new). * * Retrieves a list of up to 500 sections. * @public * @documentationMaturity preview * @permissionId RESTAURANTS.SECTION_READ */ function listSections(options?: ListSectionsOptions): Promise; interface ListSectionsOptions { /** Section IDs. */ sectionIds?: string[]; /** The metadata of the paginated results. */ paging?: CursorPaging$9; /** Whether to return only sections that are visible to site visitors. */ onlyVisible?: boolean | null; } /** * Creates a query to retrieve a list of sections. * * The `querySections()` function builds a query to retrieve a list of sections and returns a `SectionsQueryBuilder` object. * * The returned object contains the query definition, which is used to run the query using the [`find()`](/sections/sections-query-builder/find) function. * * You can refine the query by chaining `SectionsQueryBuilder` functions onto the query. `SectionsQueryBuilder` functions enable you to filter, sort, and control the results that `querySections()` returns. * * `querySections()` runs with the following `SectionsQueryBuilder` defaults, which you can override: * * * [`limit(100)`](/sections/sections-query-builder/limit) * * [`ascending('entityId')`](/sections/sections-query-builder/ascending) * * The following `SectionsQueryBuilder` functions are supported for `querySections()`. For a full description of the section object, see the object returned for the [`items`](/sections/sections-query-result/items) property in `SectionsQueryResult`. * @public * @documentationMaturity preview * @permissionId RESTAURANTS.SECTION_READ */ function querySections(): SectionsQueryBuilder; interface QueryCursorResult$a { cursors: Cursors$9; hasNext: () => boolean; hasPrev: () => boolean; length: number; pageSize: number; } interface SectionsQueryResult extends QueryCursorResult$a { items: Section[]; query: SectionsQueryBuilder; next: () => Promise; prev: () => Promise; } interface SectionsQueryBuilder { /** @param propertyName - Property whose value is compared with `value`. * @param value - Value to compare against. * @documentationMaturity preview */ eq: (propertyName: '_id' | '_createdDate' | '_updatedDate' | 'name' | 'description', value: any) => SectionsQueryBuilder; /** @param propertyName - Property whose value is compared with `value`. * @param value - Value to compare against. * @documentationMaturity preview */ ne: (propertyName: '_id' | '_createdDate' | '_updatedDate' | 'name' | 'description', value: any) => SectionsQueryBuilder; /** @param propertyName - Property whose value is compared with `value`. * @param value - Value to compare against. * @documentationMaturity preview */ ge: (propertyName: '_createdDate' | '_updatedDate', value: any) => SectionsQueryBuilder; /** @param propertyName - Property whose value is compared with `value`. * @param value - Value to compare against. * @documentationMaturity preview */ gt: (propertyName: '_createdDate' | '_updatedDate', value: any) => SectionsQueryBuilder; /** @param propertyName - Property whose value is compared with `value`. * @param value - Value to compare against. * @documentationMaturity preview */ le: (propertyName: '_createdDate' | '_updatedDate', value: any) => SectionsQueryBuilder; /** @param propertyName - Property whose value is compared with `value`. * @param value - Value to compare against. * @documentationMaturity preview */ lt: (propertyName: '_createdDate' | '_updatedDate', value: any) => SectionsQueryBuilder; /** @param propertyName - Property whose value is compared with `string`. * @param string - String to compare against. Case-insensitive. * @documentationMaturity preview */ startsWith: (propertyName: 'name' | 'description', value: string) => SectionsQueryBuilder; /** @documentationMaturity preview */ in: (propertyName: '_id' | 'name' | 'description', value: any) => SectionsQueryBuilder; /** @documentationMaturity preview */ exists: (propertyName: 'image' | 'itemIds', value: boolean) => SectionsQueryBuilder; /** @param limit - Number of items to return, which is also the `pageSize` of the results object. * @documentationMaturity preview */ limit: (limit: number) => SectionsQueryBuilder; /** @param cursor - A pointer to specific record * @documentationMaturity preview */ skipTo: (cursor: string) => SectionsQueryBuilder; /** @documentationMaturity preview */ find: () => Promise; } /** * > **Note:** The Section API only works with the Wix Restaurants Menus (New) app. Make sure you have installed this app from the [Wix App Market](https://www.wix.com/app-market/wix-restaurants-menus-new). * * Updates a section. * * Each time a section is updated, its revision increments by 1. The existing revision must be included when updating a section. This ensures you're working with the latest section information, and it prevents unintended overwrites. * @param _id - Section ID. * @public * @documentationMaturity preview * @requiredField _id * @requiredField section * @requiredField section.revision * @permissionId RESTAURANTS.SECTION_UPDATE * @adminMethod * @returns Updated section. */ function updateSection(_id: string | null, section: UpdateSection, options?: UpdateSectionOptions): Promise
; interface UpdateSection { /** * Section ID. * @readonly */ _id?: string | null; /** * Revision number, which increments by 1 each time the section is updated. To prevent conflicting changes, the current revision must be passed when updating the section. Ignored when creating a section. * @readonly */ revision?: string | null; /** * Date and time the section was created. * @readonly */ _createdDate?: Date | null; /** * Date and time the section was updated. * @readonly */ _updatedDate?: Date | null; /** Section name. */ name?: string; /** Section description. */ description?: string | null; /** Main section image. */ image?: string; /** Additional section images. */ additionalImages?: string[]; /** Item IDs. */ itemIds?: string[]; /** Extended fields. */ extendedFields?: ExtendedFields$8; /** Whether the section is visible in the menu for site visitors. */ visible?: boolean | null; /** * @internal * @readonly */ oloMigrationSectionId?: string | null; } interface UpdateSectionOptions { /** * Explicit list of fields to update. * @internal */ mask?: string[]; } /** * > **Note:** The Section API only works with the Wix Restaurants Menus (New) app. Make sure you have installed this app from the [Wix App Market](https://www.wix.com/app-market/wix-restaurants-menus-new). * * Updates multiple sections at once. * * Each time a section is updated, its revision increments by 1. The existing revision must be included when updating a section. This ensures you're working with the latest section information, and it prevents unintended overwrites. * @param sections - Sections to update. * @public * @documentationMaturity preview * @requiredField sections * @requiredField sections.section._id * @requiredField sections.section.revision * @permissionId RESTAURANTS.SECTION_UPDATE * @adminMethod */ function bulkUpdateSection(sections: MaskedSection[], options?: BulkUpdateSectionOptions): Promise; interface BulkUpdateSectionOptions { /** Whether to receive the updated sections in the response. */ returnEntity?: boolean; } /** * > **Note:** The Section API only works with the Wix Restaurants Menus (New) app. Make sure you have installed this app from the [Wix App Market](https://www.wix.com/app-market/wix-restaurants-menus-new). * * Deletes a section. * @param sectionId - Section ID. * @public * @documentationMaturity preview * @requiredField sectionId * @permissionId RESTAURANTS.SECTION_DELETE * @adminMethod */ function deleteSection(sectionId: string): Promise; /** * > **Note:** The Section API only works with the Wix Restaurants Menus (New) app. Make sure you have installed this app from the [Wix App Market](https://www.wix.com/app-market/wix-restaurants-menus-new). * * Deletes multiple sections at once. * @param ids - Section IDs. * @public * @documentationMaturity preview * @requiredField ids * @permissionId RESTAURANTS.SECTION_DELETE * @adminMethod */ function bulkDeleteSections(ids: string[]): Promise; /** * Clone sections from a different metasite * @param metaSiteId - The MetaSiteId to clone from. * @internal * @documentationMaturity preview * @requiredField metaSiteId * @permissionId RESTAURANTS.SECTION_CREATE * @adminMethod */ function cloneSections(metaSiteId: string): Promise; type restaurantsMenusV1Section_universal_d_Section = Section; type restaurantsMenusV1Section_universal_d_CreateSectionRequest = CreateSectionRequest; type restaurantsMenusV1Section_universal_d_CreateSectionResponse = CreateSectionResponse; type restaurantsMenusV1Section_universal_d_BulkCreateSectionsRequest = BulkCreateSectionsRequest; type restaurantsMenusV1Section_universal_d_BulkCreateSectionsResponse = BulkCreateSectionsResponse; type restaurantsMenusV1Section_universal_d_BulkCreateSectionResult = BulkCreateSectionResult; type restaurantsMenusV1Section_universal_d_GetSectionRequest = GetSectionRequest; type restaurantsMenusV1Section_universal_d_GetSectionResponse = GetSectionResponse; type restaurantsMenusV1Section_universal_d_ListSectionsRequest = ListSectionsRequest; type restaurantsMenusV1Section_universal_d_ListSectionsResponse = ListSectionsResponse; type restaurantsMenusV1Section_universal_d_QuerySectionsRequest = QuerySectionsRequest; type restaurantsMenusV1Section_universal_d_QuerySectionsResponse = QuerySectionsResponse; type restaurantsMenusV1Section_universal_d_UpdateSectionRequest = UpdateSectionRequest; type restaurantsMenusV1Section_universal_d_UpdateSectionResponse = UpdateSectionResponse; type restaurantsMenusV1Section_universal_d_BulkUpdateSectionRequest = BulkUpdateSectionRequest; type restaurantsMenusV1Section_universal_d_MaskedSection = MaskedSection; type restaurantsMenusV1Section_universal_d_BulkUpdateSectionResponse = BulkUpdateSectionResponse; type restaurantsMenusV1Section_universal_d_BulkSectionResult = BulkSectionResult; type restaurantsMenusV1Section_universal_d_DeleteSectionRequest = DeleteSectionRequest; type restaurantsMenusV1Section_universal_d_DeleteSectionResponse = DeleteSectionResponse; type restaurantsMenusV1Section_universal_d_BulkDeleteSectionsRequest = BulkDeleteSectionsRequest; type restaurantsMenusV1Section_universal_d_BulkDeleteSectionsResponse = BulkDeleteSectionsResponse; type restaurantsMenusV1Section_universal_d_BulkDeleteSectionResult = BulkDeleteSectionResult; type restaurantsMenusV1Section_universal_d_CloneSectionsRequest = CloneSectionsRequest; type restaurantsMenusV1Section_universal_d_CloneSectionsResponse = CloneSectionsResponse; const restaurantsMenusV1Section_universal_d_createSection: typeof createSection; const restaurantsMenusV1Section_universal_d_bulkCreateSections: typeof bulkCreateSections; type restaurantsMenusV1Section_universal_d_BulkCreateSectionsOptions = BulkCreateSectionsOptions; const restaurantsMenusV1Section_universal_d_getSection: typeof getSection; const restaurantsMenusV1Section_universal_d_listSections: typeof listSections; type restaurantsMenusV1Section_universal_d_ListSectionsOptions = ListSectionsOptions; const restaurantsMenusV1Section_universal_d_querySections: typeof querySections; type restaurantsMenusV1Section_universal_d_SectionsQueryResult = SectionsQueryResult; type restaurantsMenusV1Section_universal_d_SectionsQueryBuilder = SectionsQueryBuilder; const restaurantsMenusV1Section_universal_d_updateSection: typeof updateSection; type restaurantsMenusV1Section_universal_d_UpdateSection = UpdateSection; type restaurantsMenusV1Section_universal_d_UpdateSectionOptions = UpdateSectionOptions; const restaurantsMenusV1Section_universal_d_bulkUpdateSection: typeof bulkUpdateSection; type restaurantsMenusV1Section_universal_d_BulkUpdateSectionOptions = BulkUpdateSectionOptions; const restaurantsMenusV1Section_universal_d_deleteSection: typeof deleteSection; const restaurantsMenusV1Section_universal_d_bulkDeleteSections: typeof bulkDeleteSections; const restaurantsMenusV1Section_universal_d_cloneSections: typeof cloneSections; namespace restaurantsMenusV1Section_universal_d { export { restaurantsMenusV1Section_universal_d_Section as Section, ExtendedFields$8 as ExtendedFields, InvalidateCache$8 as InvalidateCache, InvalidateCacheGetByOneOf$8 as InvalidateCacheGetByOneOf, App$8 as App, Page$8 as Page, URI$8 as URI, File$8 as File, restaurantsMenusV1Section_universal_d_CreateSectionRequest as CreateSectionRequest, restaurantsMenusV1Section_universal_d_CreateSectionResponse as CreateSectionResponse, restaurantsMenusV1Section_universal_d_BulkCreateSectionsRequest as BulkCreateSectionsRequest, restaurantsMenusV1Section_universal_d_BulkCreateSectionsResponse as BulkCreateSectionsResponse, restaurantsMenusV1Section_universal_d_BulkCreateSectionResult as BulkCreateSectionResult, ItemMetadata$8 as ItemMetadata, ApplicationError$8 as ApplicationError, BulkActionMetadata$8 as BulkActionMetadata, restaurantsMenusV1Section_universal_d_GetSectionRequest as GetSectionRequest, restaurantsMenusV1Section_universal_d_GetSectionResponse as GetSectionResponse, restaurantsMenusV1Section_universal_d_ListSectionsRequest as ListSectionsRequest, CursorPaging$9 as CursorPaging, restaurantsMenusV1Section_universal_d_ListSectionsResponse as ListSectionsResponse, CursorPagingMetadata$9 as CursorPagingMetadata, Cursors$9 as Cursors, restaurantsMenusV1Section_universal_d_QuerySectionsRequest as QuerySectionsRequest, CursorQuery$a as CursorQuery, CursorQueryPagingMethodOneOf$a as CursorQueryPagingMethodOneOf, Sorting$a as Sorting, SortOrder$a as SortOrder, restaurantsMenusV1Section_universal_d_QuerySectionsResponse as QuerySectionsResponse, restaurantsMenusV1Section_universal_d_UpdateSectionRequest as UpdateSectionRequest, restaurantsMenusV1Section_universal_d_UpdateSectionResponse as UpdateSectionResponse, restaurantsMenusV1Section_universal_d_BulkUpdateSectionRequest as BulkUpdateSectionRequest, restaurantsMenusV1Section_universal_d_MaskedSection as MaskedSection, restaurantsMenusV1Section_universal_d_BulkUpdateSectionResponse as BulkUpdateSectionResponse, restaurantsMenusV1Section_universal_d_BulkSectionResult as BulkSectionResult, restaurantsMenusV1Section_universal_d_DeleteSectionRequest as DeleteSectionRequest, restaurantsMenusV1Section_universal_d_DeleteSectionResponse as DeleteSectionResponse, restaurantsMenusV1Section_universal_d_BulkDeleteSectionsRequest as BulkDeleteSectionsRequest, restaurantsMenusV1Section_universal_d_BulkDeleteSectionsResponse as BulkDeleteSectionsResponse, restaurantsMenusV1Section_universal_d_BulkDeleteSectionResult as BulkDeleteSectionResult, restaurantsMenusV1Section_universal_d_CloneSectionsRequest as CloneSectionsRequest, restaurantsMenusV1Section_universal_d_CloneSectionsResponse as CloneSectionsResponse, DomainEvent$b as DomainEvent, DomainEventBodyOneOf$b as DomainEventBodyOneOf, EntityCreatedEvent$b as EntityCreatedEvent, RestoreInfo$b as RestoreInfo, EntityUpdatedEvent$b as EntityUpdatedEvent, EntityDeletedEvent$b as EntityDeletedEvent, ActionEvent$b as ActionEvent, Empty$a as Empty, MessageEnvelope$b as MessageEnvelope, IdentificationData$b as IdentificationData, IdentificationDataIdOneOf$b as IdentificationDataIdOneOf, WebhookIdentityType$b as WebhookIdentityType, restaurantsMenusV1Section_universal_d_createSection as createSection, restaurantsMenusV1Section_universal_d_bulkCreateSections as bulkCreateSections, restaurantsMenusV1Section_universal_d_BulkCreateSectionsOptions as BulkCreateSectionsOptions, restaurantsMenusV1Section_universal_d_getSection as getSection, restaurantsMenusV1Section_universal_d_listSections as listSections, restaurantsMenusV1Section_universal_d_ListSectionsOptions as ListSectionsOptions, restaurantsMenusV1Section_universal_d_querySections as querySections, restaurantsMenusV1Section_universal_d_SectionsQueryResult as SectionsQueryResult, restaurantsMenusV1Section_universal_d_SectionsQueryBuilder as SectionsQueryBuilder, restaurantsMenusV1Section_universal_d_updateSection as updateSection, restaurantsMenusV1Section_universal_d_UpdateSection as UpdateSection, restaurantsMenusV1Section_universal_d_UpdateSectionOptions as UpdateSectionOptions, restaurantsMenusV1Section_universal_d_bulkUpdateSection as bulkUpdateSection, restaurantsMenusV1Section_universal_d_BulkUpdateSectionOptions as BulkUpdateSectionOptions, restaurantsMenusV1Section_universal_d_deleteSection as deleteSection, restaurantsMenusV1Section_universal_d_bulkDeleteSections as bulkDeleteSections, restaurantsMenusV1Section_universal_d_cloneSections as cloneSections, }; } interface MenuOrderingSettings { /** * Menu ordering settings object ID. * @readonly */ _id?: string | null; /** * Revision number. Increments by 1 each time the menu ordering settings object is updated. To prevent conflicting changes, the existing revision must be specified when updating a menu ordering settings object. * @readonly */ revision?: string | null; /** * Date and time the menu ordering settings object was created in [ISO-8601](https://en.wikipedia.org/wiki/ISO_8601#combined_date_and_time_representations) format. * @readonly */ _createdDate?: Date | null; /** * Date and time the menu ordering settings object was last updated in [ISO-8601](https://en.wikipedia.org/wiki/ISO_8601#combined_date_and_time_representations) format. * @readonly */ _updatedDate?: Date | null; /** ID of the restaurant operation the menu belongs to. (See the Restaurants Operations API for more information.) */ operationId?: string | null; /** * ID of the menu these settings apply to. * @readonly */ menuId?: string | null; /** Whether online ordering is enabled for the menu. */ onlineOrderingEnabled?: boolean | null; /** Menu availability settings. */ availability?: Availability$1; /** * Location ID associated with the menu. * @internal * @readonly */ locationId?: string | null; /** Extended fields. */ extendedFields?: ExtendedFields$7; } interface Availability$1 extends AvailabilityAvailabilityTypeOptionsOneOf { /** Settings for availability on a weekly schedule. */ weeklyScheduleOptions?: WeeklyScheduleOptions; /** Settings for availability within a time range. */ timestampRangesOptions?: TimestampRangesOptions; /** Availability type. */ type?: AvailabilityType; /** * Time zone in [Time Zone Database](https://www.iana.org/time-zones) format. * @readonly */ timeZone?: string | null; } /** @oneof */ interface AvailabilityAvailabilityTypeOptionsOneOf { /** Settings for availability on a weekly schedule. */ weeklyScheduleOptions?: WeeklyScheduleOptions; /** Settings for availability within a time range. */ timestampRangesOptions?: TimestampRangesOptions; } enum AvailabilityType { /** Missing type due to an error. */ UNSPECIFIED_AVAILABILITY_OPTION = "UNSPECIFIED_AVAILABILITY_OPTION", /** Available all the time. */ ALWAYS_AVAILABLE = "ALWAYS_AVAILABLE", /** Available on specific days and times throughout the week. */ WEEKLY_SCHEDULE = "WEEKLY_SCHEDULE", /** Available during a specific time range. */ TIMESTAMP_RANGES = "TIMESTAMP_RANGES" } interface WeeklyScheduleOptions { /** List of available time ranges for specific days of the week. */ availableTimes?: DayOfWeekAvailability$2[]; } interface DayOfWeekAvailability$2 { /** The day of week this availability relates to. */ dayOfWeek?: EntitiesDayOfWeek$2; /** A list of time ranges during which the fulfillment should be available. */ timeRanges?: TimeOfDayRange$2[]; } enum EntitiesDayOfWeek$2 { /** Monday. */ MON = "MON", /** Tuesday. */ TUE = "TUE", /** Wednesday. */ WED = "WED", /** Thursday. */ THU = "THU", /** Friday. */ FRI = "FRI", /** Saturday. */ SAT = "SAT", /** Sunday. */ SUN = "SUN" } interface TimeOfDayRange$2 { /** The start time in time of day representation. */ startTime?: TimeOfDay$2; /** The end time in time of day representation. */ endTime?: TimeOfDay$2; } interface TimeOfDay$2 { /** * Hours.
* Min: `0`.
* Max: `23`. */ hours?: number; /** * Minutes.
* Min: `0`.
* Max: `23`. */ minutes?: number; } interface TimestampRangesOptions { /** List of available time ranges. */ ranges?: AvailableRange[]; } interface AvailableRange { /** The start time of the availability in [ISO-8601](https://en.wikipedia.org/wiki/ISO_8601#combined_date_and_time_representations) format. */ startTime?: Date | null; /** The end time of the availability in [ISO-8601](https://en.wikipedia.org/wiki/ISO_8601#combined_date_and_time_representations) format. */ endTime?: Date | null; } interface ExtendedFields$7 { /** * Extended field data. Each key corresponds to the namespace of the app that created the extended fields. * The value of each key is structured according to the schema defined when the extended fields were configured. * * You can only access fields for which you have the appropriate permissions. * * Learn more about [extended fields](https://dev.wix.com/docs/rest/articles/getting-started/extended-fields). */ namespaces?: Record>; } interface InvalidateCache$7 extends InvalidateCacheGetByOneOf$7 { /** Invalidate by msId. NOT recommended, as this will invalidate the entire site cache! */ metaSiteId?: string; /** Invalidate by Site ID. NOT recommended, as this will invalidate the entire site cache! */ siteId?: string; /** Invalidate by App */ app?: App$7; /** Invalidate by page id */ page?: Page$7; /** Invalidate by URI path */ uri?: URI$7; /** Invalidate by file (for media files such as PDFs) */ file?: File$7; /** tell us why you're invalidating the cache. You don't need to add your app name */ reason?: string | null; /** Is local DS */ localDc?: boolean; hardPurge?: boolean; } /** @oneof */ interface InvalidateCacheGetByOneOf$7 { /** Invalidate by msId. NOT recommended, as this will invalidate the entire site cache! */ metaSiteId?: string; /** Invalidate by Site ID. NOT recommended, as this will invalidate the entire site cache! */ siteId?: string; /** Invalidate by App */ app?: App$7; /** Invalidate by page id */ page?: Page$7; /** Invalidate by URI path */ uri?: URI$7; /** Invalidate by file (for media files such as PDFs) */ file?: File$7; } interface App$7 { /** The AppDefId */ appDefId?: string; /** The instance Id */ instanceId?: string; } interface Page$7 { /** the msid the page is on */ metaSiteId?: string; /** Invalidate by Page ID */ pageId?: string; } interface URI$7 { /** the msid the URI is on */ metaSiteId?: string; /** URI path to invalidate (e.g. page/my/path) - without leading/trailing slashes */ uriPath?: string; } interface File$7 { /** the msid the file is related to */ metaSiteId?: string; /** Invalidate by filename (for media files such as PDFs) */ fileName?: string; } interface CreateMenuOrderingSettingsRequest { /** Menu ordering settings entity details. */ menuOrderingSettings: MenuOrderingSettings; } interface CreateMenuOrderingSettingsResponse { /** The created menu ordering settings entity. */ menuOrderingSettings?: MenuOrderingSettings; } interface GetMenuOrderingSettingsRequest { /** ID of the menu ordering settings entity to retrieve. */ menuOrderingSettingsId: string; } interface GetMenuOrderingSettingsResponse { /** The requested menu ordering settings entity. */ menuOrderingSettings?: MenuOrderingSettings; } interface UpsertMenuOrderingSettingsByMenuIdRequest { /** Details of the menu ordering settings entity to be created or updated. */ menuOrderingSettings: MenuOrderingSettings; /** * Set of fields to update. * Fields that aren't included in `fieldMask.paths` are ignored. * @internal */ fieldMask?: string[]; } interface UpsertMenuOrderingSettingsByMenuIdResponse { /** The created or updated menu ordering settings entity. */ menuOrderingSettings?: MenuOrderingSettings; } interface UpdateMenuOrderingSettingsRequest { /** Details of the menu ordering settings entity to update. */ menuOrderingSettings: MenuOrderingSettings; /** * Set of fields to update. * Fields that aren't included in `fieldMask.paths` are ignored. * @internal */ fieldMask?: string[]; } interface UpdateMenuOrderingSettingsResponse { /** Updated menu ordering settings entity. */ menuOrderingSettings?: MenuOrderingSettings; } interface DeleteMenuOrderingSettingsRequest { /** ID of the menu ordering settings entity to delete. */ menuOrderingSettingsId: string; } interface DeleteMenuOrderingSettingsResponse { } interface QueryMenuOrderingSettingsRequest { /** WQL expression. */ query?: CursorQuery$9; } interface CursorQuery$9 extends CursorQueryPagingMethodOneOf$9 { /** 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`. */ cursorPaging?: CursorPaging$8; /** * Filter object in the following format: * `"filter" : { * "fieldName1": "value1", * "fieldName2":{"$operator":"value2"} * }` * Example of operators: `$eq`, `$ne`, `$lt`, `$lte`, `$gt`, `$gte`, `$in`, `$hasSome`, `$hasAll`, `$startsWith`, `$contains` */ filter?: Record | null; /** * Sort object in the following format: * `[{"fieldName":"sortField1","order":"ASC"},{"fieldName":"sortField2","order":"DESC"}]` */ sort?: Sorting$9[]; } /** @oneof */ interface CursorQueryPagingMethodOneOf$9 { /** 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`. */ cursorPaging?: CursorPaging$8; } interface Sorting$9 { /** Name of the field to sort by. */ fieldName?: string; /** Sort order. */ order?: SortOrder$9; } enum SortOrder$9 { ASC = "ASC", DESC = "DESC" } interface CursorPaging$8 { /** Maximum number of items to return in the results. */ limit?: number | null; /** * Pointer to the next or previous page in the list of results. * * Pass the relevant cursor token from the `pagingMetadata` object in the previous call's response. * Not relevant for the first request. */ cursor?: string | null; } interface QueryMenuOrderingSettingsResponse { /** List of menu ordering settings entities. */ menuOrderingSettings?: MenuOrderingSettings[]; /** Paging metadata */ pagingMetadata?: CursorPagingMetadata$8; } interface CursorPagingMetadata$8 { /** Number of items returned in the response. */ count?: number | null; /** Cursor strings that point to the next page, previous page, or both. */ cursors?: Cursors$8; /** * Whether there are more pages to retrieve following the current page. * * + `true`: Another page of results can be retrieved. * + `false`: This is the last page. */ hasNext?: boolean | null; } interface Cursors$8 { /** Cursor string pointing to the next page in the list of results. */ next?: string | null; /** Cursor pointing to the previous page in the list of results. */ prev?: string | null; } interface BulkUpdateMenuOrderingSettingsRequest { /** Menu ordering settings entities to update. */ menusOrderingSettings: MaskedMenuOrderingSettings[]; /** Whether to receive the entity in the response. */ returnEntity?: boolean; } interface MaskedMenuOrderingSettings { /** Menu ordering settings entities to update. */ menuOrderingSettings?: MenuOrderingSettings; /** * Explicit list of fields to update. * @internal */ mask?: string[]; } interface BulkUpdateMenuOrderingSettingsResponse { /** Results of bulk menu ordering settings entities update. */ results?: BulkMenuOrderingSettingsResult[]; /** Metadata for the API call. */ bulkActionMetadata?: BulkActionMetadata$7; } interface ItemMetadata$7 { /** Item ID. Should always be available, unless it's impossible (for example, when failing to create an item). */ _id?: string | null; /** Index of the item within the request array. Allows for correlation between request and response items. */ originalIndex?: number; /** Whether the requested action was successful for this item. When `false`, the `error` field is populated. */ success?: boolean; /** Details about the error in case of failure. */ error?: ApplicationError$7; } interface ApplicationError$7 { /** Error code. */ code?: string; /** Description of the error. */ description?: string; /** Data related to the error. */ data?: Record | null; } interface BulkMenuOrderingSettingsResult { /** Metadata for menu update. */ menuOrderingSettingsMetadata?: ItemMetadata$7; /** Updated menu ordering settings. Only returned if `returnEntity` is set to `true`. */ menuOrderingSettings?: MenuOrderingSettings; } interface BulkActionMetadata$7 { /** Number of items that were successfully processed. */ totalSuccesses?: number; /** Number of items that couldn't be processed. */ totalFailures?: number; /** Number of failures without details because detailed failure threshold was exceeded. */ undetailedFailures?: number; } interface ListMenusAvailabilityStatusRequest { /** The time slot for which to check the availability of menus. */ timeSlot: TimeSlot; /** The ID of the restaurant operation whose menus will be checked. (See the Restaurants Operations API for more information.) */ operationId?: string | null; /** Cursor paging */ cursorPaging?: CursorPaging$8; } interface TimeSlot { /** The start time of the time slot in [ISO-8601](https://en.wikipedia.org/wiki/ISO_8601#combined_date_and_time_representations) format. */ startTime?: Date | null; /** The end time of the time slot in [ISO-8601](https://en.wikipedia.org/wiki/ISO_8601#combined_date_and_time_representations) format. */ endTime?: Date | null; } interface ListMenusAvailabilityStatusResponse { /** The retrieved menus' availability statuses. */ menusAvailabilityStatus?: MenuAvailabilityStatus[]; /** The metadata of the paginated results. */ pagingMetadata?: CursorPagingMetadata$8; } interface MenuAvailabilityStatus { /** Menu ID. */ menuId?: string; /** The menu's availability status. */ availabilityStatus?: AvailabilityStatus; } enum AvailabilityStatus { /** Unknown availability status. */ UNKNOWN_AVAILABILITY_STATUS = "UNKNOWN_AVAILABILITY_STATUS", /** Available. */ AVAILABLE = "AVAILABLE", /** Unavailable. */ UNAVAILABLE = "UNAVAILABLE" } interface UpdateExtendedFieldsRequest$1 { /** ID of the entity to update. */ _id: string; /** Identifier for the app whose extended fields are being updated. */ namespace: string; /** Data to update. Structured according to the [schema](https://dev.wix.com/docs/rest/articles/getting-started/extended-fields#json-schema-for-extended-fields) defined when the extended fields were configured. */ namespaceData: Record | null; } interface UpdateExtendedFieldsResponse$1 { /** The updated menu ordering settings entity. */ menuOrderingSettings?: MenuOrderingSettings; } interface DomainEvent$a extends DomainEventBodyOneOf$a { createdEvent?: EntityCreatedEvent$a; updatedEvent?: EntityUpdatedEvent$a; deletedEvent?: EntityDeletedEvent$a; actionEvent?: ActionEvent$a; /** * Unique event ID. * Allows clients to ignore duplicate webhooks. */ _id?: string; /** * Assumes actions are also always typed to an entity_type * Example: wix.stores.catalog.product, wix.bookings.session, wix.payments.transaction */ entityFqdn?: string; /** * This is top level to ease client code dispatching of messages (switch on entity_fqdn+slug) * This is although the created/updated/deleted notion is duplication of the oneof types * Example: created/updated/deleted/started/completed/email_opened */ slug?: string; /** ID of the entity associated with the event. */ entityId?: string; /** Event timestamp in [ISO-8601](https://en.wikipedia.org/wiki/ISO_8601) format and UTC time. For example: 2020-04-26T13:57:50.699Z */ eventTime?: Date | null; /** * Whether the event was triggered as a result of a privacy regulation application * (for example, GDPR). */ triggeredByAnonymizeRequest?: boolean | null; /** If present, indicates the action that triggered the event. */ originatedFrom?: string | null; /** * A sequence number defining the order of updates to the underlying entity. * For example, given that some entity was updated at 16:00 and than again at 16:01, * it is guaranteed that the sequence number of the second update is strictly higher than the first. * As the consumer, you can use this value to ensure that you handle messages in the correct order. * To do so, you will need to persist this number on your end, and compare the sequence number from the * message against the one you have stored. Given that the stored number is higher, you should ignore the message. */ entityEventSequence?: string | null; } /** @oneof */ interface DomainEventBodyOneOf$a { createdEvent?: EntityCreatedEvent$a; updatedEvent?: EntityUpdatedEvent$a; deletedEvent?: EntityDeletedEvent$a; actionEvent?: ActionEvent$a; } interface EntityCreatedEvent$a { entityAsJson?: string; /** * Indicates the event was triggered by a restore-from-trashbin operation for a previously deleted entity * @internal */ triggeredByUndelete?: boolean | null; /** Indicates the event was triggered by a restore-from-trashbin operation for a previously deleted entity */ restoreInfo?: RestoreInfo$a; /** * WIP * @internal */ additionalMetadataAsJson?: string | null; } interface RestoreInfo$a { deletedDate?: Date | null; } interface EntityUpdatedEvent$a { /** * Since platformized APIs only expose PATCH and not PUT we can't assume that the fields sent from the client are the actual diff. * This means that to generate a list of changed fields (as opposed to sent fields) one needs to traverse both objects. * We don't want to impose this on all developers and so we leave this traversal to the notification recipients which need it. */ currentEntityAsJson?: string; /** * This field is currently part of the of the EntityUpdatedEvent msg, but scala/node libraries which implements the domain events standard * wont populate it / have any reference to it in the API. * The main reason for it is that fetching the old entity from the DB will have a performance hit on an update operation so unless truly needed, * the developer should send only the new (current) entity. * An additional reason is not wanting to send this additional entity over the wire (kafka) since in some cases it can be really big * Developers that must reflect the old entity will have to implement their own domain event sender mechanism which will follow the DomainEvent proto message. * @internal * @deprecated */ previousEntityAsJson?: string | null; /** * WIP - This property will hold both names and previous values of the updated fields of the entity. * For more details please see [adr](https://docs.google.com/document/d/1PdqsOM20Ph2HAkmx8zvUnzzk3Sekp3BR9h34wSvsRnI/edit#heading=h.phlw87mh2imx) or [issue](https://github.com/wix-private/nile-tracker/issues/363) * @internal */ modifiedFields?: Record; /** * WIP * @internal */ additionalMetadataAsJson?: string | null; } interface EntityDeletedEvent$a { /** * Indicates if the entity is sent to trash-bin. only available when trash-bin is enabled * @internal */ movedToTrash?: boolean | null; /** Entity that was deleted */ deletedEntityAsJson?: string | null; /** * WIP * @internal */ additionalMetadataAsJson?: string | null; } interface ActionEvent$a { bodyAsJson?: string; } interface Empty$9 { } interface GetRestaurantsAppClonesStatusRequest { } interface GetRestaurantsAppClonesStatusResponse { /** The requested menu ordering settings entity. */ retaurantsAppCloneStatus?: RestaurantsAppCloneStatus; } /** The status of the data cloning process of the Restaurants Apps. */ interface RestaurantsAppCloneStatus { /** * Whether the cloning of the orders was completed. * @readonly */ ordersCloningCompleted?: boolean; /** * Whether the cloning of the menus was completed. * @readonly */ menusCloningCompleted?: boolean; } /** Encapsulates all details written to the Greyhound topic when a site's properties are updated. */ interface SitePropertiesNotification$3 { /** The site ID for which this update notification applies. */ metasiteId?: string; /** The actual update event. */ event?: SitePropertiesEvent$3; /** A convenience set of mappings from the MetaSite ID to its constituent services. */ translations?: Translation$3[]; /** Context of the notification */ changeContext?: ChangeContext$3; } /** The actual update event for a particular notification. */ interface SitePropertiesEvent$3 { /** Version of the site's properties represented by this update. */ version?: number; /** * Set of properties that were updated - corresponds to the fields in "properties". * @internal */ fields?: string[]; /** Updated properties. */ properties?: Properties$3; } interface Properties$3 { /** Site categories. */ categories?: Categories$3; /** Site locale. */ locale?: Locale$4; /** * Site language. * * Two-letter language code in [ISO 639-1 alpha-2](https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes) format. */ language?: string | null; /** * Site currency format used to bill customers. * * Three-letter currency code in [ISO-4217 alphabetic](https://en.wikipedia.org/wiki/ISO_4217#Active_codes) format. */ paymentCurrency?: string | null; /** Timezone in `America/New_York` format. */ timeZone?: string | null; /** Email address. */ email?: string | null; /** Phone number. */ phone?: string | null; /** Fax number. */ fax?: string | null; /** Address. */ address?: Address$3; /** Site display name. */ siteDisplayName?: string | null; /** Business name. */ businessName?: string | null; /** Path to the site's logo in Wix Media (without Wix Media base URL). */ logo?: string | null; /** Site description. */ description?: string | null; /** * Business schedule. Regular and exceptional time periods when the business is open or the service is available. * * __Note:__ Not supported by Wix Bookings. */ businessSchedule?: BusinessSchedule$3; /** Supported languages of a site and the primary language. */ multilingual?: Multilingual$3; /** Cookie policy the Wix user defined for their site (before the site visitor interacts with/limits it). */ consentPolicy?: ConsentPolicy$3; /** * Supported values: `FITNESS SERVICE`, `RESTAURANT`, `BLOG`, `STORE`, `EVENT`, `UNKNOWN`. * * Site business type. */ businessConfig?: string | null; /** External site URL that uses Wix as its headless business solution. */ externalSiteUrl?: string | null; /** Track clicks analytics. */ trackClicksAnalytics?: boolean; } interface Categories$3 { /** Primary site category. */ primary?: string; /** Secondary site category. */ secondary?: string[]; /** Business Term Id */ businessTermId?: string | null; } interface Locale$4 { /** Two-letter language code in [ISO 639-1 alpha-2](https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes) format. */ languageCode?: string; /** Two-letter country code in [ISO-3166 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2#Officially_assigned_code_elements) format. */ country?: string; } interface Address$3 { /** Street name. */ street?: string; /** City name. */ city?: string; /** Two-letter country code in an [ISO-3166 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) format. */ country?: string; /** State. */ state?: string; /** Zip or postal code. */ zip?: string; /** Extra information to be displayed in the address. */ hint?: AddressHint$3; /** Whether this address represents a physical location. */ isPhysical?: boolean; /** Google-formatted version of this address. */ googleFormattedAddress?: string; /** Street number. */ streetNumber?: string; /** Apartment number. */ apartmentNumber?: string; /** Geographic coordinates of location. */ coordinates?: GeoCoordinates$3; } /** * Extra information on displayed addresses. * This is used for display purposes. Used to add additional data about the address, such as "In the passage". * Free text. In addition, the user can state where to display the additional description - before, after, or instead of the address string. */ interface AddressHint$3 { /** Extra text displayed next to, or instead of, the actual address. */ text?: string; /** Where the extra text should be displayed. */ placement?: PlacementType$3; } /** Where the extra text should be displayed: before, after or instead of the actual address. */ enum PlacementType$3 { BEFORE = "BEFORE", AFTER = "AFTER", REPLACE = "REPLACE" } /** Geocoordinates for a particular address. */ interface GeoCoordinates$3 { /** Latitude of the location. Must be between -90 and 90. */ latitude?: number; /** Longitude of the location. Must be between -180 and 180. */ longitude?: number; } /** Business schedule. Regular and exceptional time periods when the business is open or the service is available. */ interface BusinessSchedule$3 { /** Weekly recurring time periods when the business is regularly open or the service is available. Limited to 100 time periods. */ periods?: TimePeriod$3[]; /** Exceptions to the business's regular hours. The business can be open or closed during the exception. */ specialHourPeriod?: SpecialHourPeriod$3[]; } /** Weekly recurring time periods when the business is regularly open or the service is available. */ interface TimePeriod$3 { /** Day of the week the period starts on. */ openDay?: DayOfWeek$3; /** * 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 * midnight at the end of the specified day. */ openTime?: string; /** Day of the week the period ends on. */ closeDay?: DayOfWeek$3; /** * 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 * midnight at the end of the specified day. * * __Note:__ If `openDay` and `closeDay` specify the same day of the week `closeTime` must be later than `openTime`. */ closeTime?: string; } /** Enumerates the days of the week. */ enum DayOfWeek$3 { MONDAY = "MONDAY", TUESDAY = "TUESDAY", WEDNESDAY = "WEDNESDAY", THURSDAY = "THURSDAY", FRIDAY = "FRIDAY", SATURDAY = "SATURDAY", SUNDAY = "SUNDAY" } /** Exception to the business's regular hours. The business can be open or closed during the exception. */ interface SpecialHourPeriod$3 { /** 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). */ startDate?: string; /** 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). */ endDate?: string; /** * Whether the business is closed (or the service is not available) during the exception. * * Default: `true`. */ isClosed?: boolean; /** Additional info about the exception. For example, "We close earlier on New Year's Eve." */ comment?: string; } interface Multilingual$3 { /** Supported languages list. */ supportedLanguages?: SupportedLanguage$3[]; /** Whether to redirect to user language. */ autoRedirect?: boolean; } interface SupportedLanguage$3 { /** Two-letter language code in [ISO 639-1 alpha-2](https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes) format. */ languageCode?: string; /** Locale. */ locale?: Locale$4; /** Whether the supported language is the primary language for the site. */ isPrimary?: boolean; /** Language icon. */ countryCode?: string; /** How the language will be resolved. For internal use. */ resolutionMethod?: ResolutionMethod$3; } enum ResolutionMethod$3 { QUERY_PARAM = "QUERY_PARAM", SUBDOMAIN = "SUBDOMAIN", SUBDIRECTORY = "SUBDIRECTORY" } interface ConsentPolicy$3 { /** Whether the site uses cookies that are essential to site operation. */ essential?: boolean | null; /** Whether the site uses cookies that affect site performance and other functional measurements. */ functional?: boolean | null; /** Whether the site uses cookies that collect analytics about how the site is used (in order to improve it). */ analytics?: boolean | null; /** Whether the site uses cookies that collect information allowing better customization of the experience for a current visitor. */ advertising?: boolean | null; /** CCPA compliance flag. */ dataToThirdParty?: boolean | null; } /** A single mapping from the MetaSite ID to a particular service. */ interface Translation$3 { /** The service type. */ serviceType?: string; /** The application definition ID; this only applies to services of type ThirdPartyApps. */ appDefId?: string; /** The instance ID of the service. */ instanceId?: string; } interface ChangeContext$3 extends ChangeContextPayloadOneOf$3 { /** Properties were updated. */ propertiesChange?: PropertiesChange$3; /** Default properties were created on site creation. */ siteCreated?: SiteCreated$3; /** Properties were cloned on site cloning. */ siteCloned?: SiteCloned$3; } /** @oneof */ interface ChangeContextPayloadOneOf$3 { /** Properties were updated. */ propertiesChange?: PropertiesChange$3; /** Default properties were created on site creation. */ siteCreated?: SiteCreated$3; /** Properties were cloned on site cloning. */ siteCloned?: SiteCloned$3; } interface PropertiesChange$3 { } interface SiteCreated$3 { /** Origin template site id. */ originTemplateId?: string | null; } interface SiteCloned$3 { /** Origin site id. */ originMetaSiteId?: string; } interface OperationsDataCloningCompleted$1 { } interface MenusDataCloningCompleted$1 { } interface MessageEnvelope$a { /** App instance ID. */ instanceId?: string | null; /** Event type. */ eventType?: string; /** The identification type and identity data. */ identity?: IdentificationData$a; /** Stringify payload. */ data?: string; } interface IdentificationData$a extends IdentificationDataIdOneOf$a { /** ID of a site visitor that has not logged in to the site. */ anonymousVisitorId?: string; /** ID of a site visitor that has logged in to the site. */ memberId?: string; /** ID of a Wix user (site owner, contributor, etc.). */ wixUserId?: string; /** ID of an app. */ appId?: string; /** @readonly */ identityType?: WebhookIdentityType$a; } /** @oneof */ interface IdentificationDataIdOneOf$a { /** ID of a site visitor that has not logged in to the site. */ anonymousVisitorId?: string; /** ID of a site visitor that has logged in to the site. */ memberId?: string; /** ID of a Wix user (site owner, contributor, etc.). */ wixUserId?: string; /** ID of an app. */ appId?: string; } enum WebhookIdentityType$a { UNKNOWN = "UNKNOWN", ANONYMOUS_VISITOR = "ANONYMOUS_VISITOR", MEMBER = "MEMBER", WIX_USER = "WIX_USER", APP = "APP" } /** * Creates a menu ordering settings entity. * @param menuOrderingSettings - Menu ordering settings entity details. * @internal * @documentationMaturity preview * @requiredField menuOrderingSettings * @requiredField menuOrderingSettings.menuId * @permissionId RESTAURANTS.MENU_ORDERING_SETTINGS_CREATE * @adminMethod * @returns The created menu ordering settings entity. */ function createMenuOrderingSettings(menuOrderingSettings: MenuOrderingSettings): Promise; /** * Retrieves a menu ordering settings entity. * @param menuOrderingSettingsId - ID of the menu ordering settings entity to retrieve. * @public * @documentationMaturity preview * @requiredField menuOrderingSettingsId * @permissionId RESTAURANTS.MENU_ORDERING_SETTINGS_READ * @returns The requested menu ordering settings entity. */ function getMenuOrderingSettings(menuOrderingSettingsId: string): Promise; /** * Upserts a menu ordering settings entity for a given `menuId`. * Try to create a menu ordering settings, in case it already exists - update the menu ordering settings * @param menuId - ID of the menu these settings apply to. * @public * @documentationMaturity preview * @requiredField menuId * @requiredField menuOrderingSettings * @permissionId RESTAURANTS.MENU_ORDERING_SETTINGS_UPSERT * @adminMethod */ function upsertMenuOrderingSettingsByMenuId(menuId: string | null, menuOrderingSettings: UpsertMenuOrderingSettingsByMenuIdMenuOrderingSettings, options?: UpsertMenuOrderingSettingsByMenuIdOptions): Promise; interface UpsertMenuOrderingSettingsByMenuIdMenuOrderingSettings { /** * Menu ordering settings object ID. * @readonly */ _id?: string | null; /** * Revision number. Increments by 1 each time the menu ordering settings object is updated. To prevent conflicting changes, the existing revision must be specified when updating a menu ordering settings object. * @readonly */ revision?: string | null; /** * Date and time the menu ordering settings object was created in [ISO-8601](https://en.wikipedia.org/wiki/ISO_8601#combined_date_and_time_representations) format. * @readonly */ _createdDate?: Date | null; /** * Date and time the menu ordering settings object was last updated in [ISO-8601](https://en.wikipedia.org/wiki/ISO_8601#combined_date_and_time_representations) format. * @readonly */ _updatedDate?: Date | null; /** ID of the restaurant operation the menu belongs to. (See the Restaurants Operations API for more information.) */ operationId?: string | null; /** Whether online ordering is enabled for the menu. */ onlineOrderingEnabled?: boolean | null; /** Menu availability settings. */ availability?: Availability$1; /** * Location ID associated with the menu. * @internal * @readonly */ locationId?: string | null; /** Extended fields. */ extendedFields?: ExtendedFields$7; } interface UpsertMenuOrderingSettingsByMenuIdOptions { /** * Set of fields to update. * Fields that aren't included in `fieldMask.paths` are ignored. * @internal */ fieldMask?: string[]; } /** * Updates a menu ordering settings entity. * * Each time the menu ordering settings entity is updated, `revision` increments by 1. The current `revision` must be specified when updating the menu ordering settings entity. * This ensures you're working with the latest entity and prevents unintended overwrites. * @param _id - Menu ordering settings object ID. * @public * @documentationMaturity preview * @requiredField _id * @requiredField menuOrderingSettings * @requiredField menuOrderingSettings.revision * @permissionId RESTAURANTS.MENU_ORDERING_SETTINGS_UPDATE * @adminMethod * @returns Updated menu ordering settings entity. */ function updateMenuOrderingSettings(_id: string | null, menuOrderingSettings: UpdateMenuOrderingSettings, options?: UpdateMenuOrderingSettingsOptions): Promise; interface UpdateMenuOrderingSettings { /** * Menu ordering settings object ID. * @readonly */ _id?: string | null; /** * Revision number. Increments by 1 each time the menu ordering settings object is updated. To prevent conflicting changes, the existing revision must be specified when updating a menu ordering settings object. * @readonly */ revision?: string | null; /** * Date and time the menu ordering settings object was created in [ISO-8601](https://en.wikipedia.org/wiki/ISO_8601#combined_date_and_time_representations) format. * @readonly */ _createdDate?: Date | null; /** * Date and time the menu ordering settings object was last updated in [ISO-8601](https://en.wikipedia.org/wiki/ISO_8601#combined_date_and_time_representations) format. * @readonly */ _updatedDate?: Date | null; /** ID of the restaurant operation the menu belongs to. (See the Restaurants Operations API for more information.) */ operationId?: string | null; /** * ID of the menu these settings apply to. * @readonly */ menuId?: string | null; /** Whether online ordering is enabled for the menu. */ onlineOrderingEnabled?: boolean | null; /** Menu availability settings. */ availability?: Availability$1; /** * Location ID associated with the menu. * @internal * @readonly */ locationId?: string | null; /** Extended fields. */ extendedFields?: ExtendedFields$7; } interface UpdateMenuOrderingSettingsOptions { /** * Set of fields to update. * Fields that aren't included in `fieldMask.paths` are ignored. * @internal */ fieldMask?: string[]; } /** * Deletes a menu ordering settings entity. * Deleting an entity permanently removes it from the menu ordering settings list. * @param menuOrderingSettingsId - ID of the menu ordering settings entity to delete. * @internal * @documentationMaturity preview * @requiredField menuOrderingSettingsId * @permissionId RESTAURANTS.MENU_ORDERING_SETTINGS_DELETE * @adminMethod */ function deleteMenuOrderingSettings(menuOrderingSettingsId: string): Promise; /** * Creates a query to retrieve a list of menu ordering settings objects. * * The `queryMenuOrderingSettings()` function builds a query to retrieve a list of menu ordering settings objects and returns an `MenuOrderingSettingsQueryBuilder` object. * * The returned object contains the query definition, which is used to run the query using the [`find()`](/menu-ordering-settings/menu-ordering-settings-query-builder/find) function. * * You can refine the query by chaining `MenuOrderingSettingsQueryBuilder` functions onto the query. `MenuOrderingSettingsQueryBuilder` functions enable you to filter, sort, and control the results that `queryMenuOrderingSettings()` returns. * * `queryMenuOrderingSettings()` runs with the following `MenuOrderingSettingsQueryBuilder` defaults, which you can override: * * - [`limit(50)`](/menu-ordering-settings/menu-ordering-settings-query-builder/limit) * - [ascending('_id')](/menu-ordering-settings/menu-ordering-settings-query-builder/ascending) * * The following `MenuOrderingSettingsQueryBuilder` functions are supported for `queryMenuOrderingSettings()`. For a full description of the menu ordering settings object, see the object returned for the [`items`](/menu-ordering-settings/menu-ordering-settings-query-result/items) property in `MenuOrderingSettingsQueryResult`. * @public * @documentationMaturity preview * @permissionId RESTAURANTS.MENU_ORDERING_SETTINGS_READ */ function queryMenuOrderingSettings(): MenuOrderingSettingsQueryBuilder; interface QueryCursorResult$9 { cursors: Cursors$8; hasNext: () => boolean; hasPrev: () => boolean; length: number; pageSize: number; } interface MenuOrderingSettingsQueryResult extends QueryCursorResult$9 { items: MenuOrderingSettings[]; query: MenuOrderingSettingsQueryBuilder; next: () => Promise; prev: () => Promise; } interface MenuOrderingSettingsQueryBuilder { /** @param propertyName - Property whose value is compared with `value`. * @param value - Value to compare against. * @documentationMaturity preview */ eq: (propertyName: '_id' | '_createdDate' | '_updatedDate' | 'operationId' | 'menuId' | 'onlineOrderingEnabled' | 'availability.type', value: any) => MenuOrderingSettingsQueryBuilder; /** @param propertyName - Property whose value is compared with `value`. * @param value - Value to compare against. * @documentationMaturity preview */ ne: (propertyName: '_id' | '_createdDate' | '_updatedDate' | 'operationId' | 'menuId' | 'onlineOrderingEnabled' | 'availability.type', value: any) => MenuOrderingSettingsQueryBuilder; /** @param propertyName - Property whose value is compared with `value`. * @param value - Value to compare against. * @documentationMaturity preview */ ge: (propertyName: '_createdDate' | '_updatedDate', value: any) => MenuOrderingSettingsQueryBuilder; /** @param propertyName - Property whose value is compared with `value`. * @param value - Value to compare against. * @documentationMaturity preview */ gt: (propertyName: '_createdDate' | '_updatedDate', value: any) => MenuOrderingSettingsQueryBuilder; /** @param propertyName - Property whose value is compared with `value`. * @param value - Value to compare against. * @documentationMaturity preview */ le: (propertyName: '_createdDate' | '_updatedDate', value: any) => MenuOrderingSettingsQueryBuilder; /** @param propertyName - Property whose value is compared with `value`. * @param value - Value to compare against. * @documentationMaturity preview */ lt: (propertyName: '_createdDate' | '_updatedDate', value: any) => MenuOrderingSettingsQueryBuilder; /** @param propertyName - Property whose value is compared with `string`. * @param string - String to compare against. Case-insensitive. * @documentationMaturity preview */ startsWith: (propertyName: '_id' | 'operationId' | 'menuId', value: string) => MenuOrderingSettingsQueryBuilder; /** @param propertyName - Property whose value is compared with `values`. * @param values - List of values to compare against. * @documentationMaturity preview */ hasSome: (propertyName: '_id' | '_createdDate' | '_updatedDate' | 'operationId' | 'menuId' | 'onlineOrderingEnabled' | 'availability.type', value: any[]) => MenuOrderingSettingsQueryBuilder; /** @documentationMaturity preview */ in: (propertyName: '_id' | '_createdDate' | '_updatedDate' | 'operationId' | 'menuId' | 'onlineOrderingEnabled' | 'availability.type', value: any) => MenuOrderingSettingsQueryBuilder; /** @documentationMaturity preview */ exists: (propertyName: '_id' | '_createdDate' | '_updatedDate' | 'operationId' | 'menuId' | 'onlineOrderingEnabled' | 'availability.type', value: boolean) => MenuOrderingSettingsQueryBuilder; /** @param propertyNames - Properties used in the sort. To sort by multiple properties, pass properties as additional arguments. * @documentationMaturity preview */ ascending: (...propertyNames: Array<'_id' | '_createdDate' | '_updatedDate' | 'operationId' | 'menuId' | 'onlineOrderingEnabled' | 'availability.type'>) => MenuOrderingSettingsQueryBuilder; /** @param propertyNames - Properties used in the sort. To sort by multiple properties, pass properties as additional arguments. * @documentationMaturity preview */ descending: (...propertyNames: Array<'_id' | '_createdDate' | '_updatedDate' | 'operationId' | 'menuId' | 'onlineOrderingEnabled' | 'availability.type'>) => MenuOrderingSettingsQueryBuilder; /** @param limit - Number of items to return, which is also the `pageSize` of the results object. * @documentationMaturity preview */ limit: (limit: number) => MenuOrderingSettingsQueryBuilder; /** @param cursor - A pointer to specific record * @documentationMaturity preview */ skipTo: (cursor: string) => MenuOrderingSettingsQueryBuilder; /** @documentationMaturity preview */ find: () => Promise; } /** * Updates multiple menu ordering settings entities at once. * Each time a menu ordering settings entity is updated, `revision` increments by 1. The existing revision must be specified when updating the menu ordering settings entity. This ensures you're working with the entity's latest information, and it prevents unintended overwrites. * @param menusOrderingSettings - Menu ordering settings entities to update. * @public * @documentationMaturity preview * @requiredField menusOrderingSettings * @requiredField menusOrderingSettings.menuOrderingSettings._id * @requiredField menusOrderingSettings.menuOrderingSettings.revision * @permissionId RESTAURANTS.MENU_ORDERING_SETTINGS_UPDATE * @adminMethod */ function bulkUpdateMenuOrderingSettings(menusOrderingSettings: MaskedMenuOrderingSettings[], options?: BulkUpdateMenuOrderingSettingsOptions): Promise; interface BulkUpdateMenuOrderingSettingsOptions { /** Whether to receive the entity in the response. */ returnEntity?: boolean; } /** * Retrieves a list of a menu's availability statuses for a given time slot and restaurant operation. (See the Restaurants Operations API for more information.) * Returns the availability status for the given time slot per menu. * @param timeSlot - The time slot for which to check the availability of menus. * @public * @documentationMaturity preview * @requiredField timeSlot * @requiredField timeSlot.endTime * @requiredField timeSlot.startTime * @permissionId RESTAURANTS.MENU_ORDERING_SETTINGS_READ */ function listMenusAvailabilityStatus(timeSlot: TimeSlot, options?: ListMenusAvailabilityStatusOptions): Promise; interface ListMenusAvailabilityStatusOptions { /** The ID of the restaurant operation whose menus will be checked. (See the Restaurants Operations API for more information.) */ operationId?: string | null; /** Cursor paging */ cursorPaging?: CursorPaging$8; } /** * Updates extended fields of a menu ordering settings entity without incrementing its revision. * @param _id - ID of the entity to update. * @param namespace - Identifier for the app whose extended fields are being updated. * @public * @documentationMaturity preview * @requiredField _id * @requiredField namespace * @requiredField options * @requiredField options.namespaceData * @permissionId RESTAURANTS.MENU_ORDERING_SETTINGS_UPDATE * @adminMethod */ function updateExtendedFields$1(_id: string, namespace: string, options: UpdateExtendedFieldsOptions$1): Promise; interface UpdateExtendedFieldsOptions$1 { /** Data to update. Structured according to the [schema](https://dev.wix.com/docs/rest/articles/getting-started/extended-fields#json-schema-for-extended-fields) defined when the extended fields were configured. */ namespaceData: Record | null; } /** * Retrieves the clone status of the restaurants apps. * In case of uninstalling an app, the clone status will not be changed. * For internal use of the service only. * @internal * @documentationMaturity preview * @permissionId RESTAURANTS.APP_CLONES_STATUS_READ * @adminMethod */ function getRestaurantsAppClonesStatus(): Promise; type restaurantsMenuSettingsV1MenuOrderingSettings_universal_d_MenuOrderingSettings = MenuOrderingSettings; type restaurantsMenuSettingsV1MenuOrderingSettings_universal_d_AvailabilityAvailabilityTypeOptionsOneOf = AvailabilityAvailabilityTypeOptionsOneOf; type restaurantsMenuSettingsV1MenuOrderingSettings_universal_d_AvailabilityType = AvailabilityType; const restaurantsMenuSettingsV1MenuOrderingSettings_universal_d_AvailabilityType: typeof AvailabilityType; type restaurantsMenuSettingsV1MenuOrderingSettings_universal_d_WeeklyScheduleOptions = WeeklyScheduleOptions; type restaurantsMenuSettingsV1MenuOrderingSettings_universal_d_TimestampRangesOptions = TimestampRangesOptions; type restaurantsMenuSettingsV1MenuOrderingSettings_universal_d_AvailableRange = AvailableRange; type restaurantsMenuSettingsV1MenuOrderingSettings_universal_d_CreateMenuOrderingSettingsRequest = CreateMenuOrderingSettingsRequest; type restaurantsMenuSettingsV1MenuOrderingSettings_universal_d_CreateMenuOrderingSettingsResponse = CreateMenuOrderingSettingsResponse; type restaurantsMenuSettingsV1MenuOrderingSettings_universal_d_GetMenuOrderingSettingsRequest = GetMenuOrderingSettingsRequest; type restaurantsMenuSettingsV1MenuOrderingSettings_universal_d_GetMenuOrderingSettingsResponse = GetMenuOrderingSettingsResponse; type restaurantsMenuSettingsV1MenuOrderingSettings_universal_d_UpsertMenuOrderingSettingsByMenuIdRequest = UpsertMenuOrderingSettingsByMenuIdRequest; type restaurantsMenuSettingsV1MenuOrderingSettings_universal_d_UpsertMenuOrderingSettingsByMenuIdResponse = UpsertMenuOrderingSettingsByMenuIdResponse; type restaurantsMenuSettingsV1MenuOrderingSettings_universal_d_UpdateMenuOrderingSettingsRequest = UpdateMenuOrderingSettingsRequest; type restaurantsMenuSettingsV1MenuOrderingSettings_universal_d_UpdateMenuOrderingSettingsResponse = UpdateMenuOrderingSettingsResponse; type restaurantsMenuSettingsV1MenuOrderingSettings_universal_d_DeleteMenuOrderingSettingsRequest = DeleteMenuOrderingSettingsRequest; type restaurantsMenuSettingsV1MenuOrderingSettings_universal_d_DeleteMenuOrderingSettingsResponse = DeleteMenuOrderingSettingsResponse; type restaurantsMenuSettingsV1MenuOrderingSettings_universal_d_QueryMenuOrderingSettingsRequest = QueryMenuOrderingSettingsRequest; type restaurantsMenuSettingsV1MenuOrderingSettings_universal_d_QueryMenuOrderingSettingsResponse = QueryMenuOrderingSettingsResponse; type restaurantsMenuSettingsV1MenuOrderingSettings_universal_d_BulkUpdateMenuOrderingSettingsRequest = BulkUpdateMenuOrderingSettingsRequest; type restaurantsMenuSettingsV1MenuOrderingSettings_universal_d_MaskedMenuOrderingSettings = MaskedMenuOrderingSettings; type restaurantsMenuSettingsV1MenuOrderingSettings_universal_d_BulkUpdateMenuOrderingSettingsResponse = BulkUpdateMenuOrderingSettingsResponse; type restaurantsMenuSettingsV1MenuOrderingSettings_universal_d_BulkMenuOrderingSettingsResult = BulkMenuOrderingSettingsResult; type restaurantsMenuSettingsV1MenuOrderingSettings_universal_d_ListMenusAvailabilityStatusRequest = ListMenusAvailabilityStatusRequest; type restaurantsMenuSettingsV1MenuOrderingSettings_universal_d_TimeSlot = TimeSlot; type restaurantsMenuSettingsV1MenuOrderingSettings_universal_d_ListMenusAvailabilityStatusResponse = ListMenusAvailabilityStatusResponse; type restaurantsMenuSettingsV1MenuOrderingSettings_universal_d_MenuAvailabilityStatus = MenuAvailabilityStatus; type restaurantsMenuSettingsV1MenuOrderingSettings_universal_d_AvailabilityStatus = AvailabilityStatus; const restaurantsMenuSettingsV1MenuOrderingSettings_universal_d_AvailabilityStatus: typeof AvailabilityStatus; type restaurantsMenuSettingsV1MenuOrderingSettings_universal_d_GetRestaurantsAppClonesStatusRequest = GetRestaurantsAppClonesStatusRequest; type restaurantsMenuSettingsV1MenuOrderingSettings_universal_d_GetRestaurantsAppClonesStatusResponse = GetRestaurantsAppClonesStatusResponse; type restaurantsMenuSettingsV1MenuOrderingSettings_universal_d_RestaurantsAppCloneStatus = RestaurantsAppCloneStatus; const restaurantsMenuSettingsV1MenuOrderingSettings_universal_d_createMenuOrderingSettings: typeof createMenuOrderingSettings; const restaurantsMenuSettingsV1MenuOrderingSettings_universal_d_getMenuOrderingSettings: typeof getMenuOrderingSettings; const restaurantsMenuSettingsV1MenuOrderingSettings_universal_d_upsertMenuOrderingSettingsByMenuId: typeof upsertMenuOrderingSettingsByMenuId; type restaurantsMenuSettingsV1MenuOrderingSettings_universal_d_UpsertMenuOrderingSettingsByMenuIdMenuOrderingSettings = UpsertMenuOrderingSettingsByMenuIdMenuOrderingSettings; type restaurantsMenuSettingsV1MenuOrderingSettings_universal_d_UpsertMenuOrderingSettingsByMenuIdOptions = UpsertMenuOrderingSettingsByMenuIdOptions; const restaurantsMenuSettingsV1MenuOrderingSettings_universal_d_updateMenuOrderingSettings: typeof updateMenuOrderingSettings; type restaurantsMenuSettingsV1MenuOrderingSettings_universal_d_UpdateMenuOrderingSettings = UpdateMenuOrderingSettings; type restaurantsMenuSettingsV1MenuOrderingSettings_universal_d_UpdateMenuOrderingSettingsOptions = UpdateMenuOrderingSettingsOptions; const restaurantsMenuSettingsV1MenuOrderingSettings_universal_d_deleteMenuOrderingSettings: typeof deleteMenuOrderingSettings; const restaurantsMenuSettingsV1MenuOrderingSettings_universal_d_queryMenuOrderingSettings: typeof queryMenuOrderingSettings; type restaurantsMenuSettingsV1MenuOrderingSettings_universal_d_MenuOrderingSettingsQueryResult = MenuOrderingSettingsQueryResult; type restaurantsMenuSettingsV1MenuOrderingSettings_universal_d_MenuOrderingSettingsQueryBuilder = MenuOrderingSettingsQueryBuilder; const restaurantsMenuSettingsV1MenuOrderingSettings_universal_d_bulkUpdateMenuOrderingSettings: typeof bulkUpdateMenuOrderingSettings; type restaurantsMenuSettingsV1MenuOrderingSettings_universal_d_BulkUpdateMenuOrderingSettingsOptions = BulkUpdateMenuOrderingSettingsOptions; const restaurantsMenuSettingsV1MenuOrderingSettings_universal_d_listMenusAvailabilityStatus: typeof listMenusAvailabilityStatus; type restaurantsMenuSettingsV1MenuOrderingSettings_universal_d_ListMenusAvailabilityStatusOptions = ListMenusAvailabilityStatusOptions; const restaurantsMenuSettingsV1MenuOrderingSettings_universal_d_getRestaurantsAppClonesStatus: typeof getRestaurantsAppClonesStatus; namespace restaurantsMenuSettingsV1MenuOrderingSettings_universal_d { export { restaurantsMenuSettingsV1MenuOrderingSettings_universal_d_MenuOrderingSettings as MenuOrderingSettings, Availability$1 as Availability, restaurantsMenuSettingsV1MenuOrderingSettings_universal_d_AvailabilityAvailabilityTypeOptionsOneOf as AvailabilityAvailabilityTypeOptionsOneOf, restaurantsMenuSettingsV1MenuOrderingSettings_universal_d_AvailabilityType as AvailabilityType, restaurantsMenuSettingsV1MenuOrderingSettings_universal_d_WeeklyScheduleOptions as WeeklyScheduleOptions, DayOfWeekAvailability$2 as DayOfWeekAvailability, EntitiesDayOfWeek$2 as EntitiesDayOfWeek, TimeOfDayRange$2 as TimeOfDayRange, TimeOfDay$2 as TimeOfDay, restaurantsMenuSettingsV1MenuOrderingSettings_universal_d_TimestampRangesOptions as TimestampRangesOptions, restaurantsMenuSettingsV1MenuOrderingSettings_universal_d_AvailableRange as AvailableRange, ExtendedFields$7 as ExtendedFields, InvalidateCache$7 as InvalidateCache, InvalidateCacheGetByOneOf$7 as InvalidateCacheGetByOneOf, App$7 as App, Page$7 as Page, URI$7 as URI, File$7 as File, restaurantsMenuSettingsV1MenuOrderingSettings_universal_d_CreateMenuOrderingSettingsRequest as CreateMenuOrderingSettingsRequest, restaurantsMenuSettingsV1MenuOrderingSettings_universal_d_CreateMenuOrderingSettingsResponse as CreateMenuOrderingSettingsResponse, restaurantsMenuSettingsV1MenuOrderingSettings_universal_d_GetMenuOrderingSettingsRequest as GetMenuOrderingSettingsRequest, restaurantsMenuSettingsV1MenuOrderingSettings_universal_d_GetMenuOrderingSettingsResponse as GetMenuOrderingSettingsResponse, restaurantsMenuSettingsV1MenuOrderingSettings_universal_d_UpsertMenuOrderingSettingsByMenuIdRequest as UpsertMenuOrderingSettingsByMenuIdRequest, restaurantsMenuSettingsV1MenuOrderingSettings_universal_d_UpsertMenuOrderingSettingsByMenuIdResponse as UpsertMenuOrderingSettingsByMenuIdResponse, restaurantsMenuSettingsV1MenuOrderingSettings_universal_d_UpdateMenuOrderingSettingsRequest as UpdateMenuOrderingSettingsRequest, restaurantsMenuSettingsV1MenuOrderingSettings_universal_d_UpdateMenuOrderingSettingsResponse as UpdateMenuOrderingSettingsResponse, restaurantsMenuSettingsV1MenuOrderingSettings_universal_d_DeleteMenuOrderingSettingsRequest as DeleteMenuOrderingSettingsRequest, restaurantsMenuSettingsV1MenuOrderingSettings_universal_d_DeleteMenuOrderingSettingsResponse as DeleteMenuOrderingSettingsResponse, restaurantsMenuSettingsV1MenuOrderingSettings_universal_d_QueryMenuOrderingSettingsRequest as QueryMenuOrderingSettingsRequest, CursorQuery$9 as CursorQuery, CursorQueryPagingMethodOneOf$9 as CursorQueryPagingMethodOneOf, Sorting$9 as Sorting, SortOrder$9 as SortOrder, CursorPaging$8 as CursorPaging, restaurantsMenuSettingsV1MenuOrderingSettings_universal_d_QueryMenuOrderingSettingsResponse as QueryMenuOrderingSettingsResponse, CursorPagingMetadata$8 as CursorPagingMetadata, Cursors$8 as Cursors, restaurantsMenuSettingsV1MenuOrderingSettings_universal_d_BulkUpdateMenuOrderingSettingsRequest as BulkUpdateMenuOrderingSettingsRequest, restaurantsMenuSettingsV1MenuOrderingSettings_universal_d_MaskedMenuOrderingSettings as MaskedMenuOrderingSettings, restaurantsMenuSettingsV1MenuOrderingSettings_universal_d_BulkUpdateMenuOrderingSettingsResponse as BulkUpdateMenuOrderingSettingsResponse, ItemMetadata$7 as ItemMetadata, ApplicationError$7 as ApplicationError, restaurantsMenuSettingsV1MenuOrderingSettings_universal_d_BulkMenuOrderingSettingsResult as BulkMenuOrderingSettingsResult, BulkActionMetadata$7 as BulkActionMetadata, restaurantsMenuSettingsV1MenuOrderingSettings_universal_d_ListMenusAvailabilityStatusRequest as ListMenusAvailabilityStatusRequest, restaurantsMenuSettingsV1MenuOrderingSettings_universal_d_TimeSlot as TimeSlot, restaurantsMenuSettingsV1MenuOrderingSettings_universal_d_ListMenusAvailabilityStatusResponse as ListMenusAvailabilityStatusResponse, restaurantsMenuSettingsV1MenuOrderingSettings_universal_d_MenuAvailabilityStatus as MenuAvailabilityStatus, restaurantsMenuSettingsV1MenuOrderingSettings_universal_d_AvailabilityStatus as AvailabilityStatus, UpdateExtendedFieldsRequest$1 as UpdateExtendedFieldsRequest, UpdateExtendedFieldsResponse$1 as UpdateExtendedFieldsResponse, DomainEvent$a as DomainEvent, DomainEventBodyOneOf$a as DomainEventBodyOneOf, EntityCreatedEvent$a as EntityCreatedEvent, RestoreInfo$a as RestoreInfo, EntityUpdatedEvent$a as EntityUpdatedEvent, EntityDeletedEvent$a as EntityDeletedEvent, ActionEvent$a as ActionEvent, Empty$9 as Empty, restaurantsMenuSettingsV1MenuOrderingSettings_universal_d_GetRestaurantsAppClonesStatusRequest as GetRestaurantsAppClonesStatusRequest, restaurantsMenuSettingsV1MenuOrderingSettings_universal_d_GetRestaurantsAppClonesStatusResponse as GetRestaurantsAppClonesStatusResponse, restaurantsMenuSettingsV1MenuOrderingSettings_universal_d_RestaurantsAppCloneStatus as RestaurantsAppCloneStatus, SitePropertiesNotification$3 as SitePropertiesNotification, SitePropertiesEvent$3 as SitePropertiesEvent, Properties$3 as Properties, Categories$3 as Categories, Locale$4 as Locale, Address$3 as Address, AddressHint$3 as AddressHint, PlacementType$3 as PlacementType, GeoCoordinates$3 as GeoCoordinates, BusinessSchedule$3 as BusinessSchedule, TimePeriod$3 as TimePeriod, DayOfWeek$3 as DayOfWeek, SpecialHourPeriod$3 as SpecialHourPeriod, Multilingual$3 as Multilingual, SupportedLanguage$3 as SupportedLanguage, ResolutionMethod$3 as ResolutionMethod, ConsentPolicy$3 as ConsentPolicy, Translation$3 as Translation, ChangeContext$3 as ChangeContext, ChangeContextPayloadOneOf$3 as ChangeContextPayloadOneOf, PropertiesChange$3 as PropertiesChange, SiteCreated$3 as SiteCreated, SiteCloned$3 as SiteCloned, OperationsDataCloningCompleted$1 as OperationsDataCloningCompleted, MenusDataCloningCompleted$1 as MenusDataCloningCompleted, MessageEnvelope$a as MessageEnvelope, IdentificationData$a as IdentificationData, IdentificationDataIdOneOf$a as IdentificationDataIdOneOf, WebhookIdentityType$a as WebhookIdentityType, restaurantsMenuSettingsV1MenuOrderingSettings_universal_d_createMenuOrderingSettings as createMenuOrderingSettings, restaurantsMenuSettingsV1MenuOrderingSettings_universal_d_getMenuOrderingSettings as getMenuOrderingSettings, restaurantsMenuSettingsV1MenuOrderingSettings_universal_d_upsertMenuOrderingSettingsByMenuId as upsertMenuOrderingSettingsByMenuId, restaurantsMenuSettingsV1MenuOrderingSettings_universal_d_UpsertMenuOrderingSettingsByMenuIdMenuOrderingSettings as UpsertMenuOrderingSettingsByMenuIdMenuOrderingSettings, restaurantsMenuSettingsV1MenuOrderingSettings_universal_d_UpsertMenuOrderingSettingsByMenuIdOptions as UpsertMenuOrderingSettingsByMenuIdOptions, restaurantsMenuSettingsV1MenuOrderingSettings_universal_d_updateMenuOrderingSettings as updateMenuOrderingSettings, restaurantsMenuSettingsV1MenuOrderingSettings_universal_d_UpdateMenuOrderingSettings as UpdateMenuOrderingSettings, restaurantsMenuSettingsV1MenuOrderingSettings_universal_d_UpdateMenuOrderingSettingsOptions as UpdateMenuOrderingSettingsOptions, restaurantsMenuSettingsV1MenuOrderingSettings_universal_d_deleteMenuOrderingSettings as deleteMenuOrderingSettings, restaurantsMenuSettingsV1MenuOrderingSettings_universal_d_queryMenuOrderingSettings as queryMenuOrderingSettings, restaurantsMenuSettingsV1MenuOrderingSettings_universal_d_MenuOrderingSettingsQueryResult as MenuOrderingSettingsQueryResult, restaurantsMenuSettingsV1MenuOrderingSettings_universal_d_MenuOrderingSettingsQueryBuilder as MenuOrderingSettingsQueryBuilder, restaurantsMenuSettingsV1MenuOrderingSettings_universal_d_bulkUpdateMenuOrderingSettings as bulkUpdateMenuOrderingSettings, restaurantsMenuSettingsV1MenuOrderingSettings_universal_d_BulkUpdateMenuOrderingSettingsOptions as BulkUpdateMenuOrderingSettingsOptions, restaurantsMenuSettingsV1MenuOrderingSettings_universal_d_listMenusAvailabilityStatus as listMenusAvailabilityStatus, restaurantsMenuSettingsV1MenuOrderingSettings_universal_d_ListMenusAvailabilityStatusOptions as ListMenusAvailabilityStatusOptions, updateExtendedFields$1 as updateExtendedFields, UpdateExtendedFieldsOptions$1 as UpdateExtendedFieldsOptions, restaurantsMenuSettingsV1MenuOrderingSettings_universal_d_getRestaurantsAppClonesStatus as getRestaurantsAppClonesStatus, }; } interface Item extends ItemPricingOneOf { /** Item price variants. */ priceVariants?: PriceVariants; /** Item price info. */ priceInfo?: PriceInfo; /** * Item ID. * @readonly */ _id?: string | null; /** * Revision number, which increments by 1 each time the item is updated. To prevent conflicting changes, the current revision must be passed when updating the item. Ignored when creating a item. * @readonly */ revision?: string | null; /** * Date and time the item was created. * @readonly */ _createdDate?: Date | null; /** * Date and time the item was updated. * @readonly */ _updatedDate?: Date | null; /** Item name. */ name?: string; /** Item description. */ description?: string | null; /** Main item image. */ image?: string; /** Additional item images. */ additionalImages?: string[]; /** Item labels. */ labels?: Label$1[]; /** Whether the item is visible in the menu for site visitors. */ visible?: boolean | null; /** Online order settings. */ orderSettings?: OrderSettings; /** Item modifier groups. */ modifierGroups?: ModifierGroup[]; /** Extended fields. */ extendedFields?: ExtendedFields$6; /** * @internal * @readonly */ oloMigrationItemId?: string | null; } /** @oneof */ interface ItemPricingOneOf { /** Item price variants. */ priceVariants?: PriceVariants; /** Item price info. */ priceInfo?: PriceInfo; } interface PriceVariants { /** List of price variants. */ variants?: PriceVariant[]; } /** flynt-deleted-field-enum-reserved */ interface PriceVariant { /** Price variant ID. */ variantId?: string | null; /** * Price of a variant. * @deprecated Price of a variant. * @replacedBy pricing.price_variants.variants.price_info * @targetRemovalDate 2024-08-01 */ price?: string | null; /** Price info of a variant. */ priceInfo?: PriceInfo; } interface PriceInfo { /** Price. */ price?: string; /** * Formatted price. * @internal * @readonly */ formattedPrice?: string | null; } interface Label$1 { /** Item label ID. */ _id?: string; } interface OrderSettings { /** * Whether the item is in stock. * Default: `true`. */ inStock?: boolean | null; /** * Whether a customer can add a special request when ordering this item. * Default: `true`. */ acceptSpecialRequests?: boolean | null; /** * E-com defined tax group for the product. * @internal */ taxGroupId?: string | null; } interface ModifierGroup { /** Modifier group ID. */ _id?: string | null; } interface ExtendedFields$6 { /** * Extended field data. Each key corresponds to the namespace of the app that created the extended fields. * The value of each key is structured according to the schema defined when the extended fields were configured. * * You can only access fields for which you have the appropriate permissions. * * Learn more about [extended fields](https://dev.wix.com/docs/rest/articles/getting-started/extended-fields). */ namespaces?: Record>; } interface UpdateDocumentsEvent extends UpdateDocumentsEventOperationOneOf { /** insert/update documents */ update?: DocumentUpdateOperation; /** delete by document ids */ deleteByIds?: DeleteByIdsOperation; /** delete documents matching filter */ deleteByFilter?: DeleteByFilterOperation; /** update documents matching filter */ updateByFilter?: UpdateByFilterOperation; /** update only existing documents */ updateExisting?: UpdateExistingOperation; /** application which owns documents */ appDefId?: string | null; /** type of the documents */ documentType?: string | null; /** language of the documents */ language?: string | null; /** site documents belong to */ msId?: string | null; } /** @oneof */ interface UpdateDocumentsEventOperationOneOf { /** insert/update documents */ update?: DocumentUpdateOperation; /** delete by document ids */ deleteByIds?: DeleteByIdsOperation; /** delete documents matching filter */ deleteByFilter?: DeleteByFilterOperation; /** update documents matching filter */ updateByFilter?: UpdateByFilterOperation; /** update only existing documents */ updateExisting?: UpdateExistingOperation; } interface DocumentUpdateOperation { /** documents to index or update */ documents?: IndexDocument[]; } interface IndexDocument { /** data bag with non-searchable fields (url, image) */ payload?: DocumentPayload; /** what type of users should documents be visible to */ exposure?: Enum; /** document with mandatory fields (id, title, description) and with fields specific to the type of the document */ document?: Record | null; /** what member groups is the document exposed to. Used only with GROUP_PROTECTED exposure */ permittedMemberGroups?: string[]; /** if true SEO is disabled for this document */ seoHidden?: boolean | null; /** if true the page is a lightbox popup */ isPopup?: boolean | null; } interface DocumentPayload { /** url of the page representing the document */ url?: string | null; /** image which represents the document */ documentImage?: DocumentImage; } interface DocumentImage { /** the name of the image */ name?: string; /** the width of the image */ width?: number; /** the height of the image */ height?: number; } enum Enum { /** Default value. Means that permission not set */ UNKNOWN = "UNKNOWN", /** Protected exposure. Exposed to members and owners */ PROTECTED = "PROTECTED", /** Private exposure. Exposed to owners */ PRIVATE = "PRIVATE", /** Public exposure. Visible to everyone */ PUBLIC = "PUBLIC", /** Used for partial updates, to state that exposure is not changing */ UNCHANGED = "UNCHANGED", /** Protected to members of permitted groups and owners */ GROUP_PROTECTED = "GROUP_PROTECTED" } interface DeleteByIdsOperation { /** ids of the documents to delete */ documentIds?: string[]; } interface DeleteByFilterOperation { /** documents matching this filter wil be deleted. only filterable documents defined in document_type can be used for filtering */ filter?: Record | null; } interface UpdateByFilterOperation { /** documents matching this filter will be updated */ filter?: Record | null; /** partial document to apply */ document?: IndexDocument; } interface UpdateExistingOperation { /** documents to update */ documents?: IndexDocument[]; } interface DomainEvent$9 extends DomainEventBodyOneOf$9 { createdEvent?: EntityCreatedEvent$9; updatedEvent?: EntityUpdatedEvent$9; deletedEvent?: EntityDeletedEvent$9; actionEvent?: ActionEvent$9; /** * Unique event ID. * Allows clients to ignore duplicate webhooks. */ _id?: string; /** * Assumes actions are also always typed to an entity_type * Example: wix.stores.catalog.product, wix.bookings.session, wix.payments.transaction */ entityFqdn?: string; /** * This is top level to ease client code dispatching of messages (switch on entity_fqdn+slug) * This is although the created/updated/deleted notion is duplication of the oneof types * Example: created/updated/deleted/started/completed/email_opened */ slug?: string; /** ID of the entity associated with the event. */ entityId?: string; /** Event timestamp in [ISO-8601](https://en.wikipedia.org/wiki/ISO_8601) format and UTC time. For example: 2020-04-26T13:57:50.699Z */ eventTime?: Date | null; /** * Whether the event was triggered as a result of a privacy regulation application * (for example, GDPR). */ triggeredByAnonymizeRequest?: boolean | null; /** If present, indicates the action that triggered the event. */ originatedFrom?: string | null; /** * A sequence number defining the order of updates to the underlying entity. * For example, given that some entity was updated at 16:00 and than again at 16:01, * it is guaranteed that the sequence number of the second update is strictly higher than the first. * As the consumer, you can use this value to ensure that you handle messages in the correct order. * To do so, you will need to persist this number on your end, and compare the sequence number from the * message against the one you have stored. Given that the stored number is higher, you should ignore the message. */ entityEventSequence?: string | null; } /** @oneof */ interface DomainEventBodyOneOf$9 { createdEvent?: EntityCreatedEvent$9; updatedEvent?: EntityUpdatedEvent$9; deletedEvent?: EntityDeletedEvent$9; actionEvent?: ActionEvent$9; } interface EntityCreatedEvent$9 { entityAsJson?: string; /** * Indicates the event was triggered by a restore-from-trashbin operation for a previously deleted entity * @internal */ triggeredByUndelete?: boolean | null; /** Indicates the event was triggered by a restore-from-trashbin operation for a previously deleted entity */ restoreInfo?: RestoreInfo$9; /** * WIP * @internal */ additionalMetadataAsJson?: string | null; } interface RestoreInfo$9 { deletedDate?: Date | null; } interface EntityUpdatedEvent$9 { /** * Since platformized APIs only expose PATCH and not PUT we can't assume that the fields sent from the client are the actual diff. * This means that to generate a list of changed fields (as opposed to sent fields) one needs to traverse both objects. * We don't want to impose this on all developers and so we leave this traversal to the notification recipients which need it. */ currentEntityAsJson?: string; /** * This field is currently part of the of the EntityUpdatedEvent msg, but scala/node libraries which implements the domain events standard * wont populate it / have any reference to it in the API. * The main reason for it is that fetching the old entity from the DB will have a performance hit on an update operation so unless truly needed, * the developer should send only the new (current) entity. * An additional reason is not wanting to send this additional entity over the wire (kafka) since in some cases it can be really big * Developers that must reflect the old entity will have to implement their own domain event sender mechanism which will follow the DomainEvent proto message. * @internal * @deprecated */ previousEntityAsJson?: string | null; /** * WIP - This property will hold both names and previous values of the updated fields of the entity. * For more details please see [adr](https://docs.google.com/document/d/1PdqsOM20Ph2HAkmx8zvUnzzk3Sekp3BR9h34wSvsRnI/edit#heading=h.phlw87mh2imx) or [issue](https://github.com/wix-private/nile-tracker/issues/363) * @internal */ modifiedFields?: Record; /** * WIP * @internal */ additionalMetadataAsJson?: string | null; } interface EntityDeletedEvent$9 { /** * Indicates if the entity is sent to trash-bin. only available when trash-bin is enabled * @internal */ movedToTrash?: boolean | null; /** Entity that was deleted */ deletedEntityAsJson?: string | null; /** * WIP * @internal */ additionalMetadataAsJson?: string | null; } interface ActionEvent$9 { bodyAsJson?: string; } interface Empty$8 { } interface SearchIndexingNotification { /** new state of indexing for the site specified in ms_id */ indexState?: State; /** type of the document the notification is targeted for. Applies to all types if not provided */ documentType?: string | null; /** languaInternalDocumentUpdateByFilterOperationge the notification is targeted for. Applies to all languages if not provided */ language?: string | null; /** site for which notification is targeted */ msId?: string | null; } enum State { /** default state */ Unknown = "Unknown", /** metasite does not require site search indexing */ Off = "Off", /** metasite requires site search indexing */ On = "On" } /** Encapsulates all details written to the Greyhound topic when a site's properties are updated. */ interface SitePropertiesNotification$2 { /** The site ID for which this update notification applies. */ metasiteId?: string; /** The actual update event. */ event?: SitePropertiesEvent$2; /** A convenience set of mappings from the MetaSite ID to its constituent services. */ translations?: Translation$2[]; /** Context of the notification */ changeContext?: ChangeContext$2; } /** The actual update event for a particular notification. */ interface SitePropertiesEvent$2 { /** Version of the site's properties represented by this update. */ version?: number; /** * Set of properties that were updated - corresponds to the fields in "properties". * @internal */ fields?: string[]; /** Updated properties. */ properties?: Properties$2; } interface Properties$2 { /** Site categories. */ categories?: Categories$2; /** Site locale. */ locale?: Locale$3; /** * Site language. * * Two-letter language code in [ISO 639-1 alpha-2](https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes) format. */ language?: string | null; /** * Site currency format used to bill customers. * * Three-letter currency code in [ISO-4217 alphabetic](https://en.wikipedia.org/wiki/ISO_4217#Active_codes) format. */ paymentCurrency?: string | null; /** Timezone in `America/New_York` format. */ timeZone?: string | null; /** Email address. */ email?: string | null; /** Phone number. */ phone?: string | null; /** Fax number. */ fax?: string | null; /** Address. */ address?: Address$2; /** Site display name. */ siteDisplayName?: string | null; /** Business name. */ businessName?: string | null; /** Path to the site's logo in Wix Media (without Wix Media base URL). */ logo?: string | null; /** Site description. */ description?: string | null; /** * Business schedule. Regular and exceptional time periods when the business is open or the service is available. * * __Note:__ Not supported by Wix Bookings. */ businessSchedule?: BusinessSchedule$2; /** Supported languages of a site and the primary language. */ multilingual?: Multilingual$2; /** Cookie policy the Wix user defined for their site (before the site visitor interacts with/limits it). */ consentPolicy?: ConsentPolicy$2; /** * Supported values: `FITNESS SERVICE`, `RESTAURANT`, `BLOG`, `STORE`, `EVENT`, `UNKNOWN`. * * Site business type. */ businessConfig?: string | null; /** External site URL that uses Wix as its headless business solution. */ externalSiteUrl?: string | null; /** Track clicks analytics. */ trackClicksAnalytics?: boolean; } interface Categories$2 { /** Primary site category. */ primary?: string; /** Secondary site category. */ secondary?: string[]; /** Business Term Id */ businessTermId?: string | null; } interface Locale$3 { /** Two-letter language code in [ISO 639-1 alpha-2](https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes) format. */ languageCode?: string; /** Two-letter country code in [ISO-3166 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2#Officially_assigned_code_elements) format. */ country?: string; } interface Address$2 { /** Street name. */ street?: string; /** City name. */ city?: string; /** Two-letter country code in an [ISO-3166 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) format. */ country?: string; /** State. */ state?: string; /** Zip or postal code. */ zip?: string; /** Extra information to be displayed in the address. */ hint?: AddressHint$2; /** Whether this address represents a physical location. */ isPhysical?: boolean; /** Google-formatted version of this address. */ googleFormattedAddress?: string; /** Street number. */ streetNumber?: string; /** Apartment number. */ apartmentNumber?: string; /** Geographic coordinates of location. */ coordinates?: GeoCoordinates$2; } /** * Extra information on displayed addresses. * This is used for display purposes. Used to add additional data about the address, such as "In the passage". * Free text. In addition, the user can state where to display the additional description - before, after, or instead of the address string. */ interface AddressHint$2 { /** Extra text displayed next to, or instead of, the actual address. */ text?: string; /** Where the extra text should be displayed. */ placement?: PlacementType$2; } /** Where the extra text should be displayed: before, after or instead of the actual address. */ enum PlacementType$2 { BEFORE = "BEFORE", AFTER = "AFTER", REPLACE = "REPLACE" } /** Geocoordinates for a particular address. */ interface GeoCoordinates$2 { /** Latitude of the location. Must be between -90 and 90. */ latitude?: number; /** Longitude of the location. Must be between -180 and 180. */ longitude?: number; } /** Business schedule. Regular and exceptional time periods when the business is open or the service is available. */ interface BusinessSchedule$2 { /** Weekly recurring time periods when the business is regularly open or the service is available. Limited to 100 time periods. */ periods?: TimePeriod$2[]; /** Exceptions to the business's regular hours. The business can be open or closed during the exception. */ specialHourPeriod?: SpecialHourPeriod$2[]; } /** Weekly recurring time periods when the business is regularly open or the service is available. */ interface TimePeriod$2 { /** Day of the week the period starts on. */ openDay?: DayOfWeek$2; /** * 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 * midnight at the end of the specified day. */ openTime?: string; /** Day of the week the period ends on. */ closeDay?: DayOfWeek$2; /** * 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 * midnight at the end of the specified day. * * __Note:__ If `openDay` and `closeDay` specify the same day of the week `closeTime` must be later than `openTime`. */ closeTime?: string; } /** Enumerates the days of the week. */ enum DayOfWeek$2 { MONDAY = "MONDAY", TUESDAY = "TUESDAY", WEDNESDAY = "WEDNESDAY", THURSDAY = "THURSDAY", FRIDAY = "FRIDAY", SATURDAY = "SATURDAY", SUNDAY = "SUNDAY" } /** Exception to the business's regular hours. The business can be open or closed during the exception. */ interface SpecialHourPeriod$2 { /** 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). */ startDate?: string; /** 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). */ endDate?: string; /** * Whether the business is closed (or the service is not available) during the exception. * * Default: `true`. */ isClosed?: boolean; /** Additional info about the exception. For example, "We close earlier on New Year's Eve." */ comment?: string; } interface Multilingual$2 { /** Supported languages list. */ supportedLanguages?: SupportedLanguage$2[]; /** Whether to redirect to user language. */ autoRedirect?: boolean; } interface SupportedLanguage$2 { /** Two-letter language code in [ISO 639-1 alpha-2](https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes) format. */ languageCode?: string; /** Locale. */ locale?: Locale$3; /** Whether the supported language is the primary language for the site. */ isPrimary?: boolean; /** Language icon. */ countryCode?: string; /** How the language will be resolved. For internal use. */ resolutionMethod?: ResolutionMethod$2; } enum ResolutionMethod$2 { QUERY_PARAM = "QUERY_PARAM", SUBDOMAIN = "SUBDOMAIN", SUBDIRECTORY = "SUBDIRECTORY" } interface ConsentPolicy$2 { /** Whether the site uses cookies that are essential to site operation. */ essential?: boolean | null; /** Whether the site uses cookies that affect site performance and other functional measurements. */ functional?: boolean | null; /** Whether the site uses cookies that collect analytics about how the site is used (in order to improve it). */ analytics?: boolean | null; /** Whether the site uses cookies that collect information allowing better customization of the experience for a current visitor. */ advertising?: boolean | null; /** CCPA compliance flag. */ dataToThirdParty?: boolean | null; } /** A single mapping from the MetaSite ID to a particular service. */ interface Translation$2 { /** The service type. */ serviceType?: string; /** The application definition ID; this only applies to services of type ThirdPartyApps. */ appDefId?: string; /** The instance ID of the service. */ instanceId?: string; } interface ChangeContext$2 extends ChangeContextPayloadOneOf$2 { /** Properties were updated. */ propertiesChange?: PropertiesChange$2; /** Default properties were created on site creation. */ siteCreated?: SiteCreated$2; /** Properties were cloned on site cloning. */ siteCloned?: SiteCloned$2; } /** @oneof */ interface ChangeContextPayloadOneOf$2 { /** Properties were updated. */ propertiesChange?: PropertiesChange$2; /** Default properties were created on site creation. */ siteCreated?: SiteCreated$2; /** Properties were cloned on site cloning. */ siteCloned?: SiteCloned$2; } interface PropertiesChange$2 { } interface SiteCreated$2 { /** Origin template site id. */ originTemplateId?: string | null; } interface SiteCloned$2 { /** Origin site id. */ originMetaSiteId?: string; } interface MessageEnvelope$9 { /** App instance ID. */ instanceId?: string | null; /** Event type. */ eventType?: string; /** The identification type and identity data. */ identity?: IdentificationData$9; /** Stringify payload. */ data?: string; } interface IdentificationData$9 extends IdentificationDataIdOneOf$9 { /** ID of a site visitor that has not logged in to the site. */ anonymousVisitorId?: string; /** ID of a site visitor that has logged in to the site. */ memberId?: string; /** ID of a Wix user (site owner, contributor, etc.). */ wixUserId?: string; /** ID of an app. */ appId?: string; /** @readonly */ identityType?: WebhookIdentityType$9; } /** @oneof */ interface IdentificationDataIdOneOf$9 { /** ID of a site visitor that has not logged in to the site. */ anonymousVisitorId?: string; /** ID of a site visitor that has logged in to the site. */ memberId?: string; /** ID of a Wix user (site owner, contributor, etc.). */ wixUserId?: string; /** ID of an app. */ appId?: string; } enum WebhookIdentityType$9 { UNKNOWN = "UNKNOWN", ANONYMOUS_VISITOR = "ANONYMOUS_VISITOR", MEMBER = "MEMBER", WIX_USER = "WIX_USER", APP = "APP" } interface InvalidateCache$6 extends InvalidateCacheGetByOneOf$6 { /** Invalidate by msId. NOT recommended, as this will invalidate the entire site cache! */ metaSiteId?: string; /** Invalidate by Site ID. NOT recommended, as this will invalidate the entire site cache! */ siteId?: string; /** Invalidate by App */ app?: App$6; /** Invalidate by page id */ page?: Page$6; /** Invalidate by URI path */ uri?: URI$6; /** Invalidate by file (for media files such as PDFs) */ file?: File$6; /** tell us why you're invalidating the cache. You don't need to add your app name */ reason?: string | null; /** Is local DS */ localDc?: boolean; hardPurge?: boolean; } /** @oneof */ interface InvalidateCacheGetByOneOf$6 { /** Invalidate by msId. NOT recommended, as this will invalidate the entire site cache! */ metaSiteId?: string; /** Invalidate by Site ID. NOT recommended, as this will invalidate the entire site cache! */ siteId?: string; /** Invalidate by App */ app?: App$6; /** Invalidate by page id */ page?: Page$6; /** Invalidate by URI path */ uri?: URI$6; /** Invalidate by file (for media files such as PDFs) */ file?: File$6; } interface App$6 { /** The AppDefId */ appDefId?: string; /** The instance Id */ instanceId?: string; } interface Page$6 { /** the msid the page is on */ metaSiteId?: string; /** Invalidate by Page ID */ pageId?: string; } interface URI$6 { /** the msid the URI is on */ metaSiteId?: string; /** URI path to invalidate (e.g. page/my/path) - without leading/trailing slashes */ uriPath?: string; } interface File$6 { /** the msid the file is related to */ metaSiteId?: string; /** Invalidate by filename (for media files such as PDFs) */ fileName?: string; } interface CreateItemRequest { /** Item details. */ item: Item; /** * The source of this request. * @internal */ source?: string | null; } interface CreateItemResponse { /** Item. */ item?: Item; } interface BulkCreateItemsRequest { /** Items details. */ items: Item[]; /** Whether to return entity in the response. */ returnEntity?: boolean; /** * The source of this request. * @internal */ source?: string | null; } interface BulkCreateItemsResponse { /** Information about the created items. */ results?: BulkCreateItemResult[]; /** Metadata for the API call. */ bulkActionMetadata?: BulkActionMetadata$6; } interface BulkCreateItemResult { /** Metadata for item update. */ itemMetadata?: ItemMetadata$6; /** Created item. */ item?: Item; } interface ItemMetadata$6 { /** Item ID. Should always be available, unless it's impossible (for example, when failing to create an item). */ _id?: string | null; /** Index of the item within the request array. Allows for correlation between request and response items. */ originalIndex?: number; /** Whether the requested action was successful for this item. When `false`, the `error` field is populated. */ success?: boolean; /** Details about the error in case of failure. */ error?: ApplicationError$6; } interface ApplicationError$6 { /** Error code. */ code?: string; /** Description of the error. */ description?: string; /** Data related to the error. */ data?: Record | null; } interface BulkActionMetadata$6 { /** Number of items that were successfully processed. */ totalSuccesses?: number; /** Number of items that couldn't be processed. */ totalFailures?: number; /** Number of failures without details because detailed failure threshold was exceeded. */ undetailedFailures?: number; } interface GetItemRequest { /** Item ID. */ itemId: string; } interface GetItemResponse { /** Item. */ item?: Item; } interface ListItemsRequest { /** Item IDs. */ itemIds?: string[]; /** The metadata of the paginated results. */ paging?: CursorPaging$7; /** Whether to return only items that are visible to site visitors. */ onlyVisible?: boolean | null; } interface CursorPaging$7 { /** Number of items to load. */ limit?: number | null; /** * Pointer to the next or previous page in the list of results. * * You can get the relevant cursor token * from the `pagingMetadata` object in the previous call's response. * Not relevant for the first request. */ cursor?: string | null; } interface ListItemsResponse { /** Items. */ items?: Item[]; /** The metadata of the paginated results. */ pagingMetadata?: CursorPagingMetadata$7; } interface CursorPagingMetadata$7 { /** Number of items returned in the response. */ count?: number | null; /** Offset that was requested. */ cursors?: Cursors$7; /** * Indicates if there are more results after the current page. * If `true`, another page of results can be retrieved. * If `false`, this is the last page. */ hasNext?: boolean | null; } interface Cursors$7 { /** Cursor pointing to next page in the list of results. */ next?: string | null; /** Cursor pointing to previous page in the list of results. */ prev?: string | null; } interface QueryItemsRequest { /** Query options. */ query?: CursorQuery$8; } interface CursorQuery$8 extends CursorQueryPagingMethodOneOf$8 { /** 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`. */ cursorPaging?: CursorPaging$7; /** * Filter object in the following format: * `"filter" : { * "fieldName1": "value1", * "fieldName2":{"$operator":"value2"} * }` * Example of operators: `$eq`, `$ne`, `$lt`, `$lte`, `$gt`, `$gte`, `$in`, `$hasSome`, `$hasAll`, `$startsWith`, `$contains` */ filter?: Record | null; /** * Sort object in the following format: * `[{"fieldName":"sortField1","order":"ASC"},{"fieldName":"sortField2","order":"DESC"}]` */ sort?: Sorting$8[]; } /** @oneof */ interface CursorQueryPagingMethodOneOf$8 { /** 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`. */ cursorPaging?: CursorPaging$7; } interface Sorting$8 { /** Name of the field to sort by. */ fieldName?: string; /** Sort order. */ order?: SortOrder$8; /** * When `field_name` is a property of repeated field that is marked as `MATCH_ITEMS` and sort should be done by * a specific element from a collection, filter can/should be provided to ensure correct sort value is picked. * * If multiple filters are provided, they are combined with AND operator. * * Example: * Given we have document like {"id": "1", "nestedField": [{"price": 10, "region": "EU"}, {"price": 20, "region": "US"}]} * and `nestedField` is marked as `MATCH_ITEMS`, to ensure that sorting is done by correct region, filter should be * { fieldName: "nestedField.price", "select_items_by": [{"nestedField.region": "US"}] } * @internal */ selectItemsBy?: Record[] | null; } enum SortOrder$8 { ASC = "ASC", DESC = "DESC" } interface QueryItemsResponse { /** Retrieved items. */ items?: Item[]; /** The metadata of the paginated results. */ pagingMetadata?: CursorPagingMetadata$7; } interface CountItemsRequest { /** Filter for counting items. */ filter?: Record | null; } interface CountItemsResponse { /** Counted items. */ count?: number; } interface UpdateItemRequest { /** Item to update. */ item: Item; /** * Explicit list of fields to update. * @internal */ mask?: string[]; /** * The source of this request. * @internal */ source?: string | null; } interface UpdateItemResponse { /** Updated item. */ item?: Item; } interface BulkUpdateItemRequest { /** Items to update. */ items: MaskedItem[]; /** Whether to return entity in the response. */ returnEntity?: boolean; /** * The source of this request. * @internal */ source?: string | null; } interface MaskedItem { /** Item to update. */ item?: Item; /** * Explicit list of fields to update. * @internal */ mask?: string[]; } interface BulkUpdateItemResponse { /** Information about the updated items. */ results?: BulkItemResult[]; /** Metadata for the API call. */ bulkActionMetadata?: BulkActionMetadata$6; } interface BulkItemResult { /** Metadata for item update. */ itemMetadata?: ItemMetadata$6; /** Updated item. Only returned if `returnEntity` is set to `true`. */ item?: Item; } interface DeleteItemRequest { /** Item ID. */ itemId: string; /** * The source of this request. * @internal */ source?: string | null; } interface DeleteItemResponse { } interface BulkDeleteItemsRequest { /** Item IDs. */ ids: string[]; /** * The source of this request. * @internal */ source?: string | null; } interface BulkDeleteItemsResponse { /** Information about the deleted items. */ results?: BulkDeleteItemResult[]; /** Metadata for the API call. */ bulkActionMetadata?: BulkActionMetadata$6; } interface BulkDeleteItemResult { /** Metadata for item delete. */ itemMetadata?: ItemMetadata$6; } interface CloneItemsRequest { /** The MetaSiteId to clone from. */ metaSiteId: string; } interface CloneItemsResponse { } /** * > **Note:** The Item API only works with the Wix Restaurants Menus (New) app. Make sure you have installed this app from the [Wix App Market](https://www.wix.com/app-market/wix-restaurants-menus-new). * * Creates an item. * * To create multiple items at once, use [Bulk Create Items](https://dev.wix.com/docs/rest/business-solutions/restaurants/menus/item/bulk-create-items). * @param item - Item details. * @public * @documentationMaturity preview * @requiredField item * @requiredField item.modifierGroups._id * @permissionId RESTAURANTS.ITEM_CREATE * @adminMethod * @returns Item. */ function createItem(item: Item, options?: CreateItemOptions): Promise; interface CreateItemOptions { /** * The source of this request. * @internal */ source?: string | null; } /** * > **Note:** The Items API only works with the Wix Restaurants Menus (New) app. Make sure you have installed this app from the [Wix App Market](https://www.wix.com/app-market/wix-restaurants-menus-new). * * Creates multiple items at once. * @param items - Items details. * @public * @documentationMaturity preview * @requiredField items * @requiredField items.modifierGroups._id * @permissionId RESTAURANTS.ITEM_CREATE * @adminMethod */ function bulkCreateItems(items: Item[], options?: BulkCreateItemsOptions): Promise; interface BulkCreateItemsOptions { /** Whether to return entity in the response. */ returnEntity?: boolean; /** * The source of this request. * @internal */ source?: string | null; } /** * > **Note:** The Item API only works with the Wix Restaurants Menus (New) app. Make sure you have installed this app from the [Wix App Market](https://www.wix.com/app-market/wix-restaurants-menus-new). * * Retrieves an item by ID. * @param itemId - Item ID. * @public * @documentationMaturity preview * @requiredField itemId * @permissionId RESTAURANTS.ITEM_READ * @returns Item. */ function getItem(itemId: string): Promise; /** * > **Note:** The Item API only works with the Wix Restaurants Menus (New) app. Make sure you have installed this app from the [Wix App Market](https://www.wix.com/app-market/wix-restaurants-menus-new). * * Retrieves a list of up to 500 items. * @public * @documentationMaturity preview * @permissionId RESTAURANTS.ITEM_READ */ function listItems(options?: ListItemsOptions): Promise; interface ListItemsOptions { /** Item IDs. */ itemIds?: string[]; /** The metadata of the paginated results. */ paging?: CursorPaging$7; /** Whether to return only items that are visible to site visitors. */ onlyVisible?: boolean | null; } /** * Creates a query to retrieve a list of items. * * The `queryItems()` function builds a query to retrieve a list of items and returns a `ItemsQueryBuilder` object. * * The returned object contains the query definition, which is used to run the query using the [`find()`](/items/items-query-builder/find) function. * * You can refine the query by chaining `ItemsQueryBuilder` functions onto the query. `ItemsQueryBuilder` functions enable you to filter, sort, and control the results that `queryItems()` returns. * * `queryItems()` runs with the following `ItemsQueryBuilder` defaults, which you can override: * * * [`limit(500)`](/items/items-query-builder/limit) * * [`ascending('entityId')`](/items/items-query-builder/ascending) * * The following `ItemsQueryBuilder` functions are supported for `queryItems()`. For a full description of the item object, see the object returned for the [`items`](/items/items-query-result/items) property in `ItemsQueryResult`. * @public * @documentationMaturity preview * @permissionId RESTAURANTS.ITEM_READ */ function queryItems(): ItemsQueryBuilder; interface QueryCursorResult$8 { cursors: Cursors$7; hasNext: () => boolean; hasPrev: () => boolean; length: number; pageSize: number; } interface ItemsQueryResult extends QueryCursorResult$8 { items: Item[]; query: ItemsQueryBuilder; next: () => Promise; prev: () => Promise; } interface ItemsQueryBuilder { /** @param propertyName - Property whose value is compared with `value`. * @param value - Value to compare against. * @documentationMaturity preview */ eq: (propertyName: 'priceVariants.variants.price' | '_id' | '_createdDate' | '_updatedDate' | 'name' | 'description' | 'image.id' | 'orderSettings.inStock' | 'orderSettings.acceptSpecialRequests', value: any) => ItemsQueryBuilder; /** @param propertyName - Property whose value is compared with `value`. * @param value - Value to compare against. * @documentationMaturity preview */ ne: (propertyName: 'priceVariants.variants.price' | '_id' | '_createdDate' | '_updatedDate' | 'name' | 'description' | 'image.id' | 'orderSettings.inStock' | 'orderSettings.acceptSpecialRequests', value: any) => ItemsQueryBuilder; /** @param propertyName - Property whose value is compared with `value`. * @param value - Value to compare against. * @documentationMaturity preview */ gt: (propertyName: '_createdDate' | '_updatedDate', value: any) => ItemsQueryBuilder; /** @param propertyName - Property whose value is compared with `value`. * @param value - Value to compare against. * @documentationMaturity preview */ le: (propertyName: '_createdDate' | '_updatedDate', value: any) => ItemsQueryBuilder; /** @param propertyName - Property whose value is compared with `value`. * @param value - Value to compare against. * @documentationMaturity preview */ lt: (propertyName: '_createdDate' | '_updatedDate', value: any) => ItemsQueryBuilder; /** @param propertyName - Property whose value is compared with `string`. * @param string - String to compare against. Case-insensitive. * @documentationMaturity preview */ startsWith: (propertyName: 'name' | 'description', value: string) => ItemsQueryBuilder; /** @documentationMaturity preview */ in: (propertyName: '_id' | 'name' | 'description' | 'orderSettings.inStock' | 'orderSettings.acceptSpecialRequests', value: any) => ItemsQueryBuilder; /** @documentationMaturity preview */ exists: (propertyName: 'priceVariants.variants' | 'image' | 'labels' | 'orderSettings', value: boolean) => ItemsQueryBuilder; /** @param limit - Number of items to return, which is also the `pageSize` of the results object. * @documentationMaturity preview */ limit: (limit: number) => ItemsQueryBuilder; /** @param cursor - A pointer to specific record * @documentationMaturity preview */ skipTo: (cursor: string) => ItemsQueryBuilder; /** @documentationMaturity preview */ find: () => Promise; } /** * > **Note:** The Item API only works with the Wix Restaurants Menus (New) app. Make sure you have installed this app from the [Wix App Market](https://www.wix.com/app-market/wix-restaurants-menus-new). * * Retrieves the number of items that match a specified filter. * * If a filter isn't passed in the request, the endpoint returns the count of all items. * @public * @documentationMaturity preview * @permissionId RESTAURANTS.ITEM_READ */ function countItems(options?: CountItemsOptions): Promise; interface CountItemsOptions { /** Filter for counting items. */ filter?: Record | null; } /** * > **Note:** The Item API only works with the Wix Restaurants Menus (New) app. Make sure you have installed this app from the [Wix App Market](https://www.wix.com/app-market/wix-restaurants-menus-new). * * Updates an item. * * To update multiple items at once, use [Bulk Update Item](https://dev.wix.com/docs/rest/business-solutions/restaurants/menus/item/bulk-update-item) * * Each time an item is updated, its revision increments by 1. The existing revision must be included when updating the item. This ensures you're working with the latest item information, and it prevents unintended overwrites. * @param _id - Item ID. * @public * @documentationMaturity preview * @requiredField _id * @requiredField item * @requiredField item.modifierGroups._id * @requiredField item.revision * @permissionId RESTAURANTS.ITEM_UPDATE * @adminMethod * @returns Updated item. */ function updateItem(_id: string | null, item: UpdateItem, options?: UpdateItemOptions): Promise; interface UpdateItem { /** Item price variants. */ priceVariants?: PriceVariants; /** Item price info. */ priceInfo?: PriceInfo; /** * Item ID. * @readonly */ _id?: string | null; /** * Revision number, which increments by 1 each time the item is updated. To prevent conflicting changes, the current revision must be passed when updating the item. Ignored when creating a item. * @readonly */ revision?: string | null; /** * Date and time the item was created. * @readonly */ _createdDate?: Date | null; /** * Date and time the item was updated. * @readonly */ _updatedDate?: Date | null; /** Item name. */ name?: string; /** Item description. */ description?: string | null; /** Main item image. */ image?: string; /** Additional item images. */ additionalImages?: string[]; /** Item labels. */ labels?: Label$1[]; /** Whether the item is visible in the menu for site visitors. */ visible?: boolean | null; /** Online order settings. */ orderSettings?: OrderSettings; /** Item modifier groups. */ modifierGroups?: ModifierGroup[]; /** Extended fields. */ extendedFields?: ExtendedFields$6; /** * @internal * @readonly */ oloMigrationItemId?: string | null; } interface UpdateItemOptions { /** * Explicit list of fields to update. * @internal */ mask?: string[]; /** * The source of this request. * @internal */ source?: string | null; } /** * > **Note:** The Item API only works with the Wix Restaurants Menus (New) app. Make sure you have installed this app from the [Wix App Market](https://www.wix.com/app-market/wix-restaurants-menus-new). * * Updates up to 100 multiple items at once. * * Each time an item is updated, its revision increments by 1. The existing revision must be included when updating item. This ensures you're working with the latest item information, and it prevents unintended overwrites. * @param items - Items to update. * @public * @documentationMaturity preview * @requiredField items * @requiredField items.item._id * @requiredField items.item.modifierGroups._id * @requiredField items.item.revision * @permissionId RESTAURANTS.ITEM_UPDATE * @adminMethod */ function bulkUpdateItem(items: MaskedItem[], options?: BulkUpdateItemOptions): Promise; interface BulkUpdateItemOptions { /** Whether to return entity in the response. */ returnEntity?: boolean; /** * The source of this request. * @internal */ source?: string | null; } /** * > **Note:** The Item API only works with the Wix Restaurants Menus (New) app. Make sure you have installed this app from the [Wix App Market](https://www.wix.com/app-market/wix-restaurants-menus-new). * * Deletes an item. * @param itemId - Item ID. * @public * @documentationMaturity preview * @requiredField itemId * @permissionId RESTAURANTS.ITEM_DELETE * @adminMethod */ function deleteItem(itemId: string, options?: DeleteItemOptions): Promise; interface DeleteItemOptions { /** * The source of this request. * @internal */ source?: string | null; } /** * > **Note:** The Item API only works with the Wix Restaurants Menus (New) app. Make sure you have installed this app from the [Wix App Market](https://www.wix.com/app-market/wix-restaurants-menus-new). * * Deletes multiple items at once. * @param ids - Item IDs. * @public * @documentationMaturity preview * @requiredField ids * @permissionId RESTAURANTS.ITEM_DELETE * @adminMethod */ function bulkDeleteItems(ids: string[], options?: BulkDeleteItemsOptions): Promise; interface BulkDeleteItemsOptions { /** * The source of this request. * @internal */ source?: string | null; } /** * Clone items from a different metasite. * @param metaSiteId - The MetaSiteId to clone from. * @internal * @documentationMaturity preview * @requiredField metaSiteId * @permissionId RESTAURANTS.ITEM_CREATE * @adminMethod */ function cloneItems(metaSiteId: string): Promise; type restaurantsMenusV1Item_universal_d_Item = Item; type restaurantsMenusV1Item_universal_d_ItemPricingOneOf = ItemPricingOneOf; type restaurantsMenusV1Item_universal_d_PriceVariants = PriceVariants; type restaurantsMenusV1Item_universal_d_PriceVariant = PriceVariant; type restaurantsMenusV1Item_universal_d_PriceInfo = PriceInfo; type restaurantsMenusV1Item_universal_d_OrderSettings = OrderSettings; type restaurantsMenusV1Item_universal_d_ModifierGroup = ModifierGroup; type restaurantsMenusV1Item_universal_d_UpdateDocumentsEvent = UpdateDocumentsEvent; type restaurantsMenusV1Item_universal_d_UpdateDocumentsEventOperationOneOf = UpdateDocumentsEventOperationOneOf; type restaurantsMenusV1Item_universal_d_DocumentUpdateOperation = DocumentUpdateOperation; type restaurantsMenusV1Item_universal_d_IndexDocument = IndexDocument; type restaurantsMenusV1Item_universal_d_DocumentPayload = DocumentPayload; type restaurantsMenusV1Item_universal_d_DocumentImage = DocumentImage; type restaurantsMenusV1Item_universal_d_Enum = Enum; const restaurantsMenusV1Item_universal_d_Enum: typeof Enum; type restaurantsMenusV1Item_universal_d_DeleteByIdsOperation = DeleteByIdsOperation; type restaurantsMenusV1Item_universal_d_DeleteByFilterOperation = DeleteByFilterOperation; type restaurantsMenusV1Item_universal_d_UpdateByFilterOperation = UpdateByFilterOperation; type restaurantsMenusV1Item_universal_d_UpdateExistingOperation = UpdateExistingOperation; type restaurantsMenusV1Item_universal_d_SearchIndexingNotification = SearchIndexingNotification; type restaurantsMenusV1Item_universal_d_State = State; const restaurantsMenusV1Item_universal_d_State: typeof State; type restaurantsMenusV1Item_universal_d_CreateItemRequest = CreateItemRequest; type restaurantsMenusV1Item_universal_d_CreateItemResponse = CreateItemResponse; type restaurantsMenusV1Item_universal_d_BulkCreateItemsRequest = BulkCreateItemsRequest; type restaurantsMenusV1Item_universal_d_BulkCreateItemsResponse = BulkCreateItemsResponse; type restaurantsMenusV1Item_universal_d_BulkCreateItemResult = BulkCreateItemResult; type restaurantsMenusV1Item_universal_d_GetItemRequest = GetItemRequest; type restaurantsMenusV1Item_universal_d_GetItemResponse = GetItemResponse; type restaurantsMenusV1Item_universal_d_ListItemsRequest = ListItemsRequest; type restaurantsMenusV1Item_universal_d_ListItemsResponse = ListItemsResponse; type restaurantsMenusV1Item_universal_d_QueryItemsRequest = QueryItemsRequest; type restaurantsMenusV1Item_universal_d_QueryItemsResponse = QueryItemsResponse; type restaurantsMenusV1Item_universal_d_CountItemsRequest = CountItemsRequest; type restaurantsMenusV1Item_universal_d_CountItemsResponse = CountItemsResponse; type restaurantsMenusV1Item_universal_d_UpdateItemRequest = UpdateItemRequest; type restaurantsMenusV1Item_universal_d_UpdateItemResponse = UpdateItemResponse; type restaurantsMenusV1Item_universal_d_BulkUpdateItemRequest = BulkUpdateItemRequest; type restaurantsMenusV1Item_universal_d_MaskedItem = MaskedItem; type restaurantsMenusV1Item_universal_d_BulkUpdateItemResponse = BulkUpdateItemResponse; type restaurantsMenusV1Item_universal_d_BulkItemResult = BulkItemResult; type restaurantsMenusV1Item_universal_d_DeleteItemRequest = DeleteItemRequest; type restaurantsMenusV1Item_universal_d_DeleteItemResponse = DeleteItemResponse; type restaurantsMenusV1Item_universal_d_BulkDeleteItemsRequest = BulkDeleteItemsRequest; type restaurantsMenusV1Item_universal_d_BulkDeleteItemsResponse = BulkDeleteItemsResponse; type restaurantsMenusV1Item_universal_d_BulkDeleteItemResult = BulkDeleteItemResult; type restaurantsMenusV1Item_universal_d_CloneItemsRequest = CloneItemsRequest; type restaurantsMenusV1Item_universal_d_CloneItemsResponse = CloneItemsResponse; const restaurantsMenusV1Item_universal_d_createItem: typeof createItem; type restaurantsMenusV1Item_universal_d_CreateItemOptions = CreateItemOptions; const restaurantsMenusV1Item_universal_d_bulkCreateItems: typeof bulkCreateItems; type restaurantsMenusV1Item_universal_d_BulkCreateItemsOptions = BulkCreateItemsOptions; const restaurantsMenusV1Item_universal_d_getItem: typeof getItem; const restaurantsMenusV1Item_universal_d_listItems: typeof listItems; type restaurantsMenusV1Item_universal_d_ListItemsOptions = ListItemsOptions; const restaurantsMenusV1Item_universal_d_queryItems: typeof queryItems; type restaurantsMenusV1Item_universal_d_ItemsQueryResult = ItemsQueryResult; type restaurantsMenusV1Item_universal_d_ItemsQueryBuilder = ItemsQueryBuilder; const restaurantsMenusV1Item_universal_d_countItems: typeof countItems; type restaurantsMenusV1Item_universal_d_CountItemsOptions = CountItemsOptions; const restaurantsMenusV1Item_universal_d_updateItem: typeof updateItem; type restaurantsMenusV1Item_universal_d_UpdateItem = UpdateItem; type restaurantsMenusV1Item_universal_d_UpdateItemOptions = UpdateItemOptions; const restaurantsMenusV1Item_universal_d_bulkUpdateItem: typeof bulkUpdateItem; type restaurantsMenusV1Item_universal_d_BulkUpdateItemOptions = BulkUpdateItemOptions; const restaurantsMenusV1Item_universal_d_deleteItem: typeof deleteItem; type restaurantsMenusV1Item_universal_d_DeleteItemOptions = DeleteItemOptions; const restaurantsMenusV1Item_universal_d_bulkDeleteItems: typeof bulkDeleteItems; type restaurantsMenusV1Item_universal_d_BulkDeleteItemsOptions = BulkDeleteItemsOptions; const restaurantsMenusV1Item_universal_d_cloneItems: typeof cloneItems; namespace restaurantsMenusV1Item_universal_d { export { restaurantsMenusV1Item_universal_d_Item as Item, restaurantsMenusV1Item_universal_d_ItemPricingOneOf as ItemPricingOneOf, restaurantsMenusV1Item_universal_d_PriceVariants as PriceVariants, restaurantsMenusV1Item_universal_d_PriceVariant as PriceVariant, restaurantsMenusV1Item_universal_d_PriceInfo as PriceInfo, Label$1 as Label, restaurantsMenusV1Item_universal_d_OrderSettings as OrderSettings, restaurantsMenusV1Item_universal_d_ModifierGroup as ModifierGroup, ExtendedFields$6 as ExtendedFields, restaurantsMenusV1Item_universal_d_UpdateDocumentsEvent as UpdateDocumentsEvent, restaurantsMenusV1Item_universal_d_UpdateDocumentsEventOperationOneOf as UpdateDocumentsEventOperationOneOf, restaurantsMenusV1Item_universal_d_DocumentUpdateOperation as DocumentUpdateOperation, restaurantsMenusV1Item_universal_d_IndexDocument as IndexDocument, restaurantsMenusV1Item_universal_d_DocumentPayload as DocumentPayload, restaurantsMenusV1Item_universal_d_DocumentImage as DocumentImage, restaurantsMenusV1Item_universal_d_Enum as Enum, restaurantsMenusV1Item_universal_d_DeleteByIdsOperation as DeleteByIdsOperation, restaurantsMenusV1Item_universal_d_DeleteByFilterOperation as DeleteByFilterOperation, restaurantsMenusV1Item_universal_d_UpdateByFilterOperation as UpdateByFilterOperation, restaurantsMenusV1Item_universal_d_UpdateExistingOperation as UpdateExistingOperation, DomainEvent$9 as DomainEvent, DomainEventBodyOneOf$9 as DomainEventBodyOneOf, EntityCreatedEvent$9 as EntityCreatedEvent, RestoreInfo$9 as RestoreInfo, EntityUpdatedEvent$9 as EntityUpdatedEvent, EntityDeletedEvent$9 as EntityDeletedEvent, ActionEvent$9 as ActionEvent, Empty$8 as Empty, restaurantsMenusV1Item_universal_d_SearchIndexingNotification as SearchIndexingNotification, restaurantsMenusV1Item_universal_d_State as State, SitePropertiesNotification$2 as SitePropertiesNotification, SitePropertiesEvent$2 as SitePropertiesEvent, Properties$2 as Properties, Categories$2 as Categories, Locale$3 as Locale, Address$2 as Address, AddressHint$2 as AddressHint, PlacementType$2 as PlacementType, GeoCoordinates$2 as GeoCoordinates, BusinessSchedule$2 as BusinessSchedule, TimePeriod$2 as TimePeriod, DayOfWeek$2 as DayOfWeek, SpecialHourPeriod$2 as SpecialHourPeriod, Multilingual$2 as Multilingual, SupportedLanguage$2 as SupportedLanguage, ResolutionMethod$2 as ResolutionMethod, ConsentPolicy$2 as ConsentPolicy, Translation$2 as Translation, ChangeContext$2 as ChangeContext, ChangeContextPayloadOneOf$2 as ChangeContextPayloadOneOf, PropertiesChange$2 as PropertiesChange, SiteCreated$2 as SiteCreated, SiteCloned$2 as SiteCloned, MessageEnvelope$9 as MessageEnvelope, IdentificationData$9 as IdentificationData, IdentificationDataIdOneOf$9 as IdentificationDataIdOneOf, WebhookIdentityType$9 as WebhookIdentityType, InvalidateCache$6 as InvalidateCache, InvalidateCacheGetByOneOf$6 as InvalidateCacheGetByOneOf, App$6 as App, Page$6 as Page, URI$6 as URI, File$6 as File, restaurantsMenusV1Item_universal_d_CreateItemRequest as CreateItemRequest, restaurantsMenusV1Item_universal_d_CreateItemResponse as CreateItemResponse, restaurantsMenusV1Item_universal_d_BulkCreateItemsRequest as BulkCreateItemsRequest, restaurantsMenusV1Item_universal_d_BulkCreateItemsResponse as BulkCreateItemsResponse, restaurantsMenusV1Item_universal_d_BulkCreateItemResult as BulkCreateItemResult, ItemMetadata$6 as ItemMetadata, ApplicationError$6 as ApplicationError, BulkActionMetadata$6 as BulkActionMetadata, restaurantsMenusV1Item_universal_d_GetItemRequest as GetItemRequest, restaurantsMenusV1Item_universal_d_GetItemResponse as GetItemResponse, restaurantsMenusV1Item_universal_d_ListItemsRequest as ListItemsRequest, CursorPaging$7 as CursorPaging, restaurantsMenusV1Item_universal_d_ListItemsResponse as ListItemsResponse, CursorPagingMetadata$7 as CursorPagingMetadata, Cursors$7 as Cursors, restaurantsMenusV1Item_universal_d_QueryItemsRequest as QueryItemsRequest, CursorQuery$8 as CursorQuery, CursorQueryPagingMethodOneOf$8 as CursorQueryPagingMethodOneOf, Sorting$8 as Sorting, SortOrder$8 as SortOrder, restaurantsMenusV1Item_universal_d_QueryItemsResponse as QueryItemsResponse, restaurantsMenusV1Item_universal_d_CountItemsRequest as CountItemsRequest, restaurantsMenusV1Item_universal_d_CountItemsResponse as CountItemsResponse, restaurantsMenusV1Item_universal_d_UpdateItemRequest as UpdateItemRequest, restaurantsMenusV1Item_universal_d_UpdateItemResponse as UpdateItemResponse, restaurantsMenusV1Item_universal_d_BulkUpdateItemRequest as BulkUpdateItemRequest, restaurantsMenusV1Item_universal_d_MaskedItem as MaskedItem, restaurantsMenusV1Item_universal_d_BulkUpdateItemResponse as BulkUpdateItemResponse, restaurantsMenusV1Item_universal_d_BulkItemResult as BulkItemResult, restaurantsMenusV1Item_universal_d_DeleteItemRequest as DeleteItemRequest, restaurantsMenusV1Item_universal_d_DeleteItemResponse as DeleteItemResponse, restaurantsMenusV1Item_universal_d_BulkDeleteItemsRequest as BulkDeleteItemsRequest, restaurantsMenusV1Item_universal_d_BulkDeleteItemsResponse as BulkDeleteItemsResponse, restaurantsMenusV1Item_universal_d_BulkDeleteItemResult as BulkDeleteItemResult, restaurantsMenusV1Item_universal_d_CloneItemsRequest as CloneItemsRequest, restaurantsMenusV1Item_universal_d_CloneItemsResponse as CloneItemsResponse, restaurantsMenusV1Item_universal_d_createItem as createItem, restaurantsMenusV1Item_universal_d_CreateItemOptions as CreateItemOptions, restaurantsMenusV1Item_universal_d_bulkCreateItems as bulkCreateItems, restaurantsMenusV1Item_universal_d_BulkCreateItemsOptions as BulkCreateItemsOptions, restaurantsMenusV1Item_universal_d_getItem as getItem, restaurantsMenusV1Item_universal_d_listItems as listItems, restaurantsMenusV1Item_universal_d_ListItemsOptions as ListItemsOptions, restaurantsMenusV1Item_universal_d_queryItems as queryItems, restaurantsMenusV1Item_universal_d_ItemsQueryResult as ItemsQueryResult, restaurantsMenusV1Item_universal_d_ItemsQueryBuilder as ItemsQueryBuilder, restaurantsMenusV1Item_universal_d_countItems as countItems, restaurantsMenusV1Item_universal_d_CountItemsOptions as CountItemsOptions, restaurantsMenusV1Item_universal_d_updateItem as updateItem, restaurantsMenusV1Item_universal_d_UpdateItem as UpdateItem, restaurantsMenusV1Item_universal_d_UpdateItemOptions as UpdateItemOptions, restaurantsMenusV1Item_universal_d_bulkUpdateItem as bulkUpdateItem, restaurantsMenusV1Item_universal_d_BulkUpdateItemOptions as BulkUpdateItemOptions, restaurantsMenusV1Item_universal_d_deleteItem as deleteItem, restaurantsMenusV1Item_universal_d_DeleteItemOptions as DeleteItemOptions, restaurantsMenusV1Item_universal_d_bulkDeleteItems as bulkDeleteItems, restaurantsMenusV1Item_universal_d_BulkDeleteItemsOptions as BulkDeleteItemsOptions, restaurantsMenusV1Item_universal_d_cloneItems as cloneItems, }; } interface Label { /** * Item label ID. * @readonly */ _id?: string | null; /** * Revision number, which increments by 1 each time the item label is updated. To prevent conflicting changes, the current revision must be passed when updating the item label. Ignored when creating a item label. * @readonly */ revision?: string | null; /** * Date and time the item label was created. * @readonly */ _createdDate?: Date | null; /** * Date and time the item label was updated. * @readonly */ _updatedDate?: Date | null; /** Item label name. */ name?: string; /** Item label icon. */ icon?: string; /** Extended fields. */ extendedFields?: ExtendedFields$5; } interface ExtendedFields$5 { /** * Extended field data. Each key corresponds to the namespace of the app that created the extended fields. * The value of each key is structured according to the schema defined when the extended fields were configured. * * You can only access fields for which you have the appropriate permissions. * * Learn more about [extended fields](https://dev.wix.com/docs/rest/articles/getting-started/extended-fields). */ namespaces?: Record>; } interface InvalidateCache$5 extends InvalidateCacheGetByOneOf$5 { /** Invalidate by msId. NOT recommended, as this will invalidate the entire site cache! */ metaSiteId?: string; /** Invalidate by Site ID. NOT recommended, as this will invalidate the entire site cache! */ siteId?: string; /** Invalidate by App */ app?: App$5; /** Invalidate by page id */ page?: Page$5; /** Invalidate by URI path */ uri?: URI$5; /** Invalidate by file (for media files such as PDFs) */ file?: File$5; /** tell us why you're invalidating the cache. You don't need to add your app name */ reason?: string | null; /** Is local DS */ localDc?: boolean; hardPurge?: boolean; } /** @oneof */ interface InvalidateCacheGetByOneOf$5 { /** Invalidate by msId. NOT recommended, as this will invalidate the entire site cache! */ metaSiteId?: string; /** Invalidate by Site ID. NOT recommended, as this will invalidate the entire site cache! */ siteId?: string; /** Invalidate by App */ app?: App$5; /** Invalidate by page id */ page?: Page$5; /** Invalidate by URI path */ uri?: URI$5; /** Invalidate by file (for media files such as PDFs) */ file?: File$5; } interface App$5 { /** The AppDefId */ appDefId?: string; /** The instance Id */ instanceId?: string; } interface Page$5 { /** the msid the page is on */ metaSiteId?: string; /** Invalidate by Page ID */ pageId?: string; } interface URI$5 { /** the msid the URI is on */ metaSiteId?: string; /** URI path to invalidate (e.g. page/my/path) - without leading/trailing slashes */ uriPath?: string; } interface File$5 { /** the msid the file is related to */ metaSiteId?: string; /** Invalidate by filename (for media files such as PDFs) */ fileName?: string; } interface CreateLabelRequest { /** Item label details. */ label: Label; } interface CreateLabelResponse { /** Item label. */ label?: Label; } interface GetLabelRequest { /** Item label ID. */ labelId: string; } interface GetLabelResponse { /** Item label. */ label?: Label; } interface ListLabelsRequest { } interface ListLabelsResponse { /** Retrieved item labels. */ labels?: Label[]; } interface QueryLabelsRequest { /** Query options. */ query?: CursorQuery$7; } interface CursorQuery$7 extends CursorQueryPagingMethodOneOf$7 { /** 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`. */ cursorPaging?: CursorPaging$6; /** * Filter object in the following format: * `"filter" : { * "fieldName1": "value1", * "fieldName2":{"$operator":"value2"} * }` * Example of operators: `$eq`, `$ne`, `$lt`, `$lte`, `$gt`, `$gte`, `$in`, `$hasSome`, `$hasAll`, `$startsWith`, `$contains` */ filter?: Record | null; /** * Sort object in the following format: * `[{"fieldName":"sortField1","order":"ASC"},{"fieldName":"sortField2","order":"DESC"}]` */ sort?: Sorting$7[]; } /** @oneof */ interface CursorQueryPagingMethodOneOf$7 { /** 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`. */ cursorPaging?: CursorPaging$6; } interface Sorting$7 { /** Name of the field to sort by. */ fieldName?: string; /** Sort order. */ order?: SortOrder$7; /** * When `field_name` is a property of repeated field that is marked as `MATCH_ITEMS` and sort should be done by * a specific element from a collection, filter can/should be provided to ensure correct sort value is picked. * * If multiple filters are provided, they are combined with AND operator. * * Example: * Given we have document like {"id": "1", "nestedField": [{"price": 10, "region": "EU"}, {"price": 20, "region": "US"}]} * and `nestedField` is marked as `MATCH_ITEMS`, to ensure that sorting is done by correct region, filter should be * { fieldName: "nestedField.price", "select_items_by": [{"nestedField.region": "US"}] } * @internal */ selectItemsBy?: Record[] | null; } enum SortOrder$7 { ASC = "ASC", DESC = "DESC" } interface CursorPaging$6 { /** Number of items to load. */ limit?: number | null; /** * Pointer to the next or previous page in the list of results. * * You can get the relevant cursor token * from the `pagingMetadata` object in the previous call's response. * Not relevant for the first request. */ cursor?: string | null; } interface QueryLabelsResponse { /** Retrieved item labels. */ labels?: Label[]; /** The metadata of the paginated results. */ pagingMetadata?: CursorPagingMetadata$6; } interface CursorPagingMetadata$6 { /** Number of items returned in the response. */ count?: number | null; /** Offset that was requested. */ cursors?: Cursors$6; /** * Indicates if there are more results after the current page. * If `true`, another page of results can be retrieved. * If `false`, this is the last page. */ hasNext?: boolean | null; } interface Cursors$6 { /** Cursor pointing to next page in the list of results. */ next?: string | null; /** Cursor pointing to previous page in the list of results. */ prev?: string | null; } interface UpdateLabelRequest { /** Item label to update. */ label: Label; /** * Explicit list of fields to update. * @internal */ mask?: string[]; } interface UpdateLabelResponse { /** Updated item label. */ label?: Label; } interface DeleteLabelRequest { /** ID of the item label. */ labelId: string; } interface DeleteLabelResponse { } interface CloneLabelsRequest { /** The MetaSiteId to clone from. */ metaSiteId: string; } interface CloneLabelsResponse { } interface DomainEvent$8 extends DomainEventBodyOneOf$8 { createdEvent?: EntityCreatedEvent$8; updatedEvent?: EntityUpdatedEvent$8; deletedEvent?: EntityDeletedEvent$8; actionEvent?: ActionEvent$8; /** * Unique event ID. * Allows clients to ignore duplicate webhooks. */ _id?: string; /** * Assumes actions are also always typed to an entity_type * Example: wix.stores.catalog.product, wix.bookings.session, wix.payments.transaction */ entityFqdn?: string; /** * This is top level to ease client code dispatching of messages (switch on entity_fqdn+slug) * This is although the created/updated/deleted notion is duplication of the oneof types * Example: created/updated/deleted/started/completed/email_opened */ slug?: string; /** ID of the entity associated with the event. */ entityId?: string; /** Event timestamp in [ISO-8601](https://en.wikipedia.org/wiki/ISO_8601) format and UTC time. For example: 2020-04-26T13:57:50.699Z */ eventTime?: Date | null; /** * Whether the event was triggered as a result of a privacy regulation application * (for example, GDPR). */ triggeredByAnonymizeRequest?: boolean | null; /** If present, indicates the action that triggered the event. */ originatedFrom?: string | null; /** * A sequence number defining the order of updates to the underlying entity. * For example, given that some entity was updated at 16:00 and than again at 16:01, * it is guaranteed that the sequence number of the second update is strictly higher than the first. * As the consumer, you can use this value to ensure that you handle messages in the correct order. * To do so, you will need to persist this number on your end, and compare the sequence number from the * message against the one you have stored. Given that the stored number is higher, you should ignore the message. */ entityEventSequence?: string | null; } /** @oneof */ interface DomainEventBodyOneOf$8 { createdEvent?: EntityCreatedEvent$8; updatedEvent?: EntityUpdatedEvent$8; deletedEvent?: EntityDeletedEvent$8; actionEvent?: ActionEvent$8; } interface EntityCreatedEvent$8 { entityAsJson?: string; /** * Indicates the event was triggered by a restore-from-trashbin operation for a previously deleted entity * @internal */ triggeredByUndelete?: boolean | null; /** Indicates the event was triggered by a restore-from-trashbin operation for a previously deleted entity */ restoreInfo?: RestoreInfo$8; } interface RestoreInfo$8 { deletedDate?: Date | null; } interface EntityUpdatedEvent$8 { /** * Since platformized APIs only expose PATCH and not PUT we can't assume that the fields sent from the client are the actual diff. * This means that to generate a list of changed fields (as opposed to sent fields) one needs to traverse both objects. * We don't want to impose this on all developers and so we leave this traversal to the notification recipients which need it. */ currentEntityAsJson?: string; /** * This field is currently part of the of the EntityUpdatedEvent msg, but scala/node libraries which implements the domain events standard * wont populate it / have any reference to it in the API. * The main reason for it is that fetching the old entity from the DB will have a performance hit on an update operation so unless truly needed, * the developer should send only the new (current) entity. * An additional reason is not wanting to send this additional entity over the wire (kafka) since in some cases it can be really big * Developers that must reflect the old entity will have to implement their own domain event sender mechanism which will follow the DomainEvent proto message. * @internal * @deprecated */ previousEntityAsJson?: string | null; /** * WIP - This property will hold both names and values of the updated fields of the entity. * For more details please see [adr](https://docs.google.com/document/d/1PdqsOM20Ph2HAkmx8zvUnzzk3Sekp3BR9h34wSvsRnI/edit#heading=h.phlw87mh2imx) or [issue](https://github.com/wix-private/nile-tracker/issues/363) * @internal */ modifiedFields?: Record; } interface EntityDeletedEvent$8 { /** * Indicates if the entity is sent to trash-bin. only available when trash-bin is enabled * @internal */ movedToTrash?: boolean | null; /** Entity that was deleted */ deletedEntityAsJson?: string | null; } interface ActionEvent$8 { bodyAsJson?: string; } interface Empty$7 { } interface MessageEnvelope$8 { /** App instance ID. */ instanceId?: string | null; /** Event type. */ eventType?: string; /** The identification type and identity data. */ identity?: IdentificationData$8; /** Stringify payload. */ data?: string; } interface IdentificationData$8 extends IdentificationDataIdOneOf$8 { /** ID of a site visitor that has not logged in to the site. */ anonymousVisitorId?: string; /** ID of a site visitor that has logged in to the site. */ memberId?: string; /** ID of a Wix user (site owner, contributor, etc.). */ wixUserId?: string; /** ID of an app. */ appId?: string; /** @readonly */ identityType?: WebhookIdentityType$8; } /** @oneof */ interface IdentificationDataIdOneOf$8 { /** ID of a site visitor that has not logged in to the site. */ anonymousVisitorId?: string; /** ID of a site visitor that has logged in to the site. */ memberId?: string; /** ID of a Wix user (site owner, contributor, etc.). */ wixUserId?: string; /** ID of an app. */ appId?: string; } enum WebhookIdentityType$8 { UNKNOWN = "UNKNOWN", ANONYMOUS_VISITOR = "ANONYMOUS_VISITOR", MEMBER = "MEMBER", WIX_USER = "WIX_USER", APP = "APP" } /** * > **Note:** The Label API only works with the Wix Restaurants Menus (New) app. Make sure you have installed this app from the [Wix App Market](https://www.wix.com/app-market/wix-restaurants-menus-new). * * Creates an item label. * @param label - Item label details. * @public * @documentationMaturity preview * @requiredField label * @permissionId RESTAURANTS.LABEL_CREATE * @adminMethod * @returns Item label. */ function createLabel(label: Label): Promise