import { queryParams, type RouteQueryOptions, type RouteDefinition, type RouteFormDefinition, applyUrlDefaults } from './../../../../../wayfinder'
/**
* @see \App\Http\Controllers\Booking\BookingWizardController::location
* @see app/Http/Controllers/Booking/BookingWizardController.php:43
* @route '/book/location'
*/
export const location = (options?: RouteQueryOptions): RouteDefinition<'get'> => ({
    url: location.url(options),
    method: 'get',
})

location.definition = {
    methods: ["get","head"],
    url: '/book/location',
} satisfies RouteDefinition<["get","head"]>

/**
* @see \App\Http\Controllers\Booking\BookingWizardController::location
* @see app/Http/Controllers/Booking/BookingWizardController.php:43
* @route '/book/location'
*/
location.url = (options?: RouteQueryOptions) => {
    return location.definition.url + queryParams(options)
}

/**
* @see \App\Http\Controllers\Booking\BookingWizardController::location
* @see app/Http/Controllers/Booking/BookingWizardController.php:43
* @route '/book/location'
*/
location.get = (options?: RouteQueryOptions): RouteDefinition<'get'> => ({
    url: location.url(options),
    method: 'get',
})

/**
* @see \App\Http\Controllers\Booking\BookingWizardController::location
* @see app/Http/Controllers/Booking/BookingWizardController.php:43
* @route '/book/location'
*/
location.head = (options?: RouteQueryOptions): RouteDefinition<'head'> => ({
    url: location.url(options),
    method: 'head',
})

/**
* @see \App\Http\Controllers\Booking\BookingWizardController::location
* @see app/Http/Controllers/Booking/BookingWizardController.php:43
* @route '/book/location'
*/
const locationForm = (options?: RouteQueryOptions): RouteFormDefinition<'get'> => ({
    action: location.url(options),
    method: 'get',
})

/**
* @see \App\Http\Controllers\Booking\BookingWizardController::location
* @see app/Http/Controllers/Booking/BookingWizardController.php:43
* @route '/book/location'
*/
locationForm.get = (options?: RouteQueryOptions): RouteFormDefinition<'get'> => ({
    action: location.url(options),
    method: 'get',
})

/**
* @see \App\Http\Controllers\Booking\BookingWizardController::location
* @see app/Http/Controllers/Booking/BookingWizardController.php:43
* @route '/book/location'
*/
locationForm.head = (options?: RouteQueryOptions): RouteFormDefinition<'get'> => ({
    action: location.url({
        [options?.mergeQuery ? 'mergeQuery' : 'query']: {
            _method: 'HEAD',
            ...(options?.query ?? options?.mergeQuery ?? {}),
        }
    }),
    method: 'get',
})

location.form = locationForm

/**
* @see \App\Http\Controllers\Booking\BookingWizardController::storeLocation
* @see app/Http/Controllers/Booking/BookingWizardController.php:77
* @route '/book/location'
*/
export const storeLocation = (options?: RouteQueryOptions): RouteDefinition<'post'> => ({
    url: storeLocation.url(options),
    method: 'post',
})

storeLocation.definition = {
    methods: ["post"],
    url: '/book/location',
} satisfies RouteDefinition<["post"]>

/**
* @see \App\Http\Controllers\Booking\BookingWizardController::storeLocation
* @see app/Http/Controllers/Booking/BookingWizardController.php:77
* @route '/book/location'
*/
storeLocation.url = (options?: RouteQueryOptions) => {
    return storeLocation.definition.url + queryParams(options)
}

/**
* @see \App\Http\Controllers\Booking\BookingWizardController::storeLocation
* @see app/Http/Controllers/Booking/BookingWizardController.php:77
* @route '/book/location'
*/
storeLocation.post = (options?: RouteQueryOptions): RouteDefinition<'post'> => ({
    url: storeLocation.url(options),
    method: 'post',
})

/**
* @see \App\Http\Controllers\Booking\BookingWizardController::storeLocation
* @see app/Http/Controllers/Booking/BookingWizardController.php:77
* @route '/book/location'
*/
const storeLocationForm = (options?: RouteQueryOptions): RouteFormDefinition<'post'> => ({
    action: storeLocation.url(options),
    method: 'post',
})

/**
* @see \App\Http\Controllers\Booking\BookingWizardController::storeLocation
* @see app/Http/Controllers/Booking/BookingWizardController.php:77
* @route '/book/location'
*/
storeLocationForm.post = (options?: RouteQueryOptions): RouteFormDefinition<'post'> => ({
    action: storeLocation.url(options),
    method: 'post',
})

storeLocation.form = storeLocationForm

/**
* @see \App\Http\Controllers\Booking\BookingWizardController::vehicle
* @see app/Http/Controllers/Booking/BookingWizardController.php:93
* @route '/book/vehicle'
*/
export const vehicle = (options?: RouteQueryOptions): RouteDefinition<'get'> => ({
    url: vehicle.url(options),
    method: 'get',
})

vehicle.definition = {
    methods: ["get","head"],
    url: '/book/vehicle',
} satisfies RouteDefinition<["get","head"]>

