/// import { EventEmitter } from 'events'; import { CustomError } from './logger'; import { EventType, InteractionPoint } from './types'; export interface AgentEventBase { on(eventName: EventType, handler: (e: T) => void): void; off(): void; } export interface AgentEvent extends AgentEventBase { on(): void; } export default class Events implements AgentEventBase { private observer; private emitter; private name; constructor(emitName: string, eventEmitter: EventEmitter, eventObserver: any); on(eventName: EventType, handler: (event: T) => void): void; off(): void; protected error(err: CustomError): void; protected warning(err: CustomError): void; protected validate(): boolean; protected emit(data: InteractionPoint): void; }