// Generated by dts-bundle-generator v9.5.1

import * as i0 from '@angular/core';
import { Provider } from '@angular/core';

/**
 * Manages the {@link TwitterCard.card} metadata
 * @public
 */
export declare const provideTwitterCardCard: () => import("@angular/core").Provider;
/**
 * {@inheritDoc provideTwitterCardCard}
 * @deprecated Use {@link provideTwitterCardCard} instead
 * @public
 */
export declare const TWITTER_CARD_CARD_METADATA_PROVIDER: import("@angular/core").Provider;
/**
 * See {@link TwitterCardType}
 * @public
 */
export declare const TWITTER_CARD_TYPE_SUMMARY = "summary";
/**
 * See {@link TwitterCardType}
 * @public
 */
export declare const TWITTER_CARD_TYPE_SUMMARY_LARGE_IMAGE = "summary_large_image";
/**
 * See {@link TwitterCardType}
 * @public
 */
export declare const TWITTER_CARD_TYPE_APP = "app";
/**
 * See {@link TwitterCardType}
 * @public
 */
export declare const TWITTER_CARD_TYPE_PLAYER = "player";
/**
 * Card types for {@link TwitterCard.card} property
 *
 * @remarks
 *
 * Use one of the referenced constants to avoid typing them yourself :)
 *
 * @public
 */
export type TwitterCardType = typeof TWITTER_CARD_TYPE_SUMMARY | typeof TWITTER_CARD_TYPE_SUMMARY_LARGE_IMAGE | typeof TWITTER_CARD_TYPE_APP | typeof TWITTER_CARD_TYPE_PLAYER;
/**
 * Manages the {@link TwitterCard.creator} metadata
 * @public
 */
export declare const provideTwitterCardCreator: () => import("@angular/core").Provider;
/**
 * {@inheritDoc provideTwitterCardCreator}
 * @deprecated Use {@link provideTwitterCardCreator} instead
 * @public
 */
export declare const TWITTER_CARD_CREATOR_METADATA_PROVIDER: import("@angular/core").Provider;
/**
 * `@username` or Twitter ID of the content creator.
 *
 * Used in {@link TwitterCard.creator} with type {@link TwitterCardCreator}
 *
 * @remarks
 *
 * Provider:
 *
 * {@link provideTwitterCardCreator}
 *
 * See also:
 *
 * - {@link https://developer.twitter.com/en/docs/twitter-for-websites/cards/overview/markup#:~:text=twitter%3Acreator | Property specs (username) }
 *
 * - {@link https://developer.twitter.com/en/docs/twitter-for-websites/cards/overview/markup#:~:text=twitter%3Acreator%3Aid,-Twitter | Property specs (id) }
 *
 * @example
 *
 * Providing both the `@username` and id. Just one of them is enough though.
 *
 * ```typescript
 * const twitterCardCreator: TwitterCardCreator = {
 *    username: '@example',
 *    id: 16542877,
 * }
 * ```
 *
 * @public
 */
export type TwitterCardCreator = TwitterCardCreatorUsername | TwitterCardCreatorId | (TwitterCardCreatorUsername & TwitterCardCreatorId);
/**
 * See {@link TwitterCardCreator}
 * @public
 */
export interface TwitterCardCreatorUsername {
	/**
	 * `@username` of content creator.
	 *
	 * Used with `summary_large_image` cards.
	 *
	 * In other words, same ones as {@link TwitterCardCreatorId} except for `summary` cards.
	 *
	 * @remarks
	 *
	 * See also:
	 *
	 * - {@link https://developer.twitter.com/en/docs/twitter-for-websites/cards/overview/markup#:~:text=twitter%3Acreator | Property specs}
	 */
	username: string | null;
}
/**
 * See {@link TwitterCardCreator}
 * @public
 */
export interface TwitterCardCreatorId {
	/**
	 * Twitter user ID of content creator.
	 *
	 * Used with `summary`, `summary_large_image` cards.
	 *
	 * In other words, same ones as {@link TwitterCardCreatorUsername} plus `summary` cards.
	 *
	 * @remarks
	 *
	 * See also:
	 *
	 * - {@link https://developer.twitter.com/en/docs/twitter-for-websites/cards/overview/markup#:~:text=twitter%3Acreator%3Aid,-Twitter | Property specs }
	 *
	 * - {@link https://twiteridfinder.com/ | Find your Twitter ID}
	 */
	id: string | null;
}
/**
 * Manages the {@link TwitterCard.description} metadata
 * @public
 */
export declare const provideTwitterCardDescription: () => import("@angular/core").Provider;
/**
 * {@inheritDoc provideTwitterCardDescription}
 * @deprecated Use {@link provideTwitterCardDescription} instead
 * @public
 */
export declare const TWITTER_CARD_DESCRIPTION_METADATA_PROVIDER: import("@angular/core").Provider;
/**
 * Manages the {@link TwitterCard.image} metadata
 * @public
 */
