import { PrismaService } from "../../../database/prisma/prisma.service";
export declare class ComplianceReportService {
    private readonly prisma;
    private readonly logger;
    constructor(prisma: PrismaService);
    generateSoxReport(region: string, tenantId: string, startDate: Date, endDate: Date): Promise<{
        reportType: string;
        reportPeriod: {
            start: string;
            end: string;
        };
        generatedAt: string;
        region: string;
        tenantId: string;
        sections: {
            financialOperations: {
                totalOperations: number;
                operationsByType: {
                    action: import("@prisma/client").$Enums.AuditAction;
                    count: number;
                }[];
                topUsers: {
                    userId: string;
                    username: string;
                    displayName: string | null;
                    operationCount: number;
                }[];
                retentionCompliance: {
                    required: string;
                    status: string;
                };
            };
            accessControlChanges: {
                totalChanges: number;
                changesByType: {
                    roleAssignments: number;
                    permissionChanges: number;
                };
                recentChanges: {
                    id: string;
                    when: string;
                    who: string;
                    action: import("@prisma/client").$Enums.AuditAction;
                    entityType: string;
                    entityId: string;
                    what: string;
                    riskLevel: import("@prisma/client").$Enums.RiskLevel;
                }[];
            };
            highRiskOperations: {
                totalHighRisk: number;
                byModule: Record<string, number>;
                byAction: Record<string, number>;
                recentOperations: {
                    id: string;
                    when: string;
                    who: string;
                    module: string;
                    action: import("@prisma/client").$Enums.AuditAction;
                    what: string;
                    status: import("@prisma/client").$Enums.AuditStatus;
                    isSensitive: boolean;
                }[];
            };
            failedOperations: {
                totalFailed: number;
                errorPatterns: Record<string, number>;
                moduleFailures: Record<string, number>;
                recentFailures: {
                    id: string;
                    when: string;
                    who: string;
                    module: string;
                    action: import("@prisma/client").$Enums.AuditAction;
                    what: string;
                    errorMessage: string | null;
                }[];
            };
            integrityChecks: {
                totalChecks: number;
                passedChecks: number;
                failedChecks: number;
                passRate: number;
                recentChecks: {
                    id: string;
                    checkType: import("@prisma/client").$Enums.IntegrityCheckType;
                    when: string;
                    recordCount: number;
                    passCount: number;
                    failCount: number;
                    status: import("@prisma/client").$Enums.CheckStatus;
                }[];
                failures: {
                    id: string;
                    when: string;
                    failCount: number;
                    errorMessage: string | null;
                    failures: import("@prisma/client/runtime/library").JsonValue;
                }[];
            };
            anomalies: {
                loginFailures: {
                    detected: number;
                    anomalies: {
                        userId: string;
                        username: string;
                        failureCount: number;
                        severity: string;
                    }[];
                };
                bulkOperations: {
                    detected: number;
                    operations: {
                        id: string;
                        when: string;
                        who: string;
                        action: import("@prisma/client").$Enums.AuditAction;
                        module: string;
                        entityType: string;
                        what: string;
                        status: import("@prisma/client").$Enums.AuditStatus;
                    }[];
                };
                afterHoursOps: {
                    detected: number;
                    operations: {
                        id: string;
                        when: string;
                        who: string;
                        module: string;
                        action: import("@prisma/client").$Enums.AuditAction;
                        what: string;
                        riskLevel: import("@prisma/client").$Enums.RiskLevel;
                        isSensitive: boolean;
                    }[];
                };
            };
        };
        complianceStatus: {
            status: string;
            issues: {
                severity: string;
                message: string;
            }[];
            summary: string;
        };
    }>;
    private getFinancialOperationsSummary;
    private getAccessControlChanges;
    private getHighRiskOperations;
    private getFailedOperations;
    private getIntegrityCheckResults;
    private detectAnomalies;
    private detectLoginAnomalies;
    private detectBulkOperationAnomalies;
    private detectAfterHoursOperations;
    private evaluateComplianceStatus;
    generateGdprDataAccessReport(userId: string, region: string, tenantId: string): Promise<{
        reportType: string;
        generatedAt: string;
        dataSubject: {
            userId: string;
        };
        summary: {
            totalAccesses: number;
            accessByAction: Record<string, number>;
            uniqueAccessors: number;
        };
        accessors: {
            userId: string;
            username: string;
            accessCount: number;
        }[];
        recentAccesses: {
            when: string;
            who: string;
            action: import("@prisma/client").$Enums.AuditAction;
            module: string;
            what: string;
        }[];
    }>;
    generateAnomalyReport(region: string, tenantId: string, startDate: Date, endDate: Date): Promise<{
        reportType: string;
        reportPeriod: {
            start: string;
            end: string;
        };
        generatedAt: string;
        region: string;
        tenantId: string;
        anomalies: {
            loginFailures: {
                detected: number;
                anomalies: {
                    userId: string;
                    username: string;
                    failureCount: number;
                    severity: string;
                }[];
            };
            bulkOperations: {
                detected: number;
                operations: {
                    id: string;
                    when: string;
                    who: string;
                    action: import("@prisma/client").$Enums.AuditAction;
                    module: string;
                    entityType: string;
                    what: string;
                    status: import("@prisma/client").$Enums.AuditStatus;
                }[];
            };
            afterHoursOps: {
                detected: number;
                operations: {
                    id: string;
                    when: string;
                    who: string;
                    module: string;
                    action: import("@prisma/client").$Enums.AuditAction;
                    what: string;
                    riskLevel: import("@prisma/client").$Enums.RiskLevel;
                    isSensitive: boolean;
                }[];
            };
        };
        severity: string;
    }>;
    private calculateAnomalySeverity;
    private categorizeError;
    exportReportToCsv(report: any): Promise<string>;
}
