export interface ValidationEntry { severity: "error" | "warning"; /** e.g. "om-layer#points" — tag name, plus #id when the element has one. */ element: string; attribute?: string; message: string; /** An instruction, not just a diagnosis — what makes this useful to an agent. */ fix: string; } export interface ValidationResult { valid: boolean; errors: ValidationEntry[]; warnings: ValidationEntry[]; } /** * A scalar/shorthand attribute value that is actually a data-driven accessor * expression — a `$field` reference or a `scale()`/`clamp()`/`lerp()`/ * `colorRamp()`/`formatDate()` call. Scalar props take a CONSTANT; an expression here doesn't * coerce (deck.gl gets a string/NaN and silently falls back to defaults — the * "black squares" / invisible-layer class of bug), and the value belongs in a * `get-*` accessor instead. Word-boundary on the function names so a literal * like "grayscale(" doesn't false-match. */ export declare function looksLikeAccessorExpression(raw: string): boolean; /** * Validates a manifest already parsed into a DOM tree — a live `` * (mounted or not) or a detached `Document`/`DocumentFragment` (what * `validateManifestString` builds via `DOMParser`). */ export declare function validateManifest(root: ParentNode): ValidationResult; /** `OmMap.validate(htmlString)` — the pre-flight agent feedback loop. */ export declare function validateManifestString(htmlString: string): ValidationResult;