module HTTP2
  module Emitter
    @listeners: Hash[Symbol, Array[^(*untyped) -> void]]

    def on: (Symbol event) { (*untyped) -> void } -> void

    def once: (Symbol event) { (*untyped) -> void } -> void

    def emit: (Symbol event, *untyped args) ?{ (*untyped) -> void } -> void
  end
end