import transmission_rpc
from .const import CONF_LIMIT as CONF_LIMIT, CONF_ORDER as CONF_ORDER, DEFAULT_LIMIT as DEFAULT_LIMIT, DEFAULT_ORDER as DEFAULT_ORDER, DEFAULT_SCAN_INTERVAL as DEFAULT_SCAN_INTERVAL, DOMAIN as DOMAIN, EVENT_DOWNLOADED_TORRENT as EVENT_DOWNLOADED_TORRENT, EVENT_REMOVED_TORRENT as EVENT_REMOVED_TORRENT, EVENT_STARTED_TORRENT as EVENT_STARTED_TORRENT
from _typeshed import Incomplete
from homeassistant.config_entries import ConfigEntry as ConfigEntry
from homeassistant.const import CONF_HOST as CONF_HOST
from homeassistant.core import HomeAssistant as HomeAssistant
from homeassistant.helpers.update_coordinator import DataUpdateCoordinator as DataUpdateCoordinator, UpdateFailed as UpdateFailed
from transmission_rpc.session import SessionStats

_LOGGER: Incomplete

class TransmissionDataUpdateCoordinator(DataUpdateCoordinator[SessionStats]):
    config_entry: ConfigEntry
    api: Incomplete
    host: Incomplete
    _session: Incomplete
    _all_torrents: Incomplete
    _completed_torrents: Incomplete
    _started_torrents: Incomplete
    torrents: Incomplete
    def __init__(self, hass: HomeAssistant, entry: ConfigEntry, api: transmission_rpc.Client) -> None: ...
    @property
    def limit(self) -> int: ...
    @property
    def order(self) -> str: ...
    async def _async_update_data(self) -> SessionStats: ...
    def update(self) -> SessionStats: ...
    def init_torrent_list(self) -> None: ...
    def check_completed_torrent(self) -> None: ...
    def check_started_torrent(self) -> None: ...
    def check_removed_torrent(self) -> None: ...
    def start_torrents(self) -> None: ...
    def stop_torrents(self) -> None: ...
    def set_alt_speed_enabled(self, is_enabled: bool) -> None: ...
    def get_alt_speed_enabled(self) -> bool | None: ...
