/** * Create Multi-Service Booking API * Wrapper for the Wix Bookings createMultiServiceBooking SDK function. * * Used for the 2-8 day case of the DAY-range expansion: a single * APPOINTMENT service whose duration is configured as a DAY range, with * 2-8 per-day availability slots picked. One Booking entry is sent per * picked slot. */ import { type Booking, type CreateMultiServiceBookingResponse, type ParticipantNotification } from '@wix/auto_sdk_bookings_bookings'; import type { FormValues } from '@wix/forms/components'; /** * Options for creating a multi-service booking. * * We always set `returnFullEntity: true` so the response includes per-booking * entities (with `contactDetails`) for cart wiring. */ export interface CreateMultiServiceBookingOptions { /** Notification settings for participants */ participantNotification?: ParticipantNotification; /** Whether to send SMS reminder */ sendSmsReminder?: boolean | null; /** Form submission data */ formSubmission?: FormValues | null; } /** * Creates a multi-service booking from 2-8 single-service booking specs. * * Per the SDK contract, the bookings array must contain 2-8 APPOINTMENT * bookings at the same location with sequential, gapless scheduling. * Validation of those constraints is delegated to the SDK; this wrapper only * forwards the request and pins `returnFullEntity: true` so the caller can * read `bookings[].booking.contactDetails` for downstream cart construction. * * @param bookings - 2 to 8 single-service booking specifications * @param options - Optional notification / SMS settings * @returns Promise resolving to the created multi-service booking response * * @example * ```typescript * const response = await createMultiServiceBooking( * [bookingDay1, bookingDay2, bookingDay3], * { * participantNotification: { notifyParticipants: true }, * sendSmsReminder: true, * formSubmission: formValues, * } * ); * const ids = response.multiServiceBooking?.bookings * ?.map((b) => b.bookingId) * .filter(Boolean); * ``` */ export declare function createMultiServiceBooking(bookings: Booking[], options?: CreateMultiServiceBookingOptions): Promise;