import { Agent } from '../agent'; import { AgentEventStream, ToolCallEngine, AgentContextAwarenessOptions } from '@multimodal/agent-interface'; import { ResolvedModel, LLMReasoningOptions, OpenAI } from '@multimodal/model-provider'; import { ToolProcessor } from './tool-processor'; /** * LLMProcessor - Responsible for LLM interaction * * This class handles preparing requests to the LLM, processing responses, * and managing streaming vs. non-streaming interactions. */ export declare class LLMProcessor { private agent; private eventStream; private toolProcessor; private reasoningOptions; private maxTokens?; private temperature; private contextAwarenessOptions?; private logger; private messageHistory; private llmClient?; constructor(agent: Agent, eventStream: AgentEventStream.Processor, toolProcessor: ToolProcessor, reasoningOptions: LLMReasoningOptions, maxTokens?: number | undefined, temperature?: number, contextAwarenessOptions?: AgentContextAwarenessOptions | undefined); /** * Custom LLM client for testing or custom implementations * * @param llmClient - OpenAI-compatible llm client */ setCustomLLMClient(client: OpenAI): void; /** * Get the current LLM client (custom or created on demand) * * @returns The current OpenAI-compatible LLM client */ getCurrentLLMClient(): OpenAI | undefined; /** * Process an LLM request for a single iteration * * @param resolvedModel The resolved model configuration * @param systemPrompt The configured base system prompt * @param toolCallEngine The tool call engine to use * @param sessionId Session identifier * @param streamingMode Whether to operate in streaming mode * @param iteration Current iteration number for logging * @param abortSignal Optional signal to abort the execution */ processRequest(resolvedModel: ResolvedModel, systemPrompt: string, toolCallEngine: ToolCallEngine, sessionId: string, streamingMode: boolean, iteration: number, abortSignal?: AbortSignal): Promise; /** * Send the actual request to the LLM and process the response */ private sendRequest; /** * Handle streaming response from LLM * Processes chunks, accumulates content, and handles tool calls */ private handleStreamingResponse; /** * Create the final events from accumulated content */ private createFinalEvents; } //# sourceMappingURL=llm-processor.d.ts.map