UNPKG

@benshi.ai/js-sdk

Version:

Benshi SDK

29 lines (28 loc) 1.35 kB
/// <reference types="node" /> import { EventEmitter } from 'events'; import BsViewableImpressionObserver from './ViewableImpressionObserver'; import { Dataset, IImpressionManager, ImpressionEventType, ViewableImpressionOptions } from './typings'; declare interface ViewableImpressionEngine { on<U extends keyof BsViewableImpressionManagerEvents>(event: U, listener: BsViewableImpressionManagerEvents[U]): this; emit<U extends keyof BsViewableImpressionManagerEvents>(event: U, ...args: Parameters<BsViewableImpressionManagerEvents[U]>): boolean; } interface BsViewableImpressionManagerEvents { [ImpressionEventType.Impression]: (item: Dataset) => void; } declare class ViewableImpressionEngine extends EventEmitter implements IImpressionManager { private alreadyVisibleImpressed; private pendingImpressions; private impressionObserver; private containerClassname; private itemClassname; private appData; private options; constructor(impressionObserver: BsViewableImpressionObserver, options: Partial<ViewableImpressionOptions>); triggerPendingImpressions(): void; start(containerClassname: any, itemClassname: any, appData: any): void; stop(): void; restart(appData: any): void; add(id: any, data: Dataset): void; remove(id: any): void; } export default ViewableImpressionEngine;