import type { ChatMessage } from "../../llm/index.js";
import type { BaseChatStore } from "./types.js";
/**
 * fixme: User could carry object references in the messages.
 *  This could lead to memory leaks if the messages are not properly cleaned up.
 */
export declare class SimpleChatStore<AdditionalMessageOptions extends object = Record<string, unknown>> implements BaseChatStore<AdditionalMessageOptions> {
    store: {
        [key: string]: ChatMessage<AdditionalMessageOptions>[];
    };
    setMessages(key: string, messages: ChatMessage<AdditionalMessageOptions>[]): void;
    getMessages(key: string): ChatMessage<AdditionalMessageOptions>[];
    addMessage(key: string, message: ChatMessage<AdditionalMessageOptions>): void;
    deleteMessages(key: string): ChatMessage<AdditionalMessageOptions>[] | null;
    deleteMessage(key: string, idx: number): ChatMessage<AdditionalMessageOptions> | null;
    deleteLastMessage(key: string): ChatMessage<AdditionalMessageOptions> | null;
    getKeys(): string[];
}
