import { WikiValidationWarning } from "../drive/errors.js"; export interface WikiFrontmatter { title: string; updated: string; /** ISO 8601 datetime when the page was first created (e.g. 2026-05-11T14:32:00Z). */ created?: string; tags?: string[]; /** * Alternate names for the project this page is the readme of — the nicknames * a user actually says. Read by resolve_project; ignored elsewhere. * * Deliberately separate from `tags`. Tags express membership as often as * naming (`oio` on a vehicle's readme means "belongs to OIO"), so inferring * aliases from them produced false matches no filter could reliably remove * (GH #446). Absent means no aliases — there is no tag fallback. */ aliases?: string[]; status?: "active" | "archived" | "draft"; summary?: string; /** Access level gate (1–5). Pages are only visible to users at this level or above. */ access_level?: number; /** Audience classification: internal | client-safe | public. */ audience?: string; [key: string]: unknown; } export interface ParsedPage { frontmatter: WikiFrontmatter; content: string; warnings: WikiValidationWarning[]; } /** * Parse markdown content and soft-validate frontmatter. * Returns warnings for missing/invalid fields but never throws. */ export declare function parsePage(raw: string): ParsedPage; /** * Serialize frontmatter + body back to a markdown string. * Stamps today's date into 'updated' only when the caller didn't already * supply one (mirroring buildNewPage's first-creation-only stamping) — * otherwise an explicit frontmatterPatch.updated from update_page was * silently overwritten on every call, reporting success with no warning * that the value was dropped (GH #956). */ export declare function serializePage(fm: WikiFrontmatter, body: string): string; /** * Build a fresh page string from title + body, inserting required frontmatter. */ export declare function buildNewPage(title: string, body: string, tags?: string[], summary?: string): string; //# sourceMappingURL=frontmatter.d.ts.map