declare namespace MasterModel {
  interface Camera {
    id?: string;
    name?: string;
    cate_id?: string;
    username?: string;
    password?: string;
    rtsp_port?: number;
    http_port?: number;
    channel?: number;
    ip?: string;
    stream?: number;
  }

  interface CameraV5 {
    cams?: Camera[];
  }

  type CameraRecordType = 'none' | 'alarm' | 'all';

  interface CameraV6 extends CameraV5 {
    record_type?: CameraRecordType;
    record_alarm_list?: string[];
  }

  type CameraMessage = Message<CameraV5>;
  type CameraV6Message = Message<CameraV6>;

  type CameraMessageResponse = MesageReaderResponse<CameraV5>;
  type CameraV6MessageResponse = MesageReaderResponse<CameraV6>;

  interface CameraV6ConfigRequest {
    bn?: string;
    n?: string;
    t?: number;
    vs?: string | CameraV6;
  }
}
