import { type GroveConfig } from "./config.js"; export interface SitemapEntry { loc: string; lastmod?: string; changefreq?: "always" | "hourly" | "daily" | "weekly" | "monthly" | "yearly" | "never"; priority?: number; } export interface SitemapInput { siteUrl?: string; generatedAt: string; items: Array<{ slug: string; visibility?: string; lastCommitAt?: string | null; addedAt?: string | null; }>; indexSlug?: string; /** Collections to list under /collections/. Entries with `index: false` * are noindex pages and are excluded. Passing the array (even empty) * also emits the /collections/ index URL. */ collections?: Array<{ slug: string; index?: boolean; lastReviewedAt?: string; }>; /** Taxonomy route ids (matching the scaffold's getStaticPaths params). * Emits /categories/, /stacks/ indexes plus each detail URL. * Licenses have detail pages only (the scaffold has no licenses index). */ taxonomies?: { categories?: string[]; stacks?: string[]; licenses?: string[]; }; /** Additional indexable static routes (site-relative, e.g. "about/"). * Defaults to the scaffold's about + contributors pages. Noindex * routes (submit, 404, empty) must never be listed here. */ staticPaths?: string[]; } export interface SitemapResult { path: string; urlCount: number; } export declare function buildSitemapXml(entries: SitemapEntry[]): string; /** * Build a sitemap from generated records data + Grove config. * Writes to public/sitemap.xml. * * Every loc ends with a trailing slash to match the canonical URLs the * pages emit (`build.format: 'directory'`) — a loc that disagrees with * the page's own canonical makes search engines pick one arbitrarily. */ export declare function buildSitemap(input: SitemapInput, cwd?: string, config?: GroveConfig): Promise; export interface SitemapSection { pages: string[]; records: string[]; collections: string[]; taxonomies: string[]; } export declare function buildSitemapIndex(baseUrl: string, sections: SitemapSection): string; //# sourceMappingURL=sitemap.d.ts.map