--- /dev/null
+from _typeshed import Self
+from types import TracebackType
+from typing import Iterator, MutableMapping, Tuple, Type, Union
+from typing_extensions import Literal
+
+_KeyType = Union[str, bytes]
+_ValueType = Union[str, bytes]
+_TFlags = Literal[
+ "r",
+ "w",
+ "c",
+ "n",
+ "rf",
+ "wf",
+ "cf",
+ "nf",
+ "rs",
+ "ws",
+ "cs",
+ "ns",
+ "ru",
+ "wu",
+ "cu",
+ "nu",
+ "rfs",
+ "wfs",
+ "cfs",
+ "nfs",
+ "rfu",
+ "wfu",
+ "cfu",
+ "nfu",
+ "rsf",
+ "wsf",
+ "csf",
+ "nsf",
+ "rsu",
+ "wsu",
+ "csu",
+ "nsu",
+ "ruf",
+ "wuf",
+ "cuf",
+ "nuf",
+ "rus",
+ "wus",
+ "cus",
+ "nus",
+ "rfsu",
+ "wfsu",
+ "cfsu",
+ "nfsu",
+ "rfus",
+ "wfus",
+ "cfus",
+ "nfus",
+ "rsfu",
+ "wsfu",
+ "csfu",
+ "nsfu",
+ "rsuf",
+ "wsuf",
+ "csuf",
+ "nsuf",
+ "rufs",
+ "wufs",
+ "cufs",
+ "nufs",
+ "rusf",
+ "wusf",
+ "cusf",
+ "nusf",
+]
+
+class _Database(MutableMapping[_KeyType, bytes]):
+ def close(self) -> None: ...
+ def __getitem__(self, key: _KeyType) -> bytes: ...
+ def __setitem__(self, key: _KeyType, value: _ValueType) -> None: ...
+ def __delitem__(self, key: _KeyType) -> None: ...
+ def __iter__(self) -> Iterator[bytes]: ...
+ def __len__(self) -> int: ...
+ def __del__(self) -> None: ...
+ def __enter__(self: Self) -> Self: ...
+ def __exit__(
+ self, exc_type: Type[BaseException] | None, exc_val: BaseException | None, exc_tb: TracebackType | None
+ ) -> None: ...
+
+class _error(Exception): ...
+
+error = Tuple[Type[_error], Type[OSError]]
+
+def whichdb(filename: str) -> str: ...
+def open(file: str, flag: _TFlags = ..., mode: int = ...) -> _Database: ...