import { BlinkEvent } from './types'; import { PlayerEvent } from './reducers/player'; export interface PageInitInput { abCookie?: number; commercialSegments?: string; pageId?: string; pageType?: string; pageView?: string; previousPageView?: string; referrer?: string; site: string; url: string; userId: string; } export interface PageLoadInput { clientHeight?: number; clientWidth?: number; pageId?: string; plussData: { hasAccess: boolean; customerNumber: string; }; scrollHeight?: number; url: string; } export interface VideoLoadInput { videoId: string; duration: number; position: number; title?: string; width: number; height: number; viewable: boolean; muted: boolean; quality?: string; withAdBlock: boolean; time?: Date; canBeSticky: boolean; } export interface VideoInteractionInput { videoId: string; playerId: string; time?: Date; pageId?: string; } export interface VideoPlayInput extends VideoInteractionInput { muted: boolean; volume: number; position: number; reason: 'autostart' | 'interaction' | 'related-auto'; } export interface VideoStopInput extends VideoInteractionInput { muted: boolean; volume: number; position: number; reason: 'pause' | 'complete' | 'exit'; } export interface VideoAdInput extends VideoInteractionInput { adPosition: 'pre' | 'mid' | 'post'; system?: string; title?: string; client?: string; viewable?: number; adId?: string; isBumper?: boolean; creativeId?: string; duration?: number; } export interface PlayerStickyInput extends VideoInteractionInput { sticky: boolean; closed?: boolean; } export interface PlayerHiddenInput extends PlayerEvent { playerId: string; reason: 'viewable' | 'tabclose' | 'tabhide'; pageId?: string; } export interface PlayerShownInput extends PlayerEvent { playerId: string; reason: 'viewable' | 'tabactive'; pageId?: string; } export interface ClickInput { id?: string; url?: string; context?: string[]; pageId?: string; } export interface CustomInput { customDomain: string; customType: string; customContent?: string; customValue?: number; pageId?: string; time?: Date; } export interface ArticlePreviewScreenEnterInput { context?: string[]; height?: number; pageId?: string; personalizationSystemUsed?: string; personalizationParametersRequested?: string; position?: number; time?: Date; title: string; url: string; width?: number; } export interface BoxScreenEnterInput { id: string; title?: string; height?: number; width?: number; pageId?: string; time?: Date; } export interface DFPSlotRenderEndedInput { adUnitPath: string; advertiserId: number; bidder: string; campaignId: number; creativeId: number; id: string; lineItemId: number; prebidWinningBid: string; scrollTop: number; size: number[]; sourceAgnosticCreativeId: number; sourceAgnosticLineItemId: number; } export interface DfpImpressionViewableInput { id: string; scrollTop: number; time?: Date; } export interface DfpSlotOnloadInput { id: string; name: string; scrollTop: number; time?: Date; } export interface AdLoadInput { id: string; offsetHeight: number; offsetTop: number; scrollTop: number; } export interface ArticlePreviewInfo { id: string; clicked: boolean; inscreenTime: number; title: string; } export interface PageActivityStartInput { url: string; pageId?: string; pageScrollOffsetY?: number; time?: Date; } export interface PageActivityStopInput { url: string; pageId?: string; time?: Date; } export interface GetPageInput { url: string; pageId?: string; time?: Date; } export interface PerformanceInput { performanceTimings: PerformanceTimings; } export interface PerformanceTimings { domContentLoadedEventEnd: number; domContentLoadedEventStart: number; domInteractive: number; loadEventEnd: number; loadEventStart: number; responseEnd: number; responseStart: number; } export interface BlinkProps { send: (events: BlinkEvent[]) => void; sendDirect: (events: BlinkEvent[]) => void; useDevTools?: boolean; } export interface Blink { pageInit(input: PageInitInput): void; pageLoad(input: PageLoadInput): void; click(input: ClickInput): void; custom(input: CustomInput): void; adScreenEnter(input: { id: string; pageId?: string; time?: Date; }): void; adScreenExit(input: { id: string; pageId?: string; time?: Date; }): void; adScreenEnter0(input: { id: string; pageId?: string; time?: Date; }): void; adScreenExit0(input: { id: string; pageId?: string; time?: Date; }): void; articlePreviewScreenEnter(input: ArticlePreviewScreenEnterInput): void; pageActivityStart(input: PageActivityStartInput): void; pageActivityStop(input: PageActivityStopInput): void; boxScreenEnter(input: BoxScreenEnterInput): void; dfpSlotRenderEnded(input: DFPSlotRenderEndedInput): void; dfpImpressionViewable(input: DfpImpressionViewableInput): void; dfpSlotOnload(input: DfpSlotOnloadInput): void; adLoad(input: AdLoadInput): void; sendAllEvents(time?: Date): void; getStore(): any; getPage(input: GetPageInput): any; getArticlePreview(input: { url: string; pageId?: string; time?: Date; }): any; screenHide(time?: Date): void; screenShow(time?: Date): void; videoLoad(input: VideoLoadInput): void; videoPlay(input: VideoPlayInput): void; videoStop(input: VideoStopInput): void; videoAd(input: VideoAdInput): void; playerSticky(input: PlayerStickyInput): void; playerShown(input: PlayerShownInput): void; playerHidden(input: PlayerHiddenInput): void; performance(input: PerformanceInput): void; } export default function createBlink({ send, sendDirect, useDevTools, }: BlinkProps): Blink;