import * as React from 'react';
import * as H from 'history';

export type RectType = {
    rect: Array<number>;
    type: 'face' | 'body' | 'nonVehicle' | 'vehicle' | 'thing' | 'personAlarm' | 'eventAlarm' | 'accessControl';
    needExpand?: boolean;
    imgId?: string;
    area?: number;
    tags?: TagItemType[];
    imgUrl?: string;
    isDefault?: boolean;
    smId?: string;
    feature?: string;
};
export type DictItem = {
    label?: string;
    value?: string;
    code: string | number;
    disabled?: boolean;
    icon?: string;
    color?: string;
  };
export interface CaptureItem {
    id: string;
    address?: string;
    aid?: string;
    score?:any;
    aidTags?: Array<string>;
    cameraTags?: Array<string>;
    personTags?: Array<string>;
    vehicleTags?: Array<string>;
    captureTime: string;
    cid?: string;
    deviceId?: string;
    deviceName: string;
    faceRect?: string;
    bodyRect?: string;
    vehicleRect?: string;
    vehicleType?: number;
    faceUrl?: string;
    bodyUrl?: string;
    hasArchives?: boolean;
    hasBody?: string;
    imgId?: string;
    latitude?: number;
    longitude?: string;
    personInfoUrl?: string;
    realName?: string;
    sceneUrl: string;
    imgUrl?: string;
    vehicleUrl?: string;
    feature?: string;
    faceFeature?: string;
    bodyFeature?: string;
    nonVehicleFeature?: string;
    vehicleFeature?: string;
    onClick?: (e: React.MouseEvent) => void;
  }

interface DetailPictureMapProps{
   data : CaptureItem;
   history?:H.History<any>;
   type : 'face' | 'body' | 'nonVehicle' | 'vehicle' | 'thing' | 'personAlarm' | 'eventAlarm' | 'accessControl';
   defaultId?:string | number;
   rectsOther?:RectType[];
   dicts?: Array<DictItem[]>;
   downloadVideo?: (val:any) => void;
   [key: string]: any;
}

declare class DetailPictureMap extends React.Component<DetailPictureMapProps>{
  render(): JSX.Element;
};

export default DetailPictureMap;