# typings/asyncclick/__init__.pyi
"""Local type stubs for the untyped asyncclick library."""

from collections.abc import Callable
from typing import Any

class Context:
    obj: Any

class ParamType:
    name: str
    def convert(self, value: str, param: Any, ctx: Context | None) -> Any: ...
    def fail(
        self, message: str, param: Any = None, ctx: Context | None = None
    ) -> None: ...

class Command:
    params: list[Any]
    def __init__(self, *args: Any, **kwargs: Any) -> None: ...

class Option:
    def __init__(self, *args: Any, **kwargs: Any) -> None: ...

class File:
    def __init__(self, mode: str = "r", **kwargs: Any) -> None: ...

class Path:
    def __init__(self, **kwargs: Any) -> None: ...

class NoSuchOption(Exception): ...
class BadParameter(Exception): ...

STRING: Any

# Decorators must be typed as returning a Callable to satisfy disallow_untyped_decorators
def group(*args: Any, **kwargs: Any) -> Callable[[Any], Any]: ...
def command(*args: Any, **kwargs: Any) -> Callable[[Any], Any]: ...
def option(*args: Any, **kwargs: Any) -> Callable[[Any], Any]: ...
def pass_context(f: Callable[..., Any]) -> Callable[..., Any]: ...
def pass_obj(f: Callable[..., Any]) -> Callable[..., Any]: ...
def Argument(*args: Any, **kwargs: Any) -> Any: ...
