import { CaseReducerActions, Reducer, SliceCaseReducers } from '@reduxjs/toolkit'; import StateStatusEnum from '../constants/StateStatusEnum'; export interface ISlice, TSliceSelectors extends ISliceSelectors> { Name: string; Reducer: Reducer; Actions: CaseReducerActions; Selectors: TSliceSelectors; } export interface ISliceSelectors { selectSliceState: (state: TGlobalState) => TSliceState; } export interface IMetaSliceSelectors { selectStatus: (state: TGlobalState) => TStatusEnum; selectError: (state: TGlobalState) => TError | null; selectLastModified: (state: TGlobalState) => string | null; selectLastHydrated: (state: TGlobalState) => string | null; }