Source code for nwp500.api_client

"""
Client for interacting with the Navien NWP500 API.

This module provides an async HTTP client for device management and control.
"""

from __future__ import annotations

import logging
from typing import Any, Self, cast

import aiohttp

from .auth import NavienAuthClient
from .config import API_BASE_URL
from .exceptions import APIError, AuthenticationError, TokenRefreshError
from .models import ConvertedTOUPlan, Device, FirmwareInfo, TOUInfo
from .unit_system import UnitSystemType

__author__ = "Emmanuel Levijarvi"
__copyright__ = "Emmanuel Levijarvi"
__license__ = "MIT"

_logger = logging.getLogger(__name__)


__all__ = [
    "NavienAPIClient",
]