import { PrismaService } from "../../../database/prisma/prisma.service";
import { AuditLog, AuditAction } from '@prisma/client';
export declare class AuditAlertService {
    private readonly prisma;
    private readonly logger;
    constructor(prisma: PrismaService);
    private readonly alertRules;
    checkAndAlert(auditLog: Partial<AuditLog>): Promise<{
        shouldAlert: boolean;
        alertType?: string;
        severity?: 'CRITICAL' | 'HIGH' | 'MEDIUM' | 'LOW';
        message?: string;
    }>;
    private isHighRiskOperation;
    private getHighestSeverity;
    private sendAlerts;
    detectContinuousFailures(userId: string, action: AuditAction, region: string, tenantId: string, timeWindow?: number): Promise<{
        detected: boolean;
        failureCount: number;
        shouldLock?: boolean;
    }>;
    detectAnomalousPattern(userId: string, region: string, tenantId: string, days?: number): Promise<{
        detected: boolean;
        anomalies: Array<{
            type: string;
            description: string;
            severity: 'HIGH' | 'MEDIUM' | 'LOW';
        }>;
    }>;
    handleRealtimeAlert(auditLog: AuditLog): Promise<void>;
    batchCheckAlerts(region: string, tenantId: string, since?: Date): Promise<{
        period: {
            start: string;
            end: string;
        };
        alertCount: number;
        alerts: {
            userId: string;
            username?: string;
            alertType: string;
            severity: string;
            count: number;
            details: any;
        }[];
    }>;
    private sendBatchAlertSummary;
    checkUserAlertStatus(userId: string, region: string, tenantId: string): Promise<{
        hasActiveAlerts: boolean;
        alerts: any[];
        riskScore: number;
    }>;
    private calculateUserRiskScore;
}
