1 | import type { Middleware } from 'redux';
|
2 |
|
3 |
|
4 |
|
5 |
|
6 |
|
7 |
|
8 | export declare type IsAny<T, True, False = never> = true | false extends (T extends never ? true : false) ? True : False;
|
9 |
|
10 |
|
11 |
|
12 |
|
13 |
|
14 |
|
15 | export declare type IsUnknown<T, True, False = never> = unknown extends T ? IsAny<T, False, True> : False;
|
16 | export declare type FallbackIfUnknown<T, Fallback> = IsUnknown<T, Fallback, T>;
|
17 |
|
18 |
|
19 |
|
20 | export declare type IfMaybeUndefined<P, True, False> = [undefined] extends [P] ? True : False;
|
21 |
|
22 |
|
23 |
|
24 | export declare type IfVoid<P, True, False> = [void] extends [P] ? True : False;
|
25 |
|
26 |
|
27 |
|
28 | export declare type IsEmptyObj<T, True, False = never> = T extends any ? keyof T extends never ? IsUnknown<T, False, IfMaybeUndefined<T, False, IfVoid<T, False, True>>> : False : never;
|
29 |
|
30 |
|
31 |
|
32 |
|
33 |
|
34 |
|
35 |
|
36 |
|
37 | export declare type AtLeastTS35<True, False> = [True, False][IsUnknown<ReturnType<(<T>() => T)>, 0, 1>];
|
38 | /**
|
39 | * @internal
|
40 | */
|
41 | export declare type IsUnknownOrNonInferrable<T, True, False> = AtLeastTS35<IsUnknown<T, True, False>, IsEmptyObj<T, True, IsUnknown<T, True, False>>>;
|
42 | /**
|
43 | * Combines all dispatch signatures of all middlewares in the array `M` into
|
44 | * one intersected dispatch signature.
|
45 | */
|
46 | export declare type DispatchForMiddlewares<M> = M extends ReadonlyArray<any> ? UnionToIntersection<M[number] extends infer MiddlewareValues ? MiddlewareValues extends Middleware<infer DispatchExt, any, any> ? DispatchExt extends Function ? IsAny<DispatchExt, never, DispatchExt> : never : never : never> : never;
|
47 | /**
|
48 | * Convert a Union type `(A|B)` to an intersection type `(A&B)`
|
49 | */
|
50 | export declare type UnionToIntersection<U> = (U extends any ? (k: U) => void : never) extends (k: infer I) => void ? I : never;
|
51 |
|
52 |
|
53 |
|
54 |
|
55 |
|
56 |
|
57 |
|
58 | export declare type NoInfer<T> = [T][T extends any ? 0 : never];
|
59 | export declare type Omit<T, K extends keyof any> = Pick<T, Exclude<keyof T, K>>;
|
60 | export interface HasMatchFunction<T> {
|
61 | match: (v: any) => v is T;
|
62 | }
|
63 | export declare const hasMatchFunction: <T>(v: Matcher<T>) => v is HasMatchFunction<T>;
|
64 |
|
65 | export declare type Matcher<T> = HasMatchFunction<T> | ((v: any) => v is T);
|
66 | /** @public */
|
67 | export declare type ActionFromMatcher<M extends Matcher<any>> = M extends Matcher<infer T> ? T : never;
|
68 |
|
\ | No newline at end of file |