--- /dev/null
+# Stubs for distutils.fancy_getopt\r
+\r
+from typing import (\r
+ Any, List, Mapping, Optional, Tuple, Union,\r
+ TypeVar, overload,\r
+)\r
+\r
+_Option = Tuple[str, str, str]\r
+_GR = Tuple[List[str], OptionDummy]\r
+\r
+def fancy_getopt(options: List[_Option],\r
+ negative_opt: Mapping[_Option, _Option],\r
+ object: Any,\r
+ args: Optional[List[str]]) -> Union[List[str], _GR]: ...\r
+def wrap_text(text: str, width: int) -> List[str]: ...\r
+\r
+class FancyGetopt:\r
+ def __init__(self, option_table: Optional[List[_Option]] = ...) -> None: ...\r
+ # TODO kinda wrong, `getopt(object=object())` is invalid\r
+ @overload\r
+ def getopt(self, args: Optional[List[str]] = ...) -> _GR: ...\r
+ @overload\r
+ def getopt(self, args: Optional[List[str]], object: Any) -> List[str]: ...\r
+ def get_option_order(self) -> List[Tuple[str, str]]: ...\r
+ def generate_help(self, header: Optional[str] = ...) -> List[str]: ...\r
+\r
+class OptionDummy: ...\r