"""Xiaomi Gateway device base class."""

import logging
from typing import TYPE_CHECKING, List

from ..exceptions import DeviceException

_LOGGER = logging.getLogger(__name__)

# Necessary due to circular deps
if TYPE_CHECKING:
    from .gateway import Gateway


class GatewayDevice:
    """GatewayDevice class Specifies the init method for all gateway device
    functionalities."""

    _supported_models = ["dummy.device"]

    def __init__(
        self,
        parent: "Gateway" = None,
    ) -> None:
        if parent is None:
            raise DeviceException(
                "This should never be initialized without gateway object."
            )

        self._gateway = parent
        self._event_ids: List[str] = []
