import { PolyEngine } from '../../../Poly';
import { PolyPlugin, PolyPluginData } from './Plugin';
import { BaseNodeConstructor, BaseOperationConstructor } from '../nodes/NodesRegister';
import { PolyDictionary } from '../../../../types/GlobalTypes';
export interface PluginsRegisterData {
    plugins: PolyDictionary<PolyPluginData>;
    nodes: PolyDictionary<PolyDictionary<string>>;
    operations: PolyDictionary<PolyDictionary<string>>;
}
export declare class PluginsRegister {
    private poly;
    private _current_plugin;
    private _plugins_by_name;
    private _plugin_name_by_node_context_by_type;
    private _plugin_name_by_operation_context_by_type;
    constructor(poly: PolyEngine);
    register(plugin: PolyPlugin): void;
    pluginByName(pluginName: string): PolyPlugin | undefined;
    registerNode(node: BaseNodeConstructor): void;
    registerOperation(operation: BaseOperationConstructor): void;
    toJson(): PluginsRegisterData;
}
