import { EkoMessage, LanguageModelV2Prompt, MemoryConfig } from "../types";
export declare class EkoMemory {
    protected systemPrompt?: string;
    protected messages: EkoMessage[];
    private memoryConfig;
    constructor(systemPrompt?: string, messages?: EkoMessage[], memoryConfig?: MemoryConfig);
    genMessageId(): string;
    import(data: {
        messages: EkoMessage[];
        config?: MemoryConfig;
    }): Promise<void>;
    setSystemPrompt(systemPrompt: string): void;
    getSystemPrompt(): string | undefined;
    addMessages(messages: EkoMessage[]): Promise<void>;
    getMessages(): EkoMessage[];
    getMessageById(id: string): EkoMessage | undefined;
    removeMessageById(id: string, removeToNextUserMessages?: boolean): string[] | undefined;
    getEstimatedTokens(calcSystemPrompt?: boolean): number;
    protected calcTokens(content: string): number;
    updateConfig(config: Partial<MemoryConfig>): Promise<void>;
    protected manageCapacity(): Promise<void>;
    fixDiscontinuousMessages(): void;
    getFirstUserMessage(): EkoMessage | undefined;
    getLastUserMessage(): EkoMessage | undefined;
    hasMessage(id: string): boolean;
    clear(): void;
    buildMessages(): LanguageModelV2Prompt;
}
//# sourceMappingURL=memory.d.ts.map