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

Runtime-neutral events emitted by the high-level client API.

Applications can route these through PubSub, process messages, webhooks,
logs, tests, or any other subscription mechanism by implementing
`ExWapp.Events`.

# `t`

```elixir
@type t() :: %ExWapp.Event{
  at: DateTime.t(),
  metadata: map(),
  payload: term(),
  session_id: term() | nil,
  type: type()
}
```

# `type`

```elixir
@type type() ::
  :qr
  | :status
  | :message_sent
  | :message_received
  | :disconnected
  | :error
  | atom()
```

# `new`

```elixir
@spec new(type(), term(), keyword()) :: t()
```

Creates an event with the current UTC timestamp.

---

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