import { ComponentPathSegment } from '@swissfederalrailways/dom-component-path'; declare interface CustomEventParameters { eventName: string; primaryCategory: string; [key: string]: any; } export declare const dataLayerApi: { pageLoaded(params: PageLoadedParameters): void; searchLoaded(params: SearchLoadedParameters): void; dataLayerReady(): void; trackAccordionAction(params: TrackAccordionParameters): void; trackGenericNavigation(params: NavigationParameters): void; trackGenericClick(params: EventParameters): void; trackTeaserImpression(params: TrackTeaserImpressionParameters): void; trackTeaserNavigation(params: TrackTeaserNavigationParameters): void; trackImpression(params: TrackImpressionParameters): void; trackDownload(params: TrackDownloadParameters): void; trackSearchResultNavigation(params: TrackSearchResultNavigationParameters): void; trackCustomNavigation(params: TrackCustomNavigationParameters): void; updateUserLoginType(params: UserLoginTypeParameters): void; sendCustomEvent(params: CustomEventParameters): void; }; declare interface EventParameters { component: ComponentPathSegment[] | Element; label: string; location?: string; variant?: string; detail?: string; } export declare function ignoreTextOfElementsWith(...classNames: string[]): void; declare type Language = "de" | "fr" | "it" | "en"; declare type LoginStatus = "1" | "0"; declare type LoginStatusInput = LoginStatus | 1 | 0; declare interface NavigationParameters extends EventParameters { destination: string; callback?: () => void; } export declare function observeImpressionElement(element: HTMLElement): void; export declare function observeTeaserElement(element: HTMLElement): void; declare interface PageLoadedParameters { pageInstanceID: string; pageID?: string; pageName: string; destinationURI: string; sysEnv?: "production" | string; language: Language; primaryCategory: string; errorCode?: string; errorMessage?: string; user?: UserInformationParameters; search?: SearchLoadedParameters; referrer?: string; } export declare function scanForElementsToTrack(): void; declare type SearchLevel = "primary" | "secondary"; declare interface SearchLoadedParameters { value: string; results: number; level: SearchLevel; } declare interface TrackAccordionParameters extends EventParameters { action: "open" | "close"; headline: string; } declare interface TrackCustomNavigationParameters extends NavigationParameters { primaryCategory?: string; action?: string; } declare interface TrackDownloadParameters extends NavigationParameters { filename: string; } declare interface TrackImpressionParameters extends EventParameters { type: string; headline: string; } declare interface TrackSearchResultNavigationParameters extends NavigationParameters { value: string; type?: "autosuggest" | "most searched"; position: number; page: number; level: SearchLevel; } declare interface TrackTeaserImpressionParameters extends EventParameters { destination: string; headline: string; topic?: string; mustRead?: boolean; isAccessibleExternally?: boolean; targetGroup?: string[]; theme?: string[]; division?: string[]; postType?: string[]; contentRegion?: string[]; } declare interface TrackTeaserNavigationParameters extends NavigationParameters { headline: string; topic?: string; mustRead?: boolean; isAccessibleExternally?: boolean; targetGroup?: string[]; theme?: string[]; division?: string[]; postType?: string[]; contentRegion?: string[]; } export declare function unobserveImpressionElement(element: HTMLElement): void; export declare function unobserveTeaserElement(element: HTMLElement): void; declare interface UserInformationParameters { loginType?: string; loginStatus?: LoginStatusInput; language?: Language; UUID?: string; age?: string; gender?: "f" | "m" | "n"; zipcode?: string; } declare interface UserLoginTypeParameters { loginType: string; } export declare const version: string; export { }