# typed: true

# DO NOT EDIT MANUALLY
# This is an autogenerated file for types exported from the `kramdown` gem.
# Please instead update this file by running `bin/tapioca gem kramdown`.


module Kramdown
  class << self
    def data_dir; end
  end
end

module Kramdown::Converter
  extend ::Kramdown::Utils::Configurable

  class << self
    def add_math_engine(data, *args, &block); end
    def add_syntax_highlighter(data, *args, &block); end
    def configurables; end
    def math_engine(data); end
    def syntax_highlighter(data); end
  end
end

class Kramdown::Converter::Base
  def initialize(root, options); end

  def apply_template_after?; end
  def apply_template_before?; end
  def basic_generate_id(str); end
  def convert(_el); end
  def data; end
  def extract_code_language(attr); end
  def extract_code_language!(attr); end
  def format_math(el, opts = T.unsafe(nil)); end
  def generate_id(str); end
  def highlight_code(text, lang, type, opts = T.unsafe(nil)); end
  def in_toc?(el); end
  def options; end
  def output_header_level(level); end
  def root; end
  def smart_quote_entity(el); end
  def warning(text); end
  def warnings; end

  class << self
    def apply_template(converter, body); end
    def convert(tree, options = T.unsafe(nil)); end
    def get_template(template); end

    private

    def allocate; end
    def new(*_arg0); end
  end
end

Kramdown::Converter::Base::SMART_QUOTE_INDICES = T.let(T.unsafe(nil), Hash)

class Kramdown::Converter::HashAST < ::Kramdown::Converter::Base
  def convert(el); end
end

Kramdown::Converter::HashAst = Kramdown::Converter::HashAST

class Kramdown::Converter::Html < ::Kramdown::Converter::Base
  include ::Kramdown::Utils::Html
  include ::Kramdown::Parser::Html::Constants

  def initialize(root, options); end

  def add_syntax_highlighter_to_class_attr(attr, lang = T.unsafe(nil)); end
  def convert(el, indent = T.unsafe(nil)); end
  def convert_a(el, indent); end
  def convert_abbreviation(el, _indent); end
  def convert_blank(_el, _indent); end
  def convert_blockquote(el, indent); end
  def convert_br(_el, _indent); end
  def convert_codeblock(el, indent); end
  def convert_codespan(el, _indent); end
  def convert_comment(el, indent); end
  def convert_dd(el, indent); end
  def convert_dl(el, indent); end
  def convert_dt(el, indent); end
  def convert_em(el, indent); end
  def convert_entity(el, _indent); end
  def convert_footnote(el, _indent); end
  def convert_header(el, indent); end
  def convert_hr(el, indent); end
  def convert_html_element(el, indent); end
  def convert_img(el, _indent); end
  def convert_li(el, indent); end
  def convert_math(el, indent); end
  def convert_ol(el, indent); end
  def convert_p(el, indent); end
  def convert_raw(el, _indent); end
  def convert_root(el, indent); end
  def convert_smart_quote(el, _indent); end
  def convert_standalone_image(el, indent); end
  def convert_strong(el, indent); end
  def convert_table(el, indent); end
  def convert_tbody(el, indent); end
  def convert_td(el, indent); end
  def convert_text(el, _indent); end
  def convert_tfoot(el, indent); end
  def convert_thead(el, indent); end
  def convert_tr(el, indent); end
  def convert_typographic_sym(el, _indent); end
  def convert_ul(el, indent); end
  def convert_xml_comment(el, indent); end
  def convert_xml_pi(el, indent); end
  def fix_for_toc_entry(elements); end
  def footnote_content; end
  def format_as_block_html(name, attr, body, indent); end
  def format_as_indented_block_html(name, attr, body, indent); end
  def format_as_span_html(name, attr, body); end
  def generate_toc_tree(toc, type, attr); end
  def indent; end
  def indent=(_arg0); end
  def inner(el, indent); end
  def obfuscate(text); end
  def remove_footnotes(elements); end
  def unwrap_links(elements); end
end

Kramdown::Converter::Html::ENTITY_NBSP = T.let(T.unsafe(nil), Kramdown::Utils::Entities::Entity)
Kramdown::Converter::Html::FOOTNOTE_BACKLINK_FMT = T.let(T.unsafe(nil), String)
Kramdown::Converter::Html::TYPOGRAPHIC_SYMS = T.let(T.unsafe(nil), Hash)
Kramdown::Converter::Html::ZERO_TO_ONETWENTYEIGHT = T.let(T.unsafe(nil), Array)

