@benshi.ai/js-sdk
Version:
Benshi SDK
29 lines (28 loc) • 1.35 kB
TypeScript
/// <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;