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

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

interface GlobalMetadataImage {
	/**
	 * URL of the image. Used for:
	 *
	 *  - {@link OpenGraphImage.url} (needs Open Graph module)
	 *
	 *  - {@link TwitterCardImage.url} (needs Twitter Cards module)
	 */
	readonly url: string | URL;
	/**
	 * A description of what is in the image (not a caption) to users who are
	 * visually impaired.
	 *
	 * Used for:
	 *
	 *  - {@link OpenGraphImage.alt} (needs Open Graph module)
	 *
	 *  - {@link TwitterCardImage.alt} (needs Twitter Cards module)
	 */
	readonly alt: string;
}
declare const ANGULAR_ROUTER_URL: unique symbol;
type AngularRouterUrl = typeof ANGULAR_ROUTER_URL;
interface GlobalMetadata {
	/**
	 * Sets title for:
	 *
	 *  - {@link Standard.title} (needs standard module)
	 *
	 *  - {@link OpenGraph.title} (needs Open Graph module)
	 *
	 *  - {@link TwitterCard.title} (needs Twitter Cards module)
	 *
	 * Title will be formatted for all of them when
	 * {@link https://ngx-meta.dev/guides/title-formatting | title formatting} is set up.
	 */
	readonly title?: string;
	/**
	 * Sets description for:
	 *
	 *  - {@link Standard.description} (needs standard module)
	 *
	 *  - {@link OpenGraph.description} (needs Open Graph module)
	 *
	 *  - {@link TwitterCard.description} (needs Twitter Cards module)
	 */
	readonly description?: string | null;
	/**
	 * Sets application name for:
	 *
	 *  - {@link Standard.applicationName} (needs standard module)
	 *
	 *  - {@link OpenGraph.siteName} (needs Open Graph module)
	 */
	readonly applicationName?: string | null;
	/**
	 * Sets canonical URL for:
	 *
	 *  - {@link Standard.canonicalUrl} (needs standard module)
	 *
	 *  - {@link OpenGraph.url} (needs Open Graph module)
	 *
	 * If {@link https://ngx-meta.dev/guides/url-resolution/ | URL resolution} feature is enabled, you may use
	 * a relative URL here. It will be resolved and the absolute URL will be used instead.
	 *
	 * You can also use the special value {@link ANGULAR_ROUTER_URL} to use the current Angular router's URL
	 * as the relative URL to be resolved into an absolute one.
	 */
	readonly canonicalUrl?: URL | AngularRouterUrl | string | null;
	/**
	 * Sets localization of this page.
	 *
	 * Value must be a valid language tag complying with BCP 47.
	 * For instance: "`es`" or "`es-ES`"
	 *
	 * For:
	 *
	 *  - {@link Standard.locale} (needs standard module)
	 *
	 *  - {@link OpenGraph.locale} (needs Open Graph module)
	 *
	 * @remarks
	 *
	 * See also:
	 *
	 * - {@link https://datatracker.ietf.org/doc/html/rfc5646 | RFC 5646 / BCP 47}
	 */
	readonly locale?: string | null;
	/**
	 * {@inheritDoc GlobalMetadataImage}
	 */
	readonly image?: GlobalMetadataImage | null;
}
/**
 * Manages the {@link Standard.applicationName} metadata
 * @public
 */
export declare const provideStandardApplicationName: () => import("@angular/core").Provider;
/**
 * {@inheritDoc provideStandardApplicationName}
 * @deprecated Use {@link provideStandardApplicationName} instead
 * @public
 */
export declare const STANDARD_APPLICATION_NAME_METADATA_PROVIDER: import("@angular/core").Provider;
/**
 * Manages the {@link Standard.author} metadata
 * @public
 */
export declare const provideStandardAuthor: () => import("@angular/core").Provider;
/**
 * {@inheritDoc provideStandardAuthor}
 * @deprecated Use {@link provideStandardAuthor} instead
 * @public
 */
export declare const STANDARD_AUTHOR_METADATA_PROVIDER: import("@angular/core").Provider;
/**
 * Manages the {@link Standard.canonicalUrl} metadata
 * @public
 */
export declare const provideStandardCanonicalUrl: () => import("@angular/core").Provider;
/**
 * {@inheritDoc provideStandardCanonicalUrl}
 * @deprecated Use {@link provideStandardCanonicalUrl} instead
 * @public
 */
export declare const STANDARD_CANONICAL_URL_METADATA_PROVIDER: import("@angular/core").Provider;
/**
 * Manages the {@link Standard.description} metadata
 * @public
 */
