import type { RuleRepository, RuleRecord } from '../db/repositories/rule.repository.js';
import type { AntipatternRepository } from '../db/repositories/antipattern.repository.js';
import type { SynapseManager } from '../synapses/synapse-manager.js';
export interface RuleCheckResult {
    matched: boolean;
    ruleId: number;
    action: string;
    description: string | null;
    confidence: number;
}
export interface AntipatternCheckResult {
    matched: boolean;
    antipatternId: number;
    pattern: string;
    description: string;
    severity: string;
    suggestion: string | null;
}
export declare class PreventionService {
    private ruleRepo;
    private antipatternRepo;
    private synapseManager;
    private logger;
    constructor(ruleRepo: RuleRepository, antipatternRepo: AntipatternRepository, synapseManager: SynapseManager);
    checkRules(errorType: string, message: string, projectId?: number): RuleCheckResult[];
    checkAntipatterns(errorType: string, message: string, projectId?: number): AntipatternCheckResult[];
    createRule(data: {
        pattern: string;
        action: string;
        description?: string;
        confidence?: number;
        projectId?: number;
    }): number;
    checkCodeForPatterns(source: string, _filePath?: string): {
        warnings: Array<{
            message: string;
            severity: string;
            ruleId?: number;
        }>;
    };
    listRules(): RuleRecord[];
    getRule(ruleId: number): RuleRecord | undefined;
    updateRule(ruleId: number, data: {
        confidence?: number;
        active?: number;
    }): RuleRecord | undefined;
    reportPrevention(ruleId: number, errorId: number): void;
}