class Kramdown::Converter::Kramdown < ::Kramdown::Converter::Base
  include ::Kramdown::Utils::Html

  def initialize(root, options); end

  def convert(el, opts = T.unsafe(nil)); end
  def convert_a(el, opts); end
  def convert_abbreviation(el, _opts); end
  def convert_blank(_el, _opts); end
  def convert_blockquote(el, opts); end
  def convert_br(_el, opts); end
  def convert_codeblock(el, _opts); end
  def convert_codespan(el, _opts); end
  def convert_comment(el, _opts); end
  def convert_dd(el, opts); end
  def convert_dl(el, opts); end
  def convert_dt(el, opts); end
  def convert_em(el, opts); end
  def convert_entity(el, _opts); end
  def convert_footnote(el, _opts); end
  def convert_header(el, opts); end
  def convert_hr(_el, _opts); end
  def convert_html_element(el, opts); end
  def convert_img(el, _opts); end
  def convert_li(el, opts); end
  def convert_math(el, _opts); end
  def convert_ol(el, opts); end
  def convert_p(el, opts); end
  def convert_raw(el, _opts); end
  def convert_root(el, opts); end
  def convert_smart_quote(el, _opts); end
  def convert_strong(el, opts); end
  def convert_table(el, opts); end
  def convert_tbody(el, opts); end
  def convert_td(el, opts); end
  def convert_text(el, opts); end
  def convert_tfoot(el, opts); end
  def convert_thead(el, opts); end
  def convert_tr(el, opts); end
  def convert_typographic_sym(el, _opts); end
  def convert_ul(el, opts); end
  def convert_xml_comment(el, _opts); end
  def convert_xml_pi(el, _opts); end
  def create_abbrev_defs; end
  def create_footnote_defs; end
  def create_link_defs; end
  def ial_for_element(el); end
  def inner(el, opts = T.unsafe(nil)); end
  def parse_title(attr); end
end

Kramdown::Converter::Kramdown::ESCAPED_CHAR_RE = T.let(T.unsafe(nil), Regexp)
Kramdown::Converter::Kramdown::HTML_ELEMENT_TYPES = T.let(T.unsafe(nil), Array)
Kramdown::Converter::Kramdown::HTML_TAGS_WITH_BODY = T.let(T.unsafe(nil), Array)
Kramdown::Converter::Kramdown::TYPOGRAPHIC_SYMS = T.let(T.unsafe(nil), Hash)

class Kramdown::Converter::Latex < ::Kramdown::Converter::Base
  def initialize(root, options); end

  def attribute_list(el); end
  def convert(el, opts = T.unsafe(nil)); end
  def convert_a(el, opts); end
  def convert_abbreviation(el, _opts); end
  def convert_blank(_el, opts); end
  def convert_blockquote(el, opts); end
  def convert_br(_el, opts); end
  def convert_codeblock(el, _opts); end
  def convert_codespan(el, _opts); end
  def convert_comment(el, _opts); end
  def convert_dd(el, opts); end
  def convert_dl(el, opts); end
  def convert_dt(el, opts); end
  def convert_em(el, opts); end
  def convert_entity(el, _opts); end
  def convert_footnote(el, opts); end
  def convert_header(el, opts); end
  def convert_hr(el, _opts); end
  def convert_html_element(el, opts); end
  def convert_img(el, _opts); end
  def convert_li(el, opts); end
  def convert_math(el, _opts); end
  def convert_ol(el, opts); end
  def convert_p(el, opts); end
  def convert_raw(el, _opts); end
  def convert_root(el, opts); end
  def convert_smart_quote(el, opts); end
  def convert_standalone_image(el, _opts, img); end
  def convert_strong(el, opts); end
  def convert_table(el, opts); end
  def convert_tbody(el, opts); end
  def convert_td(el, opts); end
  def convert_text(el, _opts); end
  def convert_tfoot(el, opts); end
  def convert_thead(el, opts); end
  def convert_tr(el, opts); end
  def convert_typographic_sym(el, _opts); end
  def convert_ul(el, opts); end
  def convert_xml_comment(el, _opts); end
  def convert_xml_pi(_el, _opts); end
  def entity_to_latex(entity); end
  def escape(str); end
  def inner(el, opts); end
  def latex_environment(type, el, text); end
  def latex_link_target(el, add_label = T.unsafe(nil)); end
  def normalize_abbreviation_key(key); end
end

Kramdown::Converter::Latex::ENTITY_CONV_TABLE = T.let(T.unsafe(nil), Hash)
Kramdown::Converter::Latex::ESCAPE_MAP = T.let(T.unsafe(nil), Hash)
Kramdown::Converter::Latex::ESCAPE_RE = T.let(T.unsafe(nil), Regexp)
Kramdown::Converter::Latex::TABLE_ALIGNMENT_CHAR = T.let(T.unsafe(nil), Hash)
Kramdown::Converter::Latex::TYPOGRAPHIC_SYMS = T.let(T.unsafe(nil), Hash)

