import { Renderable, Value } from '@tempots/dom'; /** * OpenGraph meta tag options for social media sharing and SEO. * All properties are optional and support reactive Values. */ export type OpenGraphOptions = { /** The title of your object as it should appear within the graph */ title?: Value; /** The type of your object, e.g., "website", "article", "video.movie" */ type?: Value; /** The canonical URL of your object that will be used as its permanent ID in the graph */ url?: Value; /** An image URL which should represent your object within the graph */ image?: Value; /** A one to two sentence description of your object */ description?: Value; /** The name of the overall site */ siteName?: Value; /** The locale these tags are marked up in. Format: language_TERRITORY (default: en_US) */ locale?: Value; /** An array of other locales this page is available in */ localeAlternate?: Value; /** A description of what is in the image (not a caption) */ imageAlt?: Value; /** The width of the image in pixels */ imageWidth?: Value; /** The height of the image in pixels */ imageHeight?: Value; /** The MIME type of the image */ imageType?: Value; /** An array of additional image URLs */ images?: Value; /** A URL to a video file that complements this object */ video?: Value; /** The MIME type of the video */ videoType?: Value; /** The width of the video in pixels */ videoWidth?: Value; /** The height of the video in pixels */ videoHeight?: Value; /** A URL to a video file that complements this object (secure URL) */ videoSecureUrl?: Value; /** A URL to an audio file to accompany this object */ audio?: Value; /** The MIME type of the audio */ audioType?: Value; /** A URL to an audio file to accompany this object (secure URL) */ audioSecureUrl?: Value; /** When the article was first published (ISO 8601) */ publishedTime?: Value; /** When the article was last changed (ISO 8601) */ modifiedTime?: Value; /** When the article is out of date after (ISO 8601) */ expirationTime?: Value; /** Writers of the article */ author?: Value; /** A high-level section name */ section?: Value; /** Tag words associated with this article */ tags?: Value; /** A person's first name */ firstName?: Value; /** A person's last name */ lastName?: Value; /** A person's username */ username?: Value; /** A person's gender */ gender?: Value; /** The card type: "summary", "summary_large_image", "app", or "player" */ twitterCard?: Value; /** @username of website */ twitterSite?: Value; /** @username of content creator */ twitterCreator?: Value; /** Title for Twitter (falls back to og:title if not provided) */ twitterTitle?: Value; /** Description for Twitter (falls back to og:description if not provided) */ twitterDescription?: Value; /** Image URL for Twitter (falls back to og:image if not provided) */ twitterImage?: Value; /** Alt text for Twitter image */ twitterImageAlt?: Value; /** Canonical URL for SEO */ canonical?: Value; /** Robots meta tag */ robots?: Value; /** Keywords for SEO */ keywords?: Value; /** Author meta tag */ metaAuthor?: Value; }; /** * OpenGraph component that injects OpenGraph and Twitter Card meta tags into via Portal. * Supports comprehensive social media metadata for optimal sharing on platforms like Facebook, * Twitter, LinkedIn, and more. * * @example * ```typescript * OpenGraph({ * title: 'My Awesome Page', * description: 'This is a description of my page', * image: 'https://example.com/image.jpg', * url: 'https://example.com/page', * type: 'article', * siteName: 'My Site', * twitterCard: 'summary_large_image', * twitterSite: '@mysite', * }) * ``` */ export declare const OpenGraph: (options: OpenGraphOptions) => Renderable;