import { BaseClient, BaseClientOptions } from "@xata.io/client"; import { BaseListChatMessageHistory } from "@langchain/core/chat_history"; import { BaseMessage } from "@langchain/core/messages"; /** * An object type that represents the input for the XataChatMessageHistory * class. */ export type XataChatMessageHistoryInput = { sessionId: string; config?: BaseClientOptions; client?: XataClient; table?: string; createTable?: boolean; apiKey?: string; }; /** * A class for managing chat message history using Xata.io client. It * extends the BaseListChatMessageHistory class and provides methods to * get, add, and clear messages. It also ensures the existence of a table * where the chat messages are stored. * @example * ```typescript * const chatHistory = new XataChatMessageHistory({ * table: "messages", * sessionId: new Date().toISOString(), * client: new BaseClient({ * databaseURL: process.env.XATA_DB_URL, * apiKey: process.env.XATA_API_KEY, * branch: "main", * }), * apiKey: process.env.XATA_API_KEY, * }); * * const chain = new ConversationChain({ * llm: new ChatOpenAI(), * memory: new BufferMemory({ chatHistory }), * }); * * const response = await chain.invoke({ * input: "What did I just say my name was?", * }); * console.log({ response }); * ``` */ export declare class XataChatMessageHistory extends BaseListChatMessageHistory { lc_namespace: string[]; client: XataClient; private sessionId; private table; private tableInitialized; private createTable; private apiClient; constructor(fields: XataChatMessageHistoryInput); /** * Retrieves all messages associated with the session ID, ordered by * creation time. * @returns A promise that resolves to an array of BaseMessage instances. */ getMessages(): Promise; /** * Adds a new message to the database. * @param message The BaseMessage instance to be added. * @returns A promise that resolves when the message has been added. */ addMessage(message: BaseMessage): Promise; /** * Deletes all messages associated with the session ID. * @returns A promise that resolves when the messages have been deleted. */ clear(): Promise; /** * Checks if the table exists and creates it if it doesn't. This method is * called before any operation on the table. * @returns A promise that resolves when the table has been ensured. */ private ensureTable; }