import type { GraphEvent, GraphHooks } from '../types/events'; import type { Graph } from './graph'; export declare type PluginHooks = GraphHooks<(this: Plugin, event: GraphEvent, graph: Graph) => void>; export interface PluginConfig extends PluginHooks { name: string; /** * 添加配置 */ addOptions?(this: Plugin): O; /** * 添加存储 */ addStorage?(this: Plugin): S; /** * 插件初始化钩子 */ onPluginInit?(this: Plugin, graph: Graph): void; } export declare class Plugin implements PluginConfig { /** * 插件名称 */ name: string; /** * 存储对象 */ storage: S; /** * 配置对象 */ options: O; /** * 事件钩子 */ hooks: PluginHooks; /** * 插件初始化钩子 */ onPluginInit: PluginConfig['onPluginInit']; constructor(config: PluginConfig); static create: (config: PluginConfig) => (options?: Partial | undefined, name?: string | undefined) => Plugin; /** * 更新存储值 * * @param storage */ setStorage(storage: Partial): void; /** * 更新插件配置 */ setOptions(options: Partial): void; } //# sourceMappingURL=plugin.d.ts.map