# `Gemini.Client`
[🔗](https://github.com/nshkrdotcom/gemini_ex/blob/v0.11.0/lib/gemini/client.ex#L1)

Main client module that delegates to the appropriate HTTP client implementation.

This module provides a unified interface for making HTTP requests to the Gemini API,
abstracting away the specific implementation details of the underlying HTTP client.

# `get`
[🔗](https://github.com/nshkrdotcom/gemini_ex/blob/v0.11.0/lib/gemini/client.ex#L22)

Make a GET request using the configured authentication.

## Parameters
- `path` - The API path to request
- `opts` - Optional keyword list of request options

## Returns
- `{:ok, response}` - Successful response
- `{:error, Error.t()}` - Error details

# `post`
[🔗](https://github.com/nshkrdotcom/gemini_ex/blob/v0.11.0/lib/gemini/client.ex#L36)

Make a POST request using the configured authentication.

## Parameters
- `path` - The API path to request
- `body` - The request body (will be JSON encoded)
- `opts` - Optional keyword list of request options

## Returns
- `{:ok, response}` - Successful response
- `{:error, Error.t()}` - Error details

# `request`
[🔗](https://github.com/nshkrdotcom/gemini_ex/blob/v0.11.0/lib/gemini/client.ex#L52)

Make an authenticated HTTP request.

## Parameters
- `method` - HTTP method (:get, :post, etc.)
- `path` - The API path to request
- `body` - The request body (nil for GET requests)
- `auth_config` - Authentication configuration
- `opts` - Optional keyword list of request options

## Returns
- `{:ok, response}` - Successful response
- `{:error, Error.t()}` - Error details

---

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