/**
 * Render a single doc page from `docs/<slug>.md`.
 *
 * Slugs are URL-safe paths under `docs/`, with no `.md` suffix. E.g.
 *   - `/docs/foundation/core_identity` → `docs/foundation/core_identity.md`
 *   - `/docs/NEOTOMA_MANIFEST` → `docs/NEOTOMA_MANIFEST.md`
 *
 * Slug sanitization rejects `..`, absolute paths, non-`.md` resolved targets,
 * and any character outside `[A-Za-z0-9_\-./]`. The resolved absolute path
 * must stay strictly under `docsRoot` (defense-in-depth against traversal).
 */
import { type DocFrontmatter } from "./doc_frontmatter.js";
import { type VisibilityEnv } from "./visibility.js";
export interface ResolvedDoc {
    slug: string;
    repo_path: string;
    frontmatter: DocFrontmatter;
    html: string;
    body: string;
}
export type DocLookupError = {
    kind: "invalid_slug";
    reason: string;
} | {
    kind: "not_found";
} | {
    kind: "hidden";
};
export interface DocLookupResult {
    ok: true;
    doc: ResolvedDoc;
}
export interface DocLookupFailure {
    ok: false;
    error: DocLookupError;
}
export declare function lookupDoc(slug: string, opts: {
    docsRoot: string;
    env: VisibilityEnv;
    manifestEntries?: Map<string, {
        status?: string;
    }>;
}): DocLookupResult | DocLookupFailure;
//# sourceMappingURL=render.d.ts.map