-module(commonmark@ast). -compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function, nowarn_nomatch]). -export_type([emphasis_marker/0, inline_node/0, list_item/0, ordered_list_marker/0, unordered_list_marker/0, block_node/0, reference_/0, document/0]). -type emphasis_marker() :: asterisk_emphasis_marker | underscore_emphasis_marker. -type inline_node() :: {code_span, binary()} | {emphasis, list(inline_node()), emphasis_marker()} | {strong_emphasis, list(inline_node()), emphasis_marker()} | {strike_through, list(inline_node())} | {link, list(inline_node()), gleam@option:option(binary()), binary()} | {reference_link, list(inline_node()), binary()} | {image, gleam@option:option(binary()), binary()} | {uri_autolink, binary()} | {email_autolink, binary()} | {html_inline, binary()} | {plain_text, binary()} | hard_line_break | soft_line_break | {named_entity, binary(), list(integer())} | {numeric_character_reference, integer(), boolean()}. -type list_item() :: {list_item, list(block_node())} | {tight_list_item, list(block_node())}. -type ordered_list_marker() :: period_list_marker | bracket_list_marker. -type unordered_list_marker() :: dash_list_marker | plus_list_marker | asterisk_list_marker. -type block_node() :: horizontal_break | {heading, integer(), list(inline_node())} | {code_block, gleam@option:option(binary()), gleam@option:option(binary()), binary()} | {html_block, binary()} | {paragraph, list(inline_node())} | {block_quote, list(block_node())} | {ordered_list, list(list_item()), integer(), ordered_list_marker()} | {unordered_list, list(list_item()), unordered_list_marker()}. -type reference_() :: {reference, binary(), gleam@option:option(binary())}. -type document() :: {document, list(block_node()), gleam@dict:dict(binary(), reference_())}.