import type { HTMLNodeVisitor } from "./converters.js";
/**
* Base handler class implementing the Chain of Responsibility pattern for HTML node processing.
* Each concrete handler decides whether it can process a node or should pass it to the next handler.
*/
export declare abstract class NodeHandler {
protected next: NodeHandler | null;
/**
* Sets up the next handler in the chain
*/
setNext(handler: NodeHandler): NodeHandler;
/**
* Process the given node or delegate to the next handler
*/
abstract handle(node: Node, visitor: HTMLNodeVisitor): string;
/**
* Delegates processing to the next handler in the chain
*/
protected handleNext(node: Node, visitor: HTMLNodeVisitor): string;
}
/**
* Handles text nodes, converting them to markdown text
*/
export declare class TextNodeHandler extends NodeHandler {
handle(node: Node, visitor: HTMLNodeVisitor): string;
}
/**
* Handles anchor elements, converting them to markdown links
*/
export declare class LinkHandler extends NodeHandler {
handle(node: Node, visitor: HTMLNodeVisitor): string;
}
/**
* Handles header elements (h1-h6), converting them to markdown headers
*/
export declare class HeaderHandler extends NodeHandler {
handle(node: Node, visitor: HTMLNodeVisitor): string;
}
/**
* Handles paragraph elements, converting them to markdown paragraphs
*/
export declare class ParagraphHandler extends NodeHandler {
handle(node: Node, visitor: HTMLNodeVisitor): string;
}
/**
* Handles text formatting elements (b, strong, i, em), converting them to markdown formatting
*/
export declare class FormattingHandler extends NodeHandler {
handle(node: Node, visitor: HTMLNodeVisitor): string;
}
/**
* Handles code elements, converting them to markdown code blocks or inline code
*/
export declare class CodeHandler extends NodeHandler {
handle(node: Node, visitor: HTMLNodeVisitor): string;
}
/**
* Fallback handler for any HTML elements not handled by other specific handlers
*/
export declare class GenericHandler extends NodeHandler {
handle(node: Node, visitor: HTMLNodeVisitor): string;
}
/**
* Handles ordered list elements, converting them to markdown ordered lists
*/
export declare class OrderedListHandler extends NodeHandler {
handle(node: Node, visitor: HTMLNodeVisitor): string;
}
/**
* Handles unordered list elements, converting them to markdown unordered lists
*/
export declare class UnorderedListHandler extends NodeHandler {
handle(node: Node, visitor: HTMLNodeVisitor): string;
}
/**
* Handles div elements, converting them to markdown paragraphs
*/
export declare class DivHandler extends NodeHandler {
handle(node: Node, visitor: HTMLNodeVisitor): string;
}
/**
* Handles br elements, converting them to markdown newlines
*/
export declare class BrHandler extends NodeHandler {
handle(node: Node, visitor: HTMLNodeVisitor): string;
}
/**
* Handles table row elements, converting them to markdown table rows
*/
export declare class TableRowHandler extends NodeHandler {
handle(node: Node, visitor: HTMLNodeVisitor): string;
}
/**
* Handles table elements, converting them to markdown tables
*/
export declare class TableHandler extends NodeHandler {
handle(node: Node, visitor: HTMLNodeVisitor): string;
}
/**
* Handles image elements, converting them to markdown images
*/
export declare class ImageHandler extends NodeHandler {
handle(node: Node, visitor: HTMLNodeVisitor): string;
}