/**
 * Conversation Memory Management
 */
import type { AgentMessage, ToolCall, ToolResult } from "../types.js";
/**
 * ConversationMemory class
 * Manages conversation history for the agent
 */
export declare class ConversationMemory {
    private messages;
    private maxMessages;
    constructor(maxMessages?: number);
    /**
     * Add a system message
     */
    addSystem(content: string): void;
    /**
     * Add a user message
     */
    addUser(content: string): void;
    /**
     * Add an assistant message
     */
    addAssistant(content: string, toolCalls?: ToolCall[]): void;
    /**
     * Add a tool result message
     */
    addToolResult(toolCallId: string, result: ToolResult): void;
    /**
     * Get all messages
     */
    getMessages(): AgentMessage[];
    /**
     * Get messages for a specific role
     */
    getByRole(role: AgentMessage["role"]): AgentMessage[];
    /**
     * Get the last N messages
     */
    getLast(n: number): AgentMessage[];
    /**
     * Clear all messages except system
     */
    clear(): void;
    /**
     * Clear all messages including system
     */
    clearAll(): void;
    /**
     * Get message count
     */
    get length(): number;
    /**
     * Trim messages to max limit (keep system + most recent)
     */
    private trim;
    /**
     * Summarize conversation for context compression
     */
    summarize(): string;
    /**
     * Export conversation as JSON
     */
    toJSON(): AgentMessage[];
    /**
     * Import conversation from JSON
     */
    fromJSON(messages: AgentMessage[]): void;
}
