from typing import Any, Iterator, MutableMapping, Tuple, TypeVar, Generic

_VT = TypeVar('_VT')

class CaseInsensitiveDict(MutableMapping[str, _VT], Generic[_VT]):
    def lower_items(self) -> Iterator[Tuple[str, _VT]]: ...
    def __setitem__(self, key: str, value: _VT) -> None: ...
    def __getitem__(self, key: str) -> _VT: ...
    def __delitem__(self, key: str) -> None: ...
    def __iter__(self) -> Iterator[str]: ...
    def __len__(self) -> int: ...

class LookupDict(dict):
    name = ...  # type: Any
    def __init__(self, name=...) -> None: ...
    def __getitem__(self, key): ...
    def get(self, key, default=...): ...
