@jbrowse/core
Version:
JBrowse 2 core libraries used by plugins
14 lines (13 loc) • 613 B
TypeScript
import type PluginManager from './PluginManager';
import type { AnyConfigurationSchemaType } from './configuration';
export default abstract class Plugin {
abstract name: string;
url?: string;
version?: string;
install(_pluginManager: PluginManager): void;
configure(_pluginManager: PluginManager): void;
configurationSchema?: AnyConfigurationSchemaType;
configurationSchemaUnnamespaced?: AnyConfigurationSchemaType;
rootConfigurationSchema?: (arg: PluginManager) => Record<string, AnyConfigurationSchemaType>;
}
export type PluginConstructor = new (...args: unknown[]) => Plugin;