# API Reference

## Autofocusers

```{eval-rst}
.. automodule:: astrafocus.autofocuser
   :members:
   :undoc-members:
   :show-inheritance:
```

## Focus measure operators

### Image-based operators

```{eval-rst}
.. automodule:: astrafocus.focus_measure_operators
   :members:
   :undoc-members:
   :show-inheritance:
```

### Star-size operators

```{eval-rst}
.. automodule:: astrafocus.star_size_focus_measure_operators
   :members:
   :undoc-members:
   :show-inheritance:
```

## Extremum estimators

```{eval-rst}
.. automodule:: astrafocus.extremum_estimators
   :members:
   :undoc-members:
   :show-inheritance:
```

## Star detection

```{eval-rst}
.. automodule:: astrafocus.star_finder
   :members:
   :undoc-members:
   :show-inheritance:
```

```{eval-rst}
.. automodule:: astrafocus.star_fitter
   :members:
   :undoc-members:
   :show-inheritance:
```

## Registries

```{eval-rst}
.. automodule:: astrafocus
   :members:
   :undoc-members:
   :show-inheritance:
   :no-index:
```

## Hardware interface

```{eval-rst}
.. automodule:: astrafocus.interface
   :members:
   :undoc-members:
   :show-inheritance:
   :no-index:
```

```{eval-rst}
.. automodule:: astrafocus.interface.device_manager
   :members:
   :undoc-members:
   :show-inheritance:
```

```{eval-rst}
.. automodule:: astrafocus.interface.camera
   :members:
   :undoc-members:
   :show-inheritance:
```

```{eval-rst}
.. automodule:: astrafocus.interface.focuser
   :members:
   :undoc-members:
   :show-inheritance:
```

```{eval-rst}
.. automodule:: astrafocus.interface.telescope
   :members:
   :undoc-members:
   :show-inheritance:
```

```{eval-rst}
.. automodule:: astrafocus.interface.simulation
   :members:
   :undoc-members:
   :show-inheritance:
```

## Sky targeting

```{eval-rst}
.. automodule:: astrafocus.targeting
   :members:
   :undoc-members:
   :show-inheritance:
   :no-index:
```

```{eval-rst}
.. automodule:: astrafocus.targeting.zenith_neighbourhood_query
   :members:
   :undoc-members:
   :show-inheritance:
```

```{eval-rst}
.. automodule:: astrafocus.targeting.zenith_neighbourhood
   :members:
   :undoc-members:
   :show-inheritance:
```

```{eval-rst}
.. automodule:: astrafocus.targeting.zenith_neighbourhood_query_result
   :members:
   :undoc-members:
   :show-inheritance:
```

```{eval-rst}
.. automodule:: astrafocus.targeting.airmass_models
   :members:
   :undoc-members:
   :show-inheritance:
```

```{eval-rst}
.. automodule:: astrafocus.targeting.celestial_bounds_calculator
   :members:
   :undoc-members:
   :show-inheritance:
```

```{eval-rst}
.. automodule:: astrafocus.targeting.tangential_plane_projector
   :members:
   :undoc-members:
   :show-inheritance:
```

## Models

```{eval-rst}
.. automodule:: astrafocus.models
   :members:
   :undoc-members:
   :show-inheritance:
   :no-index:
```

```{eval-rst}
.. automodule:: astrafocus.models.elliptical_moffat_2D
   :members:
   :undoc-members:
   :show-inheritance:
```

```{eval-rst}
.. automodule:: astrafocus.models.half_flux_radius_2D
   :members:
   :undoc-members:
   :show-inheritance:
```

## Database (SQL)

```{eval-rst}
.. automodule:: astrafocus.sql
   :members:
   :undoc-members:
   :show-inheritance:
   :no-index:
```
