export interface AddNodeParams { parent: string; name: string; type: string; properties?: Record; } export interface AddNodeResult { success: boolean; message: string; fallback: boolean; scene?: string; } /** * Check whether a property value can be safely serialized to .tscn text. * Returns true for primitives and flat objects with only primitive values. * Returns false for arrays and objects with nested objects. */ export declare function canSerializeProperty(value: unknown): boolean; export declare function formatPropertyValue(value: unknown): string; /** * Add a node to a .tscn scene with property type whitelist and auto-fallback. * * If any property value cannot be serialized to .tscn text (arrays, nested objects), * returns `{ success: true, fallback: true }` without modifying the file, * signaling that a Godot process should handle the insertion instead. * * The node is inserted after the last descendant of the parent node, * preserving .tscn depth-first ordering. */ export declare function addNode(tscnContent: string, params: AddNodeParams): AddNodeResult; /** * Add multiple nodes to a .tscn scene in one pass. * * 1. Empty array → immediate success, no changes. * 2. If ANY node has unsupported property types → returns fallback=true * so the caller can fall through to the Godot-process path. * 3. Otherwise processes each node sequentially, threading the scene content * through each addNode call. */ export declare function addNodes(tscnContent: string, nodes: Array): AddNodeResult;