/**
 * Open Graph / Twitter card meta for a shared HTML page.
 *
 * `deriveMeta` pulls a title + description out of the document (its `<title>`/`<h1>`
 * and first real paragraph or existing `<meta name=description>`); `injectOgMeta`
 * splices the social tags into `<head>` (idempotent — it strips any tags we
 * previously added before re-inserting). Pure string work so it's unit-testable
 * without a browser or network.
 */
export interface OgFields {
    title: string;
    description: string;
    imageUrl: string;
    pageUrl: string;
    /** Actual pixel dimensions of the served image (defaults to the 1200×630 OG card). */
    imageWidth?: number;
    imageHeight?: number;
}
/** Pull a sensible title + description out of a plan/document's HTML. */
export declare function deriveMeta(html: string, fallbackTitle?: string): {
    title: string;
    description: string;
};
/** Splice OG + Twitter tags into `<head>` (or prepend if there's no head). Idempotent. */
export declare function injectOgMeta(html: string, f: OgFields): string;
