UNPKG

@highlite/core

Version:
64 lines (58 loc) 2.2 kB
/*! Copyright (C) 2025 HighLite This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. */ import type { Plugin } from '../../interfaces/highlite/plugin/plugin.class'; import type { PluginConfig } from '../../interfaces/highlite/plugin/PluginConfig.interface'; export interface ManagedPlugin { config: PluginConfig | undefined; class: (new () => Plugin) | undefined; instance: Plugin | undefined; blob?: Blob | undefined; url?: string | undefined; installedConfig?: PluginConfig | undefined; } export declare class PluginManager { private static instance; private panelManager; private databaseManager; private settingsManager; private panelContent; private listContainer; private searchInput; private currentFilter; private didInitialSync; private managedPlugins; private isLoggedIn; get plugins(): ManagedPlugin[]; setLoginState(isLoggedIn: boolean): void; constructor(); initialize(): Promise<void>; private obtainPluginConfigs; private populatePluginHub; private syncPluginState; private shortSha; private downloadAndVerifyAsset; private sha256Hex; private stylePrimaryButton; private styleDangerButton; private styleSecondaryButton; private styleSuccessButton; registerPlugin<T extends Plugin>(pluginClass: new () => T): boolean; initAll(): void; postInitAll(): void; startAll(): void; stopAll(): void; findPluginByName(pluginName: string): Plugin | undefined; findPluginByClass(pluginClass: new () => Plugin): Plugin | undefined; unregisterPlugin(plugin: Plugin): boolean; }