# `ScoutApm.Core.AgentManager`

# `t`

```elixir
@type t() :: %ScoutApm.Core.AgentManager{
  error_count: non_neg_integer(),
  last_reconnect_at: integer() | nil,
  port: port() | nil,
  reconnect_failures: non_neg_integer(),
  reconnecting: boolean(),
  socket: :gen_tcp.socket() | nil
}
```

# `child_spec`

Returns a specification to start this module under a supervisor.

See `Supervisor`.

# `download_binary`

```elixir
@spec download_binary(String.t(), String.t(), String.t()) :: :ok | {:error, any()}
```

# `maybe_download`

```elixir
@spec maybe_download() :: {:ok, map()} | {:error, any()}
```

# `pad_leading`

```elixir
@spec pad_leading(binary(), integer(), integer()) :: binary()
```

# `run`

```elixir
@spec run(String.t()) :: {:ok, port() | nil, :gen_tcp.socket()} | nil
```

# `setup`

```elixir
@spec setup() :: {port() | nil, :gen_tcp.socket() | nil}
```

# `start_link`

# `start_setup`

# `verify_or_download`

```elixir
@spec verify_or_download() :: {:ok, map()} | {:error, any()}
```

---

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