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

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

/**
 * Manages the {@link OpenGraph.description} metadata
 * @public
 */
export declare const provideOpenGraphDescription: () => import("@angular/core").Provider;
/**
 * {@inheritDoc provideOpenGraphDescription}
 * @deprecated Use {@link provideOpenGraphDescription} instead
 * @public
 */
export declare const OPEN_GRAPH_DESCRIPTION_METADATA_PROVIDER: import("@angular/core").Provider;
/**
 * Manages the {@link OpenGraph.image} metadata
 * @public
 */
export declare const provideOpenGraphImage: () => import("@angular/core").Provider;
/**
 * {@inheritDoc provideOpenGraphImage}
 * @deprecated Use {@link provideOpenGraphImage} instead
 * @public
 */
export declare const OPEN_GRAPH_IMAGE_METADATA_PROVIDER: import("@angular/core").Provider;
/**
 * See {@link OpenGraph.image}
 * @public
 */
export interface OpenGraphImage {
	/**
	 * An image URL which should represent your object within the graph.
	 *
	 * Can be set with {@link GlobalMetadataImage.url}.
	 *
	 * @remarks
	 *
	 * See also:
	 *
	 * - {@link https://ogp.me/#structured:~:text=og%3Aimage%3Aurl | Property specs}
	 */
	readonly url?: URL | string;
	/**
	 * A description of what is in the image (not a caption). If the page
	 * specifies an `og:image` it should specify `og:image:alt`.
	 *
	 * Can be set with {@link GlobalMetadataImage.alt}.
	 *
	 * @remarks
	 *
	 * See also:
	 *
	 * - {@link https://ogp.me/#structured:~:text=og%3Aimage%3Aalt | Property specs}
	 */
	readonly alt?: string;
	/**
	 * An alternate url to use if the webpage requires HTTPS.
	 *
	 * @remarks
	 *
	 * See also:
	 *
	 * - {@link https://ogp.me/#structured:~:text=og%3Aimage%3Asecure_url | Property specs}
	 */
	readonly secureUrl?: URL | string | null;
	/**
	 * A MIME type for this image.
	 *
	 * @remarks
	 *
	 * See also:
	 *
	 * - {@link https://ogp.me/#structured:~:text=og%3Aimage%3Atype | Property specs}
	 */
	readonly type?: string | null;
	/**
	 * The number of pixels wide.
	 *
	 * @remarks
	 *
	 * See also:
	 *
	 * - {@link https://ogp.me/#structured:~:text=og%3Aimage%3Awidth | Property specs}
	 */
	readonly width?: number | null;
	/**
	 * The number of pixels high.
	 *
	 * @remarks
	 *
	 * See also:
	 *
	 * - {@link https://ogp.me/#structured:~:text=og%3Aimage%3Aheight | Property specs}
	 */
	readonly height?: number | null;
}
/**
 * Manages the {@link OpenGraph.locale} metadata
 * @public
 */
export declare const provideOpenGraphLocale: () => import("@angular/core").Provider;
/**
 * {@inheritDoc provideOpenGraphLocale}
 * @deprecated Use {@link provideOpenGraphLocale} instead
 * @public
 */
export declare const OPEN_GRAPH_LOCALE_METADATA_PROVIDER: import("@angular/core").Provider;
/**
 * Manages the {@link OpenGraph.siteName} metadata
 * @public
 */
export declare const provideOpenGraphSiteName: () => import("@angular/core").Provider;
/**
 * {@inheritDoc provideOpenGraphSiteName}
 * @deprecated Use {@link provideOpenGraphSiteName} instead
 * @public
 */
export declare const OPEN_GRAPH_SITE_NAME_METADATA_PROVIDER: import("@angular/core").Provider;
/**
 * Manages the {@link OpenGraph.title} metadata
 * @public
 */
export declare const provideOpenGraphTitle: () => import("@angular/core").Provider;
/**
 * {@inheritDoc provideOpenGraphTitle}
 * @deprecated Use {@link provideOpenGraphTitle} instead
 * @public
 */
