/**
 * V3.1 Logical Inference Engine
 * Orchestrates the generation of complete logical specifications from minimal models
 */
import { ModelDefinition, LogicalComponentSpec, ValidationResult, InferenceEngineConfig } from '../core/types.js';
export interface LogicalInferenceResult {
    specification: LogicalComponentSpec;
    validation: ValidationResult;
    statistics: {
        modelsProcessed: number;
        controllersGenerated: number;
        servicesGenerated: number;
        eventsGenerated: number;
        viewsGenerated: number;
        rulesApplied: number;
        processingTimeMs: number;
    };
}
export declare class LogicalInferenceEngine {
    private ruleLoader;
    private contextManager;
    private generators;
    private config;
    constructor(config?: Partial<InferenceEngineConfig>, debug?: boolean);
    /**
     * Register an additional generator for extension entity types.
     */
    registerGenerator(category: string, generator: any, configKey: string): void;
    /**
     * Auto-discover extension entity generators from the generators/ directory.
     * Scans for files matching *-generator.js that aren't core generators.
     */
    private discoverExtensionGenerators;
    private _pendingExtGenerators;
    /**
     * Load any pending extension generators (async, called before first inference run)
     */
    private loadPendingExtGenerators;
    /**
     * Load inference rules from configuration
     */
    loadRules(): Promise<ValidationResult>;
    /**
     * Generate complete logical specification from models
     */
    inferLogicalSpecification(models: ModelDefinition[], componentName?: string, metadata?: Record<string, any>): Promise<LogicalInferenceResult>;
    /**
     * Get inference statistics and health information
     */
    getEngineInfo(): {
        version: string;
        config: InferenceEngineConfig;
        loadedRules: {
            controllers: number;
            services: number;
            events: number;
            views: number;
        };
        generators: string[];
    };
    private convertAttributesToSpecs;
    private convertRelationshipsToSpecs;
    private convertLifecycleToSpec;
    private convertBehaviorsToSpecs;
    private generateCommonDefinitions;
    private generateFilterProperties;
}
//# sourceMappingURL=logical-engine.d.ts.map