import type { GroveConfig } from "./schema.js"; export type OgTemplate = { kind: "home"; siteName: string; tagline?: string; host: string; metric?: string; accent?: string; } | { kind: "default"; siteName: string; tagline?: string; host: string; accent?: string; } | { kind: "record"; siteName: string; name: string; descriptor?: string; stars?: number; category?: string; host: string; accent?: string; } | { kind: "collection"; siteName: string; title: string; count: number; noun: string; host: string; accent?: string; } | { kind: "taxonomy"; siteName: string; label: string; facet: "category" | "stack" | "license"; count: number; noun: string; host: string; accent?: string; }; /** Render one OG template to a 1200×630 PNG buffer. */ export declare function renderOgPng(t: OgTemplate): Promise; export interface OgBuildInput { records: Array<{ slug: string; name: string; descriptor?: string; stars?: number; category?: string; }>; collections: Array<{ slug: string; title: string; count: number; }>; taxonomies: Array<{ facet: "category" | "stack" | "license"; id: string; label: string; count: number; }>; stats?: { totalRecords?: number; repositoryStars?: number; }; /** Item noun for captions (e.g. "projects"). Defaults to * `config.labels.plural`, falling back to "items". */ noun?: string; } export interface OgBuildResult { written: number; skipped: number; failed: boolean; } /** * Generate every per-page OG PNG under `/og/`. * * Non-fatal by design: any error (most likely the native resvg * binding failing to load on an unusual platform) logs one warning * and returns `{failed: true}` — the site builds with the static * SVG fallback instead. */ export declare function buildOgImages(cwd: string, config: GroveConfig, input: OgBuildInput): Promise; //# sourceMappingURL=og-image.d.ts.map