/**
 * Pattern-based Quality Scoring Engine
 *
 * Scores SDLC artifacts against pattern definitions (required/recommended/antipattern).
 * Scoring: required (60%) + recommended (40%) - antipattern penalty.
 * Thresholds: excellent (90+), good (75+), acceptable (60+), needs-work (<60).
 *
 * @module quality/scoring
 * @issue #192
 */
export interface PatternRule {
    id: string;
    pattern: string;
    description: string;
    weight?: number;
}
export interface PatternDefinition {
    id: string;
    name: string;
    description: string;
    required: PatternRule[];
    recommended: PatternRule[];
    antipatterns: PatternRule[];
}
export interface PatternMatch {
    rule: PatternRule;
    found: boolean;
    matchCount: number;
}
export interface ScoringResult {
    score: number;
    grade: 'excellent' | 'good' | 'acceptable' | 'needs-work';
    breakdown: {
        required: number;
        recommended: number;
        antipatternPenalty: number;
    };
    matches: {
        required: PatternMatch[];
        recommended: PatternMatch[];
        antipatterns: PatternMatch[];
    };
    patternId: string;
    artifactPath: string;
}
export declare const REQUIRED_WEIGHT = 0.6;
export declare const RECOMMENDED_WEIGHT = 0.4;
export declare const THRESHOLDS: {
    readonly excellent: 90;
    readonly good: 75;
    readonly acceptable: 60;
};
export declare function scoreContent(content: string, patterns: PatternDefinition, artifactPath?: string): ScoringResult;
export declare function matchPattern(content: string, rule: PatternRule): PatternMatch;
export declare function getGrade(score: number): ScoringResult['grade'];
export declare function loadBuiltinPattern(artifactType: string): Promise<PatternDefinition | null>;
export declare function loadPatternFromFile(filePath: string): Promise<PatternDefinition | null>;
export declare function getAvailablePatternTypes(): string[];
export declare function detectArtifactType(content: string, filePath: string): string | null;
export declare function scoreArtifact(filePath: string, patternType?: string): Promise<ScoringResult | null>;
//# sourceMappingURL=scoring.d.ts.map