# `ExWapp.Events`
[🔗](https://github.com/elchemista/ex_wapp/blob/v0.1.5/lib/ex_wapp/events.ex#L1)

Behaviour for delivering high-level ExWapp events.

This deliberately does not prescribe PubSub, process messages, or OTP. Host
applications choose how subscriptions work by implementing this behaviour.

# `emit`

```elixir
@callback emit(ExWapp.Client.t(), ExWapp.Event.t()) :: :ok | {:error, term()}
```

# `emit`

```elixir
@spec emit(ExWapp.Client.t(), ExWapp.Event.t()) :: :ok | {:error, term()}
```

Emits one event through the client's configured event adapter.

# `emit_many`

```elixir
@spec emit_many(ExWapp.Client.t(), [ExWapp.Event.t()]) :: :ok | {:error, term()}
```

Emits events in order and stops on the first adapter error.

---

*Consult [api-reference.md](api-reference.md) for complete listing*
