import type { StringKeys } from './core-types'; import type { Action, ActionCreatorsMapBase, ActionFromActionCreator, ActionsCollectionMapBase, AnyAction } from './action'; import { MovexMasterContext } from './masterContext'; export type MovexReducerFromActionsMap = { [k in StringKeys]: (state: TState, action: ActionFromActionCreator) => TState; }; export type MovexReducerMap = { [k in StringKeys]: (state: TState, action: Action) => TState; }; export type MovexReducer = ((state: S, action: A) => S) & { $canReconcileState?: (s: S) => boolean; $transformState?: (s: S, masterContext: MovexMasterContext) => S; }; export type GetReducerState S, S = any> = ReturnType; export type GetReducerAction S, S = any> = Parameters[1];