class Kramdown::Converter::Man < ::Kramdown::Converter::Base
  def convert(el, opts = T.unsafe(nil)); end

  private

  def convert_a(el, opts); end
  def convert_abbreviation(el, opts); end
  def convert_blank(*_arg0); end
  def convert_blockquote(el, opts); end
  def convert_br(_el, opts); end
  def convert_codeblock(el, opts); end
  def convert_codespan(el, opts); end
  def convert_comment(el, opts); end
  def convert_dd(el, opts); end
  def convert_dl(el, opts); end
  def convert_dt(el, opts); end
  def convert_em(el, opts); end
  def convert_entity(el, opts); end
  def convert_footnote(*_arg0); end
  def convert_header(el, opts); end
  def convert_hr(*_arg0); end
  def convert_html_element(*_arg0); end
  def convert_img(_el, _opts); end
  def convert_li(el, opts); end
  def convert_math(el, opts); end
  def convert_ol(el, opts); end
  def convert_p(el, opts); end
  def convert_raw(*_arg0); end
  def convert_root(el, opts); end
  def convert_smart_quote(el, opts); end
  def convert_strong(el, opts); end
  def convert_table(el, opts); end
  def convert_tbody(el, opts); end
  def convert_td(el, opts); end
  def convert_text(el, opts); end
  def convert_tfoot(el, opts); end
  def convert_thead(el, opts); end
  def convert_tr(el, opts); end
  def convert_typographic_sym(el, opts); end
  def convert_ul(el, opts); end
  def convert_xml_comment(el, opts); end
  def convert_xml_pi(*_arg0); end
  def escape(text, preserve_whitespace = T.unsafe(nil)); end
  def inner(el, opts, use = T.unsafe(nil)); end
  def macro(name, *args); end
  def newline(text); end
  def quote(text); end
  def unicode_char(codepoint); end
end

Kramdown::Converter::Man::TABLE_CELL_ALIGNMENT = T.let(T.unsafe(nil), Hash)
Kramdown::Converter::Man::TYPOGRAPHIC_SYMS_MAP = T.let(T.unsafe(nil), Hash)

class Kramdown::Converter::RemoveHtmlTags < ::Kramdown::Converter::Base
  def initialize(root, options); end

  def convert(el); end
end

class Kramdown::Converter::Toc < ::Kramdown::Converter::Base
  def initialize(root, options); end

  def convert(el); end

  private

  def add_to_toc(el, id); end
end

class Kramdown::Document
  def initialize(source, options = T.unsafe(nil)); end

  def inspect; end
  def method_missing(id, *attr, &block); end
  def options; end
  def root; end
  def root=(_arg0); end
  def warnings; end

  protected

  def try_require(type, name); end
end

class Kramdown::Element
  def initialize(type, value = T.unsafe(nil), attr = T.unsafe(nil), options = T.unsafe(nil)); end

  def attr; end
  def block?; end
  def children; end
  def children=(_arg0); end
  def inspect; end
  def options; end
  def span?; end
  def type; end
  def type=(_arg0); end
  def value; end
  def value=(_arg0); end

  class << self
    def category(el); end
  end
end

Kramdown::Element::CATEGORY = T.let(T.unsafe(nil), Hash)
class Kramdown::Error < ::RuntimeError; end

module Kramdown::Options
  class << self
    def defaults; end
    def define(name, type, default, desc, &block); end
    def defined?(name); end
    def definitions; end
    def merge(hash); end
    def parse(name, data); end
    def simple_array_validator(val, name, size = T.unsafe(nil)); end
    def simple_hash_validator(val, name); end
    def str_to_sym(data); end
  end
end

Kramdown::Options::ALLOWED_TYPES = T.let(T.unsafe(nil), Array)

class Kramdown::Options::Boolean
  class << self
    def ===(other); end
  end
end

class Kramdown::Options::Definition < ::Struct
  def default; end
  def default=(_); end
  def desc; end
  def desc=(_); end
  def name; end
  def name=(_); end
  def type; end
  def type=(_); end
  def validator; end
  def validator=(_); end

  class << self
    def [](*_arg0); end
    def inspect; end
    def keyword_init?; end
    def members; end
    def new(*_arg0); end
  end
end

Kramdown::Options::SMART_QUOTES_ENTITIES = T.let(T.unsafe(nil), Array)
Kramdown::Options::SMART_QUOTES_STR = T.let(T.unsafe(nil), String)
Kramdown::Options::TOC_LEVELS_ARRAY = T.let(T.unsafe(nil), Array)
Kramdown::Options::TOC_LEVELS_RANGE = T.let(T.unsafe(nil), Range)
module Kramdown::Parser; end

