import Logger from '../../infrastructure/logging/Logger.js';
import type { Constitution, ConstitutionRule } from './Constitution.js';
export interface ValidationRequest {
    actor?: string;
    action?: string;
    resource?: string;
    data?: Record<string, unknown>;
    confirmed?: boolean;
    authorized?: boolean;
    code?: string;
    [key: string]: unknown;
}
export interface Violation {
    rule: string;
    reason: string;
    suggestion: string;
}
export interface ValidationResult {
    compliant: boolean;
    violations: Violation[];
}
type RuleChecker = (req: ValidationRequest, rule: ConstitutionRule) => Violation | null;
/**
 * ConstitutionValidator — 数据守护验证器
 *
 * 精简设计: 4 条纯数据完整性规则，不做伦理/价值观判断。
 * 每条规则对应 constitution.yaml 中的一个 rule.check 值。
 */
export declare class ConstitutionValidator {
    checkers: Record<string, RuleChecker>;
    constitution: Constitution;
    logger: ReturnType<typeof Logger.getInstance>;
    constructor(constitution: Constitution);
    /** 验证操作，返回违规列表 */
    validate(request: ValidationRequest): Promise<ValidationResult>;
    /** 强制验证（违规时抛异常） */
    enforce(request: ValidationRequest): Promise<ValidationResult>;
    /** 删除操作需要确认 */
    _checkDestructive(req: ValidationRequest, rule: ConstitutionRule): Violation | null;
    /** 创建候选/Recipe 需要内容 */
    _checkContent(req: ValidationRequest, rule: ConstitutionRule): Violation | null;
    /** AI 不能直接创建/批准 Recipe */
    _checkAiRecipe(req: ValidationRequest, rule: ConstitutionRule): Violation | null;
    /** 批量操作需要授权 */
    _checkBatch(req: ValidationRequest, rule: ConstitutionRule): Violation | null;
    _verb(action: string | undefined): string;
    _resource(action: string | undefined, resource: string | undefined): string;
    _isAI(actor: string | undefined): boolean;
    /** 兼容旧 priorities 格式 */
    _checkLegacyPriority(priority: {
        id: number;
        [key: string]: unknown;
    }, request: ValidationRequest): Promise<Violation[]>;
}
export default ConstitutionValidator;
