import { AnyShape } from 'brepjs'; import { VerifyReport } from './report.js'; export declare function loadPart(modulePath: string, fresh?: boolean): Promise<{ default?: unknown; expected?: unknown; materials?: unknown; }>; export declare function classifyKernelMessage(message: string): string | undefined; export interface RunPartOptions { step?: boolean; glb?: boolean; /** * Run a TypeScript type-check on the part (against the bundled/local `brepjs` types) BEFORE * executing it. Type errors are surfaced as `TYPECHECK` error infos and the part is NOT run. */ check?: boolean; /** * Compute deterministic manufacturability metrics (per-body breakdown + interference matrix) for * the design judge. Off by default — these are slow on high-face assemblies, so only the * judge/snapshot path opts in; the author `--check` loop stays fast. */ metrics?: boolean; /** * Bust the ESM module cache for the part and its own imports (watch reruns pick up * edits). The kernel realm (`brepjs`/`occt-wasm`) keeps its stable URLs either way. */ freshImport?: boolean; } export interface RunPartResult { /** * The built shape, or null on failure. This is a LIVE WASM-backed kernel handle: the CLI exits * right after use, but long-running programmatic callers own its lifetime and should release it * (e.g. `using s = result.shape` or a `DisposalScope`) once done, or WASM memory accumulates. */ shape: AnyShape | null; report: VerifyReport; step?: ArrayBuffer | undefined; glb?: ArrayBuffer | undefined; } export declare function runPart(modulePath: string, opts?: RunPartOptions): Promise;