import { AdIframePage, AdIframePageProps, ArchiveByDayPage, ArchiveByDayPageProps, ArchiveByYearPage, ArchiveByYearPageProps, ArticlePage, ArticlePageProps, AstroHomePage, AstroHomePageProps, AstroPage, AstroPageProps, ContactPage, ContactPageProps, DirectPage, DirectPageProps, ElectionsAIArticlesPage, ElectionsAIArticlesPageProps, ElectionsHomePage, ElectionsHomePageProps, ElectionsPage, ElectionsPageProps, ErrorPage, ErrorPageProps, GameAppPage, GameAppPageProps, GameHomePage, GameHomePageProps, GamePage, GamePageProps, HomePage, HomePageProps, JobDetailsPage, JobDetailsPageProps, JobsPage, JobsPageProps, JournalistPage, JournalistPageProps, La21ePage, La21ePageProps, LegalNoticeDepartmentPage, LegalNoticeDepartmentPageProps, LegalNoticeHomePage, LegalNoticeHomePageProps, LegalNoticePage, LegalNoticePageProps, LegalPage, LegalPageProps, LivePage, LivePageProps, MobileAppsPage, MobileAppsPageProps, MostCommentedPage, MostCommentedPageProps, MostReadPage, MostReadPageProps, MostSharedPage, MostSharedPageProps, MoviesPage, MoviesPageProps, NewsPage, NewsPageProps, PartnerPage, QuizPage, QuizPageProps, RewindPage, RewindPageProps, SearchPage, SearchPageProps, ServicePage, ServicePageProps, ShoppingGuidePage, ShoppingGuidePageProps, SitemapPage, SitemapPageProps, SlideshowPage, SlideshowPageProps, SportPage, SportPageProps, StaticPage, StaticPageProps, TagPage, TagPageProps, TrafficPage, TrafficPageProps, TvHomePage, TvHomePageProps, TvLivePage, TvLivePageProps, TvMostRecentPage, TvMostRecentPageProps, TvMostViewedPage, TvMostViewedPageProps, TvShowPage, TvShowPageProps, TvShowsPage, TvShowsPageProps, UtiqPage, UtiqPageProps, WeatherPage, WeatherPageProps, WhyCreateAccountPage, WhyCreateAccountPageProps } from '../pages';
import { TvVideoPage, TvVideoPageProps } from '../pages/TvVideoPage';
import { PageTemplateProps } from '../templates';
import { ComponentNameAdIframe, ComponentNameArchives, ComponentNameArticle, ComponentNameAstro, ComponentNameCommon, ComponentNameContact, ComponentNameContent, ComponentNameDirect, ComponentNameElections, ComponentNameElectionsAiArticles, ComponentNameError, ComponentNameGame, ComponentNameHome, ComponentNameJobs, ComponentNameJournalist, ComponentNameLa21e, ComponentNameLegal, ComponentNameLegalNotice, ComponentNameLive, ComponentNameMobileApps, ComponentNameMostCommented, ComponentNameMostRead, ComponentNameMostShared, ComponentNameMovies, ComponentNameNews, ComponentNameQuiz, ComponentNameRewind, ComponentNameRubric, ComponentNameSearch, ComponentNameService, ComponentNameShoppingGuide, ComponentNameSitemap, ComponentNameSlideshow, ComponentNameSport, ComponentNameStatic, ComponentNameStory, ComponentNameTag, ComponentNameTraffic, ComponentNameTvHome, ComponentNameTvLive, ComponentNameTvMostRecent, ComponentNameTvMostViewed, ComponentNameTvShow, ComponentNameTvShows, ComponentNameTvVideo, ComponentNameUtiq, ComponentNameWeather, ComponentNameWhyCreateAccount } from './ComponentConfig';
export interface PageComponentConfig<TComponentName = string, TPropName = string> {
    name: TComponentName;
    propName: TPropName;
    required: boolean;
}
export interface PageConfig<TPageName = string, TComponentPage = React.ElementType, TComponentName = string, TPropName = string> {
    name: TPageName;
    component: TComponentPage;
    expiration: number;
    components: PageComponentConfig<TComponentName, TPropName>[];
}
export type PageTemplateComponentConfigs = PageComponentConfig<ComponentNameCommon, keyof Pick<PageTemplateProps, 'header' | 'headerMini' | 'footer' | 'menu'>>[];
export type AdIframePageConfig = PageConfig<'adIframe', typeof AdIframePage, ComponentNameAdIframe, keyof AdIframePageProps>;
export type ArchiveByDayPageConfig = PageConfig<'archiveByDay', typeof ArchiveByDayPage, ComponentNameCommon | ComponentNameArchives | ComponentNameContent, keyof ArchiveByDayPageProps | 'meta' | 'jsonLdBreadcrumb' | 'defaultPreload'>;
export type ArchiveByYearPageConfig = PageConfig<'archiveByYear', typeof ArchiveByYearPage, ComponentNameCommon | ComponentNameArchives, keyof ArchiveByYearPageProps | 'meta' | 'jsonLdBreadcrumb' | 'defaultPreload' | 'preload'>;
export type ArticlePageConfig = PageConfig<'article', typeof ArticlePage, ComponentNameCommon | ComponentNameRubric | ComponentNameArticle | ComponentNameContent, keyof ArticlePageProps | 'meta' | 'jsonLdBreadcrumb' | 'jsonLdClaimReview' | 'jsonLdNewsArticle' | 'defaultPreload' | 'preload'>;
export type ContactPageConfig = PageConfig<'contact', typeof ContactPage, ComponentNameCommon | ComponentNameRubric | ComponentNameContact | ComponentNameContent, keyof ContactPageProps | 'meta' | 'jsonLdBreadcrumb' | 'defaultPreload' | 'preload'>;
export type DirectPageConfig = PageConfig<'direct', typeof DirectPage, ComponentNameCommon | ComponentNameDirect, keyof DirectPageProps | 'meta' | 'jsonLdBreadcrumb' | 'defaultPreload' | 'preload' | 'lastArticlesBlock'>;
export type ElectionsAIArticlesPageConfig = PageConfig<'electionsAiArticles', typeof ElectionsAIArticlesPage, ComponentNameCommon | ComponentNameElectionsAiArticles, keyof ElectionsAIArticlesPageProps | 'meta' | 'jsonLdBreadcrumb' | 'defaultPreload'>;
export type ElectionsEmbedPageConfig = PageConfig<'electionsEmbed', typeof ElectionsHomePage, ComponentNameCommon | ComponentNameElections, keyof ElectionsHomePageProps | 'meta' | 'defaultPreload'>;
export type ElectionsHomePageConfig = PageConfig<'electionsHome', typeof ElectionsHomePage, ComponentNameCommon | ComponentNameElections, keyof ElectionsHomePageProps | 'meta' | 'jsonLdBreadcrumb' | 'jsonLdFaq' | 'defaultPreload'>;
export type ElectionsPageConfig = PageConfig<'elections', typeof ElectionsPage, ComponentNameCommon | ComponentNameElections, keyof ElectionsPageProps | 'meta' | 'jsonLdBreadcrumb' | 'jsonLdFaq' | 'defaultPreload'>;
export type ErrorPageConfig = PageConfig<'error', typeof ErrorPage, ComponentNameCommon | ComponentNameError, keyof ErrorPageProps | 'meta' | 'defaultPreload'>;
export type GameAppPageConfig = PageConfig<'gameApp', typeof GameAppPage, ComponentNameCommon | ComponentNameGame, keyof GameAppPageProps | 'meta' | 'defaultPreload'>;
export type GameHomePageConfig = PageConfig<'gameHome', typeof GameHomePage, ComponentNameCommon | ComponentNameGame, keyof GameHomePageProps | 'meta' | 'jsonLdBreadcrumb' | 'defaultPreload'>;
export type GamePageConfig = PageConfig<'game', typeof GamePage, ComponentNameCommon | ComponentNameRubric | ComponentNameGame, keyof GamePageProps | 'meta' | 'jsonLdBreadcrumb' | 'jsonLdFaq' | 'defaultPreload'>;
export type HomePageConfig = PageConfig<'home', typeof HomePage, ComponentNameCommon | ComponentNameRubric | ComponentNameHome, keyof HomePageProps | 'meta' | 'defaultPreload'>;
export type AstroHomePageConfig = PageConfig<'astroHome', typeof AstroHomePage, ComponentNameCommon | ComponentNameRubric | ComponentNameAstro, keyof AstroHomePageProps | 'meta' | 'jsonLdBreadcrumb' | 'defaultPreload'>;
export type AstroPageConfig = PageConfig<'astro', typeof AstroPage, ComponentNameCommon | ComponentNameRubric | ComponentNameAstro, keyof AstroPageProps | 'meta' | 'jsonLdBreadcrumb' | 'defaultPreload'>;
export type JournalistPageConfig = PageConfig<'journalist', typeof JournalistPage, ComponentNameCommon | ComponentNameRubric | ComponentNameJournalist, keyof JournalistPageProps | 'meta' | 'jsonLdBreadcrumb' | 'defaultPreload'>;
export type JobDetailsPageConfig = PageConfig<'jobDetails', typeof JobDetailsPage, ComponentNameCommon | ComponentNameJobs, keyof JobDetailsPageProps | 'meta' | 'jsonLdBreadcrumb' | 'defaultPreload' | 'preload'>;
export type JobsPageConfig = PageConfig<'jobs', typeof JobsPage, ComponentNameCommon | ComponentNameJobs, keyof JobsPageProps | 'meta' | 'jsonLdBreadcrumb' | 'defaultPreload' | 'preload'>;
export type La21ePageConfig = PageConfig<'la21e', typeof La21ePage, ComponentNameCommon | ComponentNameRubric | ComponentNameLa21e, keyof La21ePageProps | 'meta' | 'jsonLdBreadcrumb' | 'defaultPreload'>;
export type LegalPageConfig = PageConfig<'legal', typeof LegalPage, ComponentNameCommon | ComponentNameLegal, keyof LegalPageProps | 'meta' | 'jsonLdBreadcrumb' | 'defaultPreload' | 'preload'>;
export type LegalNoticeDepartmentPageConfig = PageConfig<'legalNoticeDepartment', typeof LegalNoticeDepartmentPage, ComponentNameCommon | ComponentNameLegalNotice, keyof LegalNoticeDepartmentPageProps | 'meta' | 'jsonLdBreadcrumb' | 'defaultPreload' | 'preload'>;
export type LegalNoticeHomePageConfig = PageConfig<'legalNoticeHome', typeof LegalNoticeHomePage, ComponentNameCommon | ComponentNameLegalNotice, keyof LegalNoticeHomePageProps | 'meta' | 'jsonLdBreadcrumb' | 'defaultPreload' | 'preload'>;
export type LegalNoticeDetailPageConfig = PageConfig<'legalNotice', typeof LegalNoticePage, ComponentNameCommon | ComponentNameLegalNotice, keyof LegalNoticePageProps | 'meta' | 'jsonLdBreadcrumb' | 'defaultPreload' | 'preload'>;
export type LivePageConfig = PageConfig<'live', typeof LivePage, ComponentNameCommon | ComponentNameRubric | ComponentNameLive | ComponentNameContent, keyof LivePageProps | 'meta' | 'jsonLdBreadcrumb' | 'jsonLdLiveBlogPosting' | 'defaultPreload' | 'preload'>;
export type MobileAppsPageConfig = PageConfig<'mobileApps', typeof MobileAppsPage, ComponentNameCommon | ComponentNameRubric | ComponentNameMobileApps, keyof MobileAppsPageProps | 'meta' | 'jsonLdBreadcrumb' | 'defaultPreload'>;
export type MostCommentedPageConfig = PageConfig<'mostCommented', typeof MostCommentedPage, ComponentNameCommon | ComponentNameMostCommented, keyof MostCommentedPageProps | 'meta' | 'defaultPreload'>;
export type MostReadPageConfig = PageConfig<'mostRead', typeof MostReadPage, ComponentNameCommon | ComponentNameMostRead, keyof MostReadPageProps | 'meta' | 'defaultPreload'>;
export type MostSharedPageConfig = PageConfig<'mostShared', typeof MostSharedPage, ComponentNameCommon | ComponentNameMostShared, keyof MostSharedPageProps | 'meta' | 'defaultPreload'>;
export type MoviesPageConfig = PageConfig<'movies', typeof MoviesPage, ComponentNameCommon | ComponentNameMovies, keyof MoviesPageProps | 'header' | 'headerMini' | 'footer' | 'menu' | 'meta' | 'defaultPreload'>;
export type NewsPageConfig = PageConfig<'news', typeof NewsPage, ComponentNameCommon | ComponentNameNews, keyof NewsPageProps | 'meta' | 'jsonLdBreadcrumb' | 'header' | 'headerMini' | 'footer' | 'menu'>;
export type PartnerPageConfig = PageConfig<'partner', typeof PartnerPage, ComponentNameCommon, keyof Pick<PageTemplateProps, 'header' | 'headerMini' | 'footer' | 'menu'>>;
export type QuizPageConfig = PageConfig<'quiz', typeof QuizPage, ComponentNameCommon | ComponentNameTag | ComponentNameQuiz, keyof QuizPageProps | 'meta' | 'jsonLdBreadcrumb' | 'defaultPreload' | 'preload'>;
export type RewindPageConfig = PageConfig<'rewind', typeof RewindPage, ComponentNameCommon | ComponentNameRewind, keyof RewindPageProps | 'meta' | 'jsonLdBreadcrumb' | 'defaultPreload'>;
export type SearchPageConfig = PageConfig<'search', typeof SearchPage, ComponentNameCommon | ComponentNameRubric | ComponentNameSearch, keyof SearchPageProps | 'meta' | 'jsonLdBreadcrumb' | 'defaultPreload'>;
export type ServicePageConfig = PageConfig<'service', typeof ServicePage, ComponentNameCommon | ComponentNameRubric | ComponentNameService, keyof ServicePageProps | 'meta' | 'jsonLdBreadcrumb' | 'defaultPreload'>;
export type ShoppingGuidePageConfig = PageConfig<'shoppingGuide', typeof ShoppingGuidePage, ComponentNameCommon | ComponentNameRubric | ComponentNameShoppingGuide, keyof ShoppingGuidePageProps | 'meta' | 'jsonLdBreadcrumb' | 'defaultPreload'>;
export type SitemapPageConfig = PageConfig<'sitemap', typeof SitemapPage, ComponentNameCommon | ComponentNameSitemap, keyof SitemapPageProps | 'meta' | 'jsonLdBreadcrumb' | 'defaultPreload'>;
export type SlideshowPageConfig = PageConfig<'story', typeof SlideshowPage, ComponentNameCommon | ComponentNameRubric | ComponentNameStory | ComponentNameContent | ComponentNameSlideshow, keyof SlideshowPageProps | 'meta' | 'jsonLdBreadcrumb' | 'jsonLdClaimReview' | 'jsonLdNewsArticle' | 'defaultPreload' | 'preload'>;
export type SportPageConfig = PageConfig<'sport', typeof SportPage, ComponentNameCommon | ComponentNameRubric | ComponentNameSport, keyof SportPageProps | 'meta' | 'jsonLdBreadcrumb' | 'defaultPreload'>;
export type StaticPageConfig = PageConfig<'static', typeof StaticPage, ComponentNameCommon | ComponentNameStatic, keyof StaticPageProps | 'meta' | 'jsonLdBreadcrumb' | 'defaultPreload' | 'preload'>;
export type TagPageConfig = PageConfig<'tag', typeof TagPage, ComponentNameCommon | ComponentNameTag, keyof TagPageProps | 'meta' | 'jsonLdBreadcrumb' | 'defaultPreload' | 'preload'>;
export type TrafficPageConfig = PageConfig<'traffic', typeof TrafficPage, ComponentNameCommon | ComponentNameRubric | ComponentNameTraffic, keyof TrafficPageProps | 'meta' | 'jsonLdBreadcrumb' | 'defaultPreload'>;
export type TvHomePageConfig = PageConfig<'tvHome', typeof TvHomePage, ComponentNameCommon | ComponentNameTvHome, keyof TvHomePageProps | 'meta' | 'jsonLdBreadcrumb' | 'defaultPreload'>;
export type TvLivePageConfig = PageConfig<'tvLive', typeof TvLivePage, ComponentNameCommon | ComponentNameTvLive, keyof TvLivePageProps | 'meta' | 'jsonLdBreadcrumb' | 'defaultPreload'>;
export type TvMostRecentPageConfig = PageConfig<'tvMostRecent', typeof TvMostRecentPage, ComponentNameCommon | ComponentNameTvMostRecent, keyof TvMostRecentPageProps | 'meta' | 'jsonLdBreadcrumb' | 'defaultPreload'>;
export type TvMostViewedPageConfig = PageConfig<'tvMostViewed', typeof TvMostViewedPage, ComponentNameCommon | ComponentNameTvMostViewed, keyof TvMostViewedPageProps | 'meta' | 'jsonLdBreadcrumb' | 'defaultPreload'>;
export type TvShowPageConfig = PageConfig<'tvShow', typeof TvShowPage, ComponentNameCommon | ComponentNameTvShow, keyof TvShowPageProps | 'meta' | 'jsonLdBreadcrumb' | 'defaultPreload'>;
export type TvShowsPageConfig = PageConfig<'tvShows', typeof TvShowsPage, ComponentNameCommon | ComponentNameTvShows, keyof TvShowsPageProps | 'meta' | 'jsonLdBreadcrumb' | 'defaultPreload'>;
export type TvVideoPageConfig = PageConfig<'tvVideo', typeof TvVideoPage, ComponentNameCommon | ComponentNameTvVideo, keyof TvVideoPageProps | 'meta' | 'jsonLdBreadcrumb' | 'jsonLdNewsArticle' | 'defaultPreload'>;
export type UtiqPageConfig = PageConfig<'utiq', typeof UtiqPage, ComponentNameCommon | ComponentNameRubric | ComponentNameUtiq, keyof UtiqPageProps | 'meta' | 'jsonLdBreadcrumb' | 'defaultPreload'>;
export type WeatherPageConfig = PageConfig<'weather', typeof WeatherPage, ComponentNameCommon | ComponentNameRubric | ComponentNameWeather, keyof WeatherPageProps | 'meta' | 'jsonLdBreadcrumb' | 'defaultPreload'>;
export type WhyCreateAccountPageConfig = PageConfig<'whyCreateAccount', typeof WhyCreateAccountPage, ComponentNameCommon | ComponentNameWhyCreateAccount, keyof WhyCreateAccountPageProps | 'meta' | 'jsonLdBreadcrumb' | 'defaultPreload'>;
export type PageConfigs = [
    AdIframePageConfig,
    ArchiveByDayPageConfig,
    ArchiveByYearPageConfig,
    ArticlePageConfig,
    AstroHomePageConfig,
    AstroPageConfig,
    ContactPageConfig,
    DirectPageConfig,
    ElectionsAIArticlesPageConfig,
    ElectionsEmbedPageConfig,
    ElectionsHomePageConfig,
    ElectionsPageConfig,
    ErrorPageConfig,
    GameAppPageConfig,
    GameHomePageConfig,
    GamePageConfig,
    HomePageConfig,
    JobDetailsPageConfig,
    JobsPageConfig,
    JournalistPageConfig,
    La21ePageConfig,
    LegalNoticeDepartmentPageConfig,
    LegalNoticeHomePageConfig,
    LegalNoticeDetailPageConfig,
    LegalPageConfig,
    LivePageConfig,
    MobileAppsPageConfig,
    MostCommentedPageConfig,
    MostReadPageConfig,
    MostSharedPageConfig,
    MoviesPageConfig,
    NewsPageConfig,
    PartnerPageConfig,
    QuizPageConfig,
    RewindPageConfig,
    SearchPageConfig,
    ServicePageConfig,
    ShoppingGuidePageConfig,
    SitemapPageConfig,
    SlideshowPageConfig,
    SportPageConfig,
    StaticPageConfig,
    TagPageConfig,
    TrafficPageConfig,
    TvHomePageConfig,
    TvLivePageConfig,
    TvMostRecentPageConfig,
    TvMostViewedPageConfig,
    TvShowPageConfig,
    TvShowsPageConfig,
    TvVideoPageConfig,
    UtiqPageConfig,
    WeatherPageConfig,
    WhyCreateAccountPageConfig
];
export type PageConfigAvailable = PageConfigs[number];
