/** * Chain linter — validates chains beyond Zod schema. * Catches: undefined variable refs, unreachable steps, unused outputs, * missing pre-tool fields, router route refs, evaluator targets, and more. */ import type { ChainDefinition } from "./types.js"; export interface LintIssue { level: "error" | "warning" | "info"; stepId?: string; message: string; } export declare function lintChain(chain: ChainDefinition): LintIssue[]; /** Dry-run a chain: resolve variables, show execution plan, no LLM calls. */ export declare function dryRunChain(chain: ChainDefinition, input: Record): { issues: LintIssue[]; plan: Array<{ wave: number; stepId: string; label: string; model: string; dependsOn: string[]; promptPreview: string; }>; estimatedCost: { totalSteps: number; parallelWaves: number; models: Record; }; };