vim-webgl-component
Version:
A demonstration app built on top of the vim-webgl-viewer
51 lines (50 loc) • 1.71 kB
TypeScript
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<IEventHandler<TSender, TArgs>>}
* @implements {IEvent<TSender, TArgs>}
* @template TSender The sender type.
* @template TArgs The event arguments type.
*/
export declare class EventDispatcher<TSender, TArgs> extends DispatcherBase<IEventHandler<TSender, TArgs>> implements IEvent<TSender, TArgs> {
/**
* 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<TSender, TArgs>} The event.
*
* @memberOf EventDispatcher
*/
asEvent(): IEvent<TSender, TArgs>;
}