import type { StyleBoxSlot, UiNodeSpec } from './types.js'; import type { Rect } from './anchor-solver.js'; /** CSS 侧对齐枚举 → Godot horizontal_alignment。 */ export type ProtoAlign = 'left' | 'center' | 'right'; export interface GeometryNode { name: string; rect: Rect; type?: string; text?: string; fontSize?: number; color?: string | number[]; bg?: string | number[]; fill?: string | number[]; borderRadius?: number | { tl?: number; tr?: number; br?: number; bl?: number; }; border?: { width: number; color: string | number[]; }; align?: ProtoAlign; value?: number; flow?: 'row' | 'column'; justify?: 'flex-start' | 'center' | 'flex-end' | 'space-between' | 'space-around' | 'space-evenly'; interactive?: boolean; } export interface PrototypeGeometry { viewport: { w: number; h: number; }; nodes: GeometryNode[]; } export interface TranslateResult { tree: UiNodeSpec; warnings: string[]; coverage: { targets: number; total_nodes: number; }; /** PR-2(spec §4.2):flow 直接子节点期望清单——path 为最终树内路径(含 _Flow * 容器层与 uniqueName 改名后的合成根名),rect 为输入视口绝对坐标。 */ flow_expect: Array<{ path: string; rect: Rect; }>; } export declare function parseGeometry(raw: unknown): PrototypeGeometry; export declare const ROOT_NAME = "_PrototypeRoot"; /** #rrggbb / [r,g,b]0-255 / [r,g,b,a]0-1 → [r,g,b,a] 0-1(值域已由 zod 保证)。 */ export declare function normalizeColor(c: string | number[], field: string, name: string): [number, number, number, number]; /** * Godot 4.7 默认主题 ProgressBar 最小高度(px)——默认主题 stylebox 的最小高把 * Control.minimum_size 顶到该值,rect.h 更小会被引擎钳制(clamp)。 * 实测来源:2026-08-16 ui_import_prototype 集成验收,RTS HUD fixture HpBar * rect.h=16 落地实测 27px(Godot_v4.7.1-stable_win64 headless,dh=+11)。 * 2026-08-17 Task 4 三组合实测补充:stylebox override 只降下限不除钳制—— * h=16 落地值 无 override/bg-only/fill-only/bg+fill → 27/23/27/23(全被钳)。 */ export declare const PROGRESS_BAR_MIN_HEIGHT = 27; /** PR-1 规则:bg/border/radius → stylebox theme override 槽位(Godot 4.7 序列化名 * theme_override_styles/);undefined = 控件无映射槽(spec §3.4)。 */ export declare function styleboxSlotFor(type: string): StyleBoxSlot | undefined; export declare function translateGeometry(geo: PrototypeGeometry): TranslateResult;