import type { ShieldFinding } from '../commands/shield-templates.js';
import type { ExemptionLocal, ExemptionPattern, ExemptionShared } from './exemption-schema.js';
export declare function computePatternId(message: string): string;
export declare function recordFalsePositive(local: ExemptionLocal, patternId: string, source: 'shield' | 'bot', message: string): {
    updatedLocal: ExemptionLocal;
    promoted: boolean;
};
export declare function promoteToShared(shared: ExemptionShared, patternId: string, localPattern: ExemptionPattern): ExemptionShared;
export declare function filterExemptedFindings(findings: ShieldFinding[], shared: ExemptionShared): {
    filtered: ShieldFinding[];
    exempted: ShieldFinding[];
};
export declare function isExempted(patternId: string, exemptions: ExemptionShared): boolean;
export declare function addManualSuppression(shared: ExemptionShared, label: string, reason: string): ExemptionShared;
export interface TrackResult {
    local: ExemptionLocal;
    shared: ExemptionShared;
    promoted: string[];
}
/**
 * Track false positives for a batch of findings. Returns updated local/shared
 * state and a list of promoted pattern messages (for logging).
 */
export declare function trackFalsePositives(findings: Array<{
    message: string;
}>, source: 'shield' | 'bot', local: ExemptionLocal, shared: ExemptionShared): TrackResult;
//# sourceMappingURL=exemption-engine.d.ts.map