import { Operation, OperationType } from "@myycontext/core";
/**
 * Validation severity levels
 */
export type ValidationSeverity = "error" | "warning" | "info";
/**
 * Validation result for a single check
 */
export interface ValidationCheck {
    name: string;
    severity: ValidationSeverity;
    passed: boolean;
    message: string;
    suggestion?: string;
}
/**
 * Comprehensive validation report
 */
export interface ValidationReport {
    operationId: string;
    operationType: OperationType;
    timestamp: string;
    phase: "pre-flight" | "post-flight" | "dry-run";
    passed: boolean;
    checks: ValidationCheck[];
    errors: ValidationCheck[];
    warnings: ValidationCheck[];
    riskLevel: "low" | "medium" | "high";
    estimatedDurationMs: number;
    canProceed: boolean;
    requiresUserApproval?: boolean;
}
/**
 * Conflict detection result
 */
export interface ConflictDetection {
    hasConflicts: boolean;
    conflicts: Array<{
        operationId: string;
        type: "file-overlap" | "dependency-cycle" | "resource-lock";
        message: string;
    }>;
}
/**
 * Dry-run result
 */
export interface DryRunResult {
    success: boolean;
    wouldCreate: string[];
    wouldModify: string[];
    wouldDelete: string[];
    warnings: string[];
    errors: string[];
}
/**
 * OperationValidator: Pre-flight and post-flight validation
 */
export declare class OperationValidator {
    private baseDir;
    private validationCache;
    constructor(baseDir?: string);
    /**
     * Pre-flight validation: Validate before execution
     */
    validatePreFlight(op: Operation): Promise<ValidationReport>;
    /**
     * Post-flight validation: Validate after execution
     */
    validatePostFlight(op: Operation): Promise<ValidationReport>;
    /**
     * Dry-run: Simulate execution without side effects
     */
    dryRun(op: Operation): Promise<DryRunResult>;
    /**
     * Detect conflicts with other operations
     */
    detectConflicts(op: Operation, otherOps: Operation[]): Promise<ConflictDetection>;
    /**
     * Validate operation schema
     */
    private validateSchema;
    /**
     * Validate pre-conditions
     */
    private validatePreConditions;
    /**
     * Check a single pre-condition
     */
    private checkPreCondition;
    /**
     * Validate post-conditions
     */
    private validatePostConditions;
    /**
     * Check a single post-condition
     */
    private checkPostCondition;
    /**
     * Validate file system state
     */
    private validateFileSystem;
    /**
     * Validate syntax
     */
    private validateSyntax;
    /**
     * Basic syntax check (not comprehensive)
     */
    private checkBasicSyntax;
    /**
     * Validate side effects
     */
    private validateSideEffects;
    /**
     * Assess operation risk
     */
    private assessRisk;
    /**
     * Get files affected by operation
     */
    private getAffectedFiles;
    /**
     * Resolve template variables in paths
     */
    private resolvePath;
    /**
     * Get cached validation report
     */
    getCachedReport(operationId: string): ValidationReport | undefined;
    /**
     * Clear validation cache
     */
    clearCache(): void;
}
//# sourceMappingURL=OperationValidator.d.ts.map