from ctypes import c_void_p
from types import TracebackType

class MMIOError(IOError): ...

class MMIO:
    def __init__(self, physaddr: int, size: int, path: str = ...) -> None: ...
    def __del__(self) -> None: ...
    def __enter__(self) -> MMIO: ...  # noqa: Y034
    def __exit__(self, t: type[BaseException] | None, value: BaseException | None, traceback: TracebackType | None) -> None: ...
    def read32(self, offset: int) -> int: ...
    def read16(self, offset: int) -> int: ...
    def read8(self, offset: int) -> int: ...
    def read(self, offset: int, length: int) -> bytes: ...
    def write32(self, offset: int, value: int) -> None: ...
    def write16(self, offset: int, value: int) -> None: ...
    def write8(self, offset: int, value: int) -> None: ...
    def write(self, offset: int, data: bytes | bytearray | list[int]) -> None: ...
    def close(self) -> None: ...
    @property
    def base(self) -> int: ...
    @property
    def size(self) -> int: ...
    @property
    def pointer(self) -> c_void_p: ...
