import CloudApi from 'cloudapi';
import { WdpApiType } from './modules/common/interface/init-option';
import RendererController from './modules/renderer-controller';
import DebugController from './modules/debug-controller';
import EnvironmentController from './modules/environment-controller';
import SystemController from './modules/system-controller';
import AnimationController from './modules/animation-controller';
import ApiStateManagerController from './modules/apistate-manager-controller';
import ToolsController from './modules/tools-controller';
import CustomizeController from './modules/customize-controller';
import SettingController from './modules/setting-controller';
import DataModelController from './modules/datamodel-controller';
import SceneController from './modules/scene-controller';
import CameraControlController from './modules/cameracontrol-controller';
import CameraPresetController from './modules/camerapreset-controller';
import CameraRoamController from './modules/cameraroam-controller';
import CameraStartController from './modules/camerastart-controller';
import TransactionController from './modules/transaction-controller';
import PluginController from './modules/plugin-controller';
import EditorController from './modules/editor-controller';
import AIController from './modules/ai-controller';
import CameraObject from './modules/camera/index';
import CameraRoamObject from './modules/camera-roam/index';
import PointObject from './modules/data-model/geometry/point/index';
import Point2DObject from './modules/data-model/geometry/point2d/index';
import PolylineObject from './modules/data-model/geometry/polyline/index';
import Polyline2DObject from './modules/data-model/geometry/polyline2d/index';
import PolygonObject from './modules/data-model/geometry/polygon/index';
import Polygon2DObject from './modules/data-model/geometry/polygon2d/index';
import RangeObject from './modules/scene/covering/range/index';
import PoiObject from './modules/scene/covering/poi/index';
import CustomPoiObject from './modules/scene/covering/custom-poi/index';
import PathObject from './modules/scene/covering/path/index';
import HeatMapObject from './modules/scene/covering/heatmap/index';
import HighlightAreaObject from './modules/scene/covering/highlightarea/index';
import ParticleObject from './modules/scene/covering/particle/index';
import Text3DObject from './modules/scene/covering/text3d/index';
import ColumnarHeatMapObject from './modules/scene/covering/columnarheatmap/index';
import WindowObject from './modules/scene/covering/window/index';
import ViewshedObject from './modules/scene/covering/viewshed/index';
import ParabolaObject from './modules/scene/covering/parabola/index';
import BoundObject from './modules/scene/covering/bound/index';
import LightObject from './modules/scene/covering/light/index';
import TilesObject from './modules/scene/tiles/index';
import EarthTilesObject from './modules/scene/earth-tiles/index';
import StaticObject from './modules/scene/model/static/index';
import HierarchyObject from './modules/scene/model/hierarchy/index';
import SkeletalObject from './modules/scene/model/skeletal/index';
import SpaceHeatMapObject from './modules/scene/covering/spaceheatmap/index';
import RoadHeatMapObject from './modules/scene/covering/roadheatmap/index';
import MeshHeatMapObject from './modules/scene/covering/meshheatmap/index';
import RasterObject from './modules/scene/covering/raster/index';
import RealTimeVideoObject from './modules/scene/covering/realtimevideo/index';
import GroupObject from './modules/scene/group/index';
import MaterialObject from './modules/data-model/material/index';
import TextureObject from './modules/data-model/texture/index';
import EffectsObject from './modules/scene/effects/index';
import LocalGeoReferenceObject from './modules/data-model/local-geo-reference/index';
import VegetationObject from './modules/scene/model/vegetation/index';
import ModelerEmbankObject from './modules/scene/model/modeler-embank/index';
import ModelerWaterObject from './modules/scene/model/modeler-water/index';
import ModelerRiverObject from './modules/scene/model/modeler-river/index';
import ModelerFenceObject from './modules/scene/model/modeler-fence/index';
import ModelerFloorObject from './modules/scene/model/modeler-floor/index';
import ProjectModelObject from './modules/scene/model/project-model/index';
import ProjectInstanceObject from './modules/scene/model/project-instance/index';
import StaticInstanceObject from './modules/scene/model/static-instance/index';
import ComponentController from './modules/component-controller';
import WindowUIObject from './modules/component/window-ui/index';
import PoiUIObject from './modules/component/poi-ui/index';
import VideoUIObject from './modules/component/video-ui/index';
/**
 * @public
 * @class WdpApi
 * @extends CloudApi
 */
