/**
 * Phase 2 Quality Gate: DDD Model Validator
 *
 * Validates DDD domain model completeness before code generation.
 * Prevents copy-paste entities by ensuring:
 * - Every bounded context has aggregates with typed fields
 * - Ubiquitous language glossary is non-empty
 * - Context map has real relationships
 * - ADRs reference correct technology (not wrong ERP/cloud provider)
 *
 * Error codes:
 *   ECLI-P2-050  DDD model quality too low for code generation
 *   ECLI-P2-051  DDD model not available on context
 *   ECLI-P2-052  ADR technology mismatch detected
 */
import type { Phase2Context, Phase2StageOutput, Phase2DomainModel, Phase2ADRRecord } from '../types.js';
export interface DDDQualityReport {
    readonly passed: boolean;
    readonly score: number;
    readonly issues: string[];
    readonly totalContexts: number;
    readonly contextsWithAggregates: number;
    readonly aggregatesWithTypedFields: number;
    readonly totalAggregates: number;
    readonly ubiquitousLanguageTerms: number;
    readonly contextMapRelations: number;
    readonly genericIndexSignaturesDetected: number;
    readonly technologyMismatches: string[];
}
/**
 * Validate DDD domain model quality and produce a detailed report.
 */
export declare function validateDDDQuality(model: Phase2DomainModel, adrs?: readonly Phase2ADRRecord[]): DDDQualityReport;
/**
 * Execute the DDD quality gate as a Phase 2 pipeline stage.
 *
 * Reads the DDD domain model and optionally ADRs from context stage outputs,
 * validates the model, and returns a stage output indicating pass or fail.
 *
 * @throws Error with ECLI-P2-051 if DDD model is not on context
 */
export declare function executeDDDQualityGate(context: Phase2Context): Promise<Phase2StageOutput>;
//# sourceMappingURL=ddd-quality-gate.d.ts.map