package chats.domain.repository import chats.domain.model.Chat import chats.domain.model.Message interface ChatRepository { suspend fun getChats(): List fun getMessagesFlow(chatId: String): kotlinx.coroutines.flow.Flow> suspend fun getMessages(chatId: String, cursor: String? = null, pivot: Long? = null, limit: Int? = null): List suspend fun sendMessage( chatId: String, content: String?, type: String = "text", attachments: List? = null ): Message suspend fun addReaction(messageId: String, emoji: String) suspend fun sendTypingStatus(chatId: String) suspend fun markMessagesAsRead(chatId: String, lastMessageId: String, lastReadSequenceId: Int) suspend fun saveMessage(message: Message) suspend fun deleteLocalMessage(messageId: String) suspend fun uploadMedia(file: java.io.File): String suspend fun getTrendingGifs(page: Int = 0): List suspend fun searchGifs(query: String, page: Int = 0): List suspend fun getGifCategories(): List suspend fun createPersonalChat(userId: String): Chat }