///
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;