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

from docutils.nodes import Element, Node, topic, sidebar
from docutils.parsers.rst import Directive
from typing import Any, Callable, Dict, List, TypeVar

N_co = TypeVar('N_co', bound=Node, covariant=True)

__docformat__: str

class BasePseudoSection(Directive):
    required_arguments: int = ...
    optional_arguments: int = ...
    final_argument_whitespace: bool = ...
    option_spec: Dict[str, Callable[[str], Any]] = ...
    has_content: bool = ...
    node_class: Element = ...
    def run(self) -> List[N_co]: ...

class Topic(BasePseudoSection):
    node_class: topic = ...

class Sidebar(BasePseudoSection):
    node_class: sidebar = ...
    option_spec: Dict[str, Callable[[str], Any]] = ...
    def run(self) -> List[N_co]: ...

class LineBlock(Directive):
    option_spec: Dict[str, Callable[[str], Any]] = ...
    has_content: bool = ...
    def run(self) -> List[N_co]: ...

class ParsedLiteral(Directive):
    option_spec: Dict[str, Callable[[str], Any]] = ...
    has_content: bool = ...
    def run(self) -> List[N_co]: ...

class CodeBlock(Directive):
    optional_arguments: int = ...
    option_spec: Dict[str, Callable[[str], Any]] = ...
    has_content: bool = ...
    def run(self) -> List[N_co]: ...

class MathBlock(Directive):
    option_spec: Dict[str, Callable[[str], Any]] = ...
    has_content: bool = ...
    def run(self) -> List[N_co]: ...

class Rubric(Directive):
    required_arguments: int = ...
    optional_arguments: int = ...
    final_argument_whitespace: bool = ...
    option_spec: Dict[str, Callable[[str], Any]] = ...
    def run(self) -> List[N_co]: ...

class BlockQuote(Directive):
    has_content: bool = ...
    classes: List[str] = ...
    def run(self) -> List[N_co]: ...

class Epigraph(BlockQuote):
    classes: List[str] = ...

class Highlights(BlockQuote):
    classes: List[str] = ...

class PullQuote(BlockQuote):
    classes: List[str] = ...

class Compound(Directive):
    option_spec: Dict[str, Callable[[str], Any]] = ...
    has_content: bool = ...
    def run(self) -> List[N_co]: ...

class Container(Directive):
    optional_arguments: int = ...
    final_argument_whitespace: bool = ...
    option_spec: Dict[str, Callable[[str], Any]] = ...
    has_content: bool = ...
    def run(self) -> List[N_co]: ...
