import type { UnknownAction } from 'redux'; import type { ThunkMiddleware } from 'redux-thunk'; import type { ActionCreatorInvariantMiddlewareOptions } from './actionCreatorInvariantMiddleware'; import type { ImmutableStateInvariantMiddlewareOptions } from './immutableStateInvariantMiddleware'; import type { SerializableStateInvariantMiddlewareOptions } from './serializableStateInvariantMiddleware'; import type { ExcludeFromTuple } from './tsHelpers'; import { Tuple } from './utils'; interface ThunkOptions { extraArgument: E; } interface GetDefaultMiddlewareOptions { thunk?: boolean | ThunkOptions; immutableCheck?: boolean | ImmutableStateInvariantMiddlewareOptions; serializableCheck?: boolean | SerializableStateInvariantMiddlewareOptions; actionCreatorCheck?: boolean | ActionCreatorInvariantMiddlewareOptions; } export type ThunkMiddlewareFor = O extends { thunk: false; } ? never : O extends { thunk: { extraArgument: infer E; }; } ? ThunkMiddleware : ThunkMiddleware; export type GetDefaultMiddleware = (options?: O) => Tuple], never>>; export declare const buildGetDefaultMiddleware: () => GetDefaultMiddleware; export {};