import { Flow, Step, StepType } from '../types'; import { Logger } from '../util/logger'; /** * Resolves policies (timeout, retryPolicy, etc.) for steps and flows according to metaschema precedence. * * Precedence order: * 1. step.policies?.[policyName] * 2. step.[deprecated field] (if applicable) * 3. flow.policies?.step?.[stepType]?.[policyName] * 4. flow.policies?.step?.[policyName] (default for all steps) * 5. flow.policies?.global?.[policyName] * 6. fallback/default */ export declare class PolicyResolver { private flow; private logger; private overrides; constructor(flow: Flow, logger?: Logger, overrides?: Record); /** * Resolve a policy value for a given step, stepType, and policy name. * @param step The step to resolve for * @param stepType The type of the step (request, transform, etc) * @param policyName The policy name (e.g., 'timeout', 'retryPolicy') * @param defaultValue (optional) Fallback value if nothing is found */ resolvePolicy(step: Step, stepType: StepType, policyName: string, defaultValue?: T): T | undefined; /** * Helper to resolve timeout policy (returns the timeout number or a sensible default) */ resolveTimeout(step: Step, stepType: StepType): number; /** * Helper to resolve retryPolicy (returns the retryPolicy object or undefined) */ resolveRetryPolicy(step: Step, stepType: StepType, fallback?: any): any; /** * Helper to resolve expression evaluation timeout (returns the timeout number or a sensible default) */ resolveExpressionTimeout(step: Step, stepType: StepType): number; }