"""Type stubs for networkxr.classes.views."""

from typing import Any, Iterator

class NodeView:
    def __init__(self, graph: Any) -> None: ...
    def __call__(self, data: bool = False) -> list[Any]: ...
    def __iter__(self) -> Iterator[Any]: ...
    def __len__(self) -> int: ...
    def __contains__(self, n: Any) -> bool: ...
    def __getitem__(self, n: Any) -> dict[str, Any]: ...
    def __repr__(self) -> str: ...
    def __eq__(self, other: Any) -> bool: ...
    def __hash__(self) -> int: ...

class EdgeView:
    def __init__(self, graph: Any) -> None: ...
    def __call__(self, data: bool = False, default: Any = None) -> list[Any]: ...
    def __iter__(self) -> Iterator[Any]: ...
    def __len__(self) -> int: ...
    def __contains__(self, edge: Any) -> bool: ...
    def __repr__(self) -> str: ...

class DiEdgeView:
    def __init__(self, graph: Any) -> None: ...
    def __call__(self, data: bool = False, default: Any = None) -> list[Any]: ...
    def __iter__(self) -> Iterator[Any]: ...
    def __len__(self) -> int: ...
    def __contains__(self, edge: Any) -> bool: ...
    def __repr__(self) -> str: ...

class DegreeView:
    def __init__(self, graph: Any, directed: bool = False) -> None: ...
    def __call__(self, nbunch: Any = None) -> Any: ...
    def __iter__(self) -> Iterator[tuple[Any, int]]: ...
    def __len__(self) -> int: ...
    def __repr__(self) -> str: ...

class MultiEdgeView:
    def __init__(self, graph: Any, directed: bool = False) -> None: ...
    def __call__(self, data: bool = False, keys: bool = False) -> list[Any]: ...
    def __iter__(self) -> Iterator[Any]: ...
    def __len__(self) -> int: ...
    def __contains__(self, edge: Any) -> bool: ...
    def __repr__(self) -> str: ...
