# Stubs for docutils.parsers.rst.directives (Python 3.6)
#
# NOTE: This dynamically typed stub was automatically generated by stubgen.

from docutils import nodes
from docutils.parsers.rst import Directive
from types import ModuleType
from typing import Callable, List, Optional, Pattern, Sequence, Tuple, Type

__docformat__: str

def directive(directive_name: str, language_module: ModuleType, document: nodes.document) -> Tuple[Optional[Type[Directive]], List[nodes.system_message]]: ...
def register_directive(name: str, directive: Type[Directive]) -> None: ...
def flag(argument: str) -> None: ...
def unchanged_required(argument: str) -> str: ...
def unchanged(argument: str) -> str: ...
def path(argument: str) -> str: ...
def uri(argument: str) -> str: ...
def nonnegative_int(argument: str) -> int: ...
def percentage(argument: str) -> int: ...

length_units: List[str]

def get_measure(argument: str, units: List[str]) -> float: ...
def length_or_unitless(argument: str) -> float: ...
def length_or_percentage_or_unitless(argument: str, default: str = ...) -> float: ...
def class_option(argument: str) -> List[str]: ...

unicode_pattern: Pattern

def unicode_code(code: str) -> str: ...
def single_char_or_unicode(argument: str) -> str: ...
def single_char_or_whitespace_or_unicode(argument: str) -> str: ...
def positive_int(argument: str) -> int: ...
def positive_int_list(argument: str) -> List[int]: ...
def encoding(argument: str) -> str: ...
def choice(argument: str, values: Sequence[str]) -> str: ...
def format_values(values: Sequence[str]) -> str: ...
def value_or(values: List[str], other: Callable[[str], str]) -> Callable[[str], str]: ...
