/*
 * F7cloud Talk - Android Client
 *
 * SPDX-FileCopyrightText: 2024 Sowjanya Kota <sowjanya.kch@gmail.com>
 * SPDX-License-Identifier: GPL-3.0-or-later
 */

package ru.f7cloud.talk.contacts

import ru.f7cloud.talk.data.user.model.User
import ru.f7cloud.talk.models.json.autocomplete.AutocompleteOverall
import ru.f7cloud.talk.models.json.autocomplete.AutocompleteUser
import ru.f7cloud.talk.models.json.conversations.RoomOverall
import kotlinx.coroutines.flow.Flow

interface ContactsRepository {
    suspend fun getContacts(user: User, searchQuery: String?, shareTypes: List<String>): AutocompleteOverall

    suspend fun createRoom(
        user: User,
        roomType: String,
        sourceType: String?,
        userId: String,
        conversationName: String?
    ): RoomOverall

    fun getImageUri(user: User, avatarId: String, requestBigSize: Boolean): String

    fun getContactsFlow(user: User, searchQuery: String?): Flow<List<AutocompleteUser>>
}
