/**
 * Validation Rules Engine
 *
 * Comprehensive patterns and rules for validating TachUI components
 * and modifiers at build time.
 */
import type { ComponentValidationPattern, ModifierValidationPattern, BuildTimeValidationRule, ValidationContext, ValidationResult } from './types';
import * as ts from 'typescript';
/**
 * Component validation patterns
 */
export declare const componentPatterns: Record<string, ComponentValidationPattern>;
/**
 * Modifier validation patterns
 */
export declare const modifierPatterns: Record<string, ModifierValidationPattern>;
/**
 * Built-in validation rules
 */
export declare const builtInRules: BuildTimeValidationRule[];
/**
 * Validation rule categories
 */
export declare const ruleCategories: {
    components: string[];
    modifiers: string[];
    performance: string[];
    accessibility: string[];
    'best-practices': string[];
};
/**
 * Rule severity levels
 */
export declare const severityLevels: {
    error: string[];
    warning: string[];
    info: string[];
};
/**
 * Create custom validation rule
 */
export declare function createCustomRule(name: string, category: string, severity: 'error' | 'warning' | 'info', description: string, validate: (node: ts.Node, checker: ts.TypeChecker, context: ValidationContext) => ValidationResult): BuildTimeValidationRule;
/**
 * Rule registry for managing custom rules
 */
export declare class ValidationRuleRegistry {
    private rules;
    constructor();
    register(rule: BuildTimeValidationRule): void;
    unregister(name: string): void;
    getRule(name: string): BuildTimeValidationRule | undefined;
    getAllRules(): BuildTimeValidationRule[];
    getRulesByCategory(category: string): BuildTimeValidationRule[];
    getRulesBySeverity(severity: 'error' | 'warning' | 'info'): BuildTimeValidationRule[];
}
/**
 * Global rule registry instance
 */
export declare const globalRuleRegistry: ValidationRuleRegistry;
/**
 * Helper functions for rule creation
 */
export declare const RuleHelpers: {
    /**
     * Create a rule that validates component arguments
     */
    createComponentRule(componentName: string, validator: (args: ts.NodeArray<ts.Expression>) => ValidationResult): BuildTimeValidationRule;
    /**
     * Create a rule that validates modifier usage
     */
    createModifierRule(modifierName: string, validator: (expression: ts.PropertyAccessExpression) => ValidationResult): BuildTimeValidationRule;
};
//# sourceMappingURL=rules.d.ts.map