/**
 * Path W — markdown-as-source-of-truth shared types.
 *
 * The same `docs/product/<slug>/index.md` files feed two surfaces:
 *
 * 1. The marketing SPA (canonical at `https://neotoma.io/<slug>`, indexed).
 * 2. The bundled install at `/docs/<slug>` (noindex, points back to the
 *    canonical URL via `rel=canonical`).
 *
 * Both surfaces parse the same front-matter shape, so this module is the
 * single source of truth for the types involved.
 */
import { z } from "zod";
/**
 * Categories that match the `Reference` / `Getting started` / etc. sections in
 * `frontend/src/site/site_data.ts::DOC_NAV_CATEGORIES`. Kept narrow on purpose
 * so that drift between the front-matter and the nav config surfaces in CI.
 */
export declare const NAV_CATEGORIES: readonly ["Getting started", "Reference", "Concepts", "Integrations", "Operations", "Comparisons", "Use cases"];
export type NavCategory = (typeof NAV_CATEGORIES)[number];
/**
 * Front-matter schema for `docs/product/<slug>/index.{md,mdx}`. Every field
 * except `interactive` and `canonical_override` is required so the renderer
 * can produce well-formed `<head>` metadata without fallbacks.
 */
export declare const DocFrontmatterSchema: z.ZodObject<{
    title: z.ZodString;
    description: z.ZodString;
    slug: z.ZodString;
    keywords: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
    nav_category: z.ZodEnum<["Getting started", "Reference", "Concepts", "Integrations", "Operations", "Comparisons", "Use cases"]>;
    last_updated: z.ZodString;
    /** True when the page contains MDX-only constructs the install renderer cannot evaluate. */
    interactive: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
    /** Override the canonical URL when the SPA path is not `/${slug}`. */
    canonical_override: z.ZodOptional<z.ZodString>;
    /** Optional per-page noindex flag for the SPA (install always noindex). */
    spa_noindex: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
}, "strip", z.ZodTypeAny, {
    description: string;
    title: string;
    slug: string;
    keywords: string[];
    nav_category: "Getting started" | "Integrations" | "Use cases" | "Reference" | "Concepts" | "Operations" | "Comparisons";
    last_updated: string;
    interactive: boolean;
    spa_noindex: boolean;
    canonical_override?: string | undefined;
}, {
    description: string;
    title: string;
    slug: string;
    nav_category: "Getting started" | "Integrations" | "Use cases" | "Reference" | "Concepts" | "Operations" | "Comparisons";
    last_updated: string;
    keywords?: string[] | undefined;
    interactive?: boolean | undefined;
    canonical_override?: string | undefined;
    spa_noindex?: boolean | undefined;
}>;
export type DocFrontmatter = z.infer<typeof DocFrontmatterSchema>;
export interface DocSource {
    /** Slug derived from the directory name (`docs/product/<slug>/`). */
    slug: string;
    /** File extension - `md` (plain markdown) or `mdx` (MDX with components). */
    extension: "md" | "mdx";
    /** Raw markdown body, after the front-matter block has been stripped. */
    body: string;
    /** Validated front-matter. */
    frontmatter: DocFrontmatter;
    /** Path to the source file relative to the repo root, for diagnostics. */
    sourcePath: string;
}
//# sourceMappingURL=types.d.ts.map