import { LlmToolCall, ToolDefinition } from '../../tools/platforms/tool-provider.platform'; import { MessageRole } from '../buddy.constants'; export type { LlmToolCall, ToolDefinition } from '../../tools/platforms/tool-provider.platform'; export interface ChatMessage { role: MessageRole.USER | MessageRole.ASSISTANT; content: string; } export interface LlmOptions { timeout?: number; model?: string; maxTokens?: number; tools?: ToolDefinition[]; signal?: AbortSignal; } export interface LlmResponseMeta { provider: string; model: string | null; inputTokens: number | null; outputTokens: number | null; finishReason: string | null; durationMs: number | null; cacheReadTokens: number | null; cacheWriteTokens: number | null; } export interface LlmResponse { content: string; toolCalls?: LlmToolCall[]; meta: LlmResponseMeta; } export interface ILlmProvider { getType(): string; getName(): string; getDescription(): string; getDefaultModel(): string; isConfigured(pluginConfig: Record): boolean; sendMessage(systemPrompt: string, messages: ChatMessage[], model: string, options?: LlmOptions): Promise; supportsTools?(): boolean; }