export declare enum ActionState { READY = 0, EXECUTING = 1, COMPLETED = 2, CANCELLED = 3 } export declare abstract class Action { get identifier(): string; readonly context: Context; result?: Result; error?: Error; onComplete?: (result: Result) => Promise; onError?: (error: Error) => Promise; onCancel?: () => Promise; private readonly stateMachine; constructor(context: Context); getState(): ActionState; start(): Promise; cancel(): void; protected abstract perform(): Promise; protected addValidTransition(from: ActionState, to: ActionState): void; private handleSuccess; private handleError; }