/**
 * Controller Generator for V3.1 Logical Inference
 * Generates CURED controllers with relationship-aware operations
 */
import { ModelDefinition, ControllerSpec, InferenceContext, InferenceRule, ValidationResult, LogicalGenerator } from '../../core/types.js';
export interface ControllerGenerationResult {
    controllers: Record<string, ControllerSpec>;
    rulesUsed: number;
    validation: ValidationResult;
}
export declare class ControllerGenerator implements LogicalGenerator<ModelDefinition, ControllerSpec> {
    private debug;
    name: string;
    private ruleEngine;
    private contextManager;
    private rulesLoaded;
    constructor(debug?: boolean);
    /**
     * Load controller inference rules
     */
    loadRules(rules: InferenceRule<ModelDefinition, ControllerSpec>[]): Promise<ValidationResult>;
    /**
     * Check if this generator supports the given input
     */
    supports(input: ModelDefinition, context: InferenceContext): boolean;
    /**
     * Generate controllers for all models
     */
    generate(models: ModelDefinition[], baseContext: InferenceContext): Promise<ControllerGenerationResult>;
    /**
     * Generate custom actions from model behaviors
     */
    private generateActionsFromBehaviors;
    /**
     * Merge multiple controller specs together
     */
    private mergeControllerSpecs;
    /**
     * Validate generated controller specification
     */
    private validateControllerSpec;
}
//# sourceMappingURL=controller-generator.d.ts.map