import { ChatMessage, ConversationContext } from "../types";
export interface ConversationConfig {
    maxMessages: number;
    maxTokens?: number;
    retainSystemMessages: boolean;
    contextTimeoutMs?: number;
}
export interface MessageSummary {
    totalMessages: number;
    userMessages: number;
    assistantMessages: number;
    systemMessages: number;
    totalTokens: number;
}
export declare class ConversationContextManager {
    private conversations;
    private config;
    constructor(config?: Partial<ConversationConfig>);
    createConversation(id: string, systemPrompt?: string): ConversationContext;
    getConversation(id: string): ConversationContext | null;
    addMessage(conversationId: string, message: Omit<ChatMessage, "id" | "timestamp">): ChatMessage;
    updateMessage(conversationId: string, messageId: string, updates: Partial<ChatMessage>): boolean;
    getConversationHistory(conversationId: string, lastN?: number): ChatMessage[];
    getConversationSummary(conversationId: string): MessageSummary | null;
    clearConversation(conversationId: string): boolean;
    getAllConversations(): ConversationContext[];
    cleanupExpiredConversations(): number;
    private trimConversation;
    private generateMessageId;
    updateConversationMetadata(conversationId: string, metadata: Record<string, any>): boolean;
    getManagerStats(): {
        totalConversations: number;
        totalMessages: number;
        config: ConversationConfig;
    };
}
//# sourceMappingURL=context-manager.d.ts.map