# `Gemini.Auth.Strategy`
[🔗](https://github.com/nshkrdotcom/gemini_ex/blob/v0.11.0/lib/gemini/auth.ex#L21)

Behavior for authentication strategies.

# `base_url`
[🔗](https://github.com/nshkrdotcom/gemini_ex/blob/v0.11.0/lib/gemini/auth.ex#L27)

```elixir
@callback base_url(credentials :: map()) :: String.t()
```

# `build_path`
[🔗](https://github.com/nshkrdotcom/gemini_ex/blob/v0.11.0/lib/gemini/auth.ex#L28)

```elixir
@callback build_path(model :: String.t(), endpoint :: String.t(), credentials :: map()) ::
  String.t()
```

# `headers`
[🔗](https://github.com/nshkrdotcom/gemini_ex/blob/v0.11.0/lib/gemini/auth.ex#L25)

```elixir
@callback headers(credentials :: map()) ::
  {:ok, [{String.t(), String.t()}]} | {:error, term()}
```

# `refresh_credentials`
[🔗](https://github.com/nshkrdotcom/gemini_ex/blob/v0.11.0/lib/gemini/auth.ex#L30)

```elixir
@callback refresh_credentials(credentials :: map()) :: {:ok, map()} | {:error, term()}
```

---

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