import { ChatCompletionTool } from "openai/resources/index.mjs";
import type { AgentRunResult, AnyChatMessage, ChatCompletionOptions, ChatInputMessage, Context, ToolObject } from "../types";
export declare abstract class BaseAgent {
    readonly name: string;
    readonly description: string;
    protected readonly systemMessage: string;
    protected abstract defaultOptions: ChatCompletionOptions;
    protected options: ChatCompletionOptions;
    constructor(name: string, description: string, systemMessage: string);
    protected abstract getSystemMessage(context?: Context): ChatInputMessage;
    protected getToolsFromToolObjects(toolObjects: ToolObject[]): ChatCompletionTool[];
    protected abstract getTools(): ChatCompletionTool[];
    abstract run(conversationId: string, messages: AnyChatMessage[], context: Context): Promise<AgentRunResult>;
    protected _getCompletion(messages: ChatInputMessage[], conversationId: string): Promise<{
        completion: ChatCompletion;
        logEntry: {
            conversationId: string;
            agent: string;
            lastInputMessage: ChatCompletionMessageParam;
            completionInfo: {
                completionChoicesCount: any;
                finishReason: any;
                toolsCallCount: any;
                toolCall: {
                    functionName: any;
                    functionArguments: any;
                };
                content: any;
            };
            usage: any;
            _inputMessages: ChatCompletionMessageParam[];
        };
    }>;
    protected updateContextLog(currentContext: Context, content: Context): Context<any>;
}
//# sourceMappingURL=Agent.d.ts.map