import type Database from 'better-sqlite3';
import type { RiskLevel, OutcomeType } from './schemas.js';
export interface AuditEventRow {
    id: string;
    correlationId: string;
    causationId: string | null;
    eventType: string;
    agentId: string | null;
    actionType: string | null;
    riskLevel: string | null;
    payload: string;
    outcome: string | null;
    createdAt: string;
}
export interface AuditQueryFilters {
    agentId?: string;
    eventType?: string;
    riskLevel?: RiskLevel;
    outcome?: OutcomeType;
    startDate?: string;
    endDate?: string;
    limit?: number;
    offset?: number;
}
export interface AuditStats {
    totalEvents: number;
    byEventType: Record<string, number>;
    byRiskLevel: Record<string, number>;
    blockedCount: number;
    blockedRate: number;
}
export interface AuditRecordInput {
    correlationId: string;
    causationId?: string;
    eventType: string;
    agentId?: string;
    actionType?: string;
    riskLevel?: string;
    payload: Record<string, unknown>;
    outcome?: string;
}
interface StorageProvider {
    getDatabase(): Database.Database;
}
export declare class AuditStore {
    private readonly db;
    private readonly insertStmt;
    private fts5Available;
    constructor(storage: StorageProvider);
    private initTables;
    static redactSensitive(payload: string): string;
    record(event: AuditRecordInput): string;
    recordBatch(events: AuditRecordInput[]): string[];
    query(filters: AuditQueryFilters): AuditEventRow[];
    getByCorrelation(correlationId: string): AuditEventRow[];
    getStats(dateRange?: {
        startDate: string;
        endDate: string;
    }): AuditStats;
    search(query: string, limit?: number): AuditEventRow[];
}
export {};
//# sourceMappingURL=AuditStore.d.ts.map