import { FExecutionContext } from '@freemework/common'; import { WorkflowVirtualMachine } from '../WorkflowVirtualMachine.js'; import { Activity } from './Activity.js'; import { NativeActivity } from './NativeActivity.js'; export declare abstract class NativeBreakpointActivity extends NativeActivity { static of(vmContext: WorkflowVirtualMachine.Context): NativeBreakpointActivityElement; private static ofModifable; protected onExecute(executionContext: FExecutionContext): Promise; /** * Returns: * `true` - to allow continue execution * `false` - to sleep (idle for WfApp engine) */ protected abstract onExecuteBreakpoint(executionContext: FExecutionContext): Promise; } export declare namespace NativeBreakpointActivity { interface Element { readonly executeCounter: number; readonly lastExecuteDate: Date | null; readonly isIdle: boolean; } } export declare class NativeBreakpointActivityElement { protected readonly _vmContext: WorkflowVirtualMachine.Context; protected readonly _counterKey: string; protected readonly _lastexecKey: string; constructor(currentExecutionContext: WorkflowVirtualMachine.Context, activity: TNativeBreakpointActivity); get executeCounter(): number; get lastExecuteDate(): Date | null; get isIdle(): boolean; setIdle(): void; } export declare class BreakpointActivity extends NativeBreakpointActivity { readonly initialIsEnabled: boolean; createElement(vmContext: WorkflowVirtualMachine.Context): BreakpointActivityElement; private createInitableElement; constructor(opts?: BreakpointActivity.Opts); protected onExecuteBreakpoint(executionContext: FExecutionContext): Promise; } export declare namespace BreakpointActivity { interface Opts { /** * Default value for `isEnabled` flag. */ readonly initialIsEnabled?: boolean; } } export declare class BreakpointActivityElement extends NativeBreakpointActivityElement { protected readonly _enabledKey: string; constructor(vmContext: WorkflowVirtualMachine.Context, activity: TBreakpointActivity); /** * State flag: * - `true` - Breakpoint is ACTIVE. `WorkflowApplication` will going to sleep * when reached it. Should be approved by merchant via `resume` API to continue. * - `false` - Breakpoint is NOT active. `WorkflowApplication` will not interrupt by it. */ get isEnabled(): boolean; set isEnabled(value: boolean); } export declare abstract class NamedBreakpointActivity extends BreakpointActivity { private readonly _name; private readonly _description; constructor(opts: NamedBreakpointActivity.Opts); static findBreakpointActivity(rootActivity: Activity, breakpointName: string): NamedBreakpointActivity | null; get name(): string; get description(): string; } export declare namespace NamedBreakpointActivity { interface Opts extends BreakpointActivity.Opts { readonly name: string; readonly description: string; } }