``` sealed class Event { sealed class NonI...
# getting-started
u
Copy code
sealed class Event {
        sealed class NonIdle : Event() {
            abstract val messageRemoteId: String
            abstract val accountId: String

        }
        data class Started(
            override val messageRemoteId: String, override val accountId: String
        ) : NonIdle()

        data class Success(
            override val messageRemoteId: String, override val accountId: String
        ) : NonIdle()

        data class Progress(
            override val messageRemoteId: String, override val accountId: String, val progress: Int
        ) : NonIdle()

        data class Error(
            override val messageRemoteId: String, override val accountId: String
        ) : NonIdle()

        data class Canceled(
            override val messageRemoteId: String, override val accountId: String
        ) : NonIdle()

        object Idle : Event()
    }