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

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

/**
* @see \App\Http\Controllers\SavingsController::index
 * @see app/Http/Controllers/SavingsController.php:32
 * @route '/savings'
 */
index.url = (options?: RouteQueryOptions) => {
    return index.definition.url + queryParams(options)
}

/**
* @see \App\Http\Controllers\SavingsController::index
 * @see app/Http/Controllers/SavingsController.php:32
 * @route '/savings'
 */
index.get = (options?: RouteQueryOptions): RouteDefinition<'get'> => ({
    url: index.url(options),
    method: 'get',
})
/**
* @see \App\Http\Controllers\SavingsController::index
 * @see app/Http/Controllers/SavingsController.php:32
 * @route '/savings'
 */
index.head = (options?: RouteQueryOptions): RouteDefinition<'head'> => ({
    url: index.url(options),
    method: 'head',
})

    /**
* @see \App\Http\Controllers\SavingsController::index
 * @see app/Http/Controllers/SavingsController.php:32
 * @route '/savings'
 */
    const indexForm = (options?: RouteQueryOptions): RouteFormDefinition<'get'> => ({
        action: index.url(options),
        method: 'get',
    })

            /**
* @see \App\Http\Controllers\SavingsController::index
 * @see app/Http/Controllers/SavingsController.php:32
 * @route '/savings'
 */
        indexForm.get = (options?: RouteQueryOptions): RouteFormDefinition<'get'> => ({
            action: index.url(options),
            method: 'get',
        })
            /**
* @see \App\Http\Controllers\SavingsController::index
 * @see app/Http/Controllers/SavingsController.php:32
 * @route '/savings'
 */
        indexForm.head = (options?: RouteQueryOptions): RouteFormDefinition<'get'> => ({
            action: index.url({
                        [options?.mergeQuery ? 'mergeQuery' : 'query']: {
                            _method: 'HEAD',
                            ...(options?.query ?? options?.mergeQuery ?? {}),
                        }
                    }),
            method: 'get',
        })
    
    index.form = indexForm
/**
* @see \App\Http\Controllers\SavingsController::openAccountForm
 * @see app/Http/Controllers/SavingsController.php:138
 * @route '/savings/open/{member}'
 */
export const openAccountForm = (args: { member: string | number | { id: string | number } } | [member: string | number | { id: string | number } ] | string | number | { id: string | number }, options?: RouteQueryOptions): RouteDefinition<'get'> => ({
    url: openAccountForm.url(args, options),
    method: 'get',
})

openAccountForm.definition = {
    methods: ["get","head"],
    url: '/savings/open/{member}',
} satisfies RouteDefinition<["get","head"]>

/**
* @see \App\Http\Controllers\SavingsController::openAccountForm
 * @see app/Http/Controllers/SavingsController.php:138
 * @route '/savings/open/{member}'
 */
