/**
 * User-defined suppressions for scanner findings.
 *
 * Reads `.dxkit-suppressions.json` at the repo root. Example:
 *
 *   {
 *     "gitleaks": [
 *       { "rule": "generic-api-key", "paths": ["test/fixtures/**"], "reason": "fake keys in fixtures" }
 *     ],
 *     "semgrep": [
 *       { "rule": "*", "paths": ["scripts/migrations/**"], "reason": "legacy, grandfathered" }
 *     ]
 *   }
 *
 * A finding is suppressed when:
 *   - its rule matches an entry's `rule` (exact string, or "*" as wildcard), AND
 *   - its path matches at least one of the entry's `paths` globs.
 *
 * Globs support `**` (any path segments), `*` (any chars except `/`), and `?`.
 * Leading `./` is normalized away.
 */
export interface SuppressionRule {
    /** Rule ID to match, or "*" for any rule from this tool. */
    rule: string;
    /** Glob patterns (relative to repo root) — finding suppressed if any match. */
    paths: string[];
    /** Optional human-readable reason (surfaced in reports). */
    reason?: string;
}
export interface Suppressions {
    gitleaks: SuppressionRule[];
    semgrep: SuppressionRule[];
    slop: SuppressionRule[];
}
/** Load suppressions for a repo root, memoized. Returns empty suppressions if file is missing/malformed. */
export declare function loadSuppressions(cwd: string): Suppressions;
/** Clear memo — useful for tests. */
export declare function clearSuppressionsCache(): void;
/**
 * Apply suppressions to a set of findings.
 *
 * Callers pass accessors (findings vary in shape across tools). Returns the
 * kept findings plus a parallel list of suppressed findings with the matched
 * reason annotated.
 */
export declare function applySuppressions<T>(findings: T[], rules: SuppressionRule[], getRule: (f: T) => string, getPath: (f: T) => string): {
    kept: T[];
    suppressed: Array<{
        finding: T;
        reason?: string;
    }>;
};
/** Convert a glob pattern to an anchored regex. Supports `**`, `*`, `?`. */
export declare function globToRegex(glob: string): RegExp;
//# sourceMappingURL=suppressions.d.ts.map