123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207 |
- import type { Action } from 'redux';
- import type { IsUnknownOrNonInferrable, IfMaybeUndefined, IfVoid, IsAny } from './tsHelpers';
- export declare type PayloadAction<P = void, T extends string = string, M = never, E = never> = {
- payload: P;
- type: T;
- } & ([M] extends [never] ? {} : {
- meta: M;
- }) & ([E] extends [never] ? {} : {
- error: E;
- });
- export declare type PrepareAction<P> = ((...args: any[]) => {
- payload: P;
- }) | ((...args: any[]) => {
- payload: P;
- meta: any;
- }) | ((...args: any[]) => {
- payload: P;
- error: any;
- }) | ((...args: any[]) => {
- payload: P;
- meta: any;
- error: any;
- });
- export declare type _ActionCreatorWithPreparedPayload<PA extends PrepareAction<any> | void, T extends string = string> = PA extends PrepareAction<infer P> ? ActionCreatorWithPreparedPayload<Parameters<PA>, P, T, ReturnType<PA> extends {
- error: infer E;
- } ? E : never, ReturnType<PA> extends {
- meta: infer M;
- } ? M : never> : void;
- export interface BaseActionCreator<P, T extends string, M = never, E = never> {
- type: T;
- match: (action: Action<unknown>) => action is PayloadAction<P, T, M, E>;
- }
- export interface ActionCreatorWithPreparedPayload<Args extends unknown[], P, T extends string = string, E = never, M = never> extends BaseActionCreator<P, T, M, E> {
-
- (...args: Args): PayloadAction<P, T, M, E>;
- }
- export interface ActionCreatorWithOptionalPayload<P, T extends string = string> extends BaseActionCreator<P, T> {
-
- (payload?: P): PayloadAction<P, T>;
- }
- export interface ActionCreatorWithoutPayload<T extends string = string> extends BaseActionCreator<undefined, T> {
-
- (noArgument: void): PayloadAction<undefined, T>;
- }
- export interface ActionCreatorWithPayload<P, T extends string = string> extends BaseActionCreator<P, T> {
-
- (payload: P): PayloadAction<P, T>;
- }
- export interface ActionCreatorWithNonInferrablePayload<T extends string = string> extends BaseActionCreator<unknown, T> {
-
- <PT extends unknown>(payload: PT): PayloadAction<PT, T>;
- }
- export declare type PayloadActionCreator<P = void, T extends string = string, PA extends PrepareAction<P> | void = void> = IfPrepareActionMethodProvided<PA, _ActionCreatorWithPreparedPayload<PA, T>, IsAny<P, ActionCreatorWithPayload<any, T>, IsUnknownOrNonInferrable<P, ActionCreatorWithNonInferrablePayload<T>, IfVoid<P, ActionCreatorWithoutPayload<T>, IfMaybeUndefined<P, ActionCreatorWithOptionalPayload<P, T>, ActionCreatorWithPayload<P, T>>>>>>;
- export declare function createAction<P = void, T extends string = string>(type: T): PayloadActionCreator<P, T>;
- export declare function createAction<PA extends PrepareAction<any>, T extends string = string>(type: T, prepareAction: PA): PayloadActionCreator<ReturnType<PA>['payload'], T, PA>;
- export declare function isAction(action: unknown): action is Action<unknown>;
- export declare function isActionCreator(action: unknown): action is BaseActionCreator<unknown, string> & Function;
- export declare function isFSA(action: unknown): action is {
- type: string;
- payload?: unknown;
- error?: unknown;
- meta?: unknown;
- };
- export declare function getType<T extends string>(actionCreator: PayloadActionCreator<any, T>): T;
- declare type IfPrepareActionMethodProvided<PA extends PrepareAction<any> | void, True, False> = PA extends (...args: any[]) => any ? True : False;
- export {};
|