# `Chimeway.Rendering`
[🔗](https://github.com/jonlunsford/chimeway/blob/v1.0.0/lib/chimeway/rendering.ex#L1)

Normalizes notifier rendering declarations into one durable contract.

# `channel_rendering`

```elixir
@type channel_rendering() :: %{render_key: String.t(), render_version: pos_integer()}
```

# `rendered_delivery`

```elixir
@type rendered_delivery() :: %{
  channel: String.t(),
  render_key: String.t(),
  render_version: pos_integer(),
  render_data: map()
}
```

# `rendering_declaration`

```elixir
@type rendering_declaration() :: %{
  assigns: map(),
  channels: %{required(String.t()) =&gt; channel_rendering()},
  source: :notifier | :build_fallback
}
```

# `normalize_declaration`

```elixir
@spec normalize_declaration(map()) ::
  {:ok, rendering_declaration()} | {:error, term()}
```

# `render_delivery`

```elixir
@spec render_delivery(atom() | binary(), String.t(), pos_integer(), map()) ::
  {:ok, rendered_delivery()} | {:error, term()}
```

# `resolve_declaration`

```elixir
@spec resolve_declaration(module(), map(), map()) ::
  {:ok, rendering_declaration()} | {:error, term()}
```

---

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