import { BaseAction, IActionPayload } from './BaseAction'; import { State, StateReturn, BaseModel } from '../models/BaseModel'; export interface IActionNormal extends IActionPayload { modelName: string; effect: (state: State, action: IActionPayload) => StateReturn; after: null | ((action: IActionPayload) => void); afterDuration?: number; } export interface NormalSubscriber { when: string; then?: (state: State, action: IActionPayload) => StateReturn; after?: (action: IActionPayload) => void; duration?: number; } export declare class NormalAction, payload: Payload) => StateReturn, Payload, After extends (action: IActionPayload) => void> extends BaseAction { private effect; private readonly after?; private readonly afterDuration?; constructor(model: BaseModel, effect: ChangeState, after?: After, afterDuration?: number, fromSubClass?: boolean); protected setEffect(fn: ChangeState): void; /** * For model.subscriptions() */ onSuccess(changeState: NonNullable['then']>): NormalSubscriber; /** * For model.subscriptions() */ afterSuccess(callback: NonNullable['after']>, duration?: number): NormalSubscriber; protected action(): Function; /** * @override */ protected methods(): string[]; }