--- /dev/null
+from typing import Any, BinaryIO, IO, Optional, Tuple, Union, overload\r
+\r
+_chtype = Union[str, bytes, int]\r
+\r
+ALL_MOUSE_EVENTS = ... # type: int\r
+A_ALTCHARSET = ... # type: int\r
+A_ATTRIBUTES = ... # type: int\r
+A_BLINK = ... # type: int\r
+A_BOLD = ... # type: int\r
+A_CHARTEXT = ... # type: int\r
+A_COLOR = ... # type: int\r
+A_DIM = ... # type: int\r
+A_HORIZONTAL = ... # type: int\r
+A_INVIS = ... # type: int\r
+A_LEFT = ... # type: int\r
+A_LOW = ... # type: int\r
+A_NORMAL = ... # type: int\r
+A_PROTECT = ... # type: int\r
+A_REVERSE = ... # type: int\r
+A_RIGHT = ... # type: int\r
+A_STANDOUT = ... # type: int\r
+A_TOP = ... # type: int\r
+A_UNDERLINE = ... # type: int\r
+A_VERTICAL = ... # type: int\r
+BUTTON1_CLICKED = ... # type: int\r
+BUTTON1_DOUBLE_CLICKED = ... # type: int\r
+BUTTON1_PRESSED = ... # type: int\r
+BUTTON1_RELEASED = ... # type: int\r
+BUTTON1_TRIPLE_CLICKED = ... # type: int\r
+BUTTON2_CLICKED = ... # type: int\r
+BUTTON2_DOUBLE_CLICKED = ... # type: int\r
+BUTTON2_PRESSED = ... # type: int\r
+BUTTON2_RELEASED = ... # type: int\r
+BUTTON2_TRIPLE_CLICKED = ... # type: int\r
+BUTTON3_CLICKED = ... # type: int\r
+BUTTON3_DOUBLE_CLICKED = ... # type: int\r
+BUTTON3_PRESSED = ... # type: int\r
+BUTTON3_RELEASED = ... # type: int\r
+BUTTON3_TRIPLE_CLICKED = ... # type: int\r
+BUTTON4_CLICKED = ... # type: int\r
+BUTTON4_DOUBLE_CLICKED = ... # type: int\r
+BUTTON4_PRESSED = ... # type: int\r
+BUTTON4_RELEASED = ... # type: int\r
+BUTTON4_TRIPLE_CLICKED = ... # type: int\r
+BUTTON_ALT = ... # type: int\r
+BUTTON_CTRL = ... # type: int\r
+BUTTON_SHIFT = ... # type: int\r
+COLOR_BLACK = ... # type: int\r
+COLOR_BLUE = ... # type: int\r
+COLOR_CYAN = ... # type: int\r
+COLOR_GREEN = ... # type: int\r
+COLOR_MAGENTA = ... # type: int\r
+COLOR_RED = ... # type: int\r
+COLOR_WHITE = ... # type: int\r
+COLOR_YELLOW = ... # type: int\r
+ERR = ... # type: int\r
+KEY_A1 = ... # type: int\r
+KEY_A3 = ... # type: int\r
+KEY_B2 = ... # type: int\r
+KEY_BACKSPACE = ... # type: int\r
+KEY_BEG = ... # type: int\r
+KEY_BREAK = ... # type: int\r
+KEY_BTAB = ... # type: int\r
+KEY_C1 = ... # type: int\r
+KEY_C3 = ... # type: int\r
+KEY_CANCEL = ... # type: int\r
+KEY_CATAB = ... # type: int\r
+KEY_CLEAR = ... # type: int\r
+KEY_CLOSE = ... # type: int\r
+KEY_COMMAND = ... # type: int\r
+KEY_COPY = ... # type: int\r
+KEY_CREATE = ... # type: int\r
+KEY_CTAB = ... # type: int\r
+KEY_DC = ... # type: int\r
+KEY_DL = ... # type: int\r
+KEY_DOWN = ... # type: int\r
+KEY_EIC = ... # type: int\r
+KEY_END = ... # type: int\r
+KEY_ENTER = ... # type: int\r
+KEY_EOL = ... # type: int\r
+KEY_EOS = ... # type: int\r
+KEY_EXIT = ... # type: int\r
+KEY_F0 = ... # type: int\r
+KEY_F1 = ... # type: int\r
+KEY_F10 = ... # type: int\r
+KEY_F11 = ... # type: int\r
+KEY_F12 = ... # type: int\r
+KEY_F13 = ... # type: int\r
+KEY_F14 = ... # type: int\r
+KEY_F15 = ... # type: int\r
+KEY_F16 = ... # type: int\r
+KEY_F17 = ... # type: int\r
+KEY_F18 = ... # type: int\r
+KEY_F19 = ... # type: int\r
+KEY_F2 = ... # type: int\r
+KEY_F20 = ... # type: int\r
+KEY_F21 = ... # type: int\r
+KEY_F22 = ... # type: int\r
+KEY_F23 = ... # type: int\r
+KEY_F24 = ... # type: int\r
+KEY_F25 = ... # type: int\r
+KEY_F26 = ... # type: int\r
+KEY_F27 = ... # type: int\r
+KEY_F28 = ... # type: int\r
+KEY_F29 = ... # type: int\r
+KEY_F3 = ... # type: int\r
+KEY_F30 = ... # type: int\r
+KEY_F31 = ... # type: int\r
+KEY_F32 = ... # type: int\r
+KEY_F33 = ... # type: int\r
+KEY_F34 = ... # type: int\r
+KEY_F35 = ... # type: int\r
+KEY_F36 = ... # type: int\r
+KEY_F37 = ... # type: int\r
+KEY_F38 = ... # type: int\r
+KEY_F39 = ... # type: int\r
+KEY_F4 = ... # type: int\r
+KEY_F40 = ... # type: int\r
+KEY_F41 = ... # type: int\r
+KEY_F42 = ... # type: int\r
+KEY_F43 = ... # type: int\r
+KEY_F44 = ... # type: int\r
+KEY_F45 = ... # type: int\r
+KEY_F46 = ... # type: int\r
+KEY_F47 = ... # type: int\r
+KEY_F48 = ... # type: int\r
+KEY_F49 = ... # type: int\r
+KEY_F5 = ... # type: int\r
+KEY_F50 = ... # type: int\r
+KEY_F51 = ... # type: int\r
+KEY_F52 = ... # type: int\r
+KEY_F53 = ... # type: int\r
+KEY_F54 = ... # type: int\r
+KEY_F55 = ... # type: int\r
+KEY_F56 = ... # type: int\r
+KEY_F57 = ... # type: int\r
+KEY_F58 = ... # type: int\r
+KEY_F59 = ... # type: int\r
+KEY_F6 = ... # type: int\r
+KEY_F60 = ... # type: int\r
+KEY_F61 = ... # type: int\r
+KEY_F62 = ... # type: int\r
+KEY_F63 = ... # type: int\r
+KEY_F7 = ... # type: int\r
+KEY_F8 = ... # type: int\r
+KEY_F9 = ... # type: int\r
+KEY_FIND = ... # type: int\r
+KEY_HELP = ... # type: int\r
+KEY_HOME = ... # type: int\r
+KEY_IC = ... # type: int\r
+KEY_IL = ... # type: int\r
+KEY_LEFT = ... # type: int\r
+KEY_LL = ... # type: int\r
+KEY_MARK = ... # type: int\r
+KEY_MAX = ... # type: int\r
+KEY_MESSAGE = ... # type: int\r
+KEY_MIN = ... # type: int\r
+KEY_MOUSE = ... # type: int\r
+KEY_MOVE = ... # type: int\r
+KEY_NEXT = ... # type: int\r
+KEY_NPAGE = ... # type: int\r
+KEY_OPEN = ... # type: int\r
+KEY_OPTIONS = ... # type: int\r
+KEY_PPAGE = ... # type: int\r
+KEY_PREVIOUS = ... # type: int\r
+KEY_PRINT = ... # type: int\r
+KEY_REDO = ... # type: int\r
+KEY_REFERENCE = ... # type: int\r
+KEY_REFRESH = ... # type: int\r
+KEY_REPLACE = ... # type: int\r
+KEY_RESET = ... # type: int\r
+KEY_RESIZE = ... # type: int\r
+KEY_RESTART = ... # type: int\r
+KEY_RESUME = ... # type: int\r
+KEY_RIGHT = ... # type: int\r
+KEY_SAVE = ... # type: int\r
+KEY_SBEG = ... # type: int\r
+KEY_SCANCEL = ... # type: int\r
+KEY_SCOMMAND = ... # type: int\r
+KEY_SCOPY = ... # type: int\r
+KEY_SCREATE = ... # type: int\r
+KEY_SDC = ... # type: int\r
+KEY_SDL = ... # type: int\r
+KEY_SELECT = ... # type: int\r
+KEY_SEND = ... # type: int\r
+KEY_SEOL = ... # type: int\r
+KEY_SEXIT = ... # type: int\r
+KEY_SF = ... # type: int\r
+KEY_SFIND = ... # type: int\r
+KEY_SHELP = ... # type: int\r
+KEY_SHOME = ... # type: int\r
+KEY_SIC = ... # type: int\r
+KEY_SLEFT = ... # type: int\r
+KEY_SMESSAGE = ... # type: int\r
+KEY_SMOVE = ... # type: int\r
+KEY_SNEXT = ... # type: int\r
+KEY_SOPTIONS = ... # type: int\r
+KEY_SPREVIOUS = ... # type: int\r
+KEY_SPRINT = ... # type: int\r
+KEY_SR = ... # type: int\r
+KEY_SREDO = ... # type: int\r
+KEY_SREPLACE = ... # type: int\r
+KEY_SRESET = ... # type: int\r
+KEY_SRIGHT = ... # type: int\r
+KEY_SRSUME = ... # type: int\r
+KEY_SSAVE = ... # type: int\r
+KEY_SSUSPEND = ... # type: int\r
+KEY_STAB = ... # type: int\r
+KEY_SUNDO = ... # type: int\r
+KEY_SUSPEND = ... # type: int\r
+KEY_UNDO = ... # type: int\r
+KEY_UP = ... # type: int\r
+OK = ... # type: int\r
+REPORT_MOUSE_POSITION = ... # type: int\r
+_C_API = ... # type: Any\r
+version = ... # type: bytes\r
+\r
+def baudrate() -> int: ...\r
+def beep() -> None: ...\r
+def can_change_color() -> bool: ...\r
+def cbreak(flag: bool = ...) -> None: ...\r
+def color_content(color_number: int) -> Tuple[int, int, int]: ...\r
+def color_pair(color_number: int) -> int: ...\r
+def curs_set(visibility: int) -> int: ...\r
+def def_prog_mode() -> None: ...\r
+def def_shell_mode() -> None: ...\r
+def delay_output(ms: int) -> None: ...\r
+def doupdate() -> None: ...\r
+def echo(flag: bool = ...) -> None: ...\r
+def endwin() -> None: ...\r
+def erasechar() -> bytes: ...\r
+def filter() -> None: ...\r
+def flash() -> None: ...\r
+def flushinp() -> None: ...\r
+def getmouse() -> Tuple[int, int, int, int, int]: ...\r
+def getsyx() -> Tuple[int, int]: ...\r
+def getwin(f: BinaryIO) -> _CursesWindow: ...\r
+def halfdelay(tenths: int) -> None: ...\r
+def has_colors() -> bool: ...\r
+def has_ic() -> bool: ...\r
+def has_il() -> bool: ...\r
+def has_key(ch: int) -> bool: ...\r
+def init_color(color_number: int, r: int, g: int, b: int) -> None: ...\r
+def init_pair(pair_number: int, fg: int, bg: int) -> None: ...\r
+def initscr() -> _CursesWindow: ...\r
+def intrflush(ch: bool) -> None: ...\r
+def is_term_resized(nlines: int, ncols: int) -> bool: ...\r
+def isendwin() -> bool: ...\r
+def keyname(k: int) -> bytes: ...\r
+def killchar() -> bytes: ...\r
+def longname() -> bytes: ...\r
+def meta(yes: bool) -> None: ...\r
+def mouseinterval(interval: int) -> None: ...\r
+def mousemask(mousemask: int) -> Tuple[int, int]: ...\r
+def napms(ms: int) -> int: ...\r
+def newpad(nlines: int, ncols: int) -> _CursesWindow: ...\r
+def newwin(nlines: int, ncols: int, begin_y: int = ..., begin_x: int = ...) -> _CursesWindow: ...\r
+def nl(flag: bool = ...) -> None: ...\r
+def nocbreak() -> None: ...\r
+def noecho() -> None: ...\r
+def nonl() -> None: ...\r
+def noqiflush() -> None: ...\r
+def noraw() -> None: ...\r
+def pair_content(pair_number: int) -> Tuple[int, int]: ...\r
+def pair_number(attr: int) -> int: ...\r
+def putp(string: bytes) -> None: ...\r
+def qiflush(flag: bool = ...) -> None: ...\r
+def raw(flag: bool = ...) -> None: ...\r
+def reset_prog_mode() -> None: ...\r
+def reset_shell_mode() -> None: ...\r
+def resetty() -> None: ...\r
+def resize_term(nlines: int, ncols: int) -> None: ...\r
+def resizeterm(nlines: int, ncols: int) -> None: ...\r
+def savetty() -> None: ...\r
+def setsyx(y: int, x: int) -> None: ...\r
+def setupterm(termstr: str = ..., fd: int = ...) -> None: ...\r
+def start_color() -> None: ...\r
+def termattrs() -> int: ...\r
+def termname() -> bytes: ...\r
+def tigetflag(capname: str) -> int: ...\r
+def tigetnum(capname: str) -> int: ...\r
+def tigetstr(capname: str) -> bytes: ...\r
+def tparm(fmt: bytes, i1: int = ..., i2: int = ..., i3: int = ..., i4: int = ..., i5: int = ..., i6: int = ..., i7: int = ..., i8: int = ..., i9: int = ...) -> bytes: ...\r
+def typeahead(fd: int) -> None: ...\r
+def unctrl(ch: _chtype) -> bytes: ...\r
+def unget_wch(ch: _chtype) -> None: ...\r
+def ungetch(ch: _chtype) -> None: ...\r
+def ungetmouse(id: int, x: int, y: int, z: int, bstate: int) -> None: ...\r
+def update_lines_cols() -> int: ...\r
+def use_default_colors() -> None: ...\r
+def use_env(flag: bool) -> None: ...\r
+\r
+class error(Exception): ...\r
+\r
+class _CursesWindow:\r
+ encoding = ... # type: str\r
+ @overload\r
+ def addch(self, ch: _chtype, attr: int = ...) -> None: ...\r
+ @overload\r
+ def addch(self, y: int, x: int, ch: _chtype, attr: int = ...) -> None: ...\r
+ @overload\r
+ def addnstr(self, str: str, n: int, attr: int = ...) -> None: ...\r
+ @overload\r
+ def addnstr(self, y: int, x: int, str: str, n: int, attr: int = ...) -> None: ...\r
+ @overload\r
+ def addstr(self, str: str, attr: int = ...) -> None: ...\r
+ @overload\r
+ def addstr(self, y: int, x: int, str: str, attr: int = ...) -> None: ...\r
+ def attroff(self, attr: int) -> None: ...\r
+ def attron(self, attr: int) -> None: ...\r
+ def attrset(self, attr: int) -> None: ...\r
+ def bkgd(self, ch: _chtype, attr: int = ...) -> None: ...\r
+ def bkgset(self, ch: _chtype, attr: int = ...) -> None: ...\r
+ def border(self, ls: _chtype = ..., rs: _chtype = ..., ts: _chtype = ..., bs: _chtype = ..., tl: _chtype = ..., tr: _chtype = ..., bl: _chtype = ..., br: _chtype = ...) -> None: ...\r
+ @overload\r
+ def box(self) -> None: ...\r
+ @overload\r
+ def box(self, vertch: _chtype = ..., horch: _chtype = ...) -> None: ...\r
+ @overload\r
+ def chgat(self, attr: int) -> None: ...\r
+ @overload\r
+ def chgat(self, num: int, attr: int) -> None: ...\r
+ @overload\r
+ def chgat(self, y: int, x: int, attr: int) -> None: ...\r
+ @overload\r
+ def chgat(self, y: int, x: int, num: int, attr: int) -> None: ...\r
+ def clear(self) -> None: ...\r
+ def clearok(self, yes: int) -> None: ...\r
+ def clrtobot(self) -> None: ...\r
+ def clrtoeol(self) -> None: ...\r
+ def cursyncup(self) -> None: ...\r
+ @overload\r
+ def delch(self) -> None: ...\r
+ @overload\r
+ def delch(self, y: int, x: int) -> None: ...\r
+ def deleteln(self) -> None: ...\r
+ @overload\r
+ def derwin(self, begin_y: int, begin_x: int) -> '_CursesWindow': ...\r
+ @overload\r
+ def derwin(self, nlines: int, ncols: int, begin_y: int, begin_x: int) -> '_CursesWindow': ...\r
+ def echochar(self, ch: _chtype, attr: int = ...) -> None: ...\r
+ def enclose(self, y: int, x: int) -> bool: ...\r
+ def erase(self) -> None: ...\r
+ def getbegyx(self) -> Tuple[int, int]: ...\r
+ def getbkgd(self) -> Tuple[int, int]: ...\r
+ @overload\r
+ def getch(self) -> _chtype: ...\r
+ @overload\r
+ def getch(self, y: int, x: int) -> _chtype: ...\r
+ @overload\r
+ def get_wch(self) -> _chtype: ...\r
+ @overload\r
+ def get_wch(self, y: int, x: int) -> _chtype: ...\r
+ @overload\r
+ def getkey(self) -> str: ...\r
+ @overload\r
+ def getkey(self, y: int, x: int) -> str: ...\r
+ def getmaxyx(self) -> Tuple[int, int]: ...\r
+ def getparyx(self) -> Tuple[int, int]: ...\r
+ @overload\r
+ def getstr(self) -> _chtype: ...\r
+ @overload\r
+ def getstr(self, n: int) -> _chtype: ...\r
+ @overload\r
+ def getstr(self, y: int, x: int) -> _chtype: ...\r
+ @overload\r
+ def getstr(self, y: int, x: int, n: int) -> _chtype: ...\r
+ def getyx(self) -> Tuple[int, int]: ...\r
+ @overload\r
+ def hline(self, ch: _chtype, n: int) -> None: ...\r
+ @overload\r
+ def hline(self, y: int, x: int, ch: _chtype, n: int) -> None: ...\r
+ def idcok(self, flag: bool) -> None: ...\r
+ def idlok(self, yes: bool) -> None: ...\r
+ def immedok(self, flag: bool) -> None: ...\r
+ @overload\r
+ def inch(self) -> _chtype: ...\r
+ @overload\r
+ def inch(self, y: int, x: int) -> _chtype: ...\r
+ @overload\r
+ def insch(self, ch: _chtype, attr: int = ...) -> None: ...\r
+ @overload\r
+ def insch(self, y: int, x: int, ch: _chtype, attr: int = ...) -> None: ...\r
+ def insdelln(self, nlines: int) -> None: ...\r
+ def insertln(self) -> None: ...\r
+ @overload\r
+ def insnstr(self, str: str, n: int, attr: int = ...) -> None: ...\r
+ @overload\r
+ def insnstr(self, y: int, x: int, str: str, n: int, attr: int = ...) -> None: ...\r
+ @overload\r
+ def insstr(self, str: str, attr: int = ...) -> None: ...\r
+ @overload\r
+ def insstr(self, y: int, x: int, str: str, attr: int = ...) -> None: ...\r
+ @overload\r
+ def instr(self, n: int = ...) -> _chtype: ...\r
+ @overload\r
+ def instr(self, y: int, x: int, n: int = ...) -> _chtype: ...\r
+ def is_linetouched(self, line: int) -> bool: ...\r
+ def is_wintouched(self) -> bool: ...\r
+ def keypad(self, yes: bool) -> None: ...\r
+ def leaveok(self, yes: bool) -> None: ...\r
+ def move(self, new_y: int, new_x: int) -> None: ...\r
+ def mvderwin(self, y: int, x: int) -> None: ...\r
+ def mvwin(self, new_y: int, new_x: int) -> None: ...\r
+ def nodelay(self, yes: bool) -> None: ...\r
+ def notimeout(self, yes: bool) -> None: ...\r
+ def noutrefresh(self) -> None: ...\r
+ @overload\r
+ def overlay(self, destwin: '_CursesWindow') -> None: ...\r
+ @overload\r
+ def overlay(self, destwin: '_CursesWindow', sminrow: int, smincol: int, dminrow: int, dmincol: int, dmaxrow: int, dmaxcol: int) -> None: ...\r
+ @overload\r
+ def overwrite(self, destwin: '_CursesWindow') -> None: ...\r
+ @overload\r
+ def overwrite(self, destwin: '_CursesWindow', sminrow: int, smincol: int, dminrow: int, dmincol: int, dmaxrow: int, dmaxcol: int) -> None: ...\r
+ def putwin(self, file: IO[Any]) -> None: ...\r
+ def redrawln(self, beg: int, num: int) -> None: ...\r
+ def redrawwin(self) -> None: ...\r
+ @overload\r
+ def refresh(self) -> None: ...\r
+ @overload\r
+ def refresh(self, pminrow: int, pmincol: int, sminrow: int, smincol: int, smaxrow: int, smaxcol: int) -> None: ...\r
+ def resize(self, nlines: int, ncols: int) -> None: ...\r
+ def scroll(self, lines: int = ...) -> None: ...\r
+ def scrollok(self, flag: bool) -> None: ...\r
+ def setscrreg(self, top: int, bottom: int) -> None: ...\r
+ def standend(self) -> None: ...\r
+ def standout(self) -> None: ...\r
+ @overload\r
+ def subpad(self, begin_y: int, begin_x: int) -> '_CursesWindow': ...\r
+ @overload\r
+ def subpad(self, nlines: int, ncols: int, begin_y: int, begin_x: int) -> '_CursesWindow': ...\r
+ @overload\r
+ def subwin(self, begin_y: int, begin_x: int) -> '_CursesWindow': ...\r
+ @overload\r
+ def subwin(self, nlines: int, ncols: int, begin_y: int, begin_x: int) -> '_CursesWindow': ...\r
+ def syncdown(self) -> None: ...\r
+ def syncok(self, flag: bool) -> None: ...\r
+ def syncup(self) -> None: ...\r
+ def timeout(self, delay: int) -> None: ...\r
+ def touchline(self, start: int, count: int, changed: bool = ...) -> None: ...\r
+ def touchwin(self) -> None: ...\r
+ def untouchwin(self) -> None: ...\r
+ @overload\r
+ def vline(self, ch: _chtype, n: int) -> None: ...\r
+ @overload\r
+ def vline(self, y: int, x: int, ch: _chtype, n: int) -> None: ...\r