class Kramdown::Parser::Base
  def initialize(source, options); end

  def adapt_source(source); end
  def add_text(text, tree = T.unsafe(nil), type = T.unsafe(nil)); end
  def extract_string(range, strscan); end
  def options; end
  def parse; end
  def root; end
  def source; end
  def warning(text); end
  def warnings; end

  class << self
    def parse(source, options = T.unsafe(nil)); end

    private

    def allocate; end
    def new(*_arg0); end
  end
end

class Kramdown::Parser::Html < ::Kramdown::Parser::Base
  include ::Kramdown::Parser::Html::Constants
  include ::Kramdown::Parser::Html::Parser

  def parse; end
end

module Kramdown::Parser::Html::Constants; end
Kramdown::Parser::Html::Constants::HTML_ATTRIBUTE_RE = T.let(T.unsafe(nil), Regexp)
Kramdown::Parser::Html::Constants::HTML_BLOCK_ELEMENTS = T.let(T.unsafe(nil), Array)
Kramdown::Parser::Html::Constants::HTML_CDATA_RE = T.let(T.unsafe(nil), Regexp)
Kramdown::Parser::Html::Constants::HTML_COMMENT_RE = T.let(T.unsafe(nil), Regexp)
Kramdown::Parser::Html::Constants::HTML_CONTENT_MODEL = T.let(T.unsafe(nil), Hash)
Kramdown::Parser::Html::Constants::HTML_CONTENT_MODEL_BLOCK = T.let(T.unsafe(nil), Array)
Kramdown::Parser::Html::Constants::HTML_CONTENT_MODEL_RAW = T.let(T.unsafe(nil), Array)
Kramdown::Parser::Html::Constants::HTML_CONTENT_MODEL_SPAN = T.let(T.unsafe(nil), Array)
Kramdown::Parser::Html::Constants::HTML_DOCTYPE_RE = T.let(T.unsafe(nil), Regexp)
Kramdown::Parser::Html::Constants::HTML_ELEMENT = T.let(T.unsafe(nil), Hash)
Kramdown::Parser::Html::Constants::HTML_ELEMENTS_WITHOUT_BODY = T.let(T.unsafe(nil), Array)
Kramdown::Parser::Html::Constants::HTML_ENTITY_RE = T.let(T.unsafe(nil), Regexp)
Kramdown::Parser::Html::Constants::HTML_INSTRUCTION_RE = T.let(T.unsafe(nil), Regexp)
Kramdown::Parser::Html::Constants::HTML_SPAN_ELEMENTS = T.let(T.unsafe(nil), Array)
Kramdown::Parser::Html::Constants::HTML_TAG_CLOSE_RE = T.let(T.unsafe(nil), Regexp)
Kramdown::Parser::Html::Constants::HTML_TAG_RE = T.let(T.unsafe(nil), Regexp)

class Kramdown::Parser::Html::ElementConverter
  include ::Kramdown::Parser::Html::Constants
  include ::Kramdown::Utils::Entities

  def initialize(root); end

  def convert_a(el); end
  def convert_b(el); end
  def convert_code(el); end
  def convert_em(el); end
  def convert_h1(el); end
  def convert_h2(el); end
  def convert_h3(el); end
  def convert_h4(el); end
  def convert_h5(el); end
  def convert_h6(el); end
  def convert_i(el); end
  def convert_pre(el); end
  def convert_script(el); end
  def convert_strong(el); end
  def convert_table(el); end
  def convert_textarea(el); end
  def extract_text(el, raw); end
  def handle_math_tag(el); end
  def is_math_tag?(el); end
  def is_simple_table?(el); end
  def process(el, do_conversion = T.unsafe(nil), preserve_text = T.unsafe(nil), parent = T.unsafe(nil)); end
  def process_children(el, do_conversion = T.unsafe(nil), preserve_text = T.unsafe(nil)); end
  def process_html_element(el, do_conversion = T.unsafe(nil), preserve_text = T.unsafe(nil)); end
  def process_text(raw, preserve = T.unsafe(nil)); end
  def remove_text_children(el); end
  def remove_whitespace_children(el); end
  def set_basics(el, type, opts = T.unsafe(nil)); end
  def strip_whitespace(el); end
  def wrap_text_children(el); end

  class << self
    def convert(root, el = T.unsafe(nil)); end
  end
end