/**
* @see \App\Http\Controllers\Booking\BookingWizardController::vehicle
* @see app/Http/Controllers/Booking/BookingWizardController.php:93
* @route '/book/vehicle'
*/
vehicle.url = (options?: RouteQueryOptions) => {
    return vehicle.definition.url + queryParams(options)
}

/**
* @see \App\Http\Controllers\Booking\BookingWizardController::vehicle
* @see app/Http/Controllers/Booking/BookingWizardController.php:93
* @route '/book/vehicle'
*/
vehicle.get = (options?: RouteQueryOptions): RouteDefinition<'get'> => ({
    url: vehicle.url(options),
    method: 'get',
})

/**
* @see \App\Http\Controllers\Booking\BookingWizardController::vehicle
* @see app/Http/Controllers/Booking/BookingWizardController.php:93
* @route '/book/vehicle'
*/
vehicle.head = (options?: RouteQueryOptions): RouteDefinition<'head'> => ({
    url: vehicle.url(options),
    method: 'head',
})

/**
* @see \App\Http\Controllers\Booking\BookingWizardController::vehicle
* @see app/Http/Controllers/Booking/BookingWizardController.php:93
* @route '/book/vehicle'
*/
const vehicleForm = (options?: RouteQueryOptions): RouteFormDefinition<'get'> => ({
    action: vehicle.url(options),
    method: 'get',
})

/**
* @see \App\Http\Controllers\Booking\BookingWizardController::vehicle
* @see app/Http/Controllers/Booking/BookingWizardController.php:93
* @route '/book/vehicle'
*/
vehicleForm.get = (options?: RouteQueryOptions): RouteFormDefinition<'get'> => ({
    action: vehicle.url(options),
    method: 'get',
})

/**
* @see \App\Http\Controllers\Booking\BookingWizardController::vehicle
* @see app/Http/Controllers/Booking/BookingWizardController.php:93
* @route '/book/vehicle'
*/
vehicleForm.head = (options?: RouteQueryOptions): RouteFormDefinition<'get'> => ({
    action: vehicle.url({
        [options?.mergeQuery ? 'mergeQuery' : 'query']: {
            _method: 'HEAD',
            ...(options?.query ?? options?.mergeQuery ?? {}),
        }
    }),
    method: 'get',
})

vehicle.form = vehicleForm

/**
* @see \App\Http\Controllers\Booking\BookingWizardController::storeVehicle
* @see app/Http/Controllers/Booking/BookingWizardController.php:145
* @route '/book/vehicle'
*/
export const storeVehicle = (options?: RouteQueryOptions): RouteDefinition<'post'> => ({
    url: storeVehicle.url(options),
    method: 'post',
})

storeVehicle.definition = {
    methods: ["post"],
    url: '/book/vehicle',
} satisfies RouteDefinition<["post"]>

/**
* @see \App\Http\Controllers\Booking\BookingWizardController::storeVehicle
* @see app/Http/Controllers/Booking/BookingWizardController.php:145
* @route '/book/vehicle'
*/
storeVehicle.url = (options?: RouteQueryOptions) => {
    return storeVehicle.definition.url + queryParams(options)
}

/**
* @see \App\Http\Controllers\Booking\BookingWizardController::storeVehicle
* @see app/Http/Controllers/Booking/BookingWizardController.php:145
* @route '/book/vehicle'
*/
storeVehicle.post = (options?: RouteQueryOptions): RouteDefinition<'post'> => ({
    url: storeVehicle.url(options),
    method: 'post',
})

/**
* @see \App\Http\Controllers\Booking\BookingWizardController::storeVehicle
* @see app/Http/Controllers/Booking/BookingWizardController.php:145
* @route '/book/vehicle'
*/
const storeVehicleForm = (options?: RouteQueryOptions): RouteFormDefinition<'post'> => ({
    action: storeVehicle.url(options),
    method: 'post',
})

/**
* @see \App\Http\Controllers\Booking\BookingWizardController::storeVehicle
* @see app/Http/Controllers/Booking/BookingWizardController.php:145
* @route '/book/vehicle'
*/
storeVehicleForm.post = (options?: RouteQueryOptions): RouteFormDefinition<'post'> => ({
    action: storeVehicle.url(options),
    method: 'post',
})

storeVehicle.form = storeVehicleForm

/**
* @see \App\Http\Controllers\Booking\BookingWizardController::packageMethod
* @see app/Http/Controllers/Booking/BookingWizardController.php:156
* @route '/book/package'
*/
export const packageMethod = (options?: RouteQueryOptions): RouteDefinition<'get'> => ({
    url: packageMethod.url(options),
    method: 'get',
})

packageMethod.definition = {
    methods: ["get","head"],
    url: '/book/package',
} satisfies RouteDefinition<["get","head"]>

/**
* @see \App\Http\Controllers\Booking\BookingWizardController::packageMethod
* @see app/Http/Controllers/Booking/BookingWizardController.php:156
* @route '/book/package'
*/
packageMethod.url = (options?: RouteQueryOptions) => {
    return packageMethod.definition.url + queryParams(options)
}

/**
* @see \App\Http\Controllers\Booking\BookingWizardController::packageMethod
* @see app/Http/Controllers/Booking/BookingWizardController.php:156
* @route '/book/package'
*/
packageMethod.get = (options?: RouteQueryOptions): RouteDefinition<'get'> => ({
    url: packageMethod.url(options),
    method: 'get',
})

