/
WebSocketRepository.kt
32 lines (30 loc) · 2.01 KB
/
WebSocketRepository.kt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
package io.homeassistant.companion.android.common.data.websocket
import io.homeassistant.companion.android.common.data.integration.impl.entities.EntityResponse
import io.homeassistant.companion.android.common.data.websocket.impl.entities.AreaRegistryResponse
import io.homeassistant.companion.android.common.data.websocket.impl.entities.AreaRegistryUpdatedEvent
import io.homeassistant.companion.android.common.data.websocket.impl.entities.DeviceRegistryResponse
import io.homeassistant.companion.android.common.data.websocket.impl.entities.DeviceRegistryUpdatedEvent
import io.homeassistant.companion.android.common.data.websocket.impl.entities.DomainResponse
import io.homeassistant.companion.android.common.data.websocket.impl.entities.EntityRegistryResponse
import io.homeassistant.companion.android.common.data.websocket.impl.entities.EntityRegistryUpdatedEvent
import io.homeassistant.companion.android.common.data.websocket.impl.entities.GetConfigResponse
import io.homeassistant.companion.android.common.data.websocket.impl.entities.StateChangedEvent
import kotlinx.coroutines.ExperimentalCoroutinesApi
import kotlinx.coroutines.flow.Flow
@ExperimentalCoroutinesApi
interface WebSocketRepository {
fun getConnectionState(): WebSocketState?
suspend fun sendPing(): Boolean
suspend fun getConfig(): GetConfigResponse?
suspend fun getStates(): List<EntityResponse<Any>>?
suspend fun getAreaRegistry(): List<AreaRegistryResponse>?
suspend fun getDeviceRegistry(): List<DeviceRegistryResponse>?
suspend fun getEntityRegistry(): List<EntityRegistryResponse>?
suspend fun getServices(): List<DomainResponse>?
suspend fun getStateChanges(): Flow<StateChangedEvent>?
suspend fun getAreaRegistryUpdates(): Flow<AreaRegistryUpdatedEvent>?
suspend fun getDeviceRegistryUpdates(): Flow<DeviceRegistryUpdatedEvent>?
suspend fun getEntityRegistryUpdates(): Flow<EntityRegistryUpdatedEvent>?
suspend fun getNotifications(): Flow<Map<String, Any>>?
suspend fun ackNotification(confirmId: String): Boolean
}