Kramdown::Parser::Html::ElementConverter::EMPHASIS_TYPE_MAP = T.let(T.unsafe(nil), Hash)
Kramdown::Parser::Html::ElementConverter::REMOVE_TEXT_CHILDREN = T.let(T.unsafe(nil), Array)
Kramdown::Parser::Html::ElementConverter::REMOVE_WHITESPACE_CHILDREN = T.let(T.unsafe(nil), Array)
Kramdown::Parser::Html::ElementConverter::SIMPLE_ELEMENTS = T.let(T.unsafe(nil), Array)
Kramdown::Parser::Html::ElementConverter::STRIP_WHITESPACE = T.let(T.unsafe(nil), Array)
Kramdown::Parser::Html::ElementConverter::WRAP_TEXT_CHILDREN = T.let(T.unsafe(nil), Array)

module Kramdown::Parser::Html::Parser
  include ::Kramdown::Parser::Html::Constants

  def handle_html_start_tag(line = T.unsafe(nil)); end
  def handle_raw_html_tag(name); end
  def parse_html_attributes(str, line = T.unsafe(nil), in_html_tag = T.unsafe(nil)); end
  def parse_raw_html(el, &block); end
end

Kramdown::Parser::Html::Parser::HTML_RAW_START = T.let(T.unsafe(nil), Regexp)

class Kramdown::Parser::Kramdown < ::Kramdown::Parser::Base
  include ::Kramdown
  include ::Kramdown::Parser::Html::Constants
  include ::Kramdown::Parser::Html::Parser
  include ::Kramdown::Utils::Html

  def initialize(source, options); end

  def add_link(el, href, title, alt_text = T.unsafe(nil), ial = T.unsafe(nil)); end
  def after_block_boundary?; end
  def before_block_boundary?; end
  def correct_abbreviations_attributes; end
  def handle_extension(name, opts, body, type, line_no = T.unsafe(nil)); end
  def handle_kramdown_html_tag(el, closed, handle_body); end
  def normalize_link_id(id); end
  def paragraph_end; end
  def parse; end
  def parse_abbrev_definition; end
  def parse_attribute_list(str, opts); end
  def parse_atx_header; end
  def parse_autolink; end
  def parse_blank_line; end
  def parse_block_extensions; end
  def parse_block_html; end
  def parse_block_math; end
  def parse_blockquote; end
  def parse_codeblock; end
  def parse_codeblock_fenced; end
  def parse_codespan; end
  def parse_definition_list; end
  def parse_emphasis; end
  def parse_eob_marker; end
  def parse_escaped_chars; end
  def parse_extension_start_tag(type); end
  def parse_first_list_line(indentation, content); end
  def parse_footnote_definition; end
  def parse_footnote_marker; end
  def parse_horizontal_rule; end
  def parse_html_entity; end
  def parse_inline_math; end
  def parse_line_break; end
  def parse_link; end
  def parse_link_definition; end
  def parse_list; end
  def parse_paragraph; end
  def parse_setext_header; end
  def parse_smart_quotes; end
  def parse_span_extensions; end
  def parse_span_html; end
  def parse_table; end
  def parse_typographic_syms; end
  def replace_abbreviations(el, regexps = T.unsafe(nil)); end
  def update_ial_with_ial(ial, opts); end

  protected

  def add_header(level, text, id); end
  def configure_parser; end
  def new_block_el(*args); end
  def parse_blocks(el, text = T.unsafe(nil)); end
  def parse_header_contents; end
  def parse_spans(el, stop_re = T.unsafe(nil), parsers = T.unsafe(nil), text_type = T.unsafe(nil)); end
  def reset_env(opts = T.unsafe(nil)); end
  def restore_env(env); end
  def save_env; end
  def span_parser_regexps(parsers = T.unsafe(nil)); end
  def update_attr_with_ial(attr, ial); end
  def update_link_definitions(link_defs); end
  def update_raw_text(item); end
  def update_tree(element); end

  private

  def fetch_pattern(type, indentation); end
  def span_pattern_cache(stop_re, span_start); end

  class << self
    def define_parser(name, start_re, span_start = T.unsafe(nil), meth_name = T.unsafe(nil)); end
    def has_parser?(name); end
    def parser(name = T.unsafe(nil)); end
  end
end

