import type { AST } from "./nodes.js";
import type { Options } from "./options.js";
/**
 * Render Markdown to HTML.
 *
 * @param markdown The Markdown string to be converted.
 * @param [options] Options to customize the conversion.
 * @returns The generated HTML string.
 * @example
 * ```ts
 * import assert from "node:assert";
 * import { markdownToHTML } from "@nick/comrak";
 *
 * const html = markdownToHTML("Hello, **Nick**!");
 * assert.strictEqual(html, "<p>Hello, <strong>Nick</strong>!</p>\n");
 * ```
 * @category Conversion
 */
export declare function markdownToHTML(markdown: string, options?: Options): string;
/**
 * Formats an abstract syntax tree (AST), produced by parsing a Markdown
 * document with the {@linkcode parseMarkdown} function, into HTML text.
 *
 * **Note**: This is a low-level function that is primarily intended for
 * advanced use cases where direct manipulation of the AST is required. If you
 * simply want to convert a Markdown document into HTML, you should consider
 * using the single-step {@linkcode markdownToHTML} function instead.
 *
 * @param ast The AST to be formatted.
 * @param [options] Options to customize the formatting.
 * @returns The generated HTML string.
 * @see {@linkcode parseMarkdown} to parse Markdown into an {@linkcode AST}.
 * @example
 * ```ts
 * import { renderHTML, parseMarkdown, type Options } from "@nick/comrak";
 * import assert from "node:assert";
 *
 * const options = {
 *   extension: {
 *     alerts: true,
 *     footnotes: true,
 *   },
 * } satisfies Options;
 *
 * const ast = parseMarkdown("# Hello, world!\n\nHow are you?", options);
 * const html = renderHTML(ast, options);
 * assert.strictEqual(html, "<h1>Hello, world!</h1>\n<p>How are you?</p>\n");
 * ```
 * @category Rendering
 */
export declare function renderHTML(ast: AST, options?: Options): string;