export declare const provideStandardDescription: () => import("@angular/core").Provider;
/**
 * {@inheritDoc provideStandardDescription}
 * @deprecated Use {@link provideStandardDescription} instead
 * @public
 */
export declare const STANDARD_DESCRIPTION_METADATA_PROVIDER: import("@angular/core").Provider;
/**
 * Manages the {@link Standard.generator} metadata
 * @public
 */
export declare const provideStandardGenerator: () => import("@angular/core").Provider;
/**
 * {@inheritDoc provideStandardGenerator}
 * @deprecated Use {@link provideStandardGenerator} instead
 * @public
 */
export declare const STANDARD_GENERATOR_METADATA_PROVIDER: import("@angular/core").Provider;
/**
 * Manages the {@link Standard.keywords} metadata
 * @public
 */
export declare const provideStandardKeywords: () => import("@angular/core").Provider;
/**
 * {@inheritDoc provideStandardKeywords}
 * @deprecated Use {@link provideStandardKeywords} instead
 * @public
 */
export declare const STANDARD_KEYWORDS_METADATA_PROVIDER: import("@angular/core").Provider;
/**
 * Manages the {@link Standard.locale} metadata
 * @public
 */
export declare const provideStandardLocale: () => import("@angular/core").Provider;
/**
 * {@inheritDoc provideStandardLocale}
 * @deprecated Use {@link provideStandardLocale} instead
 * @public
 */
export declare const STANDARD_LOCALE_METADATA_PROVIDER: import("@angular/core").Provider;
/**
 * Manages the {@link Standard.themeColor} metadata
 * @public
 */
export declare const provideStandardThemeColor: () => import("@angular/core").Provider;
/**
 * {@inheritDoc provideStandardThemeColor}
 * @deprecated Use {@link provideStandardThemeColor} instead
 * @public
 */
export declare const STANDARD_THEME_COLOR_METADATA_PROVIDER: import("@angular/core").Provider;
/**
 * See {@link Standard.themeColor}
 * @public
 */
export type StandardThemeColorMetadata = string | readonly StandardThemeColorMetadataObject[];
/**
 * See {@link Standard.themeColor}
 * @public
 */
export interface StandardThemeColorMetadataObject {
	/**
	 * See {@link Standard.themeColor}
	 */
	color: string;
	/**
	 * See {@link Standard.themeColor}
	 */
	media?: string;
}
/**
 * Manages the {@link Standard.title} metadata
 * @public
 */
export declare const provideStandardTitle: () => import("@angular/core").Provider;
/**
 * {@inheritDoc provideStandardTitle}
 * @deprecated Use {@link provideStandardTitle} instead
 * @public
 */
export declare const STANDARD_TITLE_METADATA_PROVIDER: import("@angular/core").Provider;
/**
 * Provides {@link https://ngx-meta.dev/built-in-modules/standard/ | standard module}
 * metadata managers.
 *
 * Check out {@link provideNgxMetaStandard} for the standalone, recommended API.
 *
 * @public
 */
export declare class NgxMetaStandardModule {
	static ɵfac: i0.ɵɵFactoryDeclaration<NgxMetaStandardModule, never>;
	static ɵmod: i0.ɵɵNgModuleDeclaration<NgxMetaStandardModule, never, never, never>;
	static ɵinj: i0.ɵɵInjectorDeclaration<NgxMetaStandardModule>;
}
/**
 * Provides {@link https://ngx-meta.dev/built-in-modules/standard/ | standard module}
 * metadata managers.
 *
 * @remarks
 *
 * This is the standalone, recommended API. Using this API is preferred.
 * However, you may also use {@link NgxMetaStandardModule} as the Angular module-based equivalent API.
 *
 * @public
 */
export declare const provideNgxMetaStandard: () => Provider;
/**
 * {@link https://ngx-meta.dev/built-in-modules/standard/ | Standard module}
 * metadata values that can be set.
 *
 * @public
 */
