@file:Suppress("HardCodedStringLiteral")

package eu.gaudian.translator.model.communication

import retrofit2.Call
import retrofit2.http.Body
import retrofit2.http.GET
import retrofit2.http.Headers
import retrofit2.http.POST
import retrofit2.http.Url

interface LlmApiService {
    @Headers("Content-Type: application/json")
    @POST
    fun sendRequest(@Url url: String, @Body request: Request): Call<ApiResponse>

    @Headers("Content-Type: application/json")
    @POST
    fun sendGeminiRequest(@Url url: String, @Body request: GeminiRequest): Call<GeminiResponse>

    // Generic models listing (e.g., OpenAI-compatible: GET v1/models)
    @GET
    fun listModels(@Url url: String): Call<ModelsListResponse>

    // Gemini models listing (GET v1beta/models)
    @GET
    fun listGeminiModels(@Url url: String): Call<GeminiModelsListResponse>
}