from logging import Logger
from typing import Any, Dict, List, Optional

DEFAULT_AWS_DOCS_LINK: str = ...
DOCUMENTATION_LINK_REGEX: Any = ...
LARGE_SECTION_MESSAGE: str = ...
LOG: Logger = ...
SECTION_LINE_LIMIT_CONFIG: Dict[str, Any] = ...
SECTION_METHOD_PATH_DEPTH: Dict[str, int] = ...

class ReSTDocument:
    def __init__(self, target: str = ...) -> None: ...
    def write(self, content: str) -> None: ...
    def writeln(self, content: str) -> None: ...
    def peek_write(self) -> str: ...
    def pop_write(self) -> None: ...
    def push_write(self, s: str) -> None: ...
    def getvalue(self) -> bytes: ...
    def translate_words(self, words: Any) -> list[Any]: ...
    def handle_data(self, data: Any) -> None: ...
    def include_doc_string(self, doc_string: str) -> None: ...
    def remove_last_doc_string(self) -> None: ...

class DocumentStructure(ReSTDocument):
    def __init__(
        self,
        name: str,
        section_names: Optional[List[str]] = ...,
        target: Any = ...,
        context: Any = ...,
    ) -> None: ...
    @property
    def name(self) -> str: ...
    @property
    def path(self) -> list[Any]: ...
    @path.setter
    def path(self, value: Any) -> None: ...
    @property
    def available_sections(self) -> list[Any]: ...
    @property
    def context(self) -> Dict[str, Any]: ...
    def add_new_section(self, name: str, context: Any = ...) -> Any: ...
    def get_section(self, name: str) -> Any: ...
    def delete_section(self, name: str) -> None: ...
    def flush_structure(self, docs_link: Optional[str] = ...) -> bytes: ...
    def getvalue(self) -> bytes: ...
    def remove_all_sections(self) -> None: ...
    def clear_text(self) -> None: ...
    def add_title_section(self, title: str) -> Any: ...
    def write_to_file(self, full_path: str, file_name: str) -> None: ...
