/**
 * V3.1 Deployment Generator
 * Generates minimal deployment specifications from logical components
 */
import { LogicalComponentSpec, LogicalDeploymentSpec, InferenceContext, ValidationResult, InferenceRule } from '../core/types.js';
export interface DeploymentGenerationResult {
    deployments: Record<string, LogicalDeploymentSpec>;
    rulesUsed: number;
    validation: ValidationResult;
}
export declare class DeploymentInferenceGenerator {
    private rules;
    private debug;
    constructor(debug?: boolean);
    /**
     * Load deployment inference rules
     */
    loadRules(rules: InferenceRule<LogicalComponentSpec, LogicalDeploymentSpec>[]): Promise<ValidationResult>;
    /**
     * Generate deployment specifications from logical component
     */
    generate(component: LogicalComponentSpec, context: InferenceContext): Promise<DeploymentGenerationResult>;
    /**
     * Generate instances from component logical elements
     */
    private generateInstances;
    /**
     * Generate communication channels
     */
    private generateChannels;
    private inferControllerDependencies;
    private inferServiceDependencies;
    private inferViewDependencies;
    private calculateControllerScale;
    private calculateServiceScale;
    private calculateViewScale;
    private groupViewsByInterface;
    private extractAllCapabilities;
    private groupModelsByDomain;
    private chooseBusType;
    private toKebabCase;
    /**
     * Convert instance name to valid format (must start with lowercase)
     * Schema pattern: ^[a-z][a-zA-Z0-9_]*$
     */
    private toValidInstanceName;
}
//# sourceMappingURL=deployment-generator.d.ts.map