/** @module run */ import { Parameters } from './Parameters'; /** * Interface for components that can be asynchronously notified. * The notification may include optional argument that describe * the occured event. * * @see [[Notifier]] * @see [[IExecutable]] * * ### Example ### * * class MyComponent implements INotifable { * ... * public notify(correlationId: string, args: Parameters): void { * console.log("Occured event " + args.getAsString("event")); * } * } * * let myComponent = new MyComponent(); * * myComponent.notify("123", Parameters.fromTuples("event", "Test Event")); */ export interface INotifiable { /** * Notifies the component about occured event. * * @param correlationId (optional) transaction id to trace execution through call chain. * @param args notification arguments. */ notify(correlationId: string, args: Parameters): void; }