import { UiObjectConfig } from 'uiconfig.js';
import { IWidget } from '../../core';
import { AViewerPluginSync, ThreeViewer } from '../../viewer';
import { Object3D } from 'three';
export interface IObject3DHelper<T extends Object3D & IWidget = Object3D & IWidget> {
    Create: (o: Object3D) => T;
    Check: (o: Object3D) => boolean;
}
/**
 * Adds light and camera helpers/gizmos in the viewer.
 * A helper is automatically created when any supported light or camera is added to the scene.
 * @category Plugins
 */
export declare class Object3DWidgetsPlugin extends AViewerPluginSync<''> {
    enabled: boolean;
    static readonly PluginType = "Object3DWidgetsPlugin";
    helpers: IObject3DHelper[];
    setDirty(): void;
    toJSON: any;
    constructor(enabled?: boolean);
    private _widgetRoot;
    onAdded(viewer: ThreeViewer): void;
    onRemove(viewer: ThreeViewer): void;
    private _addSceneObject;
    refresh(): void;
    widgets: (IWidget & Object3D)[];
    private _widgetDisposed;
    private _registerWidget;
    private _unregisterWidget;
    private _createWidgets;
    uiConfig: UiObjectConfig;
}
//# sourceMappingURL=Object3DWidgetsPlugin.d.ts.map