/** Clamps a timeout value (seconds) to [min, max], defaulting on invalid input. * Guarantees the result is >= 1 (rounding a sub-second min up to 1). */ export declare function validateTimeout(value: unknown, min?: number, max?: number, defaultVal?: number): number; /** Ensure a value converts to a finite number; throws with descriptive error on failure. */ export declare function ensureNumber(v: unknown, name: string): number; /** Clamp a numeric parameter to [min, max], pushing a warning when clamped. Returns undefined if input is undefined. */ export declare function clampParam(val: number | undefined, min: number, max: number, name: string, warnings: string[]): number | undefined; /** Validates that a string is a safe GDScript identifier (class name, type name, etc.). */ export declare function validateIdentifier(name: string, label?: string): void; export declare function toSnakeCase(key: string): string; export declare function validateVector3(v: unknown): { x: number; y: number; z: number; }; /** * 跑 dotnet build --no-restore 做 C# 编译验证(公共 helper)。 * * 2026-08-06 审查 P1/P2:消除 script.ts csharpValidateAndRevert 与 validation.ts validate_project * 的重复 dotnet build 逻辑(漂移风险)。两处都调此 helper。 * * ⚠️ 安全:dotnet build 执行任意 MSBuild /.csproj 预构建步骤 = 任意代码执行面, * 调用方须自行做 action-gate opt-in 校验(如 script.ts 检查 GODOT_MCP_PRIVILEGED_GROUPS=code-execution)。 * * @returns on success: { ok: true } * on ENOENT (dotnet 不在 PATH): { ok: true, skipped: true, skipReason: 'dotnet CLI not found' } * on build failure: { ok: false, output: string } */ export declare function runDotnetBuild(projectPath: string, execFileAsync: (cmd: string, args: string[], opts: Record) => Promise, timeoutMs?: number): Promise<{ ok: true; } | { ok: true; skipped: true; skipReason: string; } | { ok: false; output: string; }>;