import { APIClient } from '@liskhq/lisk-api-client'; import { Logger } from '../logger'; import { ApplicationConfigForPlugin, PluginConfig, SchemaWithDefault } from '../types'; import { BasePluginEndpoint } from './base_plugin_endpoint'; export interface PluginInitContext> { logger: Logger; config: PluginConfig & T; appConfig: ApplicationConfigForPlugin; } export declare const getPluginExportPath: (pluginInstance: BasePlugin) => string | undefined; export declare const validatePluginSpec: (pluginInstance: BasePlugin) => void; export declare abstract class BasePlugin> { readonly configSchema?: SchemaWithDefault; endpoint?: BasePluginEndpoint; protected logger: Logger; private _apiClient; private _config; private _appConfig; get name(): string; get config(): T; get appConfig(): ApplicationConfigForPlugin; get dataPath(): string; get events(): string[]; get apiClient(): APIClient; init(context: PluginInitContext): Promise; abstract get nodeModulePath(): string; abstract load(): Promise; abstract unload(): Promise; }