import React from 'react'; import { PersistorOptions } from '../utils/createPersistor'; declare type UpdateConfig = {}; export declare type Updater = (draft: T) => R | void; export declare type UpdateState void> = (updater: U, callback?: (state: Parameters[0]) => void) => void; export declare type Call = (...args: Args) => O; export declare type Logger = (input: { name: string; state: T; }) => void; declare type Options = { fallback?: React.ReactNode; logger?: Logger; init?: (state: T) => Promise | T; immer?: boolean; } & Partial>; export declare const createStoreProvider: (defaultState: T, options?: Options | undefined) => { Context: React.Context<{ state: T; getState: () => T; subscribe: (subscriber: (value: T) => void) => import("../utils/BehaviorSubject").Subscription; update: (updater: Updater) => Promise; set: (nextValue: T) => void; clear: () => void; purge: () => Promise; connect: (component: React.Component, selector: (state: T) => Y, fieldName?: string) => Y; }>; Provider: (props: { children: React.ReactNode; value?: T | undefined; fallback?: any; }) => JSX.Element; useSelector: (selector: (state: T) => Y_1) => [Y_1, (updater: Updater) => Promise, { state: T; getState: () => T; subscribe: (subscriber: (value: T) => void) => import("../utils/BehaviorSubject").Subscription; update: (updater: Updater) => Promise; set: (nextValue: T) => void; clear: () => void; purge: () => Promise; connect: (component: React.Component, selector: (state: T) => Y, fieldName?: string) => Y; }]; store: { state: T; getState: () => T; subscribe: (subscriber: (value: T) => void) => import("../utils/BehaviorSubject").Subscription; update: (updater: Updater) => Promise; set: (nextValue: T) => void; clear: () => void; purge: () => Promise; connect: (component: React.Component, selector: (state: T) => Y, fieldName?: string) => Y; }; }; export {};