export type DetectionType = "pothole-detection" | "sign-board-detection" | "pot-sign-detection" export interface DetectionListItem { detection_id?: number pothole_id?: number signboard_id?: number type: string first_detected_frame: number first_detected_time: number confidence: number bbox?: { x1: number; y1: number; x2: number; y2: number } lat?: number lng?: number } export type DetectionData = { video_id: string detection_type?: string output_video_path?: string video_info: { fps: number width: number height: number total_frames: number } summary: { unique_defected_sign_board?: number unique_pothole?: number unique_road_crack?: number unique_damaged_road_marking?: number unique_good_sign_board?: number total_road_damage?: number total_detections: number total_frames: number detection_rate: number } pothole_list?: Array defected_sign_board_list?: Array road_crack_list?: Array damaged_road_marking_list?: Array good_sign_board_list?: Array signboard_list?: Array // Keeping for backward compatibility frames: Array<{ frame_id: number // Legacy format: separate arrays potholes?: Array<{ pothole_id: number bbox: { x1: number; y1: number; x2: number; y2: number } confidence: number }> signboards?: Array<{ signboard_id: number type: string bbox: { x1: number; y1: number; x2: number; y2: number } confidence: number }> // Flat format (pot-sign-detection): unified detections array detections?: Array<{ frame_id: number detection_id: number type: string confidence: number bbox: { x1: number; y1: number; x2: number; y2: number } center?: { x: number; y: number } area?: number }> }> }