import { Context } from './Context';
import { PageSources } from '../Page/PageSources';
import type { VariableProcessor } from '../variables/VariableProcessor';
import { MdAttributeRenderer } from './MdAttributeRenderer';
import { MarkdownProcessor } from './MarkdownProcessor';
import type { SiteLinkManager } from './SiteLinkManager';
import type { PluginManager } from '../plugins/PluginManager';
import { PageNavProcessor } from './siteAndPageNavProcessor';
import { FootnoteProcessor } from './FootnoteProcessor';
import { NodeOrText } from '../utils/node';
export type NodeProcessorConfig = {
    baseUrl: string;
    baseUrlMap: Set<string>;
    rootPath: string;
    outputPath: string;
    ignore: string[];
    addressablePagesSource: string[];
    intrasiteLinkValidation: {
        enabled: boolean;
    };
    codeLineNumbers: boolean;
    plantumlCheck: boolean;
    headerIdMap: {
        [id: string]: number;
    };
};
export declare class NodeProcessor {
    private config;
    private pageSources;
    private variableProcessor;
    private pluginManager;
    private siteLinkManager;
    private userScriptsAndStyles;
    frontmatter: Record<string, string>;
    headTop: string[];
    headBottom: string[];
    scriptBottom: string[];
    markdownProcessor: MarkdownProcessor;
    footnoteProcessor: FootnoteProcessor;
    mdAttributeRenderer: MdAttributeRenderer;
    pageNavProcessor: PageNavProcessor;
    processedModals: Record<string, boolean>;
    constructor(config: NodeProcessorConfig, pageSources: PageSources, variableProcessor: VariableProcessor, pluginManager: PluginManager, siteLinkManager: SiteLinkManager, userScriptsAndStyles: string[], docId?: string);
    static _trimNodes(nodeOrText: NodeOrText): void;
    static _isText(node: NodeOrText): boolean;
    private _processFrontmatter;
    private static collectLayoutEl;
    /**
     * Removes the node if modal id already exists, processes node otherwise
     */
    private processModal;
    processNode(nodeOrText: NodeOrText, context: Context): Context;
    postProcessNode(nodeOrText: NodeOrText): void;
    private traverse;
    process(file: string, content: string, cwf?: string, extraVariables?: Record<string, string>): Promise<unknown>;
}
//# sourceMappingURL=NodeProcessor.d.ts.map