/**
* @see \App\Http\Controllers\Booking\BookingWizardController::packageMethod
* @see app/Http/Controllers/Booking/BookingWizardController.php:156
* @route '/book/package'
*/
packageMethod.head = (options?: RouteQueryOptions): RouteDefinition<'head'> => ({
    url: packageMethod.url(options),
    method: 'head',
})

/**
* @see \App\Http\Controllers\Booking\BookingWizardController::packageMethod
* @see app/Http/Controllers/Booking/BookingWizardController.php:156
* @route '/book/package'
*/
const packageMethodForm = (options?: RouteQueryOptions): RouteFormDefinition<'get'> => ({
    action: packageMethod.url(options),
    method: 'get',
})

/**
* @see \App\Http\Controllers\Booking\BookingWizardController::packageMethod
* @see app/Http/Controllers/Booking/BookingWizardController.php:156
* @route '/book/package'
*/
packageMethodForm.get = (options?: RouteQueryOptions): RouteFormDefinition<'get'> => ({
    action: packageMethod.url(options),
    method: 'get',
})

/**
* @see \App\Http\Controllers\Booking\BookingWizardController::packageMethod
* @see app/Http/Controllers/Booking/BookingWizardController.php:156
* @route '/book/package'
*/
packageMethodForm.head = (options?: RouteQueryOptions): RouteFormDefinition<'get'> => ({
    action: packageMethod.url({
        [options?.mergeQuery ? 'mergeQuery' : 'query']: {
            _method: 'HEAD',
            ...(options?.query ?? options?.mergeQuery ?? {}),
        }
    }),
    method: 'get',
})

packageMethod.form = packageMethodForm

/**
* @see \App\Http\Controllers\Booking\BookingWizardController::storePackage
* @see app/Http/Controllers/Booking/BookingWizardController.php:190
* @route '/book/package'
*/
export const storePackage = (options?: RouteQueryOptions): RouteDefinition<'post'> => ({
    url: storePackage.url(options),
    method: 'post',
})

storePackage.definition = {
    methods: ["post"],
    url: '/book/package',
} satisfies RouteDefinition<["post"]>

/**
* @see \App\Http\Controllers\Booking\BookingWizardController::storePackage
* @see app/Http/Controllers/Booking/BookingWizardController.php:190
* @route '/book/package'
*/
storePackage.url = (options?: RouteQueryOptions) => {
    return storePackage.definition.url + queryParams(options)
}

/**
* @see \App\Http\Controllers\Booking\BookingWizardController::storePackage
* @see app/Http/Controllers/Booking/BookingWizardController.php:190
* @route '/book/package'
*/
storePackage.post = (options?: RouteQueryOptions): RouteDefinition<'post'> => ({
    url: storePackage.url(options),
    method: 'post',
})

/**
* @see \App\Http\Controllers\Booking\BookingWizardController::storePackage
* @see app/Http/Controllers/Booking/BookingWizardController.php:190
* @route '/book/package'
*/
const storePackageForm = (options?: RouteQueryOptions): RouteFormDefinition<'post'> => ({
    action: storePackage.url(options),
    method: 'post',
})

/**
* @see \App\Http\Controllers\Booking\BookingWizardController::storePackage
* @see app/Http/Controllers/Booking/BookingWizardController.php:190
* @route '/book/package'
*/
storePackageForm.post = (options?: RouteQueryOptions): RouteFormDefinition<'post'> => ({
    action: storePackage.url(options),
    method: 'post',
})

storePackage.form = storePackageForm

/**
* @see \App\Http\Controllers\Booking\BookingWizardController::addons
* @see app/Http/Controllers/Booking/BookingWizardController.php:201
* @route '/book/addons'
*/
export const addons = (options?: RouteQueryOptions): RouteDefinition<'get'> => ({
    url: addons.url(options),
    method: 'get',
})

addons.definition = {
    methods: ["get","head"],
    url: '/book/addons',
} satisfies RouteDefinition<["get","head"]>

/**
* @see \App\Http\Controllers\Booking\BookingWizardController::addons
* @see app/Http/Controllers/Booking/BookingWizardController.php:201
* @route '/book/addons'
*/
addons.url = (options?: RouteQueryOptions) => {
    return addons.definition.url + queryParams(options)
}

/**
* @see \App\Http\Controllers\Booking\BookingWizardController::addons
* @see app/Http/Controllers/Booking/BookingWizardController.php:201
* @route '/book/addons'
*/
addons.get = (options?: RouteQueryOptions): RouteDefinition<'get'> => ({
    url: addons.url(options),
    method: 'get',
})

/**
* @see \App\Http\Controllers\Booking\BookingWizardController::addons
* @see app/Http/Controllers/Booking/BookingWizardController.php:201
* @route '/book/addons'
*/
addons.head = (options?: RouteQueryOptions): RouteDefinition<'head'> => ({
    url: addons.url(options),
    method: 'head',
})

/**
* @see \App\Http\Controllers\Booking\BookingWizardController::addons
* @see app/Http/Controllers/Booking/BookingWizardController.php:201
* @route '/book/addons'
*/
const addonsForm = (options?: RouteQueryOptions): RouteFormDefinition<'get'> => ({
    action: addons.url(options),
    method: 'get',
})

