/** * Arazzo Runtime Expression Resolver * * Resolves Arazzo runtime expressions against execution context. * Supports the full Arazzo 1.0.1 expression syntax: * * $inputs.fieldName → workflow input values * $steps.stepId.outputs.field → previous step outputs * $statusCode → HTTP response status code * $response.body → full response body * $response.body.field → nested response body field * $response.header.name → response header value * $url → request URL * $method → request HTTP method */ import type { StepResult } from './types.js'; export interface ExpressionContext { /** Workflow inputs */ inputs: Record; /** Completed step results, keyed by stepId */ steps: Record; /** Current step's response (available during output resolution) */ currentResponse?: { status: number; headers: Record; body: unknown; }; /** Current request info */ currentRequest?: { url: string; method: string; }; } /** * Resolve an Arazzo runtime expression against the given context. * * @param expression - The expression string (e.g., "$inputs.amount") * @param context - The current execution context * @returns The resolved value */ export declare function resolveExpression(expression: string, context: ExpressionContext): unknown; /** * Deep-resolve all expressions in an object/value tree. * Walks arrays and objects recursively, resolving any string that starts with $. */ export declare function resolveDeep(value: unknown, context: ExpressionContext): unknown; /** * Check if a string contains an Arazzo runtime expression. */ export declare function isExpression(value: unknown): boolean; /** * Extract all expression references from a value tree. */ export declare function extractExpressionRefs(value: unknown): string[]; export declare class ExpressionError extends Error { expression: string; constructor(message: string, expression: string); } //# sourceMappingURL=expression-resolver.d.ts.map