openAccountForm.url = (args: { member: string | number | { id: string | number } } | [member: string | number | { id: string | number } ] | string | number | { id: string | number }, options?: RouteQueryOptions) => {
    if (typeof args === 'string' || typeof args === 'number') {
        args = { member: args }
    }

            if (typeof args === 'object' && !Array.isArray(args) && 'id' in args) {
            args = { member: args.id }
        }
    
    if (Array.isArray(args)) {
        args = {
                    member: args[0],
                }
    }

    args = applyUrlDefaults(args)

    const parsedArgs = {
                        member: typeof args.member === 'object'
                ? args.member.id
                : args.member,
                }

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

/**
* @see \App\Http\Controllers\SavingsController::openAccountForm
 * @see app/Http/Controllers/SavingsController.php:138
 * @route '/savings/open/{member}'
 */
openAccountForm.get = (args: { member: string | number | { id: string | number } } | [member: string | number | { id: string | number } ] | string | number | { id: string | number }, options?: RouteQueryOptions): RouteDefinition<'get'> => ({
    url: openAccountForm.url(args, options),
    method: 'get',
})
/**
* @see \App\Http\Controllers\SavingsController::openAccountForm
 * @see app/Http/Controllers/SavingsController.php:138
 * @route '/savings/open/{member}'
 */
openAccountForm.head = (args: { member: string | number | { id: string | number } } | [member: string | number | { id: string | number } ] | string | number | { id: string | number }, options?: RouteQueryOptions): RouteDefinition<'head'> => ({
    url: openAccountForm.url(args, options),
    method: 'head',
})

    /**
* @see \App\Http\Controllers\SavingsController::openAccountForm
 * @see app/Http/Controllers/SavingsController.php:138
 * @route '/savings/open/{member}'
 */
    const openAccountFormForm = (args: { member: string | number | { id: string | number } } | [member: string | number | { id: string | number } ] | string | number | { id: string | number }, options?: RouteQueryOptions): RouteFormDefinition<'get'> => ({
        action: openAccountForm.url(args, options),
        method: 'get',
    })

            /**
* @see \App\Http\Controllers\SavingsController::openAccountForm
 * @see app/Http/Controllers/SavingsController.php:138
 * @route '/savings/open/{member}'
 */
        openAccountFormForm.get = (args: { member: string | number | { id: string | number } } | [member: string | number | { id: string | number } ] | string | number | { id: string | number }, options?: RouteQueryOptions): RouteFormDefinition<'get'> => ({
            action: openAccountForm.url(args, options),
            method: 'get',
        })
            /**
* @see \App\Http\Controllers\SavingsController::openAccountForm
 * @see app/Http/Controllers/SavingsController.php:138
 * @route '/savings/open/{member}'
 */
        openAccountFormForm.head = (args: { member: string | number | { id: string | number } } | [member: string | number | { id: string | number } ] | string | number | { id: string | number }, options?: RouteQueryOptions): RouteFormDefinition<'get'> => ({
            action: openAccountForm.url(args, {
                        [options?.mergeQuery ? 'mergeQuery' : 'query']: {
                            _method: 'HEAD',
                            ...(options?.query ?? options?.mergeQuery ?? {}),
                        }
                    }),
            method: 'get',
        })
    
    openAccountForm.form = openAccountFormForm
/**
* @see \App\Http\Controllers\SavingsController::openAccount
 * @see app/Http/Controllers/SavingsController.php:151
 * @route '/savings/open'
 */
export const openAccount = (options?: RouteQueryOptions): RouteDefinition<'post'> => ({
    url: openAccount.url(options),
    method: 'post',
})

openAccount.definition = {
    methods: ["post"],
    url: '/savings/open',
} satisfies RouteDefinition<["post"]>

/**
* @see \App\Http\Controllers\SavingsController::openAccount
 * @see app/Http/Controllers/SavingsController.php:151
 * @route '/savings/open'
 */
openAccount.url = (options?: RouteQueryOptions) => {
    return openAccount.definition.url + queryParams(options)
}

/**
* @see \App\Http\Controllers\SavingsController::openAccount
 * @see app/Http/Controllers/SavingsController.php:151
 * @route '/savings/open'
 */
openAccount.post = (options?: RouteQueryOptions): RouteDefinition<'post'> => ({
    url: openAccount.url(options),
    method: 'post',
})

    /**
* @see \App\Http\Controllers\SavingsController::openAccount
 * @see app/Http/Controllers/SavingsController.php:151
 * @route '/savings/open'
 */
    const openAccountForm = (options?: RouteQueryOptions): RouteFormDefinition<'post'> => ({
        action: openAccount.url(options),
        method: 'post',
    })

            /**
* @see \App\Http\Controllers\SavingsController::openAccount
 * @see app/Http/Controllers/SavingsController.php:151
 * @route '/savings/open'
 */
        openAccountForm.post = (options?: RouteQueryOptions): RouteFormDefinition<'post'> => ({
            action: openAccount.url(options),
            method: 'post',
        })
    
    openAccount.form = openAccountForm
/**
* @see \App\Http\Controllers\SavingsController::show
 * @see app/Http/Controllers/SavingsController.php:66
 * @route '/savings/{account}'
 */
export const show = (args: { account: string | number | { id: string | number } } | [account: string | number | { id: string | number } ] | string | number | { id: string | number }, options?: RouteQueryOptions): RouteDefinition<'get'> => ({
    url: show.url(args, options),
    method: 'get',
})

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

/**
* @see \App\Http\Controllers\SavingsController::show
 * @see app/Http/Controllers/SavingsController.php:66
 * @route '/savings/{account}'
 */
show.url = (args: { account: string | number | { id: string | number } } | [account: string | number | { id: string | number } ] | string | number | { id: string | number }, options?: RouteQueryOptions) => {
    if (typeof args === 'string' || typeof args === 'number') {
        args = { account: args }
    }

            if (typeof args === 'object' && !Array.isArray(args) && 'id' in args) {
            args = { account: args.id }
        }
    
    if (Array.isArray(args)) {
        args = {
                    account: args[0],
                }
    }

    args = applyUrlDefaults(args)

    const parsedArgs = {
                        account: typeof args.account === 'object'
                ? args.account.id
                : args.account,
                }

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

/**
* @see \App\Http\Controllers\SavingsController::show
 * @see app/Http/Controllers/SavingsController.php:66
 * @route '/savings/{account}'
 */
show.get = (args: { account: string | number | { id: string | number } } | [account: string | number | { id: string | number } ] | string | number | { id: string | number }, options?: RouteQueryOptions): RouteDefinition<'get'> => ({
    url: show.url(args, options),
    method: 'get',
})
/**
* @see \App\Http\Controllers\SavingsController::show
 * @see app/Http/Controllers/SavingsController.php:66
 * @route '/savings/{account}'
 */
show.head = (args: { account: string | number | { id: string | number } } | [account: string | number | { id: string | number } ] | string | number | { id: string | number }, options?: RouteQueryOptions): RouteDefinition<'head'> => ({
    url: show.url(args, options),
    method: 'head',
})

    /**
* @see \App\Http\Controllers\SavingsController::show
 * @see app/Http/Controllers/SavingsController.php:66
 * @route '/savings/{account}'
 */
    const showForm = (args: { account: string | number | { id: string | number } } | [account: string | number | { id: string | number } ] | string | number | { id: string | number }, options?: RouteQueryOptions): RouteFormDefinition<'get'> => ({
        action: show.url(args, options),
        method: 'get',
    })

            /**
* @see \App\Http\Controllers\SavingsController::show
 * @see app/Http/Controllers/SavingsController.php:66
 * @route '/savings/{account}'
 */
        showForm.get = (args: { account: string | number | { id: string | number } } | [account: string | number | { id: string | number } ] | string | number | { id: string | number }, options?: RouteQueryOptions): RouteFormDefinition<'get'> => ({
            action: show.url(args, options),
            method: 'get',
        })
            /**
* @see \App\Http\Controllers\SavingsController::show
 * @see app/Http/Controllers/SavingsController.php:66
 * @route '/savings/{account}'
 */
        showForm.head = (args: { account: string | number | { id: string | number } } | [account: string | number | { id: string | number } ] | string | number | { id: string | number }, options?: RouteQueryOptions): RouteFormDefinition<'get'> => ({
            action: show.url(args, {
                        [options?.mergeQuery ? 'mergeQuery' : 'query']: {
                            _method: 'HEAD',
                            ...(options?.query ?? options?.mergeQuery ?? {}),
                        }
                    }),
            method: 'get',
        })
    
    show.form = showForm
/**
* @see \App\Http\Controllers\SavingsController::transactions
 * @see app/Http/Controllers/SavingsController.php:83
 * @route '/savings/{account}/transactions'
 */
export const transactions = (args: { account: string | number | { id: string | number } } | [account: string | number | { id: string | number } ] | string | number | { id: string | number }, options?: RouteQueryOptions): RouteDefinition<'get'> => ({
    url: transactions.url(args, options),
    method: 'get',
})

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

/**
* @see \App\Http\Controllers\SavingsController::transactions
 * @see app/Http/Controllers/SavingsController.php:83
 * @route '/savings/{account}/transactions'
 */
transactions.url = (args: { account: string | number | { id: string | number } } | [account: string | number | { id: string | number } ] | string | number | { id: string | number }, options?: RouteQueryOptions) => {
    if (typeof args === 'string' || typeof args === 'number') {
        args = { account: args }
    }

            if (typeof args === 'object' && !Array.isArray(args) && 'id' in args) {
            args = { account: args.id }
        }
    
    if (Array.isArray(args)) {
        args = {
                    account: args[0],
                }
    }

    args = applyUrlDefaults(args)

    const parsedArgs = {
                        account: typeof args.account === 'object'
                ? args.account.id
                : args.account,
                }

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

/**
* @see \App\Http\Controllers\SavingsController::transactions
 * @see app/Http/Controllers/SavingsController.php:83
 * @route '/savings/{account}/transactions'
 */
transactions.get = (args: { account: string | number | { id: string | number } } | [account: string | number | { id: string | number } ] | string | number | { id: string | number }, options?: RouteQueryOptions): RouteDefinition<'get'> => ({
    url: transactions.url(args, options),
    method: 'get',
})
/**
* @see \App\Http\Controllers\SavingsController::transactions
 * @see app/Http/Controllers/SavingsController.php:83
 * @route '/savings/{account}/transactions'
 */
transactions.head = (args: { account: string | number | { id: string | number } } | [account: string | number | { id: string | number } ] | string | number | { id: string | number }, options?: RouteQueryOptions): RouteDefinition<'head'> => ({
    url: transactions.url(args, options),
    method: 'head',
})

    /**
* @see \App\Http\Controllers\SavingsController::transactions
 * @see app/Http/Controllers/SavingsController.php:83
 * @route '/savings/{account}/transactions'
 */
    const transactionsForm = (args: { account: string | number | { id: string | number } } | [account: string | number | { id: string | number } ] | string | number | { id: string | number }, options?: RouteQueryOptions): RouteFormDefinition<'get'> => ({
        action: transactions.url(args, options),
        method: 'get',
    })

            /**
* @see \App\Http\Controllers\SavingsController::transactions
 * @see app/Http/Controllers/SavingsController.php:83
 * @route '/savings/{account}/transactions'
 */
        transactionsForm.get = (args: { account: string | number | { id: string | number } } | [account: string | number | { id: string | number } ] | string | number | { id: string | number }, options?: RouteQueryOptions): RouteFormDefinition<'get'> => ({
            action: transactions.url(args, options),
            method: 'get',
        })
            /**
* @see \App\Http\Controllers\SavingsController::transactions
 * @see app/Http/Controllers/SavingsController.php:83
 * @route '/savings/{account}/transactions'
 */
        transactionsForm.head = (args: { account: string | number | { id: string | number } } | [account: string | number | { id: string | number } ] | string | number | { id: string | number }, options?: RouteQueryOptions): RouteFormDefinition<'get'> => ({
            action: transactions.url(args, {
                        [options?.mergeQuery ? 'mergeQuery' : 'query']: {
                            _method: 'HEAD',
                            ...(options?.query ?? options?.mergeQuery ?? {}),
                        }
                    }),
            method: 'get',
        })
    
    transactions.form = transactionsForm
/**
* @see \App\Http\Controllers\SavingsController::deposit
 * @see app/Http/Controllers/SavingsController.php:96
 * @route '/savings/deposit'
 */
export const deposit = (options?: RouteQueryOptions): RouteDefinition<'post'> => ({
    url: deposit.url(options),
    method: 'post',
})

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

/**
* @see \App\Http\Controllers\SavingsController::deposit
 * @see app/Http/Controllers/SavingsController.php:96
 * @route '/savings/deposit'
 */
deposit.url = (options?: RouteQueryOptions) => {
    return deposit.definition.url + queryParams(options)
}

/**
* @see \App\Http\Controllers\SavingsController::deposit
 * @see app/Http/Controllers/SavingsController.php:96
 * @route '/savings/deposit'
 */
deposit.post = (options?: RouteQueryOptions): RouteDefinition<'post'> => ({
    url: deposit.url(options),
    method: 'post',
})

    /**
* @see \App\Http\Controllers\SavingsController::deposit
 * @see app/Http/Controllers/SavingsController.php:96
 * @route '/savings/deposit'
 */
    const depositForm = (options?: RouteQueryOptions): RouteFormDefinition<'post'> => ({
        action: deposit.url(options),
        method: 'post',
    })

            /**
* @see \App\Http\Controllers\SavingsController::deposit
 * @see app/Http/Controllers/SavingsController.php:96
 * @route '/savings/deposit'
 */
        depositForm.post = (options?: RouteQueryOptions): RouteFormDefinition<'post'> => ({
            action: deposit.url(options),
            method: 'post',
        })
    
    deposit.form = depositForm
/**
* @see \App\Http\Controllers\SavingsController::withdraw
 * @see app/Http/Controllers/SavingsController.php:118
 * @route '/savings/withdraw'
 */
export const withdraw = (options?: RouteQueryOptions): RouteDefinition<'post'> => ({
    url: withdraw.url(options),
    method: 'post',
})

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

/**
* @see \App\Http\Controllers\SavingsController::withdraw
 * @see app/Http/Controllers/SavingsController.php:118
 * @route '/savings/withdraw'
 */
withdraw.url = (options?: RouteQueryOptions) => {
    return withdraw.definition.url + queryParams(options)
}

/**
* @see \App\Http\Controllers\SavingsController::withdraw
 * @see app/Http/Controllers/SavingsController.php:118
 * @route '/savings/withdraw'
 */
withdraw.post = (options?: RouteQueryOptions): RouteDefinition<'post'> => ({
    url: withdraw.url(options),
    method: 'post',
})

    /**
* @see \App\Http\Controllers\SavingsController::withdraw
 * @see app/Http/Controllers/SavingsController.php:118
 * @route '/savings/withdraw'
 */
    const withdrawForm = (options?: RouteQueryOptions): RouteFormDefinition<'post'> => ({
        action: withdraw.url(options),
        method: 'post',
    })

            /**
* @see \App\Http\Controllers\SavingsController::withdraw
 * @see app/Http/Controllers/SavingsController.php:118
 * @route '/savings/withdraw'
 */
        withdrawForm.post = (options?: RouteQueryOptions): RouteFormDefinition<'post'> => ({
            action: withdraw.url(options),
            method: 'post',
        })
    
    withdraw.form = withdrawForm
/**
* @see \App\Http\Controllers\SavingsController::closeAccount
 * @see app/Http/Controllers/SavingsController.php:174
 * @route '/savings/{account}/close'
 */
export const closeAccount = (args: { account: string | number | { id: string | number } } | [account: string | number | { id: string | number } ] | string | number | { id: string | number }, options?: RouteQueryOptions): RouteDefinition<'post'> => ({
    url: closeAccount.url(args, options),
    method: 'post',
})

closeAccount.definition = {
    methods: ["post"],
    url: '/savings/{account}/close',
} satisfies RouteDefinition<["post"]>

/**
* @see \App\Http\Controllers\SavingsController::closeAccount
 * @see app/Http/Controllers/SavingsController.php:174
 * @route '/savings/{account}/close'
 */
closeAccount.url = (args: { account: string | number | { id: string | number } } | [account: string | number | { id: string | number } ] | string | number | { id: string | number }, options?: RouteQueryOptions) => {
    if (typeof args === 'string' || typeof args === 'number') {
        args = { account: args }
    }

            if (typeof args === 'object' && !Array.isArray(args) && 'id' in args) {
            args = { account: args.id }
        }
    
    if (Array.isArray(args)) {
        args = {
                    account: args[0],
                }
    }

    args = applyUrlDefaults(args)

    const parsedArgs = {
                        account: typeof args.account === 'object'
                ? args.account.id
                : args.account,
                }

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

/**
* @see \App\Http\Controllers\SavingsController::closeAccount
 * @see app/Http/Controllers/SavingsController.php:174
 * @route '/savings/{account}/close'
 */
closeAccount.post = (args: { account: string | number | { id: string | number } } | [account: string | number | { id: string | number } ] | string | number | { id: string | number }, options?: RouteQueryOptions): RouteDefinition<'post'> => ({
    url: closeAccount.url(args, options),
    method: 'post',
})

    /**
* @see \App\Http\Controllers\SavingsController::closeAccount
 * @see app/Http/Controllers/SavingsController.php:174
 * @route '/savings/{account}/close'
 */
    const closeAccountForm = (args: { account: string | number | { id: string | number } } | [account: string | number | { id: string | number } ] | string | number | { id: string | number }, options?: RouteQueryOptions): RouteFormDefinition<'post'> => ({
        action: closeAccount.url(args, options),
        method: 'post',
    })

            /**
* @see \App\Http\Controllers\SavingsController::closeAccount
 * @see app/Http/Controllers/SavingsController.php:174
 * @route '/savings/{account}/close'
 */
        closeAccountForm.post = (args: { account: string | number | { id: string | number } } | [account: string | number | { id: string | number } ] | string | number | { id: string | number }, options?: RouteQueryOptions): RouteFormDefinition<'post'> => ({
            action: closeAccount.url(args, options),
            method: 'post',
        })
    
    closeAccount.form = closeAccountForm
/**
* @see \App\Http\Controllers\SavingsController::downloadReceipt
 * @see app/Http/Controllers/SavingsController.php:195
 * @route '/savings/transactions/{transaction}/receipt'
 */
export const downloadReceipt = (args: { transaction: string | number | { id: string | number } } | [transaction: string | number | { id: string | number } ] | string | number | { id: string | number }, options?: RouteQueryOptions): RouteDefinition<'get'> => ({
    url: downloadReceipt.url(args, options),
    method: 'get',
})

downloadReceipt.definition = {
    methods: ["get","head"],
    url: '/savings/transactions/{transaction}/receipt',
} satisfies RouteDefinition<["get","head"]>

/**
* @see \App\Http\Controllers\SavingsController::downloadReceipt
 * @see app/Http/Controllers/SavingsController.php:195
 * @route '/savings/transactions/{transaction}/receipt'
 */
downloadReceipt.url = (args: { transaction: string | number | { id: string | number } } | [transaction: string | number | { id: string | number } ] | string | number | { id: string | number }, options?: RouteQueryOptions) => {
    if (typeof args === 'string' || typeof args === 'number') {
        args = { transaction: args }
    }

            if (typeof args === 'object' && !Array.isArray(args) && 'id' in args) {
            args = { transaction: args.id }
        }
    
    if (Array.isArray(args)) {
        args = {
                    transaction: args[0],
                }
    }

    args = applyUrlDefaults(args)

    const parsedArgs = {
                        transaction: typeof args.transaction === 'object'
                ? args.transaction.id
                : args.transaction,
                }

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

/**
* @see \App\Http\Controllers\SavingsController::downloadReceipt
 * @see app/Http/Controllers/SavingsController.php:195
 * @route '/savings/transactions/{transaction}/receipt'
 */
downloadReceipt.get = (args: { transaction: string | number | { id: string | number } } | [transaction: string | number | { id: string | number } ] | string | number | { id: string | number }, options?: RouteQueryOptions): RouteDefinition<'get'> => ({
    url: downloadReceipt.url(args, options),
    method: 'get',
})
/**
* @see \App\Http\Controllers\SavingsController::downloadReceipt
 * @see app/Http/Controllers/SavingsController.php:195
 * @route '/savings/transactions/{transaction}/receipt'
 */
downloadReceipt.head = (args: { transaction: string | number | { id: string | number } } | [transaction: string | number | { id: string | number } ] | string | number | { id: string | number }, options?: RouteQueryOptions): RouteDefinition<'head'> => ({
    url: downloadReceipt.url(args, options),
    method: 'head',
})

    /**
* @see \App\Http\Controllers\SavingsController::downloadReceipt
 * @see app/Http/Controllers/SavingsController.php:195
 * @route '/savings/transactions/{transaction}/receipt'
 */
    const downloadReceiptForm = (args: { transaction: string | number | { id: string | number } } | [transaction: string | number | { id: string | number } ] | string | number | { id: string | number }, options?: RouteQueryOptions): RouteFormDefinition<'get'> => ({
        action: downloadReceipt.url(args, options),
        method: 'get',
    })

            /**
* @see \App\Http\Controllers\SavingsController::downloadReceipt
 * @see app/Http/Controllers/SavingsController.php:195
 * @route '/savings/transactions/{transaction}/receipt'
 */
        downloadReceiptForm.get = (args: { transaction: string | number | { id: string | number } } | [transaction: string | number | { id: string | number } ] | string | number | { id: string | number }, options?: RouteQueryOptions): RouteFormDefinition<'get'> => ({
            action: downloadReceipt.url(args, options),
            method: 'get',
        })
            /**
* @see \App\Http\Controllers\SavingsController::downloadReceipt
 * @see app/Http/Controllers/SavingsController.php:195
 * @route '/savings/transactions/{transaction}/receipt'
 */
        downloadReceiptForm.head = (args: { transaction: string | number | { id: string | number } } | [transaction: string | number | { id: string | number } ] | string | number | { id: string | number }, options?: RouteQueryOptions): RouteFormDefinition<'get'> => ({
            action: downloadReceipt.url(args, {
                        [options?.mergeQuery ? 'mergeQuery' : 'query']: {
                            _method: 'HEAD',
                            ...(options?.query ?? options?.mergeQuery ?? {}),
                        }
                    }),
            method: 'get',
        })
    
    downloadReceipt.form = downloadReceiptForm
/**
* @see \App\Http\Controllers\SavingsController::csv
 * @see app/Http/Controllers/SavingsController.php:204
 * @route '/savings/export/csv'
 */
export const csv = (options?: RouteQueryOptions): RouteDefinition<'get'> => ({
    url: csv.url(options),
    method: 'get',
})

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

/**
* @see \App\Http\Controllers\SavingsController::csv
 * @see app/Http/Controllers/SavingsController.php:204
 * @route '/savings/export/csv'
 */
csv.url = (options?: RouteQueryOptions) => {
    return csv.definition.url + queryParams(options)
}

/**
* @see \App\Http\Controllers\SavingsController::csv
 * @see app/Http/Controllers/SavingsController.php:204
 * @route '/savings/export/csv'
 */
csv.get = (options?: RouteQueryOptions): RouteDefinition<'get'> => ({
    url: csv.url(options),
    method: 'get',
})
/**
* @see \App\Http\Controllers\SavingsController::csv
 * @see app/Http/Controllers/SavingsController.php:204
 * @route '/savings/export/csv'
 */
csv.head = (options?: RouteQueryOptions): RouteDefinition<'head'> => ({
    url: csv.url(options),
    method: 'head',
})

    /**
* @see \App\Http\Controllers\SavingsController::csv
 * @see app/Http/Controllers/SavingsController.php:204
 * @route '/savings/export/csv'
 */
    const csvForm = (options?: RouteQueryOptions): RouteFormDefinition<'get'> => ({
        action: csv.url(options),
        method: 'get',
    })

            /**
* @see \App\Http\Controllers\SavingsController::csv
 * @see app/Http/Controllers/SavingsController.php:204
 * @route '/savings/export/csv'
 */
        csvForm.get = (options?: RouteQueryOptions): RouteFormDefinition<'get'> => ({
            action: csv.url(options),
            method: 'get',
        })
            /**
* @see \App\Http\Controllers\SavingsController::csv
 * @see app/Http/Controllers/SavingsController.php:204
 * @route '/savings/export/csv'
 */
        csvForm.head = (options?: RouteQueryOptions): RouteFormDefinition<'get'> => ({
            action: csv.url({
                        [options?.mergeQuery ? 'mergeQuery' : 'query']: {
                            _method: 'HEAD',
                            ...(options?.query ?? options?.mergeQuery ?? {}),
                        }
                    }),
            method: 'get',
        })
    
    csv.form = csvForm
/**
* @see \App\Http\Controllers\SavingsController::pdf
 * @see app/Http/Controllers/SavingsController.php:217
 * @route '/savings/export/pdf'
 */
export const pdf = (options?: RouteQueryOptions): RouteDefinition<'get'> => ({
    url: pdf.url(options),
    method: 'get',
})

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

/**
* @see \App\Http\Controllers\SavingsController::pdf
 * @see app/Http/Controllers/SavingsController.php:217
 * @route '/savings/export/pdf'
 */
pdf.url = (options?: RouteQueryOptions) => {
    return pdf.definition.url + queryParams(options)
}

/**
* @see \App\Http\Controllers\SavingsController::pdf
 * @see app/Http/Controllers/SavingsController.php:217
 * @route '/savings/export/pdf'
 */
pdf.get = (options?: RouteQueryOptions): RouteDefinition<'get'> => ({
    url: pdf.url(options),
    method: 'get',
})
/**
* @see \App\Http\Controllers\SavingsController::pdf
 * @see app/Http/Controllers/SavingsController.php:217
 * @route '/savings/export/pdf'
 */
pdf.head = (options?: RouteQueryOptions): RouteDefinition<'head'> => ({
    url: pdf.url(options),
    method: 'head',
})

    /**
* @see \App\Http\Controllers\SavingsController::pdf
 * @see app/Http/Controllers/SavingsController.php:217
 * @route '/savings/export/pdf'
 */
    const pdfForm = (options?: RouteQueryOptions): RouteFormDefinition<'get'> => ({
        action: pdf.url(options),
        method: 'get',
    })

            /**
* @see \App\Http\Controllers\SavingsController::pdf
 * @see app/Http/Controllers/SavingsController.php:217
 * @route '/savings/export/pdf'
 */
        pdfForm.get = (options?: RouteQueryOptions): RouteFormDefinition<'get'> => ({
            action: pdf.url(options),
            method: 'get',
        })
            /**
* @see \App\Http\Controllers\SavingsController::pdf
 * @see app/Http/Controllers/SavingsController.php:217
 * @route '/savings/export/pdf'
 */
        pdfForm.head = (options?: RouteQueryOptions): RouteFormDefinition<'get'> => ({
            action: pdf.url({
                        [options?.mergeQuery ? 'mergeQuery' : 'query']: {
                            _method: 'HEAD',
                            ...(options?.query ?? options?.mergeQuery ?? {}),
                        }
                    }),
            method: 'get',
        })
    
    pdf.form = pdfForm
const SavingsController = { index, openAccountForm, openAccount, show, transactions, deposit, withdraw, closeAccount, downloadReceipt, csv, pdf }

export default SavingsController