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

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

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

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

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

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

completions.form = completionsForm

const chat = {
    completions: Object.assign(completions, completions),
}

export default chat