import { queryParams, type RouteQueryOptions, type RouteDefinition, type RouteFormDefinition } from './../../../wayfinder'
import openai from './openai'
/**
* @see \Vizra\VizraADK\Http\Controllers\AgentApiController::interact
* @see vendor/vizra/vizra-adk/src/Http/Controllers/AgentApiController.php:19
* @route '/api/vizra-adk/interact'
*/
export const interact = (options?: RouteQueryOptions): RouteDefinition<'post'> => ({
    url: interact.url(options),
    method: 'post',
})

interact.definition = {
    methods: ["post"],
    url: '/api/vizra-adk/interact',
} satisfies RouteDefinition<["post"]>

/**
* @see \Vizra\VizraADK\Http\Controllers\AgentApiController::interact
* @see vendor/vizra/vizra-adk/src/Http/Controllers/AgentApiController.php:19
* @route '/api/vizra-adk/interact'
*/
interact.url = (options?: RouteQueryOptions) => {
    return interact.definition.url + queryParams(options)
}

/**
* @see \Vizra\VizraADK\Http\Controllers\AgentApiController::interact
* @see vendor/vizra/vizra-adk/src/Http/Controllers/AgentApiController.php:19
* @route '/api/vizra-adk/interact'
*/
interact.post = (options?: RouteQueryOptions): RouteDefinition<'post'> => ({
    url: interact.url(options),
    method: 'post',
})

/**
* @see \Vizra\VizraADK\Http\Controllers\AgentApiController::interact
* @see vendor/vizra/vizra-adk/src/Http/Controllers/AgentApiController.php:19
* @route '/api/vizra-adk/interact'
*/
const interactForm = (options?: RouteQueryOptions): RouteFormDefinition<'post'> => ({
    action: interact.url(options),
    method: 'post',
})

/**
* @see \Vizra\VizraADK\Http\Controllers\AgentApiController::interact
* @see vendor/vizra/vizra-adk/src/Http/Controllers/AgentApiController.php:19
* @route '/api/vizra-adk/interact'
*/
interactForm.post = (options?: RouteQueryOptions): RouteFormDefinition<'post'> => ({
    action: interact.url(options),
    method: 'post',
})

interact.form = interactForm

const api = {
    interact: Object.assign(interact, interact),
    openai: Object.assign(openai, openai),
}

export default api