import { AIMessage, HumanMessage, ToolMessage } from '@langchain/core/messages'; import { Getter } from '@loopback/core'; import { AnyObject, Filter, FilterExcludingWhere } from '@loopback/repository'; import { IAuthUserWithPermissions } from '@sourceloop/core'; import { Chat, Message } from '../../models'; import { ChatRepository } from '../../repositories'; import { TokenMetadata } from '../../types'; import { SavedMessage } from '../types'; import { MessageMetadata } from './chat-metadata.type'; export declare class ChatStore { private readonly getCurrentUser; private readonly chatRepository; constructor(getCurrentUser: Getter, chatRepository: ChatRepository); findById(id: string, filter?: FilterExcludingWhere): Promise; find(filter?: Filter): Promise; updateCounts(chatId: string, inputTokens: number, outputTokens: number, newCountMap: TokenMetadata): Promise; init(prompt: string, threadId?: string): Promise; addMessage(chatId: string, message: string, metadata: MessageMetadata, fromAi?: boolean, parentMessageId?: string): Promise; addHumanMessage(chatId: string, message: HumanMessage): Promise; addAttachmentMessage(chatId: string, userMessage: Message, file: Express.Multer.File, summary: string): Promise; addAIMessage(chatId: string, message: AIMessage): Promise; addToolMessage(chatId: string, message: ToolMessage, metadata: AnyObject, aiMessage: Message, args?: AnyObject): Promise; toMessage(message: Message): Promise; private mergeCountMap; private _updateFilterWithUserId; }