declare type Selector = (state: T) => ReturnType; declare type SubscriptionCallback = () => void; declare type ProducerCallback = (currentState: T) => T | void; export declare class Store { private _state; private watcher; private selectorCache; constructor(initialState: T); state(): T; select(selector: Selector): ReturnType; update(callbackOrState: T | ProducerCallback): void; subscribe(callback: SubscriptionCallback): () => void; subscribeSelection(selector: Selector, callback: SubscriptionCallback): () => void; } export {};