import { type Tokenizer } from "@llamaindex/env"; import type { SummaryPrompt } from "./Prompt.js"; import type { ChatMessage, LLM } from "./llm/types.js"; /** * A ChatHistory is used to keep the state of back and forth chat messages */ export declare abstract class ChatHistory { abstract get messages(): ChatMessage[]; /** * Adds a message to the chat history. * @param message */ abstract addMessage(message: ChatMessage): void; /** * Returns the messages that should be used as input to the LLM. */ abstract requestMessages(transientMessages?: ChatMessage[]): Promise[]>; /** * Resets the chat history so that it's empty. */ abstract reset(): void; /** * Returns the new messages since the last call to this function (or since calling the constructor) */ abstract newMessages(): ChatMessage[]; } export declare class SimpleChatHistory extends ChatHistory { messages: ChatMessage[]; private messagesBefore; constructor(init?: Partial); addMessage(message: ChatMessage): void; requestMessages(transientMessages?: ChatMessage[]): Promise; reset(): void; newMessages(): ChatMessage[]; } export declare class SummaryChatHistory extends ChatHistory { /** * Tokenizer function that converts text to tokens, * this is used to calculate the number of tokens in a message. */ tokenizer: Tokenizer; tokensToSummarize: number; messages: ChatMessage[]; summaryPrompt: SummaryPrompt; llm: LLM; private messagesBefore; constructor(init?: Partial); private summarize; addMessage(message: ChatMessage): void; private getLastSummaryIndex; getLastSummary(): ChatMessage | null; private get systemMessages(); private get nonSystemMessages(); /** * Calculates the messages that describe the conversation so far. * If there's no memory, all non-system messages are used. * If there's a memory, uses all messages after the last summary message. */ private calcConversationMessages; private calcCurrentRequestMessages; requestMessages(transientMessages?: ChatMessage[]): Promise; reset(): void; newMessages(): ChatMessage[]; } export declare function getHistory(chatHistory?: ChatMessage[] | ChatHistory): ChatHistory;