import { MetaSpace } from "../meta";
import { REQUEST_TYPE } from "./request-type";
/**
 * 具体类型见文档
 * @see https://docs.qq.com/doc/DRmFKQ0RYUE91TmVq
 */
/**
 * @description `请求与应答` 的响应体
 */
export interface ResponseData {
    [REQUEST_TYPE.GetCameraLookAtPosition]: {
        LookAtPosition: {
            X: number;
            Y: number;
            Z: number;
        };
    };
    [REQUEST_TYPE.GetSceneMeta]: MetaSpace;
    [REQUEST_TYPE.BatchUpdateIoTState]: null;
    [REQUEST_TYPE.RemoveSceneObject]: null;
    [REQUEST_TYPE.ConvertToScreenPosition]: {
        screenPosition: {
            X: number;
            Y: number;
        };
    };
    [REQUEST_TYPE.MoveCamera]: null;
    [REQUEST_TYPE.ResetScene]: null;
    [REQUEST_TYPE.Convert2WorldPosition]: null;
    [REQUEST_TYPE.RefreshWebPageEvent]: null;
    [REQUEST_TYPE.GetCameraTransform]: null;
    [REQUEST_TYPE.Mouse3DPositionControl]: null;
    [REQUEST_TYPE.SetObjectIconByClasses]: null;
    [REQUEST_TYPE.SubscribeNotification]: null;
    [REQUEST_TYPE.GetAllObjectClasses]: string[];
    [REQUEST_TYPE.SetTimeOfDay]: null;
    [REQUEST_TYPE.SetWeatherState]: null;
    [REQUEST_TYPE.SetEnvironmentSoundVolume]: null;
    [REQUEST_TYPE.SetEffects]: null;
    [REQUEST_TYPE.GoIntoSpace]: null;
    [REQUEST_TYPE.SetRoomApperance]: null;
    [REQUEST_TYPE.SetColorOfRoom]: null;
    [REQUEST_TYPE.ChangeViewPoint]: null;
    [REQUEST_TYPE.StopCameraAnimation]: null;
    [REQUEST_TYPE.CameraFllowTargetObject]: null;
    [REQUEST_TYPE.SetCameraControlerType]: {
        /**
         * @description 当前控制方式
         * - 0-三维地图方式
         * - 1-第一人称视角方式
         * - 2-第三人称视角方式
         */
        CurrentControlerType: 0 | 1 | 2;
    };
    [REQUEST_TYPE.GetTransform]: {
        Position: {
            X: number;
            Y: number;
            Z: number;
        };
        EulerAngles: {
            X: number;
            Y: number;
            Z: number;
        };
        Scale: {
            X: number;
            Y: number;
            Z: number;
        };
    };
    [REQUEST_TYPE.SetTransform]: string[];
    [REQUEST_TYPE.GetVisibility]: {
        Visible: boolean;
    };
    [REQUEST_TYPE.SetVisibility]: string[];
    [REQUEST_TYPE.GetInteractive]: {
        Interactive: boolean;
    };
    [REQUEST_TYPE.SetInteractive]: string[];
    [REQUEST_TYPE.SetObjectEffects]: null;
    [REQUEST_TYPE.FocusToTargetObject]: {
        /**
         * @description 一个三维向量，要设置的目标位置
         */
        Position: {
            X: number;
            Y: number;
            Z: number;
        };
        /**
         * @description 一个三维向量，要设置的相机的目标角度的欧拉角值
         */
        EulerAngles: {
            X: number;
            Y: number;
            Z: number;
        };
    };
    [REQUEST_TYPE.HightlightTargetObject]: {
        /**
         * @description 设置成功的目标 id
         */
        Success: string[];
        /**
         * @description 设置失败的目标 id
         */
        Error: string[];
    };
    [REQUEST_TYPE.SetVisibilityOfObjectIcon]: string[];
    [REQUEST_TYPE.SetObjectInteractivity]: {
        /**
         * @description 与 request Params 的内容一致
         */
        Classes: string[] | null;
    };
    [REQUEST_TYPE.FilterObjects]: {
        /**
         * @description 与 request Params 的内容一致
         */
        Classes: string[] | null;
    };
    [REQUEST_TYPE.ObjectIconControl]: {
        /**
         * @description 设置成功的目标类型
         */
        Success: string[];
        /**
         * @description 设置失败的目标类型
         */
        Error: string[];
    };
    [REQUEST_TYPE.HoverAroundTarget]: null;
    [REQUEST_TYPE.UpdateIoTState]: null;
    [REQUEST_TYPE.ObjectInfoPanelControl]: string;
    [REQUEST_TYPE.CreatHeatMap]: {
        HeatMapID: string;
    };
    [REQUEST_TYPE.CreatHeatMapNew]: {
        HeatMapID: string;
    };
    [REQUEST_TYPE.UpdateHeatMapData]: string;
    [REQUEST_TYPE.UpdateHeatMapSetting]: string;
    [REQUEST_TYPE.RemoveHeatMap]: string;
    [REQUEST_TYPE.SetHeatMapVisiblity]: string;
    [REQUEST_TYPE.SetObjectIconById]: null;
    [REQUEST_TYPE.CreatFireArea]: {
        FireAreaID: string;
    };
    [REQUEST_TYPE.DeleteFireArea]: string;
    [REQUEST_TYPE.UpdateFireArea]: string;
    [REQUEST_TYPE.SetFireAreaVisiblity]: string;
    [REQUEST_TYPE.CreatPointEffect]: {
        ID: string;
    };
    [REQUEST_TYPE.RemovePointEffect]: null;
    [REQUEST_TYPE.CreatLineEffect]: {
        ID: string;
    };
    [REQUEST_TYPE.RemoveLineEffect]: null;
    [REQUEST_TYPE.CreatAreaEffect]: {
        ID: string;
    };
    [REQUEST_TYPE.RemoveAreaEffect]: null;
    [REQUEST_TYPE.SetObjectsViewMode]: string;
    [REQUEST_TYPE.RemoveCustomObject]: null;
    [REQUEST_TYPE.AddCustomObject]: null;
    [REQUEST_TYPE.DisplayWeb3DUI]: null;
    [REQUEST_TYPE.HideWeb3DUI]: null;
    [REQUEST_TYPE.UpdateWeb3DUI]: null;
    [REQUEST_TYPE.UnsubscribeNotification]: null;
    [REQUEST_TYPE.CreatTemperatureMap]: {
        TemperatureMapID: string;
    };
    [REQUEST_TYPE.UpdateTemperatureData]: null;
    [REQUEST_TYPE.RemoveTemperatureMap]: null;
    [REQUEST_TYPE.SetTemperatureMapVisiblity]: null;
    [REQUEST_TYPE.CreatSegmentDefenceWallEffect]: {
        SegmentWallIDs: Array<string>;
    };
    [REQUEST_TYPE.RemoveSegmentDefeceWallEffect]: null;
    [REQUEST_TYPE.UpdateSegmentDefeceWallEffect]: null;
}