export default class WdpApi extends CloudApi {
    private recordMode;
    private record;
    private ws;
    private apiRequestMode;
    private apiRequestURL;
    private timeoutTime;
    private ObjectEidMap;
    private RegisterObj;
    private url;
    private prefix;
    private order;
    private token;
    private headers;
    private UeEvent;
    private UeEvents;
    private reqMan;
    private EventList;
    private sceneIsReady;
    private brandingShow;
    private bCached;
    private agentHost;
    private bAnalytics;
    private platformId;
    private callType;
    private bAutoActive;
    private RequestEntity;
    private globalTools;
    Renderer: RendererController;
    Debug: DebugController;
    Environment: EnvironmentController;
    System: SystemController;
    Animation: AnimationController;
    ApiStateManager: ApiStateManagerController;
    Tools: ToolsController;
    Customize: CustomizeController;
    Setting: SettingController;
    DataModel: DataModelController;
    Scene: SceneController;
    CameraControl: CameraControlController;
    CameraPreset: CameraPresetController;
    CameraRoams: CameraRoamController;
    CameraStart: CameraStartController;
    Transaction: TransactionController;
    Plugin: PluginController;
    Editor: EditorController;
    AI: AIController;
    Component: ComponentController;
    Camera: typeof CameraObject;
    CameraRoam: typeof CameraRoamObject;
    Point: typeof PointObject;
    Point2D: typeof Point2DObject;
    Polyline: typeof PolylineObject;
    Polyline2D: typeof Polyline2DObject;
    Polygon: typeof PolygonObject;
    Polygon2D: typeof Polygon2DObject;
    Range: typeof RangeObject;
    Poi: typeof PoiObject;
    CustomPoi: typeof CustomPoiObject;
    Path: typeof PathObject;
    HeatMap: typeof HeatMapObject;
    HighlightArea: typeof HighlightAreaObject;
    Particle: typeof ParticleObject;
    Text3D: typeof Text3DObject;
    ColumnarHeatMap: typeof ColumnarHeatMapObject;
    Window: typeof WindowObject;
    Viewshed: typeof ViewshedObject;
    Parabola: typeof ParabolaObject;
    Bound: typeof BoundObject;
    Light: typeof LightObject;
    Tiles: typeof TilesObject;
    EarthTiles: typeof EarthTilesObject;
    Static: typeof StaticObject;
    Hierarchy: typeof HierarchyObject;
    Skeletal: typeof SkeletalObject;
    SpaceHeatMap: typeof SpaceHeatMapObject;
    RoadHeatMap: typeof RoadHeatMapObject;
    MeshHeatMap: typeof MeshHeatMapObject;
    Raster: typeof RasterObject;
    RealTimeVideo: typeof RealTimeVideoObject;
    Group: typeof GroupObject;
    Material: typeof MaterialObject;
    Texture: typeof TextureObject;
    Effects: typeof EffectsObject;
    LocalGeoReference: typeof LocalGeoReferenceObject;
    Vegetation: typeof VegetationObject;
    ModelerEmbank: typeof ModelerEmbankObject;
    ModelerWater: typeof ModelerWaterObject;
    ModelerRiver: typeof ModelerRiverObject;
    ModelerFence: typeof ModelerFenceObject;
    ModelerFloor: typeof ModelerFloorObject;
    ProjectModel: typeof ProjectModelObject;
    ProjectInstance: typeof ProjectInstanceObject;
    StaticInstance: typeof StaticInstanceObject;
    WindowUI: typeof WindowUIObject;
    PoiUI: typeof PoiUIObject;
    VideoUI: typeof VideoUIObject;
    /**
     * @constructor
     * @param {WdpApiType} opt
     */
    constructor(opt: WdpApiType);
    /**
     * @private
     * @function init
     * @returns {void}
     */
    private init;
    /**
     * @private
     * @function initLog
     * @returns {void}
     */
    private initLog;
    /**
     * @private
     * @function RegWindowEvent
     * @returns {void}
     */
    private RegWindowEvent;
    /**
     * @private
     * @function OnBeforeUnload
     * @returns {void}
     */
    private OnBeforeUnload;
    /**
     * @private
     * @function setAgentHost
     * @param {string} host
     * @returns {void}
     */
    private setAgentHost;
    /**
     * @private
     * @function sendUserAction
     * @param {string} action
     * @returns {void}
     */
    private sendUserAction;
    /**
     * @private
     * @function registerSceneEvents
     * @param {Array<eventType>} events - Function: (...arg: any) => Promise<void> | void
     * @returns {void}
     */
    private registerSceneEvents;
    /**
     * @private
     * @function registerSceneEvent
     * @param {Array<eventType>} events - Function: (...arg: any) => Promise<void> | void
     * @returns {void}
     */
    private registerSceneEvent;
    /**
     * @private
     * @function unRegisterSceneEvent
     * @param {Array<string>} events
     * @return {void}
     */
    private unRegisterSceneEvent;
    /**
     * @private
     * @function unRegisterSceneEvents
     * @param {Array<string>} events
     * @returns {void}
     */
    private unRegisterSceneEvents;
    /**
     * @private
     * @function setLogLevel
     * @param {string} mode default value is 'none'
     * @returns {void}
     */
    private setLogLevel;
    /**
     * @private
     * @function startCloud
     * @return {Promise<ResultType>}
     */
    private startCloud;
    /**
     * @private
     * @function startCloudByTaskId
     * @param {string} io
     * @param {string} taskId
     * @param {{id: string; callType: ICallType;}} opt  optional
     * @returns {Promise<ResultType>}
     */
    private startCloudByTaskId;
    /**
     * @private
     * @function startSocketDebugMode
     * @returns {void}
     */
    private startSocketDebugMode;
    /**
     * @private
     * @function startApi
     * @param {any} object
     * @param {any} data default value is null
     * @return {Promise<any>}
     */
    private startApi;
    /**
     * @private
     * @function startApiByObject
     * @param {any} data default value is null
     * @return {Promise<any>}
     */
    private startApiByObject;
    /**
     * @private
     * @function analyticsAct
     * @param {Ianalytics} data
     * @return {Promise<void>}
     */
    private analyticsAct;
    /**
     * @private
     * @function handleDataChannelMessage
     * @param {any} data datachannel data
     * @param {any} e default value is null
     * @return {void}
     */
    private handleDataChannelMessage;
    /**
     * @private
     * @function handleApiData
     * @param {any} jsonData
     * @return {void}
     */
    private handleApiData;
    /**
     * @private
     * @function handleUEEventData
     * @param {any} jsonData
     * @return {void}
     */
    private handleUEEventData;
    /**
     * @private
     * @function handleErrorData
     * @param {any} jsonData
     * @return {void}
     */
    private handleErrorData;
    /**
     * @private
     * @function handleDefaultData
     * @param {any} jsonData
     * @return {void}
     */
    private handleDefaultData;
    /**
     * @private
     * @function ToggleAPIEventChannel
     * @returns {Promise<void>}
     */
    private ToggleAPIEventChannel;
    /**
     * @private
     * @function handleUserAndPluginEventLogic
     * @param {IRegisterEvents} e
     * @param {string} eventName
     * @returns {Promise<void>}
     */
    private handleUserAndPluginEventLogic;
    /**
     * @private
     * @function OnWdpSceneIsReady
     * @param {any} jsonData
     * @param {IRegisterEvents} e (optional)
     * @returns {Promise<void>}
     */
    private OnWdpSceneIsReady;
    /**
     * @private
     * @function CheckVersionConsistent
     * @returns {Promise<void>}
     */
    private CheckVersionConsistent;
    /**
     * @private
     * @function generateDebugRTC
     * @returns {void}
     */
    private generateDebugRTC;
    /**
     * @private
     * @function OnEntityClicked
     * @param {any} jsonData
     * @param {IRegisterEvents} e (optional)
     * @returns {Promise<void>}
     */
    private OnEntityClicked;
    /**
     * @private
     * @function OnEntityDbClicked
     * @param {any} jsonData
     * @param {IRegisterEvents} e (optional)
     * @returns {Promise<void>}
     */
    private OnEntityDbClicked;
    /**
     * @private
     * @function OnMouseEnterEntity
     * @param {any} jsonData
     * @param {IRegisterEvents} e (optional)
     * @returns {Promise<void>}
     */
    private OnMouseEnterEntity;
    /**
     * @private
     * @function OnMouseOutEntity
     * @param {any} jsonData
     * @param {IRegisterEvents} e (optional)
     * @returns {Promise<void>}
     */
    private OnMouseOutEntity;
    /**
     * @private
     * @function OnEntityNodeSelectionChanged
     * @param {any} jsonData
     * @param {IRegisterEvents} e (optional)
     * @returns {Promise<void>}
     */
    private OnEntityNodeSelectionChanged;
    /**
     * @private
     * @function OnEntitySelectionChanged
     * @param {any} jsonData
     * @param {IRegisterEvents} e (optional)
     * @returns {Promise<void>}
     */
    private OnEntitySelectionChanged;
    /**
     * @private
     * @function OnEntityAdded
     * @param {any} jsonData
     * @param {IRegisterEvents} e (optional)
     * @returns {Promise<void>}
     */
    private OnEntityAdded;
    /**
     * @private
     * @function OnEntityRemoved
     * @param {any} jsonData
     * @param {IRegisterEvents} e (optional)
     * @returns {Promise<void>}
     */
    private OnEntityRemoved;
    /**
     * @private
     * @function OnEntityUpdated
     * @param {any} jsonData
     * @param {IRegisterEvents} e (optional)
     * @returns {Promise<void>}
     */
    private OnEntityUpdated;
    /**
     * @private
     * @function OnWdpSceneChanged
     * @param {any} jsonData
     * @param {IRegisterEvents} e (optional)
     * @returns {Promise<void>}
     */
    private OnWdpSceneChanged;
    /**
     * @private
     * @function OnMoveAlongPathEnd
     * @param {any} jsonData
     * @param {IRegisterEvents} e (optional)
     * @returns {Promise<void>}
     */
    private OnMoveAlongPathEnd;
    /**
     * @private
     * @function OnMoveAlongPathProcessEvent
     * @param {any} jsonData
     * @param {IRegisterEvents} e (optional)
     * @returns {Promise<void>}
     */
    private OnMoveAlongPathProcessEvent;
    /**
     * @private
     * @function OnCameraMotionStartEvent
     * @param {any} jsonData
     * @param {IRegisterEvents} e (optional)
     * @returns {Promise<void>}
     */
    private OnCameraMotionStartEvent;
    /**
     * @private
     * @function OnCameraMotionEndEvent
     * @param {any} jsonData
     * @param {IRegisterEvents} e (optional)
     * @returns {Promise<void>}
     */
    private OnCameraMotionEndEvent;
    /**
     * @private
     * @function OnEntityReady
     * @param {any} jsonData
     * @param {IRegisterEvents} e (optional)
     * @returns {Promise<void>}
     */
    private OnEntityReady;
    /**
     * @private
     * @function OnVegetationCreating
     * @param {any} jsonData
     * @param {IRegisterEvents} e (optional)
     * @returns {Promise<void>}
     */
    private OnVegetationCreating;
    /**
     * @private
     * @function OnVegetationCreated
     * @param {any} jsonData
     * @param {IRegisterEvents} e (optional)
     * @returns {Promise<void>}
     */
    private OnVegetationCreated;
    /**
     * @private
     * @function OnWdpMaterialHit
     * @param {any} jsonData
     * @param {IRegisterEvents} e (optional)
     * @returns {Promise<void>}
     */
    private OnWdpMaterialHit;
    /**
     * @private
     * @function OnRealTimeVideoEvent
     * @param {any} jsonData
     * @param {IRegisterEvents} e (optional)
     * @returns {Promise<void>}
     */
    private OnRealTimeVideoEvent;
    /**
     * @private
     * @function OnCameraRoamingFrame
     * @param {any} jsonData
     * @param {IRegisterEvents} e (optional)
     * @returns {Promise<void>}
     */
    private OnCameraRoamingFrame;
    /**
     * @private
     * @function OnEntityGraphicsReady
     * @param {any} jsonData
     * @param {IRegisterEvents} e (optional)
     * @returns {Promise<void>}
     */
    private OnEntityGraphicsReady;
    /**
     * @private
     * @function OnMoveAlongPathBlockEvent
     * @param {any} jsonData
     * @param {IRegisterEvents} e (optional)
     * @returns {Promise<void>}
     */
    private OnMoveAlongPathBlockEvent;
}
