import { queryParams, type RouteQueryOptions, type RouteDefinition, type RouteFormDefinition } from './../../../../../wayfinder'
/**
* @see \App\Http\Controllers\Billing\LifecycleController::cancel
* @see app/Http/Controllers/Billing/LifecycleController.php:51
* @route '/billing/cancel'
*/
export const cancel = (options?: RouteQueryOptions): RouteDefinition<'post'> => ({
    url: cancel.url(options),
    method: 'post',
})

cancel.definition = {
    methods: ["post"],
    url: '/billing/cancel',
} satisfies RouteDefinition<["post"]>

/**
* @see \App\Http\Controllers\Billing\LifecycleController::cancel
* @see app/Http/Controllers/Billing/LifecycleController.php:51
* @route '/billing/cancel'
*/
cancel.url = (options?: RouteQueryOptions) => {
    return cancel.definition.url + queryParams(options)
}

/**
* @see \App\Http\Controllers\Billing\LifecycleController::cancel
* @see app/Http/Controllers/Billing/LifecycleController.php:51
* @route '/billing/cancel'
*/
cancel.post = (options?: RouteQueryOptions): RouteDefinition<'post'> => ({
    url: cancel.url(options),
    method: 'post',
})

/**
* @see \App\Http\Controllers\Billing\LifecycleController::cancel
* @see app/Http/Controllers/Billing/LifecycleController.php:51
* @route '/billing/cancel'
*/
const cancelForm = (options?: RouteQueryOptions): RouteFormDefinition<'post'> => ({
    action: cancel.url(options),
    method: 'post',
})

/**
* @see \App\Http\Controllers\Billing\LifecycleController::cancel
* @see app/Http/Controllers/Billing/LifecycleController.php:51
* @route '/billing/cancel'
*/
cancelForm.post = (options?: RouteQueryOptions): RouteFormDefinition<'post'> => ({
    action: cancel.url(options),
    method: 'post',
})

cancel.form = cancelForm

/**
* @see \App\Http\Controllers\Billing\LifecycleController::resume
* @see app/Http/Controllers/Billing/LifecycleController.php:120
* @route '/billing/resume'
*/
export const resume = (options?: RouteQueryOptions): RouteDefinition<'post'> => ({
    url: resume.url(options),
    method: 'post',
})

resume.definition = {
    methods: ["post"],
    url: '/billing/resume',
} satisfies RouteDefinition<["post"]>

/**
* @see \App\Http\Controllers\Billing\LifecycleController::resume
* @see app/Http/Controllers/Billing/LifecycleController.php:120
* @route '/billing/resume'
*/
resume.url = (options?: RouteQueryOptions) => {
    return resume.definition.url + queryParams(options)
}

/**
* @see \App\Http\Controllers\Billing\LifecycleController::resume
* @see app/Http/Controllers/Billing/LifecycleController.php:120
* @route '/billing/resume'
*/
resume.post = (options?: RouteQueryOptions): RouteDefinition<'post'> => ({
    url: resume.url(options),
    method: 'post',
})

/**
* @see \App\Http\Controllers\Billing\LifecycleController::resume
* @see app/Http/Controllers/Billing/LifecycleController.php:120
* @route '/billing/resume'
*/
const resumeForm = (options?: RouteQueryOptions): RouteFormDefinition<'post'> => ({
    action: resume.url(options),
    method: 'post',
})

/**
* @see \App\Http\Controllers\Billing\LifecycleController::resume
* @see app/Http/Controllers/Billing/LifecycleController.php:120
* @route '/billing/resume'
*/
resumeForm.post = (options?: RouteQueryOptions): RouteFormDefinition<'post'> => ({
    action: resume.url(options),
    method: 'post',
})

resume.form = resumeForm

/**
* @see \App\Http\Controllers\Billing\LifecycleController::swap
* @see app/Http/Controllers/Billing/LifecycleController.php:159
* @route '/billing/swap'
*/
export const swap = (options?: RouteQueryOptions): RouteDefinition<'post'> => ({
    url: swap.url(options),
    method: 'post',
})

swap.definition = {
    methods: ["post"],
    url: '/billing/swap',
} satisfies RouteDefinition<["post"]>

/**
* @see \App\Http\Controllers\Billing\LifecycleController::swap
* @see app/Http/Controllers/Billing/LifecycleController.php:159
* @route '/billing/swap'
*/
swap.url = (options?: RouteQueryOptions) => {
    return swap.definition.url + queryParams(options)
}

/**
* @see \App\Http\Controllers\Billing\LifecycleController::swap
* @see app/Http/Controllers/Billing/LifecycleController.php:159
* @route '/billing/swap'
*/
swap.post = (options?: RouteQueryOptions): RouteDefinition<'post'> => ({
    url: swap.url(options),
    method: 'post',
})

/**
* @see \App\Http\Controllers\Billing\LifecycleController::swap
* @see app/Http/Controllers/Billing/LifecycleController.php:159
* @route '/billing/swap'
*/
const swapForm = (options?: RouteQueryOptions): RouteFormDefinition<'post'> => ({
    action: swap.url(options),
    method: 'post',
})

/**
* @see \App\Http\Controllers\Billing\LifecycleController::swap
* @see app/Http/Controllers/Billing/LifecycleController.php:159
* @route '/billing/swap'
*/
swapForm.post = (options?: RouteQueryOptions): RouteFormDefinition<'post'> => ({
    action: swap.url(options),
    method: 'post',
})

swap.form = swapForm

const LifecycleController = { cancel, resume, swap }

export default LifecycleController