import type { Store, CreateSliceOptions, Slice, ImmutableStateInvariantMiddlewareOptions, SerializableStateInvariantMiddlewareOptions, Middleware, ValidateSliceCaseReducers, ReducersMapObject, ReducerCreators } from '@reduxjs/toolkit'; import type { Api, BaseQueryFn, EndpointDefinitions } from '@reduxjs/toolkit/query'; export interface IgnoreOptions { ignoredPaths?: Array; ignoredActions?: Array; } export type QueryApi = Api; export type SliceOptionsItem = CreateSliceOptions | Slice | QueryApi; export interface RuntimeReduxToolkit { initialState?: any | (() => any); ignoreOptions?: IgnoreOptions; warnAfter?: number; reducers?: ReducersMapObject; middlewares?: Array; treatStore?(store: Store): void; } export type RuntimeReduxToolkitApply = RuntimeReduxToolkit | (() => RuntimeReduxToolkit); export interface GetDefaultMiddlewareOptions { immutableCheck?: ImmutableStateInvariantMiddlewareOptions; serializableCheck?: SerializableStateInvariantMiddlewareOptions; } export type SliceReducers = ValidateSliceCaseReducers | ((creators: ReducerCreators) => any);