import express from 'express';
import { AdminAbuse, CustomConfig, User, VideoChannel, VideoComment, VideoDetails, VideoImport } from '../../shared/models';
declare function getAuditIdFromRes(res: express.Response): string;
declare function auditLoggerFactory(domain: string): {
    create(user: string, entity: EntityAuditView): void;
    update(user: string, entity: EntityAuditView, oldEntity: EntityAuditView): void;
    delete(user: string, entity: EntityAuditView): void;
};
declare abstract class EntityAuditView {
    private readonly keysToKeep;
    private readonly prefix;
    private readonly entityInfos;
    constructor(keysToKeep: string[], prefix: string, entityInfos: object);
    toLogKeys(): object;
}
declare class VideoAuditView extends EntityAuditView {
    private readonly video;
    constructor(video: VideoDetails);
}
declare class VideoImportAuditView extends EntityAuditView {
    private readonly videoImport;
    constructor(videoImport: VideoImport);
}
declare class CommentAuditView extends EntityAuditView {
    private readonly comment;
    constructor(comment: VideoComment);
}
declare class UserAuditView extends EntityAuditView {
    private readonly user;
    constructor(user: User);
}
declare class VideoChannelAuditView extends EntityAuditView {
    private readonly channel;
    constructor(channel: VideoChannel);
}
declare class AbuseAuditView extends EntityAuditView {
    private readonly abuse;
    constructor(abuse: AdminAbuse);
}
declare class CustomConfigAuditView extends EntityAuditView {
    constructor(customConfig: CustomConfig);
}
export { getAuditIdFromRes, auditLoggerFactory, VideoImportAuditView, VideoChannelAuditView, CommentAuditView, UserAuditView, VideoAuditView, AbuseAuditView, CustomConfigAuditView };
//# sourceMappingURL=audit-logger.d.ts.map