import { Repository } from 'typeorm';
import { AuditLog, AuditAction, AuditSeverity } from './entities/audit-log.entity';
import { ApiKey } from '../auth/entities/api-key.entity';
interface AuditContext {
    apiKey?: ApiKey;
    sessionId?: string;
    sessionName?: string;
    ipAddress?: string;
    userAgent?: string;
    method?: string;
    path?: string;
    statusCode?: number;
    metadata?: Record<string, unknown>;
    errorMessage?: string;
}
export interface AuditQueryOptions {
    action?: AuditAction;
    apiKeyId?: string;
    sessionId?: string;
    severity?: AuditSeverity;
    startDate?: Date;
    endDate?: Date;
    limit?: number;
    offset?: number;
}
export declare class AuditService {
    private readonly auditRepository;
    constructor(auditRepository: Repository<AuditLog>);
    log(action: AuditAction, context?: AuditContext, severity?: AuditSeverity): Promise<AuditLog>;
    logInfo(action: AuditAction, context?: AuditContext): Promise<AuditLog>;
    logWarn(action: AuditAction, context?: AuditContext): Promise<AuditLog>;
    logError(action: AuditAction, context?: AuditContext): Promise<AuditLog>;
    findAll(options?: AuditQueryOptions): Promise<{
        data: AuditLog[];
        total: number;
    }>;
    getRecentByApiKey(apiKeyId: string, limit?: number): Promise<AuditLog[]>;
    getRecentBySession(sessionId: string, limit?: number): Promise<AuditLog[]>;
    cleanup(olderThanDays?: number): Promise<number>;
}
export {};
