from typing import Any, Callable, Iterable, Optional

from markupsafe import Markup as Markup, escape as escape, soft_unicode as soft_unicode

missing = ...  # type: Any
internal_code = ...  # type: Any
concat = ...  # type: Any

def contextfunction(f): ...
def evalcontextfunction(f): ...
def environmentfunction(f): ...
def internalcode(f): ...
def is_undefined(obj): ...
def select_autoescape(enabled_extensions: Iterable[str] = ..., disabled_extensions: Iterable[str] = ..., default_for_string: bool = ..., default: bool = ...) -> Callable[[str], bool]: ...
def consume(iterable): ...
def clear_caches(): ...
def import_string(import_name, silent: bool = ...): ...
def open_if_exists(filename, mode: str = ...): ...
def object_type_repr(obj): ...
def pformat(obj, verbose: bool = ...): ...
def urlize(text, trim_url_limit: Optional[Any] = ..., nofollow: bool = ..., target: Optional[Any] = ...): ...
def generate_lorem_ipsum(n: int = ..., html: bool = ..., min: int = ..., max: int = ...): ...
def unicode_urlencode(obj, charset: str = ..., for_qs: bool = ...): ...

class LRUCache:
    capacity = ...  # type: Any
    def __init__(self, capacity) -> None: ...
    def __getnewargs__(self): ...
    def copy(self): ...
    def get(self, key, default: Optional[Any] = ...): ...
    def setdefault(self, key, default: Optional[Any] = ...): ...
    def clear(self): ...
    def __contains__(self, key): ...
    def __len__(self): ...
    def __getitem__(self, key): ...
    def __setitem__(self, key, value): ...
    def __delitem__(self, key): ...
    def items(self): ...
    def iteritems(self): ...
    def values(self): ...
    def itervalue(self): ...
    def keys(self): ...
    def iterkeys(self): ...
    __iter__ = ...  # type: Any
    def __reversed__(self): ...
    __copy__ = ...  # type: Any

class Cycler:
    items = ...  # type: Any
    def __init__(self, *items) -> None: ...
    pos = ...  # type: int
    def reset(self): ...
    @property
    def current(self): ...
    def __next__(self): ...

class Joiner:
    sep = ...  # type: Any
    used = ...  # type: bool
    def __init__(self, sep: str = ...) -> None: ...
    def __call__(self): ...
