/** The document's filename. A world SOURCE keeps it in `public/`; a built bundle serves it from the root. */ export declare const VISUALS_CONFIG_FILE = "helix.visuals.json"; export declare const VISUALS_CONFIG_SOURCE_PATH = "public/helix.visuals.json"; export declare const VISUALS_CONFIG_VERSION = 1; /** `baked` = a keyframed probe field shipped as publish-time data; `dynamic` = zero-bake, lit at runtime. */ export declare const VISUALS_MODES: readonly ["baked", "dynamic"]; /** The calibrated AgX look presets `grade.look` may name. */ export declare const AGX_LOOK_NAMES: readonly ["none", "needle", "daylight", "punchy"]; /** Contract version of the `bakedLighting` block the bake step writes into the document. */ export declare const BAKED_LIGHTING_VERSION = 1; /** Where a `baked` world's field lives. Written by the bake step, never hand-authored. */ export type BakedLightingPointer = { version: number; /** The keyframe-store JSON, relative to the world root — or an absolute URL. */ artifact: string; }; export type VisualsConfigAudit = { errors: string[]; warnings: string[]; /** One line naming what the runtime will DO with this document; null when a rule failed. */ summary: string | null; /** The declared mode, or null when the field is missing or names something the runtime does not know. */ mode: (typeof VISUALS_MODES)[number] | null; /** The validated artifact pointer — null when the document carries none AND when the block is malformed. */ bakedLighting: BakedLightingPointer | null; /** Whether a `bakedLighting` key was there at all: a malformed one already errored, so the bundle rule that * asks for a bake must not fire on top of it. */ hasBakedLighting: boolean; }; /** * Audits a parsed `helix.visuals.json` document against the v1 rules the engine's parser enforces. `file` is * the path the messages name, so the creator is told which copy is wrong when both source and bundle carry one. */ export declare function auditVisualsConfig(raw: unknown, file?: string): VisualsConfigAudit; /** The same audit over the document's TEXT — unparseable JSON is an error here, as it is a throw at boot. */ export declare function auditVisualsConfigText(text: string, file?: string): VisualsConfigAudit; export type BakedArtifactAudit = { errors: string[]; warnings: string[]; /** One line naming the field the runtime will play; null when a rule failed. */ summary: string | null; }; /** * Audits the artifact a `mode: "baked"` world points at — the engine's `ProbeKeyframeStore` JSON. SHAPE AND * COUNTS ONLY: the base64 float payloads are never decoded, so `validate` stays a read of the header rather * than a megabyte of atob per world. What the engine throws on decoding them (array lengths against the * declared dimensions) is therefore NOT mirrored — the counts that can be checked cheaply are. */ export declare function auditBakedArtifact(raw: unknown, file: string): BakedArtifactAudit; /** The same audit over the artifact's TEXT — unparseable JSON is an error, as it is a throw at boot. */ export declare function auditBakedArtifactText(text: string, file: string): BakedArtifactAudit;