export declare const OPEN_GRAPH_TITLE_METADATA_PROVIDER: import("@angular/core").Provider;
/**
 * Manages the {@link OpenGraph."type"} metadata
 * @public
 */
export declare const provideOpenGraphType: () => import("@angular/core").Provider;
/**
 * {@inheritDoc provideOpenGraphType}
 * @deprecated Use {@link provideOpenGraphType} instead
 * @public
 */
export declare const OPEN_GRAPH_TYPE_METADATA_PROVIDER: import("@angular/core").Provider;
/**
 * See {@link OpenGraphType}
 * @public
 */
export declare const OPEN_GRAPH_TYPE_MUSIC_SONG = "music.song";
/**
 * See {@link OpenGraphType}
 * @public
 */
export declare const OPEN_GRAPH_TYPE_MUSIC_ALBUM = "music.album";
/**
 * See {@link OpenGraphType}
 * @public
 */
export declare const OPEN_GRAPH_TYPE_MUSIC_PLAYLIST = "music.playlist";
/**
 * See {@link OpenGraphType}
 * @public
 */
export declare const OPEN_GRAPH_TYPE_MUSIC_RADIO_STATION = "music.radio_station";
/**
 * See {@link OpenGraphType}
 * @public
 */
export declare const OPEN_GRAPH_TYPE_VIDEO_MOVIE = "video.movie";
/**
 * See {@link OpenGraphType}
 * @public
 */
export declare const OPEN_GRAPH_TYPE_VIDEO_EPISODE = "video.episode";
/**
 * See {@link OpenGraphType}
 * @public
 */
export declare const OPEN_GRAPH_TYPE_VIDEO_TV_SHOW = "video.tv_show";
/**
 * See {@link OpenGraphType}
 * @public
 */
export declare const OPEN_GRAPH_TYPE_VIDEO_OTHER = "video.other";
/**
 * See {@link OpenGraphType}
 * @public
 */
export declare const OPEN_GRAPH_TYPE_ARTICLE = "article";
/**
 * See {@link OpenGraphType}
 * @public
 */
export declare const OPEN_GRAPH_TYPE_BOOK = "book";
/**
 * See {@link OpenGraphType}
 * @public
 */
export declare const OPEN_GRAPH_TYPE_PROFILE = "profile";
/**
 * See {@link OpenGraphType}
 * @public
 */
export declare const OPEN_GRAPH_TYPE_WEBSITE = "website";
/**
 * Types for {@link OpenGraph."type"} property
 *
 * @remarks
 *
 * Use one of the referenced constants to avoid typing them yourself :)
 *
 * @public
 */
export type OpenGraphType = typeof OPEN_GRAPH_TYPE_MUSIC_SONG | typeof OPEN_GRAPH_TYPE_MUSIC_ALBUM | typeof OPEN_GRAPH_TYPE_MUSIC_PLAYLIST | typeof OPEN_GRAPH_TYPE_MUSIC_RADIO_STATION | typeof OPEN_GRAPH_TYPE_VIDEO_MOVIE | typeof OPEN_GRAPH_TYPE_VIDEO_EPISODE | typeof OPEN_GRAPH_TYPE_VIDEO_TV_SHOW | typeof OPEN_GRAPH_TYPE_VIDEO_OTHER | typeof OPEN_GRAPH_TYPE_ARTICLE | typeof OPEN_GRAPH_TYPE_BOOK | typeof OPEN_GRAPH_TYPE_PROFILE | typeof OPEN_GRAPH_TYPE_WEBSITE;
/**
 * Manages the {@link OpenGraph.url} metadata
 * @public
 */
export declare const provideOpenGraphUrl: () => import("@angular/core").Provider;
/**
 * {@inheritDoc provideOpenGraphUrl}
 * @deprecated Use {@link provideOpenGraphUrl} instead
 * @public
 */
