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;
}
