UNPKG

2.06 kBTypeScriptView Raw
1import type { Middleware, AnyAction } from 'redux';
2import type { ThunkMiddleware } from 'redux-thunk';
3import type { ImmutableStateInvariantMiddlewareOptions } from './immutableStateInvariantMiddleware';
4import type { SerializableStateInvariantMiddlewareOptions } from './serializableStateInvariantMiddleware';
5import { MiddlewareArray } from './utils';
6interface ThunkOptions<E = any> {
7 extraArgument: E;
8}
9interface GetDefaultMiddlewareOptions {
10 thunk?: boolean | ThunkOptions;
11 immutableCheck?: boolean | ImmutableStateInvariantMiddlewareOptions;
12 serializableCheck?: boolean | SerializableStateInvariantMiddlewareOptions;
13}
14export declare type ThunkMiddlewareFor<S, O extends GetDefaultMiddlewareOptions = {}> = O extends {
15 thunk: false;
16} ? never : O extends {
17 thunk: {
18 extraArgument: infer E;
19 };
20} ? ThunkMiddleware<S, AnyAction, E> : ThunkMiddleware<S, AnyAction, null> | ThunkMiddleware<S, AnyAction>;
21export declare type CurriedGetDefaultMiddleware<S = any> = <O extends Partial<GetDefaultMiddlewareOptions> = {
22 thunk: true;
23 immutableCheck: true;
24 serializableCheck: true;
25}>(options?: O) => MiddlewareArray<Middleware<{}, S> | ThunkMiddlewareFor<S, O>>;
26export declare function curryGetDefaultMiddleware<S = any>(): CurriedGetDefaultMiddleware<S>;
27/**
28 * Returns any array containing the default middleware installed by
29 * `configureStore()`. Useful if you want to configure your store with a custom
30 * `middleware` array but still keep the default set.
31 *
32 * @return The default middleware used by `configureStore()`.
33 *
34 * @public
35 *
36 * @deprecated Prefer to use the callback notation for the `middleware` option in `configureStore`
37 * to access a pre-typed `getDefaultMiddleware` instead.
38 */
39export declare function getDefaultMiddleware<S = any, O extends Partial<GetDefaultMiddlewareOptions> = {
40 thunk: true;
41 immutableCheck: true;
42 serializableCheck: true;
43}>(options?: O): MiddlewareArray<Middleware<{}, S> | ThunkMiddlewareFor<S, O>>;
44export {};