import { PrismaService } from "../../../core/database/prisma/prisma.service";
import { AuditLogRepository } from '../repositories/audit-log.repository';
export declare class AuditLogsService {
    private readonly auditLogRepository;
    private readonly prisma;
    constructor(auditLogRepository: AuditLogRepository, prisma: PrismaService);
    listAuditLogs(filters: {
        userId?: string;
        userEmail?: string;
        action?: string;
        resource?: string;
        startDate?: string;
        endDate?: string;
        page?: string;
        pageSize?: string;
    }): Promise<{
        logs: {
            userRole: string;
            id: string;
            createdAt: Date;
            action: string;
            userId: string;
            changes: string | null;
            sessionId: string | null;
            traceId: string | null;
            requestId: string | null;
            ipAddress: string | null;
            userAgent: string | null;
            deviceId: string | null;
            geoLocation: string | null;
            errorMessage: string | null;
            duration: number | null;
            source: string;
            resource: string;
            endpoint: string;
            method: string;
            statusCode: number;
            userName: string;
            requestBody: string | null;
            userEmail: string;
            resourceId: string | null;
            fieldDiffs: string | null;
            reasonCode: string | null;
            reasonText: string | null;
            prevHash: string | null;
            hash: string | null;
            isRedacted: boolean;
            isTombstoned: boolean;
            retentionUntil: Date | null;
        }[];
        pagination: {
            page: number;
            pageSize: number;
            total: number;
            totalPages: number;
        };
    }>;
    getAuditLogStats(filters: {
        startDate?: string;
        endDate?: string;
        userId?: string;
    }): Promise<{
        actionStats: {
            action: string;
            count: number;
        }[];
        resourceStats: {
            resource: string;
            count: number;
        }[];
        userStats: {
            userEmail: string;
            count: number;
        }[];
        sourceStats: {
            source: string;
            count: number;
        }[];
        errorCount: number;
        periodDays: number;
    }>;
    private parseDateRange;
    private parseDate;
}
