package com.adealink.weparty.room.sdk.controller

import com.adealink.frame.base.Rlt
import com.adealink.weparty.module.room.data.RoomInfo
import com.adealink.weparty.room.sdk.listener.IAttrListener
import kotlinx.coroutines.flow.StateFlow

interface IAttrController<L : IAttrListener> : IController<L> {


    val autoForbidAudio: StateFlow<Boolean>

    suspend fun getRoomInfo(roomId: Long): Rlt<RoomInfo>

    fun getNecessaryRoomConfig(roomId: String)

    suspend fun getRoomInfo(
        roomIds: List<Long>,
        from: Long? = null,
        needRoomOnlineInfo: Boolean = false,
        getRoomOwnerFamily: Boolean = false
    ): Rlt<List<RoomInfo>>


}