import { ShapeMesh } from 'brepjs'; import { EvaluatedNodeLike, PreviewModelPayload, PreviewTreeNode } from 'brepjs-viewer'; export interface PreviewBuild { readonly payload: PreviewModelPayload; /** Whole-model merge in ShapeMesh form — the GLB export input, derived from the * same single merge the viewer payload uses. */ readonly merged: ShapeMesh; readonly ok: boolean; } /** * Load the module through the registered hook (same realm/kernel as verify) and * evaluate it into a preview payload. Contract: `export default` a value or a * (possibly async) function returning one — a families element tree, an already * resolved tree, or a plain shape; `Result` wrappers are unwrapped. */ export declare function evaluatePreview(entryPath: string, opts?: { fresh?: boolean; }): Promise; /** * Resolve the ESM entry of the PROJECT's brepjs-families install, walking from the * entry module. A globally installed CLI is not inside the project's node_modules, so * a bare import would miss (or load the wrong copy); resolving from the entry lands on * the same file URL the model itself imports — one module instance, matching runtime * identities. */ export declare function resolveFamiliesEntry(entryPath: string): string | undefined; /** Per-element stage shared by preview (which merges) and the .3dm exporter * (which needs each element separately, named and layered). */ export interface EvaluatedElements { readonly nodes: ReadonlyMap; readonly tree: PreviewTreeNode; } export declare function evaluateElements(entryPath: string, opts?: { fresh?: boolean; }): Promise;