/**
 * Core Rule Engine for V3.1 Inference System
 * Provides pattern matching and rule application for both logical and deployment inference
 */
import { InferenceRule, InferenceContext, ValidationResult } from './types.js';
export declare class RuleEngine<TInput, TOutput> {
    private debug;
    private rules;
    private conditionCache;
    constructor(debug?: boolean);
    /**
     * Load rules for a specific category (e.g., 'controllers', 'services')
     */
    loadRules(category: string, rules: InferenceRule<TInput, TOutput>[]): ValidationResult;
    /**
     * Find all matching rules for input in a category
     */
    findMatches(category: string, input: TInput, context: InferenceContext): InferenceRule<TInput, TOutput>[];
    /**
     * Apply a rule to generate output
     */
    apply(rule: InferenceRule<TInput, TOutput>, input: TInput, context: InferenceContext): TOutput;
    /**
     * Get all loaded rules for debugging
     */
    getAllRules(): Map<string, InferenceRule<TInput, TOutput>[]>;
    /**
     * Clear all loaded rules
     */
    clearRules(): void;
    private validateRule;
    private evaluateCondition;
    private buildTemplateContext;
    private applyHandlebarsTemplate;
    private applyJsonTemplate;
    private applyYamlTemplate;
    private applySpeclyTemplate;
    private generateCuredControllerSpec;
    private generateProcessingServiceSpec;
    private generateValidationServiceSpec;
    private generateStandardEventsSpec;
    private generateViewSpec;
    private processSpeclyHandlebars;
    private processHandlebarsInJson;
    private processHandlebarsConditionals;
    private convertJsonToSpecly;
    private generateIntegrationServiceSpec;
    private generateLifecycleServiceSpec;
    private generateRelationshipServiceSpec;
    private generateRelationshipEventsSpec;
}
//# sourceMappingURL=rule-engine.d.ts.map