/**
 * Service Generator for V3.1 Logical Inference
 * Generates services with event subscriptions and business operations
 */
import { ModelDefinition, ServiceSpec, InferenceContext, InferenceRule, ValidationResult, LogicalGenerator } from '../../core/types.js';
export interface ServiceGenerationResult {
    services: Record<string, ServiceSpec>;
    rulesUsed: number;
    validation: ValidationResult;
}
export declare class ServiceGenerator implements LogicalGenerator<ModelDefinition, ServiceSpec> {
    private debug;
    name: string;
    private ruleEngine;
    private contextManager;
    private rulesLoaded;
    constructor(debug?: boolean);
    /**
     * Load service inference rules
     */
    loadRules(rules: InferenceRule<ModelDefinition, ServiceSpec>[]): Promise<ValidationResult>;
    /**
     * Check if this generator supports the given input
     */
    supports(input: ModelDefinition, context: InferenceContext): boolean;
    /**
     * Generate services for all models
     */
    generate(models: ModelDefinition[], baseContext: InferenceContext): Promise<ServiceGenerationResult>;
    /**
     * Generate service name based on model and rule
     */
    private generateServiceName;
    /**
     * Generate cross-cutting services that work across all models
     */
    private generateCrossCuttingServices;
    /**
     * Generate notification subscriptions for all model events
     */
    private generateNotificationSubscriptions;
    /**
     * Generate audit subscriptions for all model events
     */
    private generateAuditSubscriptions;
    /**
     * Validate generated service specification
     */
    private validateServiceSpec;
}
//# sourceMappingURL=service-generator.d.ts.map