export declare const OPEN_GRAPH_URL_METADATA_PROVIDER: import("@angular/core").Provider;
/**
 * Provides {@link https://ngx-meta.dev/built-in-modules/open-graph/ | Open Graph module}
 * basic and optional metadata managers.
 *
 * Check out {@link provideNgxMetaOpenGraph} for the standalone, recommended API.
 *
 * @public
 */
export declare class NgxMetaOpenGraphModule {
	static ɵfac: i0.ɵɵFactoryDeclaration<NgxMetaOpenGraphModule, never>;
	static ɵmod: i0.ɵɵNgModuleDeclaration<NgxMetaOpenGraphModule, never, never, never>;
	static ɵinj: i0.ɵɵInjectorDeclaration<NgxMetaOpenGraphModule>;
}
/**
 * Provides {@link https://ngx-meta.dev/built-in-modules/open-graph/ | Open Graph module}
 * basic and optional metadata managers.
 *
 * @remarks
 *
 * This is the standalone, recommended API. Using this API is preferred.
 * However, you may also use {@link NgxMetaOpenGraphModule} as the Angular module-based equivalent API.
 *
 * @public
 */
export declare const provideNgxMetaOpenGraph: () => Provider;
/**
 * See {@link OpenGraphProfileGender}
 * @public
 */
export declare const OPEN_GRAPH_PROFILE_GENDER_FEMALE = "female";
/**
 * See {@link OpenGraphProfileGender}
 * @public
 */
export declare const OPEN_GRAPH_PROFILE_GENDER_MALE = "male";
/**
 * Genders for {@link OpenGraphProfile.gender} property
 *
 * @remarks
 *
 * Use one of the referenced constants to avoid typing them yourself :)
 *
 * @public
 */
export type OpenGraphProfileGender = typeof OPEN_GRAPH_PROFILE_GENDER_FEMALE | typeof OPEN_GRAPH_PROFILE_GENDER_MALE;
/**
 * Open Graph profile metadata for this page.
 *
 * <b>Requires Open Graph profile metadata managers to work</b>
 *
 * @remarks
 *
 * Used in {@link OpenGraph.profile} with type {@link OpenGraphProfile}
 *
 * Provider:
 *
 * {@link provideNgxMetaOpenGraphProfile} or {@link NgxMetaOpenGraphProfileModule}
 *
 * See also:
 *
 * - {@link https://ogp.me/#type_profile | Open Graph profile specs}
 *
 * @public
 */
export interface OpenGraphProfile {
	/**
	 * A name normally given to an individual by a parent or self-chosen.
	 *
	 * @remarks
	 *
	 * Provider:
	 *
	 * {@link provideOpenGraphProfileFirstName}
	 *
	 * See also:
	 *
	 * - {@link https://ogp.me/#type_profile:~:text=profile%3Afirst_name%20%2D%20string | Property specs}
	 */
	readonly firstName?: string | null;
	/**
	 * A name inherited from a family or marriage and by which the individual is commonly known.
	 *
	 * @remarks
	 *
	 * Provider:
	 *
	 * {@link provideOpenGraphProfileLastName}
	 *
	 * See also:
	 *
	 * - {@link https://ogp.me/#type_profile:~:text=profile%3Alast_name%20%2D%20string | Property specs}
	 */
	readonly lastName?: string | null;
	/**
	 * A short unique string to identify them.
	 *
	 * @remarks
	 *
	 * Provider:
	 *
	 * {@link provideOpenGraphProfileUsername}
	 *
	 * See also:
	 *
	 * - {@link https://ogp.me/#type_profile:~:text=profile%3Ausername%20%2D%20string | Property specs}
	 */
	readonly username?: string | null;
	/**
	 * Their gender.
	 *
	 * Allowing a string here too, so you can specify another gender than the ones
	 * specified by standard (male, female).
	 *
	 * Check out {@link OpenGraphProfileGender} type for constants you can use to
	 * specify standard values for this field.
	 *
	 * @remarks
	 *
	 * Provider:
	 *
	 * {@link provideOpenGraphProfileGender}
	 *
	 * See also:
	 *
	 * - {@link https://ogp.me/#type_profile:~:text=profile%3Agender%20%2D%20enum | Property specs}
	 */
	readonly gender?: OpenGraphProfileGender | string | null;
}
/**
 * Manages the {@link OpenGraphProfile.firstName} metadata
 * @public
 */
