opendash
Version:
open.DASH data visualization framework
16 lines (15 loc) • 652 B
TypeScript
declare type Selector<T, ReturnType> = (state: T) => ReturnType;
declare type SubscriptionCallback<T> = () => void;
declare type ProducerCallback<T> = (currentState: T) => T | void;
export declare class Store<T> {
private _state;
private watcher;
private selectorCache;
constructor(initialState: T);
state(): T;
select<ReturnType>(selector: Selector<T, ReturnType>): ReturnType;
update(callbackOrState: T | ProducerCallback<T>): void;
subscribe(callback: SubscriptionCallback<T>): () => void;
subscribeSelection(selector: Selector<T, any>, callback: SubscriptionCallback<T>): () => void;
}
export {};