# `Jido.Chat.Discord.GatewayWorker`
[🔗](https://github.com/agentjido/jido_chat_discord/blob/v1.0.0/lib/jido/chat/discord/gateway_worker.ex#L1)

Bridge-ingress worker for Discord gateway events.

The worker is runtime-agnostic and emits normalized payloads/events through
`sink_mfa`. Event acquisition can be push-based (`emit/2`) or pull-based
(`event_source_mfa` polling).

# `sink_mfa`

```elixir
@type sink_mfa() :: {module(), atom(), [term()]}
```

# `source_mfa`

```elixir
@type source_mfa() :: {module(), atom(), [term()]}
```

# `state`

```elixir
@type state() :: %{
  bridge_id: String.t(),
  sink_mfa: sink_mfa(),
  sink_opts: keyword(),
  event_source_mfa: source_mfa() | nil,
  poll_interval_ms: pos_integer(),
  max_backoff_ms: pos_integer(),
  backoff_ms: pos_integer()
}
```

# `child_spec`

Returns a specification to start this module under a supervisor.

See `Supervisor`.

# `emit`

```elixir
@spec emit(pid(), map() | tuple()) :: :ok
```

# `start_link`

```elixir
@spec start_link(keyword()) :: GenServer.on_start()
```

---

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