export declare const provideOpenGraphProfileFirstName: () => import("@angular/core").Provider;
/**
 * {@inheritDoc provideOpenGraphProfileFirstName}
 * @deprecated Use {@link provideOpenGraphProfileFirstName} instead
 * @public
 */
export declare const OPEN_GRAPH_PROFILE_FIRST_NAME_METADATA_PROVIDER: import("@angular/core").Provider;
/**
 * Manages the {@link OpenGraphProfile.lastName} metadata
 * @public
 */
export declare const provideOpenGraphProfileLastName: () => import("@angular/core").Provider;
/**
 * {@inheritDoc provideOpenGraphProfileLastName}
 * @deprecated Use {@link provideOpenGraphProfileLastName} instead
 * @public
 */
export declare const OPEN_GRAPH_PROFILE_LAST_NAME_METADATA_PROVIDER: import("@angular/core").Provider;
/**
 * Manages the {@link OpenGraphProfile.gender} metadata
 * @public
 */
export declare const provideOpenGraphProfileGender: () => import("@angular/core").Provider;
/**
 * {@inheritDoc provideOpenGraphProfileGender}
 * @deprecated Use {@link provideOpenGraphProfileGender} instead
 * @public
 */
export declare const OPEN_GRAPH_PROFILE_GENDER_METADATA_PROVIDER: import("@angular/core").Provider;
/**
 * Manages the {@link OpenGraphProfile.username} metadata
 * @public
 */
export declare const provideOpenGraphProfileUsername: () => import("@angular/core").Provider;
/**
 * {@inheritDoc provideOpenGraphProfileUsername}
 * @deprecated Use {@link provideOpenGraphProfileUsername} instead
 * @public
 */
export declare const OPEN_GRAPH_PROFILE_USERNAME_METADATA_PROVIDER: import("@angular/core").Provider;
/**
 * Provides {@link https://ngx-meta.dev/built-in-modules/open-graph/ | Open Graph module}
 * profile metadata managers.
 *
 * Check out {@link provideNgxMetaOpenGraphProfile} for the standalone, recommended API.
 *
 * @public
 */
export declare class NgxMetaOpenGraphProfileModule {
	static ɵfac: i0.ɵɵFactoryDeclaration<NgxMetaOpenGraphProfileModule, never>;
	static ɵmod: i0.ɵɵNgModuleDeclaration<NgxMetaOpenGraphProfileModule, never, never, never>;
	static ɵinj: i0.ɵɵInjectorDeclaration<NgxMetaOpenGraphProfileModule>;
}
/**
 * Provides {@link https://ngx-meta.dev/built-in-modules/open-graph/ | Open Graph module}
 * profile metadata managers
 *
 * @remarks
 *
 * This is the standalone, recommended API. Using this API is preferred.
 * However, you may also use {@link NgxMetaOpenGraphProfileModule} as the Angular module-based equivalent API.
 *
 * @public
 */
export declare const provideNgxMetaOpenGraphProfile: () => Provider;
declare const ANGULAR_ROUTER_URL: unique symbol;
type AngularRouterUrl = typeof ANGULAR_ROUTER_URL;
/**
 * {@link https://ngx-meta.dev/built-in-modules/open-graph/ | Open Graph module}
 * metadata values that can be set.
 *
 * @public
 */
