/** * Simple Dynamics event bus. Designed to be used for simple needs * and attached to a window that sub-iframes can access easily so their * WebResources can listen for events from across a Dynamics form * e.g. a grid select needs. */ /** Subscriber takes a simple event object differentiated by type. */ export declare type Subscriber = ({type: string}) => void; /** A thunk that unsubscribes when called. */ export declare type Cancellable = () => void; /** Small pubsub, synchronous dispatch. */ export declare class EventBus { private subscribers; unsubscribe(key: any): void; /** Subscriber is just a thunk. Thunk returned unsubscribes. */ subscribe(subscriber: Subscriber): () => void; /** Dispatch an event. All subscribers get all events like redux. */ dispatch(event: any): void; } export default EventBus; export interface Window { eventbus: EventBus; }