import { ObjectAbstract } from '../../../common/object-abstract';
import { ResultType, deepPartial } from '../../../common/data-type';
import { Text3DType, Text3DEntityAtomType, IGenerate } from '../../../common/interface/text3d';
import { ObjectController } from '../../../common/object-controller';
interface Visible2DAtomType {
    camera: {
        hideDistance: number;
    };
}
/**
 * @public
 * @class Text3D
 * @extends ObjectController
 * @implements ObjectAbstract
 */
declare class Text3D extends ObjectController implements ObjectAbstract {
    className: string;
    private Text3DEntityAtom;
    private Visible2DAtom;
    /**
     * @constructor
     * @param {Text3DType} opt (optional)
     */
    constructor(opt?: Text3DType);
    get hideDistance(): number;
    set hideDistance(hideDistance: number);
    GetHideDistance(): Promise<ResultType>;
    SetHideDistance(hideDistance: number): Promise<ResultType>;
    /**
     * @private
     * @async
     * @function handleVisible2DAction
     * @param {deepPartial<Visible2DAtomType>} opt
     * @returns {Promise<ResultType>}
     */
    private handleVisible2DAction;
    /**
     * @public
     * @function GetVisible2DScheme
     * @returns {{Visible2DAtom: Visible2DAtomType}}
     */
    GetVisible2DScheme(): {
        Visible2DAtom: Visible2DAtomType;
    };
    /**
     * @public
     * @function GetScheme
     * @returns {{Text3DEntityAtom: Text3DEntityAtomType}}
     */
    GetScheme(): {
        Text3DEntityAtom: Text3DEntityAtomType;
    };
    /**
     * @public
     * @async
     * @function SetVisible2D
     * @param {deepPartial<Visible2DAtomType>} opt
     * @returns {Promise<ResultType>}
     */
    SetVisible2D(opt: deepPartial<Visible2DAtomType>): Promise<ResultType>;
    /**
     * @private
     * @function GetVisible2DData
     * @returns {Partial<Visible2DAtomType>}
     */
    private GetVisible2DData;
    /**
     * @private
     * @function SetVisible2DData
     * @param {deepPartial<Visible2DAtomType>} opt
     * @returns {void}
     */
    private SetVisible2DData;
    /**
     * @public
     * @function GetData
     * @returns {Text3DType}
     */
    GetData(): Text3DType;
    /**
     * @public
     * @function SetData
     * @param {Text3DType} opt
     * @returns {void}
     */
    SetData(opt: Text3DType): void;
    /**
     * @public
     * @function generateAtomData
     * @param {Text3DType} opt
     * @returns {IGenerate}
     */
    generateAtomData(opt: Text3DType): IGenerate;
    /**
     * @public
     * @function GetValidateRules
     * @returns {Text3DType}
     */
    GetValidateRules(): Text3DType;
    /**
     * @public
     * @function Validate
     * @param {Text3DType} opt
     * @returns {void}
     */
    Validate(opt: Text3DType): void;
    /**
     * @private
     * @function validateVisible2D
     * @param {deepPartial<Visible2DAtomType>} visible2D
     * @returns {void}
     */
    private validateVisible2D;
}
export default Text3D;
