
import { localize } from '../../../nls.js';
import { Event } from '../../../base/common/event.js';
import Severity$1 from '../../../base/common/severity.js';

var NotificationPriority;
(function(NotificationPriority) {
    NotificationPriority[NotificationPriority["DEFAULT"] = 0] = "DEFAULT";
    NotificationPriority[NotificationPriority["OPTIONAL"] = 1] = "OPTIONAL";
    NotificationPriority[NotificationPriority["SILENT"] = 2] = "SILENT";
    NotificationPriority[NotificationPriority["URGENT"] = 3] = "URGENT";
})(NotificationPriority || (NotificationPriority = {}));
var NeverShowAgainScope;
(function(NeverShowAgainScope) {
    NeverShowAgainScope[NeverShowAgainScope["WORKSPACE"] = 0] = "WORKSPACE";
    NeverShowAgainScope[NeverShowAgainScope["PROFILE"] = 1] = "PROFILE";
    NeverShowAgainScope[NeverShowAgainScope["APPLICATION"] = 2] = "APPLICATION";
})(NeverShowAgainScope || (NeverShowAgainScope = {}));
function isNotificationSource(thing) {
    if (thing) {
        const candidate = thing;
        return typeof candidate.id === "string" && typeof candidate.label === "string";
    }
    return false;
}
var NotificationsFilter;
(function(NotificationsFilter) {
    NotificationsFilter[NotificationsFilter["OFF"] = 0] = "OFF";
    NotificationsFilter[NotificationsFilter["ERROR"] = 1] = "ERROR";
})(NotificationsFilter || (NotificationsFilter = {}));
class NoOpNotification {
    constructor() {
        this.progress = ( new NoOpProgress());
        this.onDidClose = Event.None;
        this.onDidChangeVisibility = Event.None;
    }
    updateSeverity(severity) {}
    updateMessage(message) {}
    updateActions(actions) {}
    close() {}
}
class NoOpProgress {
    infinite() {}
    done() {}
    total(value) {}
    worked(value) {}
}
function withSeverityPrefix(label, severity) {
    if (severity === Severity$1.Error) {
        return localize(2049, "Error: {0}", label);
    }
    if (severity === Severity$1.Warning) {
        return localize(2050, "Warning: {0}", label);
    }
    return localize(2051, "Info: {0}", label);
}

export { NeverShowAgainScope, NoOpNotification, NoOpProgress, NotificationPriority, NotificationsFilter, Severity$1 as Severity, isNotificationSource, withSeverityPrefix };
