/**
 * 用户项目代码可维护性与可观测性契约。
 *
 * 治理对象是用户项目代码，不是 SoloForge 自身。
 * 覆盖必要注释、结构化日志、错误日志、审计日志、
 * 敏感信息脱敏和低风险跳过。
 */
export type ObservabilityCategory = "missing_log_critical" | "missing_log_business_write" | "sensitive_log_leak" | "catch_swallow" | "missing_log_state_change" | "missing_comment_complex" | "missing_class_doc" | "missing_method_doc" | "missing_important_line_comment" | "missing_domain_field_comment" | "non_chinese_log" | "non_chinese_comment" | "missing_log_external" | "missing_audit_log" | "raw_console_log" | "unlocatable_log" | "weak_comment" | "comment_code_mismatch" | "noisy_log" | "verbose_comment" | "wrong_logger" | "low_risk_skip";
export type ObservabilitySeverity = "hard_fail" | "warning" | "advisory" | "info";
export type ProjectLoggerType = "slf4j" | "pino" | "winston" | "nestjs_logger" | "custom_logger" | "none_detected" | "frontend_project";
export interface CodeObservabilityFinding {
    category: ObservabilityCategory;
    severity: ObservabilitySeverity;
    file: string;
    evidence: string;
    suggestion_zh: string;
}
export interface ProjectLoggerInfo {
    type: ProjectLoggerType;
    import_pattern: string;
    call_pattern: string;
    confidence: "high" | "medium" | "low";
}
export interface CodeObservabilityWorkPackage {
    task_id: string;
    status: "required" | "satisfied" | "not_applicable";
    applicability_reason_zh: string;
    required_logs: string[];
    required_comments: string[];
    sensitive_fields: string[];
    detected_logger?: ProjectLoggerInfo;
    not_applicable_reason?: string;
}
export interface CodeObservabilityGateResult {
    applicable: boolean;
    allowed: boolean;
    status: "blocked" | "satisfied" | "not_applicable";
    reason_zh: string;
    work_package?: CodeObservabilityWorkPackage;
    findings: CodeObservabilityFinding[];
}
export declare function requiresCodeObservabilityContract(intent: string, route?: string, changedFiles?: string[]): boolean;
export declare function detectProjectLogger(fileContents: Record<string, string>): ProjectLoggerInfo;
export declare function createCodeObservabilityWorkPackage(taskId: string, intent: string, loggerInfo?: ProjectLoggerInfo): CodeObservabilityWorkPackage;
export declare function evaluateCodeObservabilityGate(input: {
    task_id: string;
    intent: string;
    route?: string;
    changed_files?: string[];
    work_package?: CodeObservabilityWorkPackage;
    project_files?: Record<string, string>;
}): CodeObservabilityGateResult;
export declare function detectSensitiveLogs(fileContents: Record<string, string>): CodeObservabilityFinding[];
export declare function reviewMissingLogs(fileContents: Record<string, string>): CodeObservabilityFinding[];
export declare function reviewCommentQuality(fileContents: Record<string, string>): CodeObservabilityFinding[];
export declare function reviewLoggerUsage(fileContents: Record<string, string>, loggerInfo: ProjectLoggerInfo): CodeObservabilityFinding[];
export declare function reviewCodeObservability(fileContents: Record<string, string>, loggerInfo?: ProjectLoggerInfo): CodeObservabilityFinding[];
export declare function isLowRiskChange(intent: string, changedFiles?: string[]): {
    low_risk: boolean;
    reason_zh: string;
};
export declare function hasBlockingObservabilityFindings(findings: CodeObservabilityFinding[]): boolean;
export declare function hasP1OrAboveFindings(findings: CodeObservabilityFinding[]): boolean;
export declare function verifyChangedFilesObservability(input: {
    changed_files: string[];
    file_contents: Record<string, string>;
    intent: string;
}): CodeObservabilityFinding[];
export declare function evaluateDeliveryBlock(findings: CodeObservabilityFinding[]): {
    blocked: boolean;
    reason_zh: string;
    blocking_findings: CodeObservabilityFinding[];
};
//# sourceMappingURL=code_maintainability_observability_contract.d.ts.map