// Описываются события который могут происходить в UI // чтобы потом отправить в код логики обработки sealed interface UiEvent { /** Выбран элемента из списка */ data class UserProfileClicked(val userId: UserId) : UiEvent /** Нажатие на кнопку подтверждения действия */ data object ConfirmClicked : UiEvent } @JvmInline value class UserId(val id: String) class MyViewModel: ViewModel() { // Какое-то состояние экрана private val _state = MutableStateFlow<State>(State.Default) val state = _state.asStateFlow() fun onUiEvent(event: UiEvent) { // Обработка события из UI } }