import type { JsonObject } from '../project/world-json.js'; export interface StoredTheme { kind: 'preset' | 'custom' | 'none' | 'unknown-preset'; stored: unknown; /** The tokens the engine renders for this stored value. */ effective: Record; /** Human-readable description of where `effective` came from. */ label: string; } /** worldProfileData.hud.theme — the ONLY path the engine reads a theme from. */ export declare function readStoredTheme(world: JsonObject): StoredTheme; /** * Parse a `set`/`patch` argument: a preset name, inline JSON, `@file`, or (for * `set`) the literal `null`. Files keep long inline themes off the shell line, * where quoting mangles them. */ export declare function parseThemeArgument(raw: string, readFile: (path: string) => string): { kind: 'preset'; name: string; } | { kind: 'reset'; } | { kind: 'object'; value: Record; }; export interface PreparedWrite { /** What to store at worldProfileData.hud.theme. */ value: unknown; /** The tokens that value renders as (for the report). */ effective: Record; baseLabel: string; warnings: Array<{ path: string; message: string; suggestion?: string; }>; } /** `set`: full replace with a preset name, inline object, or null. */ export declare function prepareSet(argument: ReturnType, current: StoredTheme): PreparedWrite; /** `patch`: merge onto the current effective theme, validate the whole result. */ export declare function preparePatch(patch: Record, current: StoredTheme): PreparedWrite; /** The report both lanes print — identical text to the hosted tool's. */ export declare function themeReport(prepared: PreparedWrite, before: StoredTheme): string; /** `check`/`show`: verdict + report for what is stored right now. */ export declare function checkStoredTheme(current: StoredTheme): { valid: boolean; problems: string[]; report: string; };