/**
* @see \App\Http\Controllers\Booking\BookingWizardController::addons
* @see app/Http/Controllers/Booking/BookingWizardController.php:201
* @route '/book/addons'
*/
addonsForm.get = (options?: RouteQueryOptions): RouteFormDefinition<'get'> => ({
    action: addons.url(options),
    method: 'get',
})

/**
* @see \App\Http\Controllers\Booking\BookingWizardController::addons
* @see app/Http/Controllers/Booking/BookingWizardController.php:201
* @route '/book/addons'
*/
addonsForm.head = (options?: RouteQueryOptions): RouteFormDefinition<'get'> => ({
    action: addons.url({
        [options?.mergeQuery ? 'mergeQuery' : 'query']: {
            _method: 'HEAD',
            ...(options?.query ?? options?.mergeQuery ?? {}),
        }
    }),
    method: 'get',
})

addons.form = addonsForm

/**
* @see \App\Http\Controllers\Booking\BookingWizardController::storeAddons
* @see app/Http/Controllers/Booking/BookingWizardController.php:224
* @route '/book/addons'
*/
export const storeAddons = (options?: RouteQueryOptions): RouteDefinition<'post'> => ({
    url: storeAddons.url(options),
    method: 'post',
})

storeAddons.definition = {
    methods: ["post"],
    url: '/book/addons',
} satisfies RouteDefinition<["post"]>

/**
* @see \App\Http\Controllers\Booking\BookingWizardController::storeAddons
* @see app/Http/Controllers/Booking/BookingWizardController.php:224
* @route '/book/addons'
*/
storeAddons.url = (options?: RouteQueryOptions) => {
    return storeAddons.definition.url + queryParams(options)
}

/**
* @see \App\Http\Controllers\Booking\BookingWizardController::storeAddons
* @see app/Http/Controllers/Booking/BookingWizardController.php:224
* @route '/book/addons'
*/
storeAddons.post = (options?: RouteQueryOptions): RouteDefinition<'post'> => ({
    url: storeAddons.url(options),
    method: 'post',
})

/**
* @see \App\Http\Controllers\Booking\BookingWizardController::storeAddons
* @see app/Http/Controllers/Booking/BookingWizardController.php:224
* @route '/book/addons'
*/
const storeAddonsForm = (options?: RouteQueryOptions): RouteFormDefinition<'post'> => ({
    action: storeAddons.url(options),
    method: 'post',
})

/**
* @see \App\Http\Controllers\Booking\BookingWizardController::storeAddons
* @see app/Http/Controllers/Booking/BookingWizardController.php:224
* @route '/book/addons'
*/
storeAddonsForm.post = (options?: RouteQueryOptions): RouteFormDefinition<'post'> => ({
    action: storeAddons.url(options),
    method: 'post',
})

storeAddons.form = storeAddonsForm

/**
* @see \App\Http\Controllers\Booking\BookingWizardController::applyPromoCode
* @see app/Http/Controllers/Booking/BookingWizardController.php:351
* @route '/book/promo-code'
*/
export const applyPromoCode = (options?: RouteQueryOptions): RouteDefinition<'post'> => ({
    url: applyPromoCode.url(options),
    method: 'post',
})

applyPromoCode.definition = {
    methods: ["post"],
    url: '/book/promo-code',
} satisfies RouteDefinition<["post"]>

/**
* @see \App\Http\Controllers\Booking\BookingWizardController::applyPromoCode
* @see app/Http/Controllers/Booking/BookingWizardController.php:351
* @route '/book/promo-code'
*/
applyPromoCode.url = (options?: RouteQueryOptions) => {
    return applyPromoCode.definition.url + queryParams(options)
}

/**
* @see \App\Http\Controllers\Booking\BookingWizardController::applyPromoCode
* @see app/Http/Controllers/Booking/BookingWizardController.php:351
* @route '/book/promo-code'
*/
applyPromoCode.post = (options?: RouteQueryOptions): RouteDefinition<'post'> => ({
    url: applyPromoCode.url(options),
    method: 'post',
})

/**
* @see \App\Http\Controllers\Booking\BookingWizardController::applyPromoCode
* @see app/Http/Controllers/Booking/BookingWizardController.php:351
* @route '/book/promo-code'
*/
const applyPromoCodeForm = (options?: RouteQueryOptions): RouteFormDefinition<'post'> => ({
    action: applyPromoCode.url(options),
    method: 'post',
})

/**
* @see \App\Http\Controllers\Booking\BookingWizardController::applyPromoCode
* @see app/Http/Controllers/Booking/BookingWizardController.php:351
* @route '/book/promo-code'
*/
applyPromoCodeForm.post = (options?: RouteQueryOptions): RouteFormDefinition<'post'> => ({
    action: applyPromoCode.url(options),
    method: 'post',
})

applyPromoCode.form = applyPromoCodeForm

/**
* @see \App\Http\Controllers\Booking\BookingWizardController::datetime
* @see app/Http/Controllers/Booking/BookingWizardController.php:235
* @route '/book/datetime'
*/
export const datetime = (options?: RouteQueryOptions): RouteDefinition<'get'> => ({
    url: datetime.url(options),
    method: 'get',
})

