# SPDX-FileCopyrightText: 2021 The eminus developers
# SPDX-License-Identifier: Apache-2.0
from typing import Final, TypeVar

from numpy import float64
from numpy.typing import NDArray

_AnyFloat = TypeVar("_AnyFloat", float, float64, NDArray[float64])

electronvolt: Final[float]
eV: Final[float]  # noqa: N816
kcalmol: Final[float]
Angstrom: Final[float]
A: Final[float]
Debye: Final[float]
D: Final[float]
Kelvin: Final[float]
K: Final[float]

def ha2ev(E: _AnyFloat) -> _AnyFloat: ...
def ev2ha(E: _AnyFloat) -> _AnyFloat: ...
def ha2kcalmol(E: _AnyFloat) -> _AnyFloat: ...
def kcalmol2ha(E: _AnyFloat) -> _AnyFloat: ...
def ha2ry(E: _AnyFloat) -> _AnyFloat: ...
def ry2ha(E: _AnyFloat) -> _AnyFloat: ...
def ha2kelvin(E: _AnyFloat) -> _AnyFloat: ...
def kelvin2ha(T: _AnyFloat) -> _AnyFloat: ...
def ang2bohr(r: _AnyFloat) -> _AnyFloat: ...
def bohr2ang(r: _AnyFloat) -> _AnyFloat: ...
def ebohr2d(p: _AnyFloat) -> _AnyFloat: ...
def d2ebohr(p: _AnyFloat) -> _AnyFloat: ...
def rad2deg(a: _AnyFloat) -> _AnyFloat: ...
def deg2rad(a: _AnyFloat) -> _AnyFloat: ...
