/**
 * OOD 与 SOLID 实现契约。
 *
 * 复杂业务编码在执行前必须给出对象职责与依赖边界；审查和交付阶段
 * 使用同一套 finding 口径阻断典型的 SOLID 违规。
 */
export type SolidPrinciple = "SRP" | "OCP" | "LSP" | "ISP" | "DIP" | "OVERDESIGN";
export type SolidSeverity = "hard_fail" | "warning" | "advisory";
export interface OodDesignSummary {
    task_id: string;
    status: "required" | "satisfied" | "not_applicable";
    applicability_reason_zh: string;
    objects: Array<{
        name: string;
        responsibility: string;
    }>;
    interfaces: string[];
    dependency_direction: string[];
    change_points: string[];
    solid_risks: string[];
    not_applicable_reason?: string;
    user_confirmation_ref?: string;
}
export interface SolidReviewFinding {
    principle: SolidPrinciple;
    severity: SolidSeverity;
    file: string;
    evidence: string;
    suggestion_zh: string;
}
export interface OodSolidGateResult {
    applicable: boolean;
    allowed: boolean;
    status: "required" | "satisfied" | "not_applicable" | "blocked";
    reason_zh: string;
    required_summary?: OodDesignSummary;
    findings: SolidReviewFinding[];
}
export declare function requiresOodSolidContract(intent: string, route?: string, changedFiles?: string[]): boolean;
export declare function createOodDesignSummary(taskId: string, intent: string): OodDesignSummary;
export declare function evaluateOodDesignGate(input: {
    task_id: string;
    intent: string;
    route?: string;
    changed_files?: string[];
    summary?: OodDesignSummary;
}): OodSolidGateResult;
export declare function reviewSolidCode(fileContents: Record<string, string>): SolidReviewFinding[];
export declare function hasBlockingSolidFindings(findings: SolidReviewFinding[]): boolean;
export declare function evaluateOverdesignRisk(intent: string, summary?: OodDesignSummary): SolidReviewFinding[];
//# sourceMappingURL=ood_solid_contract.d.ts.map