datetime.definition = {
    methods: ["get","head"],
    url: '/book/datetime',
} satisfies RouteDefinition<["get","head"]>

/**
* @see \App\Http\Controllers\Booking\BookingWizardController::datetime
* @see app/Http/Controllers/Booking/BookingWizardController.php:235
* @route '/book/datetime'
*/
datetime.url = (options?: RouteQueryOptions) => {
    return datetime.definition.url + queryParams(options)
}

/**
* @see \App\Http\Controllers\Booking\BookingWizardController::datetime
* @see app/Http/Controllers/Booking/BookingWizardController.php:235
* @route '/book/datetime'
*/
datetime.get = (options?: RouteQueryOptions): RouteDefinition<'get'> => ({
    url: datetime.url(options),
    method: 'get',
})

/**
* @see \App\Http\Controllers\Booking\BookingWizardController::datetime
* @see app/Http/Controllers/Booking/BookingWizardController.php:235
* @route '/book/datetime'
*/
datetime.head = (options?: RouteQueryOptions): RouteDefinition<'head'> => ({
    url: datetime.url(options),
    method: 'head',
})

/**
* @see \App\Http\Controllers\Booking\BookingWizardController::datetime
* @see app/Http/Controllers/Booking/BookingWizardController.php:235
* @route '/book/datetime'
*/
const datetimeForm = (options?: RouteQueryOptions): RouteFormDefinition<'get'> => ({
    action: datetime.url(options),
    method: 'get',
})

/**
* @see \App\Http\Controllers\Booking\BookingWizardController::datetime
* @see app/Http/Controllers/Booking/BookingWizardController.php:235
* @route '/book/datetime'
*/
datetimeForm.get = (options?: RouteQueryOptions): RouteFormDefinition<'get'> => ({
    action: datetime.url(options),
    method: 'get',
})

/**
* @see \App\Http\Controllers\Booking\BookingWizardController::datetime
* @see app/Http/Controllers/Booking/BookingWizardController.php:235
* @route '/book/datetime'
*/
datetimeForm.head = (options?: RouteQueryOptions): RouteFormDefinition<'get'> => ({
    action: datetime.url({
        [options?.mergeQuery ? 'mergeQuery' : 'query']: {
            _method: 'HEAD',
            ...(options?.query ?? options?.mergeQuery ?? {}),
        }
    }),
    method: 'get',
})

datetime.form = datetimeForm

/**
* @see \App\Http\Controllers\Booking\BookingWizardController::storeDateTime
* @see app/Http/Controllers/Booking/BookingWizardController.php:276
* @route '/book/datetime'
*/
export const storeDateTime = (options?: RouteQueryOptions): RouteDefinition<'post'> => ({
    url: storeDateTime.url(options),
    method: 'post',
})

storeDateTime.definition = {
    methods: ["post"],
    url: '/book/datetime',
} satisfies RouteDefinition<["post"]>

/**
* @see \App\Http\Controllers\Booking\BookingWizardController::storeDateTime
* @see app/Http/Controllers/Booking/BookingWizardController.php:276
* @route '/book/datetime'
*/
storeDateTime.url = (options?: RouteQueryOptions) => {
    return storeDateTime.definition.url + queryParams(options)
}

/**
* @see \App\Http\Controllers\Booking\BookingWizardController::storeDateTime
* @see app/Http/Controllers/Booking/BookingWizardController.php:276
* @route '/book/datetime'
*/
storeDateTime.post = (options?: RouteQueryOptions): RouteDefinition<'post'> => ({
    url: storeDateTime.url(options),
    method: 'post',
})

/**
* @see \App\Http\Controllers\Booking\BookingWizardController::storeDateTime
* @see app/Http/Controllers/Booking/BookingWizardController.php:276
* @route '/book/datetime'
*/
const storeDateTimeForm = (options?: RouteQueryOptions): RouteFormDefinition<'post'> => ({
    action: storeDateTime.url(options),
    method: 'post',
})

/**
* @see \App\Http\Controllers\Booking\BookingWizardController::storeDateTime
* @see app/Http/Controllers/Booking/BookingWizardController.php:276
* @route '/book/datetime'
*/
storeDateTimeForm.post = (options?: RouteQueryOptions): RouteFormDefinition<'post'> => ({
    action: storeDateTime.url(options),
    method: 'post',
})

storeDateTime.form = storeDateTimeForm

/**
* @see \App\Http\Controllers\Booking\BookingWizardController::customerInfo
* @see app/Http/Controllers/Booking/BookingWizardController.php:287
* @route '/book/customer-info'
*/
export const customerInfo = (options?: RouteQueryOptions): RouteDefinition<'get'> => ({
    url: customerInfo.url(options),
    method: 'get',
})

customerInfo.definition = {
    methods: ["get","head"],
    url: '/book/customer-info',
} satisfies RouteDefinition<["get","head"]>

/**
* @see \App\Http\Controllers\Booking\BookingWizardController::customerInfo
* @see app/Http/Controllers/Booking/BookingWizardController.php:287
* @route '/book/customer-info'
*/
customerInfo.url = (options?: RouteQueryOptions) => {
    return customerInfo.definition.url + queryParams(options)
}

