"""
This type stub file was generated by pyright.
"""

from collections.abc import Sequence
from typing import Any, Callable, TYPE_CHECKING, Union
from docutils import nodes
from docutils.parsers.rst.states import Inliner

"""The composite types for Sphinx."""
if TYPE_CHECKING:
    ...
INVALID_BUILTIN_CLASSES = ...
def is_invalid_builtin_class(obj: Any) -> bool:
    """Check *obj* is an invalid built-in class."""
    ...

TextlikeNode = Union[nodes.Text, nodes.TextElement]
NoneType = ...
PathMatcher = Callable[[str], bool]
RoleFunction = Callable[[str, str, str, int, Inliner, dict[str, Any], Sequence[str]], tuple[list[nodes.Node], list[nodes.system_message]]]
OptionSpec = dict[str, Callable[[str], Any]]
TitleGetter = Callable[[nodes.Node], str]
InventoryItem = tuple[str, str, str, str,]
Inventory = dict[str, dict[str, InventoryItem]]
def get_type_hints(obj: Any, globalns: dict[str, Any] | None = ..., localns: dict[str, Any] | None = ...) -> dict[str, Any]:
    """Return a dictionary containing type hints for a function, method, module or class
    object.

    This is a simple wrapper of `typing.get_type_hints()` that does not raise an error on
    runtime.
    """
    ...

def is_system_TypeVar(typ: Any) -> bool:
    """Check *typ* is system defined TypeVar."""
    ...

def restify(cls: type | None, mode: str = ...) -> str:
    """Convert python class to a reST reference.

    :param mode: Specify a method how annotations will be stringified.

                 'fully-qualified-except-typing'
                     Show the module name and qualified name of the annotation except
                     the "typing" module.
                 'smart'
                     Show the name of the annotation.
    """
    ...

def stringify_annotation(annotation: Any, /, mode: str = ...) -> str:
    """Stringify type annotation object.

    :param annotation: The annotation to stringified.
    :param mode: Specify a method how annotations will be stringified.

                 'fully-qualified-except-typing'
                     Show the module name and qualified name of the annotation except
                     the "typing" module.
                 'smart'
                     Show the name of the annotation.
                 'fully-qualified'
                     Show the module name and qualified name of the annotation.
    """
    ...

_DEPRECATED_OBJECTS = ...
def __getattr__(name): # -> (annotation: Any, /, mode: str = 'fully-qualified-except-typing') -> str:
    ...

