import type { Request } from 'express';
import { AuditLogRepository } from '../repositories/audit-log.repository';
import { MeetingAttendanceAuditAction, MeetingAttendanceAuditResource } from '../constants/audit';
type ActorLike = {
    userId?: string;
    id?: string;
    email?: string;
    displayName?: string;
    username?: string;
    role?: string;
    roles?: Array<{
        role?: {
            code?: string;
        };
    } | string>;
} | undefined | null;
export declare class MeetingAttendanceAuditLogWriter {
    private readonly auditLogRepository;
    constructor(auditLogRepository: AuditLogRepository);
    log(params: {
        request?: Request;
        actor?: ActorLike;
        action: MeetingAttendanceAuditAction;
        resource: MeetingAttendanceAuditResource;
        statusCode: number;
        resourceId?: string;
        requestBody?: Record<string, unknown>;
        changes?: Record<string, unknown>;
        errorMessage?: string;
        duration?: number;
        source?: string;
    }): Promise<void>;
    private toJson;
    private getHeader;
    private getClientIp;
}
export {};