/**
* @see \App\Http\Controllers\Booking\BookingWizardController::customerInfo
* @see app/Http/Controllers/Booking/BookingWizardController.php:287
* @route '/book/customer-info'
*/
customerInfo.get = (options?: RouteQueryOptions): RouteDefinition<'get'> => ({
    url: customerInfo.url(options),
    method: 'get',
})

/**
* @see \App\Http\Controllers\Booking\BookingWizardController::customerInfo
* @see app/Http/Controllers/Booking/BookingWizardController.php:287
* @route '/book/customer-info'
*/
customerInfo.head = (options?: RouteQueryOptions): RouteDefinition<'head'> => ({
    url: customerInfo.url(options),
    method: 'head',
})

/**
* @see \App\Http\Controllers\Booking\BookingWizardController::customerInfo
* @see app/Http/Controllers/Booking/BookingWizardController.php:287
* @route '/book/customer-info'
*/
const customerInfoForm = (options?: RouteQueryOptions): RouteFormDefinition<'get'> => ({
    action: customerInfo.url(options),
    method: 'get',
})

/**
* @see \App\Http\Controllers\Booking\BookingWizardController::customerInfo
* @see app/Http/Controllers/Booking/BookingWizardController.php:287
* @route '/book/customer-info'
*/
customerInfoForm.get = (options?: RouteQueryOptions): RouteFormDefinition<'get'> => ({
    action: customerInfo.url(options),
    method: 'get',
})

/**
* @see \App\Http\Controllers\Booking\BookingWizardController::customerInfo
* @see app/Http/Controllers/Booking/BookingWizardController.php:287
* @route '/book/customer-info'
*/
customerInfoForm.head = (options?: RouteQueryOptions): RouteFormDefinition<'get'> => ({
    action: customerInfo.url({
        [options?.mergeQuery ? 'mergeQuery' : 'query']: {
            _method: 'HEAD',
            ...(options?.query ?? options?.mergeQuery ?? {}),
        }
    }),
    method: 'get',
})

customerInfo.form = customerInfoForm

/**
* @see \App\Http\Controllers\Booking\BookingWizardController::storeCustomerInfo
* @see app/Http/Controllers/Booking/BookingWizardController.php:321
* @route '/book/customer-info'
*/
export const storeCustomerInfo = (options?: RouteQueryOptions): RouteDefinition<'post'> => ({
    url: storeCustomerInfo.url(options),
    method: 'post',
})

storeCustomerInfo.definition = {
    methods: ["post"],
    url: '/book/customer-info',
} satisfies RouteDefinition<["post"]>

/**
* @see \App\Http\Controllers\Booking\BookingWizardController::storeCustomerInfo
* @see app/Http/Controllers/Booking/BookingWizardController.php:321
* @route '/book/customer-info'
*/
storeCustomerInfo.url = (options?: RouteQueryOptions) => {
    return storeCustomerInfo.definition.url + queryParams(options)
}

/**
* @see \App\Http\Controllers\Booking\BookingWizardController::storeCustomerInfo
* @see app/Http/Controllers/Booking/BookingWizardController.php:321
* @route '/book/customer-info'
*/
storeCustomerInfo.post = (options?: RouteQueryOptions): RouteDefinition<'post'> => ({
    url: storeCustomerInfo.url(options),
    method: 'post',
})

/**
* @see \App\Http\Controllers\Booking\BookingWizardController::storeCustomerInfo
* @see app/Http/Controllers/Booking/BookingWizardController.php:321
* @route '/book/customer-info'
*/
const storeCustomerInfoForm = (options?: RouteQueryOptions): RouteFormDefinition<'post'> => ({
    action: storeCustomerInfo.url(options),
    method: 'post',
})

/**
* @see \App\Http\Controllers\Booking\BookingWizardController::storeCustomerInfo
* @see app/Http/Controllers/Booking/BookingWizardController.php:321
* @route '/book/customer-info'
*/
storeCustomerInfoForm.post = (options?: RouteQueryOptions): RouteFormDefinition<'post'> => ({
    action: storeCustomerInfo.url(options),
    method: 'post',
})

storeCustomerInfo.form = storeCustomerInfoForm

/**
* @see \App\Http\Controllers\Booking\BookingWizardController::payment
* @see app/Http/Controllers/Booking/BookingWizardController.php:332
* @route '/book/payment'
*/
export const payment = (options?: RouteQueryOptions): RouteDefinition<'get'> => ({
    url: payment.url(options),
    method: 'get',
})

payment.definition = {
    methods: ["get","head"],
    url: '/book/payment',
} satisfies RouteDefinition<["get","head"]>

/**
* @see \App\Http\Controllers\Booking\BookingWizardController::payment
* @see app/Http/Controllers/Booking/BookingWizardController.php:332
* @route '/book/payment'
*/
payment.url = (options?: RouteQueryOptions) => {
    return payment.definition.url + queryParams(options)
}

/**
* @see \App\Http\Controllers\Booking\BookingWizardController::payment
* @see app/Http/Controllers/Booking/BookingWizardController.php:332
* @route '/book/payment'
*/
payment.get = (options?: RouteQueryOptions): RouteDefinition<'get'> => ({
    url: payment.url(options),
    method: 'get',
})

