UNPKG

@gongt/ts-stl-client

Version:
29 lines (28 loc) 1.37 kB
import { Action } from "redux"; import { IVirtualStoreConstructor } from "./virtual-store"; export declare type IAData = any; export interface IActionData<IData extends IAData> { payload?: IData; virtualStorage?: string; } export interface IAction<IData extends IAData> extends IActionData<IData>, Action { } export interface IReducer<IData extends IAData, ValueInterface> { (state: ValueInterface, action: ReduxAction<IData, ValueInterface>): ValueInterface | void; } export interface ISingleReducer<ValueInterface, IData extends IAData> { (state: ValueInterface, action: IData, rawAction: IAction<IData>): ValueInterface | void; displayName?: string; } export interface IReduxActionConstructor<IData extends IAData, ValueInterface = void> { new (payload: IData, virtualStore?: IVirtualStoreConstructor<any>): ReduxAction<IData, ValueInterface>; } export declare abstract class ReduxAction<IData extends IAData, VI = void> implements IAction<IData> { readonly type: string; readonly payload: IData; readonly virtualStorage?: string; constructor(payload: IData, VirtualStore?: IVirtualStoreConstructor<VI> | '*'); static is(act: IAction<any>): boolean; static compare<VI>(act: IAction<any>, Action: IReduxActionConstructor<any, VI>, VirtualStore?: IVirtualStoreConstructor<VI>): boolean; toJSON(): IAction<IData>; }