import type { HTMLNodeVisitor } from "./types.js"; export type { HTMLNodeVisitor }; /** * Main converter class that implements the visitor interface to convert HTML to Markdown. * Uses the Chain of Responsibility pattern for handling different node types. */ export declare class MarkdownConverter implements HTMLNodeVisitor { private handler; constructor(); /** * Converts a text node to Markdown, escaping special characters. */ visitText(node: Text): string; /** * Converts an HTML anchor element to Markdown link syntax. */ visitLink(node: HTMLAnchorElement): string; /** * Converts an HTML heading element to Markdown heading syntax. */ visitHeader(node: HTMLElement, level: number): string; /** * Converts an HTML paragraph to Markdown format. */ visitParagraph(node: HTMLElement): string; /** * Applies Markdown formatting (bold, italic, etc.) to text content. */ visitFormatting(node: HTMLElement): string; /** * Converts HTML code elements to Markdown inline code syntax. */ visitCode(node: HTMLElement): string; /** * Handles generic HTML elements by processing their children. */ visitGeneric(node: HTMLElement): string; /** * Converts an HTML div element to Markdown format, adding a single newline. */ visitDiv(node: HTMLElement): string; /** * Converts an HTML br element to a newline in Markdown. */ visitBr(): string; /** * Converts an HTML table row element to Markdown table row format. */ visitTableRow(node: HTMLTableRowElement): string; /** * Converts an HTML table element to Markdown table format. */ visitTable(node: HTMLTableElement): string; /** * Converts img tag to Markdown image format */ visitImage(node: HTMLImageElement): string; /** * Processes a single node using the handler chain. */ processNode(node: Node): string; /** * Creates and links together handlers in a specific order implementing the Chain of Responsibility pattern. * @returns The first handler in the chain */ private setupHandlerChain; /** * Recursively collects and processes text content from a node and its children. */ private collectTextContent; /** * Collects raw text content from code elements. */ private collectCodeContent; /** * Processes all child nodes of a given node. */ private processChildren; /** * Gets the first handler in the chain. */ private getHandler; }