import { DispatcherBase, IPropagationStatus } from "ste-core"; import { IEvent } from "./IEvent"; import { IEventHandler } from "./IEventHandler"; /** * Dispatcher implementation for events. Can be used to subscribe, unsubscribe * or dispatch events. Use the ToEvent() method to expose the event. * * @export * @class EventDispatcher * @extends {DispatcherBase>} * @implements {IEvent} * @template TSender The sender type. * @template TArgs The event arguments type. */ export declare class EventDispatcher extends DispatcherBase> implements IEvent { /** * Creates an instance of EventDispatcher. * * @memberOf EventDispatcher */ constructor(); /** * Dispatches the event. * * @param {TSender} sender The sender. * @param {TArgs} args The arguments. * @returns {IPropagationStatus} The propagation status to interact with the event * * @memberOf EventDispatcher */ dispatch(sender: TSender, args: TArgs): IPropagationStatus; /** * Dispatches the event in an async way. Does not support event interaction. * * @param {TSender} sender The sender. * @param {TArgs} args The arguments. * * @memberOf EventDispatcher */ dispatchAsync(sender: TSender, args: TArgs): void; /** * Creates an event from the dispatcher. Will return the dispatcher * in a wrapper. This will prevent exposure of any dispatcher methods. * * @returns {IEvent} The event. * * @memberOf EventDispatcher */ asEvent(): IEvent; }