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