import type { StructuredError, AnalysisDiagnostic, VerificationCoverage } from "./errors/structured-errors.js"; import { type TypedModuleInfo } from "./checker/check.js"; import type { EdictModule } from "./ast/nodes.js"; export interface CheckResult { ok: boolean; errors: StructuredError[]; /** The validated module AST (only present when ok === true) */ module?: EdictModule; /** Side-table of inferred types (only present when ok === true) */ typeInfo?: TypedModuleInfo; /** INFO-level diagnostics about skipped analyses (present even when ok === true) */ diagnostics?: AnalysisDiagnostic[]; /** Summary of what was verified vs. skipped */ coverage?: VerificationCoverage; /** Contract verification cache statistics */ cacheStats?: { hits: number; misses: number; }; } /** * Full pipeline: validate → resolve → typeCheck → effectCheck → contractVerify. * * If validation fails, returns validation errors (later phases skipped). * If resolution fails, returns resolution errors (later phases skipped). * If type checking fails, returns type errors (effect checking skipped). * If effect checking fails, returns effect errors (contract verification skipped). * If all passes succeed, returns `{ ok: true, errors: [] }` with diagnostics and coverage. * * @param ast - Any JSON value to run through the full compiler pipeline * @returns `{ ok, errors, module?, typeInfo?, diagnostics?, coverage? }` — the checked module or phase-specific errors */ export declare function check(ast: unknown): Promise; //# sourceMappingURL=check.d.ts.map