import type { DispatchHandle } from '@sapiom/tools'; export declare const DIRECTIVE_KIND: { readonly CONTINUE: "continue"; readonly RETRY: "retry"; readonly PAUSE_UNTIL_SIGNAL: "pause_until_signal"; readonly TERMINATE: "terminate"; readonly FAIL: "fail"; }; export type DirectiveKind = (typeof DIRECTIVE_KIND)[keyof typeof DIRECTIVE_KIND]; export type NextStepDirective = ContinueDirective | RetryDirective | PauseUntilSignalDirective | TerminateDirective | FailDirective; export interface ContinueDirective { readonly kind: typeof DIRECTIVE_KIND.CONTINUE; readonly stepName: string; readonly input?: unknown; } export interface RetryDirective { readonly kind: typeof DIRECTIVE_KIND.RETRY; readonly delayMs?: number; readonly reason?: string; } export interface PauseUntilSignalDirective { readonly kind: typeof DIRECTIVE_KIND.PAUSE_UNTIL_SIGNAL; readonly signal: { readonly name: string; readonly correlationId?: string; }; readonly timeoutMs?: number; readonly resumeStep?: string; } export interface TerminateDirective { readonly kind: typeof DIRECTIVE_KIND.TERMINATE; readonly reason?: string; } export interface FailDirective { readonly kind: typeof DIRECTIVE_KIND.FAIL; readonly reason?: string; } export declare function isContinue(d: NextStepDirective): d is ContinueDirective; export declare function isRetry(d: NextStepDirective): d is RetryDirective; export declare function isPause(d: NextStepDirective): d is PauseUntilSignalDirective; export declare function isTerminate(d: NextStepDirective): d is TerminateDirective; export declare function isFail(d: NextStepDirective): d is FailDirective; export interface Goto { readonly kind: typeof DIRECTIVE_KIND.CONTINUE; readonly stepName: Target; readonly input?: unknown; } export interface Terminate { readonly kind: typeof DIRECTIVE_KIND.TERMINATE; readonly output?: unknown; readonly reason?: string; } export interface Fail { readonly kind: typeof DIRECTIVE_KIND.FAIL; readonly reason?: string; readonly output?: unknown; } export interface Pause { readonly kind: typeof DIRECTIVE_KIND.PAUSE_UNTIL_SIGNAL; readonly signal: { readonly name: string; readonly correlationId?: string; }; readonly resumeStep?: Resume; readonly timeoutMs?: number; readonly output?: unknown; } export interface Retry { readonly kind: typeof DIRECTIVE_KIND.RETRY; readonly delayMs?: number; readonly reason?: string; } export declare function goto(target: Target, output?: unknown): Goto; export declare function terminate(output?: unknown, opts?: { reason?: string; }): Terminate; export declare function fail(reason?: string, opts?: { output?: unknown; }): Fail; export declare function pauseUntilSignal(args: { signal: string; resumeStep?: Resume; correlationId?: string; timeoutMs?: number; output?: unknown; }): Pause; export declare function pauseUntilSignal(handle: DispatchHandle | Promise, opts?: { resumeStep?: Resume; timeoutMs?: number; output?: unknown; }): Promise>; export declare function retry(opts?: { delayMs?: number; reason?: string; }): Retry;