/**
* @see \App\Http\Controllers\Booking\BookingWizardController::payment
* @see app/Http/Controllers/Booking/BookingWizardController.php:332
* @route '/book/payment'
*/
payment.head = (options?: RouteQueryOptions): RouteDefinition<'head'> => ({
    url: payment.url(options),
    method: 'head',
})

/**
* @see \App\Http\Controllers\Booking\BookingWizardController::payment
* @see app/Http/Controllers/Booking/BookingWizardController.php:332
* @route '/book/payment'
*/
const paymentForm = (options?: RouteQueryOptions): RouteFormDefinition<'get'> => ({
    action: payment.url(options),
    method: 'get',
})

/**
* @see \App\Http\Controllers\Booking\BookingWizardController::payment
* @see app/Http/Controllers/Booking/BookingWizardController.php:332
* @route '/book/payment'
*/
paymentForm.get = (options?: RouteQueryOptions): RouteFormDefinition<'get'> => ({
    action: payment.url(options),
    method: 'get',
})

/**
* @see \App\Http\Controllers\Booking\BookingWizardController::payment
* @see app/Http/Controllers/Booking/BookingWizardController.php:332
* @route '/book/payment'
*/
paymentForm.head = (options?: RouteQueryOptions): RouteFormDefinition<'get'> => ({
    action: payment.url({
        [options?.mergeQuery ? 'mergeQuery' : 'query']: {
            _method: 'HEAD',
            ...(options?.query ?? options?.mergeQuery ?? {}),
        }
    }),
    method: 'get',
})

payment.form = paymentForm

/**
* @see \App\Http\Controllers\Booking\BookingWizardController::storePayment
* @see app/Http/Controllers/Booking/BookingWizardController.php:393
* @route '/book/payment'
*/
export const storePayment = (options?: RouteQueryOptions): RouteDefinition<'post'> => ({
    url: storePayment.url(options),
    method: 'post',
})

storePayment.definition = {
    methods: ["post"],
    url: '/book/payment',
} satisfies RouteDefinition<["post"]>

/**
* @see \App\Http\Controllers\Booking\BookingWizardController::storePayment
* @see app/Http/Controllers/Booking/BookingWizardController.php:393
* @route '/book/payment'
*/
storePayment.url = (options?: RouteQueryOptions) => {
    return storePayment.definition.url + queryParams(options)
}

/**
* @see \App\Http\Controllers\Booking\BookingWizardController::storePayment
* @see app/Http/Controllers/Booking/BookingWizardController.php:393
* @route '/book/payment'
*/
storePayment.post = (options?: RouteQueryOptions): RouteDefinition<'post'> => ({
    url: storePayment.url(options),
    method: 'post',
})

/**
* @see \App\Http\Controllers\Booking\BookingWizardController::storePayment
* @see app/Http/Controllers/Booking/BookingWizardController.php:393
* @route '/book/payment'
*/
const storePaymentForm = (options?: RouteQueryOptions): RouteFormDefinition<'post'> => ({
    action: storePayment.url(options),
    method: 'post',
})

/**
* @see \App\Http\Controllers\Booking\BookingWizardController::storePayment
* @see app/Http/Controllers/Booking/BookingWizardController.php:393
* @route '/book/payment'
*/
storePaymentForm.post = (options?: RouteQueryOptions): RouteFormDefinition<'post'> => ({
    action: storePayment.url(options),
    method: 'post',
})

storePayment.form = storePaymentForm

/**
* @see \App\Http\Controllers\Booking\BookingWizardController::confirmPayment
* @see app/Http/Controllers/Booking/BookingWizardController.php:465
* @route '/book/payment/{bookingUuid}/confirm'
*/
export const confirmPayment = (args: { bookingUuid: string | number } | [bookingUuid: string | number ] | string | number, options?: RouteQueryOptions): RouteDefinition<'get'> => ({
    url: confirmPayment.url(args, options),
    method: 'get',
})

confirmPayment.definition = {
    methods: ["get","head"],
    url: '/book/payment/{bookingUuid}/confirm',
} satisfies RouteDefinition<["get","head"]>

/**
* @see \App\Http\Controllers\Booking\BookingWizardController::confirmPayment
* @see app/Http/Controllers/Booking/BookingWizardController.php:465
* @route '/book/payment/{bookingUuid}/confirm'
*/
confirmPayment.url = (args: { bookingUuid: string | number } | [bookingUuid: string | number ] | string | number, options?: RouteQueryOptions) => {
    if (typeof args === 'string' || typeof args === 'number') {
        args = { bookingUuid: args }
    }

    if (Array.isArray(args)) {
        args = {
            bookingUuid: args[0],
        }
    }

    args = applyUrlDefaults(args)

    const parsedArgs = {
        bookingUuid: args.bookingUuid,
    }

    return confirmPayment.definition.url
            .replace('{bookingUuid}', parsedArgs.bookingUuid.toString())
            .replace(/\/+$/, '') + queryParams(options)
}

/**
* @see \App\Http\Controllers\Booking\BookingWizardController::confirmPayment
* @see app/Http/Controllers/Booking/BookingWizardController.php:465
* @route '/book/payment/{bookingUuid}/confirm'
*/
confirmPayment.get = (args: { bookingUuid: string | number } | [bookingUuid: string | number ] | string | number, options?: RouteQueryOptions): RouteDefinition<'get'> => ({
    url: confirmPayment.url(args, options),
    method: 'get',
})

