from typing import IO, Any, Mapping, Text, Union

_Path = Union[str, Text]

def readPlist(pathOrFile: _Path | IO[bytes]) -> Any: ...
def writePlist(value: Mapping[str, Any], pathOrFile: _Path | IO[bytes]) -> None: ...
def readPlistFromBytes(data: bytes) -> Any: ...
def writePlistToBytes(value: Mapping[str, Any]) -> bytes: ...
def readPlistFromResource(path: _Path, restype: str = ..., resid: int = ...) -> Any: ...
def writePlistToResource(rootObject: Mapping[str, Any], path: _Path, restype: str = ..., resid: int = ...) -> None: ...
def readPlistFromString(data: str) -> Any: ...
def writePlistToString(rootObject: Mapping[str, Any]) -> str: ...

class Dict(dict[str, Any]):
    def __getattr__(self, attr: str) -> Any: ...
    def __setattr__(self, attr: str, value: Any) -> None: ...
    def __delattr__(self, attr: str) -> None: ...

class Data:
    data: bytes
    def __init__(self, data: bytes) -> None: ...

class InvalidFileException(ValueError):
    def __init__(self, message: str = ...) -> None: ...
