import { Draft } from 'immer'; export declare type StateProducer = (draft: Draft) => Draft | void; export declare type StateListener = (state: State | undefined) => void; export declare type Unsubscribe = () => void; export interface Store { getCurrentState(): State | undefined; subscribe(listener: StateListener): Unsubscribe; createStoreAction Promise> = (payload: any) => Promise>>(action: Action): Action; createStoreAction Promise> = () => Promise>>(action: Action): Action; } export declare function createStore(currentState?: State): Store;