@startuml
skinparam monochrome true
skinparam classAttributeIconSize 0

!startsub default
abstract class "DecodeableEventQueue<T: Event>" {
    + GetEvents(cancellationToken: CancellationToken) : IAsyncEnumerable<T: Event>
    + Enqueue(event: T) : void
}
!endsub

@enduml