import type { Five } from '@realsee/five';
import * as BasePlugin from '../base/BasePlugin';
import type * as THREE from 'three';
import { Object3DHelper } from '../shared-utils/Object3DHelper/index';
import type { Object3DHelperState } from '../shared-utils/Object3DHelper/typings';
import type { HelperConfig, HelperOffset, Object3DHelperPluginEventMap, Object3DHelperPluginState } from './typings';
export declare const PLUGIN = "Object3DHelperPlugin";
export declare class Object3DHelperController extends BasePlugin.Controller<Object3DHelperPluginState, Object3DHelperPluginEventMap> {
    name: string;
    state: Object3DHelperState;
    objectHelperMap: Map<THREE.Object3D, {
        helper: Object3DHelper;
        disposers: (() => any)[];
    }>;
    private css3DObjectParentMap;
    private css3DRender;
    constructor(five: Five);
    /**
     * @description Show guide line
     */
    show(options?: {
        userAction?: boolean;
    }): Promise<void>;
    /**
     * @description Hide guide line
     */
    hide(options?: {
        userAction?: boolean;
    }): Promise<void>;
    /**
     * @description Enable
     */
    enable(options?: {
        userAction?: boolean;
    }): void;
    /**
     * @description Disable
     */
    disable(options?: {
        userAction?: boolean;
    }): void;
    /**
     * @description Dispose
     */
    dispose(): void;
    setState(state: Partial<Object3DHelperState>, options?: {
        userAction?: boolean;
    } & Record<string, any>): void;
    getObject3DHelper(object3D: THREE.Object3D): {
        helper: Object3DHelper;
        disposers: (() => any)[];
    };
    /**
     * @description 添加 helper
     * @param { THREE.Object3D } object3D       要添加helper的物体
     * @param { boolean } config.moveHelper     位移helper
     * @param { boolean } config.rotateHelper   旋转helper
     * @param { boolean } config.scaleHelper    缩放helper
     */
    addObject3DHelper(object3D: THREE.Object3D, config?: {
        moveHelper?: HelperConfig<{
            offset?: HelperOffset;
        }>;
        rotateHelper?: HelperConfig<{
            offset?: HelperOffset;
            yzCircleEnable?: boolean;
            xzCircleEnable?: boolean;
            xyCircleEnable?: boolean;
            angleTipsEnable?: boolean;
        }>;
        scaleHelper?: HelperConfig;
        boundingBoxHelper?: HelperConfig;
    }): void | import("../shared-utils/Object3DHelper/typings").ObjectHelperControllers;
    removeObject3DHelper(object3D: THREE.Object3D): void;
    private handleEnable;
    private handleVisible;
    private handleDispose;
    private everyHelperDo;
    private actionIfStateIsEnabled;
    private getConfig;
}
