import { AViewerPluginSync } from '../../viewer';
import { IObject3D } from '../../core';
/**
 * Adds support for generating different types of lights and camera objects in the viewer, along with UI to do so.
 *
 * Custom generators can be added for more object types, check {@link GeometryGeneratorPlugin} for reference.
 * @category Plugins
 */
export declare class Object3DGeneratorPlugin extends AViewerPluginSync {
    static readonly PluginType = "Object3DGeneratorPlugin";
    enabled: boolean;
    toJSON: any;
    protected _selectedType: string;
    generate(type?: string, params?: any, addToScene?: boolean, select?: boolean, trackUndo?: boolean): IObject3D | undefined;
    generators: Record<string, (params?: any) => IObject3D>;
    constructor();
    removeObject3DGenerators(prefix: string, refresh?: boolean): this;
    removeObject3DGenerator(key: string, refresh?: boolean): this;
    addObject3DGenerators(prefix: string, generators: Record<string, (params: any) => IObject3D>, refresh?: boolean): void;
    addObject3DGenerator(key: string, generator: (params: any) => IObject3D, refresh?: boolean): void;
}
//# sourceMappingURL=../../src/plugins/extras/Object3DGeneratorPlugin.d.ts.map