declare namespace PhysicalsignApi {
  interface Result<T> {
    code: number;
    msg: string;
    data: T[];
    success: true;
  }

  interface QueryTzzsPhysicalSignIndexInstanceDataParams {
    objectId?: string;
    hierarchyList?: string;
    indexType?: string;
    startTime?: string;
    endTime?: string;
  }
  interface IndexListItem {
    icon: string;
    indexId: string;
    indexName: string;
    indexHierarchy: number;
    indexIcon: string;
    latest: boolean;
    qualitySign: number | string;
    time: string;
    status: number;
    statusColor: string;
    statusDescription: string;
  }
  interface QueryTzzsPhysicalSignIndexInstanceDataList {
    iotPerceptionCases: number;
    cityNameCases: number;
    manualInspectionCases: number;
    otherCases: number;
    indexList: indexList[];
    time: string;
  }

  interface SignWeightSystem {
    color: string;
    target: string;
    source: string;
    level: number;
  }
  //中观体征底部tab数据
  interface SignIndexTabs {
    name: string;
    id: string;
  }
  /**宏观体征首页接口参数 */
  interface MacroscopicPhysicalSignParams {
    objectId?: string;
    indexType?: number;
    physicalSignType?: number;
  }
  /**影响体征Top5 */
  interface ListTopNItems {
    image: string;
    name: string;
    fullName: string;
    percentage: number;
    count: number;
    deduction: number;
    weight: number;
    time: string;
  }

  interface PhysicalSignParams {
    physicalSignType: string; // 1实况指数  3周期指数
    indexType: string; // 指数体系类型 0:内评价 1:外评价
    indexId: string; // 指数id
    objectId: string; // 网格id
    indexHierarchy: string; // 指数层级，从1开始，多个用,逗号隔开
    objectHierarchy: string; // 对象层级，从1开始，多个用,逗号隔开
  }

  interface AreaShapeAndIndexDto {
    bgColor: string;
    bgOpacity: string;
    borderColor: string;
    borderOpacity: string;
    borderSize: string;
    centerX: string;
    centerY: string;
    desc: string;
    diffValue: string;
    eventCount: number;
    indexStatus: string;
    indexStatusColor: string;
    indexTime: string;
    objectId: string;
    objectName: string;
    points: any[];
    qualitySign: string;
    shape: string;
    status: null;
  }

  interface EventGroupBySourceDto {
    event: {
      difficult: number;
      noHandle: number;
      total: number;
    };
    source: { count: number; id: string; name: string; rate: number }[];
  }

  interface ImportantDistrictDto {
    objectId: string;
    objectName: string;
    cqi: string;
  }

  interface IndutryIndexInstanceDto {
    desc: string;
    diffValue: -0.5799999999999983;
    indexId: string;
    indexName: string;
    indexStatus: string;
    indexStatusColor: string;
    qualitySign: string;
    status: 'down' | 'up';
    statusDesc: string;
    time: string;
    warningNum: number;
    cqiTrend: {
      name: string;
      objectId: string;
      objectName: string;
      value: string;
    }[];
  }
}
