import { ValidationRule, ValidationConfig, ValidationResult, ValidationStats } from './interfaces'; /** * Main AST validator class */ export declare class JSAstValidator { private rules; private explicitlyRegistered; constructor(rules?: ValidationRule[]); /** * Register a validation rule * @param rule The rule to register * @param explicit Whether this rule was explicitly registered (via constructor) */ registerRule(rule: ValidationRule, explicit?: boolean): void; /** * Unregister a validation rule */ unregisterRule(ruleName: string): boolean; /** * Get all registered rules */ getRules(): ValidationRule[]; /** * Get a specific rule by name */ getRule(ruleName: string): ValidationRule | undefined; /** * Validate JavaScript source code */ validate(source: string, config?: ValidationConfig): Promise; /** * Get validation statistics from a result */ getStats(result: ValidationResult, durationMs: number): ValidationStats; /** * Get enabled rules based on configuration */ private getEnabledRules; }