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
;