/**
 * Static Safety Validation Rules
 *
 * Contains the main validation visitor and rule implementations for:
 * - TSN7401: 'any' type usage
 * - TSN7402: 'unknown' type usage outside erased overload stubs
 * - TSN7403: Object literal without contextual nominal type
 * - TSN7405: Untyped function/arrow/lambda parameter
 * - TSN7413: Dictionary key must be string, number, or symbol
 * - TSN7419: 'never' cannot be used as a generic type argument
 * - TSN7430: Arrow function requires explicit types (escape hatch)
 * - TSN7432: Generic function value restrictions
 *
 * This ensures NativeAOT-compatible, predictable-performance output.
 *
 * Note: We intentionally do NOT validate JS built-in usage (arr.map, str.length)
 * or dictionary dot-access patterns. These will fail naturally in C# if used
 * incorrectly, which is an acceptable failure mode.
 */
import * as ts from "typescript";
import { TsonicProgram } from "../program.js";
import { DiagnosticsCollector } from "../types/diagnostic.js";
/**
 * Validate a source file for static safety violations.
 */
export declare const validateStaticSafety: (sourceFile: ts.SourceFile, program: TsonicProgram, collector: DiagnosticsCollector) => DiagnosticsCollector;
//# sourceMappingURL=static-safety-rules.d.ts.map