/// import { EventEmitter } from 'events'; import { Dataset } from './typings'; export declare enum ImpressionObservedTypes { View = "view", Hide = "hide" } declare interface BsViewableImpressionObserver { on(event: U, listener: BsViewableImpressionObserverEvents[U]): this; emit(event: U, ...args: Parameters): boolean; } interface BsViewableImpressionObserverEvents { [ImpressionObservedTypes.View]: (id: string, item: Dataset) => void; [ImpressionObservedTypes.Hide]: (id: string) => void; } declare class BsViewableImpressionObserver extends EventEmitter { private mutationObserver; private intersectionObserver; private containerSelector; private itemSelector; constructor(intersectionThreshold: number); intersectionHandler(entries: any, observer: any): void; start(containerClassname: any, itemClassname: any): void; stop(): void; } export default BsViewableImpressionObserver;