import { Marked } from 'marked';
import { XMarkdownProps } from '../interface';
type ParserOptions = {
    markedConfig?: XMarkdownProps['config'];
    paragraphTag?: string;
    openLinksInNewTab?: boolean;
    components?: XMarkdownProps['components'];
    protectCustomTagNewlines?: boolean;
    escapeRawHtml?: boolean;
};
type ParseOptions = {
    injectTail?: boolean;
};
export declare const other: {
    escapeTestNoEncode: RegExp;
    escapeTest: RegExp;
    notSpaceStart: RegExp;
    endingNewline: RegExp;
    escapeReplace: RegExp;
    escapeReplaceNoEncode: RegExp;
    completeFencedCode: RegExp;
};
export declare function escapeHtml(html: string, encode?: boolean): string;
declare class Parser {
    options: ParserOptions;
    markdownInstance: Marked;
    private injectTail;
    constructor(options?: ParserOptions);
    private configureHtmlEscapeRenderer;
    private configureLinkRenderer;
    private configureParagraphRenderer;
    private configureCodeRenderer;
    private configureTailInjection;
    private protectCustomTags;
    private restorePlaceholders;
    /**
     * Find the last non-empty token in the token tree (reverse search)
     */
    private findLastNonEmptyToken;
    /**
     * Find the last text token in the token tree
     * Returns null if the last non-empty token is not a text type (e.g., HTML/incomplete component)
     */
    private findLastTextToken;
    parse(content: string, parseOptions?: ParseOptions): string;
}
export default Parser;
