import { CoreMessage } from "ai";
import { ArchivalMemoryPayload, CoreBlock, CoreMemoryEntry, MemoryState } from "./types";
import { StorageProvider } from "./storageProviders/storage-provider";
import { ArchiveProvider } from "./archiveProviders/base";
import { ArchiveEntry } from "./archiveProviders/types";
export declare class MemoryManager {
    private provider;
    private archiveProvider;
    private openaiApiKey;
    private memoryKey;
    private threadId;
    private chatHistory;
    private coreMemory;
    private encoder;
    private chatTokenLimit;
    private _maxContextSize;
    private coreBlockTokenLimit;
    constructor(provider: StorageProvider, archiveProvider: ArchiveProvider, openaiApiKey: string, memoryKey: string, threadId: string, maxContextSize?: number, coreBlockTokenLimit?: number);
    initialize(previousState?: MemoryState): Promise<void>;
    private saveChatHistory;
    private saveCoreMemory;
    private coreMemoryToString;
    getChatHistory(): Promise<CoreMessage[]>;
    addUserMessage(message: CoreMessage): Promise<void>;
    getCoreMemory(): Promise<Record<CoreBlock, CoreMemoryEntry> | null>;
    updateCoreMemory(block: CoreBlock, content: string, description?: string): Promise<void>;
    searchArchiveMemory(query: string): Promise<ArchiveEntry[]>;
    addToArchiveMemory(payload: ArchivalMemoryPayload): Promise<ArchiveEntry>;
    updateArchiveMemory(id: string, payload: ArchivalMemoryPayload): Promise<ArchiveEntry | null>;
    removeArchivalMemory(id: string): Promise<ArchiveEntry | null>;
    addAIMessage(message: CoreMessage): Promise<void>;
    addAIMessages(messages: CoreMessage[]): Promise<void>;
    /**
     * Get the current context size in tokens
     */
    get contextSize(): number;
    /**
     * Get the maximum allowed context size in tokens
     */
    get maxContextSize(): number;
    /**
     * Set the maximum allowed context size in tokens
     */
    set maxContextSize(size: number);
    private getEncoder;
    private countTokens;
    private totalTokenCount;
    private checkChatHistorySize;
    dispose(): void;
    /**
     * Get the core block token limit
     */
    get coreMemoryBlockLimit(): number;
    /**
     * Set the core block token limit
     */
    set coreMemoryBlockLimit(limit: number);
}
//# sourceMappingURL=memoryManager.d.ts.map