from abc import ABC, abstractmethod from pathlib import Path from .structs import Modeline, MonitorInfo class AbstractDisplay(ABC): @abstractmethod def get_modes(self) -> list[MonitorInfo]: pass @abstractmethod def set_mode(self, modeline: Modeline, requested_connector: str) -> None: pass @abstractmethod def save_current_mode(self, location: str | Path) -> None: pass @abstractmethod def read_saved_mode(self, location: str | Path) -> Modeline: pass @staticmethod @abstractmethod def detect() -> bool: pass