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<string>;
    /** The type of your object, e.g., "website", "article", "video.movie" */
    type?: Value<string>;
    /** The canonical URL of your object that will be used as its permanent ID in the graph */
    url?: Value<string>;
    /** An image URL which should represent your object within the graph */
    image?: Value<string>;
    /** A one to two sentence description of your object */
    description?: Value<string>;
    /** The name of the overall site */
    siteName?: Value<string>;
    /** The locale these tags are marked up in. Format: language_TERRITORY (default: en_US) */
    locale?: Value<string>;
    /** An array of other locales this page is available in */
    localeAlternate?: Value<string[]>;
    /** A description of what is in the image (not a caption) */
    imageAlt?: Value<string>;
    /** The width of the image in pixels */
    imageWidth?: Value<number>;
    /** The height of the image in pixels */
    imageHeight?: Value<number>;
    /** The MIME type of the image */
    imageType?: Value<string>;
    /** An array of additional image URLs */
    images?: Value<string[]>;
    /** A URL to a video file that complements this object */
    video?: Value<string>;
    /** The MIME type of the video */
    videoType?: Value<string>;
    /** The width of the video in pixels */
    videoWidth?: Value<number>;
    /** The height of the video in pixels */
    videoHeight?: Value<number>;
    /** A URL to a video file that complements this object (secure URL) */
    videoSecureUrl?: Value<string>;
    /** A URL to an audio file to accompany this object */
    audio?: Value<string>;
    /** The MIME type of the audio */
    audioType?: Value<string>;
    /** A URL to an audio file to accompany this object (secure URL) */
    audioSecureUrl?: Value<string>;
    /** When the article was first published (ISO 8601) */
    publishedTime?: Value<string>;
    /** When the article was last changed (ISO 8601) */
    modifiedTime?: Value<string>;
    /** When the article is out of date after (ISO 8601) */
    expirationTime?: Value<string>;
    /** Writers of the article */
    author?: Value<string | string[]>;
    /** A high-level section name */
    section?: Value<string>;
    /** Tag words associated with this article */
    tags?: Value<string[]>;
    /** A person's first name */
    firstName?: Value<string>;
    /** A person's last name */
    lastName?: Value<string>;
    /** A person's username */
    username?: Value<string>;
    /** A person's gender */
    gender?: Value<string>;
    /** The card type: "summary", "summary_large_image", "app", or "player" */
    twitterCard?: Value<string>;
    /** @username of website */
    twitterSite?: Value<string>;
    /** @username of content creator */
    twitterCreator?: Value<string>;
    /** Title for Twitter (falls back to og:title if not provided) */
    twitterTitle?: Value<string>;
    /** Description for Twitter (falls back to og:description if not provided) */
    twitterDescription?: Value<string>;
    /** Image URL for Twitter (falls back to og:image if not provided) */
    twitterImage?: Value<string>;
    /** Alt text for Twitter image */
    twitterImageAlt?: Value<string>;
    /** Canonical URL for SEO */
    canonical?: Value<string>;
    /** Robots meta tag */
    robots?: Value<string>;
    /** Keywords for SEO */
    keywords?: Value<string>;
    /** Author meta tag */
    metaAuthor?: Value<string>;
};
/**
 * OpenGraph component that injects OpenGraph and Twitter Card meta tags into <head> 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;