export declare const provideTwitterCardImage: () => import("@angular/core").Provider;
/**
 * {@inheritDoc provideTwitterCardImage}
 * @deprecated Use {@link provideTwitterCardImage} instead
 * @public
 */
export declare const TWITTER_CARD_IMAGE_METADATA_PROVIDER: import("@angular/core").Provider;
/**
 * Image for the card.
 *
 * Equivalent to {@link OpenGraph.image}. This one can be omitted if equivalent is set.
 *
 * Can be set with {@link GlobalMetadata.image}.
 *
 * Used in {@link TwitterCard.image} with type {@link TwitterCardImage}
 *
 * @remarks
 *
 * Provider:
 *
 * {@link provideTwitterCardImage}
 *
 * See also:
 *
 * - {@link https://developer.twitter.com/en/docs/twitter-for-websites/cards/overview/markup#:~:text=og%3Atitle-,twitter%3Aimage,-URL%20of%20image | Property specs}
 * @public
 */
export interface TwitterCardImage {
	/**
	 * URL of image to use in the card. Images must be less than 5MB in size.
	 *
	 * JPG, PNG, WEBP and GIF formats are supported.
	 *
	 * Only the first frame of an animated GIF will be used.
	 *
	 * SVG is not supported.
	 *
	 * Used with `summary`, `summary_large_image`, `player` cards
	 *
	 * @remarks
	 *
	 * See also:
	 *
	 * - {@link https://developer.twitter.com/en/docs/twitter-for-websites/cards/overview/markup#:~:text=og%3Atitle-,twitter%3Aimage,-URL%20of%20image | Property specs}
	 */
	readonly url: string | URL;
	/**
	 * A text description of the image conveying the essential nature of an image
	 * to users who are visually impaired.
	 *
	 * Maximum 420 characters.
	 *
	 * Used with `summary`, `summary_large_image`, `player` cards
	 *
	 * @remarks
	 *
	 * See also:
	 *
	 * - {@link https://developer.twitter.com/en/docs/twitter-for-websites/cards/overview/markup#:~:text=og%3Atitle-,twitter%3Aimage,-URL%20of%20image | Property specs}
	 */
	readonly alt: string;
}
/**
 * Manages the {@link TwitterCard.site} metadata
 * @public
 */
export declare const provideTwitterCardSite: () => import("@angular/core").Provider;
/**
 * {@inheritDoc provideTwitterCardSite}
 * @deprecated Use {@link provideTwitterCardSite} instead
 * @public
 */
export declare const TWITTER_CARD_SITE_METADATA_PROVIDER: import("@angular/core").Provider;
/**
 * `@username` or Twitter ID of the author of the website.
 *
 * Either {@link TwitterCardSiteUsername} or {@link TwitterCardSiteId} is required.
 *
 * Used in {@link TwitterCard.site} with type {@link TwitterCardSite}
 *
 * @remarks
 *
 * Provider:
 *
 * {@link provideTwitterCardSite}
 *
 * See also:
 *
 * - {@link https://developer.twitter.com/en/docs/twitter-for-websites/cards/overview/markup#:~:text=twitter%3Asite, | Property specs (username) }
 *
 * - {@link https://developer.twitter.com/en/docs/twitter-for-websites/cards/overview/markup#:~:text=twitter%3Asite%3Aid,-Same%20as%20twitter | Property specs (id) }
 *
 * @example
 *
 * Providing both the `@username` and id. Just one of them is enough though.
 *
 * ```typescript
 * const twitterCardSite: TwitterCardSite = {
 *    username: '@example',
 *    id: 16542877,
 * }
 * ```
 *
 * @public
 */
export type TwitterCardSite = TwitterCardSiteUsername | TwitterCardSiteId | (TwitterCardSiteUsername & TwitterCardSiteId);
/**
 * See {@link TwitterCardSite}
 * @public
 */
export interface TwitterCardSiteUsername {
	/**
	 * `@username` of website.
	 *
	 * Either {@link TwitterCardSiteUsername} or {@link TwitterCardSiteId} is required.
	 *
	 * Used with `summary`, `summary_large_image`, `app`, `player` cards.
	 *
	 * In other words, same ones as {@link TwitterCardSiteId} plus `app` cards.
	 *
	 * @remarks
	 *
	 * See also:
	 *
	 * - {@link https://developer.twitter.com/en/docs/twitter-for-websites/cards/overview/markup#:~:text=twitter%3Asite, | Property specs }
	 *
	 * @public
	 */
	username: string | null;
}
/**
 * See {@link TwitterCardSite}
 *
 * @public
 */
export interface TwitterCardSiteId {
	/**
	 * Same as {@link TwitterCardSiteUsername}, but the user’s Twitter ID.
	 *
	 * Either {@link TwitterCardSiteUsername} or {@link TwitterCardSiteId} is required.
	 *
	 * Used with `summary`, `summary_large_image`, `player` cards.
	 *
	 * In other words, same ones as {@link TwitterCardSiteUsername} except for `app` cards.
	 *
	 * @remarks
	 *
	 * See also:
	 *
	 * - {@link https://developer.twitter.com/en/docs/twitter-for-websites/cards/overview/markup#:~:text=twitter%3Asite%3Aid,-Same%20as%20twitter | Property specs (id) }
	 *
	 * - {@link https://twiteridfinder.com/ | Find your Twitter ID}
	 *
	 * @public
	 */
	id: string | null;
}
/**
 * Manages the {@link TwitterCard.title} metadata
 * @public
 */
