import { Initializable } from "./Factory"; export declare type ActionListener = (payload: T) => void; export interface IEmptyActionPayload { } export interface IActionPayload { } export declare abstract class ActionCreatorBase extends Initializable { } export declare abstract class ActionsHubBase extends Initializable { } export declare class Action { /** * A mutex to ensure that only one action is executing at any time. * This prevents cascading actions. */ private static executing; private listeners; invoke(payload: T): void; /** * Add listener to the action * @param listener Listener to add */ addListener(listener: ActionListener): void; /** * Remove listener from the action * @param listener Listener to remove */ removeListener(listener: ActionListener): void; }