UNPKG

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