import type { Artifact, DesignSessionState } from "./types/index.js";
export interface ConstraintEnforcementHistory {
    constraintId: string;
    sessionId: string;
    timestamp: string;
    phase: string;
    decision: string;
    rationale: string;
    enforcement: boolean;
    violation?: string;
    resolution?: string;
    context: string;
}
export interface CrossSessionValidationResult {
    passed: boolean;
    consistencyScore: number;
    violations: ConstraintConsistencyViolation[];
    recommendations: string[];
    enforcementActions: EnforcementAction[];
    historicalContext: ConstraintEnforcementHistory[];
}
export interface ConstraintConsistencyViolation {
    constraintId: string;
    currentSessionId: string;
    conflictingSessionId: string;
    violationType: "decision_conflict" | "rationale_inconsistency" | "enforcement_mismatch";
    description: string;
    severity: "critical" | "warning" | "info";
    suggestedResolution: string;
}
export interface EnforcementAction {
    id: string;
    type: "prompt_for_clarification" | "auto_align" | "generate_adr" | "escalate";
    constraintId: string;
    description: string;
    interactive: boolean;
    prompt?: string;
    expectedOutcome?: string;
}
export interface ConsistencyEnforcementRequest {
    sessionState: DesignSessionState;
    constraintId?: string;
    phaseId?: string;
    context?: string;
    strictMode?: boolean;
}
export interface ConsistencyEnforcementResult {
    success: boolean;
    consistencyScore: number;
    enforcementActions: EnforcementAction[];
    generatedArtifacts: Artifact[];
    interactivePrompts: string[];
    recommendations: string[];
    historicalAlignments: string[];
}
declare class ConstraintConsistencyEnforcerImpl {
    private enforcementHistory;
    private initialized;
    initialize(): Promise<void>;
    /**
     * Enforce cross-session constraint consistency
     */
    enforceConsistency(request: ConsistencyEnforcementRequest | DesignSessionState): Promise<ConsistencyEnforcementResult>;
    /**
     * Backwards-compatible wrapper: detect violations for a session
     */
    detectViolations(request: {
        sessionState: DesignSessionState;
        constraintId?: string;
    } | DesignSessionState): Promise<ConstraintConsistencyViolation[]>;
    /**
     * Backwards-compatible wrapper: generate a simple string report
     */
    generateReport(request: {
        sessionState: DesignSessionState;
        constraintId?: string;
    } | DesignSessionState): Promise<string>;
    /**
     * Validate constraint consistency across previous sessions
     */
    validateCrossSessionConsistency(sessionState: DesignSessionState, constraintId?: string): Promise<CrossSessionValidationResult>;
    /**
     * Generate enforcement actions based on validation results
     */
    private generateEnforcementActions;
    /**
     * Generate interactive validation prompts
     */
    private generateInteractivePrompts;
    /**
     * Generate enforcement artifacts (ADRs, specs, etc.)
     */
    private generateEnforcementArtifacts;
    /**
     * Store enforcement decisions for future consistency checks
     */
    private storeEnforcementDecisions;
    /**
     * Calculate consistency score based on validation results
     */
    private calculateConsistencyScore;
    private calculateRawConsistencyScore;
    /**
     * Get relevant constraint enforcement history
     */
    private getRelevantHistory;
    /**
     * Generate context-driven validation prompts
     */
    private generateContextDrivenPrompt;
    /**
     * Generate Space 7 alignment prompts
     */
    private generateSpace7AlignmentPrompt;
    /**
     * Generate conflict resolution prompts
     */
    private generateConflictResolutionPrompt;
    /**
     * Generate violation resolution prompts
     */
    private generateViolationResolutionPrompt;
    /**
     * Helper methods
     */
    private getPhaseContext;
    private getSpace7GuidanceForConstraint;
    private getRelevantTemplateReferences;
    private generateEnforcementDecisionText;
    private generateEnforcementConsequences;
    private generateHistoricalAlignments;
    /**
     * Persistence methods (mock implementation - in production would use file system or database)
     */
    private loadEnforcementHistory;
    private persistEnforcementHistory;
}
export declare const constraintConsistencyEnforcer: ConstraintConsistencyEnforcerImpl;
export declare const IMPLEMENTATION_STATUS: "IMPLEMENTED";
export {};
//# sourceMappingURL=constraint-consistency-enforcer.d.ts.map