export interface OpenGraph {
	/**
	 * Basic metadata.
	 *
	 * The title of your object as it should appear within the graph, e.g.,
	 * "The Rock".
	 *
	 * 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 provideOpenGraphTitle}
	 *
	 * See also:
	 *
	 * - {@link https://ogp.me/#:~:text=og%3Atitle | Property specs}
	 */
	readonly title?: string | null;
	/**
	 * Basic metadata.
	 *
	 * The type of your object, e.g., "`video.movie`". Depending on the type you
	 * specify, other properties may also be required.
	 *
	 * See {@link OpenGraphType} for a list of `const`s you can use to specify
	 * the type, so you don't have to write them yourself.
	 *
	 * @remarks
	 *
	 * Provider:
	 *
	 * {@link provideOpenGraphType}
	 *
	 * See also:
	 *
	 * - {@link https://ogp.me/#:~:text=og%3Atypes | Property specs}
	 *
	 * - {@link https://ogp.me/#types | Available object types in spec}
	 */
	readonly type?: OpenGraphType | null;
	/**
	 * Basic metadata.
	 *
	 * An image which should represent your object within the graph.
	 *
	 * Can be set (partially) with {@link GlobalMetadata.image}.
	 *
	 * @remarks
	 *
	 * Provider:
	 *
	 * {@link provideOpenGraphImage}
	 *
	 * See also:
	 *
	 * - {@link https://ogp.me/#:~:text=og%3Aimage | Property specs}
	 *
	 * - {@link https://ogp.me/#structured:~:text=The%20og%3Aimage | Structured property specs}
	 */
	readonly image?: OpenGraphImage | null;
	/**
	 * Basic metadata.
	 *
	 * The canonical URL of your object that will be used as its permanent ID in
	 * the graph, e.g., "https://www.imdb.com/title/tt0117500/".
	 *
	 * Can be set with {@link GlobalMetadata.canonicalUrl}.
	 *
	 * An absolute URL is needed unless {@link https://ngx-meta.dev/guides/url-resolution/ | URL resolution}
	 * feature is enabled, which allows you to provide a relative URL to be resolved by the library into an
	 * absolute one.
	 *
	 * @remarks
	 *
	 * Provider:
	 *
	 * {@link provideOpenGraphUrl}
	 *
	 * See also:
	 *
	 * - {@link https://ogp.me/#:~:text=og%3Aurl | Property specs}
	 */
	readonly url?: URL | AngularRouterUrl | string | null;
	/**
	 * Optional metadata.
	 *
	 * A one to two sentence description of your object.
	 *
	 * Can be set with {@link GlobalMetadata.description}.
	 *
	 * @remarks
	 *
	 * Provider:
	 *
	 * {@link provideOpenGraphDescription}
	 *
	 * See also:
	 *
	 * - {@link https://ogp.me/#:~:text=og%3Adescription | Property specs}
	 */
	readonly description?: string | null;
	/**
	 * Optional metadata.
	 *
	 * The locale these tags are marked up in. Of the format `language_TERRITORY`.
	 * If missing, assumed to be `en_US` as per Open Graph specs.
	 *
	 * Can be set with {@link GlobalMetadata.locale}.
	 *
	 * @remarks
	 *
	 * Provider:
	 *
	 * {@link provideOpenGraphLocale}
	 *
	 * See also:
	 *
	 * - {@link https://ogp.me/#:~:text=og%3Alocale | Property specs}
	 */
	readonly locale?: string | null;
	/**
	 * Optional metadata.
	 *
	 * If your object is part of a larger website, the name which should be
	 * displayed for the overall site. e.g., "IMDb".
	 *
	 * Can be set with {@link GlobalMetadata.applicationName}.
	 *
	 * @remarks
	 *
	 * Provider:
	 *
	 * {@link provideOpenGraphSiteName}
	 *
	 * See also:
	 *
	 * - {@link https://ogp.me/#:~:text=og%3Asite_name | Property specs}
	 */
	readonly siteName?: string | null;
	/**
	 * {@inheritDoc OpenGraphProfile}
	 */
	readonly profile?: OpenGraphProfile;
}
/**
 * Utility type to provide specific
 * {@link https://ngx-meta.dev/built-in-modules/open-graph/ | Open Graph module}
 * metadata.
 *
 * @public
 */
export interface OpenGraphMetadata {
	/**
	 * {@inheritDoc OpenGraph}
	 */
	openGraph: OpenGraph;
}

export {};
