import type { StructuredError, AnalysisDiagnostic, VerificationCoverage } from "./errors/structured-errors.js"; import type { EdictModule } from "./ast/nodes.js"; import type { TypedModuleInfo } from "./checker/check.js"; export type CheckBrowserFullResult = CheckBrowserFullSuccess | CheckBrowserFullFailure; export interface CheckBrowserFullSuccess { ok: true; errors: []; /** The validated module AST */ module: EdictModule; /** Side-table of inferred types */ typeInfo: TypedModuleInfo; /** INFO-level diagnostics */ diagnostics: AnalysisDiagnostic[]; /** Verification coverage summary */ coverage: VerificationCoverage; } export interface CheckBrowserFullFailure { ok: false; errors: StructuredError[]; module: null; typeInfo: TypedModuleInfo | null; diagnostics: AnalysisDiagnostic[]; } /** * Browser-safe pipeline with contract verification: * validate → resolve → typeCheck → effectCheck → contractVerify (built-in solver). * * Fully synchronous — uses the built-in QF-LIA solver, no Z3 dependency. * Quantified/array contracts degrade to `undecidable_predicate`. * * @param ast - Any JSON value to run through phases 1–4 * @returns Discriminated union with contract verification results */ export declare function checkBrowserFull(ast: unknown): CheckBrowserFullResult; //# sourceMappingURL=check-browser-full.d.ts.map