import { LayoutType, SearchBannerProps } from '@20minutes/hela';
import { Poool as Access } from 'poool-access';
import { Poool as Engage } from 'poool-engage';
import { default as ReactDOMClient } from 'react-dom/client';
import { DatalayerInfoType } from '../assets/datalayer/types';
import { PartnerFeaturesType } from '../assets/features/partnerFeaturesType';
import { GlobalTargetingType, SlotType } from '../assets/thirdParties/ads/types';
import { ArchivePdfListProps, LegalNoticeCardsListProps, QuizListProps } from '../components';
import { AIArticlesListProps } from '../components/molecules/AIArticlesList/AIArticlesList';
import { LastArticlesBlockProps } from '../components/molecules/LastArticlesBlock';
import { LatestContentsCarouselProps } from '../components/organisms/ArticlePage/LatestContentsCarousel';
import { CardsListProps } from '../components/organisms/CardsList';
import { ElectionsMapConstituenciesProps } from '../components/organisms/ElectionsPage/ElectionsMapConstituencies/ElectionsMapConstituencies';
import { ElectionsMapDepartmentsProps } from '../components/organisms/ElectionsPage/ElectionsMapDepartments/ElectionsMapDepartments';
import { ElectionsMapEuropeProps } from '../components/organisms/ElectionsPage/ElectionsMapEurope/ElectionsMapEurope';
import { ElectionsMapTownsByDepartmentsProps } from '../components/organisms/ElectionsPage/ElectionsMapTownsByDepartments/ElectionsMapTownsByDepartments';
import { LocalNewsProps } from '../components/organisms/HomePage/LocalNews';
import { LivePostsThreadProps } from '../components/organisms/LivePage/LivePostsThread';
import { MostReadArticlesBlockProps } from '../components/organisms/MostPages/MostReadArticlesBlock';
import { MostReadArticlesProps } from '../components/organisms/MostReadArticles';
import { MoviesListProps } from '../components/organisms/MoviePage/MoviesList';
import { VariablesSmartPlayerDigitekaType } from './Digiteka';
import { CmpType, PianoEventObject, PianoGlobalType, PianoPageInfo, ThirdPartiesConfigType, VariablesCmpType } from './ThirdParties';
import { EdgeeUserData } from './ThirdParties/Tracking/Edgee';
import { EnvVariablesType } from './EnvVariablesType';
declare global {
    interface Window extends VariablesCmpType, VariablesSmartPlayerDigitekaType {
        layout: LayoutType;
        dfpVariables: GlobalTargetingType;
        dfp: {
            slotsReady: boolean;
            slots: SlotType[];
            targeting: Partial<GlobalTargetingType>;
        } | Record<string, never>;
        cmpVariables: CmpType;
        pa?: PianoGlobalType;
        _paq?: unknown[];
        sendPageTracking?: (options?: PianoPageInfo) => void;
        sendClickTracking?: (options: PianoEventObject) => void;
        sendUserTracking?: () => void;
        PianoPageInfo?: PianoPageInfo;
        adsapp: boolean;
        envVariables: EnvVariablesType;
        __staticHydrationData?: {
            archivePdfListContainer?: Required<ArchivePdfListProps>;
            articleListBottomContainer?: Required<CardsListProps>;
            electionsAiArticlesContainer?: Required<AIArticlesListProps>;
            electionsConstituenciesMapContainer?: Required<ElectionsMapConstituenciesProps>;
            electionsDepartmentsMapContainer?: Required<ElectionsMapDepartmentsProps>;
            electionsEuropeanMapContainer?: Required<ElectionsMapEuropeProps>;
            electionsSearchBannerContainer?: Required<SearchBannerProps>;
            electionsMapTownsByDepartmentsContainer?: Required<ElectionsMapTownsByDepartmentsProps>;
            journalistArticleListContainer?: Required<CardsListProps>;
            latestArticlesContainer?: Required<LastArticlesBlockProps>;
            latestContentsCarouselContainer?: Required<LatestContentsCarouselProps>;
            legalNoticeHomeContainer: Required<LegalNoticeCardsListProps>;
            legalNoticeDepartmentContainer: Required<LegalNoticeCardsListProps>;
            livePostsContainer?: Required<LivePostsThreadProps>;
            liveImportantPostsContainer?: Required<LivePostsThreadProps>;
            liveAndMostReadContainer?: Required<MostReadArticlesProps>;
            localNewsContainer?: Required<LocalNewsProps>;
            mostReadContainer?: Required<MostReadArticlesProps>;
            moviesListContainer?: Required<MoviesListProps>;
            mainMostReadContainer?: Required<MostReadArticlesBlockProps>;
            quizContainer?: Required<QuizListProps>;
            extraitsTvExtractsAndReplaysContainer?: Required<CardsListProps>;
            replaysTvExtractsAndReplaysContainer?: Required<CardsListProps>;
        };
        ReactDOMClient: typeof ReactDOMClient;
        thirdPartiesConfig: Partial<ThirdPartiesConfigType>;
        registerMiscLazyElements: () => void;
        lazyElementsToObserve: HTMLElement[];
        lazyObservers: {
            defaultObserver?: IntersectionObserver;
            instantObserver?: IntersectionObserver;
        };
        datalayerInfo?: DatalayerInfoType;
        Access: Access.Access;
        Engage: Engage.Engage;
        _nli: string[][];
        partnerFeatures: PartnerFeaturesType;
        _taboola: {
            push: (arg: unknown) => void;
        };
        LI_ANTIBOT: {
            loadAntibot: (args: unknown[]) => void;
        };
        vfQ: unknown[];
        iDalgoLoader?: {
            start: () => void;
            init: () => void;
        };
        dataLayer: {
            push: (arg: unknown) => void;
        };
        bodyScripts: HTMLScriptElement[];
        $screeb: (eventName: string, eventId: string, params?: Record<string, unknown>) => void;
        edgee?: {
            page?: (pageData?: Record<string, unknown>, data?: Record<string, unknown>) => void;
            track?: (event?: Record<string, unknown>, data?: Record<string, unknown>) => void;
            user?: (userData?: EdgeeUserData, data?: Record<string, unknown>) => void;
        };
        wamid: string;
        typ: string;
        WfirstParty: boolean;
        Wam2gamConf: {
            token: string;
            cookieless: boolean;
            useXdevice: boolean;
            Idcrm?: string;
        };
        WextraIDsConfs: {
            name: string;
        }[];
        Wvar: string[];
        __webo_withdraw_fired?: boolean;
    }
}
