# sage_setup: distribution = sagemath-objects
from typing import Any, Optional

class MonoDict:
    def __init__(self, data: Optional[Any] = None, *, weak_values: bool = False) -> None: ...
    def __len__(self) -> int: ...
    def __contains__(self, k: Any) -> bool: ...
    def __getitem__(self, k: Any) -> Any: ...
    def __setitem__(self, k: Any, value: Any) -> None: ...
    def __delitem__(self, k: Any) -> None: ...
    def items(self) -> list[tuple[Any, Any]]: ...
    def copy(self) -> dict[Any, Any]: ...
    def __reduce__(self) -> Any: ...

class TripleDict:
    def __init__(self, data: Optional[Any] = None, *, weak_values: bool = False) -> None: ...
    def __len__(self) -> int: ...
    def __contains__(self, k: tuple[Any, Any, Any]) -> bool: ...
    def __getitem__(self, k: tuple[Any, Any, Any]) -> Any: ...
    def __setitem__(self, k: tuple[Any, Any, Any], value: Any) -> None: ...
    def __delitem__(self, k: tuple[Any, Any, Any]) -> None: ...
    def items(self) -> list[tuple[tuple[Any, Any, Any], Any]]: ...
    def copy(self) -> dict[tuple[Any, Any, Any], Any]: ...
    def __reduce__(self) -> Any: ...