export interface Standard {
	/**
	 * Sets the `<title>` HTML element.
	 *
	 * 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
	 *
	 * Very relevant for SEO purposes.
	 *
	 * Recommendations:
	 *
	 *  - Should be unique
	 *
	 *  - Up to 50 ~ 60 characters
	 *
	 *  - Prefer a dash "-" as separator
	 *
	 * Provider:
	 *
	 * {@link provideStandardTitle}
	 *
	 * See also:
	 *
	 * - {@link https://developer.mozilla.org/en-US/docs/Web/HTML/Element/title | MDN docs}
	 *
	 * - {@link https://html.spec.whatwg.org/multipage/semantics.html#the-title-element | HTML specs}
	 *
	 * - {@link https://moz.com/learn/seo/title-tag | Moz.com article about titles & SEO. Includes title preview on Google }
	 *
	 * - {@link https://yoast.com/page-titles-seo/ | Yoast article about titles & SEO}
	 */
	readonly title?: GlobalMetadata["title"];
	/**
	 * Sets the `<meta name='description'>` HTML element.
	 *
	 * Can be set with {@link GlobalMetadata.description}.
	 *
	 * @remarks
	 *
	 * Very relevant for SEO purposes.
	 *
	 * Recommendations:
	 *
	 *  - Up to 155 characters.
	 *
	 * Provider:
	 *
	 * {@link provideStandardDescription}
	 *
	 * See also:
	 *
	 * - {@link https://html.spec.whatwg.org/multipage/semantics.html#meta-description | MDN docs}
	 *
	 * - {@link https://developer.mozilla.org/en-US/docs/Web/HTML/Element/meta/name#:~:text=description | HTML specs}
	 *
	 * - {@link https://yoast.com/meta-descriptions/ | Yoast article about meta descriptions}
	 */
	readonly description?: GlobalMetadata["description"];
	/**
	 * Sets the `<meta name='author'>` HTML element.
	 *
	 * @remarks
	 *
	 * Doesn't seem to provide many benefits in terms of SEO.
	 * Check out linked Moz.com article.
	 *
	 * Provider:
	 *
	 * {@link provideStandardAuthor}
	 *
	 * See also:
	 *
	 * - {@link https://developer.mozilla.org/en-US/docs/Web/HTML/Element/meta/name#:~:text=author | MDN docs}
	 *
	 * - {@link https://html.spec.whatwg.org/multipage/semantics.html#meta-author | HTML specs}
	 *
	 * - {@link https://moz.com/blog/the-ultimate-guide-to-seo-meta-tags | Moz.com article about meta tags}
	 */
	readonly author?: string | null;
	/**
	 * Sets the `<meta name='keywords'>` HTML element.
	 *
	 * @remarks
	 *
	 * Doesn't seem to provide many benefits in terms of SEO. It's ignored by Google.
	 * Check out linked articles for more information.
	 *
	 * Provider:
	 *
	 * {@link provideStandardKeywords}
	 *
	 * See also:
	 *
	 * - {@link https://developer.mozilla.org/en-US/docs/Web/HTML/Element/meta/name#:~:text=keywords | MDN docs}
	 *
	 * - {@link https://html.spec.whatwg.org/multipage/semantics.html#meta-keywords | HTML specs}
	 *
	 * - {@link https://yoast.com/meta-keywords/ | Yoast article about meta keywords}
	 *
	 * - {@link https://moz.com/blog/the-ultimate-guide-to-seo-meta-tags | Moz.com article about meta tags}
	 *
	 * - {@link https://developers.google.com/search/blog/2009/09/google-does-not-use-keywords-meta-tag | Google doesn't use meta keywords}
	 */
	readonly keywords?: readonly string[] | null;
	/**
	 * Sets the `<meta name='generator'>` HTML tag.
	 *
	 * Includes the Angular version used to generate the page.
	 *
	 * @remarks
	 *
	 * Doesn't provide any benefits in terms of SEO.
	 * Check out linked Moz.com article.
	 *
	 * Provider:
	 *
	 * {@link provideStandardGenerator}
	 *
	 * See also:
	 *
	 * - {@link https://developer.mozilla.org/en-US/docs/Web/HTML/Element/meta/name#:~:text=generator | MDN docs}
	 *
	 * - {@link https://html.spec.whatwg.org/multipage/semantics.html#meta-generator | HTML specs}
	 *
	 * - {@link https://moz.com/blog/the-ultimate-guide-to-seo-meta-tags | Moz.com article about meta tags}
	 */
	readonly generator?: true | null;
	/**
	 * Sets the `<meta name='application-name'>` HTML element.
	 *
	 * Can be set with {@link GlobalMetadata.applicationName}.
	 *
	 * @remarks
	 *
	 * Not SEO related.
	 *
	 * Recommendations:
	 *
	 * - From MDN: simple web pages shouldn't define an application name.
	 *
	 * - From HTML specs: if the page is not a web application, the
	 * `application-name` metadata name must not be used.
	 *
	 * Provider:
	 *
	 * {@link provideStandardApplicationName}
	 *
	 * See also:
	 *
	 * - {@link https://developer.mozilla.org/en-US/docs/Web/HTML/Element/meta/name#:~:text=application%2Dname | MDN docs}
	 *
	 * - {@link https://html.spec.whatwg.org/multipage/semantics.html#meta-application-name | HTML specs}
	 */
	readonly applicationName?: GlobalMetadata["applicationName"];
	/**
	 * Sets the `<link rel='canonical'>` HTML element.
	 *
	 * Can be set with {@link GlobalMetadata.canonicalUrl}.
	 *
	 * If {@link https://ngx-meta.dev/guides/url-resolution/ | URL resolution}
	 * feature is enabled and a relative URL is provided, an absolute one will
	 * be used as value after resolving it.
	 *
	 * @remarks
	 *
	 * Very relevant for SEO purposes.
	 *
	 * Recommendations:
	 *
	 *  - An absolute URL is preferred. Despite a relative URL is valid too.
	 *    Checkout the linked StackOverflow answer below for more details.
	 *
	 * Provider:
	 *
	 * {@link provideStandardCanonicalUrl}
	 *
	 * See also:
	 *
	 * - {@link https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes/rel#canonical | MDN docs}
	 *
	 * - {@link https://html.spec.whatwg.org/multipage/links.html#link-type-canonical | HTML specs}
	 *
	 * - {@link https://support.google.com/webmasters/answer/10347851?hl=en | Google article about canonical URLs}
	 *
	 * - {@link https://stackoverflow.com/a/8467966/3263250 | Why absolute URLs are preferred (StackOverflow answer) }
	 *
	 * - {@link https://yoast.com/rel-canonical/ | Yoast article about canonical URLs}
	 */
	readonly canonicalUrl?: GlobalMetadata["canonicalUrl"];
	/**
	 * Sets the `lang` attribute to the `<html>` element.
	 *
	 * Can be set with {@link GlobalMetadata.locale}.
	 *
	 * Value must be a valid language tag complying with BCP 47
	 * For instance: "es" or "es-ES".
	 *
	 * @remarks
	 *
	 * Doesn't seem to provide any benefit in terms of SEO.
	 *
	 * Provider:
	 *
	 * {@link provideStandardLocale}
	 *
	 * See also:
	 *
	 * - {@link https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/lang | MDN docs}
	 *
	 * - {@link https://html.spec.whatwg.org/multipage/dom.html#attr-lang | HTML specs}
	 *
	 * - {@link https://datatracker.ietf.org/doc/html/rfc5646 | RFC5646 / BCP47 }
	 *
	 * - {@link https://support.google.com/webmasters/thread/86451607?hl=en&msgid=86452356 | `lang` attribute & SEO post on Google's search console help}
	 */
	readonly locale?: GlobalMetadata["locale"];
	/**
	 * Sets one or more `<meta name='theme-color'>` HTML elements.
	 *
	 * @remarks
	 *
	 * If set, color(s) must specify a valid CSS color.
	 *
	 * A `media` attribute can be set to specify a different color depending on
	 * the context based on a CSS media query. For instance, to provide one color
	 * for dark mode and another for light mode.
	 *
	 * You can use a `string` value to set one theme color as value. No `media`
	 * attribute will be used then.
	 *
	 * You can also specify one or more colors and media queries combinations by
	 * providing an array of {@link StandardThemeColorMetadataObject} specifying
	 * the color and (optionally) a media query.
	 *
	 * Not related to SEO.
	 *
	 * Provider:
	 *
	 * {@link provideStandardThemeColor}
	 *
	 * See also:
	 *
	 * - {@link https://developer.mozilla.org/en-US/docs/Web/HTML/Element/meta/name/theme-color | MDN docs}
	 *
	 * - {@link https://html.spec.whatwg.org/multipage/semantics.html#meta-theme-color | HTML specs}
	 *
	 * @example
	 *
	 * Providing just one theme color:
	 *
	 * ```typescript
	 * const themeColor: Standard['themeColor'] = 'lightblue'
	 * ```
	 *
	 * Providing multiple theme colors based on a media query:
	 *
	 * ```typescript
	 * const themeColor: StandardThemeColorMetadata = [
	 *   {color: 'darkblue', media: '(prefers-color-scheme: dark)'}
	 *   {color: 'lightblue'}, // Default (when user does not prefer dark)
	 * ]
	 * ```
	 */
	readonly themeColor?: StandardThemeColorMetadata | null;
}
/**
 * Utility type to provide specific
 * {@link https://ngx-meta.dev/built-in-modules/standard/ | standard module}
 * metadata.
 *
 * @public
 */
export interface StandardMetadata {
	/**
	 * {@inheritDoc Standard}
	 */
	standard: Standard;
}

export {};
