type StateReducerProp = (state: S, actionAndChanges: (A & { props: any; }) & { changes: Partial; }) => Partial; export type Props = Partial & { stateReducer: StateReducerProp; onStateChange?: (changes: { type: A['type']; } & Partial) => void; }; export type Action> = A & { props: P; }; export type Reducer = (state: S, action: A & { props: any; }) => Partial; export {};