import { MAbuseFull, MAbuseMessage, MAccountDefault, MUserWithNotificationSetting, UserNotificationModelForApi } from '../../../../types/models';
import { AbstractNotification } from '../common/abstract-notification';
declare type NewAbuseMessagePayload = {
    abuse: MAbuseFull;
    message: MAbuseMessage;
};
export declare abstract class AbstractNewAbuseMessage extends AbstractNotification<NewAbuseMessagePayload> {
    protected messageAccount: MAccountDefault;
    loadMessageAccount(): Promise<void>;
    getSetting(user: MUserWithNotificationSetting): import("../../../../../shared/models").UserNotificationSettingValue;
    createNotification(user: MUserWithNotificationSetting): UserNotificationModelForApi;
    protected createEmailFor(to: string, target: 'moderator' | 'reporter'): {
        template: string;
        to: string;
        subject: string;
        locals: {
            abuseId: any;
            abuseUrl: string;
            messageAccountName: string;
            messageText: string;
            action: {
                text: string;
                url: string;
            };
        };
    };
    protected get abuse(): MAbuseFull;
    protected get message(): MAbuseMessage;
}
export {};
//# sourceMappingURL=abstract-new-abuse-message.d.ts.map