Kramdown::Parser::Kramdown::ABBREV_DEFINITION_START = T.let(T.unsafe(nil), Regexp)
Kramdown::Parser::Kramdown::ACHARS = T.let(T.unsafe(nil), String)
Kramdown::Parser::Kramdown::ALD_ANY_CHARS = T.let(T.unsafe(nil), Regexp)
Kramdown::Parser::Kramdown::ALD_CLASS_NAME = T.let(T.unsafe(nil), Regexp)
Kramdown::Parser::Kramdown::ALD_ID_CHARS = T.let(T.unsafe(nil), Regexp)
Kramdown::Parser::Kramdown::ALD_ID_NAME = T.let(T.unsafe(nil), Regexp)
Kramdown::Parser::Kramdown::ALD_START = T.let(T.unsafe(nil), Regexp)
Kramdown::Parser::Kramdown::ALD_TYPE_ANY = T.let(T.unsafe(nil), Regexp)
Kramdown::Parser::Kramdown::ALD_TYPE_CLASS_NAME = T.let(T.unsafe(nil), Regexp)
Kramdown::Parser::Kramdown::ALD_TYPE_ID_NAME = T.let(T.unsafe(nil), Regexp)
Kramdown::Parser::Kramdown::ALD_TYPE_ID_OR_CLASS = T.let(T.unsafe(nil), Regexp)
Kramdown::Parser::Kramdown::ALD_TYPE_ID_OR_CLASS_MULTI = T.let(T.unsafe(nil), Regexp)
Kramdown::Parser::Kramdown::ALD_TYPE_KEY_VALUE_PAIR = T.let(T.unsafe(nil), Regexp)
Kramdown::Parser::Kramdown::ALD_TYPE_REF = T.let(T.unsafe(nil), Regexp)
Kramdown::Parser::Kramdown::ATX_HEADER_START = T.let(T.unsafe(nil), Regexp)
Kramdown::Parser::Kramdown::AUTOLINK_START = T.let(T.unsafe(nil), Regexp)
Kramdown::Parser::Kramdown::AUTOLINK_START_STR = T.let(T.unsafe(nil), String)
Kramdown::Parser::Kramdown::BLANK_LINE = T.let(T.unsafe(nil), Regexp)
Kramdown::Parser::Kramdown::BLOCKQUOTE_START = T.let(T.unsafe(nil), Regexp)
Kramdown::Parser::Kramdown::BLOCK_BOUNDARY = T.let(T.unsafe(nil), Regexp)
Kramdown::Parser::Kramdown::BLOCK_EXTENSIONS_START = T.let(T.unsafe(nil), Regexp)
Kramdown::Parser::Kramdown::BLOCK_MATH_START = T.let(T.unsafe(nil), Regexp)
Kramdown::Parser::Kramdown::CODEBLOCK_MATCH = T.let(T.unsafe(nil), Regexp)
Kramdown::Parser::Kramdown::CODEBLOCK_START = T.let(T.unsafe(nil), Regexp)
Kramdown::Parser::Kramdown::CODESPAN_DELIMITER = T.let(T.unsafe(nil), Regexp)
Kramdown::Parser::Kramdown::DEFINITION_LIST_START = T.let(T.unsafe(nil), Regexp)

class Kramdown::Parser::Kramdown::Data < ::Struct
  def method; end
  def method=(_); end
  def name; end
  def name=(_); end
  def span_start; end
  def span_start=(_); end
  def start_re; end
  def start_re=(_); end

  class << self
    def [](*_arg0); end
    def inspect; end
    def keyword_init?; end
    def members; end
    def new(*_arg0); end
  end
end

