from . import AbodeDevice as AbodeDevice, AbodeSystem as AbodeSystem
from .const import DOMAIN as DOMAIN, LOGGER as LOGGER
from abodepy.devices import AbodeDevice as AbodeDev
from abodepy.devices.camera import AbodeCamera as AbodeCam
from homeassistant.components.camera import Camera as Camera
from homeassistant.config_entries import ConfigEntry as ConfigEntry
from homeassistant.core import Event as Event, HomeAssistant as HomeAssistant
from homeassistant.helpers.dispatcher import async_dispatcher_connect as async_dispatcher_connect
from homeassistant.helpers.entity_platform import AddEntitiesCallback as AddEntitiesCallback
from homeassistant.util import Throttle as Throttle
from typing import Any

MIN_TIME_BETWEEN_UPDATES: Any

async def async_setup_entry(hass: HomeAssistant, entry: ConfigEntry, async_add_entities: AddEntitiesCallback) -> None: ...

class AbodeCamera(AbodeDevice, Camera):
    _device: AbodeCam
    _event: Any
    _response: Any
    def __init__(self, data: AbodeSystem, device: AbodeDev, event: Event) -> None: ...
    async def async_added_to_hass(self) -> None: ...
    def capture(self) -> bool: ...
    def refresh_image(self) -> None: ...
    def get_image(self) -> None: ...
    def camera_image(self, width: Union[int, None] = ..., height: Union[int, None] = ...) -> Union[bytes, None]: ...
    def turn_on(self) -> None: ...
    def turn_off(self) -> None: ...
    def _capture_callback(self, capture: Any) -> None: ...
    @property
    def is_on(self) -> bool: ...
