import type { GodotConfig } from '../helpers.js'; export declare const SECTION_IDS: Set; export declare const SECTION_ORDER: string[]; export declare function mergeSections(existing: string, newSections: Array<[string, string]>): string; export declare const GODOT_MCP_RULES = "# Godot MCP \u5F00\u53D1\u89C4\u5219\n\n> \u9002\u7528\u4E8E godot-mcp-enhanced {{MCP_VERSION}}+\n\n## \u901A\u7528\u539F\u5219\n- \u6807\u6CE8\"\u8FD0\u884C\u65F6\u64CD\u4F5C\"\u7684\u5DE5\u5177\u4EC5\u5F71\u54CD\u5F53\u524D\u8FDB\u7A0B\uFF0C\u5982\u9700\u6301\u4E45\u5316\u8BF7\u7F16\u8F91 .tscn/.gd \u6587\u4EF6\n- \u8FD0\u884C\u65F6\u5DE5\u5177\u7684\u7ED3\u679C\u4E0D\u4F1A\u8DE8\u8FDB\u7A0B\u4FDD\u7559\n\n## \u811A\u672C\u5F00\u53D1\n- edit_script / write_script \u540E\u5FC5\u987B\u7ACB\u5373\u8C03\u7528 validate_scripts \u9A8C\u8BC1\n- \u9A8C\u8BC1\u5931\u8D25\u65F6\u56DE\u6EDA\u4FEE\u6539\n- project_replace \u5148\u7528 dry_run=true \u9884\u89C8\u53D8\u66F4\n\n## \u573A\u666F\u7BA1\u7406\n- \u4FEE\u6539 .tscn \u540E\u7528 read_scene \u9A8C\u8BC1\u7ED3\u6784\u5B8C\u6574\u6027\n- \u8282\u70B9\u8DEF\u5F84\u53D8\u66F4\u540E\u68C0\u67E5\u6240\u6709 signal \u8FDE\u63A5\u662F\u5426\u5931\u6548\n- remove_node \u4E3A\u7834\u574F\u6027\u64CD\u4F5C\uFF0C\u786E\u8BA4\u540E\u518D\u6267\u884C\n\n## \u4FE1\u53F7\u7CFB\u7EDF\n- signal_emit \u4EC5\u652F\u6301\u57FA\u672C\u7C7B\u578B\uFF08string/number/bool/null\uFF09\n- \u8282\u70B9\u91CD\u547D\u540D/\u5220\u9664\u540E\u68C0\u67E5\u5173\u8054\u4FE1\u53F7\u8FDE\u63A5\n\n## \u52A8\u753B\u7CFB\u7EDF\n- animation / animation_track / animtree \u64CD\u4F5C\u4E3A\u8FD0\u884C\u65F6\u64CD\u4F5C\n- \u52A8\u753B\u540D\u79F0\u987B\u5728 AnimationPlayer \u4E2D\u5DF2\u5B58\u5728\n\n## \u97F3\u9891\n- \u8FD0\u884C\u65F6\u64CD\u4F5C\uFF0C\u4E0D\u6301\u4E45\u5316\n- \u97F3\u91CF\u5355\u4F4D dB\uFF08-80 \u5230 24\uFF09\n\n## UI\n- \u8FD0\u884C\u65F6\u64CD\u4F5C\uFF0C\u4E0D\u6301\u4E45\u5316\n- \u590D\u6742\u5E03\u5C40\u4F18\u5148\u7528 ui_build_layout\n- HTML \u539F\u578B\u8FD8\u539F\u4F18\u5148 ui_import_prototype\uFF08\u51E0\u4F55 JSON \u4E00\u6B21\u8C03\u7528\u7FFB\u8BD1+\u6784\u5EFA+\u6821\u9A8C\uFF0C\u56FA\u5B9A\u6301\u4E45\u5316\uFF0C\u7528\u6CD5\u4E0E\u6D4F\u89C8\u5668 evaluate \u53D6\u6570\u6A21\u677F\u89C1 .claude/rules/godot-mcp-ui.md\uFF09\n\n## TileMap\n- \u8FD0\u884C\u65F6\u64CD\u4F5C\uFF0C\u4E0D\u6301\u4E45\u5316\n- \u5750\u6807\u4E3A Vector2i \u683C\u5F0F\n\n## \u7269\u7406\n- physics \u5DE5\u5177\u5305\u542B raycast / body_info / diagnose / query_spatial / collision_overlay \u4E94\u79CD\u64CD\u4F5C\n- diagnose \u64CD\u4F5C\u6709\u526F\u4F5C\u7528\uFF08\u4F7F\u7528 move_and_collide test_only\uFF09\n\n## \u5BFC\u822A\n- nav(action=bake_mesh) \u4E3A\u957F\u8017\u65F6\u64CD\u4F5C\n- \u8FD0\u884C\u65F6\u64CD\u4F5C\uFF0C\u4E0D\u6301\u4E45\u5316\n\n## \u7C92\u5B50\n- \u8FD0\u884C\u65F6\u64CD\u4F5C\uFF0C\u4E0D\u6301\u4E45\u5316\n- \u63A8\u8350\u7528 particles_create \u7684 preset \u53C2\u6570\n\n## \u6750\u8D28\u4E0E\u7740\u8272\u5668\n- shader_edit write \u6A21\u5F0F\u66FF\u6362\u6574\u4E2A\u7740\u8272\u5668\n- \u8FD0\u884C\u65F6\u64CD\u4F5C\uFF0C\u4E0D\u6301\u4E45\u5316\n\n## IK \u4E0E 3D\n- \u8FD0\u884C\u65F6\u64CD\u4F5C\uFF0C\u4E0D\u6301\u4E45\u5316\n- TwoBoneIK3D \u63A8\u8350\u6307\u5B9A bone_name \u53C2\u6570\n\n## \u8FD0\u884C\u65F6\u7BA1\u7406\n- run_project \u6709\u8D85\u65F6\u8BBE\u7F6E\uFF0C\u957F\u65F6\u95F4\u8FD0\u884C\u9700\u8C03\u6574\n- launch_editor \u542F\u52A8\u7F16\u8F91\u5668 GUI\uFF0Cstop_project \u7EC8\u6B62\u8FD0\u884C\u4E2D\u7684\u8FDB\u7A0B\n- dev_loop \u53EF\u6267\u884C\u4EFB\u610F GDScript \u4EE3\u7801\n\n## \u622A\u56FE\u4E0E\u8C03\u8BD5\n- screenshot(action=\"capture\") \u4E3A\u5B9E\u9A8C\u6027\u529F\u80FD\uFF08headless \u6A21\u5F0F\u4E0B\u6E32\u67D3\u53D7\u9650\uFF09\n- profiler \u7528\u4E8E\u6027\u80FD\u5206\u6790\uFF08snapshot/start/stop/get_data\uFF09\n\n## \u6E38\u620F\u6865\u63A5\n- \u9700\u5148\u5B89\u88C5 bridge \u5E76\u542F\u52A8\u6E38\u620F\n- game_write \u53EF\u4FEE\u6539\u8FD0\u884C\u65F6\u72B6\u6001\uFF0C\u8C28\u614E\u4F7F\u7528\n\n## \u53D1\u7248\u95E8\u7981\n- \u63D0\u4EA4\u7248\u672C\u53F7\u53D8\u66F4\u524D\u5FC5\u987B\u8FD0\u884C verify_delivery(scope=\"full\")\n- \u6240\u6709\u7EF4\u5EA6\u5FC5\u987B\u65E0\u9519\u8BEF\n\n## GDScript \u89C4\u8303\n- \u4F7F\u7528\u9759\u6001\u7C7B\u578B\uFF08var x: int = 0\uFF09\n- \u51FD\u6570\u5FC5\u987B\u6807\u6CE8\u8FD4\u56DE\u7C7B\u578B\n- \u4FE1\u53F7\u56DE\u8C03\u4EE5 _on_ \u524D\u7F00\u547D\u540D\n"; export declare function buildEngineVersion(config: GodotConfig | null): string | null; export declare function buildRenderer(config: GodotConfig | null): string | null; export declare function buildMainScene(config: GodotConfig | null): string | null; export declare function buildKeyPaths(projectDir: string): string | null; export declare function buildAutoloads(config: GodotConfig | null): string | null; export declare function buildInputMap(config: GodotConfig | null): string | null; export declare function buildPhysics(config: GodotConfig | null): string | null; export declare function buildLayerNames(config: GodotConfig | null): string | null; export declare function buildMcpMapping(): string; export declare function buildTypeGuide(): string; export declare function buildBestPractices(): string;