Kramdown::Parser::Kramdown::EMPHASIS_START = T.let(T.unsafe(nil), Regexp)
Kramdown::Parser::Kramdown::EOB_MARKER = T.let(T.unsafe(nil), Regexp)
Kramdown::Parser::Kramdown::ESCAPED_CHARS = T.let(T.unsafe(nil), Regexp)
Kramdown::Parser::Kramdown::EXT_BLOCK_START = T.let(T.unsafe(nil), Regexp)
Kramdown::Parser::Kramdown::EXT_BLOCK_STOP_STR = T.let(T.unsafe(nil), String)
Kramdown::Parser::Kramdown::EXT_SPAN_START = T.let(T.unsafe(nil), Regexp)
Kramdown::Parser::Kramdown::EXT_START_STR = T.let(T.unsafe(nil), String)
Kramdown::Parser::Kramdown::EXT_STOP_STR = T.let(T.unsafe(nil), String)
Kramdown::Parser::Kramdown::FENCED_CODEBLOCK_MATCH = T.let(T.unsafe(nil), Regexp)
Kramdown::Parser::Kramdown::FENCED_CODEBLOCK_START = T.let(T.unsafe(nil), Regexp)
Kramdown::Parser::Kramdown::FOOTNOTE_DEFINITION_START = T.let(T.unsafe(nil), Regexp)
Kramdown::Parser::Kramdown::FOOTNOTE_MARKER_START = T.let(T.unsafe(nil), Regexp)
Kramdown::Parser::Kramdown::HEADER_ID = T.let(T.unsafe(nil), Regexp)
Kramdown::Parser::Kramdown::HR_START = T.let(T.unsafe(nil), Regexp)
Kramdown::Parser::Kramdown::HTML_BLOCK_START = T.let(T.unsafe(nil), Regexp)
Kramdown::Parser::Kramdown::HTML_MARKDOWN_ATTR_MAP = T.let(T.unsafe(nil), Hash)
Kramdown::Parser::Kramdown::HTML_SPAN_START = T.let(T.unsafe(nil), Regexp)
Kramdown::Parser::Kramdown::IAL_BLOCK = T.let(T.unsafe(nil), Regexp)
Kramdown::Parser::Kramdown::IAL_BLOCK_START = T.let(T.unsafe(nil), Regexp)
Kramdown::Parser::Kramdown::IAL_CLASS_ATTR = T.let(T.unsafe(nil), String)
Kramdown::Parser::Kramdown::IAL_SPAN_START = T.let(T.unsafe(nil), Regexp)
Kramdown::Parser::Kramdown::INDENT = T.let(T.unsafe(nil), Regexp)
Kramdown::Parser::Kramdown::INLINE_MATH_START = T.let(T.unsafe(nil), Regexp)
Kramdown::Parser::Kramdown::LAZY_END = T.let(T.unsafe(nil), Regexp)
Kramdown::Parser::Kramdown::LAZY_END_HTML_SPAN_ELEMENTS = T.let(T.unsafe(nil), Array)
Kramdown::Parser::Kramdown::LAZY_END_HTML_START = T.let(T.unsafe(nil), Regexp)
Kramdown::Parser::Kramdown::LAZY_END_HTML_STOP = T.let(T.unsafe(nil), Regexp)
Kramdown::Parser::Kramdown::LINE_BREAK = T.let(T.unsafe(nil), Regexp)
Kramdown::Parser::Kramdown::LINK_BRACKET_STOP_RE = T.let(T.unsafe(nil), Regexp)
Kramdown::Parser::Kramdown::LINK_DEFINITION_START = T.let(T.unsafe(nil), Regexp)
Kramdown::Parser::Kramdown::LINK_INLINE_ID_RE = T.let(T.unsafe(nil), Regexp)
Kramdown::Parser::Kramdown::LINK_INLINE_TITLE_RE = T.let(T.unsafe(nil), Regexp)
Kramdown::Parser::Kramdown::LINK_PAREN_STOP_RE = T.let(T.unsafe(nil), Regexp)
Kramdown::Parser::Kramdown::LINK_START = T.let(T.unsafe(nil), Regexp)
Kramdown::Parser::Kramdown::LIST_ITEM_IAL = T.let(T.unsafe(nil), Regexp)
Kramdown::Parser::Kramdown::LIST_ITEM_IAL_CHECK = T.let(T.unsafe(nil), Regexp)
Kramdown::Parser::Kramdown::LIST_START = T.let(T.unsafe(nil), Regexp)
Kramdown::Parser::Kramdown::LIST_START_OL = T.let(T.unsafe(nil), Regexp)
Kramdown::Parser::Kramdown::LIST_START_UL = T.let(T.unsafe(nil), Regexp)
Kramdown::Parser::Kramdown::OPT_SPACE = T.let(T.unsafe(nil), Regexp)
Kramdown::Parser::Kramdown::PARAGRAPH_END = T.let(T.unsafe(nil), Regexp)
Kramdown::Parser::Kramdown::PARAGRAPH_MATCH = T.let(T.unsafe(nil), Regexp)
Kramdown::Parser::Kramdown::PARAGRAPH_START = T.let(T.unsafe(nil), Regexp)
Kramdown::Parser::Kramdown::PARSE_FIRST_LIST_LINE_REGEXP_CACHE = T.let(T.unsafe(nil), Hash)
Kramdown::Parser::Kramdown::PATTERN_TAIL = T.let(T.unsafe(nil), Regexp)
Kramdown::Parser::Kramdown::SETEXT_HEADER_START = T.let(T.unsafe(nil), Regexp)
Kramdown::Parser::Kramdown::SMART_QUOTES_RE = T.let(T.unsafe(nil), Regexp)
Kramdown::Parser::Kramdown::SPAN_EXTENSIONS_START = T.let(T.unsafe(nil), Regexp)
Kramdown::Parser::Kramdown::SQ_CLOSE = T.let(T.unsafe(nil), String)
Kramdown::Parser::Kramdown::SQ_PUNCT = T.let(T.unsafe(nil), String)
Kramdown::Parser::Kramdown::SQ_RULES = T.let(T.unsafe(nil), Array)
Kramdown::Parser::Kramdown::SQ_SUBSTS = T.let(T.unsafe(nil), Hash)
Kramdown::Parser::Kramdown::TABLE_FSEP_LINE = T.let(T.unsafe(nil), Regexp)
Kramdown::Parser::Kramdown::TABLE_HSEP_ALIGN = T.let(T.unsafe(nil), Regexp)
Kramdown::Parser::Kramdown::TABLE_LINE = T.let(T.unsafe(nil), Regexp)
Kramdown::Parser::Kramdown::TABLE_PIPE_CHECK = T.let(T.unsafe(nil), Regexp)
Kramdown::Parser::Kramdown::TABLE_ROW_LINE = T.let(T.unsafe(nil), Regexp)
Kramdown::Parser::Kramdown::TABLE_SEP_LINE = T.let(T.unsafe(nil), Regexp)
Kramdown::Parser::Kramdown::TABLE_START = T.let(T.unsafe(nil), Regexp)
Kramdown::Parser::Kramdown::TRAILING_WHITESPACE = T.let(T.unsafe(nil), Regexp)
Kramdown::Parser::Kramdown::TYPOGRAPHIC_SYMS = T.let(T.unsafe(nil), Array)
Kramdown::Parser::Kramdown::TYPOGRAPHIC_SYMS_RE = T.let(T.unsafe(nil), Regexp)
Kramdown::Parser::Kramdown::TYPOGRAPHIC_SYMS_SUBST = T.let(T.unsafe(nil), Hash)

