import type { Run } from "../..";
export type CollectConfig = {
    hashIncludes: boolean;
    mergeIncludes: boolean;
    mergeAutotitles: boolean;
    mergeSvg: boolean;
    disableMetaMaxLineWidth: boolean;
    mergeIncludesSourceMaps: boolean;
};
/**
 * Preset that fully inlines a page into self-contained markdown, independent of
 * the active output format. Used by features that need resolved markdown even
 * during an `html` build (e.g. `Llms`). Includes and autotitles are merged;
 * svg inlining and content hashing are left off (svg xml / hashed links would
 * just be noise for a plain markdown corpus), and include source-map comments
 * are omitted.
 */
export declare const SELF_CONTAINED: CollectConfig;
/**
 * Single source of truth for "how a page becomes self-contained markdown".
 *
 * Recursively walks the entry's dependency graph and merges includes /
 * autotitles / inline svg via the shared step plugins. For the `OutputMd` case
 * (when `mergeIncludes` is off) it also copies non-merged include files to the
 * output, with metadata frontmatter — that branch is unreachable when merging.
 *
 * `OutputMd` drives it with the user's preprocess config; other features reuse
 * it with {@link SELF_CONTAINED} to obtain fully-merged markdown regardless of
 * the build's output format. Extracted verbatim from `OutputMd`'s dump closure
 * so the two never drift.
 *
 * Memoization (`processed`/`titles`/`svgList`) is per-instance, so callers
 * create one collector per logical batch (`OutputMd`: per entry vfile). The
 * `copiedIncludes` set is shared run-wide to dedupe include file copies.
 */
export declare class MarkdownCollector {
    private readonly processed;
    private readonly titles;
    private readonly svgList;
    private readonly run;
    private readonly config;
    private readonly copiedIncludes;
    constructor(run: Run, config: Partial<CollectConfig>, copiedIncludes?: Set<string>);
    /**
     * Returns the fully assembled, self-contained markdown for `path`.
     */
    collect(path: NormalizedPath): Promise<string>;
    private dumpDep;
    private dump;
}
