interface CheckoutService {
    createBooking(
        booking: models.checkout.BookingCreateParams,
    ): Promise<BookingCreateResult>;
    createInsuranceQuotes(
        booking: BookingInsuranceQuotesRequest,
    ): Promise<BookingInsuranceQuotes>;
    getBookingOffTheWaitlist(booking: BaseBooking): Promise<null | BaseBooking>;
    getOrCreateUsersFromBooking(
        travelersInfo: TravelerInfo[],
    ): Promise<
        { additionalParticipants: BookingUser[]; customer: BookingUser },
    >;
    getTripCheckoutInformation(tripId: string): Promise<TripCheckout>;
    getWaitlistedBookingForCustomer(
        tripId: string,
        customer: TravelerCheckout,
    ): Promise<null | SavedBooking>;
    validateBooking(
        booking: models.checkout.BookingCreateParams,
    ): Promise<void>;
    validateTravelers(
        travelers: TravelerCheckout[],
        tripId: string,
    ): Promise<void>;
}

Methods