interface OnAction { (action: NoArgAction, updater: (state: S) => S): void;

(action: Action

, updater: (state: S, payload: P) => S): void; } interface StoreStatics { log: boolean; } export interface Store { log: boolean; state: S; subscribe(callback: (state: S) => void): () => void; } interface LocalStore extends Store { _isLocalStore: any; onDispose(cb: Function): LocalStore; } interface GlobalStore extends Store { _isGlobalStore: any; } interface LocalStoreFactory { (initialState: S, registerActions: (on: OnAction) => void): LocalStore; } interface GlobalStoreFactory { (initialState: S, registerActions: (on: OnAction) => void): GlobalStore; } export var Store: StoreStatics; export var GlobalStore: GlobalStoreFactory; export var LocalStore: LocalStoreFactory; export type NoArgAction = () => void; export type Action

= (payload: P) => void; export function Action(name: string): NoArgAction; export function Action

(name: string): Action

;