UNPKG

easy-peasy-classes

Version:

easy-peasy enhanced with classes, full typescript type safety, nested store stuctures and model inheritance

19 lines (18 loc) 1.66 kB
import * as easyPeasy from "easy-peasy"; import { ToStoreType } from './types'; export declare function createStore<T extends object = {}>(storeModel: T, config?: easyPeasy.EasyPeasyConfig): easyPeasy.Store<ToStoreType<T>, any>; interface createTypedHooksReturn<Model extends object> { useStoreActions: <Result>(mapActions: (actions: easyPeasy.Actions<ToStoreType<Model>>) => Result) => Result; useStoreState: <Result>(mapState: (state: easyPeasy.State<ToStoreType<Model>>) => Result, dependencies?: any[]) => Result; useStoreDispatch: () => easyPeasy.Dispatch<ToStoreType<Model>>; } export declare type getStoreState_<Model extends object> = <Result>(mapState: (state: easyPeasy.State<ToStoreType<Model>>) => Result, dependencies?: any[]) => Result; export declare type getStoreActions_<Model extends object> = <Result>(mapActions: (actions: easyPeasy.Actions<ToStoreType<Model>>) => Result) => Result; export declare function createTypedHooks<Model extends object>(): createTypedHooksReturn<Model>; interface createLocalTypedHooksReturn<LocalModel extends object> { useLocalActions: <Result>(mapActions: (actions: easyPeasy.Actions<ToStoreType<LocalModel>>) => Result) => Result; useLocalState: <Result>(mapState?: (state: easyPeasy.State<ToStoreType<LocalModel>>) => Result, dependencies?: any[]) => Result; } declare type HolderMapFn<StoreModel extends object> = (store: ToStoreType<StoreModel>) => object; export declare function createLocalHooksFactory<StoreModel extends object>(hooks: any): <LocalModel extends object>(holderMapFn: HolderMapFn<StoreModel>) => createLocalTypedHooksReturn<LocalModel>; export {};