import { Repository } from 'typeorm';
import { ConfigService } from './config.service';
import { AuditLogEntity, AuditAction } from '../models/audit-log.entity';
export interface AuditLog {
    id: string;
    userId: string;
    action: AuditAction;
    target: string;
    result: boolean;
    metadata: Record<string, any>;
    timestamp: Date;
}
export interface AuditFilters {
    userId?: string;
    action?: AuditAction;
    target?: string;
    result?: boolean;
    startDate?: Date;
    endDate?: Date;
    limit?: number;
    offset?: number;
}
export declare class AuditService {
    private readonly auditRepository;
    private readonly configService;
    constructor(auditRepository: Repository<AuditLogEntity>, configService: ConfigService);
    logPermissionCheck(userId: string, route: string, result: boolean, metadata?: Record<string, any>): Promise<void>;
    logPermissionChange(userId: string, permission: string, action: 'grant' | 'revoke', targetUserId: string, metadata?: Record<string, any>): Promise<void>;
    logPermissionModification(userId: string, permission: string, metadata?: Record<string, any>): Promise<void>;
    getAuditLogs(filters?: AuditFilters): Promise<AuditLog[]>;
    private createAuditLog;
}
