import type { LLMTokensUsage, FinishReason, LLMOptions, LLMRequest, LLMResponse, LLMApiProviderOptions } from '../models/llm.models'; import type { LLMAssistantMessage, LLMMessage } from '../models/llm-message.models'; import type { LLMTool } from '../models/llm-tool.models'; import type { JSONObject } from '../models/data.models'; export interface LLMApiResponse { message: LLMAssistantMessage; usage: LLMTokensUsage; finishReason: FinishReason; request: LLMRequest; response: LLMResponse; } export declare abstract class LLMApiService { abstract getURL(): string; abstract getHeaders(): Record; abstract formatMessagePayload(message: LLMMessage): JSONObject; abstract formatToolCallPayload(tool: LLMTool): JSONObject; abstract formatOptionsPayload(options: LLMOptions): JSONObject; abstract parseAssistantResponse(data: JSONObject): Omit; createAssistantMessage(messages: LLMMessage[], tools?: LLMTool[], options?: LLMOptions & { providerOptions?: LLMApiProviderOptions; }): Promise; }