/**
 * X-Ray Findings Store
 *
 * Persistent storage for actionable X-Ray findings.
 * Tracks finding lifecycle: new -> reviewed -> ignored/resolved/quarantined
 */
import type { XRayFinding, ActionableXRayFinding, FindingStatus } from './types.js';
export interface FindingsStore {
    addFindings(sourceId: string, sourceKind: 'scan' | 'watch', target: string, rawFindings: XRayFinding[]): ActionableXRayFinding[];
    getFinding(id: string): ActionableXRayFinding | null;
    listFindings(filters?: {
        status?: FindingStatus;
        target?: string;
        severity?: string;
        limit?: number;
    }): ActionableXRayFinding[];
    updateFindingStatus(id: string, status: FindingStatus, note?: string): ActionableXRayFinding | null;
    deleteFinding(id: string): boolean;
    quarantineFile(id: string, note?: string): {
        moved: boolean;
        quarantinePath?: string;
        error?: string;
    };
    getStats(): {
        total: number;
        new: number;
        reviewed: number;
        ignored: number;
        resolved: number;
        quarantined: number;
    };
}
export declare function createFindingsStore(basePath?: string): FindingsStore;
export declare const addFindings: (sourceId: string, sourceKind: "scan" | "watch", target: string, rawFindings: XRayFinding[]) => ActionableXRayFinding[];
export declare const getFinding: (id: string) => ActionableXRayFinding | null;
export declare const listFindings: (filters?: {
    status?: FindingStatus;
    target?: string;
    severity?: string;
    limit?: number;
}) => ActionableXRayFinding[];
export declare const updateFindingStatus: (id: string, status: FindingStatus, note?: string) => ActionableXRayFinding | null;
export declare const deleteFinding: (id: string) => boolean;
export declare const quarantineFile: (id: string, note?: string) => {
    moved: boolean;
    quarantinePath?: string;
    error?: string;
};
export declare const getStats: () => {
    total: number;
    new: number;
    reviewed: number;
    ignored: number;
    resolved: number;
    quarantined: number;
};
