from homeassistant.const import SERVICE_CLOSE_COVER as SERVICE_CLOSE_COVER, SERVICE_CLOSE_COVER_TILT as SERVICE_CLOSE_COVER_TILT, SERVICE_OPEN_COVER as SERVICE_OPEN_COVER, SERVICE_OPEN_COVER_TILT as SERVICE_OPEN_COVER_TILT, SERVICE_SET_COVER_POSITION as SERVICE_SET_COVER_POSITION, SERVICE_SET_COVER_TILT_POSITION as SERVICE_SET_COVER_TILT_POSITION, SERVICE_STOP_COVER as SERVICE_STOP_COVER, SERVICE_STOP_COVER_TILT as SERVICE_STOP_COVER_TILT, SERVICE_TOGGLE as SERVICE_TOGGLE, SERVICE_TOGGLE_COVER_TILT as SERVICE_TOGGLE_COVER_TILT, STATE_CLOSED as STATE_CLOSED, STATE_CLOSING as STATE_CLOSING, STATE_OPEN as STATE_OPEN, STATE_OPENING as STATE_OPENING
from homeassistant.helpers.config_validation import PLATFORM_SCHEMA as PLATFORM_SCHEMA, PLATFORM_SCHEMA_BASE as PLATFORM_SCHEMA_BASE
from homeassistant.helpers.entity import Entity as Entity
from homeassistant.helpers.entity_component import EntityComponent as EntityComponent
from homeassistant.loader import bind_hass as bind_hass
from typing import Any

_LOGGER: Any
DOMAIN: str
SCAN_INTERVAL: Any
ENTITY_ID_FORMAT: Any
DEVICE_CLASS_AWNING: str
DEVICE_CLASS_BLIND: str
DEVICE_CLASS_CURTAIN: str
DEVICE_CLASS_DAMPER: str
DEVICE_CLASS_DOOR: str
DEVICE_CLASS_GARAGE: str
DEVICE_CLASS_GATE: str
DEVICE_CLASS_SHADE: str
DEVICE_CLASS_SHUTTER: str
DEVICE_CLASS_WINDOW: str
DEVICE_CLASSES: Any
DEVICE_CLASSES_SCHEMA: Any
SUPPORT_OPEN: int
SUPPORT_CLOSE: int
SUPPORT_SET_POSITION: int
SUPPORT_STOP: int
SUPPORT_OPEN_TILT: int
SUPPORT_CLOSE_TILT: int
SUPPORT_STOP_TILT: int
SUPPORT_SET_TILT_POSITION: int
ATTR_CURRENT_POSITION: str
ATTR_CURRENT_TILT_POSITION: str
ATTR_POSITION: str
ATTR_TILT_POSITION: str

def is_closed(hass: Any, entity_id: Any): ...
async def async_setup(hass: Any, config: Any): ...
async def async_setup_entry(hass: Any, entry: Any): ...
async def async_unload_entry(hass: Any, entry: Any): ...

class CoverEntity(Entity):
    @property
    def current_cover_position(self) -> None: ...
    @property
    def current_cover_tilt_position(self) -> None: ...
    @property
    def state(self): ...
    @property
    def state_attributes(self): ...
    @property
    def supported_features(self): ...
    @property
    def is_opening(self) -> None: ...
    @property
    def is_closing(self) -> None: ...
    @property
    def is_closed(self) -> None: ...
    def open_cover(self, **kwargs: Any) -> None: ...
    async def async_open_cover(self, **kwargs: Any) -> None: ...
    def close_cover(self, **kwargs: Any) -> None: ...
    async def async_close_cover(self, **kwargs: Any) -> None: ...
    def toggle(self, **kwargs: Any) -> None: ...
    async def async_toggle(self, **kwargs: Any) -> None: ...
    def set_cover_position(self, **kwargs: Any) -> None: ...
    async def async_set_cover_position(self, **kwargs: Any) -> None: ...
    def stop_cover(self, **kwargs: Any) -> None: ...
    async def async_stop_cover(self, **kwargs: Any) -> None: ...
    def open_cover_tilt(self, **kwargs: Any) -> None: ...
    async def async_open_cover_tilt(self, **kwargs: Any) -> None: ...
    def close_cover_tilt(self, **kwargs: Any) -> None: ...
    async def async_close_cover_tilt(self, **kwargs: Any) -> None: ...
    def set_cover_tilt_position(self, **kwargs: Any) -> None: ...
    async def async_set_cover_tilt_position(self, **kwargs: Any) -> None: ...
    def stop_cover_tilt(self, **kwargs: Any) -> None: ...
    async def async_stop_cover_tilt(self, **kwargs: Any) -> None: ...
    def toggle_tilt(self, **kwargs: Any) -> None: ...
    async def async_toggle_tilt(self, **kwargs: Any) -> None: ...

class CoverDevice(CoverEntity):
    def __init_subclass__(cls, **kwargs: Any) -> None: ...