export declare const provideTwitterCardTitle: () => import("@angular/core").Provider;
/**
 * {@inheritDoc provideTwitterCardTitle}
 * @deprecated Use {@link provideTwitterCardTitle} instead
 * @public
 */
export declare const TWITTER_CARD_TITLE_METADATA_PROVIDER: import("@angular/core").Provider;
/**
 * Provides {@link https://ngx-meta.dev/built-in-modules/twitter-cards/ | Twitter Cards module}
 * metadata managers.
 *
 * Check out {@link provideNgxMetaTwitterCard} for the standalone, recommended API.
 *
 * @public
 */
export declare class NgxMetaTwitterCardModule {
	static ɵfac: i0.ɵɵFactoryDeclaration<NgxMetaTwitterCardModule, never>;
	static ɵmod: i0.ɵɵNgModuleDeclaration<NgxMetaTwitterCardModule, never, never, never>;
	static ɵinj: i0.ɵɵInjectorDeclaration<NgxMetaTwitterCardModule>;
}
/**
 * Provides {@link https://ngx-meta.dev/built-in-modules/twitter-cards/ | Twitter Cards module}
 * metadata managers.
 *
 * @remarks
 *
 * This is the standalone, recommended API. Using this API is preferred.
 * However, you may also use {@link NgxMetaTwitterCardModule} as the Angular module-based equivalent API.
 *
 * @public
 */
export declare const provideNgxMetaTwitterCard: () => Provider;
/**
 * {@link https://ngx-meta.dev/built-in-modules/twitter-cards/ | Twitter Cards module}
 * metadata values that can be set.
 *
 * @public
 */
export interface TwitterCard {
	/**
	 * The card type.
	 *
	 * Used with all cards.
	 *
	 * If an {@link OpenGraph."type"}, {@link OpenGraph.title} and {@link OpenGraph.description} exist in the markup but
	 * {@link TwitterCard.card} is absent, then a summary card may be rendered.
	 *
	 * Check out {@link TwitterCardType} type for a list of constants you can use
	 * to specify the card's type.
	 *
	 * @remarks
	 *
	 * Provider:
	 *
	 * {@link provideTwitterCardCard}
	 *
	 * See also:
	 *
	 * - {@link https://developer.twitter.com/en/docs/twitter-for-websites/cards/overview/markup#:~:text=twitter%3Acard, | Property specs}
	 */
	readonly card?: TwitterCardType | null;
	/**
	 * {@inheritDoc TwitterCardSite}
	 */
	readonly site?: TwitterCardSite | null;
	/**
	 * {@inheritDoc TwitterCardCreator}
	 */
	readonly creator?: TwitterCardCreator | null;
	/**
	 * Description of content (maximum 200 characters).
	 *
	 * Used with `summary`, `summary_large_image`, `player` cards.
	 *
	 * Equivalent to {@link OpenGraph.description}. This one can be omitted if equivalent is set.
	 *
	 * Can be set with {@link GlobalMetadata.description}.
	 *
	 * @remarks
	 *
	 * Provider:
	 *
	 * {@link provideTwitterCardDescription}
	 *
	 * See also:
	 *
	 * - {@link https://developer.twitter.com/en/docs/twitter-for-websites/cards/overview/markup#:~:text=n/a-,twitter%3Adescription,-Description%20of%20content | Property specs}
	 */
	readonly description?: string | null;
	/**
	 * Title of content (max 70 characters).
	 *
	 * Used with `summary`, `summary_large_image`, `player` cards.
	 *
	 * Equivalent to {@link OpenGraph.title}. This one can be omitted if equivalent is set.
	 *
	 * Can be set with {@link GlobalMetadata.title}.
	 *
	 * Title will be formatted if {@link https://ngx-meta.dev/guides/title-formatting | title formatting} is set up.
	 *
	 * @remarks
	 *
	 * Provider:
	 *
	 * {@link provideTwitterCardTitle}
	 *
	 * See also:
	 *
	 * - {@link https://developer.twitter.com/en/docs/twitter-for-websites/cards/overview/markup#:~:text=og%3Adescription-,twitter%3Atitle,-Title%20of%20content | Property specs}
	 */
	readonly title?: string | null;
	/**
	 * {@inheritDoc TwitterCardImage}
	 */
	readonly image?: TwitterCardImage | null;
}
/**
 * Utility type to provide specific
 * {@link https://ngx-meta.dev/built-in-modules/twitter-cards/ | Twitter Cards module}
 * metadata
 *
 * @public
 */
export interface TwitterCardMetadata {
	twitterCard: TwitterCard;
}

export {};