/**
* @see \App\Http\Controllers\Booking\BookingWizardController::confirmPayment
* @see app/Http/Controllers/Booking/BookingWizardController.php:465
* @route '/book/payment/{bookingUuid}/confirm'
*/
confirmPayment.head = (args: { bookingUuid: string | number } | [bookingUuid: string | number ] | string | number, options?: RouteQueryOptions): RouteDefinition<'head'> => ({
    url: confirmPayment.url(args, options),
    method: 'head',
})

/**
* @see \App\Http\Controllers\Booking\BookingWizardController::confirmPayment
* @see app/Http/Controllers/Booking/BookingWizardController.php:465
* @route '/book/payment/{bookingUuid}/confirm'
*/
const confirmPaymentForm = (args: { bookingUuid: string | number } | [bookingUuid: string | number ] | string | number, options?: RouteQueryOptions): RouteFormDefinition<'get'> => ({
    action: confirmPayment.url(args, options),
    method: 'get',
})

/**
* @see \App\Http\Controllers\Booking\BookingWizardController::confirmPayment
* @see app/Http/Controllers/Booking/BookingWizardController.php:465
* @route '/book/payment/{bookingUuid}/confirm'
*/
confirmPaymentForm.get = (args: { bookingUuid: string | number } | [bookingUuid: string | number ] | string | number, options?: RouteQueryOptions): RouteFormDefinition<'get'> => ({
    action: confirmPayment.url(args, options),
    method: 'get',
})

/**
* @see \App\Http\Controllers\Booking\BookingWizardController::confirmPayment
* @see app/Http/Controllers/Booking/BookingWizardController.php:465
* @route '/book/payment/{bookingUuid}/confirm'
*/
confirmPaymentForm.head = (args: { bookingUuid: string | number } | [bookingUuid: string | number ] | string | number, options?: RouteQueryOptions): RouteFormDefinition<'get'> => ({
    action: confirmPayment.url(args, {
        [options?.mergeQuery ? 'mergeQuery' : 'query']: {
            _method: 'HEAD',
            ...(options?.query ?? options?.mergeQuery ?? {}),
        }
    }),
    method: 'get',
})

confirmPayment.form = confirmPaymentForm

/**
* @see \App\Http\Controllers\Booking\BookingWizardController::complete
* @see app/Http/Controllers/Booking/BookingWizardController.php:484
* @route '/book/complete'
*/
export const complete = (options?: RouteQueryOptions): RouteDefinition<'get'> => ({
    url: complete.url(options),
    method: 'get',
})

complete.definition = {
    methods: ["get","head"],
    url: '/book/complete',
} satisfies RouteDefinition<["get","head"]>

/**
* @see \App\Http\Controllers\Booking\BookingWizardController::complete
* @see app/Http/Controllers/Booking/BookingWizardController.php:484
* @route '/book/complete'
*/
complete.url = (options?: RouteQueryOptions) => {
    return complete.definition.url + queryParams(options)
}

/**
* @see \App\Http\Controllers\Booking\BookingWizardController::complete
* @see app/Http/Controllers/Booking/BookingWizardController.php:484
* @route '/book/complete'
*/
complete.get = (options?: RouteQueryOptions): RouteDefinition<'get'> => ({
    url: complete.url(options),
    method: 'get',
})

/**
* @see \App\Http\Controllers\Booking\BookingWizardController::complete
* @see app/Http/Controllers/Booking/BookingWizardController.php:484
* @route '/book/complete'
*/
complete.head = (options?: RouteQueryOptions): RouteDefinition<'head'> => ({
    url: complete.url(options),
    method: 'head',
})

/**
* @see \App\Http\Controllers\Booking\BookingWizardController::complete
* @see app/Http/Controllers/Booking/BookingWizardController.php:484
* @route '/book/complete'
*/
const completeForm = (options?: RouteQueryOptions): RouteFormDefinition<'get'> => ({
    action: complete.url(options),
    method: 'get',
})

/**
* @see \App\Http\Controllers\Booking\BookingWizardController::complete
* @see app/Http/Controllers/Booking/BookingWizardController.php:484
* @route '/book/complete'
*/
completeForm.get = (options?: RouteQueryOptions): RouteFormDefinition<'get'> => ({
    action: complete.url(options),
    method: 'get',
})

/**
* @see \App\Http\Controllers\Booking\BookingWizardController::complete
* @see app/Http/Controllers/Booking/BookingWizardController.php:484
* @route '/book/complete'
*/
completeForm.head = (options?: RouteQueryOptions): RouteFormDefinition<'get'> => ({
    action: complete.url({
        [options?.mergeQuery ? 'mergeQuery' : 'query']: {
            _method: 'HEAD',
            ...(options?.query ?? options?.mergeQuery ?? {}),
        }
    }),
    method: 'get',
})

complete.form = completeForm

const BookingWizardController = { location, storeLocation, vehicle, storeVehicle, packageMethod, storePackage, addons, storeAddons, applyPromoCode, datetime, storeDateTime, customerInfo, storeCustomerInfo, payment, storePayment, confirmPayment, complete, package: packageMethod }

export default BookingWizardController