import { MessageEntity } from '../entity/MessageEntity'; import { PaginatedResult, Pagination } from './Pagination'; import { DialogEntity } from '../entity/DialogEntity'; export interface IMessagesRepository { saveMessageToLocal(message: MessageEntity): Promise; sendMessageToRemote(message: MessageEntity): Promise; getMessagesFromLocal(dialogId: string): Promise>; getMessagesFromRemote( dialogId: string, pagination: Pagination, ): Promise>; updateMessageInLocal(message: MessageEntity): Promise; updateMessageInRemote(message: MessageEntity): Promise; deleteMessageInLocal(message: MessageEntity): Promise; deleteMessageInRemote(message: MessageEntity): Promise; typingMessageStart(dialog: DialogEntity, senderId: number): Promise; typingMessageStop(dialog: DialogEntity, senderId: number): Promise; }