import { queryParams, type RouteQueryOptions, type RouteDefinition, type RouteFormDefinition } from './../../wayfinder'
import company890735 from './company'
import branding3fced6 from './branding'
import connect9bcf81 from './connect'
import xero from './xero'
/**
* @see \App\Http\Controllers\OnboardingController::company
* @see app/Http/Controllers/OnboardingController.php:29
* @route '/onboarding/company'
*/
export const company = (options?: RouteQueryOptions): RouteDefinition<'get'> => ({
    url: company.url(options),
    method: 'get',
})

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

/**
* @see \App\Http\Controllers\OnboardingController::company
* @see app/Http/Controllers/OnboardingController.php:29
* @route '/onboarding/company'
*/
company.url = (options?: RouteQueryOptions) => {
    return company.definition.url + queryParams(options)
}

/**
* @see \App\Http\Controllers\OnboardingController::company
* @see app/Http/Controllers/OnboardingController.php:29
* @route '/onboarding/company'
*/
company.get = (options?: RouteQueryOptions): RouteDefinition<'get'> => ({
    url: company.url(options),
    method: 'get',
})

/**
* @see \App\Http\Controllers\OnboardingController::company
* @see app/Http/Controllers/OnboardingController.php:29
* @route '/onboarding/company'
*/
company.head = (options?: RouteQueryOptions): RouteDefinition<'head'> => ({
    url: company.url(options),
    method: 'head',
})

/**
* @see \App\Http\Controllers\OnboardingController::company
* @see app/Http/Controllers/OnboardingController.php:29
* @route '/onboarding/company'
*/
const companyForm = (options?: RouteQueryOptions): RouteFormDefinition<'get'> => ({
    action: company.url(options),
    method: 'get',
})

/**
* @see \App\Http\Controllers\OnboardingController::company
* @see app/Http/Controllers/OnboardingController.php:29
* @route '/onboarding/company'
*/
companyForm.get = (options?: RouteQueryOptions): RouteFormDefinition<'get'> => ({
    action: company.url(options),
    method: 'get',
})

/**
* @see \App\Http\Controllers\OnboardingController::company
* @see app/Http/Controllers/OnboardingController.php:29
* @route '/onboarding/company'
*/
companyForm.head = (options?: RouteQueryOptions): RouteFormDefinition<'get'> => ({
    action: company.url({
        [options?.mergeQuery ? 'mergeQuery' : 'query']: {
            _method: 'HEAD',
            ...(options?.query ?? options?.mergeQuery ?? {}),
        }
    }),
    method: 'get',
})

company.form = companyForm

/**
* @see \App\Http\Controllers\OnboardingController::branding
* @see app/Http/Controllers/OnboardingController.php:64
* @route '/onboarding/branding'
*/
export const branding = (options?: RouteQueryOptions): RouteDefinition<'get'> => ({
    url: branding.url(options),
    method: 'get',
})

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

/**
* @see \App\Http\Controllers\OnboardingController::branding
* @see app/Http/Controllers/OnboardingController.php:64
* @route '/onboarding/branding'
*/
branding.url = (options?: RouteQueryOptions) => {
    return branding.definition.url + queryParams(options)
}

/**
* @see \App\Http\Controllers\OnboardingController::branding
* @see app/Http/Controllers/OnboardingController.php:64
* @route '/onboarding/branding'
*/
branding.get = (options?: RouteQueryOptions): RouteDefinition<'get'> => ({
    url: branding.url(options),
    method: 'get',
})

/**
* @see \App\Http\Controllers\OnboardingController::branding
* @see app/Http/Controllers/OnboardingController.php:64
* @route '/onboarding/branding'
*/
branding.head = (options?: RouteQueryOptions): RouteDefinition<'head'> => ({
    url: branding.url(options),
    method: 'head',
})

/**
* @see \App\Http\Controllers\OnboardingController::branding
* @see app/Http/Controllers/OnboardingController.php:64
* @route '/onboarding/branding'
*/
const brandingForm = (options?: RouteQueryOptions): RouteFormDefinition<'get'> => ({
    action: branding.url(options),
    method: 'get',
})

/**
* @see \App\Http\Controllers\OnboardingController::branding
* @see app/Http/Controllers/OnboardingController.php:64
* @route '/onboarding/branding'
*/
brandingForm.get = (options?: RouteQueryOptions): RouteFormDefinition<'get'> => ({
    action: branding.url(options),
    method: 'get',
})

/**
* @see \App\Http\Controllers\OnboardingController::branding
* @see app/Http/Controllers/OnboardingController.php:64
* @route '/onboarding/branding'
*/
brandingForm.head = (options?: RouteQueryOptions): RouteFormDefinition<'get'> => ({
    action: branding.url({
        [options?.mergeQuery ? 'mergeQuery' : 'query']: {
            _method: 'HEAD',
            ...(options?.query ?? options?.mergeQuery ?? {}),
        }
    }),
    method: 'get',
})

branding.form = brandingForm

/**
* @see \App\Http\Controllers\OnboardingController::connect
* @see app/Http/Controllers/OnboardingController.php:88
* @route '/onboarding/connect'
*/
export const connect = (options?: RouteQueryOptions): RouteDefinition<'get'> => ({
    url: connect.url(options),
    method: 'get',
})

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

/**
* @see \App\Http\Controllers\OnboardingController::connect
* @see app/Http/Controllers/OnboardingController.php:88
* @route '/onboarding/connect'
*/
connect.url = (options?: RouteQueryOptions) => {
    return connect.definition.url + queryParams(options)
}

/**
* @see \App\Http\Controllers\OnboardingController::connect
* @see app/Http/Controllers/OnboardingController.php:88
* @route '/onboarding/connect'
*/
connect.get = (options?: RouteQueryOptions): RouteDefinition<'get'> => ({
    url: connect.url(options),
    method: 'get',
})

/**
* @see \App\Http\Controllers\OnboardingController::connect
* @see app/Http/Controllers/OnboardingController.php:88
* @route '/onboarding/connect'
*/
connect.head = (options?: RouteQueryOptions): RouteDefinition<'head'> => ({
    url: connect.url(options),
    method: 'head',
})

/**
* @see \App\Http\Controllers\OnboardingController::connect
* @see app/Http/Controllers/OnboardingController.php:88
* @route '/onboarding/connect'
*/
const connectForm = (options?: RouteQueryOptions): RouteFormDefinition<'get'> => ({
    action: connect.url(options),
    method: 'get',
})

/**
* @see \App\Http\Controllers\OnboardingController::connect
* @see app/Http/Controllers/OnboardingController.php:88
* @route '/onboarding/connect'
*/
connectForm.get = (options?: RouteQueryOptions): RouteFormDefinition<'get'> => ({
    action: connect.url(options),
    method: 'get',
})

/**
* @see \App\Http\Controllers\OnboardingController::connect
* @see app/Http/Controllers/OnboardingController.php:88
* @route '/onboarding/connect'
*/
connectForm.head = (options?: RouteQueryOptions): RouteFormDefinition<'get'> => ({
    action: connect.url({
        [options?.mergeQuery ? 'mergeQuery' : 'query']: {
            _method: 'HEAD',
            ...(options?.query ?? options?.mergeQuery ?? {}),
        }
    }),
    method: 'get',
})

connect.form = connectForm

const onboarding = {
    company: Object.assign(company, company890735),
    branding: Object.assign(branding, branding3fced6),
    connect: Object.assign(connect, connect9bcf81),
    xero: Object.assign(xero, xero),
}

export default onboarding