import type { CallChatModelStreamOptions } from '../../execution/LlmExecutionTools';
import type { ChatPromptResult, CommonPromptResult } from '../../execution/PromptResult';
import type { Prompt } from '../../types/Prompt';
import type { string_model_name } from '../../types/string_model_name';
import type { string_title } from '../../types/string_title';
import { OpenAiAssistantExecutionTools } from '../openai/OpenAiAssistantExecutionTools';
import type { AgentLlmExecutionToolsPromptPreparer } from './AgentLlmExecutionToolsPromptPreparer';
/**
 * Handles deprecated OpenAI Assistant-backed executions for `AgentLlmExecutionTools`.
 *
 * @private internal utility of `AgentLlmExecutionTools`
 */
export declare class AgentLlmExecutionToolsOpenAiAssistantRunner {
    private readonly context;
    /**
     * Cache of OpenAI assistants to avoid creating duplicates.
     */
    private static assistantCache;
    constructor(context: {
        readonly getTitle: () => string_title;
        readonly getModelName: () => string_model_name;
        readonly isVerbose?: boolean;
        readonly assistantPreparationMode?: 'internal' | 'external';
    });
    /**
     * Runs one prepared prompt through the deprecated OpenAI Assistant backend.
     */
    callChatModelStream(options: {
        readonly llmTools: OpenAiAssistantExecutionTools;
        readonly originalPrompt: Prompt;
        readonly preparedChatPrompt: Awaited<ReturnType<AgentLlmExecutionToolsPromptPreparer['prepareChatPrompt']>>;
        readonly onProgress: (chunk: ChatPromptResult) => void;
        readonly streamOptions?: CallChatModelStreamOptions;
    }): Promise<CommonPromptResult>;
    /**
     * Returns an assistant instance matching the current agent requirements, reusing caches when possible.
     */
    private getOrPrepareOpenAiAssistant;
    /**
     * Stores one assistant id in the shared assistant cache for this agent title.
     */
    private storeAssistantCache;
}
