import { Plugin } from './plugin.js';
import { IMetaRenderer, IAPIDefinition, IAPIJointDefinition } from '../meta-api/module.js';
import Editor from './editor.js';
import { QueryEngine } from './selector/selector.js';
export interface IToolboxWhitelist {
    [K: string]: string[];
}
export declare class ToolboxEntry {
    private toolbox;
    private entry;
    constructor(toolbox: Toolbox, entry: IAPIDefinition);
    dispose(): void;
    update(entry: IAPIDefinition): void;
}
export declare class Toolbox extends Plugin {
    private editor?;
    renderer?: IMetaRenderer;
    private entries;
    private _entries;
    private whitelist;
    private installedEntries;
    onInstall(editor: Editor): void;
    setEntries(entries: IAPIDefinition[]): void;
    /**
     * Runs the onInstall function of the entry if available.
     * Will avoid running the onInstall more than once for the current toolbox
     * @param entry A toolbox entry
     */
    installEntry(entry: IAPIJointDefinition): void;
    addEntry(entry: IAPIJointDefinition, position?: number): ToolboxEntry;
    removeEntry(entry: IAPIDefinition): void;
    updateEntry(oldEntry: IAPIDefinition, entry: IAPIDefinition): void;
    setWhitelist(whitelist: IToolboxWhitelist | null): void;
    whitelistEntry(id: string, whitelist: string[]): void;
    removeWhitelistEntry(id: string): void;
    update(): void;
    onInject(): void;
    registerQueryHandlers(engine: QueryEngine): void;
}
export default Toolbox;
