import type { ToolResult } from '../../types.js'; export declare const ACTIONS: readonly ["read_scene", "create_scene", "add_node", "save_scene", "load_sprite", "quick_scene", "batch_add_nodes", "query_scene_tree", "inspect_node", "edit_node", "remove_node", "instance_scene", "set_instance_property", "detach_instance", "open_scene", "health_check", "merge_scene", "create_3d_node", "commit"]; /** Validate that a value is a non-empty string; returns opsErrorResult if not. */ export declare function requireScenePath(value: unknown): ToolResult | null; /** * Generates a GDScript property-set line for a given key/value pair. * * Simple types (null, bool, number, string) → direct assignment: `node.key = value` * Vector/Color types → _try_set() call: `_try_set(node, "key", Vector2(...))` * * Uses the shared `valueToGd()` serializer from shared.ts for the expression. * On non-finite values, returns a comment line starting with `# skipped`. */ export declare function gdScriptSetLine(key: string, value: unknown, varName?: string): string; /** Returns true if the value is an array/object that produces a Vector/Color expression. */ export declare function isVectorLike(value: unknown): boolean; export declare const TRY_SET_HELPER = "\nfunc _try_set(node: Node, prop: String, value: Variant) -> void:\n\tvar _ok = false\n\tif node.get_property_list().any(func(p): return p.name == prop):\n\t\tnode.set(prop, value)\n\t\t_ok = true\n\tif not _ok and node is Control:\n\t\tvar _vtype = typeof(value)\n\t\tif _vtype == TYPE_VECTOR2:\n\t\t\tnode.add_theme_font_size_override(prop, int(value.x))\n\t\telif _vtype == TYPE_COLOR:\n\t\t\tnode.add_theme_color_override(prop, value)\n\t\telif _vtype == TYPE_FLOAT or _vtype == TYPE_INT:\n\t\t\tif node.has_theme_constant(prop):\n\t\t\t\tnode.add_theme_constant_override(prop, int(value))\n"; export declare const BLOCKED_PROPS: Set; /** Atomic file write: write to temp then rename. Uses temp+rename on all platforms (NTFS same-volume rename is atomic). * A-ATOMIC (2026-09-01): 实现上移合并至 src/core/fs-atomic.ts(三份重复实现的并集语义: * mode 保持 + 随机 tmp 后缀 + Windows 锁定降级),此处保留签名薄委托,消费方零改动。 */ export declare function writeAtomic(filePath: string, content: string): void;