function _define_property(obj, key, value) {
    if (key in obj) Object.defineProperty(obj, key, {
        value: value,
        enumerable: true,
        configurable: true,
        writable: true
    });
    else obj[key] = value;
    return obj;
}
class Plugin {
    get pluginManager() {
        return this.app.pluginManager;
    }
    get pm() {
        return this.app.pm;
    }
    get router() {
        return this.app.router;
    }
    get systemSettingsManager() {
        return this.app.systemSettingsManager;
    }
    get userSettingsManager() {
        return this.app.userSettingsManager;
    }
    get schemaInitializerManager() {
        return this.app.schemaInitializerManager;
    }
    get schemaSettingsManager() {
        return this.app.schemaSettingsManager;
    }
    get dataSourceManager() {
        return this.app.dataSourceManager;
    }
    get AttachmentPreviewManager() {
        return this.app.AttachmentPreviewManager;
    }
    async afterAdd() {}
    async beforeLoad() {}
    async load() {}
    async afterLoad() {}
    t(text) {
        let options = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {};
        var _this_options;
        return this.app.i18n.t(text, {
            ns: null === (_this_options = this.options) || void 0 === _this_options ? void 0 : _this_options['packageName'],
            ...options
        });
    }
    constructor(options, app){
        _define_property(this, "options", void 0);
        _define_property(this, "app", void 0);
        this.options = options;
        this.app = app;
        this.options = options;
        this.app = app;
    }
}
export { Plugin };
