/** * An operation is a service a restaurant offers that includes various aspects of its online ordering. * You can define default fulfillments, service fees, and scheduling requirements for each operation. */ export interface Operation extends OperationOnlineOrderingStatusOptionsOneOf { /** Options for online ordering status. Required when `onlineOrderingStatus` is `PAUSED_UNTIL`. */ pausedUntilOptions?: OnlineOrderingPausedUntilOptions; /** * Operation ID. * @readonly */ _id?: string | null; /** * Revision number. Increments by 1 each time the operation is updated. * To prevent conflicting changes, * the existing `revision` must be specified when updating an operation. * @readonly */ revision?: string | null; /** * Date and time the operation was created. * @readonly */ _createdDate?: Date | null; /** * Date and time the operation was updated. * @readonly */ _updatedDate?: Date | null; /** Operation name. */ name?: string | null; /** * Whether the operation is the default operation.
* Default: `false`. */ default?: boolean | null; /** IDs of the fulfillment methods ([SDK](https://dev.wix.com/docs/sdk/backend-modules/restaurants/wix-restaurants-new/fulfillment-methods/introduction) | [REST](https://dev.wix.com/docs/rest/api-reference/wix-restaurants/fulfillment-methods/introduction)) associated with the operation. */ fulfillmentIds?: string[] | null; /** Online ordering status of the operation.
*/ onlineOrderingStatus?: OnlineOrderingStatusType; /** * IDs of the service fee rules ([SDK](https://dev.wix.com/docs/sdk/backend-modules/restaurants/service-fees/introduction) | [REST](https://dev.wix.com/docs/rest/api-reference/wix-restaurants/service-fees/introduction)) associated with the operation. * @deprecated * @targetRemovalDate 2024-11-30 */ serviceFeeRuleIds?: string[] | null; /** Default fulfillment type of the operation. */ defaultFulfillmentType?: FulfillmentType; /** Information about when an order can be placed for. */ orderScheduling?: OrderScheduling; } /** @oneof */ export interface OperationOnlineOrderingStatusOptionsOneOf { /** Options for online ordering status. Required when `onlineOrderingStatus` is `PAUSED_UNTIL`. */ pausedUntilOptions?: OnlineOrderingPausedUntilOptions; } /** Information about when an order can be placed for. */ export interface Scheduling extends SchedulingSchedulingOptionsOneOf { /** Options for scheduling. Required when `type` is `ASAP`. */ asapOptions?: AsapScheduling; /** Options for scheduling. Required when `type` is `PREORDER`. */ preorderOptions?: PreorderScheduling; /** * Scheduling type.
* - When `ASAP`, `asapOptions` is a required field. * - When `PREORDER`, `preorderOptions` is a required field. */ type?: SchedulingType; } /** @oneof */ export interface SchedulingSchedulingOptionsOneOf { /** Options for scheduling. Required when `type` is `ASAP`. */ asapOptions?: AsapScheduling; /** Options for scheduling. Required when `type` is `PREORDER`. */ preorderOptions?: PreorderScheduling; } /** Scheduling type enum. */ export declare enum SchedulingType { /** Unknown scheduling type. */ UNKNOWN_SCHEDULING = "UNKNOWN_SCHEDULING", /** Orders can be scheduled for the future and to be handled immediately. */ ASAP = "ASAP", /** Orders can be scheduled only for the future. */ PREORDER = "PREORDER" } /** Options for scheduling. Required if `type` is `ASAP`. */ export interface AsapScheduling extends AsapSchedulingPreparationTimeOneOf, AsapSchedulingAsapPreorderOneOf { /** Options for preparation time. Required when `type` is `MAX_TIME`. */ maxOptions?: TimeDuration; /** Options for preparation time. Required when `type` is `TIME_RANGE`. */ rangeOptions?: TimeDurationRange; /** Information for when orders must be made a set number of business days in advance. */ businessDaysPreorderOptions?: BusinessDaysPreorder; /** How to define the time needed to prepare an order. */ type?: PreparationTimeType; /** * Indication of whether it is possible to place an order for a later time on the same day. * @deprecated Indication of whether it is possible to place an order for a later time on the same day. * @replacedBy asap_preorder_type * @targetRemovalDate 2023-12-28 */ allowSameDayPreorder?: boolean | null; /** The type of preorder allowed for the ASAP scheduling. */ asapPreorderType?: AsapPreorderType; } /** @oneof */ export interface AsapSchedulingPreparationTimeOneOf { /** Options for preparation time. Required when `type` is `MAX_TIME`. */ maxOptions?: TimeDuration; /** Options for preparation time. Required when `type` is `TIME_RANGE`. */ rangeOptions?: TimeDurationRange; } /** @oneof */ export interface AsapSchedulingAsapPreorderOneOf { /** Information for when orders must be made a set number of business days in advance. */ businessDaysPreorderOptions?: BusinessDaysPreorder; } /** Preparation time type enum. */ export declare enum PreparationTimeType { /** Unknown preparation time type. */ UNKNOWN_PREPARATION_TIME = "UNKNOWN_PREPARATION_TIME", /** Preparation time that is bounded by a maximum time. */ MAX = "MAX", /** Preparation time that is bounded by a range of times. */ RANGE = "RANGE" } /** Time duration. */ export interface TimeDuration { /** Unit of time for the duration. */ timeUnit?: TimeUnit; /** Duration value. Unit of time specified in `timeUnit`. */ duration?: number | null; } /** Time unit enum. */ export declare enum TimeUnit { /** Unknown time unit. */ UNKNOWN_TIME_UNIT = "UNKNOWN_TIME_UNIT", /** Minutes time unit. */ MINUTES = "MINUTES", /** Hours time unit. */ HOURS = "HOURS", /** Days time unit. */ DAYS = "DAYS" } /** Time range for preparation. */ export interface TimeDurationRange { /** Time unit for the time range. */ timeUnit?: TimeUnit; /** Minimum duration value. Unit of time specified in `timeUnit`. */ minDuration?: number | null; /** Maximum duration value. Unit of time specified in `timeUnit`. */ maxDuration?: number | null; } /** Asap preorder type enum. */ export declare enum AsapPreorderType { /** Unknown ASAP preorder type. */ UNKNOWN_ASAP_PREORDER = "UNKNOWN_ASAP_PREORDER", /** Doesn't allow preorder. */ NO_PREORDER = "NO_PREORDER", /** Allows preorder for a maximum specified number of business days in advance. */ BUSINESS_DAYS_PREORDER = "BUSINESS_DAYS_PREORDER" } /** Information for when orders must be made a set number of business days in advance. */ export interface BusinessDaysPreorder { /** * Maximum number of business days an order can be scheduled in advance. * * When `0`, an order can be scheduled only until the end of the current business day. * For any other value, the order can be scheduled for the end of the business day in that many days. * For example, `5` means the order can be scheduled for any time before the end of the 5th business day from today (where today is "day 0"). */ businessDays?: number | null; } /** Information about preorders. */ export interface PreorderScheduling { method?: PreorderMethod; /** * Configuration of the fulfillment times.
* Currently, only `TIME_WINDOWS` is supported. */ fulfillmentTimesDisplay?: FulfillmentTimesDisplayConfig; } /** Method for `PREORDER` scheduling type. */ export interface PreorderMethod extends PreorderMethodMethodOptionsOneOf { /** Options for the method. Required when `type` is `TIME_BOUNDED`. */ timeBoundedOptions?: TimeBounded; /** Options for the method. Required when `type` is `WEEKLY_SCHEDULE`. */ weeklyScheduleOptions?: WeeklySchedule; /** * Type of time frame for how long in advance preorders can be made.
* - When `TIME_BOUNDED`, `timeBoundedOptions` is a required field. * - When `WEEKLY_SCHEDULE`, `weeklyScheduleOptions` is a required field. */ type?: MethodType; } /** @oneof */ export interface PreorderMethodMethodOptionsOneOf { /** Options for the method. Required when `type` is `TIME_BOUNDED`. */ timeBoundedOptions?: TimeBounded; /** Options for the method. Required when `type` is `WEEKLY_SCHEDULE`. */ weeklyScheduleOptions?: WeeklySchedule; } /** Day of the week and time of the day. */ export interface DayAndTime { /** Day of the week. */ dayOfWeek?: EntitiesDayOfWeek; /** Time of the day. */ timeOfDay?: TimeOfDay; } export declare enum EntitiesDayOfWeek { /** Monday. */ MON = "MON", /** Tuesday. */ TUE = "TUE", /** Wednesday. */ WED = "WED", /** Thursday. */ THU = "THU", /** Friday. */ FRI = "FRI", /** Saturday. */ SAT = "SAT", /** Sunday. */ SUN = "SUN" } export interface TimeOfDay { /** * Hours.
* Min: `0`.
* Max: `23`. */ hours?: number; /** * Minutes.
* Min: `0`.
* Max: `23`. */ minutes?: number; } /** Preorder method type enum. */ export declare enum MethodType { /** Unknown preorder method type. */ UNKNOWN_TYPE = "UNKNOWN_TYPE", /** Preorder time has a minimum and a maximum. */ TIME_BOUNDED = "TIME_BOUNDED", /** Preorders have a weekly schedule with a weekly cutoff time. */ WEEKLY_SCHEDULE = "WEEKLY_SCHEDULE" } /** Information about the time range when preorders are time bounded. */ export interface TimeBounded { /** Minimum time required to schedule the order. */ minTimeInAdvance?: TimeDuration; /** Maximum time allowed to schedule the order. */ maxTimeInAdvance?: TimeDuration; } /** Options for the method. Required when `type` is `WEEKLY_SCHEDULE`. */ export interface WeeklySchedule { /** * The weekly schedule cutoff time.
* Orders placed before the cutoff time are scheduled for the current week.
* Orders placed after the cutoff time are scheduled for the next week. */ cutOffTime?: DayAndTime; } /** Way by which fulfillment times should be displayed. */ export interface FulfillmentTimesDisplayConfig extends FulfillmentTimesDisplayConfigFulfillmentTimesDisplayOptionsOneOf { /** Options for fulfillment time. Required when `fulfillmentTimesType` is `TIME_WINDOWS`. */ timeWindowsOptions?: TimeDuration; /** * Type of the fulfillment times.
* When `TIME_WINDOWS`, `timeWindowsOptions` is a required field. */ type?: FulfillmentTimesType; } /** @oneof */ export interface FulfillmentTimesDisplayConfigFulfillmentTimesDisplayOptionsOneOf { /** Options for fulfillment time. Required when `fulfillmentTimesType` is `TIME_WINDOWS`. */ timeWindowsOptions?: TimeDuration; } /** The fulfillment times type enum. */ export declare enum FulfillmentTimesType { /** Unknown fulfillment times type. */ UNKNOWN_TYPE = "UNKNOWN_TYPE", /** Display fulfillment times as time windows. */ TIME_WINDOWS = "TIME_WINDOWS" } /** Online ordering status enum. */ export declare enum OnlineOrderingStatusType { /** Online ordering status is not defined. */ UNDEFINED_ONLINE_ORDERING_STATUS = "UNDEFINED_ONLINE_ORDERING_STATUS", /** Operation currently accepts online orders. */ ENABLED = "ENABLED", /** Operation currently does not accept online orders. */ DISABLED = "DISABLED", /** Operation currently does not accept online orders, but will accept online orders from a specified time and date. When applied, `pausedUntilOptions` is a required field. */ PAUSED_UNTIL = "PAUSED_UNTIL" } /** Options for online ordering status. Required when `onlineOrderingStatus` is `PAUSED_UNTIL`. */ export interface OnlineOrderingPausedUntilOptions { /** * Date and time until which online ordering is paused.
* * Before the specified time, behavior is the same as when `onlineOrderingStatus` is `DISABLED`.
* * After the specified time, behavior is the same as when `onlineOrderingStatus` is `ENABLED`.
* * Passing the time does not trigger any changes to value of any properties. */ time?: Date | null; } /** Fulfillment type enum. */ export declare enum FulfillmentType { /** Undefined fulfillment type. */ UNDEFINED_FULFILLMENT_TYPE = "UNDEFINED_FULFILLMENT_TYPE", /** Pickup fulfillment. */ PICKUP = "PICKUP", /** Delivery fulfillment. */ DELIVERY = "DELIVERY" } /** Information about when an order can be placed for. */ export interface OrderScheduling extends OrderSchedulingOrderSchedulingOptionsOneOf { /** Options for scheduling. Required if `type` is `ASAP`. */ asapOptions?: AsapOrderScheduling; /** Options for scheduling. Required if `type` is `PREORDER`. */ preorderOptions?: PreorderScheduling; /** * Scheduling type.
* - When `ASAP`, `asapOptions` is a required field. * - When `PREORDER`, `preorderOptions` is a required field. */ type?: SchedulingType; } /** @oneof */ export interface OrderSchedulingOrderSchedulingOptionsOneOf { /** Options for scheduling. Required if `type` is `ASAP`. */ asapOptions?: AsapOrderScheduling; /** Options for scheduling. Required if `type` is `PREORDER`. */ preorderOptions?: PreorderScheduling; } export interface AsapOrderScheduling extends AsapOrderSchedulingAsapFutureHandlingOptionsOneOf { /** Options for future handling. Required when `asapFutureHandlingType` is `BUSINESS_DAYS_AHEAD_HANDLING`. */ businessDaysAheadHandlingOptions?: BusinessDaysAheadHandling; /** * Amount of time needed to prepare the order.
* - When `MAX_TIME`, `maxTimeOptions` is a required field. * - When `MAX_RANGE`, `timeRangeOptions` is a required field. */ preparationTime?: PreparationTime; /** * Defines if and how non-immediate orders should be handled.
* When this value is `BUSINESS_DAYS_AHEAD_HANDLING`, `businessDaysAheadHandlingOptions` is a required field. */ asapFutureHandlingType?: AsapFutureHandlingType; } /** @oneof */ export interface AsapOrderSchedulingAsapFutureHandlingOptionsOneOf { /** Options for future handling. Required when `asapFutureHandlingType` is `BUSINESS_DAYS_AHEAD_HANDLING`. */ businessDaysAheadHandlingOptions?: BusinessDaysAheadHandling; } export interface PreparationTime extends PreparationTimeTimeSpecificationOneOf { /** Options for preparation time. Required when `type` is `MAX_TIME`. */ maxTimeOptions?: TimeDuration; /** Options for preparation time. Required when `type` is `TIME_RANGE`. */ timeRangeOptions?: TimeDurationRange; /** Preparation time type. */ type?: PreparationTimePreparationTimeType; } /** @oneof */ export interface PreparationTimeTimeSpecificationOneOf { /** Options for preparation time. Required when `type` is `MAX_TIME`. */ maxTimeOptions?: TimeDuration; /** Options for preparation time. Required when `type` is `TIME_RANGE`. */ timeRangeOptions?: TimeDurationRange; } /** Preparation time type enum. */ export declare enum PreparationTimePreparationTimeType { UNKNOWN_PREPARATION_TIME = "UNKNOWN_PREPARATION_TIME", MAX_TIME = "MAX_TIME", TIME_RANGE = "TIME_RANGE" } export declare enum AsapFutureHandlingType { /** Unknown asap future handling type. */ UNKNOWN_ASAP_FUTURE_HANDLING = "UNKNOWN_ASAP_FUTURE_HANDLING", /** No future handling. */ NO_FUTURE_HANDLING = "NO_FUTURE_HANDLING", /** Allows future orders for up to a specified number of business days ahead. */ BUSINESS_DAYS_AHEAD_HANDLING = "BUSINESS_DAYS_AHEAD_HANDLING" } export interface BusinessDaysAheadHandling { /** * Number of business days ahead for which orders can be scheduled.
* Setting the `daysCount` to 0 means that orders can be scheduled until the end of the current business day. */ daysCount?: number | null; } export interface BusinessLocationDetails { } export interface V1Address { /** 2-letter country code in an [ISO-3166 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) format. */ country?: string | null; /** Code for a subdivision (such as state, prefecture, or province) in [ISO 3166-2](https://en.wikipedia.org/wiki/ISO_3166-2) format. */ subdivision?: string | null; /** City name. */ city?: string | null; /** Postal or zip code. */ postalCode?: string | null; /** Street address. Includes street name, number, and apartment number in separate fields. */ streetAddress?: V1StreetAddress; /** Full address of the location. */ formatted?: string | null; /** Geographic coordinates of location. */ location?: V1AddressLocation; } /** Street address. Includes street name, number, and apartment number in separate fields. */ export interface V1StreetAddress { /** Street number. */ number?: string; /** Street name. */ name?: string; /** Apartment number. */ apt?: string; } /** Address Geolocation */ export interface V1AddressLocation { /** Latitude of the location. Must be between -90 and 90. */ latitude?: number | null; /** Longitude of the location. Must be between -180 and 180. */ longitude?: number | null; } export interface InvalidateCache extends InvalidateCacheGetByOneOf { /** 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; /** Invalidate by page id */ page?: Page; /** Invalidate by URI path */ uri?: URI; /** Invalidate by file (for media files such as PDFs) */ file?: File; /** 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 */ export interface InvalidateCacheGetByOneOf { /** 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; /** Invalidate by page id */ page?: Page; /** Invalidate by URI path */ uri?: URI; /** Invalidate by file (for media files such as PDFs) */ file?: File; } export interface App { /** The AppDefId */ appDefId?: string; /** The instance Id */ instanceId?: string; } export interface Page { /** the msid the page is on */ metaSiteId?: string; /** Invalidate by Page ID */ pageId?: string; } export interface URI { /** the msid the URI is on */ metaSiteId?: string; /** URI path to invalidate (e.g. page/my/path) - without leading/trailing slashes */ uriPath?: string; } export interface File { /** the msid the file is related to */ metaSiteId?: string; /** Invalidate by filename (for media files such as PDFs) */ fileName?: string; } export interface DeliveryProfileConfiguredForOperation { /** Operation */ operation?: Operation; } export interface OperationsDataCloningCompleted { } export interface CreateOperationRequest { /** Operation to create. */ operation: Operation; } export interface CreateOperationResponse { /** Created operation. */ operation?: Operation; } export interface GetOperationRequest { /** ID of the operation to retrieve. */ operationId: string; } export interface GetOperationResponse { /** Retrieved operation. */ operation?: Operation; } export interface UpdateOperationRequest { /** Operation to update. */ operation: Operation; } export interface UpdateOperationResponse { /** Updated operation. */ operation?: Operation; } export interface DeleteOperationRequest { /** ID of the operation to delete. */ operationId: string; } export interface DeleteOperationResponse { } export interface QueryOperationRequest { /** Query options. */ query: CursorQuery; } export interface CursorQuery extends CursorQueryPagingMethodOneOf { /** 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; /** * Filter object. * See [API Query Language](https://dev.wix.com/api/rest/getting-started/api-query-language) * for more information. * * For a detailed list of supported filters, see * [Supported Filters](https://dev.wix.com/docs/rest/api-reference/wix-restaurants/operations/operations/supported-filters-and-sorting). */ filter?: Record | null; /** Sort object. */ sort?: Sorting[]; } /** @oneof */ export interface CursorQueryPagingMethodOneOf { /** 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; } export interface Sorting { /** * Supported properties: * - `id` * - `createdDate` * - `updatedDate` * - `name` */ fieldName?: string; /** * Sort order. Use `ASC` for ascending order or `DESC` for descending order.
* * Default: `ASC` */ order?: SortOrder; } export declare enum SortOrder { ASC = "ASC", DESC = "DESC" } export interface CursorPaging { /** 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; } export interface QueryOperationResponse { /** Retrieved operations. */ operations?: Operation[]; /** Metadata of the paginated results. */ pagingMetadata?: CursorPagingMetadata; } export interface CursorPagingMetadata { /** Number of items returned in the response. */ count?: number | null; /** Cursor strings that point to the next page, previous page, or both. */ cursors?: Cursors; /** * 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; } export interface Cursors { /** 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; } export interface ListOperationsRequest { } export interface ListOperationsResponse { /** Retrieved operations. */ operations?: Operation[]; } export interface ListOperationIdsRequest { /** metasite id */ metasiteId?: string; } export interface ListOperationIdsResponse { /** List of operation ids */ operationIds?: string[]; } export interface ListOperationsInternalRequest { /** metasite id */ metasiteId?: string; } export interface ListOperationsInternalResponse { /** List of operations */ operations?: Operation[]; } export interface ListAvailableFulfillmentOptionsRequest { /** Operation ID. Returned fulfillment options will belong to this operation. */ operationId: string; /** * Delivery address. Optional. * * If provided, the returned delivery fulfillment options will be able to deliver to this address. */ deliveryAddress?: CommonAddress; } /** Physical address */ export interface CommonAddress extends CommonAddressStreetOneOf { /** Street name and number. */ streetAddress?: StreetAddress; /** Main address line, usually street and number as free text. */ addressLine1?: string | null; /** Country code. */ country?: string | null; /** Subdivision. Usually a state, region, prefecture, or province code, according to [ISO 3166-2](https://en.wikipedia.org/wiki/ISO_3166-2). */ subdivision?: string | null; /** City name. */ city?: string | null; /** Zip/postal code. */ postalCode?: string | null; /** Free text providing more detailed address info. Usually contains Apt, Suite, and Floor. */ addressLine2?: string | null; } /** @oneof */ export interface CommonAddressStreetOneOf { /** Street name and number. */ streetAddress?: StreetAddress; /** Main address line, usually street and number as free text. */ addressLine?: string | null; } export interface StreetAddress { /** Street number. */ number?: string; /** Street name. */ name?: string; } export interface AddressLocation { /** Address latitude. */ latitude?: number | null; /** Address longitude. */ longitude?: number | null; } export interface Subdivision { /** Short subdivision code. */ code?: string; /** Subdivision full name. */ name?: string; } export declare enum SubdivisionType { UNKNOWN_SUBDIVISION_TYPE = "UNKNOWN_SUBDIVISION_TYPE", /** State */ ADMINISTRATIVE_AREA_LEVEL_1 = "ADMINISTRATIVE_AREA_LEVEL_1", /** County */ ADMINISTRATIVE_AREA_LEVEL_2 = "ADMINISTRATIVE_AREA_LEVEL_2", /** City/town */ ADMINISTRATIVE_AREA_LEVEL_3 = "ADMINISTRATIVE_AREA_LEVEL_3", /** Neighborhood/quarter */ ADMINISTRATIVE_AREA_LEVEL_4 = "ADMINISTRATIVE_AREA_LEVEL_4", /** Street/block */ ADMINISTRATIVE_AREA_LEVEL_5 = "ADMINISTRATIVE_AREA_LEVEL_5", /** ADMINISTRATIVE_AREA_LEVEL_0. Indicates the national political entity, and is typically the highest order type returned by the Geocoder. */ COUNTRY = "COUNTRY" } export interface ListAvailableFulfillmentOptionsResponse { /** Whether pickup fulfillment method is configured for the requested operation. */ pickupConfigured?: boolean; /** Whether delivery fulfillment method is configured for the requested operation. */ deliveryConfigured?: boolean; /** List of the available fulfillment options. */ fulfillmentOptions?: FulfillmentOption[]; /** Whether availability exceptions block the fulfillment options. */ blockedByAvailabilityExceptions?: boolean | null; } /** Fulfillment method that is currently available to fulfill orders, given its availability and the operation's scheduling configurations. */ export interface FulfillmentOption extends FulfillmentOptionFulfillmentTimeOptionsOneOf, FulfillmentOptionFulfillmentTimesDisplayOptionsOneOf, FulfillmentOptionFulfillmentTypeOptionsOneOf { /** Fulfillment time has a maximum time. */ maxTimeOptions?: number; /** Fulfillment time is limited by a range. */ durationRangeOptions?: DurationRange; /** Options for fulfillment time. Required when `type` is `TIME_WINDOWS`. */ timeWindowsOptions?: TimeWindowDisplayConfig; /** Information about pickup fulfillment types. */ pickupOptions?: PickupDetails; /** Information about delivery fulfillment types. */ deliveryOptions?: DeliveryDetails; /** Fulfillment method ID. */ _id?: string | null; /** Fulfillment option type. */ type?: FulfillmentType; /** Minimum order price to qualify for the fulfillment option. */ minOrderPrice?: string | null; /** Fee for using the fulfillment option. */ fee?: string | null; /** Availability of the fulfillment option. */ availability?: FulfillmentOptionAvailability; /** * Fulfillment time type. * Relevant only to ASAP operations. */ fulfillmentTimeType?: FulfillmentTimeType; /** Fulfillment times display type. Relevant to preorder operations. */ fulfillmentTimesDisplayType?: FulfillmentTimesDisplayType; /** * Minimum order price for free fulfillment. * If order price exceeds this amount, the given `fee` is waived. */ freeFulfillmentPriceThreshold?: string | null; /** Instructions for the fulfillment. */ instructions?: string | null; businessLocationId?: string | null; } /** @oneof */ export interface FulfillmentOptionFulfillmentTimeOptionsOneOf { /** Fulfillment time has a maximum time. */ maxTimeOptions?: number; /** Fulfillment time is limited by a range. */ durationRangeOptions?: DurationRange; } /** @oneof */ export interface FulfillmentOptionFulfillmentTimesDisplayOptionsOneOf { /** Options for fulfillment time. Required when `type` is `TIME_WINDOWS`. */ timeWindowsOptions?: TimeWindowDisplayConfig; } /** @oneof */ export interface FulfillmentOptionFulfillmentTypeOptionsOneOf { /** Information about pickup fulfillment types. */ pickupOptions?: PickupDetails; /** Information about delivery fulfillment types. */ deliveryOptions?: DeliveryDetails; } /** Availability of the fulfillment option. */ export interface FulfillmentOptionAvailability { /** Date and time at which the fulfillment option's availability starts. */ startTime?: Date | null; /** Date and time at which the fulfillment option's availability ends. */ endTime?: Date | null; /** * List of available times for the days of the week. * All the specified times must be within the range between `startTime` and `endTime`. */ availableTimes?: DayOfWeekAvailability[]; /** List of availability exceptions that override the availability defined in `availableTimes`. */ exceptions?: AvailabilityException[]; /** Timezone for which the available times are given. */ timeZone?: string | null; /** Whether it's possible to submit an order for as soon as possible handling. */ asapHandlingAvailable?: boolean; /** Whether it's possible to submit an order for future handling. */ futureHandlingAvailable?: boolean | null; } export interface DayOfWeekAvailability { /** The day of week this availability relates to. */ dayOfWeek?: EntitiesDayOfWeek; /** A list of time ranges during which the fulfillment should be available. */ timeRanges?: TimeOfDayRange[]; } export interface TimeOfDayRange { /** The start time in time of day representation. */ startTime?: TimeOfDay; /** The end time in time of day representation. */ endTime?: TimeOfDay; } export interface AvailabilityException { /** The start time of the availability exception. */ startTime?: Date | null; /** The end time of the availability exception. */ endTime?: Date | null; /** An indication whether the exception makes the [`start_time`, `end_time`] range available. */ available?: boolean; /** The reason for the exception. */ reason?: string | null; } /** Fulfillment time type enum. */ export declare enum FulfillmentTimeType { /** Undefined fulfillment time type. */ UNDEFINED_FULFILLMENT_TIME = "UNDEFINED_FULFILLMENT_TIME", /** Fulfillment time has a maximum. */ MAX_TIME = "MAX_TIME", /** Fulfillment time has a minimum and a maximum. */ DURATION_RANGE = "DURATION_RANGE" } /** Duration range. */ export interface DurationRange { /** Minimum duration in minutes. */ minDuration?: number; /** Maximum duration in minutes. */ maxDuration?: number; } /** Fulfillment times display type enum. */ export declare enum FulfillmentTimesDisplayType { /** Undefined fulfillment times display type. */ UNDEFINED_FULFILLMENT_TIMES_DISPLAY = "UNDEFINED_FULFILLMENT_TIMES_DISPLAY", /** Fulfillment times are displayed as a list of time windows. */ TIME_WINDOWS = "TIME_WINDOWS" } /** Time window. */ export interface TimeWindowDisplayConfig { /** Time window duration in minutes. */ durationInMinutes?: number; } /** Information about pickup fulfillment types. */ export interface PickupDetails { /** Pickup address. This is the restaurant's address. */ address?: CommonAddress; } /** Information about delivery fulfillment types. */ export interface DeliveryDetails { /** Delivery provider app id. */ deliveryProviderAppId?: string | null; /** Pickup instructions for couriers. */ courierPickupInstructions?: string | null; } export interface ListFirstAvailableTimeSlotForFulfillmentTypesRequest { /** * Operation ID. * Returned fulfillment options will belong to this operation. */ operationId: string; /** * Delivery address. Optional. * * If provided, the returned delivery fulfillment options will be able to deliver to this address. */ deliveryAddress?: CommonAddress; } export interface ListFirstAvailableTimeSlotForFulfillmentTypesResponse { /** * List of available time slots for each fulfillment type. * * Each time slot is the first available time slot for the given fulfillment type. * A delivery fulfillment type is returned only if the delivery address is provided. */ timeSlots?: FulfillmentTimeSlot[]; } export interface FulfillmentTimeSlot { /** Start time and date of the time slot. */ startTime?: Date | null; /** End time and date of the time slot. */ endTime?: Date | null; /** Type of the fulfillment. */ fulfilmentType?: FulfillmentType; /** Whether the time slot starts now. */ startsNow?: boolean; /** Details for each fulfillment option of the time slot. */ fulfillmentDetails?: FulfillmentDetails[]; /** Address of the fulfillment. */ fulfillmentAddress?: FulfillmentAddress; } /** Details about the fulfillment option. */ export interface FulfillmentDetails extends FulfillmentDetailsFulfillmentTimeOptionsOneOf { /** Fulfillment time has a maximum. */ maxTimeOptions?: number; /** Fulfillment time has a minimum and a maximum. */ durationRangeOptions?: DurationRange; /** Fee for using this fulfillment. */ fee?: string | null; /** Minimum order price to qualify for using this fulfillment. */ minOrderPrice?: string | null; /** Fulfillment time type. Only be relevant to ASAP operations. */ fulfillmentTimeType?: FulfillmentTimeType; /** * Minimum order price for free fulfillment. * If order price exceeds this amount, the given `fee` is waived. */ freeFulfillmentPriceThreshold?: string | null; } /** @oneof */ export interface FulfillmentDetailsFulfillmentTimeOptionsOneOf { /** Fulfillment time has a maximum. */ maxTimeOptions?: number; /** Fulfillment time has a minimum and a maximum. */ durationRangeOptions?: DurationRange; } /** * Details on the address of the fulfillment. * For pickup it will the address to take the order from. * For delivery it will be the address to deliver the order to. */ export interface FulfillmentAddress { /** Pickup address. This is the address of the restaurant. */ address?: CommonAddress; } export interface ListFirstAvailableTimeSlotsForOperationsRequest { /** * Operation ID. * Returned fulfillment options will belong to this operation. */ operationIds: string[]; /** * Delivery address. Optional. * * If provided, the returned delivery fulfillment options will be able to deliver to this address. */ deliveryAddress?: CommonAddress; } export interface ListFirstAvailableTimeSlotsForOperationsResponse { /** List of available time slots for each operation. */ timeSlots?: OperationTimeSlot[]; } export interface OperationTimeSlot { /** Operation ID. */ operationId?: string; /** List of available time slots for each fulfillment type. */ timeSlots?: FulfillmentTimeSlot[]; } export interface ListFirstAvailableTimeSlotsForMenusRequest { /** * Operation ID. * Returned timeslots that are belong to this operation. */ operationId: string | null; /** * Delivery address. Optional. * * If provided, the returned delivery fulfillment options will be able to deliver to this address. */ deliveryAddress?: CommonAddress; /** Cursor paging */ cursorPaging?: CursorPaging; } export interface ListFirstAvailableTimeSlotsForMenusResponse { /** * List of available time slots for each menu. * For each menu will be returned the first available time slot for each fulfillment type. */ timeSlotsPerMenu?: FirstFulfillmentTimeSlotsPerMenu[]; /** Cursor to next request. */ cursor?: string | null; } export interface FirstFulfillmentTimeSlotsPerMenu { /** Menu ID. */ menuId?: string | null; /** List of available time slots for each fulfillment type. */ timeslotsPerFulfillmentType?: FulfillmentTimeSlot[]; } export interface ListAvailableTimeSlotsForDateRequest { /** * Operation ID. * The returned fulfillment options will belong to this operation. */ operationId: string; /** * Delivery address. Optional. * * If provided, the returned delivery fulfillment options will be able to deliver to this address. */ deliveryAddress?: CommonAddress; /** Date and time to get the available time slots for. */ date: _Date; } export interface _Date { /** The day of the month. */ day?: number; /** The month of the year. */ month?: number; /** The year of the date. */ year?: number; } export interface ListAvailableTimeSlotsForDateResponse { /** Lst of the available time slots in the requested date. */ timeSlots?: FulfillmentTimeSlot[]; } export interface ListAvailableDatesInRangeRequest { /** * Operation ID. * The returned fulfillment options will belong to this operation. */ operationId: string; /** * Delivery address. Optional. * * If provided, the returned delivery fulfillment options will be able to deliver to this address. */ deliveryAddress?: CommonAddress; /** Start date and time of the range. */ from: _Date; /** End date and time of the range. */ until: _Date; } export interface ListAvailableDatesInRangeResponse { /** List of the available dates in descending order for each fulfillment type. */ availableDates?: FulfillmentTypeAvailableDates[]; } /** Available dates for a given fulfillment type. */ export interface FulfillmentTypeAvailableDates { /** Type of the fulfillment. */ fulfilmentType?: FulfillmentType; /** List of the available dates in descending order. */ dates?: _Date[]; } export interface GetExpectedFulfillmentSelectionRequest { /** Operation ID. The returned fulfillment will belong to this operation. */ operationId?: string; /** * Delivery address. Optional. * * If provided, the returned delivery fulfillment options will be able to deliver to this address. */ deliveryAddress?: CommonAddress; /** Start time and date of the time slot. */ timeslotStartTime?: Date | null; /** End time and date of the time slot. */ timeslotEndTime?: Date | null; /** Type of fulfillment. */ fulfilmentType?: FulfillmentType; /** Whether it is possible to submit an order to be prepared asap. */ canSubmitOrderForNow?: boolean | null; } export interface GetExpectedFulfillmentSelectionResponse { /** Expected fulfillment option. */ expectedFulfillmentSelections?: FulfillmentOption[]; } export interface DomainEvent extends DomainEventBodyOneOf { createdEvent?: EntityCreatedEvent; updatedEvent?: EntityUpdatedEvent; deletedEvent?: EntityDeletedEvent; actionEvent?: ActionEvent; /** * 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 */ export interface DomainEventBodyOneOf { createdEvent?: EntityCreatedEvent; updatedEvent?: EntityUpdatedEvent; deletedEvent?: EntityDeletedEvent; actionEvent?: ActionEvent; } export interface EntityCreatedEvent { entity?: string; } export interface RestoreInfo { deletedDate?: Date | null; } export interface EntityUpdatedEvent { /** * 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. */ currentEntity?: string; } export interface EntityDeletedEvent { /** Entity that was deleted */ deletedEntity?: string | null; } export interface ActionEvent { body?: string; } export interface Empty { } /** Encapsulates all details written to the Greyhound topic when a site's properties are updated. */ export interface SitePropertiesNotification { /** The site ID for which this update notification applies. */ metasiteId?: string; /** The actual update event. */ event?: SitePropertiesEvent; /** A convenience set of mappings from the MetaSite ID to its constituent services. */ translations?: Translation[]; /** Context of the notification */ changeContext?: ChangeContext; } /** The actual update event for a particular notification. */ export interface SitePropertiesEvent { /** Version of the site's properties represented by this update. */ version?: number; /** Set of properties that were updated - corresponds to the fields in "properties". */ fields?: string[]; /** Updated properties. */ properties?: Properties; } export interface Properties { /** Site categories. */ categories?: Categories; /** Site locale. */ locale?: Locale; /** * 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; /** 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; /** Supported languages of a site and the primary language. */ multilingual?: Multilingual; /** Cookie policy the Wix user defined for their site (before the site visitor interacts with/limits it). */ consentPolicy?: ConsentPolicy; /** * 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; } export interface Categories { /** Primary site category. */ primary?: string; /** Secondary site category. */ secondary?: string[]; /** Business Term Id */ businessTermId?: string | null; } export interface Locale { /** 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; } export interface Address { /** 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; /** 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; } /** * 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. */ export interface AddressHint { /** Extra text displayed next to, or instead of, the actual address. */ text?: string; /** Where the extra text should be displayed. */ placement?: PlacementType; } /** Where the extra text should be displayed: before, after or instead of the actual address. */ export declare enum PlacementType { BEFORE = "BEFORE", AFTER = "AFTER", REPLACE = "REPLACE" } /** Geocoordinates for a particular address. */ export interface GeoCoordinates { /** 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. */ export interface BusinessSchedule { /** Weekly recurring time periods when the business is regularly open or the service is available. Limited to 100 time periods. */ periods?: TimePeriod[]; /** Exceptions to the business's regular hours. The business can be open or closed during the exception. */ specialHourPeriod?: SpecialHourPeriod[]; } /** Weekly recurring time periods when the business is regularly open or the service is available. */ export interface TimePeriod { /** Day of the week the period starts on. */ openDay?: DayOfWeek; /** * 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; /** * 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. */ export declare enum DayOfWeek { 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. */ export interface SpecialHourPeriod { /** 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; } export interface Multilingual { /** Supported languages list. */ supportedLanguages?: SupportedLanguage[]; /** Whether to redirect to user language. */ autoRedirect?: boolean; } export interface SupportedLanguage { /** 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; /** 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; } export declare enum ResolutionMethod { QUERY_PARAM = "QUERY_PARAM", SUBDOMAIN = "SUBDOMAIN", SUBDIRECTORY = "SUBDIRECTORY" } export interface ConsentPolicy { /** Whether the site uses cookies that are essential to site operation. Always `true`. */ 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. */ export interface Translation { /** 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; } export interface ChangeContext extends ChangeContextPayloadOneOf { /** Properties were updated. */ propertiesChange?: PropertiesChange; /** Default properties were created on site creation. */ siteCreated?: SiteCreated; /** Properties were cloned on site cloning. */ siteCloned?: SiteCloned; } /** @oneof */ export interface ChangeContextPayloadOneOf { /** Properties were updated. */ propertiesChange?: PropertiesChange; /** Default properties were created on site creation. */ siteCreated?: SiteCreated; /** Properties were cloned on site cloning. */ siteCloned?: SiteCloned; } export interface PropertiesChange { } export interface SiteCreated { /** Origin template site id. */ originTemplateId?: string | null; } export interface SiteCloned { /** Origin site id. */ originMetaSiteId?: string; } export interface MessageEnvelope { /** App instance ID. */ instanceId?: string | null; /** Event type. */ eventType?: string; /** The identification type and identity data. */ identity?: IdentificationData; /** Stringify payload. */ data?: string; } export interface IdentificationData extends IdentificationDataIdOneOf { /** 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; } /** @oneof */ export interface IdentificationDataIdOneOf { /** 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; } export declare enum WebhookIdentityType { UNKNOWN = "UNKNOWN", ANONYMOUS_VISITOR = "ANONYMOUS_VISITOR", MEMBER = "MEMBER", WIX_USER = "WIX_USER", APP = "APP" } interface TimeDurationNonNullableFields { timeUnit: TimeUnit; } interface TimeDurationRangeNonNullableFields { timeUnit: TimeUnit; } interface AsapSchedulingNonNullableFields { maxOptions?: TimeDurationNonNullableFields; rangeOptions?: TimeDurationRangeNonNullableFields; type: PreparationTimeType; asapPreorderType: AsapPreorderType; } interface TimeBoundedNonNullableFields { minimumInAdvanceTime?: TimeDurationNonNullableFields; maximumInAdvanceTime?: TimeDurationNonNullableFields; minTimeInAdvance?: TimeDurationNonNullableFields; maxTimeInAdvance?: TimeDurationNonNullableFields; } interface TimeOfDayNonNullableFields { hours: number; minutes: number; } interface DayAndTimeNonNullableFields { dayOfWeek: EntitiesDayOfWeek; timeOfDay?: TimeOfDayNonNullableFields; } interface WeeklyScheduleNonNullableFields { cutOffTime?: DayAndTimeNonNullableFields; } interface PreorderMethodNonNullableFields { timeBoundedOptions?: TimeBoundedNonNullableFields; weeklyScheduleOptions?: WeeklyScheduleNonNullableFields; type: MethodType; } interface FulfillmentTimesDisplayConfigNonNullableFields { timeWindowsOptions?: TimeDurationNonNullableFields; fulfillmentTimesType: FulfillmentTimesType; type: FulfillmentTimesType; } interface PreorderSchedulingNonNullableFields { method?: PreorderMethodNonNullableFields; fulfillmentTimesDisplayConfig?: FulfillmentTimesDisplayConfigNonNullableFields; fulfillmentTimesDisplay?: FulfillmentTimesDisplayConfigNonNullableFields; } interface SchedulingNonNullableFields { asapOptions?: AsapSchedulingNonNullableFields; preorderOptions?: PreorderSchedulingNonNullableFields; type: SchedulingType; } interface PreparationTimeNonNullableFields { maxTimeOptions?: TimeDurationNonNullableFields; timeRangeOptions?: TimeDurationRangeNonNullableFields; type: PreparationTimePreparationTimeType; } interface AsapOrderSchedulingNonNullableFields { preparationTime?: PreparationTimeNonNullableFields; asapFutureHandlingType: AsapFutureHandlingType; } interface OrderSchedulingNonNullableFields { asapOptions?: AsapOrderSchedulingNonNullableFields; preorderOptions?: PreorderSchedulingNonNullableFields; type: SchedulingType; } interface V1StreetAddressNonNullableFields { number: string; name: string; apt: string; } interface V1AddressNonNullableFields { streetAddress?: V1StreetAddressNonNullableFields; } interface BusinessLocationDetailsNonNullableFields { address?: V1AddressNonNullableFields; } export interface OperationNonNullableFields { scheduling?: SchedulingNonNullableFields; onlineOrderingStatus: OnlineOrderingStatusType; defaultFulfillmentType: FulfillmentType; orderScheduling?: OrderSchedulingNonNullableFields; businessLocationDetails?: BusinessLocationDetailsNonNullableFields; } export interface CreateOperationResponseNonNullableFields { operation?: OperationNonNullableFields; } export interface GetOperationResponseNonNullableFields { operation?: OperationNonNullableFields; } export interface UpdateOperationResponseNonNullableFields { operation?: OperationNonNullableFields; } export interface QueryOperationResponseNonNullableFields { operations: OperationNonNullableFields[]; } export interface ListOperationsResponseNonNullableFields { operations: OperationNonNullableFields[]; } interface DurationRangeNonNullableFields { minDuration: number; maxDuration: number; } interface TimeWindowDisplayConfigNonNullableFields { durationInMinutes: number; } interface StreetAddressNonNullableFields { number: string; name: string; apt: string; } interface SubdivisionNonNullableFields { name: string; } interface CommonAddressNonNullableFields { streetAddress?: StreetAddressNonNullableFields; subdivisions: SubdivisionNonNullableFields[]; } interface PickupDetailsNonNullableFields { address?: CommonAddressNonNullableFields; } interface TimeOfDayRangeNonNullableFields { startTime?: TimeOfDayNonNullableFields; endTime?: TimeOfDayNonNullableFields; } interface DayOfWeekAvailabilityNonNullableFields { dayOfWeek: EntitiesDayOfWeek; timeRanges: TimeOfDayRangeNonNullableFields[]; } interface AvailabilityExceptionNonNullableFields { available: boolean; } interface FulfillmentOptionAvailabilityNonNullableFields { availableTimes: DayOfWeekAvailabilityNonNullableFields[]; exceptions: AvailabilityExceptionNonNullableFields[]; asapHandlingAvailable: boolean; } interface FulfillmentOptionNonNullableFields { maxTimeOptions: number; durationRangeOptions?: DurationRangeNonNullableFields; timeWindowsOptions?: TimeWindowDisplayConfigNonNullableFields; pickupOptions?: PickupDetailsNonNullableFields; type: FulfillmentType; availability?: FulfillmentOptionAvailabilityNonNullableFields; fulfillmentTimeType: FulfillmentTimeType; fulfillmentTimesDisplayType: FulfillmentTimesDisplayType; } export interface ListAvailableFulfillmentOptionsResponseNonNullableFields { pickupConfigured: boolean; deliveryConfigured: boolean; fulfillmentOptions: FulfillmentOptionNonNullableFields[]; } interface FulfillmentDetailsNonNullableFields { maxTimeOptions: number; durationRangeOptions?: DurationRangeNonNullableFields; fulfillmentTimeType: FulfillmentTimeType; } interface FulfillmentAddressNonNullableFields { address?: CommonAddressNonNullableFields; } interface FulfillmentTimeSlotNonNullableFields { fulfilmentType: FulfillmentType; startsNow: boolean; fulfillmentDetails: FulfillmentDetailsNonNullableFields[]; fulfillmentAddress?: FulfillmentAddressNonNullableFields; } export interface ListFirstAvailableTimeSlotForFulfillmentTypesResponseNonNullableFields { timeSlots: FulfillmentTimeSlotNonNullableFields[]; } interface OperationTimeSlotNonNullableFields { operationId: string; timeSlots: FulfillmentTimeSlotNonNullableFields[]; } export interface ListFirstAvailableTimeSlotsForOperationsResponseNonNullableFields { timeSlots: OperationTimeSlotNonNullableFields[]; } interface FirstFulfillmentTimeSlotsPerMenuNonNullableFields { timeslotsPerFulfillmentType: FulfillmentTimeSlotNonNullableFields[]; } export interface ListFirstAvailableTimeSlotsForMenusResponseNonNullableFields { timeSlotsPerMenu: FirstFulfillmentTimeSlotsPerMenuNonNullableFields[]; } export interface ListAvailableTimeSlotsForDateResponseNonNullableFields { timeSlots: FulfillmentTimeSlotNonNullableFields[]; } interface _DateNonNullableFields { day: number; month: number; year: number; } interface FulfillmentTypeAvailableDatesNonNullableFields { fulfilmentType: FulfillmentType; dates: _DateNonNullableFields[]; } export interface ListAvailableDatesInRangeResponseNonNullableFields { availableDates: FulfillmentTypeAvailableDatesNonNullableFields[]; } export interface BaseEventMetadata { /** App instance ID. */ instanceId?: string | null; /** Event type. */ eventType?: string; /** The identification type and identity data. */ identity?: IdentificationData; } export interface EventMetadata extends BaseEventMetadata { /** * 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; } export interface OperationCreatedEnvelope { entity: Operation; metadata: EventMetadata; } /** * Triggered when an operation is created. * @permissionScope Manage Restaurants - all permissions * @permissionScopeId SCOPE.RESTAURANTS.MEGA-SCOPES * @permissionId RESTAURANTS.OPERATION_READ * @webhook * @eventType wix.restaurants.operations.v1.operation_created * @documentationMaturity preview */ export declare function onOperationCreated(handler: (event: OperationCreatedEnvelope) => void | Promise): void; export interface OperationDeletedEnvelope { entity: Operation; metadata: EventMetadata; } /** * Triggered when an operation is deleted. * @permissionScope Manage Restaurants - all permissions * @permissionScopeId SCOPE.RESTAURANTS.MEGA-SCOPES * @permissionId RESTAURANTS.OPERATION_READ * @webhook * @eventType wix.restaurants.operations.v1.operation_deleted * @documentationMaturity preview */ export declare function onOperationDeleted(handler: (event: OperationDeletedEnvelope) => void | Promise): void; export interface OperationUpdatedEnvelope { entity: Operation; metadata: EventMetadata; } /** * Triggered when an operation is updated. * @permissionScope Manage Restaurants - all permissions * @permissionScopeId SCOPE.RESTAURANTS.MEGA-SCOPES * @permissionId RESTAURANTS.OPERATION_READ * @webhook * @eventType wix.restaurants.operations.v1.operation_updated * @documentationMaturity preview */ export declare function onOperationUpdated(handler: (event: OperationUpdatedEnvelope) => void | Promise): void; /** * Creates a new operation. * @param operation - Operation to create. * @public * @documentationMaturity preview * @requiredField operation * @permissionId RESTAURANTS.OPERATION_CREATE * @permissionScope Manage Restaurants - all permissions * @permissionScopeId SCOPE.RESTAURANTS.MEGA-SCOPES * @applicableIdentity APP * @returns Created operation. * @fqn wix.restaurants.operations.v1.OperationsService.CreateOperation */ export declare function createOperation(operation: Operation): Promise; /** * Retrieves an operation. * @param operationId - ID of the operation to retrieve. * @public * @documentationMaturity preview * @requiredField operationId * @permissionId RESTAURANTS.OPERATION_READ * @permissionScope Manage Restaurants - all permissions * @permissionScopeId SCOPE.RESTAURANTS.MEGA-SCOPES * @applicableIdentity APP * @applicableIdentity VISITOR * @returns Retrieved operation. * @fqn wix.restaurants.operations.v1.OperationsService.GetOperation */ export declare function getOperation(operationId: string): Promise; /** * Updates an operation. * * If you update part of the `orderScheduling` property, the whole object is overwritten, * so you must include the entire object unless you are not updating `orderScheduling` at all.
* * Each time the operation is updated, * `revision` increments by 1. * The current `revision` must be passed when updating the operation. * This ensures you're working with the latest operation * and prevents unintended overwrites. * @param _id - Operation ID. * @public * @documentationMaturity preview * @requiredField _id * @requiredField operation * @requiredField operation.revision * @permissionId RESTAURANTS.OPERATION_UPDATE * @permissionScope Manage Restaurants - all permissions * @permissionScopeId SCOPE.RESTAURANTS.MEGA-SCOPES * @applicableIdentity APP * @returns Updated operation. * @fqn wix.restaurants.operations.v1.OperationsService.UpdateOperation */ export declare function updateOperation(_id: string | null, operation: UpdateOperation): Promise; export interface UpdateOperation { /** Options for online ordering status. Required when `onlineOrderingStatus` is `PAUSED_UNTIL`. */ pausedUntilOptions?: OnlineOrderingPausedUntilOptions; /** * Operation ID. * @readonly */ _id?: string | null; /** * Revision number. Increments by 1 each time the operation is updated. * To prevent conflicting changes, * the existing `revision` must be specified when updating an operation. * @readonly */ revision?: string | null; /** * Date and time the operation was created. * @readonly */ _createdDate?: Date | null; /** * Date and time the operation was updated. * @readonly */ _updatedDate?: Date | null; /** Operation name. */ name?: string | null; /** * Whether the operation is the default operation.
* Default: `false`. */ default?: boolean | null; /** IDs of the fulfillment methods ([SDK](https://dev.wix.com/docs/sdk/backend-modules/restaurants/wix-restaurants-new/fulfillment-methods/introduction) | [REST](https://dev.wix.com/docs/rest/api-reference/wix-restaurants/fulfillment-methods/introduction)) associated with the operation. */ fulfillmentIds?: string[] | null; /** Online ordering status of the operation.
*/ onlineOrderingStatus?: OnlineOrderingStatusType; /** * IDs of the service fee rules ([SDK](https://dev.wix.com/docs/sdk/backend-modules/restaurants/service-fees/introduction) | [REST](https://dev.wix.com/docs/rest/api-reference/wix-restaurants/service-fees/introduction)) associated with the operation. * @deprecated * @targetRemovalDate 2024-11-30 */ serviceFeeRuleIds?: string[] | null; /** Default fulfillment type of the operation. */ defaultFulfillmentType?: FulfillmentType; /** Information about when an order can be placed for. */ orderScheduling?: OrderScheduling; } /** * Deletes an operation. * @param operationId - ID of the operation to delete. * @public * @documentationMaturity preview * @requiredField operationId * @permissionId RESTAURANTS.OPERATION_DELETE * @permissionScope Manage Restaurants - all permissions * @permissionScopeId SCOPE.RESTAURANTS.MEGA-SCOPES * @applicableIdentity APP * @fqn wix.restaurants.operations.v1.OperationsService.DeleteOperation */ export declare function deleteOperation(operationId: string): Promise; /** * Creates a query to retrieve a list of operations. * * The `queryOperations()` function builds a query to retrieve a list of operations and returns an `OperationsQueryBuilder` object. * * The returned object contains the query definition, which is used to run the query using the [`find()`](/operations/operations-query-builder/find) function. * * You can refine the query by chaining `OperationsQueryBuilder` functions onto the query. `OperationsQueryBuilder` functions enable you to filter, sort, and control the results that `queryOperations()` returns. * * `queryOperations()` runs with the following `OperationsQueryBuilder` defaults, which you can override: * * * [`limit(50)`](/operations/operations-query-builder/limit) * * [`ascending('entityId')`](/operations/operations-methods-query-builder/ascending) * * The following `OperationsQueryBuilder` functions are supported for `queryOperations()`. For a full description of the operations object, see the object returned for the [`items`](/operations/operations-query-result/items) property in `OperationsQueryResult`. * @public * @documentationMaturity preview * @permissionScope Manage Restaurants - all permissions * @permissionScopeId SCOPE.RESTAURANTS.MEGA-SCOPES * @permissionId RESTAURANTS.OPERATION_READ * @applicableIdentity APP * @applicableIdentity VISITOR * @fqn wix.restaurants.operations.v1.OperationsService.QueryOperation */ export declare function queryOperation(): OperationsQueryBuilder; interface QueryCursorResult { cursors: Cursors; hasNext: () => boolean; hasPrev: () => boolean; length: number; pageSize: number; } export interface OperationsQueryResult extends QueryCursorResult { items: Operation[]; query: OperationsQueryBuilder; next: () => Promise; prev: () => Promise; } export interface OperationsQueryBuilder { /** @param propertyName - Property whose value is compared with `value`. * @param value - Value to compare against. * @documentationMaturity preview */ eq: (propertyName: '_id' | '_createdDate' | '_updatedDate' | 'name' | 'default' | 'fulfillmentIds' | 'onlineOrderingStatus' | 'serviceFeeRuleIds' | 'defaultFulfillmentType', value: any) => OperationsQueryBuilder; /** @param propertyName - Property whose value is compared with `value`. * @param value - Value to compare against. * @documentationMaturity preview */ ne: (propertyName: '_id' | '_createdDate' | '_updatedDate' | 'name' | 'default' | 'fulfillmentIds' | 'onlineOrderingStatus' | 'serviceFeeRuleIds' | 'defaultFulfillmentType', value: any) => OperationsQueryBuilder; /** @param propertyName - Property whose value is compared with `value`. * @param value - Value to compare against. * @documentationMaturity preview */ ge: (propertyName: '_createdDate' | '_updatedDate', value: any) => OperationsQueryBuilder; /** @param propertyName - Property whose value is compared with `value`. * @param value - Value to compare against. * @documentationMaturity preview */ gt: (propertyName: '_createdDate' | '_updatedDate', value: any) => OperationsQueryBuilder; /** @param propertyName - Property whose value is compared with `value`. * @param value - Value to compare against. * @documentationMaturity preview */ le: (propertyName: '_createdDate' | '_updatedDate', value: any) => OperationsQueryBuilder; /** @param propertyName - Property whose value is compared with `value`. * @param value - Value to compare against. * @documentationMaturity preview */ lt: (propertyName: '_createdDate' | '_updatedDate', value: any) => OperationsQueryBuilder; /** @param propertyName - Property whose value is compared with `string`. * @param string - String to compare against. Case-insensitive. * @documentationMaturity preview */ startsWith: (propertyName: '_id' | 'name', value: string) => OperationsQueryBuilder; /** @param propertyName - Property whose value is compared with `values`. * @param values - List of values to compare against. * @documentationMaturity preview */ hasSome: (propertyName: '_id' | '_createdDate' | '_updatedDate' | 'name' | 'default' | 'fulfillmentIds' | 'onlineOrderingStatus' | 'serviceFeeRuleIds' | 'defaultFulfillmentType', value: any[]) => OperationsQueryBuilder; /** @param propertyName - Property whose value is compared with `values`. * @param values - List of values to compare against. * @documentationMaturity preview */ hasAll: (propertyName: 'fulfillmentIds' | 'serviceFeeRuleIds', value: any[]) => OperationsQueryBuilder; /** @documentationMaturity preview */ in: (propertyName: '_id' | '_createdDate' | '_updatedDate' | 'name' | 'default' | 'fulfillmentIds' | 'onlineOrderingStatus' | 'serviceFeeRuleIds' | 'defaultFulfillmentType', value: any) => OperationsQueryBuilder; /** @documentationMaturity preview */ exists: (propertyName: '_id' | '_createdDate' | '_updatedDate' | 'name' | 'default' | 'fulfillmentIds' | 'onlineOrderingStatus' | 'serviceFeeRuleIds' | 'defaultFulfillmentType', value: boolean) => OperationsQueryBuilder; /** @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' | 'name' | 'profileId' | 'default' | 'fulfillmentIds' | 'onlineOrderingStatus' | 'serviceFeeRuleIds' | 'defaultFulfillmentType'>) => OperationsQueryBuilder; /** @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' | 'name' | 'profileId' | 'default' | 'fulfillmentIds' | 'onlineOrderingStatus' | 'serviceFeeRuleIds' | 'defaultFulfillmentType'>) => OperationsQueryBuilder; /** @param limit - Number of items to return, which is also the `pageSize` of the results object. * @documentationMaturity preview */ limit: (limit: number) => OperationsQueryBuilder; /** @param cursor - A pointer to specific record * @documentationMaturity preview */ skipTo: (cursor: string) => OperationsQueryBuilder; /** @documentationMaturity preview */ find: () => Promise; } /** * Retrieves a list of operations. * The result will be sorted by created date in ascending order. * @public * @documentationMaturity preview * @permissionId RESTAURANTS.OPERATION_READ * @permissionScope Manage Restaurants - all permissions * @permissionScopeId SCOPE.RESTAURANTS.MEGA-SCOPES * @applicableIdentity APP * @applicableIdentity VISITOR * @fqn wix.restaurants.operations.v1.OperationsService.ListOperations */ export declare function listOperations(): Promise; /** * Retrieves a list of available fulfillment options. * * What makes a fulfillment option available is whether you can submit an order given the scheduling configurations and the fulfillment method's availability. * When a delivery address is not provided in the input, our system retrieves a list encompassing all types of fulfillment methods. * Conversely, if a delivery address` is given, the response may includes non-delivery fulfillment options along with delivery fulfillment methods that are applicable to the given address, ensuring the address falls within the defined delivery area of these methods. * @param operationId - Operation ID. Returned fulfillment options will belong to this operation. * @public * @documentationMaturity preview * @requiredField operationId * @permissionId RESTAURANTS.OPERATION_READ * @permissionScope Manage Restaurants - all permissions * @permissionScopeId SCOPE.RESTAURANTS.MEGA-SCOPES * @applicableIdentity APP * @applicableIdentity VISITOR * @fqn wix.restaurants.operations.v1.OperationsService.ListAvailableFulfillmentOptions */ export declare function listAvailableFulfillmentOptions(operationId: string, options?: ListAvailableFulfillmentOptions): Promise; export interface ListAvailableFulfillmentOptions { /** * Delivery address. Optional. * * If provided, the returned delivery fulfillment options will be able to deliver to this address. */ deliveryAddress?: CommonAddress; } /** * Retrieves a list of available time slots for each fulfillment type. * * Each time slot is the first available time slot for the given fulfillment type. * @param operationId - Operation ID. * Returned fulfillment options will belong to this operation. * @public * @documentationMaturity preview * @requiredField operationId * @permissionId RESTAURANTS.OPERATION_READ * @permissionScope Manage Restaurants - all permissions * @permissionScopeId SCOPE.RESTAURANTS.MEGA-SCOPES * @applicableIdentity APP * @applicableIdentity VISITOR * @fqn wix.restaurants.operations.v1.OperationsService.ListFirstAvailableTimeSlotForFulfillmentTypes */ export declare function listFirstAvailableTimeSlotForFulfillmentTypes(operationId: string, options?: ListFirstAvailableTimeSlotForFulfillmentTypesOptions): Promise; export interface ListFirstAvailableTimeSlotForFulfillmentTypesOptions { /** * Delivery address. Optional. * * If provided, the returned delivery fulfillment options will be able to deliver to this address. */ deliveryAddress?: CommonAddress; } /** * Retrieves a list of available time slots for each fulfillment type. * * Each time slot is the first available time slot for the given fulfillment type. * @param operationIds - Operation ID. * Returned fulfillment options will belong to this operation. * @public * @documentationMaturity preview * @requiredField operationIds * @permissionId RESTAURANTS.OPERATION_READ * @permissionScope Manage Restaurants - all permissions * @permissionScopeId SCOPE.RESTAURANTS.MEGA-SCOPES * @applicableIdentity APP * @applicableIdentity VISITOR * @fqn wix.restaurants.operations.v1.OperationsService.ListFirstAvailableTimeSlotsForOperations */ export declare function listFirstAvailableTimeSlotsForOperations(operationIds: string[], options?: ListFirstAvailableTimeSlotsForOperationsOptions): Promise; export interface ListFirstAvailableTimeSlotsForOperationsOptions { /** * Delivery address. Optional. * * If provided, the returned delivery fulfillment options will be able to deliver to this address. */ deliveryAddress?: CommonAddress; } /** * For each menu, retrieves the first available time slots for each fulfillment type. * @param operationId - Operation ID. * Returned timeslots that are belong to this operation. * @public * @documentationMaturity preview * @requiredField operationId * @permissionId RESTAURANTS.OPERATION_READ * @permissionScope Manage Restaurants - all permissions * @permissionScopeId SCOPE.RESTAURANTS.MEGA-SCOPES * @applicableIdentity APP * @applicableIdentity VISITOR * @fqn wix.restaurants.operations.v1.OperationsService.ListFirstAvailableTimeSlotsForMenus */ export declare function listFirstAvailableTimeSlotsForMenus(operationId: string | null, options?: ListFirstAvailableTimeSlotsForMenusOptions): Promise; export interface ListFirstAvailableTimeSlotsForMenusOptions { /** * Delivery address. Optional. * * If provided, the returned delivery fulfillment options will be able to deliver to this address. */ deliveryAddress?: CommonAddress; /** Cursor paging */ cursorPaging?: CursorPaging; } /** * Retrieves a list of the available time slots for a given date. * @param operationId - Operation ID. * The returned fulfillment options will belong to this operation. * @public * @documentationMaturity preview * @requiredField operationId * @requiredField options.date * @requiredField options.date.day * @requiredField options.date.month * @requiredField options.date.year * @permissionId RESTAURANTS.OPERATION_READ * @permissionScope Manage Restaurants - all permissions * @permissionScopeId SCOPE.RESTAURANTS.MEGA-SCOPES * @applicableIdentity APP * @applicableIdentity VISITOR * @fqn wix.restaurants.operations.v1.OperationsService.ListAvailableTimeSlotsForDate */ export declare function listAvailableTimeSlotsForDate(operationId: string, options?: ListAvailableTimeSlotsForDateOptions): Promise; export interface ListAvailableTimeSlotsForDateOptions { /** * Delivery address. Optional. * * If provided, the returned delivery fulfillment options will be able to deliver to this address. */ deliveryAddress?: CommonAddress; /** Date and time to get the available time slots for. */ date: _Date; } /** * Retrieves a list of the available dates in a given time range. * * A date is considered available if it has at least one available time slot. * @param operationId - Operation ID. * The returned fulfillment options will belong to this operation. * @public * @documentationMaturity preview * @requiredField operationId * @requiredField options.from * @requiredField options.until * @permissionId RESTAURANTS.OPERATION_READ * @permissionScope Manage Restaurants - all permissions * @permissionScopeId SCOPE.RESTAURANTS.MEGA-SCOPES * @applicableIdentity APP * @applicableIdentity VISITOR * @fqn wix.restaurants.operations.v1.OperationsService.ListAvailableDatesInRange */ export declare function listAvailableDatesInRange(operationId: string, options?: ListAvailableDatesInRangeOptions): Promise; export interface ListAvailableDatesInRangeOptions { /** * Delivery address. Optional. * * If provided, the returned delivery fulfillment options will be able to deliver to this address. */ deliveryAddress?: CommonAddress; /** Start date and time of the range. */ from: _Date; /** End date and time of the range. */ until: _Date; } export {};