import { IContainerPlugin } from "../Core/Interfaces/IContainerPlugin";
import { IPlugin } from "../Core/Interfaces/IPlugin";
import { Container } from "../Core/Container";
import { RecursivePartial } from "../Types";
import { IOptions } from "../Options/Interfaces/IOptions";
import { IShapeDrawer } from "../Core/Interfaces/IShapeDrawer";
import { Options } from "../Options/Classes/Options";
import { IMovePathGenerator } from "../Core/Interfaces/IMovePathGenerator";
export declare class Plugins {
    static getPlugin(plugin: string): IPlugin | undefined;
    static addPlugin(plugin: IPlugin): void;
    static getAvailablePlugins(container: Container): Map<string, IContainerPlugin>;
    static loadOptions(options: Options, sourceOptions: RecursivePartial<IOptions>): void;
    static getPreset(preset: string): RecursivePartial<IOptions> | undefined;
    static addPreset(presetKey: string, options: RecursivePartial<IOptions>): void;
    static addShapeDrawer(type: string, drawer: IShapeDrawer): void;
    static getShapeDrawer(type: string): IShapeDrawer | undefined;
    static getSupportedShapes(): IterableIterator<string>;
    static getPathGenerator(type: string): IMovePathGenerator | undefined;
    static addPathGenerator(type: string, pathGenerator: IMovePathGenerator): void;
}
