/// import { EventEmitter } from 'events'; import BsViewableImpressionObserver from './ViewableImpressionObserver'; import { Dataset, IImpressionManager, ImpressionEventType, ViewableImpressionOptions } from './typings'; declare interface ViewableImpressionEngine { on(event: U, listener: BsViewableImpressionManagerEvents[U]): this; emit(event: U, ...args: Parameters): 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); 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;