export interface SceneEditResult { success: boolean; message: string; scene?: string; } export declare function normalizeLines(content: string): string[]; /** Find the end of a section (next `[...]` line or end of file). Returns index of the next section start. */ export declare function findSectionEnd(lines: string[], startLine: number): number; /** Escape special characters in .tscn quoted attribute values */ export declare function escapeTscnAttr(value: string): string; export declare function formatTscnValue(value: string): string; /** Escape property values for safe embedding inside quoted .tscn values (e.g. `property = "value"`). * Does NOT handle unquoted .tscn values or structural syntax. */ export declare function escapeTscnValue(value: string): string; /** Escape string for safe use in RegExp constructor */ export declare function escapeRegExp(s: string): string; /** Parse a quoted attribute from a bracket header like `[node name="X" type="Y"]` */ export declare function getBracketAttr(header: string, attr: string): string | null; /** Get the name part of a nodePath like "Root/Player/Sprite2D" → "Sprite2D" */ export declare function leafName(nodePath: string): string; /** Build a parent path prefix from a nodePath. "Root/Player/Sprite2D" → "Root/Player" */ export declare function parentPath(nodePath: string): string; /** * For a nodePath like "Root/Player/Sprite2D", we need to find the node whose * name is "Sprite2D" AND whose parent attribute matches the path prefix. * In .tscn, the parent is stored as NodePath("Root/Player"). */ export declare function findNodeSectionLine(lines: string[], nodePath: string): number; /** Return the last line of the node section (inclusive). */ export declare function nodeSectionEnd(lines: string[], nodeLine: number): number;