type Selector = (state: S) => R; type Listener = (state: S, prevState: S) => void; export interface ReadonlyAsyncStore { get(): S; subscribe(selector: Selector, listener: Listener): () => void; unsubscribe(listener: Listener): void; } export default class AsyncStore implements ReadonlyAsyncStore { _state: S; _listeners: [Selector, Listener][]; constructor(state: S); get(): S; set(cb: (state: S) => S): void; subscribe(selector: Selector, listener: Listener): () => void; unsubscribe(listener: Listener): void; } export declare function useReaction(store: ReadonlyAsyncStore, selector: Selector, effect: Listener): void; export declare function useSelector(store: ReadonlyAsyncStore, selector: Selector): R; export {};