from .base import BaseTemplateExtension as BaseTemplateExtension, TemplateFunction as TemplateFunction
from collections.abc import Iterable
from homeassistant.exceptions import TemplateError as TemplateError
from homeassistant.helpers.template import TemplateEnvironment as TemplateEnvironment
from typing import Any

class DeviceExtension(BaseTemplateExtension):
    def __init__(self, environment: TemplateEnvironment) -> None: ...
    def device_entities(self, _device_id: str) -> Iterable[str]: ...
    def device_id(self, entity_id_or_device_name: str) -> str | None: ...
    def device_name(self, lookup_value: str) -> str | None: ...
    def device_attr(self, device_or_entity_id: str, attr_name: str) -> Any: ...
    def is_device_attr(self, device_or_entity_id: str, attr_name: str, attr_value: Any) -> bool: ...