class Kramdown::Parser::Markdown < ::Kramdown::Parser::Kramdown
  def initialize(source, options); end
end

Kramdown::Parser::Markdown::BLOCK_BOUNDARY = T.let(T.unsafe(nil), Regexp)
Kramdown::Parser::Markdown::CODEBLOCK_MATCH = T.let(T.unsafe(nil), Regexp)
Kramdown::Parser::Markdown::EXTENDED = T.let(T.unsafe(nil), Array)
Kramdown::Parser::Markdown::IAL_RAND_CHARS = T.let(T.unsafe(nil), Array)
Kramdown::Parser::Markdown::IAL_RAND_STRING = T.let(T.unsafe(nil), String)
Kramdown::Parser::Markdown::IAL_SPAN_START = T.let(T.unsafe(nil), Regexp)
Kramdown::Parser::Markdown::LAZY_END = T.let(T.unsafe(nil), Regexp)
Kramdown::Parser::Markdown::LIST_ITEM_IAL = T.let(T.unsafe(nil), Regexp)
Kramdown::Parser::Markdown::PARAGRAPH_END = T.let(T.unsafe(nil), Regexp)

module Kramdown::Utils
  class << self
    def camelize(name); end
    def deep_const_get(str); end
    def snake_case(name); end
  end
end

module Kramdown::Utils::Configurable
  def configurable(name); end
end

module Kramdown::Utils::Entities
  private

  def entity(point_or_name); end

  class << self
    def entity(point_or_name); end
  end
end

Kramdown::Utils::Entities::ENTITY_MAP = T.let(T.unsafe(nil), Hash)
Kramdown::Utils::Entities::ENTITY_TABLE = T.let(T.unsafe(nil), Array)

class Kramdown::Utils::Entities::Entity < ::Struct
  def char; end
  def code_point; end
  def code_point=(_); end
  def name; end
  def name=(_); end

  class << self
    def [](*_arg0); end
    def inspect; end
    def keyword_init?; end
    def members; end
    def new(*_arg0); end
  end
end

module Kramdown::Utils::Html
  def entity_to_str(e, original = T.unsafe(nil)); end
  def escape_html(str, type = T.unsafe(nil)); end
  def fix_cjk_line_break(str); end
  def html_attributes(attr); end
end

Kramdown::Utils::Html::ESCAPE_ALL_RE = T.let(T.unsafe(nil), Regexp)
Kramdown::Utils::Html::ESCAPE_ATTRIBUTE_RE = T.let(T.unsafe(nil), Regexp)
Kramdown::Utils::Html::ESCAPE_MAP = T.let(T.unsafe(nil), Hash)
Kramdown::Utils::Html::ESCAPE_RE_FROM_TYPE = T.let(T.unsafe(nil), Hash)
Kramdown::Utils::Html::ESCAPE_TEXT_RE = T.let(T.unsafe(nil), Regexp)
Kramdown::Utils::Html::REDUNDANT_LINE_BREAK_REGEX = T.let(T.unsafe(nil), Regexp)

class Kramdown::Utils::LRUCache
  def initialize(size); end

  def [](key); end
  def []=(key, value); end
end

class Kramdown::Utils::StringScanner < ::StringScanner
  def initialize(string, start_line_number = T.unsafe(nil)); end

  def current_line_number; end
  def pos=(pos); end
  def revert_pos(data); end
  def save_pos; end
  def start_line_number; end
end

Kramdown::VERSION = T.let(T.unsafe(nil), String)
