import { MUserDefault } from '../../types/models/user';
import { MVideoBlacklistLightVideo, MVideoBlacklistVideo } from '../../types/models/video/video-blacklist';
import { MAbuseFull, MAbuseMessage, MActorFollowFull, MApplication, MPlugin } from '../../types/models';
import { MCommentOwnerVideo, MVideoAccountLight, MVideoFullLight } from '../../types/models/video';
import { ImportFinishedForOwnerPayload, NewAbusePayload } from './shared';
declare class Notifier {
    private readonly notificationModels;
    private static instance;
    private constructor();
    notifyOnNewVideoIfNeeded(video: MVideoAccountLight): void;
    notifyOnVideoPublishedAfterTranscoding(video: MVideoFullLight): void;
    notifyOnVideoPublishedAfterScheduledUpdate(video: MVideoFullLight): void;
    notifyOnVideoPublishedAfterRemovedFromAutoBlacklist(video: MVideoFullLight): void;
    notifyOnNewComment(comment: MCommentOwnerVideo): void;
    notifyOnNewAbuse(payload: NewAbusePayload): void;
    notifyOnVideoAutoBlacklist(videoBlacklist: MVideoBlacklistLightVideo): void;
    notifyOnVideoBlacklist(videoBlacklist: MVideoBlacklistVideo): void;
    notifyOnVideoUnblacklist(video: MVideoFullLight): void;
    notifyOnFinishedVideoImport(payload: ImportFinishedForOwnerPayload): void;
    notifyOnNewUserRegistration(user: MUserDefault): void;
    notifyOfNewUserFollow(actorFollow: MActorFollowFull): void;
    notifyOfNewInstanceFollow(actorFollow: MActorFollowFull): void;
    notifyOfAutoInstanceFollowing(actorFollow: MActorFollowFull): void;
    notifyOnAbuseStateChange(abuse: MAbuseFull): void;
    notifyOnAbuseMessage(abuse: MAbuseFull, message: MAbuseMessage): void;
    notifyOfNewPeerTubeVersion(application: MApplication, latestVersion: string): void;
    notifyOfNewPluginVersion(plugin: MPlugin): void;
    private notify;
    private isEmailEnabled;
    private isWebNotificationEnabled;
    private sendNotifications;
    static get Instance(): Notifier;
}
export { Notifier };
//# sourceMappingURL=notifier.d.ts.map