import type { RiskLevel, AuditCategory } from './common.js';
export interface ResilienceAnalysis {
    failureScenarios: FailureScenario[];
    concurrencyAnalysis: ConcurrencyAnalysis;
    scalabilityAssessment: string;
    overallRisk: RiskLevel;
}
export interface FailureScenario {
    scenario: string;
    probability: 'low' | 'medium' | 'high';
    impact: 'low' | 'medium' | 'high' | 'critical';
    currentHandling: string;
    requiredHandling: string;
    dataConsistency: string;
    userExperience: string;
}
export interface ConcurrencyAnalysis {
    hotPaths: string[];
    raceConditions: string[];
    sharedState: string[];
    recommendations: string[];
}
export interface DriftReport {
    specId: string;
    checkType: 'on-demand' | 'ci' | 'pre-commit' | 'scheduled';
    driftScore: number;
    drifts: DriftItem[];
    lastChecked: string;
    isCompliant: boolean;
}
export interface DriftItem {
    file: string;
    specCriterion: string;
    expected: string;
    actual: string;
    severity: 'low' | 'medium' | 'high' | 'critical';
    autoFixable: boolean;
    suggestedFix?: string;
}
export interface QualityProfile {
    enabledCategories: AuditCategory[];
    customRules: QualityRule[];
    principles: string[];
    strictness: 'relaxed' | 'standard' | 'strict';
}
export interface QualityRule {
    id: string;
    description: string;
    category: AuditCategory;
    severity: 'info' | 'warning' | 'error' | 'critical';
    source: string;
    pattern?: string;
}
export interface AuditFinding {
    file: string;
    line?: number;
    category: AuditCategory;
    severity: 'info' | 'warning' | 'error' | 'critical';
    rule: string;
    message: string;
    suggestion: string;
    reference?: string;
}
export interface AuditSummary {
    byCategory: Record<string, {
        count: number;
        severity: string;
    }>;
    topIssues: string[];
    strengths: string[];
    score: number;
}
export interface AuditResult {
    filesAnalyzed: number;
    findings: AuditFinding[];
    summary: AuditSummary;
    score: number;
    qualityScore?: QualityScore;
}
/** Scoring weight per category (must sum to 1.0). */
export type QualityScoringCategory = 'solid' | 'clean-code' | 'architecture' | 'security' | 'performance' | 'dry' | 'error-handling';
export interface QualityCategoryScore {
    category: QualityScoringCategory;
    score: number;
    weight: number;
    issueCount: number;
    worstSeverity: 'info' | 'warning' | 'error' | 'critical' | 'none';
    suggestions: string[];
}
export interface CustomRuleResult {
    rule: string;
    source: string;
    passed: boolean;
    detail: string;
}
export interface QualityScore {
    overall: number;
    categories: QualityCategoryScore[];
    customRules: CustomRuleResult[];
    generatedAt: string;
}
export interface TechDebtItem {
    file: string;
    type: 'anti-pattern' | 'code-smell' | 'outdated-dep' | 'missing-tests' | 'complexity';
    description: string;
    severity: 'low' | 'medium' | 'high';
    effort: 'trivial' | 'small' | 'medium' | 'large';
    suggestion: string;
}
export interface VisualValidation {
    screenshots: VisualScreenshot[];
    designComparison?: VisualComparison;
    visualScore: number;
    issues: VisualIssue[];
}
export interface VisualScreenshot {
    name: string;
    path: string;
    source: 'puppeteer' | 'playwright' | 'manual' | 'figma' | 'pencil';
    viewport: string;
}
export interface VisualComparison {
    designSource: 'figma' | 'pencil' | 'screenshot-reference';
    matchPercentage: number;
    differences: string[];
}
export interface VisualIssue {
    severity: 'critical' | 'warning' | 'info';
    element: string;
    issue: string;
    screenshot?: string;
}
export interface DetectDriftInput {
    specId: string;
    projectId: string;
    mode?: 'full' | 'quick';
    outputFormat?: 'report' | 'ci-json' | 'github-annotations';
    threshold?: number;
}
export interface AuditInput {
    path: string;
    projectId: string;
    categories?: AuditCategory[];
    specId?: string;
}
export interface ValidateResult {
    matches: string[];
    missing: string[];
    extra: string[];
    fieldsImplemented: number;
    fieldsTotal: number;
    score: number;
    qualityIssues: AuditFinding[];
    visualValidation?: VisualValidation;
}
export interface CodeState {
    affectedFiles: string[];
    unexpectedFiles: string[];
    fileContents: Map<string, string>;
}
export interface FunctionInfo {
    name: string;
    startLine: number;
    length: number;
}
//# sourceMappingURL=analysis.d.ts.map