import type { LintResult } from './lint.js'; export declare function loadGuideStyles(): string; export interface BuildGuideArgs { guideDir: string; css: string; mermaidRender?: (source: string) => Promise; /** * Return the rendered HTML instead of writing it. `buildAllGuides` uses this * so a broken CROSS-guide anchor — which cannot be detected until every guide * has been rendered — leaves every `index.html` at its previous content * rather than half-updating the output. * * The guarantee is about `index.html` specifically. Rendering a mermaid block * writes its SVG into `.diagrams/` as a side effect, so a failed build can * still add files there; what it will not do is delete an existing one or * rewrite a page. */ deferWrite?: boolean; } export interface BuildGuideResult { lint: LintResult; /** Heading ids the renderer emitted, for cross-guide anchor checking. */ ids: Set; /** The source that produced them, so the caller need not re-read it. */ markdown: string; /** Rendered page and its destination; present only with `deferWrite`. */ pending?: { outPath: string; html: string; }; } export declare function buildGuide(args: BuildGuideArgs): Promise; /** * Cross-guide anchors that resolve to no heading in their target guide. * * Split out of `buildAllGuides` so it is testable without a guides tree on * disk. Same-page anchors have already thrown inside `buildGuide` by the time * this runs, so in the real pipeline it only ever reports cross-guide targets; * `selfIds` is still supplied so it cannot double-report them. * * `sources` is keyed by `frontmatter.topic`, which `buildGuidesIndex` * guarantees equals the directory name — the same name `..//` links use. */ export declare function crossGuideAnchorErrors(sources: ReadonlyMap, idsByTopic: ReadonlyMap>): string[]; export declare function buildAllGuides(projectRoot?: string): Promise; //# sourceMappingURL=build.d.ts.map