/**
 * Findings Repository
 *
 * CRUD operations for security findings with status tracking.
 *
 * @module persistence/repositories/findings
 */
import type Database from "better-sqlite3";
import type { PersistedFinding, FindingStatus, ProjectStats } from "../types.js";
import type { Severity } from "../../certification/types.js";
export interface FindingFilter {
    projectId?: string;
    certificationId?: string;
    severity?: Severity | Severity[];
    status?: FindingStatus | FindingStatus[];
    category?: string | string[];
    file?: string;
    scannerSource?: string;
    sinceDate?: string;
    untilDate?: string;
    limit?: number;
    offset?: number;
}
export declare class FindingsRepository {
    private db;
    constructor(db: Database.Database);
    create(finding: Omit<PersistedFinding, "id" | "firstSeenAt" | "lastSeenAt">): PersistedFinding;
    upsertFromScan(finding: Omit<PersistedFinding, "id" | "firstSeenAt" | "lastSeenAt" | "status">): {
        finding: PersistedFinding;
        isNew: boolean;
    };
    findById(id: string): PersistedFinding | undefined;
    findBySignature(projectId: string, file: string, line: number, category: string, scannerSource: string): PersistedFinding | undefined;
    find(filter: FindingFilter): PersistedFinding[];
    updateStatus(id: string, status: FindingStatus, fixedBy?: string): boolean;
    markFixed(ids: string[], fixedBy?: string): number;
    markFalsePositive(id: string, reason?: string): boolean;
    getStats(projectId: string): ProjectStats;
    private mapRow;
}
//# sourceMappingURL=findings.d.ts.map