import { Subscribable } from "./subscribable"; export type EventListener = (data: T, entity: E) => any; export type PreventableEventListener = (data: T, prevent: () => void, entity: E) => any; export interface IBaklavaEventEmitter { events: Record | PreventableBaklavaEvent>; } /** Main event class for Baklava */ export declare class BaklavaEvent extends Subscribable> { protected readonly entity: E; constructor(entity: E); /** * Invoke all listeners * @param data The data to invoke the listeners with. */ emit(data: T): void; } /** * Extension for the {@link BaklavaEvent} class. A listener can return `false` to prevent * this event from happening. */ export declare class PreventableBaklavaEvent extends Subscribable> { protected readonly entity: E; constructor(entity: E); /** * Invoke all listeners. * @param data The data to invoke all listeners with * @returns An object, where the `prevented` field is `true` when one of the listeners requested to prevent the event, otherwise `false` */ emit(data: T): { prevented: boolean; }; }