from _typeshed import Incomplete
from typing import Any

from commonmark.render.renderer import Renderer

reUnsafeProtocol: Any
reSafeDataProtocol: Any

def potentially_unsafe(url): ...

class HtmlRenderer(Renderer):
    disable_tags: int
    last_out: str
    options: Any
    def __init__(self, options=...) -> None: ...
    def escape(self, text): ...
    def tag(self, name, attrs: Incomplete | None = ..., selfclosing: Incomplete | None = ...) -> None: ...
    def text(self, node, entering: Incomplete | None = ...) -> None: ...
    def softbreak(self, node: Incomplete | None = ..., entering: Incomplete | None = ...) -> None: ...
    def linebreak(self, node: Incomplete | None = ..., entering: Incomplete | None = ...) -> None: ...
    def link(self, node, entering) -> None: ...
    def image(self, node, entering) -> None: ...
    def emph(self, node, entering) -> None: ...
    def strong(self, node, entering) -> None: ...
    def paragraph(self, node, entering) -> None: ...
    def heading(self, node, entering) -> None: ...
    def code(self, node, entering) -> None: ...
    def code_block(self, node, entering) -> None: ...
    def thematic_break(self, node, entering) -> None: ...
    def block_quote(self, node, entering) -> None: ...
    def list(self, node, entering) -> None: ...
    def item(self, node, entering) -> None: ...
    def html_inline(self, node, entering) -> None: ...
    def html_block(self, node, entering) -> None: ...
    def custom_inline(self, node, entering) -> None: ...
    def custom_block(self, node, entering) -> None: ...
    def out(self, s) -> None: ...
    def attrs(self, node): ...
