from typing import Any, List, Tuple, Optional

class Image:
    pass

def load(path: str) -> Image: ...
def save(image: Image, path: str) -> None: ...
def show(image: Image, window_name: str = ...) -> None: ...
def capture(monitor_index: int = ...) -> Image: ...
def find(source: Image, search: Any, threshold: float = ..., level: int = ...) -> List[Tuple[int, int, int, int]]: ...
def draw(image: Image, rects: Any, color: Optional[Tuple[int, int, int]] = ...) -> None: ...
def wait(seconds: float) -> None: ...
def mouse_move(monitor_index: int, pos: Any) -> None: ...
def mouse_click(button: int = ..., count: int = ...) -> None: ...
def mouse_down(button: int = ...) -> None: ...
def mouse_up(button: int = ...) -> None: ...
def mouse_scroll(vertical: int, horizontal: int = ...) -> None: ...
def type(text: str, wait: float = ...) -> None: ...

# Constants
BLOCK: int
PARAGRAPH: int
LINE: int
WORD: int
SYMBOL: int