export interface RuleBypassStats {
    ruleId: string;
    /** Number of rule triggers (from rule-metrics.json) */
    triggerCount: number;
    /** Number of bypass events — suppress + override (from ledger) */
    bypassCount: number;
    /** bypassCount / (triggerCount + bypassCount), 0 when no events */
    bypassRate: number;
    /** triggerCount + bypassCount */
    totalEvents: number;
}
/**
 * Analyze the Trap Ledger to compute bypass rates per rule.
 *
 * Reads bypass events from the ledger (source of truth for exceptions)
 * and trigger counts from rule-metrics (only source for trigger data).
 */
export declare function analyzeLedger(totemDir: string, onWarn?: (msg: string) => void): Promise<Map<string, RuleBypassStats>>;
/**
 * Stream the ledger NDJSON file and count bypass events per ruleId.
 * Uses readline for memory-efficient parsing of large ledgers.
 */
export declare function readLedgerBypassCounts(totemDir: string, onWarn?: (msg: string) => void): Promise<Map<string, number>>;
//# sourceMappingURL=ledger-analyzer.d.ts.map