# `ExWapp.Session.Worker.Outbound`
[🔗](https://github.com/elchemista/ex_wapp/blob/v0.1.5/lib/ex_wapp/session/worker/outbound.ex#L1)

Coordinates outbound sends from the session worker.

The module selects direct or group delivery, prepares Signal sessions, delegates
device discovery and encryption, sends protocol nodes, and records delivery
metadata. Message construction remains separate from the WebSocket transport.

# `send_peer_proto_worker`

```elixir
@spec send_peer_proto_worker(pid(), map(), WAWebProtobufsE2E.Message.t()) ::
  {:ok, String.t()} | {:error, term()}
```

Sends an internal protocol message directly to the account's primary device.

# `send_proto_worker`

```elixir
@spec send_proto_worker(
  pid(),
  map(),
  String.t(),
  WAWebProtobufsE2E.Message.t(),
  keyword()
) ::
  {:ok, String.t()} | {:error, term()}
```

Sends a constructed WhatsApp protobuf message through the normal outbound pipeline.

# `send_text_worker`

```elixir
@spec send_text_worker(pid(), map(), String.t(), outbound_text(), keyword()) ::
  {:ok, String.t()} | {:error, term()}
```

Sends text or an optional prebuilt protobuf payload through the session pipeline.

---

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