import { a as ContentSeo } from "../types-C4ZXxSAE.mjs"; import "../types-BCOU_CXE.mjs"; import { i as getHreflangAlternatesWithDb, n as HreflangOptions, r as getHreflangAlternates, t as HreflangAlternate } from "../hreflang-BktsQIF_.mjs"; //#region src/seo/index.d.ts /** * Content input for SEO functions. * Accepts both ContentEntry (from query functions) and ContentItem (internal). */ interface SeoContentInput> { /** Content data object */ data: T & { title?: unknown; excerpt?: unknown; seo?: ContentSeo; }; /** SEO metadata (legacy location, prefer data.seo) */ seo?: ContentSeo; } /** Resolved SEO meta tags ready for use in templates */ interface SeoMeta { /** Full tag content (e.g., "Post Title | Site Name") */ title: string; /** Meta description */ description: string | null; /** OG title (same as title by default) */ ogTitle: string; /** OG description */ ogDescription: string | null; /** OG image URL (absolute) */ ogImage: string | null; /** Canonical URL */ canonical: string | null; /** Robots directive (e.g., "noindex, nofollow") or null if default */ robots: string | null; } /** Options for generating SEO meta from a content item */ interface SeoMetaOptions { /** Site title for the suffix (e.g., "My Blog") */ siteTitle?: string; /** Site URL origin for building absolute URLs (e.g., "https://example.com") */ siteUrl?: string; /** Title separator between page title and site title */ titleSeparator?: string; /** Path to this content (e.g., "/posts/my-post") for canonical fallback */ path?: string; /** Default OG image URL if content has none */ defaultOgImage?: string; /** * Default page title used when the SEO panel has none. Ranks above the * `data.title` fallback, so computed titles (e.g. `` `${title} (cover of * ${artist})` ``) apply while an editor-set SEO title still wins. */ defaultTitle?: string; /** * Default description used when the SEO panel has none. Ranks above the * `data.excerpt` fallback; an editor-set SEO description still wins. */ defaultDescription?: string; } /** * Generate resolved SEO meta tags from a content item. * * Uses the content item's SEO fields, falling back to content data * (title from `data.title`, description from `data.excerpt`). * * @param content - The content item (from getEmDashEntry, etc.) * @param options - Configuration for title construction, canonical URLs, etc. * @returns Resolved meta tags ready for template use */ declare function getSeoMeta<T>(content: SeoContentInput<T>, options?: SeoMetaOptions): SeoMeta; /** * Extract SEO data from a content item. * * Convenience accessor for the raw SEO fields without template resolution. * * @param content - The content item * @returns The content's SEO fields */ declare function getContentSeo<T>(content: SeoContentInput<T>): ContentSeo | undefined; //#endregion export { type HreflangAlternate, type HreflangOptions, SeoContentInput, SeoMeta, SeoMetaOptions, getContentSeo, getHreflangAlternates, getHreflangAlternatesWithDb, getSeoMeta }; //# sourceMappingURL=index.d.mts.map