import type { ContextOperationRequest } from '../context.ts'; import type { ComposedActivityInterceptor, ComposedWorkflowInterceptor } from '../interceptor.ts'; import type { ActivityContext, ActivityVerificationResult, OperationOutcome } from '../types.ts'; import { buildActivityVerificationContext, type ActivityReconciliationMetadata } from './activity-reconciliation.ts'; import type { EngineInternals } from './internals.ts'; import type { SpeculativeExecutionState } from './speculative-execution-state.ts'; import type { CapturedRejectionReason } from './strategy-helpers.ts'; export type ActivityFunctionWithMetadata = ((...arguments_: unknown[]) => unknown) & ActivityReconciliationMetadata & { verify?: (result: unknown, context?: ReturnType) => Promise | ActivityVerificationResult; compensate?: (input: unknown, output: unknown) => Promise | void; }; type ActivityOperation = Extract; export interface ActivityExecutionOptions { reconciliationCompletion?: 'stage-with-workflow-commit' | 'immediate-fenced'; beforeImmediateReconciliationCommit?: () => void | (() => void); } export type ActivityOperationCallbacks = { runOperationWithResult: (workflowId: string, operation: ActivityOperation, execute: () => Promise) => Promise; finalizePendingTimelineEntry: (workflowId: string, status: 'completed' | 'failed', value: unknown) => void; feedOperationResult: (workflowId: string, outcome: OperationOutcome, originalReason?: CapturedRejectionReason) => void; getComposedActivityInterceptor: () => ComposedActivityInterceptor | null; getComposedWorkflowInterceptor: () => ComposedWorkflowInterceptor | null; }; export declare function buildActivityVerification(_internals: EngineInternals, activityName: string, verify: ActivityFunctionWithMetadata['verify'], context: ReturnType, result: unknown): Promise; export declare function buildActivityCompensation(internals: EngineInternals, workflowId: string, operation: ActivityOperation, result: unknown): (() => Promise) | undefined; export declare function invokeWorkerActivity(internals: EngineInternals, operationId: string, activityName: string, input: unknown, attempt: number, workflowExecutionToken: string | undefined, activityAttemptToken: string | undefined): Promise; export declare function invokeInlineActivity(internals: EngineInternals, workflowId: string, operation: ActivityOperation, activityContext: ActivityContext, _activityName: string, input: unknown): unknown; /** * Execute an activity function, dispatching to a Web Worker pool when * `activityExecution` is configured, or running inline on the main thread. */ export declare function executeActivity(internals: EngineInternals, workflowId: string, operation: ActivityOperation, callbacks: ActivityOperationCallbacks, attempt?: number, coordinatorSignal?: AbortSignal): Promise; export declare function executeActivityOperationResult(internals: EngineInternals, workflowId: string, operation: ActivityOperation, callbacks: ActivityOperationCallbacks, coordinatorSignal?: AbortSignal, speculativeState?: SpeculativeExecutionState, executionOptions?: ActivityExecutionOptions): Promise; export declare function processActivityOperation(internals: EngineInternals, workflowId: string, operation: ActivityOperation, callbacks: ActivityOperationCallbacks): Promise; export {};