lisk-framework
Version:
Lisk blockchain application platform
30 lines (29 loc) • 1.18 kB
TypeScript
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<T = Record<string, unknown>> {
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<T = Record<string, unknown>> {
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<void>;
abstract get nodeModulePath(): string;
abstract load(): Promise<void>;
abstract unload(): Promise<void>;
}